X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=include%2Flibhashkit-1.0%2Fhashkit.h;fp=include%2Flibhashkit-1.0%2Fhashkit.h;h=9842f8eb5e0723a203b4c9eccee477113ec9ce37;hb=5070db19f82c59353c86b3d43d81f309cdaab250;hp=0000000000000000000000000000000000000000;hpb=b67f4bdf1fb6bf72e6cb26a1f06cd54d7683c12a;p=awesomized%2Flibmemcached diff --git a/include/libhashkit-1.0/hashkit.h b/include/libhashkit-1.0/hashkit.h new file mode 100644 index 00000000..9842f8eb --- /dev/null +++ b/include/libhashkit-1.0/hashkit.h @@ -0,0 +1,82 @@ +/* + +--------------------------------------------------------------------+ + | libmemcached - C/C++ Client Library for memcached | + +--------------------------------------------------------------------+ + | Redistribution and use in source and binary forms, with or without | + | modification, are permitted under the terms of the BSD license. | + | You should have received a copy of the license in a bundled file | + | named LICENSE; in case you did not receive a copy you can review | + | the terms online at: https://opensource.org/licenses/BSD-3-Clause | + +--------------------------------------------------------------------+ + | Copyright (c) 2006-2014 Brian Aker https://datadifferential.com/ | + | Copyright (c) 2020 Michael Wallner | + +--------------------------------------------------------------------+ +*/ + +#pragma once + +#if !defined(__cplusplus) +# include +# include +#else +# include +#endif +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +struct hashkit_st { + struct hashkit_function_st { + hashkit_hash_fn function; + void *context; + } base_hash, distribution_hash; + + struct { + bool is_base_same_distributed : 1; + } flags; + + struct { + bool is_allocated : 1; + } options; + + void *_key; +}; + +#ifdef __cplusplus +extern "C" { +#endif + +HASHKIT_API +hashkit_st *hashkit_create(hashkit_st *hash); + +HASHKIT_API +hashkit_st *hashkit_clone(hashkit_st *destination, const hashkit_st *ptr); + +HASHKIT_API +bool hashkit_compare(const hashkit_st *first, const hashkit_st *second); + +HASHKIT_API +void hashkit_free(hashkit_st *hash); + +HASHKIT_API +hashkit_string_st *hashkit_encrypt(hashkit_st *, const char *source, size_t source_length); + +HASHKIT_API +hashkit_string_st *hashkit_decrypt(hashkit_st *, const char *source, size_t source_length); + +HASHKIT_API +bool hashkit_key(hashkit_st *, const char *key, const size_t key_length); + +#ifdef __cplusplus +} // extern "C" +#endif