X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=lib%2Fcommon.h;h=96fc3981596acc29f4d5a14a14f44f722db2e153;hb=e1944ccd4d1e65f4192783fa9c564c9b747bb618;hp=1e564cf5f894d5a00533916ee10bca6e9544b703;hpb=8d0cd77fc7bafd1f353bc7c50910b751766f931a;p=m6w6%2Flibmemcached diff --git a/lib/common.h b/lib/common.h index 1e564cf5..96fc3981 100644 --- a/lib/common.h +++ b/lib/common.h @@ -19,6 +19,10 @@ #include #include #include +#include +#include +#include + #include @@ -36,6 +40,11 @@ #define MEMCACHED_BLOCK_SIZE 1024 +typedef enum { + MEM_NO_FLUSH, + MEM_FLUSH, +} memcached_flush_action; + typedef enum { MEM_NO_BLOCK= (1 << 0), MEM_TCP_NODELAY= (1 << 1), @@ -44,19 +53,21 @@ typedef enum { MEM_USE_KETAMA= (1 << 4), MEM_USE_CRC= (1 << 5), MEM_USE_CACHE_LOOKUPS= (1 << 6), + MEM_SUPPORT_CAS= (1 << 7), } memcached_flags; /* Hashing algo */ void md5_signature(unsigned char *key, unsigned int length, unsigned char *result); uint32_t hash_crc32(const char *data, size_t data_len); +uint32_t hsieh_hash(char *key, size_t key_length); memcached_return memcached_connect(memcached_st *ptr, unsigned int server_key); memcached_return memcached_response(memcached_st *ptr, char *buffer, size_t buffer_length, unsigned int server_key); unsigned int memcached_generate_hash(memcached_st *ptr, char *key, size_t key_length); -void memcached_quit_server(memcached_st *ptr, unsigned int server_key); +void memcached_quit_server(memcached_st *ptr, unsigned int server_key, uint8_t io_death); #define memcached_server_response_increment(A,B) A->hosts[B].stack_responses++ #define memcached_server_response_decrement(A,B) A->hosts[B].stack_responses-- @@ -82,6 +93,8 @@ void memcached_string_free(memcached_string_st *string); memcached_return memcached_do(memcached_st *ptr, unsigned int server_key, char *commmand, size_t command_length, char with_flush); memcached_return memcached_version(memcached_st *ptr); +memcached_return memcached_finish_server(memcached_st *ptr, unsigned int server_key); +void memcached_finish(memcached_st *ptr);