Set Hash Function¶
SYNOPSIS¶
- #include <libhashkit-1.0/hashkit.h>
- Compile and link with -lhashkit
-
typedef uint32_t (*
hashkit_hash_fn
)(const char *key, size_t key_length, void *context)¶ Parameters: - key -- the key to generate a hash of
- key_length -- the length of the
key
without any terminating zero byte - context -- the custom hash function context set through
hashkit_set_custom_function()
orhashkit_set_custom_distribution_function()
Returns: the custom hash function should return a hash value for
key
as an unsigned 32bit integer
-
enum hashkit_return_t
hashkit_return_t
¶
-
enum
hashkit_return_t
¶ -
enumerator
HASHKIT_SUCCESS
¶ Operation succeeded.
-
enumerator
HASHKIT_FAILURE
¶ Operation failed.
-
enumerator
HASHKIT_MEMORY_ALLOCATION_FAILURE
¶ Memory allocation failed.
-
enumerator
HASHKIT_INVALID_HASH
¶ Invalid
hashkit_hash_algorithm_t
passed.
-
enumerator
HASHKIT_INVALID_ARGUMENT
¶ Invalid argument passed.
-
enumerator
-
enum hashkit_hash_algorithm_t
hashkit_hash_algorithm_t
¶
-
enum
hashkit_hash_algorithm_t
¶ -
enumerator
HASHKIT_HASH_DEFAULT
¶ Default hash algorithm (one_at_a_time).
-
enumerator
HASHKIT_HASH_MD5
¶
-
enumerator
HASHKIT_HASH_CRC
¶
-
enumerator
HASHKIT_HASH_FNV1_64
¶
-
enumerator
HASHKIT_HASH_FNV1A_64
¶
-
enumerator
HASHKIT_HASH_FNV1_32
¶
-
enumerator
HASHKIT_HASH_FNV1A_32
¶
-
enumerator
HASHKIT_HASH_HSIEH
¶ Only available if
libhashkit
hash been built with HSIEH support.
-
enumerator
HASHKIT_HASH_MURMUR
¶ Only available if
libhashkit
has been built with MURMUR support.
-
enumerator
HASHKIT_HASH_MURMUR3
¶ Only available if
libhashkit
has been built with MURMUR support.
-
enumerator
HASHKIT_HASH_JENKINS
¶
-
enumerator
HASHKIT_HASH_CUSTOM
¶ Use custom
hashkit_hash_fn
function set throughhashkit_set_custom_function()
orhashkit_set_custom_distribution_function()
.
-
enumerator
-
hashkit_return_t
hashkit_set_function
(hashkit_st *hash, hashkit_hash_algorithm_t hash_algorithm)¶ Parameters: - hash -- pointer to an initialized
hashkit_st
struct - hash_algorithm -- valid
hashkit_hash_algorithm_t
constant
Returns: hashkit_return_t
indicating success or failure- hash -- pointer to an initialized
-
hashkit_return_t
hashkit_set_custom_function
(hashkit_st *hash, hashkit_hash_fn function, void *context)¶ Parameters: - hash -- pointer to initialized
hashkit_st
struct - function --
hashkit_hash_fn
function pointer to use as hash function forHASHKIT_HASH_CUSTOM
- context -- pointer to an opaque user managed context for the custom hash function
Returns: hashkit_return_t
indicating success or failure- hash -- pointer to initialized
-
hashkit_hash_algorithm_t
hashkit_get_function
(const hashkit_st *hash)¶ Parameters: hash -- pointer to an initialized hashkit_st
structReturns: hashkit_hash_algorithm_t
indicating the currently set hash algorithm to use
-
hashkit_return_t
hashkit_set_distribution_function
(hashkit_st *hash, hashkit_hash_algorithm_t hash_algorithm)¶ Parameters: - hash -- pointer to an initialized
hashkit_st
struct - hash_algorithm -- valid
hashkit_hash_algrothm_t
constant
Returns: hashkit_return_t
indicating success or failure- hash -- pointer to an initialized
-
hashkit_return_t
hashkit_set_custom_distribution_function
(hashkit_st *hash, hashkit_hash_fn function, void *context)¶ Parameters: - hash -- pointer to initialized
hashkit_st
struct - function --
hashkit_hash_fn
function pointer to use as distribution hash function forHASHKIT_HASH_CUSTOM
- context -- pointer to an opaque user managed context for the custom distribution hash function
- hash -- pointer to initialized
-
hashkit_hash_algorithm_t
hashkit_get_distribution_function
(const hashkit_st *hash)¶ Parameters: hash -- pointer to an initialized hashkit_st
structReturns: hashkit_hash_algorithm_t
indicating the currently set distribution hash algorithm to use
DESCRIPTION¶
These functions are used to set and retrieve the key and distribution hash functions.
RETURN VALUE¶
hashkit_set_function()
, hashkit_set_custom_function()
and the distribution
equivalents return hashkit_return_t::HASHKIT_SUCCESS
on success.
hashkit_get_function()
and hashkit_get_distribution_function()
return
hashkit_hash_algorithm_t
indicating the hash function used.