HASHKIT_GET_DISTRIBUTION_FUNCTION(3) libmemcached-awesome NAME hashkit_get_distribution_function - libhashkit Documentation SYNOPSIS #include Compile and link with -lhashkit typedef uint32_t (*hashkit_hash_fn)(const char *key, size_t key_length, void *context) Param key the key to generate a hash of Param key_length the length of the key without any terminating zero byte Param context the custom hash function context set through hashkit_set_custom_function() or hashkit_set_custom_distribution_function() Returns the custom hash function should return a hash value for key as an unsigned 32bit integer typedef 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. typedef 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 through hashkit_set_custom_function() or hashkit_set_custom_distribution_function(). hashkit_return_t hashkit_set_function(hashkit_st *hash, hashkit_hash_algorithm_t hash_algorithm) Parameters o hash -- pointer to an initialized hashkit_st struct o hash_algorithm -- valid hashkit_hash_algorithm_t constant Returns hashkit_return_t indicating success or failure hashkit_return_t hashkit_set_custom_function(hashkit_st *hash, hashkit_hash_fn function, void *context) Parameters o hash -- pointer to initialized hashkit_st struct o function -- hashkit_hash_fn function pointer to use as hash function for HASHKIT_HASH_CUSTOM o context -- pointer to an opaque user managed context for the custom hash function Returns hashkit_return_t indicating success or failure hashkit_hash_algorithm_t hashkit_get_function(const hashkit_st *hash) Parameters hash -- pointer to an initialized hashkit_st struct Returns 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 o hash -- pointer to an initialized hashkit_st struct o hash_algorithm -- valid hashkit_hash_algrothm_t constant Returns hashkit_return_t indicating success or failure hashkit_return_t hashkit_set_custom_distribution_function(hashkit_st *hash, hashkit_hash_fn function, void *context) Parameters o hash -- pointer to initialized hashkit_st struct o function -- hashkit_hash_fn function pointer to use as distribution hash function for HASHKIT_HASH_CUSTOM o context -- pointer to an opaque user managed context for the custom distribution hash function hashkit_hash_algorithm_t hashkit_get_distribution_function(const hashkit_st *hash) Parameters hash -- pointer to an initialized hashkit_st struct Returns 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. SEE ALSO libhashkit(3) hashkit_create(3) hashkit_functions(3) 1.1 May 1, 2024 HASHKIT_GET_DISTRIBUTION_FUNCTION(3)