First pass through turning instance into ++
authorBrian Aker <brian@tangent.org>
Sat, 7 Jul 2012 09:48:42 +0000 (02:48 -0700)
committerBrian Aker <brian@tangent.org>
Sat, 7 Jul 2012 09:48:42 +0000 (02:48 -0700)
49 files changed:
libmemcached-1.0/server.h
libmemcached-1.0/struct/memcached.h
libmemcached-1.0/types.h
libmemcached/auto.cc
libmemcached/behavior.cc
libmemcached/common.h
libmemcached/connect.cc
libmemcached/connect.hpp
libmemcached/delete.cc
libmemcached/do.cc
libmemcached/do.hpp
libmemcached/dump.cc
libmemcached/error.cc
libmemcached/error.hpp
libmemcached/exist.cc
libmemcached/fetch.cc
libmemcached/flush.cc
libmemcached/flush_buffers.cc
libmemcached/get.cc
libmemcached/hosts.cc
libmemcached/instance.cc
libmemcached/instance.h
libmemcached/instance.hpp
libmemcached/io.cc
libmemcached/io.hpp
libmemcached/memcached.cc
libmemcached/purge.cc
libmemcached/quit.cc
libmemcached/quit.hpp
libmemcached/response.cc
libmemcached/response.h
libmemcached/sasl.cc
libmemcached/sasl.hpp
libmemcached/server.cc
libmemcached/server.hpp
libmemcached/server_instance.h
libmemcached/server_list.cc
libmemcached/server_list.hpp
libmemcached/stats.cc
libmemcached/storage.cc
libmemcached/touch.cc
libmemcached/udp.cc
libmemcached/udp.hpp
libmemcached/verbosity.cc
libmemcached/version.cc
tests/libmemcached-1.0/debug.cc
tests/libmemcached-1.0/ketama.cc
tests/libmemcached-1.0/mem_functions.cc
tests/libmemcached-1.0/replication.cc

index f6430ecadee90c8cf00839ebdb4af147753ce586..dc650d2a041867a2f17b59e96f941ef36d114494 100644 (file)
@@ -103,6 +103,9 @@ const char *memcached_server_name(const memcached_server_instance_st self);
 LIBMEMCACHED_API
 in_port_t memcached_server_port(const memcached_server_instance_st self);
 
+LIBMEMCACHED_API
+void memcached_instance_next_retry(memcached_server_instance_st self, const time_t absolute_time);
+
 LIBMEMCACHED_API
 const char *memcached_server_type(const memcached_server_instance_st ptr);
 
index 138f9ef9ea623e9c88bc5fcd6ee90d1a07298702..3de83a076860aabaae1ebb1174f82afafec761d2 100644 (file)
@@ -71,8 +71,13 @@ struct memcached_st {
     unsigned int version;
   } server_info;
   uint32_t number_of_hosts;
-  struct memcached_instance_st *servers;
-  struct memcached_instance_st *last_disconnected_server;
+#ifdef __cplusplus
+  org::libmemcached::Instance* servers;
+  org::libmemcached::Instance* last_disconnected_server;
+#else
+  void *servers;
+  void *last_disconnected_server;
+#endif
   int32_t snd_timeout;
   int32_t rcv_timeout;
   uint32_t server_failure_limit;
index 7ae29c2e495b021683b9ebd5fc82bf85d3f5fe5f..bb7e1a6549abcde41d103908f18fc3f6783bdddc 100644 (file)
@@ -39,6 +39,9 @@
 #pragma once
 
 #ifdef __cplusplus
+
+namespace org { namespace libmemcached { class Instance; } }
+
 struct memcached_st;
 struct memcached_stat_st;
 struct memcached_analysis_st;
@@ -49,7 +52,7 @@ struct memcached_error_t;
 // All of the flavors of memcache_server_st
 struct memcached_server_st;
 struct memcached_instance_st;
-typedef const struct memcached_instance_st *memcached_server_instance_st;
+typedef const org::libmemcached::Instance* memcached_server_instance_st;
 typedef struct memcached_server_st *memcached_server_list_st;
 
 struct memcached_callback_st;
@@ -70,7 +73,7 @@ typedef struct memcached_error_t memcached_error_t;
 
 // All of the flavors of memcache_server_st
 typedef struct memcached_server_st memcached_server_st;
-typedef const struct memcached_server_st *memcached_server_instance_st;
+typedef const void *memcached_server_instance_st;
 typedef struct memcached_server_st *memcached_server_list_st;
 
 typedef struct memcached_callback_st memcached_callback_st;
index adce334873fe69b15bc0abe8ec6abfe195d313ec..4196b6683deb4fc8a8affa6db2bd29ca584a4103 100644 (file)
@@ -37,7 +37,7 @@
 
 #include <libmemcached/common.h>
 
-static void auto_response(memcached_server_write_instance_st instance, const bool reply,  memcached_return_t& rc, uint64_t* value)
+static void auto_response(org::libmemcached::Instance* instance, const bool reply,  memcached_return_t& rc, uint64_t* value)
 {
   // If the message was successfully sent, then get the response, otherwise
   // fail.
@@ -62,7 +62,7 @@ static void auto_response(memcached_server_write_instance_st instance, const boo
   }
 }
 
