41 xroad_mem_pool_t* pool;
65 #define xroad_hash_create(...) \
67 xroad_hash_va_args_t args = {__VA_ARGS__}; \
68 xroad_hash_create_ex(args.size, args.hash, args.equal, args.dtor, args.pool); \
77 #define __xroad_hash_dtor__ __dtor__(xroad_hash_destructor)
78 void xroad_hash_destructor(
void* hash);
91 xroad_hash_t* hash,
const void* key, uint32_t key_size,
const void* value, uint32_t value_size);
Definition: xroad_hash.h:48
xroad_hash_entry_t * entry
inserted or existing entry
Definition: xroad_hash.h:49
xroad_errno_t result
result of insertion
Definition: xroad_hash.h:50
Definition: xroad_hash.h:36
struct xroad_list_s xroad_list_t
see common/xroad_list.h for deaails
Definition: xroad_common_fwd.h:24
struct xroad_hash_s xroad_hash_t
see common/xroad_hash.h for details
Definition: xroad_common_fwd.h:14
int32_t(* xroad_hash_equal_func_t)(const void *, uint32_t, const void *, uint32_t)
Definition: xroad_hash.h:25
void xroad_hash_destroy(xroad_hash_t *hash)
uint32_t xroad_hash_entry_get_key_size(const xroad_hash_entry_t *entry)
xroad_hash_entry_t * xroad_hash_find(xroad_hash_t *hash, const void *key, uint32_t key_size)
xroad_hash_entry_t * xroad_hash_entry_set_value(xroad_hash_entry_t *entry, const void *value, uint32_t value_size, xroad_hash_free_func_t free_func)
void(* xroad_hash_free_func_t)(void *, uint32_t, void *, uint32_t)
Definition: xroad_hash.h:30
void * xroad_hash_entry_get_value(xroad_hash_entry_t *entry)
xroad_hash_entry_t * xroad_hash_get_next(xroad_hash_entry_t *entry)
xroad_hash_t * xroad_hash_create_ex(uint32_t size, xroad_hash_func_t hash_func, xroad_hash_equal_func_t equal_func, xroad_hash_free_func_t free_func, xroad_mem_pool_t *pool)
void xroad_hash_clear(xroad_hash_t *hash)
xroad_hash_entry_t * xroad_hash_entry_delete_next(xroad_hash_entry_t *entry, xroad_hash_free_func_t free_func)
uint32_t xroad_hash_entry_get_value_size(const xroad_hash_entry_t *entry)
xroad_errno_t xroad_hash_delete(xroad_hash_t *hash, const void *key, uint32_t key_size, xroad_hash_free_func_t free_func)
xroad_list_t * xroad_hash_to_list(xroad_hash_t *hash)
xroad_hash_entry_t * xroad_hash_get_first(xroad_hash_t *hash)
uint32_t xroad_hash_get_size(xroad_hash_t *hash)
xroad_hash_ins_res_t xroad_hash_insert(xroad_hash_t *hash, const void *key, uint32_t key_size, const void *value, uint32_t value_size)
uint32_t(* xroad_hash_func_t)(const uint8_t *, uint32_t)
Definition: xroad_hash.h:20
void * xroad_hash_entry_get_key(xroad_hash_entry_t *entry)
xroad_errno_t xroad_hash_entry_delete(xroad_hash_entry_t *entry, xroad_hash_free_func_t free_func)