more cleanup
[m6w6/libmemcached] / src / libmemcached / string.hpp
1 /*
2 +--------------------------------------------------------------------+
3 | libmemcached - C/C++ Client Library for memcached |
4 +--------------------------------------------------------------------+
5 | Redistribution and use in source and binary forms, with or without |
6 | modification, are permitted under the terms of the BSD license. |
7 | You should have received a copy of the license in a bundled file |
8 | named LICENSE; in case you did not receive a copy you can review |
9 | the terms online at: https://opensource.org/licenses/BSD-3-Clause |
10 +--------------------------------------------------------------------+
11 | Copyright (c) 2006-2014 Brian Aker https://datadifferential.com/ |
12 | Copyright (c) 2020 Michael Wallner <mike@php.net> |
13 +--------------------------------------------------------------------+
14 */
15
16 #pragma once
17
18 #define memcached_literal_param(str) (str),strlen(str)
19 #define memcached_literal_param_size(str) strlen(str)
20 #define memcached_string_make_from_cstr(str) (str),((str)?strlen(str):0)
21
22 /**
23 Strings are always under our control so we make some assumptions
24 about them.
25
26 1) is_initialized is always valid.
27 2) A string once intialized will always be, until free where we
28 unset this flag.
29 3) A string always has a root.
30 */
31
32 memcached_string_st *memcached_string_create(memcached_st *ptr, memcached_string_st *string,
33 size_t initial_size);
34
35 memcached_return_t memcached_string_check(memcached_string_st *string, size_t need);
36
37 char *memcached_string_c_copy(memcached_string_st *string);
38
39 memcached_return_t memcached_string_append_character(memcached_string_st *string, char character);
40
41 memcached_return_t memcached_string_append(memcached_string_st *string, const char *value,
42 size_t length);
43
44 void memcached_string_reset(memcached_string_st *string);
45
46 void memcached_string_free(memcached_string_st *string);
47 void memcached_string_free(memcached_string_st &);
48
49 size_t memcached_string_length(const memcached_string_st *self);
50 size_t memcached_string_length(const memcached_string_st &);
51
52 size_t memcached_string_size(const memcached_string_st *self);
53
54 const char *memcached_string_value(const memcached_string_st *self);
55 const char *memcached_string_value(const memcached_string_st &);
56
57 char *memcached_string_take_value(memcached_string_st *self);
58
59 char *memcached_string_value_mutable(const memcached_string_st *self);
60
61 bool memcached_string_set(memcached_string_st &, const char *, size_t);
62
63 void memcached_string_set_length(memcached_string_st *self, size_t length);
64 void memcached_string_set_length(memcached_string_st &, const size_t length);
65
66 bool memcached_string_resize(memcached_string_st &, const size_t);
67 char *memcached_string_c_str(memcached_string_st &);