Fixed header file layout
authorTrond Norbye <trond.norbye@sun.com>
Tue, 4 Aug 2009 12:59:00 +0000 (14:59 +0200)
committerTrond Norbye <trond.norbye@sun.com>
Tue, 4 Aug 2009 12:59:00 +0000 (14:59 +0200)
The user should only include <libmemcached/memcached.h> to use the basic
functionality from libmemcached (even in C++). libmemcached/memcached.h
should include the relevant header files containing the definitions.

25 files changed:
libmemcached/Makefile.am
libmemcached/memcached.h
libmemcached/memcached.hpp
libmemcached/memcached_allocators.h [new file with mode: 0644]
libmemcached/memcached_arithmetic.h [new file with mode: 0644]
libmemcached/memcached_behavior.h [new file with mode: 0644]
libmemcached/memcached_callback.h [new file with mode: 0644]
libmemcached/memcached_constants.h
libmemcached/memcached_delete.h [new file with mode: 0644]
libmemcached/memcached_dump.h [new file with mode: 0644]
libmemcached/memcached_flush.h [new file with mode: 0644]
libmemcached/memcached_flush_buffers.h [new file with mode: 0644]
libmemcached/memcached_get.h
libmemcached/memcached_hash.h [new file with mode: 0644]
libmemcached/memcached_pool.h
libmemcached/memcached_result.h
libmemcached/memcached_server.h
libmemcached/memcached_st.h [new file with mode: 0644]
libmemcached/memcached_stats.h [new file with mode: 0644]
libmemcached/memcached_storage.h
libmemcached/memcached_string.h
libmemcached/memcached_types.h
libmemcached/memcached_util.h
libmemcached/visibility.h
tests/plus.cpp

index 087290e986d33dfae258a71fd01e98e98012c1b5..044276a0c0d76b32299b9480ff4e88ab9b0b1310 100644 (file)
@@ -11,17 +11,28 @@ noinst_HEADERS = libmemcached_probes.h \
                  memcached/protocol_binary.h
 
 pkginclude_HEADERS= memcached.h \
-                   memcached.hpp \
+                    memcached.hpp \
+                    memcached_allocators.h \
+                    memcached_arithmetic.h \
+                    memcached_behavior.h \
+                    memcached_callback.h \
                     memcached_configure.h \
-                   memcached_constants.h \
-                   memcached_get.h \
-                   memcached_result.h \
-                   memcached_server.h \
-                   memcached_storage.h \
-                   memcached_string.h \
-                   memcached_types.h \
-                   memcached_watchpoint.h \
-                   visibility.h
+                    memcached_constants.h \
+                    memcached_delete.h \
+                    memcached_dump.h \
+                    memcached_flush.h \
+                    memcached_flush_buffers.h \
+                    memcached_get.h \
+                    memcached_hash.h \
+                    memcached_result.h \
+                    memcached_server.h \
+                    memcached_st.h \
+                    memcached_stats.h \
+                    memcached_storage.h \
+                    memcached_string.h \
+                    memcached_types.h \
+                    memcached_watchpoint.h \
+                    visibility.h
 
 
 if BUILD_LIBMEMCACHEDUTIL
index c3b436bf2ff721481d5e1bf41de99f01d433ced4..479d469c132adc613d3b257b55422d21421ffc69 100644 (file)
@@ -7,8 +7,8 @@
  * Author: Brian Aker
  */
 
-#ifndef __MEMCACHED_H__
-#define __MEMCACHED_H__
+#ifndef LIBMEMCACHED_MEMCACHED_H
+#define LIBMEMCACHED_MEMCACHED_H
 
 #include <stdlib.h>
 #include <inttypes.h>
@@ -18,6 +18,9 @@
 #include <sys/types.h>
 #include <netinet/in.h>
 
+#define MEMCACHED_VERSION_STRING_LENGTH 24
+#define LIBMEMCACHED_VERSION_STRING "0.31"
+
 #include <libmemcached/visibility.h>
 #include <libmemcached/memcached_configure.h>
 #include <libmemcached/memcached_constants.h>
 #include <libmemcached/memcached_string.h>
 #include <libmemcached/memcached_result.h>
 #include <libmemcached/memcached_storage.h>
+#include <libmemcached/memcached_stats.h>
+#include <libmemcached/memcached_arithmetic.h>
+#include <libmemcached/memcached_allocators.h>
+#include <libmemcached/memcached_behavior.h>
+#include <libmemcached/memcached_callback.h>
+#include <libmemcached/memcached_dump.h>
+#include <libmemcached/memcached_delete.h>
+#include <libmemcached/memcached_flush.h>
+#include <libmemcached/memcached_flush_buffers.h>
+#include <libmemcached/memcached_hash.h>
+#include <libmemcached/memcached_st.h>
 
 #ifdef __cplusplus
