X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=include%2Flibhashkit-1%2Fhashkit.h;fp=include%2Flibhashkit-1%2Fhashkit.h;h=5e01939dd960af59ee82b9a6c7588465edb6d724;hb=3ffc968aaf182bf1ff1e18157c7bde2bdb41668d;hp=0000000000000000000000000000000000000000;hpb=a20205ad8b1a30fbc419e016a633b40b739073c7;p=awesomized%2Flibmemcached diff --git a/include/libhashkit-1/hashkit.h b/include/libhashkit-1/hashkit.h new file mode 100644 index 00000000..5e01939d --- /dev/null +++ b/include/libhashkit-1/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