X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=libmemcached%2Fstring.h;h=3a3fdf530fd1add85d247bda40f8c86d46de0334;hb=e347c3ba4e8368833dfb4a6a4515c750adf1e38b;hp=50ad98bbe3baf2ded7de6973bec153ca1051cc4b;hpb=9cde1fdc1bbd49775c75a83e44c942354129f1d5;p=awesomized%2Flibmemcached diff --git a/libmemcached/string.h b/libmemcached/string.h index 50ad98bb..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,15 +60,6 @@ struct memcached_string_st { } options; }; -struct memcached_string_t { - size_t size; - const char *c_str; -}; - -#define memcached_size(X) (X).size; -#define memcached_c_str(X) (X).c_str; -#define memcached_string_param(X) (X).c_str, (X).size - #ifdef BUILDING_LIBMEMCACHED #ifdef __cplusplus @@ -74,7 +67,7 @@ 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 @@ -104,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); @@ -115,11 +111,9 @@ void memcached_string_set_length(memcached_string_st *self, size_t length); #endif #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)