-extern "C" {
+#include <libmemcached/memcached.hpp>
 #endif
 
-#define MEMCACHED_VERSION_STRING_LENGTH 24
-#define LIBMEMCACHED_VERSION_STRING "0.31"
-
-struct memcached_analysis_st {
-  uint32_t average_item_size;
-  uint32_t longest_uptime;
-  uint32_t least_free_server;
-  uint32_t most_consumed_server;
-  uint32_t oldest_server;
-  double pool_hit_ratio;
-  uint64_t most_used_bytes;
-  uint64_t least_remaining_bytes;
-};
-
-struct memcached_stat_st {
-  uint32_t connection_structures;
-  uint32_t curr_connections;
-  uint32_t curr_items;
-  uint32_t pid;
-  uint32_t pointer_size;
-  uint32_t rusage_system_microseconds;
-  uint32_t rusage_system_seconds;
-  uint32_t rusage_user_microseconds;
-  uint32_t rusage_user_seconds;
-  uint32_t threads;
-  uint32_t time;
-  uint32_t total_connections;
-  uint32_t total_items;
-  uint32_t uptime;
-  uint64_t bytes;
-  uint64_t bytes_read;
-  uint64_t bytes_written;
-  uint64_t cmd_get;
-  uint64_t cmd_set;
-  uint64_t evictions;
-  uint64_t get_hits;
-  uint64_t get_misses;
-  uint64_t limit_maxbytes;
-  char version[MEMCACHED_VERSION_STRING_LENGTH];
-};
-
-struct memcached_st {
-  uint8_t purging;
-  bool is_allocated;
-  uint8_t distribution;
-  uint8_t hash;
-  uint32_t continuum_points_counter;
-  memcached_server_st *hosts;
-  int32_t snd_timeout;
-  int32_t rcv_timeout;
-  uint32_t server_failure_limit;
-  uint32_t io_msg_watermark;
-  uint32_t io_bytes_watermark;
-  uint32_t io_key_prefetch;
-  uint32_t number_of_hosts;
-  uint32_t cursor_server;
-  int cached_errno;
-  uint32_t flags;
-  int32_t poll_timeout;
-  int32_t connect_timeout;
-  int32_t retry_timeout;
-  uint32_t continuum_count;
-  int send_size;
-  int recv_size;
-  void *user_data;
-  time_t next_distribution_rebuild;
-  size_t prefix_key_length;
-  memcached_hash hash_continuum;
-  memcached_result_st result;
-  memcached_continuum_item_st *continuum;
-  memcached_clone_func on_clone;
-  memcached_cleanup_func on_cleanup;
-  memcached_free_function call_free;
-  memcached_malloc_function call_malloc;
-  memcached_realloc_function call_realloc;
-  memcached_calloc_function call_calloc;
-  memcached_trigger_key get_key_failure;
-  memcached_trigger_delete_key delete_trigger;
-  char prefix_key[MEMCACHED_PREFIX_KEY_MAX_SIZE];
-  uint32_t number_of_replicas;
-};
-
-LIBMEMCACHED_API
-memcached_return memcached_version(memcached_st *ptr);
-
-/* Public API */
-
-LIBMEMCACHED_API
-const char * memcached_lib_version(void);
-
-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, memcached_st *ptr);
-
-LIBMEMCACHED_API
-memcached_return memcached_delete(memcached_st *ptr, const char *key, size_t key_length,
-                                  time_t expiration);
-LIBMEMCACHED_API
-memcached_return memcached_increment(memcached_st *ptr, 
-                                     const char *key, size_t key_length,
-                                     uint32_t offset,
-                                     uint64_t *value);
-LIBMEMCACHED_API
-memcached_return memcached_decrement(memcached_st *ptr, 
-                                     const char *key, size_t key_length,
-                                     uint32_t offset,
-                                     uint64_t *value);
-LIBMEMCACHED_API
-memcached_return memcached_increment_with_initial(memcached_st *ptr,
-                                                  const char *key,
-                                                  size_t key_length,
-                                                  uint64_t offset,
-                                                  uint64_t initial,
-                                                  time_t expiration,
-                                                  uint64_t *value);
-LIBMEMCACHED_API
-memcached_return memcached_decrement_with_initial(memcached_st *ptr,
-                                                  const char *key,
-                                                  size_t key_length,
-                                                  uint64_t offset,
-                                                  uint64_t initial,
-                                                  time_t expiration,
-                                                  uint64_t *value);
-LIBMEMCACHED_API
-void memcached_stat_free(memcached_st *, memcached_stat_st *);
-LIBMEMCACHED_API
-memcached_stat_st *memcached_stat(memcached_st *ptr, char *args, memcached_return *error);
-LIBMEMCACHED_API
-memcached_return memcached_stat_servername(memcached_stat_st *memc_stat, char *args, 
-                                           char *hostname, unsigned int port);
-LIBMEMCACHED_API
-memcached_return memcached_flush(memcached_st *ptr, time_t expiration);
-LIBMEMCACHED_API
-memcached_return memcached_verbosity(memcached_st *ptr, unsigned int verbosity);
-LIBMEMCACHED_API
-void memcached_quit(memcached_st *ptr);
-LIBMEMCACHED_API
-const char *memcached_strerror(memcached_st *ptr, memcached_return rc);
-LIBMEMCACHED_API
-memcached_return memcached_behavior_set(memcached_st *ptr, memcached_behavior flag, uint64_t data);
-LIBMEMCACHED_API
-uint64_t memcached_behavior_get(memcached_st *ptr, memcached_behavior flag);
-
-/* The two public hash bits */
-LIBMEMCACHED_API
-uint32_t memcached_generate_hash_value(const char *key, size_t key_length, memcached_hash hash_algorithm);
-LIBMEMCACHED_API
-uint32_t memcached_generate_hash(memcached_st *ptr, const char *key, size_t key_length);
-
-LIBMEMCACHED_API
-memcached_return memcached_flush_buffers(memcached_st *mem);
-
-/* Server Public functions */
-
-LIBMEMCACHED_API
-memcached_return memcached_server_add_udp(memcached_st *ptr, 
-                                          const char *hostname,
-                                          unsigned int port);
-LIBMEMCACHED_API
-memcached_return memcached_server_add_unix_socket(memcached_st *ptr, 
-                                                  const char *filename);
-LIBMEMCACHED_API
-memcached_return memcached_server_add(memcached_st *ptr, const char *hostname, 
-                                      unsigned int port);
-
-LIBMEMCACHED_API
-memcached_return memcached_server_add_udp_with_weight(memcached_st *ptr, 
-                                                      const char *hostname,
-                                                      unsigned int port,
-                                                      uint32_t weight);
-LIBMEMCACHED_API
-memcached_return memcached_server_add_unix_socket_with_weight(memcached_st *ptr, 
-                                                              const char *filename,
-                                                              uint32_t weight);
-LIBMEMCACHED_API
-memcached_return memcached_server_add_with_weight(memcached_st *ptr, const char *hostname, 
-                                                  unsigned int port,
-                                                  uint32_t weight);
-LIBMEMCACHED_API
-void memcached_server_list_free(memcached_server_st *ptr);
-LIBMEMCACHED_API
-memcached_return memcached_server_push(memcached_st *ptr, memcached_server_st *list);
-
-LIBMEMCACHED_API
-memcached_server_st *memcached_server_list_append(memcached_server_st *ptr, 
-                                                  const char *hostname, 
-                                                  unsigned int port, 
-                                                  memcached_return *error);
-LIBMEMCACHED_API
-memcached_server_st *memcached_server_list_append_with_weight(memcached_server_st *ptr, 
-                                                              const char *hostname, 
-                                                              unsigned int port, 
-                                                              uint32_t weight,
-                                                              memcached_return *error);
-LIBMEMCACHED_API
-unsigned int memcached_server_list_count(memcached_server_st *ptr);
-LIBMEMCACHED_API
-memcached_server_st *memcached_servers_parse(const char *server_strings);
-
-LIBMEMCACHED_API
-char *memcached_stat_get_value(memcached_st *ptr, memcached_stat_st *memc_stat, 
-                               const char *key, memcached_return *error);
-LIBMEMCACHED_API
-char ** memcached_stat_get_keys(memcached_st *ptr, memcached_stat_st *memc_stat, 
-                                memcached_return *error);
-
-LIBMEMCACHED_API
-memcached_return memcached_delete_by_key(memcached_st *ptr, 
-                                         const char *master_key, size_t master_key_length,
-                                         const char *key, size_t key_length,
-                                         time_t expiration);
-
-LIBMEMCACHED_API
-memcached_return memcached_fetch_execute(memcached_st *ptr, 
-                                             memcached_execute_function *callback,
-                                             void *context,
-                                             unsigned int number_of_callbacks);
-
-LIBMEMCACHED_API
-memcached_return memcached_callback_set(memcached_st *ptr, 
-                                        memcached_callback flag, 
-                                        void *data);
-LIBMEMCACHED_API
-void *memcached_callback_get(memcached_st *ptr, 
-                             memcached_callback flag,
-                             memcached_return *error);
-
-LIBMEMCACHED_API
-memcached_return memcached_dump(memcached_st *ptr, memcached_dump_func *function, void *context, uint32_t number_of_callbacks);
-
-
-LIBMEMCACHED_API
-memcached_return memcached_set_memory_allocators(memcached_st *ptr,
-                                                 memcached_malloc_function mem_malloc,
-                                                 memcached_free_function mem_free,
-                                                 memcached_realloc_function mem_realloc,
-                                                 memcached_calloc_function mem_calloc);
-
-LIBMEMCACHED_API
-void memcached_get_memory_allocators(memcached_st *ptr,
-                                     memcached_malloc_function *mem_malloc,
-                                     memcached_free_function *mem_free,
-                                     memcached_realloc_function *mem_realloc,
-                                     memcached_calloc_function *mem_calloc);
-
-LIBMEMCACHED_API
-void *memcached_get_user_data(memcached_st *ptr);
-LIBMEMCACHED_API
-void *memcached_set_user_data(memcached_st *ptr, void *data);
-
-LIBMEMCACHED_API
-memcached_return run_distribution(memcached_st *ptr);
-#ifdef __cplusplus
-}
-#endif
-
-
-#endif /* __MEMCACHED_H__ */
+#endif /* LIBMEMCACHED_MEMCACHED_H */
index c21651bf3007abb6173a28a97c7e0c7a02666caa..23f6ea5b45579a773f5fdb20a06faec4c1471e41 100644 (file)
@@ -12,8 +12,8 @@
  * @brief Libmemcached C++ interface
  */
 
