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. |
1.5.2