Merge up current work from trunk
authorBrian Aker <brian@tangent.org>
Tue, 29 Nov 2011 23:28:01 +0000 (15:28 -0800)
committerBrian Aker <brian@tangent.org>
Tue, 29 Nov 2011 23:28:01 +0000 (15:28 -0800)
17 files changed:
libmemcached-1.0/allocators.h
libmemcached-1.0/behavior.h
libmemcached-1.0/hash.h
libmemcached-1.0/quit.h
libmemcached-1.0/sasl.h
libmemcached-1.0/server_list.h
libmemcached-1.0/string.h
libmemcached/allocators.hpp [new file with mode: 0644]
libmemcached/behavior.hpp [new file with mode: 0644]
libmemcached/common.h
libmemcached/hash.hpp [new file with mode: 0644]
libmemcached/include.am
libmemcached/quit.hpp [new file with mode: 0644]
libmemcached/sasl.hpp [new file with mode: 0644]
libmemcached/server_list.hpp [new file with mode: 0644]
libmemcached/string.hpp
tests/string.cc

index 6e4455f0667464bad548564d5b07f3c249043fac..9df6e87efd692f768fa9f058c10205a4e48a5078 100644 (file)
@@ -67,21 +67,6 @@ void memcached_get_memory_allocators(const memcached_st *ptr,
 LIBMEMCACHED_API
 void *memcached_get_memory_allocators_context(const memcached_st *ptr);
 
-LIBMEMCACHED_LOCAL
-void _libmemcached_free(const memcached_st *ptr, void *mem, void *context);
-
-LIBMEMCACHED_LOCAL
-void *_libmemcached_malloc(const memcached_st *ptr, const size_t size, void *context);
-
-LIBMEMCACHED_LOCAL
-void *_libmemcached_realloc(const memcached_st *ptr, void *mem, const size_t size, void *context);
-
-LIBMEMCACHED_LOCAL
-void *_libmemcached_calloc(const memcached_st *ptr, size_t nelem, size_t size, void *context);
-
-LIBMEMCACHED_LOCAL
-struct memcached_allocator_t memcached_allocators_return_default(void);
-
 #ifdef __cplusplus
 }
 #endif
index 426f9889a75a73c6808334ca99b8c4c3abf6fc00..c663353254907b4f28ec3803427e684cb0f7addf 100644 (file)
@@ -65,9 +65,6 @@ memcached_return_t memcached_behavior_set_distribution_hash(memcached_st *ptr, m
 LIBMEMCACHED_API
 memcached_hash_t memcached_behavior_get_distribution_hash(memcached_st *ptr);
 
-LIBMEMCACHED_LOCAL
-bool _is_auto_eject_host(const memcached_st *ptr);
-
 LIBMEMCACHED_API
   const char *libmemcached_string_behavior(const memcached_behavior_t flag);
 
index 6002a80eb96a43b54761709a5d0e19c864025ced..9fdb7d6fbcaa617bdf6fc76b2b4c776771a9d380 100644 (file)
@@ -54,9 +54,6 @@ memcached_return_t memcached_set_hashkit(memcached_st *ptr, hashkit_st *hashk);
 LIBMEMCACHED_API
 uint32_t memcached_generate_hash(const memcached_st *ptr, const char *key, size_t key_length);
 
-LIBMEMCACHED_LOCAL
-uint32_t memcached_generate_hash_with_redistribution(memcached_st *ptr, const char *key, size_t key_length);
-
 LIBMEMCACHED_API
 void memcached_autoeject(memcached_st *ptr);
 
index 0338eaf03a200d610b9a59340fe6b1a9ff3e73f7..90ff3ff015e3410713cf92dd0d076462d8eee96b 100644 (file)
@@ -44,12 +44,6 @@ extern "C" {
 LIBMEMCACHED_API
 void memcached_quit(memcached_st *ptr);
 
-LIBMEMCACHED_LOCAL
-void memcached_quit_server(memcached_server_st *ptr, bool io_death);
-
-LIBMEMCACHED_LOCAL
-void send_quit(memcached_st *ptr);
-
 #ifdef __cplusplus
 }
 #endif
index 8602246d9523cb8f71bc70af6219abf33b105543..7749f98ebd2d50415aaaa843923c128d2a4e391e 100644 (file)
@@ -63,12 +63,6 @@ memcached_return_t memcached_destroy_sasl_auth_data(memcached_st *ptr);
 LIBMEMCACHED_API
 sasl_callback_t *memcached_get_sasl_callbacks(memcached_st *ptr);
 
-LIBMEMCACHED_LOCAL
-memcached_return_t memcached_clone_sasl(memcached_st *clone, const  memcached_st *source);
-
-LIBMEMCACHED_LOCAL
-memcached_return_t memcached_sasl_authenticate_connection(memcached_server_st *server);
-
 #ifdef __cplusplus
 }
 #endif
