b643302da9c4f3d3372de7e14b2d42d2cc61a92d
[m6w6/libmemcached] / libmemcached / memcached_string.h
1 /*
2 * Summary: String structure used for libmemcached.
3 *
4 * Copy: See Copyright for the status of this software.
5 *
6 * Author: Brian Aker
7 */
8
9 #ifndef LIBMEMCACHED_MEMCACHED_STRING_H
10 #define LIBMEMCACHED_MEMCACHED_STRING_H
11
12 #ifndef LIBMEMCACHED_MEMCACHED_H
13 #error "Please include <libmemcached/memcached.h> instead"
14 #endif
15
16 #ifdef __cplusplus
17 extern "C" {
18 #endif
19
20 #define memcached_string_length(A) (size_t)((A)->end - (A)->string)
21 #define memcached_string_set_length(A, B) (A)->end= (A)->string + B
22 #define memcached_string_size(A) (A)->current_size
23 #define memcached_string_value(A) (A)->string
24
25 LIBMEMCACHED_API
26 memcached_string_st *memcached_string_create(memcached_st *ptr,
27 memcached_string_st *string,
28 size_t initial_size);
29 LIBMEMCACHED_API
30 memcached_return memcached_string_check(memcached_string_st *string, size_t need);
31 LIBMEMCACHED_API
32 char *memcached_string_c_copy(memcached_string_st *string);
33 LIBMEMCACHED_API
34 memcached_return memcached_string_append_character(memcached_string_st *string,
35 char character);
36 LIBMEMCACHED_API
37 memcached_return memcached_string_append(memcached_string_st *string,
38 const char *value, size_t length);
39 LIBMEMCACHED_API
40 memcached_return memcached_string_reset(memcached_string_st *string);
41 LIBMEMCACHED_API
42 void memcached_string_free(memcached_string_st *string);
43
44 #ifdef __cplusplus
45 }
46 #endif
47
48 #endif /* LIBMEMCACHED_MEMCACHED_STRING_H */