Merge lp:~brianaker/libmemcached/exception-cleanup/ Build: jenkins-Libmemcached-272
[m6w6/libmemcached] / libmemcached-1.0 / memcached.h
1 /* vim:expandtab:shiftwidth=2:tabstop=2:smarttab:
2 *
3 * Libmemcached library
4 *
5 * Copyright (C) 2011 Data Differential, http://datadifferential.com/
6 * Copyright (C) 2006-2009 Brian Aker All rights reserved.
7 *
8 * Redistribution and use in source and binary forms, with or without
9 * modification, are permitted provided that the following conditions are
10 * met:
11 *
12 * * Redistributions of source code must retain the above copyright
13 * notice, this list of conditions and the following disclaimer.
14 *
15 * * Redistributions in binary form must reproduce the above
16 * copyright notice, this list of conditions and the following disclaimer
17 * in the documentation and/or other materials provided with the
18 * distribution.
19 *
20 * * The names of its contributors may not be used to endorse or
21 * promote products derived from this software without specific prior
22 * written permission.
23 *
24 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
25 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
26 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
27 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
28 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
29 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
30 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
31 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
32 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
33 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
34 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
35 *
36 */
37
38 #pragma once
39
40 /* This seems to be required for older compilers @note http://stackoverflow.com/questions/8132399/how-to-printf-uint64-t */
41 #ifndef __STDC_FORMAT_MACROS
42 # define __STDC_FORMAT_MACROS
43 #endif
44
45 #ifdef __cplusplus
46 # include <tr1/cinttypes>
47 # include <cstddef>
48 # include <cstdlib>
49 #else
50 # include <inttypes.h>
51 # include <stddef.h>
52 # include <stdlib.h>
53 # include <stdbool.h>
54 #endif
55
56 #include <sys/types.h>
57
58 #include <libmemcached-1.0/visibility.h>
59 #include <libmemcached-1.0/configure.h>
60 #include <libmemcached-1.0/platform.h>
61
62 #include <libmemcached-1.0/limits.h>
63 #include <libmemcached-1.0/defaults.h>
64
65 #include <libmemcached-1.0/types/behavior.h>
66 #include <libmemcached-1.0/types/callback.h>
67 #include <libmemcached-1.0/types/connection.h>
68 #include <libmemcached-1.0/types/hash.h>
69 #include <libmemcached-1.0/types/return.h>
70 #include <libmemcached-1.0/types/server_distribution.h>
71
72 #include <libmemcached-1.0/return.h>
73
74 #include <libmemcached-1.0/types.h>
75 #include <libmemcached-1.0/callbacks.h>
76 #include <libmemcached-1.0/alloc.h>
77 #include <libmemcached-1.0/triggers.h>
78
79 #include <libhashkit-1.0/hashkit.h>
80
81 #include <libmemcached-1.0/struct/callback.h>
82 #include <libmemcached-1.0/struct/string.h>
83 #include <libmemcached-1.0/struct/result.h>
84 #include <libmemcached-1.0/struct/allocator.h>
85 #include <libmemcached-1.0/struct/sasl.h>
86 #include <libmemcached-1.0/struct/memcached.h>
87 #include <libmemcached-1.0/struct/server.h>
88 #include <libmemcached-1.0/struct/stat.h>
89
90 #include <libmemcached-1.0/basic_string.h>
91 #include <libmemcached-1.0/error.h>
92 #include <libmemcached-1.0/stats.h>
93
94 // Everything above this line must be in the order specified.
95 #include <libmemcached-1.0/allocators.h>
96 #include <libmemcached-1.0/analyze.h>
97 #include <libmemcached-1.0/auto.h>
98 #include <libmemcached-1.0/behavior.h>
99 #include <libmemcached-1.0/callback.h>
100 #include <libmemcached-1.0/delete.h>
101 #include <libmemcached-1.0/dump.h>
102 #include <libmemcached-1.0/encoding_key.h>
103 #include <libmemcached-1.0/exist.h>
104 #include <libmemcached-1.0/fetch.h>
105 #include <libmemcached-1.0/flush.h>
106 #include <libmemcached-1.0/flush_buffers.h>
107 #include <libmemcached-1.0/get.h>
108 #include <libmemcached-1.0/hash.h>
109 #include <libmemcached-1.0/options.h>
110 #include <libmemcached-1.0/parse.h>
111 #include <libmemcached-1.0/quit.h>
112 #include <libmemcached-1.0/result.h>
113 #include <libmemcached-1.0/server.h>
114 #include <libmemcached-1.0/server_list.h>
115 #include <libmemcached-1.0/storage.h>
116 #include <libmemcached-1.0/strerror.h>
117 #include <libmemcached-1.0/touch.h>
118 #include <libmemcached-1.0/verbosity.h>
119 #include <libmemcached-1.0/version.h>
120 #include <libmemcached-1.0/sasl.h>
121
122 #include <libmemcached-1.0/deprecated_types.h>
123
124 #ifdef __cplusplus
125 extern "C" {
126 #endif
127
128 LIBMEMCACHED_API
129 void memcached_servers_reset(memcached_st *ptr);
130
131 LIBMEMCACHED_API
132 memcached_st *memcached_create(memcached_st *ptr);
133
134 LIBMEMCACHED_API
135 memcached_st *memcached(const char *string, size_t string_length);
136
137 LIBMEMCACHED_API
138 void memcached_free(memcached_st *ptr);
139
140 LIBMEMCACHED_API
141 memcached_return_t memcached_reset(memcached_st *ptr);
142
143 LIBMEMCACHED_API
144 void memcached_reset_last_disconnected_server(memcached_st *ptr);
145
146 LIBMEMCACHED_API
147 memcached_st *memcached_clone(memcached_st *clone, const memcached_st *ptr);
148
149 LIBMEMCACHED_API
150 void *memcached_get_user_data(const memcached_st *ptr);
151
152 LIBMEMCACHED_API
153 void *memcached_set_user_data(memcached_st *ptr, void *data);
154
155 LIBMEMCACHED_API
156 memcached_return_t memcached_push(memcached_st *destination, const memcached_st *source);
157
158 LIBMEMCACHED_API
159 const memcached_instance_st * memcached_server_instance_by_position(const memcached_st *ptr, uint32_t server_key);
160
161 LIBMEMCACHED_API
162 uint32_t memcached_server_count(const memcached_st *);
163
164 LIBMEMCACHED_API
165 uint64_t memcached_query_id(const memcached_st *);
166
167 #ifdef __cplusplus
168 } // extern "C"
169 #endif