-static memcached_return_t text_incr_decr(memcached_server_write_instance_st instance,
+static memcached_return_t text_incr_decr(org::libmemcached::Instance* instance,
                                          const bool is_incr,
                                          const char *key, size_t key_length,
                                          const uint64_t offset,
@@ -96,7 +96,7 @@ static memcached_return_t text_incr_decr(memcached_server_write_instance_st inst
   return memcached_vdo(instance, vector, 7, true);
 }
 
-static memcached_return_t binary_incr_decr(memcached_server_write_instance_st instance,
+static memcached_return_t binary_incr_decr(org::libmemcached::Instance* instance,
                                            protocol_binary_command cmd,
                                            const char *key, const size_t key_length,
                                            const uint64_t offset,
@@ -179,7 +179,7 @@ static memcached_return_t increment_decrement_by_key(const protocol_binary_comma
   }
 
   uint32_t server_key= memcached_generate_hash_with_redistribution(memc, group_key, group_key_length);
-  memcached_server_write_instance_st instance= memcached_server_instance_fetch(memc, server_key);
+  org::libmemcached::Instance* instance= memcached_instance_fetch(memc, server_key);
 
   bool reply= memcached_is_replying(instance->root);
 
@@ -238,7 +238,7 @@ static memcached_return_t increment_decrement_with_initial_by_key(const protocol
   }
 
   uint32_t server_key= memcached_generate_hash_with_redistribution(memc, group_key, group_key_length);
-  memcached_server_write_instance_st instance= memcached_server_instance_fetch(memc, server_key);
+  org::libmemcached::Instance* instance= memcached_instance_fetch(memc, server_key);
 
   bool reply= memcached_is_replying(instance->root);
 
index fd096db24f5043cabceb7f2caae15f0b924205f5..e8bcf857c0bbbfdb013fa925283196888daebec4 100644 (file)
@@ -411,7 +411,7 @@ uint64_t memcached_behavior_get(memcached_st *ptr,
         return (uint64_t) ptr->send_size;
       }
 
-      memcached_server_write_instance_st instance= memcached_server_instance_fetch(ptr, 0);
+      org::libmemcached::Instance* instance= memcached_instance_fetch(ptr, 0);
 
       if (instance) // If we have an instance we test, otherwise we just set and pray
       {
@@ -445,7 +445,7 @@ uint64_t memcached_behavior_get(memcached_st *ptr,
       if (ptr->recv_size != -1) // If value is -1 then we are using the default
         return (uint64_t) ptr->recv_size;
 
-      memcached_server_write_instance_st instance= memcached_server_instance_fetch(ptr, 0);
+      org::libmemcached::Instance* instance= memcached_instance_fetch(ptr, 0);
 
       /**
         @note REFACTOR
index 92f44de4f7198ac489eec4d2efa7ae7578703e8c..ecaf5906dadc3f3113d34bdd8c7b1fd25e0c9bd9 100644 (file)
 #include "poll/poll.h"
 #endif
 
-
 #ifdef __cplusplus
 extern "C" {
 #endif
 
 typedef memcached_return_t (*memcached_server_execute_fn)(memcached_st *ptr, memcached_server_write_instance_st server, void *context);
 
-LIBMEMCACHED_LOCAL
-memcached_server_write_instance_st memcached_server_instance_fetch(memcached_st *ptr, uint32_t server_key);
-
-LIBMEMCACHED_LOCAL
-memcached_return_t memcached_server_execute(memcached_st *ptr,
-                                            memcached_server_execute_fn callback,
-                                            void *context);
 #ifdef __cplusplus
 } // extern "C"
 #endif
 
 
+#ifdef __cplusplus
+org::libmemcached::Instance* memcached_instance_fetch(memcached_st *ptr, uint32_t server_key);
+#endif
+
+memcached_return_t memcached_server_execute(memcached_st *ptr,
+                                            memcached_server_execute_fn callback,
+                                            void *context);
 /* These are private not to be installed headers */
 #include <libmemcached/error.hpp>
 #include <libmemcached/memory.h>
@@ -164,7 +163,6 @@ memcached_return_t memcached_server_execute(memcached_st *ptr,
 extern "C" {
 #endif
 
-LIBMEMCACHED_LOCAL
 memcached_return_t run_distribution(memcached_st *ptr);
 
 #define memcached_server_response_increment(A) (A)->cursor_active++
@@ -175,10 +173,11 @@ memcached_return_t run_distribution(memcached_st *ptr);
 #define memcached_instance_response_decrement(A) (A)->cursor_active--
 #define memcached_instance_response_reset(A) (A)->cursor_active=0
 
-bool memcached_purge(memcached_server_write_instance_st ptr);
-
-struct memcached_instance_st* memcached_instance_by_position(const memcached_st *ptr, uint32_t server_key);
-
 #ifdef __cplusplus
 }
 #endif
+
+#ifdef __cplusplus
+bool memcached_purge(org::libmemcached::Instance*);
+org::libmemcached::Instance* memcached_instance_by_position(const memcached_st *ptr, uint32_t server_key);
+#endif
index a8a2c5a4631126cef98200eacfe263a7ab680579..647ea03bceade3eb4fc87780ebec4988d94bbf0b 100644 (file)
@@ -46,7 +46,7 @@
 #define SOCK_CLOEXEC 0
 #endif
 
-static memcached_return_t connect_poll(memcached_instance_st *server)
+static memcached_return_t connect_poll(org::libmemcached::Instance* server)
 {
   struct pollfd fds[1];
   fds[0].fd= server->fd;
@@ -139,7 +139,7 @@ static memcached_return_t connect_poll(memcached_instance_st *server)
   return memcached_set_errno(*server, get_socket_errno(), MEMCACHED_AT);
 }
 
-static memcached_return_t set_hostinfo(memcached_instance_st *server)
+static memcached_return_t set_hostinfo(org::libmemcached::Instance* server)
 {
   assert(server->type != MEMCACHED_CONNECTION_UNIX_SOCKET);
   if (server->address_info)
@@ -150,8 +150,8 @@ static memcached_return_t set_hostinfo(memcached_instance_st *server)
   }
 
   char str_port[NI_MAXSERV];
-  int length= snprintf(str_port, NI_MAXSERV, "%u", (uint32_t)server->port);
-  if (length >= NI_MAXSERV or length < 0)
+  int length= snprintf(str_port, NI_MAXSERV, "%u", uint32_t(server->port()));
+  if (length >= NI_MAXSERV or length <= 0)
   {
     return MEMCACHED_FAILURE;
   }
@@ -203,7 +203,7 @@ static memcached_return_t set_hostinfo(memcached_instance_st *server)
   return MEMCACHED_SUCCESS;
 }
 
-static inline void set_socket_nonblocking(memcached_instance_st *server)
+static inline void set_socket_nonblocking(org::libmemcached::Instance* server)
 {
 #ifdef WIN32
   u_long arg= 1;
@@ -240,7 +240,7 @@ static inline void set_socket_nonblocking(memcached_instance_st *server)
 #endif
 }
 
-static void set_socket_options(memcached_instance_st *server)
+static void set_socket_options(org::libmemcached::Instance* server)
 {
   assert_msg(server->fd != INVALID_SOCKET, "invalid socket was passed to set_socket_options()");
 
@@ -349,7 +349,7 @@ static void set_socket_options(memcached_instance_st *server)
   set_socket_nonblocking(server);
 }
 
-static memcached_return_t unix_socket_connect(memcached_instance_st *server)
+static memcached_return_t unix_socket_connect(org::libmemcached::Instance* server)
 {
 #ifndef WIN32
   WATCHPOINT_ASSERT(server->fd == INVALID_SOCKET);
@@ -400,7 +400,7 @@ static memcached_return_t unix_socket_connect(memcached_instance_st *server)
 #endif
 }
 
-static memcached_return_t network_connect(memcached_instance_st *server)
+static memcached_return_t network_connect(org::libmemcached::Instance* server)
 {
   bool timeout_error_occured= false;
 
@@ -572,7 +572,7 @@ static memcached_return_t network_connect(memcached_instance_st *server)
   Based on time/failure count fail the connect without trying. This prevents waiting in a state where
   we get caught spending cycles just waiting.
 */
-static memcached_return_t backoff_handling(memcached_server_write_instance_st server, bool& in_timeout)
+static memcached_return_t backoff_handling(org::libmemcached::Instance* server, bool& in_timeout)
 {
   struct timeval curr_time;
   bool _gettime_success= (gettimeofday(&curr_time, NULL) == 0);
@@ -639,7 +639,7 @@ static memcached_return_t backoff_handling(memcached_server_write_instance_st se
   return MEMCACHED_SUCCESS;
 }
 
-static memcached_return_t _memcached_connect(memcached_server_write_instance_st server, const bool set_last_disconnected)
+static memcached_return_t _memcached_connect(org::libmemcached::Instance* server, const bool set_last_disconnected)
 {
   if (server->fd != INVALID_SOCKET)
   {
@@ -695,7 +695,7 @@ static memcached_return_t _memcached_connect(memcached_server_write_instance_st
 
   if (memcached_success(rc))
   {
-    memcached_mark_server_as_clean(server);
+    server->mark_server_as_clean();
     return rc;
   }
   else if (set_last_disconnected)
@@ -717,7 +717,7 @@ static memcached_return_t _memcached_connect(memcached_server_write_instance_st
     if (in_timeout)
     {
       char buffer[1024];
-      int snprintf_length= snprintf(buffer, sizeof(buffer), "%s:%d", server->hostname, int(server->port));
+      int snprintf_length= snprintf(buffer, sizeof(buffer), "%s:%d", server->hostname, int(server->port()));
       return memcached_set_error(*server, MEMCACHED_SERVER_TEMPORARILY_DISABLED, MEMCACHED_AT, buffer, snprintf_length);
     }
   }
@@ -725,12 +725,12 @@ static memcached_return_t _memcached_connect(memcached_server_write_instance_st
   return rc;
 }
 
-memcached_return_t memcached_connect_try(memcached_server_write_instance_st server)
+memcached_return_t memcached_connect_try(org::libmemcached::Instance* server)
 {
   return _memcached_connect(server, false);
 }
 
-memcached_return_t memcached_connect(memcached_server_write_instance_st server)
+memcached_return_t memcached_connect(org::libmemcached::Instance* server)
 {
   return _memcached_connect(server, true);
 }
index a37dbd76aaeb4502c8a9fc41ee36a8fed08a0194..964195130e49950e7e6c19e2fe32b529ff864b7d 100644 (file)
@@ -37,6 +37,6 @@
 
 #pragma once
 
-memcached_return_t memcached_connect_try(memcached_server_write_instance_st ptr);
-memcached_return_t memcached_connect(memcached_server_write_instance_st ptr);
+memcached_return_t memcached_connect_try(org::libmemcached::Instance*);
+memcached_return_t memcached_connect(org::libmemcached::Instance*);
 
index a96ecbace8627b5f66e978ae63ab783febad826b..a7526dfcf5dfe9573db1df3a00c73a30417eaf8f 100644 (file)
@@ -44,7 +44,7 @@ memcached_return_t memcached_delete(memcached_st *memc, const char *key, size_t
   return memcached_delete_by_key(memc, key, key_length, key, key_length, expiration);
 }
 
-static inline memcached_return_t ascii_delete(memcached_server_write_instance_st instance,
+static inline memcached_return_t ascii_delete(org::libmemcached::Instance* instance,
                                               uint32_t ,
                                               const char *key,
                                               const size_t key_length,
@@ -65,7 +65,7 @@ static inline memcached_return_t ascii_delete(memcached_server_write_instance_st
   return memcached_vdo(instance, vector, 6, is_buffering ? false : true);
 }
 
-static inline memcached_return_t binary_delete(memcached_server_write_instance_st instance,
+static inline memcached_return_t binary_delete(org::libmemcached::Instance* instance,
                                                uint32_t server_key,
                                                const char *key,
                                                const size_t key_length,
@@ -117,7 +117,7 @@ static inline memcached_return_t binary_delete(memcached_server_write_instance_s
         server_key= 0;
       }
 
-      memcached_server_write_instance_st replica= memcached_server_instance_fetch(instance->root, server_key);
+      org::libmemcached::Instance* replica= memcached_instance_fetch(instance->root, server_key);
 
       if (memcached_fatal(memcached_vdo(replica, vector, 4, should_flush)))
       {
@@ -158,7 +158,7 @@ memcached_return_t memcached_delete_by_key(memcached_st *memc,
   }
 
   uint32_t server_key= memcached_generate_hash_with_redistribution(memc, group_key, group_key_length);
-  memcached_server_write_instance_st instance= memcached_server_instance_fetch(memc, server_key);
+  org::libmemcached::Instance* instance= memcached_instance_fetch(memc, server_key);
   
   bool is_buffering= memcached_is_buffering(instance->root);
   bool is_replying= memcached_is_replying(instance->root);
index 61a143b888d798ace2a3361a63db912ab183b9a7..0d05ea6d4523675a6d89e0987e2ccd44b6b6c837 100644 (file)
@@ -11,7 +11,7 @@
 
 #include <libmemcached/common.h>
 
-memcached_return_t memcached_vdo(memcached_server_write_instance_st instance,
+memcached_return_t memcached_vdo(org::libmemcached::Instance* instance,
                                  libmemcached_io_vector_st vector[],
                                  const size_t count,
                                  const bool with_flush)
@@ -23,7 +23,7 @@ memcached_return_t memcached_vdo(memcached_server_write_instance_st instance,
   if (memcached_failed(rc= memcached_connect(instance)))
   {
     WATCHPOINT_ERROR(rc);
-    assert_msg(instance->error_messages, "memcached_connect() returned an error but the memcached_server_write_instance_st showed none.");
+    assert_msg(instance->error_messages, "memcached_connect() returned an error but the Instance showed none.");
     return rc;
   }
 
index 560c131829f3daef0906d9fc598d4c57395a3a36..109c0ac1e06317720f06591ba8021a4092759d11 100644 (file)
@@ -37,7 +37,7 @@
 
 #pragma once
 
-memcached_return_t memcached_vdo(memcached_server_write_instance_st ptr,
+memcached_return_t memcached_vdo(org::libmemcached::Instance* ptr,
                                  libmemcached_io_vector_st vector[],
                                  const size_t count,
                                  const bool with_flush);
index 05b4e5d6c8cf4b81fd50d6dcf5725dc5aa7c511f..618a63cd319b7e4d09cbe48a1e1cc224f2f23e3b 100644 (file)
@@ -68,7 +68,7 @@ static memcached_return_t ascii_dump(memcached_st *memc, memcached_dump_fn *call
     // Send message to all servers
     for (uint32_t server_key= 0; server_key < memcached_server_count(memc); server_key++)
     {
-      memcached_server_write_instance_st instance= memcached_server_instance_fetch(memc, server_key);
+      org::libmemcached::Instance* instance= memcached_instance_fetch(memc, server_key);
 
       memcached_return_t vdo_rc;
       if (memcached_success((vdo_rc= memcached_vdo(instance, vector, 3, true))))
@@ -82,7 +82,7 @@ static memcached_return_t ascii_dump(memcached_st *memc, memcached_dump_fn *call
     }
 
     // Collect the returned items
-    memcached_server_write_instance_st instance;
+    org::libmemcached::Instance* instance;
     while ((instance= memcached_io_get_readable_server(memc)))
     {
       memcached_return_t response_rc= memcached_response(instance, buffer, MEMCACHED_DEFAULT_COMMAND_SIZE, NULL);
index 62616b3099dab8ac63dc3331c873dffcebd1d7d7..38c568c91cdf48dd4b51088169646e6bfa44b2ed 100644 (file)
@@ -50,7 +50,7 @@ struct memcached_error_t
   char message[MAX_ERROR_LENGTH];
 };
 
-static void _set(memcached_instance_st& server, memcached_st& memc)
+static void _set(org::libmemcached::Instance& server, memcached_st& memc)
 {
   if (server.error_messages and server.error_messages->query_id != server.root->query_id)
   {
@@ -204,10 +204,10 @@ memcached_return_t memcached_set_error(memcached_st& memc, memcached_return_t rc
   return memcached_set_error(memc, rc, at, tmp);
 }
 
-memcached_return_t memcached_set_error(memcached_instance_st& self, memcached_return_t rc, const char *at, const char *str, size_t length)
+memcached_return_t memcached_set_error(org::libmemcached::Instance& self, memcached_return_t rc, const char *at, const char *str, size_t length)
 {
   assert_msg(rc != MEMCACHED_ERRNO, "Programmer error, MEMCACHED_ERRNO was set to be returned to client");
-  assert_msg(rc != MEMCACHED_SOME_ERRORS, "Programmer error, MEMCACHED_SOME_ERRORS was about to be set on a memcached_instance_st");
+  assert_msg(rc != MEMCACHED_SOME_ERRORS, "Programmer error, MEMCACHED_SOME_ERRORS was about to be set on a Instance");
 
   memcached_string_t tmp= { str, length };
   return memcached_set_error(self, rc, at, tmp);
@@ -240,7 +240,7 @@ memcached_return_t memcached_set_parser_error(memcached_st& memc,
   return memcached_set_error(memc, MEMCACHED_PARSE_ERROR, at, buffer, length);
 }
 
-static inline size_t append_host_to_string(memcached_instance_st& self, char* buffer, const size_t buffer_length)
+static inline size_t append_host_to_string(org::libmemcached::Instance& self, char* buffer, const size_t buffer_length)
 {
   size_t size= 0;
   switch (self.type)
@@ -248,7 +248,7 @@ static inline size_t append_host_to_string(memcached_instance_st& self, char* bu
   case MEMCACHED_CONNECTION_TCP:
   case MEMCACHED_CONNECTION_UDP:
     size+= snprintf(buffer, buffer_length, " host: %s:%d",
-                    self.hostname, int(self.port));
+                    self.hostname, int(self.port()));
     break;
 
   case MEMCACHED_CONNECTION_UNIX_SOCKET:
@@ -260,10 +260,10 @@ static inline size_t append_host_to_string(memcached_instance_st& self, char* bu
   return size;
 }
 
-memcached_return_t memcached_set_error(memcached_instance_st& self, memcached_return_t rc, const char *at, memcached_string_t& str)
+memcached_return_t memcached_set_error(org::libmemcached::Instance& self, memcached_return_t rc, const char *at, memcached_string_t& str)
 {
   assert_msg(rc != MEMCACHED_ERRNO, "Programmer error, MEMCACHED_ERRNO was set to be returned to client");
-  assert_msg(rc != MEMCACHED_SOME_ERRORS, "Programmer error, MEMCACHED_SOME_ERRORS was about to be set on a memcached_instance_st");
+  assert_msg(rc != MEMCACHED_SOME_ERRORS, "Programmer error, MEMCACHED_SOME_ERRORS was about to be set on a org::libmemcached::Instance");
   if (memcached_fatal(rc) == false)
   {
     return rc;
@@ -297,9 +297,9 @@ memcached_return_t memcached_set_error(memcached_instance_st& self, memcached_re
   return rc;
 }
 
-memcached_return_t memcached_set_error(memcached_instance_st& self, memcached_return_t rc, const char *at)
+memcached_return_t memcached_set_error(org::libmemcached::Instance& self, memcached_return_t rc, const char *at)
 {
-  assert_msg(rc != MEMCACHED_SOME_ERRORS, "Programmer error, MEMCACHED_SOME_ERRORS was about to be set on a memcached_instance_st");
+  assert_msg(rc != MEMCACHED_SOME_ERRORS, "Programmer error, MEMCACHED_SOME_ERRORS was about to be set on a org::libmemcached::Instance");
   if (memcached_fatal(rc) == false)
   {
     return rc;
@@ -340,7 +340,7 @@ memcached_return_t memcached_set_errno(memcached_st& self, int local_errno, cons
   return memcached_set_errno(self, local_errno, at, tmp);
 }
 
-memcached_return_t memcached_set_errno(memcached_instance_st& self, int local_errno, const char *at, const char *str, size_t length)
+memcached_return_t memcached_set_errno(org::libmemcached::Instance& self, int local_errno, const char *at, const char *str, size_t length)
 {
   memcached_string_t tmp= { str, length };
   return memcached_set_errno(self, local_errno, at, tmp);
@@ -372,7 +372,7 @@ memcached_return_t memcached_set_errno(memcached_st& memc, int local_errno, cons
   return rc;
 }
 
-memcached_return_t memcached_set_errno(memcached_instance_st& self, int local_errno, const char *at, memcached_string_t& str)
+memcached_return_t memcached_set_errno(org::libmemcached::Instance& self, int local_errno, const char *at, memcached_string_t& str)
 {
   if (local_errno == 0)
   {
@@ -402,7 +402,7 @@ memcached_return_t memcached_set_errno(memcached_instance_st& self, int local_er
   return rc;
 }
 
-memcached_return_t memcached_set_errno(memcached_instance_st& self, int local_errno, const char *at)
+memcached_return_t memcached_set_errno(org::libmemcached::Instance& self, int local_errno, const char *at)
 {
   if (local_errno == 0)
   {
@@ -456,7 +456,7 @@ void memcached_error_print(const memcached_st *self)
 
   for (uint32_t x= 0; x < memcached_server_count(self); x++)
   {
-    memcached_server_instance_st instance= memcached_server_instance_by_position(self, x);
+    org::libmemcached::Instance* instance= memcached_instance_by_position(self, x);
 
     _error_print(instance->error_messages);
   }
@@ -478,7 +478,7 @@ void memcached_error_free(memcached_st& self)
   self.error_messages= NULL;
 }
 
-void memcached_error_free(memcached_instance_st& self)
+void memcached_error_free(org::libmemcached::Instance& self)
 {
   _error_free(self.error_messages);
   self.error_messages= NULL;
@@ -522,7 +522,7 @@ bool memcached_has_current_error(memcached_st &memc)
   return false;
 }
 
-bool memcached_has_current_error(memcached_instance_st& server)
+bool memcached_has_current_error(org::libmemcached::Instance& server)
 {
   return memcached_has_current_error(*(server.root));
 }
@@ -578,7 +578,7 @@ const char *memcached_server_error(const memcached_server_instance_st server)
 }
 
 
-memcached_error_t *memcached_error_copy(const memcached_instance_st& server)
+memcached_error_t *memcached_error_copy(const org::libmemcached::Instance& server)
 {
   if (server.error_messages == NULL)
   {
@@ -607,7 +607,7 @@ memcached_return_t memcached_server_error_return(memcached_server_instance_st pt
   return MEMCACHED_SUCCESS;
 }
 
-memcached_return_t memcached_instance_error_return(memcached_instance_st* instance)
+memcached_return_t memcached_instance_error_return(org::libmemcached::Instance* instance)
 {
   if (instance == NULL)
   {
index 26c563670536bc4434c9fe77e221bf3f372a9e20..5b82d13ac48362050f920a95b0f91ea127c0b40a 100644 (file)
 #define TOSTRING(x) STRINGIFY(x)
 #define MEMCACHED_AT __FILE__ ":" TOSTRING(__LINE__)
 
-LIBMEMCACHED_LOCAL
 memcached_return_t memcached_set_parser_error(memcached_st& memc,
                                               const char *at,
                                               const char *format, ...);
 
-LIBMEMCACHED_LOCAL
-  memcached_return_t memcached_set_error(memcached_st&, memcached_return_t rc, const char *at);
+memcached_return_t memcached_set_error(memcached_st&, memcached_return_t rc, const char *at);
 
-LIBMEMCACHED_LOCAL
-  memcached_return_t memcached_set_error(memcached_instance_st&, memcached_return_t rc, const char *at);
+memcached_return_t memcached_set_error(org::libmemcached::Instance&, memcached_return_t rc, const char *at);
 
-LIBMEMCACHED_LOCAL
-  memcached_return_t memcached_set_error(memcached_st&, memcached_return_t rc, const char *at, const char *str, size_t length);
+memcached_return_t memcached_set_error(memcached_st&, memcached_return_t rc, const char *at, const char *str, size_t length);
 
-LIBMEMCACHED_LOCAL
-  memcached_return_t memcached_set_error(memcached_instance_st&, memcached_return_t rc, const char *at, const char *str, size_t length);
+memcached_return_t memcached_set_error(org::libmemcached::Instance&, memcached_return_t rc, const char *at, const char *str, size_t length);
 
-LIBMEMCACHED_LOCAL
-  memcached_return_t memcached_set_error(memcached_st& memc, memcached_return_t rc, const char *at, memcached_string_t& str);
+memcached_return_t memcached_set_error(memcached_st& memc, memcached_return_t rc, const char *at, memcached_string_t& str);
 
-LIBMEMCACHED_LOCAL
-  memcached_return_t memcached_set_error(memcached_instance_st&, memcached_return_t rc, const char *at, memcached_string_t& str);
+memcached_return_t memcached_set_error(org::libmemcached::Instance&, memcached_return_t rc, const char *at, memcached_string_t& str);
 
-LIBMEMCACHED_LOCAL
-  memcached_return_t memcached_set_errno(memcached_st& memc, int local_errno, const char *at, memcached_string_t& str);
+memcached_return_t memcached_set_errno(memcached_st& memc, int local_errno, const char *at, memcached_string_t& str);
 
-LIBMEMCACHED_LOCAL
-  memcached_return_t memcached_set_errno(memcached_instance_st&, int local_errno, const char *at, memcached_string_t& str);
+memcached_return_t memcached_set_errno(org::libmemcached::Instance&, int local_errno, const char *at, memcached_string_t& str);
 
-LIBMEMCACHED_LOCAL
-  memcached_return_t memcached_set_errno(memcached_st& memc, int local_errno, const char *at, const char *str, size_t length);
+memcached_return_t memcached_set_errno(memcached_st& memc, int local_errno, const char *at, const char *str, size_t length);
 
-LIBMEMCACHED_LOCAL
-  memcached_return_t memcached_set_errno(memcached_instance_st&, int local_errno, const char *at, const char *str, size_t length);
+memcached_return_t memcached_set_errno(org::libmemcached::Instance&, int local_errno, const char *at, const char *str, size_t length);
 
-LIBMEMCACHED_LOCAL
-  memcached_return_t memcached_set_errno(memcached_st& memc, int local_errno, const char *at);
+memcached_return_t memcached_set_errno(memcached_st& memc, int local_errno, const char *at);
 
-LIBMEMCACHED_LOCAL
-  memcached_return_t memcached_set_errno(memcached_instance_st&, int local_errno, const char *at);
+memcached_return_t memcached_set_errno(org::libmemcached::Instance&, int local_errno, const char *at);
 
-LIBMEMCACHED_LOCAL
 bool memcached_has_current_error(memcached_st&);
 
-LIBMEMCACHED_LOCAL
-bool memcached_has_current_error(memcached_instance_st&);
+bool memcached_has_current_error(org::libmemcached::Instance&);
 
-LIBMEMCACHED_LOCAL
 void memcached_error_free(memcached_st&);
 
-void memcached_error_free(memcached_server_st& self);
+void memcached_error_free(memcached_server_st&);
 
-LIBMEMCACHED_LOCAL
-void memcached_error_free(memcached_instance_st&);
+void memcached_error_free(org::libmemcached::Instance& self);
 
-LIBMEMCACHED_LOCAL
-memcached_error_t *memcached_error_copy(const memcached_instance_st&);
+memcached_error_t *memcached_error_copy(const org::libmemcached::Instance&);
 
-memcached_return_t memcached_instance_error_return(memcached_instance_st*);
+memcached_return_t memcached_instance_error_return(org::libmemcached::Instance*);
 
 #endif
index 58408fd747d2e0795257e468c6c1982fbfeb5bee..56c1efcec6194c601aa3bae608f19f9d5aa2f673 100644 (file)
@@ -36,7 +36,7 @@
 
 #include <libmemcached/common.h>
 
-static memcached_return_t ascii_exist(memcached_st *memc, memcached_server_write_instance_st instance, const char *key, size_t key_length)
+static memcached_return_t ascii_exist(memcached_st *memc, org::libmemcached::Instance* instance, const char *key, size_t key_length)
 {
   libmemcached_io_vector_st vector[]=
   {
@@ -74,7 +74,7 @@ static memcached_return_t ascii_exist(memcached_st *memc, memcached_server_write
   return rc;
 }
 
-static memcached_return_t binary_exist(memcached_st *memc, memcached_server_write_instance_st instance, const char *key, size_t key_length)
+static memcached_return_t binary_exist(memcached_st *memc, org::libmemcached::Instance* instance, const char *key, size_t key_length)
 {
   protocol_binary_request_set request= {};
   size_t send_length= sizeof(request.bytes);
@@ -143,7 +143,7 @@ memcached_return_t memcached_exist_by_key(memcached_st *memc,
   }
 
   uint32_t server_key= memcached_generate_hash_with_redistribution(memc, group_key, group_key_length);
-  memcached_server_write_instance_st instance= memcached_server_instance_fetch(memc, server_key);
+  org::libmemcached::Instance* instance= memcached_instance_fetch(memc, server_key);
 
   if (memcached_is_binary(memc))
   {
index 2fd0dc51e845a96a4f02194ec6e9679958936bdb..70e5bf75ef30989c5845a276357bf84553e799bf 100644 (file)
@@ -191,7 +191,7 @@ memcached_result_st *memcached_fetch_result(memcached_st *ptr,
   }
 
   *error= MEMCACHED_MAXIMUM_RETURN; // We use this to see if we ever go into the loop
-  memcached_instance_st *server;
+  org::libmemcached::Instance *server;
   while ((server= memcached_io_get_readable_server(ptr)))
   {
     char buffer[MEMCACHED_DEFAULT_COMMAND_SIZE];
index ef79092287ead37bc1a0fa3b1edb3b0fdfa0a890..1e1533ddaf35a2af31bec0a85a181670ba50d327 100644 (file)
@@ -52,7 +52,7 @@ static memcached_return_t memcached_flush_binary(memcached_st *ptr,
 
   for (uint32_t x= 0; x < memcached_server_count(ptr); x++)
   {
-    memcached_server_write_instance_st instance= memcached_server_instance_fetch(ptr, x);
+    org::libmemcached::Instance* instance= memcached_instance_fetch(ptr, x);
     initialize_binary_request(instance, request.message.header);
 
     if (reply)
@@ -84,7 +84,7 @@ static memcached_return_t memcached_flush_binary(memcached_st *ptr,
 
   for (uint32_t x= 0; x < memcached_server_count(ptr); x++)
   {
-    memcached_server_write_instance_st instance= memcached_server_instance_fetch(ptr, x);
+    org::libmemcached::Instance* instance= memcached_instance_fetch(ptr, x);
 
     if (memcached_instance_response_count(instance) > 0)
     {
@@ -115,7 +115,7 @@ static memcached_return_t memcached_flush_textual(memcached_st *ptr,
   memcached_return_t rc= MEMCACHED_SUCCESS;
   for (uint32_t x= 0; x < memcached_server_count(ptr); x++)
   {
-    memcached_server_write_instance_st instance= memcached_server_instance_fetch(ptr, x);
+    org::libmemcached::Instance* instance= memcached_instance_fetch(ptr, x);
 
     libmemcached_io_vector_st vector[]=
     {
index 58260fc10cb785dc7fe44749f92ddb43aca930db..af6942b4a79c6e9b9f1b2fee6658835186303c80 100644 (file)
@@ -43,8 +43,7 @@ memcached_return_t memcached_flush_buffers(memcached_st *memc)
 
   for (uint32_t x= 0; x < memcached_server_count(memc); ++x)
   {
-    memcached_server_write_instance_st instance=
-      memcached_server_instance_fetch(memc, x);
+    org::libmemcached::Instance* instance= memcached_instance_fetch(memc, x);
 
     if (instance->write_buffer_offset != 0) 
     {
index cc6af2d83357cf4c56e48f7dc879a7b87a4df311..73802e20fb3af23b7e806d450af2e2706c76118e 100644 (file)
@@ -244,7 +244,7 @@ static memcached_return_t memcached_mget_by_key_real(memcached_st *ptr,
   */
   for (uint32_t x= 0; x < memcached_server_count(ptr); x++)
   {
-    memcached_server_write_instance_st instance= memcached_server_instance_fetch(ptr, x);
+    org::libmemcached::Instance* instance= memcached_instance_fetch(ptr, x);
 
     if (memcached_instance_response_count(instance))
     {
@@ -282,7 +282,6 @@ static memcached_return_t memcached_mget_by_key_real(memcached_st *ptr,
   size_t hosts_connected= 0;
   for (uint32_t x= 0; x < number_of_keys; x++)
   {
-    memcached_server_write_instance_st instance;
     uint32_t server_key;
 
     if (is_group_key_set)
@@ -294,7 +293,7 @@ static memcached_return_t memcached_mget_by_key_real(memcached_st *ptr,
       server_key= memcached_generate_hash_with_redistribution(ptr, keys[x], key_length[x]);
     }
 
-    instance= memcached_server_instance_fetch(ptr, server_key);
+    org::libmemcached::Instance* instance= memcached_instance_fetch(ptr, server_key);
 
     libmemcached_io_vector_st vector[]=
     {
@@ -355,8 +354,7 @@ static memcached_return_t memcached_mget_by_key_real(memcached_st *ptr,
   bool success_happened= false;
   for (uint32_t x= 0; x < memcached_server_count(ptr); x++)
   {
-    memcached_server_write_instance_st instance=
-      memcached_server_instance_fetch(ptr, x);
+    org::libmemcached::Instance* instance= memcached_instance_fetch(ptr, x);
 
     if (memcached_instance_response_count(instance))
     {
@@ -480,7 +478,7 @@ static memcached_return_t simple_binary_mget(memcached_st *ptr,
       server_key= memcached_generate_hash_with_redistribution(ptr, keys[x], key_length[x]);
     }
 
-    memcached_server_write_instance_st instance= memcached_server_instance_fetch(ptr, server_key);
+    org::libmemcached::Instance* instance= memcached_instance_fetch(ptr, server_key);
 
     if (memcached_instance_response_count(instance) == 0)
     {
@@ -553,7 +551,7 @@ static memcached_return_t simple_binary_mget(memcached_st *ptr,
 
     for (uint32_t x= 0; x < memcached_server_count(ptr); ++x)
     {
-      memcached_server_write_instance_st instance= memcached_server_instance_fetch(ptr, x);
+      org::libmemcached::Instance* instance= memcached_instance_fetch(ptr, x);
       initialize_binary_request(instance, request.message.header);
 
       if (memcached_instance_response_count(instance))
@@ -624,7 +622,7 @@ static memcached_return_t replication_binary_mget(memcached_st *ptr,
         continue;
       }
 
-      memcached_server_write_instance_st instance= memcached_server_instance_fetch(ptr, server);
+      org::libmemcached::Instance* instance= memcached_instance_fetch(ptr, server);
 
       if (memcached_instance_response_count(instance) == 0)
       {
index 898bff9dfe3fdabc48d65c306147f23a4b1cb171..dbfba007bd8d93c9c4d2e648e19e67da4ceab69b 100644 (file)
@@ -52,7 +52,7 @@ static int compare_servers(const void *p1, const void *p2)
 
   if (return_value == 0)
   {
-    return_value= (int) (a->port - b->port);
+    return_value= int(a->port() - b->port());
   }
 
   return return_value;
@@ -62,10 +62,9 @@ static void sort_hosts(memcached_st *ptr)
 {
   if (memcached_server_count(ptr))
   {
-    memcached_server_write_instance_st instance;
 
-    qsort(memcached_instance_list(ptr), memcached_server_count(ptr), sizeof(memcached_instance_st), compare_servers);
-    instance= memcached_server_instance_fetch(ptr, 0);
+    qsort(memcached_instance_list(ptr), memcached_server_count(ptr), sizeof(org::libmemcached::Instance), compare_servers);
+    org::libmemcached::Instance* instance= memcached_instance_fetch(ptr, 0);
     instance->number_of_hosts= memcached_server_count(ptr);
   }
 }
@@ -143,7 +142,7 @@ static memcached_return_t update_continuum(memcached_st *ptr)
     return memcached_set_errno(*ptr, errno, MEMCACHED_AT);
   }
 
-  memcached_instance_st *list= memcached_instance_list(ptr);
+  org::libmemcached::Instance* list= memcached_instance_list(ptr);
 
   /* count live servers (those without a retry delay set) */
   bool is_auto_ejecting= _is_auto_eject_host(ptr);
@@ -174,7 +173,7 @@ static memcached_return_t update_continuum(memcached_st *ptr)
   uint64_t is_ketama_weighted= memcached_behavior_get(ptr, MEMCACHED_BEHAVIOR_KETAMA_WEIGHTED);
   uint32_t points_per_server= (uint32_t) (is_ketama_weighted ? MEMCACHED_POINTS_PER_SERVER_KETAMA : MEMCACHED_POINTS_PER_SERVER);
 
-  if (not live_servers)
+  if (live_servers == 0)
   {
     return MEMCACHED_SUCCESS;
   }
@@ -222,7 +221,7 @@ static memcached_return_t update_continuum(memcached_st *ptr)
         {
           printf("ketama_weighted:%s|%d|%llu|%u\n",
                  list[host_index].hostname,
-                 list[host_index].port,
+                 list[host_index].port(),
                  (unsigned long long)list[host_index].weight,
                  pointer_per_server);
         }
@@ -243,7 +242,7 @@ static memcached_return_t update_continuum(memcached_st *ptr)
         sort_host_length= snprintf(sort_host, sizeof(sort_host),
                                    "/%s:%u-%u",
                                    list[host_index].hostname,
-                                   (uint32_t)list[host_index].port,
+                                   (uint32_t)list[host_index].port(),
                                    pointer_index);
 
         if (size_t(sort_host_length) >= sizeof(sort_host) or sort_host_length < 0)
@@ -283,7 +282,7 @@ static memcached_return_t update_continuum(memcached_st *ptr)
         char sort_host[MEMCACHED_NI_MAXHOST +1 +MEMCACHED_NI_MAXSERV +1 +MEMCACHED_NI_MAXSERV]= "";
         int sort_host_length;
 
-        if (list[host_index].port == MEMCACHED_DEFAULT_PORT)
+        if (list[host_index].port() == MEMCACHED_DEFAULT_PORT)
         {
           sort_host_length= snprintf(sort_host, sizeof(sort_host),
                                      "%s-%u",
@@ -295,7 +294,7 @@ static memcached_return_t update_continuum(memcached_st *ptr)
           sort_host_length= snprintf(sort_host, sizeof(sort_host),
                                      "%s:%u-%u",
                                      list[host_index].hostname,
-                                     (uint32_t)list[host_index].port,
+                                     (uint32_t)list[host_index].port(),
                                      pointer_index - 1);
         }
 
@@ -351,7 +350,7 @@ static memcached_return_t server_add(memcached_st *ptr,
 {
   assert_msg(ptr, "Programmer mistake, somehow server_add() was passed a NULL memcached_st");
 
-  memcached_instance_st *new_host_list= libmemcached_xrealloc(ptr, memcached_instance_list(ptr), (ptr->number_of_hosts + 1), memcached_instance_st);
+  org::libmemcached::Instance* new_host_list= libmemcached_xrealloc(ptr, memcached_instance_list(ptr), (ptr->number_of_hosts + 1), org::libmemcached::Instance);
 
   if (new_host_list == NULL)
   {
@@ -361,7 +360,7 @@ static memcached_return_t server_add(memcached_st *ptr,
   memcached_instance_set(ptr, new_host_list);
 
   /* TODO: Check return type */
-  memcached_server_write_instance_st instance= memcached_server_instance_fetch(ptr, memcached_server_count(ptr));
+  org::libmemcached::Instance* instance= memcached_instance_fetch(ptr, memcached_server_count(ptr));
 
   if (__instance_create_with(ptr, instance, hostname, port, weight, type) == NULL)
   {
@@ -376,7 +375,7 @@ static memcached_return_t server_add(memcached_st *ptr,
   ptr->number_of_hosts++;
 
   // @note we place the count in the bottom of the server list
-  instance= memcached_server_instance_fetch(ptr, 0);
+  instance= memcached_instance_fetch(ptr, 0);
   memcached_instance_set_count(instance, memcached_server_count(ptr));
 
   return run_distribution(ptr);
@@ -392,7 +391,7 @@ memcached_return_t memcached_server_push(memcached_st *ptr, const memcached_serv
 
   uint32_t count= memcached_server_list_count(list);
 
-  memcached_instance_st *new_host_list= libmemcached_xrealloc(ptr, memcached_instance_list(ptr), (count + memcached_server_count(ptr)), memcached_instance_st);
+  org::libmemcached::Instance* new_host_list= libmemcached_xrealloc(ptr, memcached_instance_list(ptr), (count + memcached_server_count(ptr)), org::libmemcached::Instance);
 
   if (new_host_list == NULL)
   {
@@ -403,12 +402,10 @@ memcached_return_t memcached_server_push(memcached_st *ptr, const memcached_serv
 
   for (uint32_t x= 0; x < count; x++)
   {
-    memcached_server_write_instance_st instance;
-
     WATCHPOINT_ASSERT(list[x].hostname[0] != 0);
 
     // We have extended the array, and now we will find it, and use it.
-    instance= memcached_server_instance_fetch(ptr, memcached_server_count(ptr));
+    org::libmemcached::Instance* instance= memcached_instance_fetch(ptr, memcached_server_count(ptr));
     WATCHPOINT_ASSERT(instance);
 
     memcached_string_t hostname= { memcached_string_make_from_cstr(list[x].hostname) };
@@ -429,22 +426,21 @@ memcached_return_t memcached_server_push(memcached_st *ptr, const memcached_serv
 
   // Provides backwards compatibility with server list.
   {
-    memcached_server_write_instance_st instance;
-    instance= memcached_server_instance_fetch(ptr, 0);
+    org::libmemcached::Instance* instance= memcached_instance_fetch(ptr, 0);
     instance->number_of_hosts= memcached_server_count(ptr);
   }
 
   return run_distribution(ptr);
 }
 
-memcached_return_t memcached_instance_push(memcached_st *ptr, const struct memcached_instance_st* list, uint32_t number_of_hosts)
+memcached_return_t memcached_instance_push(memcached_st *ptr, const struct org::libmemcached::Instance* list, uint32_t number_of_hosts)
 {
   if (list == NULL)
   {
     return MEMCACHED_SUCCESS;
   }
 
-  memcached_instance_st* new_host_list= libmemcached_xrealloc(ptr, memcached_instance_list(ptr), (number_of_hosts +memcached_server_count(ptr)), memcached_instance_st);
+  org::libmemcached::Instance* new_host_list= libmemcached_xrealloc(ptr, memcached_instance_list(ptr), (number_of_hosts +memcached_server_count(ptr)), org::libmemcached::Instance);
 
   if (new_host_list == NULL)
   {
@@ -455,18 +451,17 @@ memcached_return_t memcached_instance_push(memcached_st *ptr, const struct memca
 
   for (uint32_t x= 0; x < number_of_hosts; x++)
   {
-    memcached_server_write_instance_st instance;
 
     WATCHPOINT_ASSERT(list[x].hostname[0] != 0);
 
     // We have extended the array, and now we will find it, and use it.
-    instance= memcached_server_instance_fetch(ptr, memcached_server_count(ptr));
+    org::libmemcached::Instance* instance= memcached_instance_fetch(ptr, memcached_server_count(ptr));
     WATCHPOINT_ASSERT(instance);
 
     memcached_string_t hostname= { memcached_string_make_from_cstr(list[x].hostname) };
     if (__instance_create_with(ptr, instance, 
                                hostname,
-                               list[x].port, list[x].weight, list[x].type) == NULL)
+                               list[x].port(), list[x].weight, list[x].type) == NULL)
     {
       return memcached_set_error(*ptr, MEMCACHED_MEMORY_ALLOCATION_FAILURE, MEMCACHED_AT);
     }
@@ -481,8 +476,7 @@ memcached_return_t memcached_instance_push(memcached_st *ptr, const struct memca
 
   // Provides backwards compatibility with server list.
   {
-    memcached_server_write_instance_st instance;
-    instance= memcached_server_instance_fetch(ptr, 0);
+    org::libmemcached::Instance* instance= memcached_instance_fetch(ptr, 0);
     instance->number_of_hosts= memcached_server_count(ptr);
   }
 
index 0662b8f627c60c27959880c132efd787bfead4f8..e7bb37945dbeb667dbd19bf6ef4fdc6d559b38a1 100644 (file)
  *
  */
 
-/*
-  This is a partial implementation for fetching/creating memcached_instance_st objects.
-*/
 #include <libmemcached/common.h>
 
-static inline void _server_init(memcached_instance_st *self, memcached_st *root,
+static inline void _server_init(org::libmemcached::Instance* self, memcached_st *root,
                                 const memcached_string_t& hostname,
                                 in_port_t port,
                                 uint32_t weight, memcached_connection_t type)
@@ -49,7 +46,7 @@ static inline void _server_init(memcached_instance_st *self, memcached_st *root,
   self->options.is_dead= false;
   self->number_of_hosts= 0;
   self->cursor_active= 0;
-  self->port= port;
+  self->port_= port;
   self->fd= INVALID_SOCKET;
   self->io_bytes_sent= 0;
   self->request_id= 0;
@@ -89,11 +86,11 @@ static inline void _server_init(memcached_instance_st *self, memcached_st *root,
   self->hostname[hostname.size]= 0;
 }
 
-static memcached_instance_st *_server_create(memcached_instance_st *self, const memcached_st *memc)
+static org::libmemcached::Instance* _server_create(org::libmemcached::Instance* self, const memcached_st *memc)
 {
   if (self == NULL)
   {
-   self= libmemcached_xmalloc(memc, struct memcached_instance_st);
+   self= libmemcached_xmalloc(memc, org::libmemcached::Instance);
 
     if (self == NULL)
     {
@@ -112,12 +109,12 @@ static memcached_instance_st *_server_create(memcached_instance_st *self, const
   return self;
 }
 
-memcached_instance_st *__instance_create_with(memcached_st *memc,
-                                              memcached_instance_st* self,
-                                              const memcached_string_t& hostname,
-                                              const in_port_t port,
-                                              uint32_t weight, 
-                                              const memcached_connection_t type)
+org::libmemcached::Instance* __instance_create_with(memcached_st *memc,
+                                                    org::libmemcached::Instance* self,
+                                                    const memcached_string_t& hostname,
+                                                    const in_port_t port,
+                                                    uint32_t weight, 
+                                                    const memcached_connection_t type)
 {
   if (memcached_is_valid_servername(hostname) == false)
   {
@@ -148,7 +145,7 @@ memcached_instance_st *__instance_create_with(memcached_st *memc,
   return self;
 }
 
-void __instance_free(memcached_instance_st *self)
+void __instance_free(org::libmemcached::Instance* self)
 {
   memcached_quit_server(self, false);
 
@@ -171,26 +168,20 @@ void __instance_free(memcached_instance_st *self)
   }
 }
 
-void memcached_instance_free(memcached_instance_st *self)
+void memcached_instance_free(org::libmemcached::Instance* self)
 {
   if (self == NULL)
   {
     return;
   }
 
-  if (memcached_instance_count(self))
-  {
-    memcached_instance_list_free(self, memcached_instance_count(self));
-    return;
-  }
-
   __instance_free(self);
 }
 
 /*
   If we do not have a valid object to clone from, we toss an error.
 */
-memcached_server_st *memcached_instance_2_server(memcached_instance_st *source)
+memcached_server_st *memcached_instance_2_server(org::libmemcached::Instance* source)
 {
   /* We just do a normal create if source is missing */
   if (source == NULL)
@@ -201,7 +192,7 @@ memcached_server_st *memcached_instance_2_server(memcached_instance_st *source)
   memcached_string_t hostname= { memcached_string_make_from_cstr(source->hostname) };
   return __server_create_with(source->root, NULL,
                               hostname,
-                              source->port, source->weight,
+                              source->port(), source->weight,
                               source->type);
 
 }
@@ -220,8 +211,7 @@ memcached_return_t memcached_server_cursor(const memcached_st *ptr,
   size_t errors= 0;
   for (uint32_t x= 0; x < memcached_instance_list_count(ptr); x++)
   {
-    memcached_server_instance_st instance=
-      memcached_server_instance_by_position(ptr, x);
+    org::libmemcached::Instance* instance= memcached_instance_by_position(ptr, x);
 
     for (uint32_t y= 0; y < number_of_callbacks; y++)
     {
@@ -250,7 +240,7 @@ memcached_return_t memcached_server_execute(memcached_st *ptr,
   bool some_errors= false;;
   for (uint32_t x= 0; x < memcached_instance_list_count(ptr); x++)
   {
-    memcached_instance_st* instance= memcached_server_instance_fetch(ptr, x);
+    org::libmemcached::Instance* instance= memcached_instance_fetch(ptr, x);
 
     memcached_return_t rc= (*callback)(ptr, instance, context);
     if (rc == MEMCACHED_INVALID_ARGUMENTS)
@@ -273,7 +263,7 @@ memcached_server_instance_st memcached_server_by_key(memcached_st *ptr,
                                                      memcached_return_t *error)
 {
   memcached_return_t unused;
-  if (not error)
+  if (error == NULL)
   {
     error= &unused;
   }
@@ -293,13 +283,13 @@ memcached_server_instance_st memcached_server_by_key(memcached_st *ptr,
   }
 
   uint32_t server_key= memcached_generate_hash(ptr, key, key_length);
-  return memcached_server_instance_by_position(ptr, server_key);
+  return memcached_instance_by_position(ptr, server_key);
 }
 
 /*
   If we do not have a valid object to clone from, we toss an error.
 */
-static memcached_instance_st *memcached_instance_clone(memcached_instance_st *source)
+static org::libmemcached::Instance* memcached_instance_clone(org::libmemcached::Instance* source)
 {
   /* We just do a normal create if source is missing */
   if (source == NULL)
@@ -311,11 +301,11 @@ static memcached_instance_st *memcached_instance_clone(memcached_instance_st *so
   return __instance_create_with(source->root,
                                 NULL,
                                 hostname,
-                                source->port, source->weight,
+                                source->port(), source->weight,
                                 source->type);
 }
 
-void set_last_disconnected_host(memcached_server_write_instance_st self)
+void set_last_disconnected_host(org::libmemcached::Instance* self)
 {
   assert(self->root);
   if (self->root == NULL)
@@ -323,7 +313,8 @@ void set_last_disconnected_host(memcached_server_write_instance_st self)
     return;
   }
 
-  if (self->root->last_disconnected_server and self->root->last_disconnected_server->version == self->version)
+  if (memcached_server_get_last_disconnect(self->root) and
+      memcached_server_get_last_disconnect(self->root)->version == self->version)
   {
     return;
   }
@@ -331,9 +322,9 @@ void set_last_disconnected_host(memcached_server_write_instance_st self)
   // const_cast
   memcached_st *root= (memcached_st *)self->root;
 
-  memcached_instance_free(root->last_disconnected_server);
+  memcached_instance_free((org::libmemcached::Instance*)(root->last_disconnected_server));
   root->last_disconnected_server= memcached_instance_clone(self);
-  root->last_disconnected_server->version= self->version;
+  ((org::libmemcached::Instance*)memcached_server_get_last_disconnect(root))->version= self->version;
 }
 
 memcached_server_instance_st memcached_server_get_last_disconnect(const memcached_st *self)
@@ -344,10 +335,10 @@ memcached_server_instance_st memcached_server_get_last_disconnect(const memcache
     return 0;
   }
 
-  return self->last_disconnected_server;
+  return (memcached_server_instance_st)self->last_disconnected_server;
 }
 
-uint32_t memcached_instance_set_count(memcached_instance_st *servers, uint32_t count)
+uint32_t memcached_instance_set_count(org::libmemcached::Instance* servers, uint32_t count)
 {
   WATCHPOINT_ASSERT(servers);
   if (servers == NULL)
@@ -375,10 +366,19 @@ in_port_t memcached_instance_port(const memcached_server_instance_st self)
     return 0;
   }
 
-  return self->port;
+  return self->port();
+}
+
+void memcached_instance_next_retry(memcached_server_instance_st self, const time_t absolute_time)
+{
+  WATCHPOINT_ASSERT(self);
+  if (self)
+  {
+    ((org::libmemcached::Instance*)self)->next_retry= absolute_time;
+  }
 }
 
-uint32_t memcached_instance_response_count(const memcached_instance_st* self)
+uint32_t memcached_instance_response_count(const org::libmemcached::Instance* self)
 {
   WATCHPOINT_ASSERT(self);
   if (self == NULL)
index 16d509f02a6f6bd798872edb1d444018f307c3e0..1c81da4447f2c7a34c1220eb44a39b1323c8b5ec 100644 (file)
 #define MEMCACHED_NI_MAXSERV 32
 #endif
 
-struct memcached_instance_st {
+#ifdef __cplusplus
+
+namespace org {
+namespace libmemcached {
+
+struct Instance {
+  in_port_t port() const
+  {
+    return port_;
+  }
+
+  void port(in_port_t arg)
+  {
+    port_= arg;
+  }
+
+  inline void mark_server_as_clean()
+  {
+    server_failure_counter= 0;
+    next_retry= 0;
+  }
+
   struct {
     bool is_allocated:1;
     bool is_initialized:1;
@@ -63,7 +84,7 @@ struct memcached_instance_st {
   } options;
   uint32_t number_of_hosts;
   uint32_t cursor_active;
-  in_port_t port;
+  in_port_t port_;
   memcached_socket_t fd;
   uint32_t io_bytes_sent; /* # bytes sent since last read */
   uint32_t request_id;
@@ -96,3 +117,8 @@ struct memcached_instance_st {
   char write_buffer[MEMCACHED_MAX_BUFFER];
   char hostname[MEMCACHED_NI_MAXHOST];
 };
+
+} // namespace libmemcached
+} // namespace org
+
+#endif
index 9ab3622a7be0959462dcc55d0d2c60a218f048da..a69b8ea37985ad5724c0c447546fd8d5bc361ebb 100644 (file)
 
 #pragma once
 
-struct memcached_instance_st *__instance_create_with(memcached_st *memc,
-                                                     struct memcached_instance_st* self,
-                                                     const memcached_string_t& hostname,
-                                                     const in_port_t port,
-                                                     uint32_t weight, 
-                                                     const memcached_connection_t type);
-const char *memcached_instance_name(const memcached_server_instance_st self);
+org::libmemcached::Instance* __instance_create_with(memcached_st *memc,
+                                                    org::libmemcached::Instance* self,
+                                                    const memcached_string_t& hostname,
+                                                    const in_port_t port,
+                                                    uint32_t weight, 
+                                                    const memcached_connection_t type);
 
-in_port_t memcached_instance_port(const memcached_server_instance_st self);
+const char *memcached_instance_name(const org::libmemcached::Instance* self);
 
-memcached_return_t memcached_instance_push(memcached_st *ptr, const struct memcached_instance_st*, uint32_t);
+in_port_t memcached_instance_port(const org::libmemcached::Instance* self);
 
-memcached_server_st *memcached_instance_2_server(struct memcached_instance_st*);
+memcached_return_t memcached_instance_push(memcached_st *ptr, const org::libmemcached::Instance*, uint32_t);
+
+memcached_server_st *memcached_instance_2_server(org::libmemcached::Instance* source);
 
 uint32_t memcached_instance_count(const memcached_st* self);
 
-uint32_t memcached_instance_response_count(const memcached_instance_st* self);
+uint32_t memcached_instance_response_count(const org::libmemcached::Instance* self);
 
-uint32_t memcached_instance_set_count(memcached_instance_st *servers, uint32_t count);
+uint32_t memcached_instance_set_count(org::libmemcached::Instance *servers, uint32_t count);
 
-void __instance_free(struct memcached_instance_st *);
+void __instance_free(org::libmemcached::Instance *);
index d2e40043dfaa1c958ae1e346ed8dc1dbacb6bd3a..837959da5db6696765036ffe5787741c8235658c 100644 (file)
@@ -39,7 +39,7 @@
 
 #include <libmemcached/common.h>
 
-void initialize_binary_request(memcached_server_write_instance_st server, protocol_binary_request_header& header)
+void initialize_binary_request(org::libmemcached::Instance* server, protocol_binary_request_header& header)
 {
   server->request_id++;
   header.request.magic= PROTOCOL_BINARY_REQ;
@@ -57,7 +57,7 @@ enum memc_read_or_write {
  *
  * @param ptr the server to pack
  */
-static bool repack_input_buffer(memcached_server_write_instance_st ptr)
+static bool repack_input_buffer(org::libmemcached::Instance* ptr)
 {
   if (ptr->read_ptr != ptr->read_buffer)
   {
@@ -130,7 +130,7 @@ static bool repack_input_buffer(memcached_server_write_instance_st ptr)
  * @param ptr the server to star processing iput messages for
  * @return true if we processed anything, false otherwise
  */
-static bool process_input_buffer(memcached_server_write_instance_st ptr)
+static bool process_input_buffer(org::libmemcached::Instance* ptr)
 {
   /*
    ** We might be able to process some of the response messages if we
@@ -172,7 +172,7 @@ static bool process_input_buffer(memcached_server_write_instance_st ptr)
   return false;
 }
 
-static memcached_return_t io_wait(memcached_server_write_instance_st ptr,
+static memcached_return_t io_wait(org::libmemcached::Instance* ptr,
                                   const memc_read_or_write read_or_write)
 {
   /*
@@ -294,7 +294,7 @@ static memcached_return_t io_wait(memcached_server_write_instance_st ptr,
                              memcached_literal_param("number of attempts to call io_wait() failed"));
 }
 
-static bool io_flush(memcached_server_write_instance_st ptr,
+static bool io_flush(org::libmemcached::Instance* ptr,
                      const bool with_flush,
                      memcached_return_t& error)
 {
@@ -396,12 +396,12 @@ static bool io_flush(memcached_server_write_instance_st ptr,
   return true;
 }
 
-memcached_return_t memcached_io_wait_for_write(memcached_server_write_instance_st ptr)
+memcached_return_t memcached_io_wait_for_write(org::libmemcached::Instance* ptr)
 {
   return io_wait(ptr, MEM_WRITE);
 }
 
-static memcached_return_t _io_fill(memcached_server_write_instance_st ptr)
+static memcached_return_t _io_fill(org::libmemcached::Instance* ptr)
 {
   ssize_t data_read;
   do
@@ -477,11 +477,11 @@ static memcached_return_t _io_fill(memcached_server_write_instance_st ptr)
   return MEMCACHED_SUCCESS;
 }
 
-memcached_return_t memcached_io_read(memcached_server_write_instance_st ptr,
+memcached_return_t memcached_io_read(org::libmemcached::Instance* ptr,
                                      void *buffer, size_t length, ssize_t& nread)
 {
   assert(memcached_is_udp(ptr->root) == false);
-  assert_msg(ptr, "Programmer error, memcached_io_read() recieved an invalid memcached_server_write_instance_st"); // Programmer error
+  assert_msg(ptr, "Programmer error, memcached_io_read() recieved an invalid Instance"); // Programmer error
   char *buffer_ptr= static_cast<char *>(buffer);
 
   if (ptr->fd == INVALID_SOCKET)
@@ -529,9 +529,9 @@ memcached_return_t memcached_io_read(memcached_server_write_instance_st ptr,
   return MEMCACHED_SUCCESS;
 }
 
-memcached_return_t memcached_io_slurp(memcached_server_write_instance_st ptr)
+memcached_return_t memcached_io_slurp(org::libmemcached::Instance* ptr)
 {
-  assert_msg(ptr, "Programmer error, invalid memcached_server_write_instance_st");
+  assert_msg(ptr, "Programmer error, invalid Instance");
   assert(memcached_is_udp(ptr->root) == false);
 
   if (ptr->fd == INVALID_SOCKET)
@@ -586,7 +586,7 @@ memcached_return_t memcached_io_slurp(memcached_server_write_instance_st ptr)
   return MEMCACHED_CONNECTION_FAILURE;
 }
 
-static bool _io_write(memcached_server_write_instance_st ptr,
+static bool _io_write(org::libmemcached::Instance* ptr,
                       const void *buffer, size_t length, bool with_flush,
                       size_t& written)
 {
@@ -639,13 +639,13 @@ static bool _io_write(memcached_server_write_instance_st ptr,
   return true;
 }
 
-bool memcached_io_write(memcached_server_write_instance_st ptr)
+bool memcached_io_write(org::libmemcached::Instance* ptr)
 {
   size_t written;
   return _io_write(ptr, NULL, 0, true, written);
 }
 
-ssize_t memcached_io_write(memcached_server_write_instance_st ptr,
+ssize_t memcached_io_write(org::libmemcached::Instance* ptr,
                            const void *buffer, const size_t length, const bool with_flush)
 {
   size_t written;
@@ -658,9 +658,9 @@ ssize_t memcached_io_write(memcached_server_write_instance_st ptr,
   return ssize_t(written);
 }
 
-bool memcached_io_writev(memcached_server_write_instance_st ptr,
-                            libmemcached_io_vector_st vector[],
-                            const size_t number_of, const bool with_flush)
+bool memcached_io_writev(org::libmemcached::Instance* ptr,
+                         libmemcached_io_vector_st vector[],
+                         const size_t number_of, const bool with_flush)
 {
   ssize_t complete_total= 0;
   ssize_t total= 0;
@@ -691,7 +691,7 @@ bool memcached_io_writev(memcached_server_write_instance_st ptr,
 }
 
 
-void memcached_io_close(memcached_server_write_instance_st ptr)
+void memcached_io_close(org::libmemcached::Instance* ptr)
 {
   if (ptr->fd == INVALID_SOCKET)
   {
@@ -714,7 +714,7 @@ void memcached_io_close(memcached_server_write_instance_st ptr)
   ptr->fd= INVALID_SOCKET;
 }
 
-memcached_server_write_instance_st memcached_io_get_readable_server(memcached_st *memc)
+org::libmemcached::Instance* memcached_io_get_readable_server(memcached_st *memc)
 {
 #define MAX_SERVERS_TO_POLL 100
   struct pollfd fds[MAX_SERVERS_TO_POLL];
@@ -722,7 +722,7 @@ memcached_server_write_instance_st memcached_io_get_readable_server(memcached_st
 
   for (uint32_t x= 0; x < memcached_server_count(memc) and host_index < MAX_SERVERS_TO_POLL; ++x)
   {
-    memcached_server_write_instance_st instance= memcached_server_instance_fetch(memc, x);
+    org::libmemcached::Instance* instance= memcached_instance_fetch(memc, x);
 
     if (instance->read_buffer_length > 0) /* I have data in the buffer */
     {
@@ -743,7 +743,7 @@ memcached_server_write_instance_st memcached_io_get_readable_server(memcached_st
     /* We have 0 or 1 server with pending events.. */
     for (uint32_t x= 0; x< memcached_server_count(memc); ++x)
     {
-      memcached_server_write_instance_st instance= memcached_server_instance_fetch(memc, x);
+      org::libmemcached::Instance* instance= memcached_instance_fetch(memc, x);
 
       if (memcached_instance_response_count(instance) > 0)
       {
@@ -770,7 +770,7 @@ memcached_server_write_instance_st memcached_io_get_readable_server(memcached_st
       {
         for (uint32_t y= 0; y < memcached_server_count(memc); ++y)
         {
-          memcached_server_write_instance_st instance= memcached_server_instance_fetch(memc, y);
+          org::libmemcached::Instance* instance= memcached_instance_fetch(memc, y);
 
           if (instance->fd == fds[x].fd)
           {
@@ -787,7 +787,7 @@ memcached_server_write_instance_st memcached_io_get_readable_server(memcached_st
 /*
   Eventually we will just kill off the server with the problem.
 */
-void memcached_io_reset(memcached_server_write_instance_st ptr)
+void memcached_io_reset(org::libmemcached::Instance* ptr)
 {
   memcached_quit_server(ptr, true);
 }
@@ -796,7 +796,7 @@ void memcached_io_reset(memcached_server_write_instance_st ptr)
  * Read a given number of bytes from the server and place it into a specific
  * buffer. Reset the IO channel on this server if an error occurs.
  */
-memcached_return_t memcached_safe_read(memcached_server_write_instance_st ptr,
+memcached_return_t memcached_safe_read(org::libmemcached::Instance* ptr,
                                        void *dta,
                                        const size_t size)
 {
@@ -821,7 +821,7 @@ memcached_return_t memcached_safe_read(memcached_server_write_instance_st ptr,
   return MEMCACHED_SUCCESS;
 }
 
-memcached_return_t memcached_io_readline(memcached_server_write_instance_st ptr,
+memcached_return_t memcached_io_readline(org::libmemcached::Instance* ptr,
                                          char *buffer_ptr,
                                          size_t size,
                                          size_t& total_nr)
index bff6b83db205ae8edc6b638e48eb9ff0c035c1f6..5625ce94492134ea628a1a39b63dba64ca943774 100644 (file)
 
 #pragma once
 
-void initialize_binary_request(memcached_server_write_instance_st server, protocol_binary_request_header&);
+void initialize_binary_request(org::libmemcached::Instance* server, protocol_binary_request_header&);
 
-bool memcached_io_write(memcached_server_write_instance_st ptr);
+bool memcached_io_write(org::libmemcached::Instance* ptr);
 
-ssize_t memcached_io_write(memcached_server_write_instance_st ptr,
+ssize_t memcached_io_write(org::libmemcached::Instance* ptr,
                            const void *buffer, size_t length, bool with_flush);
 
-bool memcached_io_writev(memcached_server_write_instance_st ptr,
+bool memcached_io_writev(org::libmemcached::Instance* ptr,
                          libmemcached_io_vector_st vector[],
                          const size_t number_of, const bool with_flush);
 
-memcached_return_t memcached_io_wait_for_write(memcached_server_write_instance_st ptr);
+memcached_return_t memcached_io_wait_for_write(org::libmemcached::Instance* ptr);
 
-void memcached_io_reset(memcached_server_write_instance_st ptr);
+void memcached_io_reset(org::libmemcached::Instance* ptr);
 
-memcached_return_t memcached_io_read(memcached_server_write_instance_st ptr,
+memcached_return_t memcached_io_read(org::libmemcached::Instance* ptr,
                                      void *buffer, size_t length, ssize_t& nread);
 
 /* Read a line (terminated by '\n') into the buffer */
-memcached_return_t memcached_io_readline(memcached_server_write_instance_st ptr,
+memcached_return_t memcached_io_readline(org::libmemcached::Instance* ptr,
                                          char *buffer_ptr,
                                          size_t size,
                                          size_t& total);
 
-void memcached_io_close(memcached_server_write_instance_st ptr);
+void memcached_io_close(org::libmemcached::Instance* ptr);
 
 /* Read n bytes of data from the server and store them in dta */
-memcached_return_t memcached_safe_read(memcached_server_write_instance_st ptr,
+memcached_return_t memcached_safe_read(org::libmemcached::Instance* ptr,
                                        void *dta,
                                        const size_t size);
 
-memcached_server_write_instance_st memcached_io_get_readable_server(memcached_st *memc);
+org::libmemcached::Instance* memcached_io_get_readable_server(memcached_st *memc);
 
-memcached_return_t memcached_io_slurp(memcached_server_write_instance_st ptr);
+memcached_return_t memcached_io_slurp(org::libmemcached::Instance* ptr);
index 0574cc6cb40ae46fc36f9acac8a69c3d36dccac5..5f57c515c3122e9a954294a6371c28631eeaa091 100644 (file)
@@ -133,7 +133,7 @@ static void __memcached_free(memcached_st *ptr, bool release_st)
 
   memcached_virtual_bucket_free(ptr);
 
-  memcached_instance_free(ptr->last_disconnected_server);
+  memcached_instance_free((org::libmemcached::Instance*)ptr->last_disconnected_server);
 
   if (ptr->on_cleanup)
   {
@@ -279,7 +279,7 @@ void memcached_servers_reset(memcached_st *self)
 
     memcached_instance_set(self, NULL);
     self->number_of_hosts= 0;
-    memcached_instance_free(self->last_disconnected_server);
+    memcached_instance_free((org::libmemcached::Instance*)self->last_disconnected_server);
     self->last_disconnected_server= NULL;
   }
 }
@@ -288,7 +288,7 @@ void memcached_reset_last_disconnected_server(memcached_st *self)
 {
   if (self)
   {
-    memcached_instance_free(self->last_disconnected_server);
+    memcached_instance_free((org::libmemcached::Instance*)self->last_disconnected_server);
     self->last_disconnected_server= NULL;
   }
 }
@@ -421,10 +421,10 @@ void *memcached_set_user_data(memcached_st *ptr, void *data)
 
 memcached_return_t memcached_push(memcached_st *destination, const memcached_st *source)
 {
-  return memcached_instance_push(destination, source->servers, source->number_of_hosts);
+  return memcached_instance_push(destination, (org::libmemcached::Instance*)source->servers, source->number_of_hosts);
 }
 
-memcached_server_write_instance_st memcached_server_instance_fetch(memcached_st *ptr, uint32_t server_key)
+org::libmemcached::Instance* memcached_instance_fetch(memcached_st *ptr, uint32_t server_key)
 {
   if (ptr == NULL)
   {
@@ -444,6 +444,16 @@ memcached_server_instance_st memcached_server_instance_by_position(const memcach
   return &ptr->servers[server_key];
 }
 
+org::libmemcached::Instance* memcached_instance_by_position(const memcached_st *ptr, uint32_t server_key)
+{
+  if (ptr == NULL)
+  {
+    return NULL;
+  }
+
+  return &ptr->servers[server_key];
+}
+
 uint64_t memcached_query_id(const memcached_st *self)
 {
   if (self == NULL)
@@ -453,3 +463,14 @@ uint64_t memcached_query_id(const memcached_st *self)
 
   return self->query_id;
 }
+
+org::libmemcached::Instance* memcached_instance_list(const memcached_st *self)
+{
+  if (self)
+  {
+    return (org::libmemcached::Instance*)self->servers;
+  }
+
+  return NULL;
+}
+
index 841af82ebe5c989170cfeb811c16dfb9d8a60a43..b45e02a4a67738957498137f2177b9acf80e4788 100644 (file)
@@ -79,7 +79,7 @@ private:
   int32_t& _origin;
 };
 
-bool memcached_purge(memcached_server_write_instance_st ptr)
+bool memcached_purge(org::libmemcached::Instance* ptr)
 {
   memcached_st *root= (memcached_st *)ptr->root;
 
index 4bf72f64adf94b985e4a2eb9506414de171122a5..cc75bd426f39e49b29f2438cafc4bafb95fbfccc 100644 (file)
@@ -46,7 +46,7 @@
   will force data to be completed.
 */
 
-void memcached_quit_server(memcached_instance_st *ptr, bool io_death)
+void memcached_quit_server(org::libmemcached::Instance* ptr, bool io_death)
 {
   if (ptr->fd != INVALID_SOCKET)
   {
@@ -138,8 +138,7 @@ void send_quit(memcached_st *ptr)
 {
   for (uint32_t x= 0; x < memcached_server_count(ptr); x++)
   {
-    memcached_server_write_instance_st instance=
-      memcached_server_instance_fetch(ptr, x);
+    org::libmemcached::Instance* instance= memcached_instance_fetch(ptr, x);
 
     memcached_quit_server(instance, false);
   }
index 888cde46ae40f63b54b8cc9c7f49fa27f008e00c..76737b9551667b41775b96357f8002c1abc40dec 100644 (file)
@@ -36,6 +36,6 @@
 
 #pragma once
 
-void memcached_quit_server(memcached_instance_st *ptr, bool io_death);
+void memcached_quit_server(org::libmemcached::Instance* ptr, bool io_death);
 
 void send_quit(memcached_st *ptr);
index 809d5b6fb7606793b71d06c9c60e21e47d515958..67b0999f7f2afff67e462ec9c2c5a4894577aea8 100644 (file)
@@ -38,7 +38,7 @@
 #include <libmemcached/common.h>
 #include <libmemcached/string.hpp>
 
-static memcached_return_t textual_value_fetch(memcached_server_write_instance_st instance,
+static memcached_return_t textual_value_fetch(org::libmemcached::Instance* instance,
                                               char *buffer,
                                               memcached_result_st *result)
 {
@@ -207,7 +207,7 @@ read_error:
   return MEMCACHED_PARTIAL_READ;
 }
 
-static memcached_return_t textual_read_one_response(memcached_server_write_instance_st instance,
+static memcached_return_t textual_read_one_response(org::libmemcached::Instance* instance,
                                                     char *buffer, const size_t buffer_length,
                                                     memcached_result_st *result)
 {
@@ -470,7 +470,7 @@ static memcached_return_t textual_read_one_response(memcached_server_write_insta
                              buffer, total_read);
 }
 
-static memcached_return_t binary_read_one_response(memcached_server_write_instance_st instance,
+static memcached_return_t binary_read_one_response(org::libmemcached::Instance* instance,
                                                    char *buffer, const size_t buffer_length,
                                                    memcached_result_st *result)
 {
@@ -787,7 +787,7 @@ static memcached_return_t binary_read_one_response(memcached_server_write_instan
   return rc;
 }
 
-static memcached_return_t _read_one_response(memcached_server_write_instance_st instance,
+static memcached_return_t _read_one_response(org::libmemcached::Instance* instance,
                                              char *buffer, const size_t buffer_length,
                                              memcached_result_st *result)
 {
@@ -817,7 +817,7 @@ static memcached_return_t _read_one_response(memcached_server_write_instance_st
   return rc;
 }
 
-memcached_return_t memcached_read_one_response(memcached_server_write_instance_st instance,
+memcached_return_t memcached_read_one_response(org::libmemcached::Instance* instance,
                                                memcached_result_st *result)
 {
   char buffer[SMALL_STRING_LEN];
@@ -831,7 +831,7 @@ memcached_return_t memcached_read_one_response(memcached_server_write_instance_s
   return _read_one_response(instance, buffer, sizeof(buffer), result);
 }
 
-memcached_return_t memcached_response(memcached_server_write_instance_st instance,
+memcached_return_t memcached_response(org::libmemcached::Instance* instance,
                                       memcached_result_st *result)
 {
   char buffer[1024];
@@ -839,7 +839,7 @@ memcached_return_t memcached_response(memcached_server_write_instance_st instanc
   return memcached_response(instance, buffer, sizeof(buffer), result);
 }
 
-memcached_return_t memcached_response(memcached_server_write_instance_st instance,
+memcached_return_t memcached_response(org::libmemcached::Instance* instance,
                                       char *buffer, size_t buffer_length,
                                       memcached_result_st *result)
 {
index 8827aea043a84a9a60661010f07387865cf223ba..6d6d56442584946c8ab34fb37ba927125a61aa38 100644 (file)
 #pragma once
 
 /* Read a single response from the server */
-memcached_return_t memcached_read_one_response(memcached_server_write_instance_st ptr,
+memcached_return_t memcached_read_one_response(org::libmemcached::Instance* ptr,
                                                memcached_result_st *result);
 
-memcached_return_t memcached_response(memcached_server_write_instance_st ptr,
+memcached_return_t memcached_response(org::libmemcached::Instance* ptr,
                                       memcached_result_st *result);
 
-memcached_return_t memcached_response(memcached_server_write_instance_st ptr,
+memcached_return_t memcached_response(org::libmemcached::Instance* ptr,
                                       char *buffer, size_t buffer_length,
                                       memcached_result_st *result);
index cb609257cac36dc634e9ccef3be56d5ff6697695..67a31bbd132c5f4f5ac73779df1887c2e215c5ce 100644 (file)
@@ -123,7 +123,7 @@ static void sasl_startup_function(void)
 
 } // extern "C"
 
-memcached_return_t memcached_sasl_authenticate_connection(memcached_instance_st *server)
+memcached_return_t memcached_sasl_authenticate_connection(org::libmemcached::Instance* server)
 {
   if (LIBMEMCACHED_WITH_SASL_SUPPORT == 0)
   {
index c5d3f81c236ca92931474329d4704d3703f84d07..c990cfb88fce3638415609dc1fe28d77daff5227 100644 (file)
@@ -39,4 +39,4 @@
 
 memcached_return_t memcached_clone_sasl(memcached_st *clone, const  memcached_st *source);
 
-memcached_return_t memcached_sasl_authenticate_connection(memcached_instance_st *server);
+memcached_return_t memcached_sasl_authenticate_connection(org::libmemcached::Instance* server);
index a9d7c7284184ff3111a0c87b73d958486692b8f2..6dca4ab61f38b47570455e0230aceb45b262944c 100644 (file)
@@ -106,7 +106,7 @@ static memcached_server_st *_server_create(memcached_server_st *self, const memc
 }
 
 memcached_server_st *__server_create_with(memcached_st *memc,
-                                          memcached_server_st* self,
+                                          memcached_server_st* allocated_instance,
                                           const memcached_string_t& hostname,
                                           const in_port_t port,
                                           uint32_t weight, 
@@ -118,16 +118,16 @@ memcached_server_st *__server_create_with(memcached_st *memc,
     return NULL;
   }
 
-  self= _server_create(self, memc);
+  allocated_instance= _server_create(allocated_instance, memc);
 
-  if (self == NULL)
+  if (allocated_instance == NULL)
   {
     return NULL;
   }
 
-  _server_init(self, const_cast<memcached_st *>(memc), hostname, port, weight, type);
+  _server_init(allocated_instance, const_cast<memcached_st *>(memc), hostname, port, weight, type);
 
-  return self;
+  return allocated_instance;
 }
 
 void __server_free(memcached_server_st *self)
@@ -208,7 +208,7 @@ in_port_t memcached_server_port(const memcached_server_instance_st self)
     return 0;
   }
 
-  return self->port;
+  return self->port();
 }
 
 uint32_t memcached_server_response_count(const memcached_server_instance_st self)
index 191402e8a8b56a66f17e444fa7c3470d0445716c..74816fdc1af1457b34378e84c0061d19803b8d9e 100644 (file)
@@ -63,17 +63,11 @@ static inline bool memcached_is_valid_servername(const memcached_string_t& arg)
   return arg.size > 0 or arg.size < NI_MAXHOST;
 }
 
-static inline void memcached_mark_server_as_clean(memcached_server_write_instance_st server)
-{
-  server->server_failure_counter= 0;
-  server->next_retry= 0;
-}
-
-void memcached_instance_free(memcached_instance_st *);
+void memcached_instance_free(org::libmemcached::Instance *);
 
-void set_last_disconnected_host(memcached_server_write_instance_st self);
+void set_last_disconnected_host(org::libmemcached::Instance* self);
 
-static inline void memcached_mark_server_for_timeout(memcached_server_write_instance_st server)
+static inline void memcached_mark_server_for_timeout(org::libmemcached::Instance* server)
 {
   if (server->state != MEMCACHED_SERVER_STATE_IN_TIMEOUT)
   {
index 69613499072e20885f8a5078f364ff94bbadfdbe..c840384ab3a4216797eebfdc08e48a8c94a60a95 100644 (file)
 #pragma once
 
 #ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef struct memcached_instance_st * memcached_server_write_instance_st;
-
-#ifdef __cplusplus
-}
+typedef struct org::libmemcached::Instance* memcached_server_write_instance_st;
+#else
+typedef void* memcached_server_write_instance_st;
 #endif
index d2a00922594e9c13fe555d811a838caec37d6244..57d5c7fe1153bd2cd72d75757e390a7b1d723f78 100644 (file)
@@ -126,26 +126,16 @@ uint32_t memcached_instance_list_count(const memcached_st* self)
     : self->number_of_hosts;
 }
 
-uint32_t memcached_instance_count(const memcached_instance_st* self)
+uint32_t memcached_instance_count(const memcached_st* self)
 {
   return (self == NULL)
     ? 0
     : self->number_of_hosts;
 }
 
-memcached_instance_st *memcached_instance_list(const memcached_st *self)
+void memcached_instance_set(memcached_st* memc, org::libmemcached::Instance* list)
 {
-  if (self)
-  {
-    return self->servers;
-  }
-
-  return NULL;
-}
-
-void memcached_instance_set(memcached_st *self, memcached_instance_st *list)
-{
-  self->servers= list;
+  memc->servers= list;
 }
 
 void memcached_server_list_free(memcached_server_list_st self)
@@ -164,7 +154,7 @@ void memcached_server_list_free(memcached_server_list_st self)
   libmemcached_free(self->root, self);
 }
 
-void memcached_instance_list_free(memcached_instance_st* self, uint32_t instance_count)
+void memcached_instance_list_free(org::libmemcached::Instance* self, uint32_t instance_count)
 {
   if (self == NULL)
   {
index 3dfe5fee84042ef9baf30c358e028eb1a9005955..2a8052fac3d831778f99740b114f219583085596 100644 (file)
 
 #pragma once
 
-memcached_instance_st *memcached_instance_list(const memcached_st *);
+org::libmemcached::Instance* memcached_instance_list(const memcached_st *);
 
-uint32_t memcached_instance_count(const memcached_instance_st*);
+uint32_t memcached_instance_count(const memcached_st*);
 
 uint32_t memcached_instance_list_count(const memcached_st*);
 
 uint32_t memcached_servers_set_count(memcached_server_list_st servers, uint32_t count);
 
-void memcached_instance_list_free(memcached_instance_st* self, uint32_t count);
+void memcached_instance_list_free(org::libmemcached::Instance* self, uint32_t count);
 
-void memcached_instance_set(memcached_st *self, memcached_instance_st* list);
+void memcached_instance_set(memcached_st*, org::libmemcached::Instance*);
index cfe870b9985c7f7d817638f6fb698dc113713183..662edafb66c44055f207bd313f7f84d7b9455fe3 100644 (file)
@@ -346,7 +346,7 @@ char *memcached_stat_get_value(const memcached_st *ptr, memcached_stat_st *memc_
 static memcached_return_t binary_stats_fetch(memcached_stat_st *memc_stat,
                                              const char *args,
                                              const size_t args_length,
-                                             memcached_server_write_instance_st instance,
+                                             org::libmemcached::Instance* instance,
                                              struct local_context *check)
 {
   char buffer[MEMCACHED_DEFAULT_COMMAND_SIZE];
@@ -436,7 +436,7 @@ static memcached_return_t binary_stats_fetch(memcached_stat_st *memc_stat,
 static memcached_return_t ascii_stats_fetch(memcached_stat_st *memc_stat,
                                             const char *args,
                                             const size_t args_length,
-                                            memcached_server_write_instance_st instance,
+                                            org::libmemcached::Instance* instance,
                                             struct local_context *check)
 {
   libmemcached_io_vector_st vector[]=
@@ -552,7 +552,7 @@ memcached_stat_st *memcached_stat(memcached_st *self, char *args, memcached_retu
     stat_instance->pid= -1;
     stat_instance->root= self;
 
-    memcached_server_write_instance_st instance= memcached_server_instance_fetch(self, x);
+    org::libmemcached::Instance* instance= memcached_instance_fetch(self, x);
 
     memcached_return_t temp_return;
     if (memcached_is_binary(self))
@@ -613,7 +613,7 @@ memcached_return_t memcached_stat_servername(memcached_stat_st *memc_stat, char
 
     if (memcached_success(rc))
     {
-      memcached_server_write_instance_st instance= memcached_server_instance_fetch(memc_ptr, 0);
+      org::libmemcached::Instance* instance= memcached_instance_fetch(memc_ptr, 0);
       if (memc.flags.binary_protocol)
       {
         rc= binary_stats_fetch(memc_stat, args, args_length, instance, NULL);
@@ -675,7 +675,7 @@ void memcached_stat_free(const memcached_st *, memcached_stat_st *memc_stat)
 }
 
 static memcached_return_t call_stat_fn(memcached_st *ptr,
-                                       memcached_server_write_instance_st instance,
+                                       org::libmemcached::Instance* instance,
                                        void *context)
 {
   memcached_return_t rc;
index 88d87fe36ec1aaaa0abe6f6235e39234deb2a015..cd29670df1183750e66358668dad3e223125a823 100644 (file)
@@ -139,7 +139,7 @@ static inline uint8_t get_com_code(const memcached_storage_action_t verb, const
 }
 
 static memcached_return_t memcached_send_binary(memcached_st *ptr,
-                                                memcached_server_write_instance_st server,
+                                                org::libmemcached::Instance* server,
                                                 uint32_t server_key,
                                                 const char *key,
                                                 const size_t key_length,
@@ -217,7 +217,7 @@ static memcached_return_t memcached_send_binary(memcached_st *ptr,
         server_key= 0;
       }
 
-      memcached_server_write_instance_st instance= memcached_server_instance_fetch(ptr, server_key);
+      org::libmemcached::Instance* instance= memcached_instance_fetch(ptr, server_key);
 
       if (memcached_vdo(instance, vector, 5, false) != MEMCACHED_SUCCESS)
       {
@@ -245,7 +245,7 @@ static memcached_return_t memcached_send_binary(memcached_st *ptr,
 }
 
 static memcached_return_t memcached_send_ascii(memcached_st *ptr,
-                                               memcached_server_write_instance_st instance,
+                                               org::libmemcached::Instance* instance,
                                                const char *key,
                                                const size_t key_length,
                                                const char *value,
@@ -371,7 +371,7 @@ static inline memcached_return_t memcached_send(memcached_st *ptr,
   }
 
   uint32_t server_key= memcached_generate_hash_with_redistribution(ptr, group_key, group_key_length);
-  memcached_server_write_instance_st instance= memcached_server_instance_fetch(ptr, server_key);
+  org::libmemcached::Instance* instance= memcached_instance_fetch(ptr, server_key);
 
   WATCHPOINT_SET(instance->io_wait_count.read= 0);
   WATCHPOINT_SET(instance->io_wait_count.write= 0);
index 757ddfdfa1426f92d9d6da92f59a61afb3988673..7a8c7cee57659bed33a4f8e2ffdb6c28b001221b 100644 (file)
@@ -38,7 +38,7 @@
 #include <libmemcached/common.h>
 #include <libmemcached/memcached/protocol_binary.h>
 
-static memcached_return_t ascii_touch(memcached_server_write_instance_st instance,
+static memcached_return_t ascii_touch(org::libmemcached::Instance* instance,
                                       const char *key, size_t key_length,
                                       time_t expiration)
 {
@@ -70,7 +70,7 @@ static memcached_return_t ascii_touch(memcached_server_write_instance_st instanc
   return rc;
 }
 
-static memcached_return_t binary_touch(memcached_server_write_instance_st instance,
+static memcached_return_t binary_touch(org::libmemcached::Instance* instance,
                                        const char *key, size_t key_length,
                                        time_t expiration)
 {
@@ -129,7 +129,7 @@ memcached_return_t memcached_touch_by_key(memcached_st *ptr,
   }
 
   uint32_t server_key= memcached_generate_hash_with_redistribution(ptr, group_key, group_key_length);
-  memcached_server_write_instance_st instance= memcached_server_instance_fetch(ptr, server_key);
+  org::libmemcached::Instance* instance= memcached_instance_fetch(ptr, server_key);
 
   if (ptr->flags.binary_protocol)
   {
index 905eedd78c53aa2f8c79d277602f4689c38a72dc..923e2734569326a38f70b51b8640d0806011ebc5 100644 (file)
@@ -48,7 +48,7 @@
  * extracts the message number from message_id, increments it and then
  * writes the new value back into the header
  */
-void increment_udp_message_id(memcached_server_write_instance_st ptr)
+void increment_udp_message_id(org::libmemcached::Instance* ptr)
 {
   struct udp_datagram_header_st *header= (struct udp_datagram_header_st *)ptr->write_buffer;
   uint16_t cur_req= get_udp_datagram_request_id(header);
@@ -61,7 +61,7 @@ void increment_udp_message_id(memcached_server_write_instance_st ptr)
   header->request_id= htons((uint16_t) (thread_id | msg_num));
 }
 
-bool memcached_io_init_udp_header(memcached_server_write_instance_st ptr, const uint16_t thread_id)
+bool memcached_io_init_udp_header(org::libmemcached::Instance* ptr, const uint16_t thread_id)
 {
   if (thread_id > UDP_REQUEST_ID_MAX_THREAD_ID)
   {
index 9cc53889c96e93a59d66fc4f5ef1fdbfcf6becd3..b2d2e9e9a51925ca6a191a98885cc4605bf34622 100644 (file)
@@ -55,5 +55,5 @@ struct udp_datagram_header_st
   uint16_t reserved;
 };
 
-bool memcached_io_init_udp_header(memcached_server_write_instance_st ptr, const uint16_t thread_id);
-void increment_udp_message_id(memcached_server_write_instance_st ptr);
+bool memcached_io_init_udp_header(org::libmemcached::Instance*, const uint16_t thread_id);
+void increment_udp_message_id(org::libmemcached::Instance*);
index 7b05ef42ddcc4f0a681a5fdad4b98a2ed865fc39..4a9918d25f82aeb0f675be0d1f6ff8ef52451ea4 100644 (file)
@@ -56,7 +56,7 @@ static memcached_return_t _set_verbosity(const memcached_st *,
 
   if (rc == MEMCACHED_SUCCESS)
   {
-    memcached_server_write_instance_st instance= memcached_server_instance_fetch(memc_ptr, 0);
+    org::libmemcached::Instance* instance= memcached_instance_fetch(memc_ptr, 0);
 
 
     rc= memcached_vdo(instance, vector, 4, true);
index 9f41c97ae6ac10e7224cb576d81027dc21615fd7..5772ef2c617cf32e6ca1b83aaac799f680d1d3d3 100644 (file)
@@ -52,7 +52,7 @@ static inline memcached_return_t memcached_version_textual(memcached_st *ptr)
   bool errors_happened= false;
   for (uint32_t x= 0; x < memcached_server_count(ptr); x++)
   {
-    memcached_server_write_instance_st instance= memcached_server_instance_fetch(ptr, x);
+    org::libmemcached::Instance* instance= memcached_instance_fetch(ptr, x);
 
     // Optimization, we only fetch version once.
     if (instance->major_version != UINT8_MAX)
@@ -73,7 +73,7 @@ static inline memcached_return_t memcached_version_textual(memcached_st *ptr)
   if (success)
   {
     // Collect the returned items
-    memcached_server_write_instance_st instance;
+    org::libmemcached::Instance* instance;
     while ((instance= memcached_io_get_readable_server(ptr)))
     {
       memcached_return_t rrc= memcached_response(instance, NULL);
@@ -104,7 +104,7 @@ static inline memcached_return_t memcached_version_binary(memcached_st *ptr)
   bool errors_happened= false;
   for (uint32_t x= 0; x < memcached_server_count(ptr); x++) 
   {
-    memcached_server_write_instance_st instance= memcached_server_instance_fetch(ptr, x);
+    org::libmemcached::Instance* instance= memcached_instance_fetch(ptr, x);
 
     initialize_binary_request(instance, request.message.header);
 
@@ -127,7 +127,7 @@ static inline memcached_return_t memcached_version_binary(memcached_st *ptr)
   if (success)
   {
     // Collect the returned items
-    memcached_server_write_instance_st instance;
+    org::libmemcached::Instance* instance;
     while ((instance= memcached_io_get_readable_server(ptr)))
     {
       char buffer[32];
index 603e15ca4bc7ec3ed8c7a6d32473dea00d252fbb..52ac9b250ceae95732c4c4f3cf64a3cd657b1db1 100644 (file)
@@ -67,7 +67,7 @@ static memcached_return_t server_wrapper_for_dump_callback(const memcached_st *,
 {
   memcached_st *memc= memcached_create(NULL);
 
-  if (server->type == MEMCACHED_CONNECTION_UNIX_SOCKET)
+  if (strcmp(memcached_server_type(server), "SOCKET") == 0)
   {
     if (memcached_failed(memcached_server_add_unix_socket(memc, memcached_server_name(server))))
     {
index 1a70e1cbb8f20b0e2d8cba145ad69eb7749968a2..045ae074ef69559cee40b148dd040e6749e91ee8 100644 (file)
@@ -160,7 +160,6 @@ test_return_t user_supplied_bug18(memcached_st *trash)
 test_return_t auto_eject_hosts(memcached_st *trash)
 {
   (void) trash;
-  memcached_server_instance_st instance;
 
   memcached_return_t rc;
   memcached_st *memc= memcached_create(NULL);
@@ -201,8 +200,8 @@ test_return_t auto_eject_hosts(memcached_st *trash)
   test_true(server_pool[7].port == 11211);
   test_true(server_pool[7].weight == 100);
 
-  instance= memcached_server_instance_by_position(memc, 2);
-  ((memcached_server_write_instance_st)instance)->next_retry = time(NULL) + 15;
+  memcached_server_instance_st instance= memcached_server_instance_by_position(memc, 2);
+  memcached_instance_next_retry(instance, time(NULL) +15);
   memc->ketama.next_distribution_rebuild= time(NULL) - 1;
 
   /*
@@ -216,8 +215,9 @@ test_return_t auto_eject_hosts(memcached_st *trash)
   }
 
   /* and re-added when it's back. */
-  ((memcached_server_write_instance_st)instance)->next_retry = time(NULL) - 1;
-  memc->ketama.next_distribution_rebuild= time(NULL) - 1;
+  time_t absolute_time= time(NULL) -1;
+  memcached_instance_next_retry(instance, absolute_time);
+  memc->ketama.next_distribution_rebuild= absolute_time;
   memcached_behavior_set(memc, MEMCACHED_BEHAVIOR_DISTRIBUTION,
                          memc->distribution);
   for (ptrdiff_t x= 0; x < 99; x++)
index 199ee01b70a33a5c2e98cb3f39688e960642e3b5..cba7c95732ba7d98c4ad58aa2d003f293c2dc743 100644 (file)
@@ -299,9 +299,9 @@ static memcached_return_t server_display_unsort_function(const memcached_st*,
   /* Do Nothing */
   uint32_t x= *((uint32_t *)(context));
 
-  if (! (test_ports[x] == server->port))
+  if (! (test_ports[x] == memcached_server_port(server)))
   {
-    fprintf(stderr, "%lu -> %lu\n", (unsigned long)test_ports[x], (unsigned long)server->port);
+    fprintf(stderr, "%lu -> %lu\n", (unsigned long)test_ports[x], (unsigned long)memcached_server_port(server));
     return MEMCACHED_FAILURE;
   }
 
@@ -4044,11 +4044,11 @@ test_return_t regression_bug_447342(memcached_st *memc)
  */
   memcached_server_instance_st instance_one= memcached_server_instance_by_position(memc, 0);
   memcached_server_instance_st instance_two= memcached_server_instance_by_position(memc, 2);
-  in_port_t port0= instance_one->port;
-  in_port_t port2= instance_two->port;
+  in_port_t port0= instance_one->port();
+  in_port_t port2= instance_two->port();
 
-  ((memcached_server_write_instance_st)instance_one)->port= 0;
-  ((memcached_server_write_instance_st)instance_two)->port= 0;
+  ((memcached_server_write_instance_st)instance_one)->port(0);
+  ((memcached_server_write_instance_st)instance_two)->port(0);
 
   test_compare(MEMCACHED_SUCCESS,
                memcached_mget(memc, 
@@ -4060,8 +4060,8 @@ test_return_t regression_bug_447342(memcached_st *memc)
   test_compare(counter, keys.size());
 
   /* restore the memc handle */
-  ((memcached_server_write_instance_st)instance_one)->port= port0;
-  ((memcached_server_write_instance_st)instance_two)->port= port2;
+  ((memcached_server_write_instance_st)instance_one)->port(port0);
+  ((memcached_server_write_instance_st)instance_two)->port(port2);
 
   memcached_quit(memc);
 
@@ -4076,8 +4076,8 @@ test_return_t regression_bug_447342(memcached_st *memc)
   }
 
   memcached_quit(memc);
-  ((memcached_server_write_instance_st)instance_one)->port= 0;
-  ((memcached_server_write_instance_st)instance_two)->port= 0;
+  ((memcached_server_write_instance_st)instance_one)->port(0);
+  ((memcached_server_write_instance_st)instance_two)->port(0);
 
   /* now retry the command, this time we should have cache misses */
   test_compare(MEMCACHED_SUCCESS,
@@ -4090,8 +4090,8 @@ test_return_t regression_bug_447342(memcached_st *memc)
   test_compare(counter, (unsigned int)(keys.size() >> 1));
 
   /* restore the memc handle */
-  ((memcached_server_write_instance_st)instance_one)->port= port0;
-  ((memcached_server_write_instance_st)instance_two)->port= port2;
+  ((memcached_server_write_instance_st)instance_one)->port(port0);
+  ((memcached_server_write_instance_st)instance_two)->port(port2);
 
   return TEST_SUCCESS;
 }
index 2b79bc1560e98c9d0336727afde9fa0a79869e95..8f2423c36919844da201d1c944db87845234fc82 100644 (file)
@@ -124,10 +124,9 @@ test_return_t replication_get_test(memcached_st *memc)
   for (uint32_t host= 0; host < memcached_server_count(memc); ++host)
   {
     memcached_st *memc_clone= memcached_clone(NULL, memc);
-    memcached_server_instance_st instance=
-      memcached_server_instance_by_position(memc_clone, host);
+    org::libmemcached::Instance* instance= (org::libmemcached::Instance*)memcached_server_instance_by_position(memc_clone, host);
 
-    ((memcached_server_write_instance_st)instance)->port= 0;
+    instance->port(0);
 
     for (int x= 'a'; x <= 'z'; ++x)
     {
@@ -187,9 +186,8 @@ test_return_t replication_mget_test(memcached_st *memc)
   for (uint32_t host= 0; host < memcached_server_count(memc_clone); host++)
   {
     memcached_st *new_clone= memcached_clone(NULL, memc);
-    memcached_server_instance_st instance=
-      memcached_server_instance_by_position(new_clone, host);
-    ((memcached_server_write_instance_st)instance)->port= 0;
+    memcached_server_instance_st instance= memcached_server_instance_by_position(new_clone, host);
+    ((memcached_server_write_instance_st)instance)->port(0);
 
     for (int x= 'a'; x <= 'z'; ++x)
     {
@@ -332,7 +330,7 @@ test_return_t replication_randomize_mget_fail_test(memcached_st *memc)
   // We need to now cause a failure in one server, never do this in your own
   // code.
   close(memc_clone->servers[1].fd);
-  memc_clone->servers[1].port= 1;
+  memc_clone->servers[1].port(1);
   memc_clone->servers[1].address_info_next= NULL;
 
   for (int x= int(MEMCACHED_SUCCESS); x < int(MEMCACHED_MAXIMUM_RETURN); ++x)