00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
#ifndef APR_HASH_H
00017
#define APR_HASH_H
00018
00024
#include "apr_pools.h"
00025
00026
#ifdef __cplusplus
00027
extern "C" {
00028
#endif
00029
00046 #define APR_HASH_KEY_STRING (-1)
00047
00051 typedef struct apr_hash_t apr_hash_t;
00052
00056 typedef struct apr_hash_index_t apr_hash_index_t;
00057
00063
APR_DECLARE(apr_hash_t *) apr_hash_make(apr_pool_t *pool);
00064
00072 APR_DECLARE(apr_hash_t *) apr_hash_copy(apr_pool_t *pool,
00073 const apr_hash_t *h);
00074
00083 APR_DECLARE(
void) apr_hash_set(apr_hash_t *ht, const
void *key,
00084 apr_ssize_t klen, const
void *val);
00085
00093 APR_DECLARE(
void *) apr_hash_get(apr_hash_t *ht, const
void *key,
00094 apr_ssize_t klen);
00095
00124 APR_DECLARE(apr_hash_index_t *) apr_hash_first(apr_pool_t *p, apr_hash_t *ht);
00125
00132 APR_DECLARE(apr_hash_index_t *) apr_hash_next(apr_hash_index_t *hi);
00133
00143 APR_DECLARE(
void) apr_hash_this(apr_hash_index_t *hi, const
void **key,
00144 apr_ssize_t *klen,
void **val);
00145
00151 APR_DECLARE(
unsigned int) apr_hash_count(apr_hash_t *ht);
00152
00161 APR_DECLARE(apr_hash_t *) apr_hash_overlay(apr_pool_t *p,
00162 const apr_hash_t *overlay,
00163 const apr_hash_t *base);
00164
00178 APR_DECLARE(apr_hash_t *) apr_hash_merge(apr_pool_t *p,
00179 const apr_hash_t *h1,
00180 const apr_hash_t *h2,
00181
void * (*merger)(apr_pool_t *p,
00182 const
void *key,
00183 apr_ssize_t klen,
00184 const
void *h1_val,
00185 const
void *h2_val,
00186 const
void *data),
00187 const
void *data);
00188
00192 APR_POOL_DECLARE_ACCESSOR(hash);
00193
00196 #ifdef __cplusplus
00197 }
00198 #endif
00199
00200 #endif