Provided by: libhashkit-dev_1.1.4-1.1build3_amd64 bug

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)

              Parametershash -- 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)

              Parametershash -- pointer to initialized hashkit_st struct

                     • function   --   hashkit_hash_fn   function   pointer   to   use   as  hash  function  for
                       HASHKIT_HASH_CUSTOMcontext -- 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)

              Parametershash -- 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)

              Parametershash -- pointer to initialized hashkit_st struct

                     • function -- hashkit_hash_fn function pointer to use as  distribution  hash  function  for
                       HASHKIT_HASH_CUSTOMcontext  --  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)