X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=libmemcached%2Fmemcached.h;h=e4510d6d9290f2f26f3c8e63c35c85b4b3b032d5;hb=05a7455d43e7303d4accb71eba006b8ed70afed9;hp=95592a487490d85a7531123adb716a48a016c98c;hpb=95fd67da4903671adb5731b710798843938e8536;p=m6w6%2Flibmemcached diff --git a/libmemcached/memcached.h b/libmemcached/memcached.h index 95592a48..e4510d6d 100644 --- a/libmemcached/memcached.h +++ b/libmemcached/memcached.h @@ -24,7 +24,7 @@ #include #include -#include +#include #include #include #include @@ -49,11 +49,12 @@ struct memcached_st { bool is_allocated:1; bool is_initialized:1; bool is_purging:1; + bool is_processing_input:1; } options; memcached_server_distribution_t distribution; memcached_hash_t hash; - uint32_t continuum_points_counter; - memcached_server_st *hosts; + uint32_t continuum_points_counter; // Ketama + memcached_server_st *servers; memcached_server_st *last_disconnected_server; int32_t snd_timeout; int32_t rcv_timeout; @@ -62,8 +63,10 @@ struct memcached_st { uint32_t io_bytes_watermark; uint32_t io_key_prefetch; uint32_t number_of_hosts; - uint32_t cursor_server; int cached_errno; + /** + @note these are static and should not change without a call to behavior. + */ struct { bool auto_eject_hosts:1; bool binary_protocol:1; @@ -84,16 +87,16 @@ struct memcached_st { int32_t poll_timeout; int32_t connect_timeout; int32_t retry_timeout; - uint32_t continuum_count; + uint32_t continuum_count; // Ketama int send_size; int recv_size; void *user_data; - time_t next_distribution_rebuild; + time_t next_distribution_rebuild; // Ketama size_t prefix_key_length; uint32_t number_of_replicas; memcached_hash_t distribution_hash; memcached_result_st result; - memcached_continuum_item_st *continuum; + memcached_continuum_item_st *continuum; // Ketama memcached_clone_fn on_clone; memcached_cleanup_fn on_cleanup; memcached_free_fn call_free; @@ -109,6 +112,15 @@ struct memcached_st { LIBMEMCACHED_API memcached_return_t memcached_version(memcached_st *ptr); +LIBMEMCACHED_API +void memcached_servers_reset(memcached_st *ptr); + +// Local Only Inline +static inline memcached_server_st *memcached_server_instance_fetch(memcached_st *ptr, uint32_t server_key) +{ + return &ptr->servers[server_key]; +} + /* Public API */ LIBMEMCACHED_API