-#ifndef LIBMEMCACHEDPP_H
-#define LIBMEMCACHEDPP_H
+#ifndef LIBMEMCACHED_MEMCACHED_HPP
+#define LIBMEMCACHED_MEMCACHED_HPP
 
 #include <libmemcached/memcached.h>
 
@@ -795,4 +795,4 @@ private:
 
 }
 
-#endif /* LIBMEMCACHEDPP_H */
+#endif /* LIBMEMCACHED_MEMCACHED_HPP */
diff --git a/libmemcached/memcached_allocators.h b/libmemcached/memcached_allocators.h
new file mode 100644 (file)
index 0000000..a3a7ba2
--- /dev/null
@@ -0,0 +1,38 @@
+/*
+ * Summary: Allocator functions for libmemcached
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Trond Norbye
+ */
+
+#ifndef LIBMEMCACHED_MEMCACHED_ALLOCATORS_H
+#define LIBMEMCACHED_MEMCACHED_ALLOCATORS_H
+
+#ifndef LIBMEMCACHED_MEMCACHED_H
+#error "Please include <libmemcached/memcached.h> instead"
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+LIBMEMCACHED_API
+memcached_return memcached_set_memory_allocators(memcached_st *ptr,
+                                                 memcached_malloc_function mem_malloc,
+                                                 memcached_free_function mem_free,
+                                                 memcached_realloc_function mem_realloc,
+                                                 memcached_calloc_function mem_calloc);
+
+LIBMEMCACHED_API
+void memcached_get_memory_allocators(memcached_st *ptr,
+                                     memcached_malloc_function *mem_malloc,
+                                     memcached_free_function *mem_free,
+                                     memcached_realloc_function *mem_realloc,
+                                     memcached_calloc_function *mem_calloc);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* LIBMEMCACHED_MEMCACHED_ALLOCATORS_H */
diff --git a/libmemcached/memcached_arithmetic.h b/libmemcached/memcached_arithmetic.h
new file mode 100644 (file)
index 0000000..cee5378
--- /dev/null
@@ -0,0 +1,51 @@
+/*
+ * Summary: Arithmetic functions for libmemcached
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Trond Norbye
+ */
+
+#ifndef LIBMEMCACHED_MEMCACHED_ARITHMETIC_H
+#define LIBMEMCACHED_MEMCACHED_ARITHMETIC_H
+
+#ifndef LIBMEMCACHED_MEMCACHED_H
+#error "Please include <libmemcached/memcached.h> instead"
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+LIBMEMCACHED_API
+memcached_return memcached_increment(memcached_st *ptr, 
+                                     const char *key, size_t key_length,
+                                     uint32_t offset,
+                                     uint64_t *value);
+LIBMEMCACHED_API
+memcached_return memcached_decrement(memcached_st *ptr, 
+                                     const char *key, size_t key_length,
+                                     uint32_t offset,
+                                     uint64_t *value);
+LIBMEMCACHED_API
+memcached_return memcached_increment_with_initial(memcached_st *ptr,
+                                                  const char *key,
+                                                  size_t key_length,
+                                                  uint64_t offset,
+                                                  uint64_t initial,
+                                                  time_t expiration,
+                                                  uint64_t *value);
+LIBMEMCACHED_API
+memcached_return memcached_decrement_with_initial(memcached_st *ptr,
+                                                  const char *key,
+                                                  size_t key_length,
+                                                  uint64_t offset,
+                                                  uint64_t initial,
+                                                  time_t expiration,
+                                                  uint64_t *value);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* LIBMEMCACHED_MEMCACHED_ARITHMETIC_H */
diff --git a/libmemcached/memcached_behavior.h b/libmemcached/memcached_behavior.h
new file mode 100644 (file)
index 0000000..e30fecc
--- /dev/null
@@ -0,0 +1,29 @@
+/*
+ * Summary: Behavior functions for libmemcached
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Trond Norbye
+ */
+
+#ifndef LIBMEMCACHED_MEMCACHED_BEHAVIOR_H
+#define LIBMEMCACHED_MEMCACHED_BEHAVIOR_H
+
+#ifndef LIBMEMCACHED_MEMCACHED_H
+#error "Please include <libmemcached/memcached.h> instead"
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+LIBMEMCACHED_API
+memcached_return memcached_behavior_set(memcached_st *ptr, memcached_behavior flag, uint64_t data);
+LIBMEMCACHED_API
+uint64_t memcached_behavior_get(memcached_st *ptr, memcached_behavior flag);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* LIBMEMCACHED_MEMCACHED_BEHAVIOR_H */
diff --git a/libmemcached/memcached_callback.h b/libmemcached/memcached_callback.h
new file mode 100644 (file)
index 0000000..97d1cc3
--- /dev/null
@@ -0,0 +1,37 @@
+/*
+ * Summary: Callback function for libmemcached
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Trond Norbye
+ */
+#ifndef LIBMEMCACHED_MEMCACHED_CALLBACK_H
+#define LIBMEMCACHED_MEMCACHED_CALLBACK_H
+
+#ifndef LIBMEMCACHED_MEMCACHED_H
+#error "Please include <libmemcached/memcached.h> instead"
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+LIBMEMCACHED_API
+memcached_return memcached_fetch_execute(memcached_st *ptr, 
+                                             memcached_execute_function *callback,
+                                             void *context,
+                                             unsigned int number_of_callbacks);
+
+LIBMEMCACHED_API
+memcached_return memcached_callback_set(memcached_st *ptr, 
+                                        memcached_callback flag, 
+                                        void *data);
+LIBMEMCACHED_API
+void *memcached_callback_get(memcached_st *ptr, 
+                             memcached_callback flag,
+                             memcached_return *error);
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* LIBMEMCACHED_MEMCACHED_CALLBACK_H */
index 3bb157c50a02e90627b7fa5164c37b039e6f091e..c248baffa34ae09c845ee0abac147c243d104eb4 100644 (file)
@@ -6,8 +6,12 @@
  * Author: Brian Aker
  */
 
