hashkit_set_distribution_function(3)
libhashkit Documentation
Description
HASHKIT_SET_DISTRIBUTION_FUNCTION
NAME
hashkit_set_distribution_function - libhashkit Documentation
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)
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
|
• |
hash -- pointer to an initialized hashkit_st struct |
|||
|
• |
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
|
• |
hash -- pointer to initialized hashkit_st struct | ||
|
• |
function -- hashkit_hash_fn function pointer to use as hash function for HASHKIT_HASH_CUSTOM | ||
|
• |
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
|
• |
hash -- pointer to an initialized hashkit_st struct |
|||
|
• |
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
|
• |
hash -- pointer to initialized hashkit_st struct | ||
|
• |
function -- hashkit_hash_fn function pointer to use as distribution hash function for HASHKIT_HASH_CUSTOM | ||
|
• |
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)