X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=libmemcached%2Fstring.h;h=f6a13bb000f7b695fad5ed3d9beda7585bb6712b;hb=f0d3a824ed9acb9f6e3080683abe2bcc8b0cd6bd;hp=168172ea70e5c489c8168d90abd2247ae2594c83;hpb=284978b1dc258cb8cd2a32d6a0f25f2f9b284149;p=awesomized%2Flibmemcached diff --git a/libmemcached/string.h b/libmemcached/string.h index 168172ea..f6a13bb0 100644 --- a/libmemcached/string.h +++ b/libmemcached/string.h @@ -9,6 +9,7 @@ * */ +#pragma once #ifndef __LIBMEMCACHED_STRING_H__ #define __LIBMEMCACHED_STRING_H__ @@ -17,7 +18,7 @@ about them. 1) is_initialized is always valid. - 2) A string once intialized will always be, until free where we + 2) A string once intialized will always be, until free where we unset this flag. 3) A string always has a root. */ @@ -33,6 +34,11 @@ struct memcached_string_st { } options; }; +struct memcached_string_t { + size_t size; + const char *c_str; +}; + #ifdef __cplusplus extern "C" { #endif @@ -59,31 +65,30 @@ memcached_return_t memcached_string_reset(memcached_string_st *string); LIBMEMCACHED_LOCAL void memcached_string_free(memcached_string_st *string); -static inline size_t memcached_string_length(const memcached_string_st *self) -{ - return (size_t)(self->end - self->string); -} +LIBMEMCACHED_LOCAL +size_t memcached_string_length(const memcached_string_st *self); -static inline size_t memcached_string_size(const memcached_string_st *self) -{ - return self->current_size; -} +LIBMEMCACHED_LOCAL +size_t memcached_string_size(const memcached_string_st *self); -static inline const char *memcached_string_value(const memcached_string_st *self) -{ - return self->string; -} +LIBMEMCACHED_LOCAL +const char *memcached_string_value(const memcached_string_st *self); -static inline char *memcached_string_value_mutable(const memcached_string_st *self) -{ - return self->string; -} +LIBMEMCACHED_LOCAL +char *memcached_string_value_mutable(const memcached_string_st *self); -#define memcached_string_set_length(A, B) (A)->end= (A)->string + B +LIBMEMCACHED_LOCAL +void memcached_string_set_length(memcached_string_st *self, size_t length); #ifdef __cplusplus } #endif +#ifdef __cplusplus +#define memcached_string_with_size(X) (X), (static_cast((sizeof(X) - 1))) +#else +#define memcached_string_with_size(X) (X), ((size_t)((sizeof(X) - 1))) +#endif + #endif /* __LIBMEMCACHED_STRING_H__ */