X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=libmemcached%2Fstring.h;h=3a3fdf530fd1add85d247bda40f8c86d46de0334;hb=e347c3ba4e8368833dfb4a6a4515c750adf1e38b;hp=8c57c8b0d2c9c7399862ed7acced698b41d1bf30;hpb=67456d74f5bd4f354a360d70da503dc58cbe5971;p=awesomized%2Flibmemcached diff --git a/libmemcached/string.h b/libmemcached/string.h index 8c57c8b0..3a3fdf53 100644 --- a/libmemcached/string.h +++ b/libmemcached/string.h @@ -37,6 +37,8 @@ #pragma once +#include + /** Strings are always under our control so we make some assumptions about them. @@ -58,17 +60,14 @@ struct memcached_string_st { } options; }; -struct memcached_string_t { - size_t size; - const char *c_str; -}; +#ifdef BUILDING_LIBMEMCACHED #ifdef __cplusplus extern "C" { #endif LIBMEMCACHED_LOCAL -memcached_string_st *memcached_string_create(const memcached_st *ptr, +memcached_string_st *memcached_string_create(memcached_st *ptr, memcached_string_st *string, size_t initial_size); LIBMEMCACHED_LOCAL @@ -98,6 +97,9 @@ 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); @@ -108,14 +110,10 @@ void memcached_string_set_length(memcached_string_st *self, size_t length); } #endif -#ifdef BUILDING_LIBMEMCACHED - #ifdef __cplusplus -#define memcached_string_with_size(X) (X), (static_cast((sizeof(X) - 1))) -#define memcached_string_make(X) (static_cast((sizeof(X) - 1))), (X) +#define memcached_literal_param(X) (X), (static_cast((sizeof(X) - 1))) #else -#define memcached_string_with_size(X) (X), ((size_t)((sizeof(X) - 1))) -#define memcached_string_make(X) (((size_t)((sizeof(X) - 1))), (X) +#define memcached_literal_param(X) (X), ((size_t)((sizeof(X) - 1))) #endif #define memcached_string_make_from_cstr(X) (X), ((X) ? strlen(X) : 0)