*
* Libmemcached library
*
- * Copyright (C) 2012 Data Differential, http://datadifferential.com/
+ * Copyright (C) 2012-2013 Data Differential, http://datadifferential.com/
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
# define MEMCACHED_NI_MAXSERV 32
#endif
-namespace org {
-namespace libmemcached {
+#include "libmemcached/string.hpp"
// @todo Complete class transformation
-struct Instance {
+struct memcached_instance_st {
in_port_t port() const
{
return port_;
void mark_server_as_clean()
{
server_failure_counter= 0;
+ server_timeout_counter= 0;
next_retry= 0;
}
{
}
+ bool valid() const;
+
+ bool is_shutting_down() const;
+
+ void start_close_socket();
+ void close_socket();
+ void reset_socket();
+
uint32_t response_count() const
{
return cursor_active_;
return _revents;
}
+ const char* hostname()
+ {
+ return _hostname;
+ }
+
+ void hostname(const memcached_string_t& hostname_)
+ {
+ if (hostname_.size)
+ {
+ memcpy(_hostname, hostname_.c_str, hostname_.size);
+ _hostname[hostname_.size]= 0;
+ }
+ else
+ {
+ memcpy(_hostname, memcached_literal_param("localhost"));
+ _hostname[memcached_literal_param_size("localhost")]= 0;
+ }
+ }
+
void events(short);
void revents(short);
uint32_t request_id;
uint32_t server_failure_counter;
uint64_t server_failure_counter_query_id;
+ uint32_t server_timeout_counter;
+ uint32_t server_timeout_counter_query_id;
uint32_t weight;
uint32_t version;
enum memcached_server_state_t state;
struct memcached_error_t *error_messages;
char read_buffer[MEMCACHED_MAX_BUFFER];
char write_buffer[MEMCACHED_MAX_BUFFER];
- char hostname[MEMCACHED_NI_MAXHOST];
-};
+ char _hostname[MEMCACHED_NI_MAXHOST];
-} // namespace libmemcached
-} // namespace org
+ void clear_addrinfo()
+ {
+ if (address_info)
+ {
+ freeaddrinfo(address_info);
+ address_info= NULL;
+ address_info_next= NULL;
+ }
+ }
+};
-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);
+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);
-memcached_return_t memcached_instance_push(memcached_st *ptr, const org::libmemcached::Instance*, uint32_t);
+memcached_return_t memcached_instance_push(memcached_st *ptr, const memcached_instance_st*, uint32_t);
-void __instance_free(org::libmemcached::Instance *);
+void __instance_free(memcached_instance_st *);