add lcov and lcov-clean target
[m6w6/libmemcached] / libmemcached / memcached.h
index 4337f4fbfbd876f86ff66bfa1afc827baf69f6f2..e4510d6d9290f2f26f3c8e63c35c85b4b3b032d5 100644 (file)
@@ -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