-#ifndef __MEMCACHED_CONSTANTS_H__
-#define __MEMCACHED_CONSTANTS_H__
+#ifndef LIBMEMCACHED_MEMCACHED_CONSTANTS_H
+#define LIBMEMCACHED_MEMCACHED_CONSTANTS_H
+
+#ifndef LIBMEMCACHED_MEMCACHED_H
+#error "Please include <libmemcached/memcached.h> instead"
+#endif
 
 /* Public defines */
 #define MEMCACHED_DEFAULT_PORT 11211
@@ -139,4 +143,4 @@ typedef enum {
   MEMCACHED_CONNECTION_UNIX_SOCKET
 } memcached_connection;
 
-#endif /* __MEMCACHED_CONSTANTS_H__ */
+#endif /* LIBMEMCACHED_MEMCACHED_CONSTANTS_H */
diff --git a/libmemcached/memcached_delete.h b/libmemcached/memcached_delete.h
new file mode 100644 (file)
index 0000000..0da1f39
--- /dev/null
@@ -0,0 +1,34 @@
+/*
+ * Summary: Delete functions for libmemcached
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Trond Norbye
+ */
+
+#ifndef LIBMEMCACHED_MEMCACHED_DELETE_H
+#define LIBMEMCACHED_MEMCACHED_DELETE_H
+
+#ifndef LIBMEMCACHED_MEMCACHED_H
+#error "Please include <libmemcached/memcached.h> instead"
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+LIBMEMCACHED_API
+memcached_return memcached_delete(memcached_st *ptr, const char *key, size_t key_length,
+                                  time_t expiration);
+
+LIBMEMCACHED_API
+memcached_return memcached_delete_by_key(memcached_st *ptr, 
+                                         const char *master_key, size_t master_key_length,
+                                         const char *key, size_t key_length,
+                                         time_t expiration);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* LIBMEMCACHED_MEMCACHED_DELETE_H */
diff --git a/libmemcached/memcached_dump.h b/libmemcached/memcached_dump.h
new file mode 100644 (file)
index 0000000..0495152
--- /dev/null
@@ -0,0 +1,27 @@
+/*
+ * Summary: Dump function for libmemcached
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Trond Norbye
+ */
+
+#ifndef LIBMEMCACHED_MEMCACHED_DUMP_H
+#define LIBMEMCACHED_MEMCACHED_DUMP_H
+
+#ifndef LIBMEMCACHED_MEMCACHED_H
+#error "Please include <libmemcached/memcached.h> instead"
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+LIBMEMCACHED_API
+memcached_return memcached_dump(memcached_st *ptr, memcached_dump_func *function, void *context, uint32_t number_of_callbacks);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* LIBMEMCACHED_MEMCACHED_DUMP_H */
diff --git a/libmemcached/memcached_flush.h b/libmemcached/memcached_flush.h
new file mode 100644 (file)
index 0000000..fa95ae2
--- /dev/null
@@ -0,0 +1,27 @@
+/*
+ * Summary: Flush functions for libmemcached
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Trond Norbye
+ */
+
+#ifndef LIBMEMCACHED_MEMCACHED_FLUSH_H
+#define LIBMEMCACHED_MEMCACHED_FLUSH_H
+
+#ifndef LIBMEMCACHED_MEMCACHED_H
+#error "Please include <libmemcached/memcached.h> instead"
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+LIBMEMCACHED_API
+memcached_return memcached_flush(memcached_st *ptr, time_t expiration);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* LIBMEMCACHED_MEMCACHED_FLUSH_H */
diff --git a/libmemcached/memcached_flush_buffers.h b/libmemcached/memcached_flush_buffers.h
new file mode 100644 (file)
index 0000000..5d5f0ef
--- /dev/null
@@ -0,0 +1,27 @@
+/*
+ * Summary: Flush functions for libmemcached
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Trond Norbye
+ */
+
+#ifndef LIBMEMCACHED_MEMCACHED_FLUSH_BUFFERS_H
+#define LIBMEMCACHED_MEMCACHED_FLUSH_BUFFERS_H
+
+#ifndef LIBMEMCACHED_MEMCACHED_H
+#error "Please include <libmemcached/memcached.h> instead"
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+LIBMEMCACHED_API
+memcached_return memcached_flush_buffers(memcached_st *mem);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* LIBMEMCACHED_MEMCACHED_FLUSH_BUFFERS_H */
index 4ea04a9457b10ff05ac2071d9eda7f2f6a2e04de..34db08936fefa20295afbab250b7a569e441ba81 100644 (file)
@@ -6,8 +6,12 @@
  * Author: Brian Aker
  */
 
