Defines | |
#define | APR_HASH_KEY_STRING (-1) |
Typedefs | |
typedef apr_hash_t | apr_hash_t |
typedef apr_hash_index_t | apr_hash_index_t |
Functions | |
apr_hash_t * | apr_hash_make (apr_pool_t *pool) |
apr_hash_t * | apr_hash_copy (apr_pool_t *pool, const apr_hash_t *h) |
void | apr_hash_set (apr_hash_t *ht, const void *key, apr_ssize_t klen, const void *val) |
void * | apr_hash_get (apr_hash_t *ht, const void *key, apr_ssize_t klen) |
apr_hash_index_t * | apr_hash_first (apr_pool_t *p, apr_hash_t *ht) |
apr_hash_index_t * | apr_hash_next (apr_hash_index_t *hi) |
void | apr_hash_this (apr_hash_index_t *hi, const void **key, apr_ssize_t *klen, void **val) |
unsigned int | apr_hash_count (apr_hash_t *ht) |
apr_hash_t * | apr_hash_overlay (apr_pool_t *p, const apr_hash_t *overlay, const apr_hash_t *base) |
apr_hash_t * | apr_hash_merge (apr_pool_t *p, const apr_hash_t *h1, const apr_hash_t *h2, void *(*merger)(apr_pool_t *p, const void *key, apr_ssize_t klen, const void *h1_val, const void *h2_val, const void *data), const void *data) |
apr_pool_t * | apr_hash_pool_get (const apr_hash_t *thehash) |
#define APR_HASH_KEY_STRING (-1) |
When passing a key to apr_hash_set or apr_hash_get, this value can be passed to indicate a string-valued key, and have apr_hash compute the length automatically.
typedef struct apr_hash_index_t apr_hash_index_t |
Abstract type for scanning hash tables.
typedef struct apr_hash_t apr_hash_t |
Abstract type for hash tables.
apr_hash_t* apr_hash_copy | ( | apr_pool_t * | pool, | |
const apr_hash_t * | h | |||
) |
Make a copy of a hash table
pool | The pool from which to allocate the new hash table | |
h | The hash table to clone |
unsigned int apr_hash_count | ( | apr_hash_t * | ht | ) |
Get the number of key/value pairs in the hash table.
ht | The hash table |
apr_hash_index_t* apr_hash_first | ( | apr_pool_t * | p, | |
apr_hash_t * | ht | |||
) |
int sum_values(apr_pool_t *p, apr_hash_t *ht) { apr_hash_index_t *hi; void *val; int sum = 0; for (hi = apr_hash_first(p, ht); hi; hi = apr_hash_next(hi)) { apr_hash_this(hi, NULL, NULL, &val); sum += *(int *)val; } return sum; }
void* apr_hash_get | ( | apr_hash_t * | ht, | |
const void * | key, | |||
apr_ssize_t | klen | |||
) |
Look up the value associated with a key in a hash table.
ht | The hash table | |
key | Pointer to the key | |
klen | Length of the key. Can be APR_HASH_KEY_STRING to use the string length. |
apr_hash_t* apr_hash_make | ( | apr_pool_t * | pool | ) |
Create a hash table.
pool | The pool to allocate the hash table out of |
apr_hash_t* apr_hash_merge | ( | apr_pool_t * | p, | |
const apr_hash_t * | h1, | |||
const apr_hash_t * | h2, | |||
void *(*)(apr_pool_t *p, const void *key, apr_ssize_t klen, const void *h1_val, const void *h2_val, const void *data) | merger, | |||
const void * | data | |||
) |
Merge two hash tables into one new hash table. If the same key is present in both tables, call the supplied merge function to produce a merged value for the key in the new table.
p | The pool to use for the new hash table | |
h1 | The first of the tables to merge | |
h2 | The second of the tables to merge | |
merger | A callback function to merge values, or NULL to make values from h1 override values from h2 (same semantics as apr_hash_overlay()) | |
data | Client data to pass to the merger function |
apr_hash_index_t* apr_hash_next | ( | apr_hash_index_t * | hi | ) |
Continue iterating over the entries in a hash table.
hi | The iteration state |
apr_hash_t* apr_hash_overlay | ( | apr_pool_t * | p, | |
const apr_hash_t * | overlay, | |||
const apr_hash_t * | base | |||
) |
Merge two hash tables into one new hash table. The values of the overlay hash override the values of the base if both have the same key.
p | The pool to use for the new hash table | |
overlay | The table to add to the initial table | |
base | The table that represents the initial values of the new table |
apr_pool_t* apr_hash_pool_get | ( | const apr_hash_t * | thehash | ) |
Get a pointer to the pool which the hash table was created in
void apr_hash_set | ( | apr_hash_t * | ht, | |
const void * | key, | |||
apr_ssize_t | klen, | |||
const void * | val | |||
) |
Associate a value with a key in a hash table.
ht | The hash table | |
key | Pointer to the key | |
klen | Length of the key. Can be APR_HASH_KEY_STRING to use the string length. | |
val | Value to associate with the key |
void apr_hash_this | ( | apr_hash_index_t * | hi, | |
const void ** | key, | |||
apr_ssize_t * | klen, | |||
void ** | val | |||
) |
Get the current entry's details from the iteration state.
hi | The iteration state | |
key | Return pointer for the pointer to the key. | |
klen | Return pointer for the key length. | |
val | Return pointer for the associated value. |