X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=libhashkit%2Fhashkit.h;h=451333075f225c83641647dcd93065db946935f1;hb=2230ba7b89bbaa989de311f9d7ea6d6e2cd5a9b8;hp=8b7985ac6050cd6b2684af82f51adcc0a101dd68;hpb=c15e27789bf0ba95ae05e70628a1eb39016159c9;p=m6w6%2Flibmemcached diff --git a/libhashkit/hashkit.h b/libhashkit/hashkit.h index 8b7985ac..45133307 100644 --- a/libhashkit/hashkit.h +++ b/libhashkit/hashkit.h @@ -16,6 +16,7 @@ #include #include #include +#include #include #include #include @@ -63,35 +64,32 @@ struct hashkit_st struct { bool is_allocated:1; } options; +}; #ifdef __cplusplus +class Hashkit : private hashkit_st { + +public: - hashkit_st() : - base_hash(), - distribution_hash(), - flags(), - options() + Hashkit() { hashkit_create(this); } - hashkit_st(const hashkit_st& source) : - base_hash(), - distribution_hash(), - flags(), - options() + Hashkit(const Hashkit& source) { hashkit_clone(this, &source); } - hashkit_st& operator=(const hashkit_st& source) - { + Hashkit& operator=(const Hashkit& source) + { + hashkit_free(this); hashkit_clone(this, &source); return *this; } - friend bool operator==(const hashkit_st &left, const hashkit_st &right) + friend bool operator==(const Hashkit &left, const Hashkit &right) { return hashkit_compare(&left, &right); } @@ -116,12 +114,12 @@ struct hashkit_st return hashkit_set_function(this, hash_algorithm); } - ~hashkit_st() + ~Hashkit() { hashkit_free(this); } -#endif }; +#endif #endif /* HASHKIT_H */