index 8fe6dc7dc2ffb8d99822c5a8baf3acee65204cd6..04bebab43276a6737d53e54dc7b8b4810fb52efe 100644 (file)
@@ -63,15 +63,6 @@ LIBMEMCACHED_API
 LIBMEMCACHED_API
   uint32_t memcached_server_list_count(const memcached_server_list_st ptr);
 
-LIBMEMCACHED_LOCAL
-  uint32_t memcached_servers_set_count(memcached_server_list_st servers, uint32_t count);
-
-LIBMEMCACHED_LOCAL
-  memcached_server_st *memcached_server_list(const memcached_st *);
-
-LIBMEMCACHED_LOCAL
-  void memcached_server_list_set(memcached_st *self, memcached_server_list_st list);
-
 #ifdef __cplusplus
 } // extern "C"
 #endif
index 42d0e40a742f487edc51bc567e091b12fa9ea8ab..88a09f6a833906d0f7f776025bcb87cf351b103f 100644 (file)
@@ -57,51 +57,3 @@ struct memcached_string_st {
     bool is_initialized:1;
   } options;
 };
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-LIBMEMCACHED_LOCAL
-memcached_string_st *memcached_string_create(memcached_st *ptr,
-                                             memcached_string_st *string,
-                                             size_t initial_size);
-LIBMEMCACHED_LOCAL
-memcached_return_t memcached_string_check(memcached_string_st *string, size_t need);
-
-LIBMEMCACHED_LOCAL
-char *memcached_string_c_copy(memcached_string_st *string);
-
-LIBMEMCACHED_LOCAL
-memcached_return_t memcached_string_append_character(memcached_string_st *string,
-                                                     char character);
-LIBMEMCACHED_LOCAL
-memcached_return_t memcached_string_append(memcached_string_st *string,
-                                           const char *value, size_t length);
-LIBMEMCACHED_LOCAL
-memcached_return_t memcached_string_reset(memcached_string_st *string);
-
-LIBMEMCACHED_LOCAL
-void memcached_string_free(memcached_string_st *string);
-
-LIBMEMCACHED_LOCAL
-size_t memcached_string_length(const memcached_string_st *self);
-
-LIBMEMCACHED_LOCAL
-size_t memcached_string_size(const memcached_string_st *self);
-
-LIBMEMCACHED_LOCAL
-const char *memcached_string_value(const memcached_string_st *self);
-
-LIBMEMCACHED_LOCAL
-char *memcached_string_take_value(memcached_string_st *self);
-
-LIBMEMCACHED_LOCAL
-char *memcached_string_value_mutable(const memcached_string_st *self);
-
-LIBMEMCACHED_LOCAL
-void memcached_string_set_length(memcached_string_st *self, size_t length);
-
-#ifdef __cplusplus
-}
-#endif
diff --git a/libmemcached/allocators.hpp b/libmemcached/allocators.hpp
new file mode 100644 (file)
index 0000000..8f19624
--- /dev/null
@@ -0,0 +1,47 @@
+/*  vim:expandtab:shiftwidth=2:tabstop=2:smarttab:
+ * 
+ *  Libmemcached library
+ *
+ *  Copyright (C) 2011 Data Differential, http://datadifferential.com/
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are
+ *  met:
+ *
+ *      * Redistributions of source code must retain the above copyright
+ *  notice, this list of conditions and the following disclaimer.
+ *
+ *      * Redistributions in binary form must reproduce the above
+ *  copyright notice, this list of conditions and the following disclaimer
+ *  in the documentation and/or other materials provided with the
+ *  distribution.
+ *
+ *      * The names of its contributors may not be used to endorse or
+ *  promote products derived from this software without specific prior
+ *  written permission.
+ *
+ *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ *  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ *  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ *  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ *  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ *  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#pragma once
+
+void _libmemcached_free(const memcached_st *ptr, void *mem, void *context);
+
+void *_libmemcached_malloc(const memcached_st *ptr, const size_t size, void *context);
+
+void *_libmemcached_realloc(const memcached_st *ptr, void *mem, const size_t size, void *context);
+
+void *_libmemcached_calloc(const memcached_st *ptr, size_t nelem, size_t size, void *context);
+
+struct memcached_allocator_t memcached_allocators_return_default(void);
diff --git a/libmemcached/behavior.hpp b/libmemcached/behavior.hpp
new file mode 100644 (file)
index 0000000..ee38f97
--- /dev/null
@@ -0,0 +1,39 @@
+/*  vim:expandtab:shiftwidth=2:tabstop=2:smarttab:
+ * 
+ *  Libmemcached library
+ *
+ *  Copyright (C) 2011 Data Differential, http://datadifferential.com/
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are
+ *  met:
+ *
+ *      * Redistributions of source code must retain the above copyright
+ *  notice, this list of conditions and the following disclaimer.
+ *
+ *      * Redistributions in binary form must reproduce the above
+ *  copyright notice, this list of conditions and the following disclaimer
+ *  in the documentation and/or other materials provided with the
+ *  distribution.
+ *
+ *      * The names of its contributors may not be used to endorse or
+ *  promote products derived from this software without specific prior
+ *  written permission.
+ *
+ *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ *  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ *  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ *  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ *  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ *  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#pragma once
+
+bool _is_auto_eject_host(const memcached_st *ptr);
index 7239ca6076e8e5f044d10cf829876788d23b089e..5aaf797b795a9c916e106a54f42749fba7602c38 100644 (file)
@@ -108,6 +108,13 @@ memcached_return_t memcached_server_execute(memcached_st *ptr,
 #include <libmemcached/do.hpp>
 #include <libmemcached/close_socket.hpp>
 #include <libmemcached/connect.hpp>
+#include <libmemcached/allocators.hpp>
+#include <libmemcached/hash.hpp>
+#include <libmemcached/quit.hpp>
+#include <libmemcached/server.hpp>
+#include <libmemcached/behavior.hpp>
+#include <libmemcached/sasl.hpp>
+#include <libmemcached/server_list.hpp>
 #endif
 #include <libmemcached/internal.h>
 #include <libmemcached/array.h>
diff --git a/libmemcached/hash.hpp b/libmemcached/hash.hpp
new file mode 100644 (file)
index 0000000..bf450ee
--- /dev/null
@@ -0,0 +1,40 @@
+/*  vim:expandtab:shiftwidth=2:tabstop=2:smarttab:
+ * 
+ *  Libmemcached library
+ *
+ *  Copyright (C) 2011 Data Differential, http://datadifferential.com/
+ *  Copyright (C) 2006-2009 Brian Aker All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are
+ *  met:
+ *
+ *      * Redistributions of source code must retain the above copyright
+ *  notice, this list of conditions and the following disclaimer.
+ *
+ *      * Redistributions in binary form must reproduce the above
+ *  copyright notice, this list of conditions and the following disclaimer
+ *  in the documentation and/or other materials provided with the
+ *  distribution.
+ *
+ *      * The names of its contributors may not be used to endorse or
+ *  promote products derived from this software without specific prior
+ *  written permission.
+ *
+ *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ *  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ *  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ *  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ *  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ *  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#pragma once
+
+uint32_t memcached_generate_hash_with_redistribution(memcached_st *ptr, const char *key, size_t key_length);
index 69385463598c36e7ff988a7b06c23f6ba2712f14..af49d2d54c1481b2f4898312cd21ba50427cca4c 100644 (file)
@@ -53,11 +53,13 @@ libmemcached_libmemcached_la_CXXFLAGS= -DBUILDING_LIBMEMCACHED
 libmemcached_libmemcached_la_SOURCES+= \
                                       ${libhashkit_libhashkit_la_SOURCES} \
                                       libmemcached/allocators.cc \
+                                      libmemcached/allocators.hpp \
                                       libmemcached/analyze.cc \
                                       libmemcached/array.c \
                                       libmemcached/auto.cc \
                                       libmemcached/backtrace.cc \
                                       libmemcached/behavior.cc \
+                                      libmemcached/behavior.hpp \
                                       libmemcached/byteorder.cc \
                                       libmemcached/callback.cc \
                                       libmemcached/connect.cc \
@@ -70,26 +72,30 @@ libmemcached_libmemcached_la_SOURCES+= \
                                       libmemcached/flush.cc \
                                       libmemcached/flush_buffers.cc \
                                       libmemcached/get.cc \
-                                      libmemcached/touch.cc \
                                       libmemcached/hash.cc \
+                                      libmemcached/hash.hpp \
                                       libmemcached/hosts.cc \
                                       libmemcached/initialize_query.cc \
                                       libmemcached/io.cc \
                                       libmemcached/key.cc \
                                       libmemcached/memcached.cc \
+                                      libmemcached/namespace.cc \
                                       libmemcached/options.cc \
                                       libmemcached/parse.cc \
-                                      libmemcached/namespace.cc \
                                       libmemcached/purge.cc \
                                       libmemcached/quit.cc \
+                                      libmemcached/quit.hpp \
                                       libmemcached/response.cc \
                                       libmemcached/result.cc \
+                                      libmemcached/sasl.hpp \
                                       libmemcached/server.cc \
                                       libmemcached/server_list.cc \
+                                      libmemcached/server_list.hpp \
                                       libmemcached/stats.cc \
                                       libmemcached/storage.cc \
                                       libmemcached/strerror.cc \
                                       libmemcached/string.cc \
+                                      libmemcached/touch.cc \
                                       libmemcached/verbosity.cc \
                                       libmemcached/version.cc \
                                       libmemcached/virtual_bucket.c
diff --git a/libmemcached/quit.hpp b/libmemcached/quit.hpp
new file mode 100644 (file)
index 0000000..171bb65
--- /dev/null
@@ -0,0 +1,41 @@
+/*  vim:expandtab:shiftwidth=2:tabstop=2:smarttab:
+ * 
+ *  Libmemcached library
+ *
+ *  Copyright (C) 2011 Data Differential, http://datadifferential.com/
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are
+ *  met:
+ *
+ *      * Redistributions of source code must retain the above copyright
+ *  notice, this list of conditions and the following disclaimer.
+ *
+ *      * Redistributions in binary form must reproduce the above
+ *  copyright notice, this list of conditions and the following disclaimer
+ *  in the documentation and/or other materials provided with the
+ *  distribution.
+ *
+ *      * The names of its contributors may not be used to endorse or
+ *  promote products derived from this software without specific prior
+ *  written permission.
+ *
+ *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ *  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ *  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ *  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ *  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ *  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#pragma once
+
+void memcached_quit_server(memcached_server_st *ptr, bool io_death);
+
+void send_quit(memcached_st *ptr);
diff --git a/libmemcached/sasl.hpp b/libmemcached/sasl.hpp
new file mode 100644 (file)
index 0000000..2682268
--- /dev/null
@@ -0,0 +1,42 @@
+/*  vim:expandtab:shiftwidth=2:tabstop=2:smarttab:
+ * 
+ *  Libmemcached library
+ *
+ *  Copyright (C) 2011 Data Differential, http://datadifferential.com/
+ *  Copyright (C) 2006-2009 Brian Aker All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are
+ *  met:
+ *
+ *      * Redistributions of source code must retain the above copyright
+ *  notice, this list of conditions and the following disclaimer.
+ *
+ *      * Redistributions in binary form must reproduce the above
+ *  copyright notice, this list of conditions and the following disclaimer
+ *  in the documentation and/or other materials provided with the
+ *  distribution.
+ *
+ *      * The names of its contributors may not be used to endorse or
+ *  promote products derived from this software without specific prior
+ *  written permission.
+ *
+ *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ *  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ *  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ *  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ *  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ *  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#pragma once
+
+memcached_return_t memcached_clone_sasl(memcached_st *clone, const  memcached_st *source);
+
+memcached_return_t memcached_sasl_authenticate_connection(memcached_server_st *server);
diff --git a/libmemcached/server_list.hpp b/libmemcached/server_list.hpp
new file mode 100644 (file)
index 0000000..db56721
--- /dev/null
@@ -0,0 +1,44 @@
+/*  vim:expandtab:shiftwidth=2:tabstop=2:smarttab:
+ * 
+ *  Libmemcached library
+ *
+ *  Copyright (C) 2011 Data Differential, http://datadifferential.com/
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are
+ *  met:
+ *
+ *      * Redistributions of source code must retain the above copyright
+ *  notice, this list of conditions and the following disclaimer.
+ *
+ *      * Redistributions in binary form must reproduce the above
+ *  copyright notice, this list of conditions and the following disclaimer
+ *  in the documentation and/or other materials provided with the
+ *  distribution.
+ *
+ *      * The names of its contributors may not be used to endorse or
+ *  promote products derived from this software without specific prior
+ *  written permission.
+ *
+ *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ *  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ *  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ *  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ *  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ *  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#pragma once
+
+
+uint32_t memcached_servers_set_count(memcached_server_list_st servers, uint32_t count);
+
+memcached_server_st *memcached_server_list(const memcached_st *);
+
+void memcached_server_list_set(memcached_st *self, memcached_server_list_st list);
index 5703bb40e2060d8b7579103d14f124c254508cd5..cb1b2edf62fe91fdd2516b4a929b00e2f95e6903 100644 (file)
 #define memcached_string_make_from_cstr util_string_make_from_cstr
 #define memcached_array_length util_array_length
 
+/**
+  Strings are always under our control so we make some assumptions
+  about them.
 
+  1) is_initialized is always valid.
+  2) A string once intialized will always be, until free where we
+     unset this flag.
+  3) A string always has a root.
+*/
+
+memcached_string_st *memcached_string_create(memcached_st *ptr,
+                                             memcached_string_st *string,
+                                             size_t initial_size);
+
+memcached_return_t memcached_string_check(memcached_string_st *string, size_t need);
+
+char *memcached_string_c_copy(memcached_string_st *string);
+
+memcached_return_t memcached_string_append_character(memcached_string_st *string,
+                                                     char character);
+
+memcached_return_t memcached_string_append(memcached_string_st *string,
+                                           const char *value, size_t length);
+
+memcached_return_t memcached_string_reset(memcached_string_st *string);
+
+void memcached_string_free(memcached_string_st *string);
+
+size_t memcached_string_length(const memcached_string_st *self);
+
+size_t memcached_string_size(const memcached_string_st *self);
+
+const char *memcached_string_value(const memcached_string_st *self);
+
+char *memcached_string_take_value(memcached_string_st *self);
+
+char *memcached_string_value_mutable(const memcached_string_st *self);
+
+void memcached_string_set_length(memcached_string_st *self, size_t length);
index 041390ee31fb2e6b8c181cdf20eb0f3b367a1979..bb90e94b974adce3feacdb45ec7f6d295291c396 100644 (file)
@@ -41,6 +41,7 @@
 #include <config.h>
 
 #include <libmemcached/memcached.h>
+#include <libmemcached/string.hpp>
 #include <libmemcached/is.h>
 
 #include <libtest/test.hpp>