31 #include <citrusleaf/alloc.h>
32 #include <citrusleaf/cf_types.h>
46 #define CF_RCHASH_ERR_FOUND -4
47 #define CF_RCHASH_ERR_NOTFOUND -3
48 #define CF_RCHASH_ERR_BUFSZ -2
49 #define CF_RCHASH_ERR -1
50 #define CF_RCHASH_OK 0
55 #define CF_RCHASH_CR_RESIZE 0x01
60 #define CF_RCHASH_CR_GRAB 0x02
65 #define CF_RCHASH_CR_MT_BIGLOCK 0x04
70 #define CF_RCHASH_CR_MT_MANYLOCK 0x08
75 #define CF_RCHASH_CR_NOSIZE 0x10
80 #define CF_RCHASH_CR_RESIZE 0x01
85 #define CF_RCHASH_CR_MT_BIGLOCK 0x04
90 #define CF_RCHASH_CR_MT_LOCKPOOL 0x08
95 #define CF_RCHASH_REDUCE_DELETE (1)
198 int cf_rchash_put(cf_rchash *h,
void *key, uint32_t key_len,
void *value);
207 int cf_rchash_get(cf_rchash *h,
void *key, uint32_t key_len,
void **
object);
int(* cf_rchash_reduce_fn)(void *key, uint32_t keylen, void *object, void *udata)
int cf_rchash_get(cf_rchash *h, void *key, uint32_t key_len, void **object)
int cf_rchash_put(cf_rchash *h, void *key, uint32_t key_len, void *value)
uint32_t(* cf_rchash_hash_fn)(void *value, uint32_t value_len)
int cf_rchash_put_unique(cf_rchash *h, void *key, uint32_t key_len, void *value)
uint32_t cf_rchash_get_size(cf_rchash *h)
void cf_rchash_reduce_delete(cf_rchash *h, cf_rchash_reduce_fn reduce_fn, void *udata)
int cf_rchash_set_nlocks(cf_rchash *h, int n_locks)
pthread_mutex_t * lock_table
void cf_rchash_destroy(cf_rchash *h)
int cf_rchash_create(cf_rchash **h, cf_rchash_hash_fn h_fn, cf_rchash_destructor_fn d_fn, uint32_t key_len, uint32_t sz, uint flags)
void cf_rchash_reduce(cf_rchash *h, cf_rchash_reduce_fn reduce_fn, void *udata)
int cf_rchash_delete(cf_rchash *h, void *key, uint32_t key_len)
cf_rchash_destructor_fn d_fn
void(* cf_rchash_destructor_fn)(void *object)