-#ifndef __MEMCACHED_GET_H__
-#define __MEMCACHED_GET_H__
+#ifndef LIBMEMCACHED_MEMCACHED_GET_H
+#define LIBMEMCACHED_MEMCACHED_GET_H
+
+#ifndef LIBMEMCACHED_MEMCACHED_H
+#error "Please include <libmemcached/memcached.h> instead"
+#endif
 
 #ifdef __cplusplus
 extern "C" {
@@ -59,4 +63,4 @@ memcached_result_st *memcached_fetch_result(memcached_st *ptr,
 }
 #endif
 
-#endif /* __MEMCACHED_GET_H__ */
+#endif /* LIBMEMCACHED_MEMCACHED_GET_H */
diff --git a/libmemcached/memcached_hash.h b/libmemcached/memcached_hash.h
new file mode 100644 (file)
index 0000000..62dc7a9
--- /dev/null
@@ -0,0 +1,30 @@
+/*
+ * Summary: Hash functions for libmemcached
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Trond Norbye
+ */
+
+#ifndef LIBMEMCACHED_MEMCACHED_HASH_H
+#define LIBMEMCACHED_MEMCACHED_HASH_H
+
+#ifndef LIBMEMCACHED_MEMCACHED_H
+#error "Please include <libmemcached/memcached.h> instead"
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+LIBMEMCACHED_API
+uint32_t memcached_generate_hash_value(const char *key, size_t key_length, memcached_hash hash_algorithm);
+LIBMEMCACHED_API
+uint32_t memcached_generate_hash(memcached_st *ptr, const char *key, size_t key_length);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* LIBMEMCACHED_MEMCACHED_HASH_H */
index 7efe65e9e9674835c0c77db08bbd26bd082146a0..f4cf1c1996931c1581294822673cf8c7619b90d0 100644 (file)
@@ -6,8 +6,8 @@
  * Author: Trond Norbye
  */
 
-#ifndef MEMCACHED_POOL_H
-#define MEMCACHED_POOL_H
+#ifndef LIBMEMCACHED_MEMCACHED_POOL_H
+#define LIBMEMCACHED_MEMCACHED_POOL_H
 
 #include <libmemcached/memcached.h>
 
@@ -35,4 +35,4 @@ memcached_return memcached_pool_push(memcached_pool_st* pool,
 }
 #endif
 
-#endif /* MEMCACHED_POOL_H */
+#endif /* LIBMEMCACHED_MEMCACHED_POOL_H */
index e7ce012b3884e814e50b065c496b00b00c0e91b6..77f120104ae89f9d57c3693f83761f9c8f2e8f28 100644 (file)
@@ -6,26 +6,17 @@
  * Author: Brian Aker
  */
 
-#ifndef __MEMCACHED_RESULT_H__
-#define __MEMCACHED_RESULT_H__
+#ifndef LIBMEMCACHED_MEMCACHED_RESULT_H
+#define LIBMEMCACHED_MEMCACHED_RESULT_H
+
+#ifndef LIBMEMCACHED_MEMCACHED_H
+#error "Please include <libmemcached/memcached.h> instead"
+#endif
 
 #ifdef __cplusplus
 extern "C" {
 #endif
 
-struct memcached_result_st {
-  uint32_t flags;
-  bool is_allocated;
-  time_t expiration;
-  memcached_st *root;
-  size_t key_length;
-  uint64_t cas;
-  memcached_string_st value;
-  char key[MEMCACHED_MAX_KEY];
-  /* Add result callback function */
-};
-
-/* Result Struct */
 LIBMEMCACHED_API
 void memcached_result_free(memcached_result_st *result);
 LIBMEMCACHED_API
@@ -56,4 +47,4 @@ memcached_return memcached_result_set_value(memcached_result_st *ptr, const char
 }
 #endif
 
-#endif /* __MEMCACHED_RESULT_H__ */
+#endif /* LIBMEMCACHED_MEMCACHED_RESULT_H */
index ec1014a61b1aa85f955305e676dcca3c35acae88..a91454f25dc66b53ff58fd5b455d300ef163e595 100644 (file)
@@ -6,8 +6,12 @@
  * Author: Brian Aker
  */
 
-#ifndef __MEMCACHED_SERVER_H__
-#define __MEMCACHED_SERVER_H__
+#ifndef LIBMEMCACHED_MEMCACHED_SERVER_H
+#define LIBMEMCACHED_MEMCACHED_SERVER_H
+
+#ifndef LIBMEMCACHED_MEMCACHED_H
+#error "Please include <libmemcached/memcached.h> instead"
+#endif
 
 #ifdef __cplusplus
 extern "C" {
@@ -86,8 +90,56 @@ memcached_analysis_st *memcached_analyze(memcached_st *memc, memcached_stat_st *
 LIBMEMCACHED_API
 memcached_return memcached_server_remove(memcached_server_st *st_ptr);
 
+/* Server Public functions */
+
+LIBMEMCACHED_API
+memcached_return memcached_server_add_udp(memcached_st *ptr, 
+                                          const char *hostname,
+                                          unsigned int port);
+LIBMEMCACHED_API
+memcached_return memcached_server_add_unix_socket(memcached_st *ptr, 
+                                                  const char *filename);
+LIBMEMCACHED_API
+memcached_return memcached_server_add(memcached_st *ptr, const char *hostname, 
+                                      unsigned int port);
+
+LIBMEMCACHED_API
+memcached_return memcached_server_add_udp_with_weight(memcached_st *ptr, 
+                                                      const char *hostname,
+                                                      unsigned int port,
+                                                      uint32_t weight);
+LIBMEMCACHED_API
+memcached_return memcached_server_add_unix_socket_with_weight(memcached_st *ptr, 
+                                                              const char *filename,
+                                                              uint32_t weight);
+LIBMEMCACHED_API
+memcached_return memcached_server_add_with_weight(memcached_st *ptr, const char *hostname, 
+                                                  unsigned int port,
+                                                  uint32_t weight);
+LIBMEMCACHED_API
+void memcached_server_list_free(memcached_server_st *ptr);
+LIBMEMCACHED_API
+memcached_return memcached_server_push(memcached_st *ptr, memcached_server_st *list);
+
+LIBMEMCACHED_API
+memcached_server_st *memcached_server_list_append(memcached_server_st *ptr, 
+                                                  const char *hostname, 
+                                                  unsigned int port, 
+                                                  memcached_return *error);
+LIBMEMCACHED_API
+memcached_server_st *memcached_server_list_append_with_weight(memcached_server_st *ptr, 
+                                                              const char *hostname, 
+                                                              unsigned int port, 
+                                                              uint32_t weight,
+                                                              memcached_return *error);
+LIBMEMCACHED_API
+unsigned int memcached_server_list_count(memcached_server_st *ptr);
+LIBMEMCACHED_API
+memcached_server_st *memcached_servers_parse(const char *server_strings);
+
+
 #ifdef __cplusplus
 }
 #endif
 
-#endif /* __MEMCACHED_SERVER_H__ */
+#endif /* LIBMEMCACHED_MEMCACHED_SERVER_H */
diff --git a/libmemcached/memcached_st.h b/libmemcached/memcached_st.h
new file mode 100644 (file)
index 0000000..d45dd59
--- /dev/null
@@ -0,0 +1,52 @@
+/*
+ * Summary: Common functions to operate on the memcached_st for libmemcached
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Trond Norbye
+ */
+
+#ifndef LIBMEMCACHED_MEMCACHED_ST_H
+#define LIBMEMCACHED_MEMCACHED_ST_H
+
+#ifndef LIBMEMCACHED_MEMCACHED_H
+#error "Please include <libmemcached/memcached.h> instead"
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+LIBMEMCACHED_API
+memcached_return memcached_version(memcached_st *ptr);
+
+LIBMEMCACHED_API
+const char * memcached_lib_version(void);
+
+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, memcached_st *ptr);
+
+LIBMEMCACHED_API
+memcached_return memcached_verbosity(memcached_st *ptr, unsigned int verbosity);
+LIBMEMCACHED_API
+void memcached_quit(memcached_st *ptr);
+LIBMEMCACHED_API
+const char *memcached_strerror(memcached_st *ptr, memcached_return rc);
+
+LIBMEMCACHED_API
+void *memcached_get_user_data(memcached_st *ptr);
+LIBMEMCACHED_API
+void *memcached_set_user_data(memcached_st *ptr, void *data);
+
+LIBMEMCACHED_API
+memcached_return run_distribution(memcached_st *ptr);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* LIBMEMCACHED_MEMCACHED_ST_H */
diff --git a/libmemcached/memcached_stats.h b/libmemcached/memcached_stats.h
new file mode 100644 (file)
index 0000000..0b96f59
--- /dev/null
@@ -0,0 +1,76 @@
+/*
+ * Summary: Stat functions for libmemcached
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Trond Norbye
+ */
+
+#ifndef LIBMEMCACHED_MEMCACHED_STATS_H
+#define LIBMEMCACHED_MEMCACHED_STATS_H
+
+#ifndef LIBMEMCACHED_MEMCACHED_H
+#error "Please include <libmemcached/memcached.h> instead"
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+struct memcached_analysis_st {
+  uint32_t average_item_size;
+  uint32_t longest_uptime;
+  uint32_t least_free_server;
+  uint32_t most_consumed_server;
+  uint32_t oldest_server;
+  double pool_hit_ratio;
+  uint64_t most_used_bytes;
+  uint64_t least_remaining_bytes;
+};
+
+struct memcached_stat_st {
+  uint32_t connection_structures;
+  uint32_t curr_connections;
+  uint32_t curr_items;
+  uint32_t pid;
+  uint32_t pointer_size;
+  uint32_t rusage_system_microseconds;
+  uint32_t rusage_system_seconds;
+  uint32_t rusage_user_microseconds;
+  uint32_t rusage_user_seconds;
+  uint32_t threads;
+  uint32_t time;
+  uint32_t total_connections;
+  uint32_t total_items;
+  uint32_t uptime;
+  uint64_t bytes;
+  uint64_t bytes_read;
+  uint64_t bytes_written;
+  uint64_t cmd_get;
+  uint64_t cmd_set;
+  uint64_t evictions;
+  uint64_t get_hits;
+  uint64_t get_misses;
+  uint64_t limit_maxbytes;
+  char version[MEMCACHED_VERSION_STRING_LENGTH];
+};
+
+LIBMEMCACHED_API
+void memcached_stat_free(memcached_st *, memcached_stat_st *);
+LIBMEMCACHED_API
+memcached_stat_st *memcached_stat(memcached_st *ptr, char *args, memcached_return *error);
+LIBMEMCACHED_API
+memcached_return memcached_stat_servername(memcached_stat_st *memc_stat, char *args, 
+                                           char *hostname, unsigned int port);
+LIBMEMCACHED_API
+char *memcached_stat_get_value(memcached_st *ptr, memcached_stat_st *memc_stat, 
+                               const char *key, memcached_return *error);
+LIBMEMCACHED_API
+char ** memcached_stat_get_keys(memcached_st *ptr, memcached_stat_st *memc_stat, 
+                                memcached_return *error);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* LIBMEMCACHED_MEMCACHED_STATS_H */
index 834401a69e75fd7d3caa2c94ffddbf1d69505677..87d8baeb5c95e5cd52d6ba314a4da2dbfd30b735 100644 (file)
@@ -6,8 +6,8 @@
  * Author: Brian Aker
  */
 
-#ifndef __MEMCACHED_STORAGE_H__
-#define __MEMCACHED_STORAGE_H__
+#ifndef LIBMEMCACHED_MEMCACHED_STORAGE_H
+#define LIBMEMCACHED_MEMCACHED_STORAGE_H
 
 #include "libmemcached/memcached_types.h"
 
@@ -104,4 +104,4 @@ memcached_return memcached_cas_by_key(memcached_st *ptr,
 }
 #endif
 
-#endif /* __MEMCACHED_STORAGE_H__ */
+#endif /* LIBMEMCACHED_MEMCACHED_STORAGE_H */
index bed142811c217e51e72d9f881cc7b00876eb6f3f..b643302da9c4f3d3372de7e14b2d42d2cc61a92d 100644 (file)
@@ -6,22 +6,17 @@
  * Author: Brian Aker
  */
 
-#ifndef __MEMCACHED_STRING_H__
-#define __MEMCACHED_STRING_H__
+#ifndef LIBMEMCACHED_MEMCACHED_STRING_H
+#define LIBMEMCACHED_MEMCACHED_STRING_H
+
+#ifndef LIBMEMCACHED_MEMCACHED_H
+#error "Please include <libmemcached/memcached.h> instead"
+#endif
 
 #ifdef __cplusplus
 extern "C" {
 #endif
 
-struct memcached_string_st {
-  memcached_st *root;
-  char *end;
-  char *string;
-  size_t current_size;
-  size_t block_size;
-  bool is_allocated;
-};
-
 #define memcached_string_length(A) (size_t)((A)->end - (A)->string)
 #define memcached_string_set_length(A, B) (A)->end= (A)->string + B
 #define memcached_string_size(A) (A)->current_size
@@ -50,4 +45,4 @@ void memcached_string_free(memcached_string_st *string);
 }
 #endif
 
-#endif /* __MEMCACHED_STRING_H__ */
+#endif /* LIBMEMCACHED_MEMCACHED_STRING_H */
index d7bb470ab915d9868df4133e8b7f26260f267294..d8c68f181548f11ecc5a283359ab3ded6c5a9c28 100644 (file)
@@ -6,8 +6,12 @@
  * Author: Brian Aker
  */
 
-#ifndef __MEMCACHED_TYPES_H__
-#define __MEMCACHED_TYPES_H__
+#ifndef LIBMEMCACHED_MEMCACHED_TYPES_H
+#define LIBMEMCACHED_MEMCACHED_TYPES_H
+
+#ifndef LIBMEMCACHED_MEMCACHED_H
+#error "Please include <libmemcached/memcached.h> instead"
+#endif
 
 #ifdef __cplusplus
 extern "C" {
@@ -37,8 +41,70 @@ typedef memcached_return (*memcached_trigger_delete_key)(memcached_st *ptr,
 typedef memcached_return (*memcached_dump_func)(memcached_st *ptr,  
                                                 const char *key, size_t key_length, void *context);
 
+struct memcached_string_st {
+  memcached_st *root;
+  char *end;
+  char *string;
+  size_t current_size;
+  size_t block_size;
+  bool is_allocated;
+};
+
+struct memcached_result_st {
+  uint32_t flags;
+  bool is_allocated;
+  time_t expiration;
+  memcached_st *root;
+  size_t key_length;
+  uint64_t cas;
+  memcached_string_st value;
+  char key[MEMCACHED_MAX_KEY];
+  /* Add result callback function */
+};
+
+struct memcached_st {
+  uint8_t purging;
+  bool is_allocated;
+  uint8_t distribution;
+  uint8_t hash;
+  uint32_t continuum_points_counter;
+  memcached_server_st *hosts;
+  int32_t snd_timeout;
+  int32_t rcv_timeout;
+  uint32_t server_failure_limit;
+  uint32_t io_msg_watermark;
+  uint32_t io_bytes_watermark;
+  uint32_t io_key_prefetch;
+  uint32_t number_of_hosts;
+  uint32_t cursor_server;
+  int cached_errno;
+  uint32_t flags;
+  int32_t poll_timeout;
+  int32_t connect_timeout;
+  int32_t retry_timeout;
+  uint32_t continuum_count;
+  int send_size;
+  int recv_size;
+  void *user_data;
+  time_t next_distribution_rebuild;
+  size_t prefix_key_length;
+  memcached_hash hash_continuum;
+  memcached_result_st result;
+  memcached_continuum_item_st *continuum;
+  memcached_clone_func on_clone;
+  memcached_cleanup_func on_cleanup;
+  memcached_free_function call_free;
+  memcached_malloc_function call_malloc;
+  memcached_realloc_function call_realloc;
+  memcached_calloc_function call_calloc;
+  memcached_trigger_key get_key_failure;
+  memcached_trigger_delete_key delete_trigger;
+  char prefix_key[MEMCACHED_PREFIX_KEY_MAX_SIZE];
+  uint32_t number_of_replicas;
+};
+
 #ifdef __cplusplus
 }
 #endif
 
-#endif /* __MEMCACHED_TYPES_H__ */
+#endif /* LIBMEMCACHED_MEMCACHED_TYPES_H */
index 65732c87f438919738c9cfd170b4a19da11a7650..501b81ae6c0a515927684009c238fab50b733dd6 100644 (file)
@@ -7,9 +7,9 @@
  * Author: Trond Norbye
  */
 
-#ifndef MEMCACHED_UTIL_H
-#define MEMCACHED_UTIL_H
+#ifndef LIBMEMCACHED_MEMCACHED_UTIL_H
+#define LIBMEMCACHED_MEMCACHED_UTIL_H
 
 #include <libmemcached/memcached_pool.h>
 
-#endif /* MEMCACHED_UTIL_H */
+#endif /* LIBMEMCACHED_MEMCACHED_UTIL_H */
index 9405a88d6f8a5267b6d1658af8d7cdff6474484a..1f3e85bb274a721b66266b13a505e7ceb73def4d 100644 (file)
@@ -13,8 +13,8 @@
  * @brief Visibility control macros
  */
 
-#ifndef __LIBMEMCACHED_VISIBILITY_H
-#define __LIBMEMCACHED_VISIBILITY_H
+#ifndef LIBMEMCACHED_VISIBILITY_H
+#define LIBMEMCACHED_VISIBILITY_H
 
 /**
  *
@@ -48,4 +48,4 @@
 # endif /* defined(_MSC_VER) */
 #endif /* defined(BUILDING_LIBMEMCACHED) */
 
-#endif /* __LIBMEMCACHED_VISIBILITY_H */
+#endif /* LIBMEMCACHED_VISIBILITY_H */
index 6b43164433cfeafa8741918b66af8d02e3d3ee5d..b8bd89a18eda7536c51dd200907214a723d93b93 100644 (file)
@@ -1,7 +1,7 @@
 /*
   C++ interface test
 */
-#include "libmemcached/memcached.hpp"
+#include "libmemcached/memcached.h"
 
 #include <assert.h>
 #include <stdio.h>