*
*/
-#ifndef __MEMCACHED_H__
-#define __MEMCACHED_H__
+#ifndef __LIBMEMCACHED_MEMCACHED_H__
+#define __LIBMEMCACHED_MEMCACHED_H__
#include <stdlib.h>
#include <inttypes.h>
extern "C" {
#endif
+LIBMEMCACHED_API
+void memcached_servers_reset(memcached_st *ptr);
+
+LIBMEMCACHED_API
+memcached_st *memcached_create(memcached_st *ptr);
+
+LIBMEMCACHED_API
+void memcached_free(memcached_st *ptr);
+
+LIBMEMCACHED_API
+memcached_st *memcached_clone(memcached_st *clone, const memcached_st *ptr);
+
+LIBMEMCACHED_API
+void *memcached_get_user_data(const memcached_st *ptr);
+
+LIBMEMCACHED_API
+void *memcached_set_user_data(memcached_st *ptr, void *data);
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
+
+
struct memcached_st {
/**
@note these are static and should not change without a call to behavior.
struct {
bool is_allocated:1;
} options;
-};
-LIBMEMCACHED_API
-void memcached_servers_reset(memcached_st *ptr);
+#ifdef __cplusplus
+ memcached_st() :
+ state(),
+ flags(),
+ distribution(),
+ hashkit(),
+ continuum_points_counter(),
+ number_of_hosts(),
+ servers(),
+ last_disconnected_server(),
+ snd_timeout(),
+ rcv_timeout(),
+ server_failure_limit(),
+ io_msg_watermark(),
+ io_bytes_watermark(),
+ io_key_prefetch(),
+ cached_errno(),
+ poll_timeout(),
+ connect_timeout(),
+ retry_timeout(),
+ continuum_count(),
+ send_size(),
+ recv_size(),
+ user_data(),
+ next_distribution_rebuild(),
+ prefix_key_length(),
+ number_of_replicas(),
+ distribution_hashkit(),
+ result(),
+ continuum(),
+ allocators(),
+ on_clone(),
+ on_cleanup(),
+ get_key_failure(),
+ delete_trigger(),
+ callbacks(),
+ prefix_key(),
+ options()
+ {
+ memcached_create(this);
+ }
-/* Public API */
+ ~memcached_st()
+ {
+ memcached_free(this);
+ }
-LIBMEMCACHED_API
-memcached_st *memcached_create(memcached_st *ptr);
+ memcached_st(const memcached_st& source) :
+ state(),
+ flags(),
+ distribution(),
+ hashkit(),
+ continuum_points_counter(),
+ number_of_hosts(),
+ servers(),
+ last_disconnected_server(),
+ snd_timeout(),
+ rcv_timeout(),
+ server_failure_limit(),
+ io_msg_watermark(),
+ io_bytes_watermark(),
+ io_key_prefetch(),
+ cached_errno(),
+ poll_timeout(),
+ connect_timeout(),
+ retry_timeout(),
+ continuum_count(),
+ send_size(),
+ recv_size(),
+ user_data(),
+ next_distribution_rebuild(),
+ prefix_key_length(),
+ number_of_replicas(),
+ distribution_hashkit(),
+ result(),
+ continuum(),
+ allocators(),
+ on_clone(),
+ on_cleanup(),
+ get_key_failure(),
+ delete_trigger(),
+ callbacks(),
+ prefix_key(),
+ options()
+ {
+ memcached_clone(this, &source);
+ }
-LIBMEMCACHED_API
-void memcached_free(memcached_st *ptr);
+ memcached_st& operator=(const memcached_st& source)
+ {
+ memcached_free(this);
+ memcached_clone(this, &source);
-LIBMEMCACHED_API
-memcached_st *memcached_clone(memcached_st *clone, memcached_st *ptr);
+ return *this;
+ }
-LIBMEMCACHED_API
-void *memcached_get_user_data(const memcached_st *ptr);
+#endif
+};
-LIBMEMCACHED_API
-void *memcached_set_user_data(memcached_st *ptr, void *data);
// Local Only Inline
static inline memcached_server_st *memcached_server_instance_fetch(memcached_st *ptr, uint32_t server_key)
return &ptr->servers[server_key];
}
-
-#ifdef __cplusplus
-}
-#endif
-
-
-#endif /* __MEMCACHED_H__ */
+#endif /* __LIBMEMCACHED_MEMCACHED_H__ */