Merge in updates for server failure testing.
[awesomized/libmemcached] / libmemcached / memcached.h
index 1654ee1d04a334483ff6307b0fb29737bd55610d..3c29a5e14c899442068cf4df38fec92078a8e989 100644 (file)
@@ -35,8 +35,7 @@
  *
  */
 
-#ifndef __LIBMEMCACHED_MEMCACHED_H__
-#define __LIBMEMCACHED_MEMCACHED_H__
+#pragma once
 
 #include <inttypes.h>
 #include <stdlib.h>
 #include <libmemcached/configure.h>
 #include <libmemcached/platform.h>
 #include <libmemcached/constants.h>
+#include <libmemcached/return.h>
 #include <libmemcached/types.h>
 #include <libmemcached/string.h>
 #include <libmemcached/array.h>
 #include <libmemcached/error.h>
 #include <libmemcached/stats.h>
 #include <libhashkit/hashkit.h>
+
 // Everything above this line must be in the order specified.
 #include <libmemcached/allocators.h>
 #include <libmemcached/analyze.h>
@@ -70,6 +71,7 @@
 #include <libmemcached/flush_buffers.h>
 #include <libmemcached/get.h>
 #include <libmemcached/hash.h>
+#include <libmemcached/namespace.h>
 #include <libmemcached/options.h>
 #include <libmemcached/parse.h>
 #include <libmemcached/quit.h>
@@ -97,7 +99,7 @@ struct memcached_st {
     bool auto_eject_hosts:1;
     bool binary_protocol:1;
     bool buffer_requests:1;
-    bool hash_with_prefix_key:1;
+    bool hash_with_namespace:1;
     bool no_block:1; // Don't block
     bool no_reply:1;
     bool randomize_replica_read:1;
@@ -111,6 +113,9 @@ struct memcached_st {
 
   memcached_server_distribution_t distribution;
   hashkit_st hashkit;
+  struct {
+    unsigned int version;
+  } server_info;
   uint32_t number_of_hosts;
   memcached_server_st *servers;
   memcached_server_st *last_disconnected_server;
@@ -122,14 +127,13 @@ struct memcached_st {
   uint32_t io_key_prefetch;
   uint32_t tcp_keepidle;
   int32_t poll_timeout;
-  int32_t connect_timeout;
+  int32_t connect_timeout; // How long we will wait on connect() before we will timeout
   int32_t retry_timeout;
   int send_size;
   int recv_size;
   void *user_data;
   uint64_t query_id;
   uint32_t number_of_replicas;
-  hashkit_st distribution_hashkit;
   memcached_result_st result;
 
   struct {
@@ -142,13 +146,7 @@ struct memcached_st {
 
   struct memcached_virtual_bucket_t *virtual_bucket;
 
-  struct _allocators_st {
-    memcached_calloc_fn calloc;
-    memcached_free_fn free;
-    memcached_malloc_fn malloc;
-    memcached_realloc_fn realloc;
-    void *context;
-  } allocators;
+  struct memcached_allocator_t allocators;
 
   memcached_clone_fn on_clone;
   memcached_cleanup_fn on_cleanup;
@@ -157,10 +155,11 @@ struct memcached_st {
   memcached_callback_st *callbacks;
   struct memcached_sasl_st sasl;
   struct memcached_error_t *error_messages;
-  struct memcached_array_st *prefix_key;
+  struct memcached_array_st *_namespace;
   struct {
     uint32_t initial_pool_size;
     uint32_t max_pool_size;
+    int32_t version; // This is used by pool and others to determine if the memcached_st is out of date.
     struct memcached_array_st *filename;
   } configure;
   struct {
@@ -180,7 +179,7 @@ LIBMEMCACHED_API
 memcached_st *memcached_create(memcached_st *ptr);
 
 LIBMEMCACHED_API
-memcached_st *memcached_create_with_options(const char *string, size_t string_length);
+memcached_st *memcached(const char *string, size_t string_length);
 
 LIBMEMCACHED_API
 void memcached_free(memcached_st *ptr);
@@ -209,9 +208,9 @@ memcached_server_instance_st memcached_server_instance_by_position(const memcach
 LIBMEMCACHED_API
 uint32_t memcached_server_count(const memcached_st *);
 
+LIBMEMCACHED_API
+uint64_t memcached_query_id(const memcached_st *);
+
 #ifdef __cplusplus
 } // extern "C"
 #endif
-
-#endif /* __LIBMEMCACHED_MEMCACHED_H__ */
-