X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=libmemcached%2Fmemcached.h;h=e4510d6d9290f2f26f3c8e63c35c85b4b3b032d5;hb=05a7455d43e7303d4accb71eba006b8ed70afed9;hp=4337f4fbfbd876f86ff66bfa1afc827baf69f6f2;hpb=ac40b10adf3a182fe62d24899eb96c10364ba91b;p=m6w6%2Flibmemcached diff --git a/libmemcached/memcached.h b/libmemcached/memcached.h index 4337f4fb..e4510d6d 100644 --- a/libmemcached/memcached.h +++ b/libmemcached/memcached.h @@ -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; @@ -112,6 +115,12 @@ 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