X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=libhashkit%2Ffunction.c;h=a779bb63ff51b003515c07216e4e02c74780db52;hb=dac169cdb8e544f5967bb8d22f229b49d78afa9a;hp=445859d2c70ebf5b23afedad47101677abb02285;hpb=42771008c1a69a2bfac10bbc89d00094d738e896;p=awesomized%2Flibmemcached diff --git a/libhashkit/function.c b/libhashkit/function.c index 445859d2..a779bb63 100644 --- a/libhashkit/function.c +++ b/libhashkit/function.c @@ -8,11 +8,6 @@ #include "common.h" -uint32_t hashkit_generate_value(const hashkit_st *self, const char *key, size_t key_length) -{ - return self->base_hash.function(key, key_length, self->base_hash.context); -} - static hashkit_return_t _set_function(struct hashkit_function_st *self, hashkit_hash_algorithm_t hash_algorithm) { switch (hash_algorithm) @@ -46,16 +41,20 @@ static hashkit_return_t _set_function(struct hashkit_function_st *self, hashkit_ return HASHKIT_FAILURE; #endif case HASHKIT_HASH_MURMUR: +#ifdef HAVE_MURMUR_HASH self->function= hashkit_murmur; break; +#else + return HASHKIT_FAILURE; +#endif case HASHKIT_HASH_JENKINS: self->function= hashkit_jenkins; break; case HASHKIT_HASH_CUSTOM: + return HASHKIT_INVALID_ARGUMENT; case HASHKIT_HASH_MAX: default: - return HASHKIT_FAILURE; - break; + return HASHKIT_INVALID_HASH; } self->context= NULL; @@ -132,10 +131,12 @@ static hashkit_hash_algorithm_t get_function_type(const hashkit_hash_fn function return HASHKIT_HASH_HSIEH; } #endif +#ifdef HAVE_MURMUR_HASH else if (function == hashkit_murmur) { return HASHKIT_HASH_MURMUR; } +#endif else if (function == hashkit_jenkins) { return HASHKIT_HASH_JENKINS; @@ -153,45 +154,3 @@ hashkit_hash_algorithm_t hashkit_get_distribution_function(const hashkit_st *sel { return get_function_type(self->distribution_hash.function); } - -uint32_t libhashkit_generate_value(const char *key, size_t key_length, hashkit_hash_algorithm_t hash_algorithm) -{ - switch (hash_algorithm) - { - case HASHKIT_HASH_DEFAULT: - return libhashkit_one_at_a_time(key, key_length); - case HASHKIT_HASH_MD5: - return libhashkit_md5(key, key_length); - case HASHKIT_HASH_CRC: - return libhashkit_crc32(key, key_length); - case HASHKIT_HASH_FNV1_64: - return libhashkit_fnv1_64(key, key_length); - case HASHKIT_HASH_FNV1A_64: - return libhashkit_fnv1a_64(key, key_length); - case HASHKIT_HASH_FNV1_32: - return libhashkit_fnv1_32(key, key_length); - case HASHKIT_HASH_FNV1A_32: - return libhashkit_fnv1a_32(key, key_length); - case HASHKIT_HASH_HSIEH: -#ifdef HAVE_HSIEH_HASH - return libhashkit_hsieh(key, key_length); -#else - return 1; -#endif - case HASHKIT_HASH_MURMUR: - return libhashkit_murmur(key, key_length); - case HASHKIT_HASH_JENKINS: - return libhashkit_jenkins(key, key_length); - case HASHKIT_HASH_CUSTOM: - case HASHKIT_HASH_MAX: - default: -#ifdef HAVE_DEBUG - fprintf(stderr, "hashkit_hash_t was extended but libhashkit_generate_value was not updated\n"); - fflush(stderr); - assert(0); -#endif - break; - } - - return 1; -}