X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=docs%2Fsource%2Flibmemcached%2Fmemcached_generate_hash_value.rst;h=b1e19e574d1deeb822e4f02861a8b45e38886ebb;hb=a0ee2a783e61b48a4a775340dcd662ac80edd869;hp=2c72cbbce02b4bc90cf762cf15b4d2386e364bb2;hpb=0a654f848e13d470fb07b044347f2e91d6941807;p=awesomized%2Flibmemcached diff --git a/docs/source/libmemcached/memcached_generate_hash_value.rst b/docs/source/libmemcached/memcached_generate_hash_value.rst index 2c72cbbc..b1e19e57 100644 --- a/docs/source/libmemcached/memcached_generate_hash_value.rst +++ b/docs/source/libmemcached/memcached_generate_hash_value.rst @@ -1,44 +1,57 @@ Generating hash values directly =============================== -.. index:: object: memcached_st - Hash a key value SYNOPSIS -------- #include - -.. type:: memcached_hash_t + Compile and link with -lmemcachedutil -lmemcached .. function:: uint32_t memcached_generate_hash_value (const char *key, size_t key_length, memcached_hash_t hash_algorithm) + :param key: the key to generate a hash of + :param key_length: the length of the `key` without any terminating zero + :param hash_algorithm: `memcached_hash_t`, the algorithm to use + :returns: a 32 bit hash value + .. function:: uint32_t memcached_generate_hash (memcached_st *ptr, const char *key, size_t key_length) -.. type:: MEMCACHED_HASH_DEFAULT + :param ptr: pointer to an initialized `memcached_st` struct + :param key: the key to generate a hash of + :param key_length: the length of the `key` without any terminating zero + :returns: a 32 bit hash value + +.. c:type:: enum memcached_hash_t memcached_hash_t + +.. enum:: memcached_hash_t + + .. enumerator:: MEMCACHED_HASH_DEFAULT + + .. enumerator:: MEMCACHED_HASH_MD5 + + .. enumerator:: MEMCACHED_HASH_CRC -.. type:: MEMCACHED_HASH_MD5 + .. enumerator:: MEMCACHED_HASH_FNV1_64 -.. type:: MEMCACHED_HASH_CRC + .. enumerator:: MEMCACHED_HASH_FNV1A_64 -.. type:: MEMCACHED_HASH_FNV1_64 + .. enumerator:: MEMCACHED_HASH_FNV1_32 -.. type:: MEMCACHED_HASH_FNV1A_64 + .. enumerator:: MEMCACHED_HASH_FNV1A_32 -.. type:: MEMCACHED_HASH_FNV1_32 + .. enumerator:: MEMCACHED_HASH_HSIEH -.. type:: MEMCACHED_HASH_FNV1A_32 + .. enumerator:: MEMCACHED_HASH_MURMUR -.. type:: MEMCACHED_HASH_JENKINS + .. enumerator:: MEMCACHED_HASH_JENKINS -.. type:: MEMCACHED_HASH_MURMUR + .. enumerator:: MEMCACHED_HASH_MURMUR3 -.. type:: MEMCACHED_HASH_HSIEH + .. enumerator:: MEMCACHED_HASH_CUSTOM -.. type:: MEMCACHED_HASH_MURMUR3 -Compile and link with -lmemcachedutil -lmemcached DESCRIPTION ----------- @@ -48,8 +61,9 @@ the hash functions defined in the library. This method is provided for the convenience of higher-level language bindings and is not necessary for normal memcache operations. -The allowed hash algorithm constants are listed in the manpage for -:func:`memcached_behavior_set`. +Support for `MEMCACHED_HASH_HSIEH` is a compile time option that is +disabled by default. To enable tests for this hashing algorithm, +configure and build libmemcached with the Hsieh hash enabled. :func:`memcached_generate_hash` takes a :type:`memcached_st` structure and produces the hash value that would have been generated based on the