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

NAME

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