Remove how use instance (keep API intact)
[m6w6/libmemcached] / libmemcached / server.hpp
index 8cfcbdba229fa75112d9acd83a3953e8fa869ef8..191402e8a8b56a66f17e444fa7c3470d0445716c 100644 (file)
 
 #pragma once
 
-#include <libmemcached/basic_string.h>
-
 #ifdef HAVE_SYS_TIME_H
 #include <sys/time.h>
 #endif
 
 #include <cassert>
 
+memcached_server_st *__server_create_with(memcached_st *memc,
+                                          memcached_server_st* self,
+                                          const memcached_string_t& hostname,
+                                          const in_port_t port,
+                                          uint32_t weight, 
+                                          const memcached_connection_t type);
+
+memcached_return_t memcached_server_add_parsed(memcached_st *ptr,
+                                               const char *hostname,
+                                               size_t hostname_length,
+                                               in_port_t port,
+                                               uint32_t weight);
+
+void __server_free(memcached_server_st *);
+
 static inline bool memcached_is_valid_servername(const memcached_string_t& arg)
 {
   return arg.size > 0 or arg.size < NI_MAXHOST;
@@ -56,27 +69,9 @@ static inline void memcached_mark_server_as_clean(memcached_server_write_instanc
   server->next_retry= 0;
 }
 
+void memcached_instance_free(memcached_instance_st *);
 
-static inline void set_last_disconnected_host(memcached_server_write_instance_st self)
-{
-  assert(self->root);
-  if (self->root == NULL)
-  {
-    return;
-  }
-
-  if (self->root->last_disconnected_server and self->root->last_disconnected_server->version == self->version)
-  {
-    return;
-  }
-
-  // const_cast
-  memcached_st *root= (memcached_st *)self->root;
-
-  memcached_server_free(root->last_disconnected_server);
-  root->last_disconnected_server= memcached_server_clone(NULL, self);
-  root->last_disconnected_server->version= self->version;
-}
+void set_last_disconnected_host(memcached_server_write_instance_st self);
 
 static inline void memcached_mark_server_for_timeout(memcached_server_write_instance_st server)
 {
@@ -101,11 +96,3 @@ static inline void memcached_mark_server_for_timeout(memcached_server_write_inst
     set_last_disconnected_host(server);
   }
 }
-
-LIBMEMCACHED_LOCAL
-  memcached_server_st *__server_create_with(memcached_st *memc,
-                                            memcached_server_write_instance_st host,
-                                            const memcached_string_t& hostname,
-                                            const in_port_t port,
-                                            uint32_t weight,
-                                            const memcached_connection_t type);