マクロ定義 | |
#define | CACHE_HASH_KEY_STRING (-1) |
型定義 | |
typedef cache_hash_t | cache_hash_t |
typedef cache_hash_index_t | cache_hash_index_t |
関数 | |
cache_hash_t * | cache_hash_make (apr_size_t size) |
void | cache_hash_free (cache_hash_t *ht) |
void * | cache_hash_set (cache_hash_t *ht, const void *key, apr_ssize_t klen, const void *val) |
void * | cache_hash_get (cache_hash_t *ht, const void *key, apr_ssize_t klen) |
cache_hash_index_t * | cache_hash_first (cache_hash_t *ht) |
cache_hash_index_t * | cache_hash_next (cache_hash_index_t *hi) |
void | cache_hash_this (cache_hash_index_t *hi, const void **key, apr_ssize_t *klen, void **val) |
int | cache_hash_count (cache_hash_t *ht) |
#define CACHE_HASH_KEY_STRING (-1) |
When passing a key to cache_hash_set or cache_hash_get, this value can be passed to indicate a string-valued key, and have cache_hash compute the length automatically.
typedef struct cache_hash_index_t cache_hash_index_t |
Abstract type for scanning hash tables.
typedef struct cache_hash_t cache_hash_t |
Abstract type for hash tables.
int cache_hash_count | ( | cache_hash_t * | ht | ) |
Get the number of key/value pairs in the hash table.
ht | The hash table |
cache_hash_index_t* cache_hash_first | ( | cache_hash_t * | ht | ) |
int sum_values(cache_hash_t *ht) { cache_hash_index_t *hi; void *val; int sum = 0; for (hi = cache_hash_first(ht); hi; hi = cache_hash_next(hi)) { cache_hash_this(hi, NULL, NULL, &val); sum += *(int *)val; } return sum; }
There is no restriction on adding or deleting hash entries during an iteration (although the results may be unpredictable unless all you do is delete the current entry) and multiple iterations can be in progress at the same time.
void cache_hash_free | ( | cache_hash_t * | ht | ) |
Create a hash table.
*ht | Pointer to the hash table to be freed. |
void* cache_hash_get | ( | cache_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 CACHE_HASH_KEY_STRING to use the string length. |
cache_hash_t* cache_hash_make | ( | apr_size_t | size | ) |
Create a hash table.
size |
cache_hash_index_t* cache_hash_next | ( | cache_hash_index_t * | hi | ) |
Continue iterating over the entries in a hash table.
hi | The iteration state |
void* cache_hash_set | ( | cache_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 CACHE_HASH_KEY_STRING to use the string length. | |
val | Value to associate with the key |
void cache_hash_this | ( | cache_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. |