X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=libhashkit%2Fhashkit.h;h=1def040dc7cfd44c311feae5e28facf482b278e7;hb=e4de44ab09f5ff7fdf10c8cdfce95f361b62b4ae;hp=687093585a92350304e76ad27dcebb435200d415;hpb=98d4dea6ae8869b6fe5e37a2908d66ff062b8f39;p=awesomized%2Flibmemcached diff --git a/libhashkit/hashkit.h b/libhashkit/hashkit.h index 68709358..1def040d 100644 --- a/libhashkit/hashkit.h +++ b/libhashkit/hashkit.h @@ -18,6 +18,7 @@ #include #include #include +#include #include #ifdef __cplusplus @@ -26,10 +27,14 @@ extern "C" { struct hashkit_st { - struct { + struct hashkit_function_st { hashkit_hash_fn function; void *context; - } base_hash; + } base_hash, distribution_hash; + + struct { + bool is_base_same_distributed:1; + } flags; struct { bool is_allocated:1; @@ -43,19 +48,10 @@ HASHKIT_API hashkit_st *hashkit_clone(hashkit_st *destination, const hashkit_st *ptr); HASHKIT_API -void hashkit_free(hashkit_st *hash); - -HASHKIT_API -uint32_t hashkit_generate_value(const hashkit_st *self, const char *key, size_t key_length); +bool hashkit_compare(const hashkit_st *first, const hashkit_st *second); HASHKIT_API -hashkit_return_t hashkit_set_base_function(hashkit_st *hash, hashkit_hash_algorithm_t hash_algorithm); - -HASHKIT_API -hashkit_return_t hashkit_set_base_function_custom(hashkit_st *hash, hashkit_hash_fn function, void *context); - -HASHKIT_API -uint32_t libhashkit_generate_value(const char *key, size_t key_length, hashkit_hash_algorithm_t hash_algorithm); +void hashkit_free(hashkit_st *hash); #define hashkit_is_allocated(__object) ((__object)->options.is_allocated) #define hashkit_is_initialized(__object) ((__object)->options.is_initialized)