Merge up for version.
[awesomized/libmemcached] / libmemcached / constants.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
39 #pragma once
40
41 /* Public defines */
42 #define MEMCACHED_DEFAULT_PORT 11211
43 #define MEMCACHED_MAX_KEY 251 /* We add one to have it null terminated */
44 #define MEMCACHED_MAX_BUFFER 8196
45 #define MEMCACHED_MAX_HOST_SORT_LENGTH 86 /* Used for Ketama */
46 #define MEMCACHED_POINTS_PER_SERVER 100
47 #define MEMCACHED_POINTS_PER_SERVER_KETAMA 160
48 #define MEMCACHED_CONTINUUM_SIZE MEMCACHED_POINTS_PER_SERVER*100 /* This would then set max hosts to 100 */
49 #define MEMCACHED_STRIDE 4
50 #define MEMCACHED_DEFAULT_TIMEOUT 5000
51 #define MEMCACHED_DEFAULT_CONNECT_TIMEOUT 4000
52 #define MEMCACHED_CONTINUUM_ADDITION 10 /* How many extra slots we should build for in the continuum */
53 #define MEMCACHED_PREFIX_KEY_MAX_SIZE 128
54 #define MEMCACHED_EXPIRATION_NOT_ADD 0xffffffffU
55 #define MEMCACHED_VERSION_STRING_LENGTH 24
56 #define MEMCACHED_MAXIMUM_INTEGER_DISPLAY_LENGTH 20
57
58
59 enum memcached_server_distribution_t {
60 MEMCACHED_DISTRIBUTION_MODULA,
61 MEMCACHED_DISTRIBUTION_CONSISTENT,
62 MEMCACHED_DISTRIBUTION_CONSISTENT_KETAMA,
63 MEMCACHED_DISTRIBUTION_RANDOM,
64 MEMCACHED_DISTRIBUTION_CONSISTENT_KETAMA_SPY,
65 MEMCACHED_DISTRIBUTION_CONSISTENT_WEIGHTED,
66 MEMCACHED_DISTRIBUTION_VIRTUAL_BUCKET,
67 MEMCACHED_DISTRIBUTION_CONSISTENT_MAX
68 };
69
70 #ifndef __cplusplus
71 typedef enum memcached_server_distribution_t memcached_server_distribution_t;
72 #endif
73
74 enum memcached_behavior_t {
75 MEMCACHED_BEHAVIOR_NO_BLOCK,
76 MEMCACHED_BEHAVIOR_TCP_NODELAY,
77 MEMCACHED_BEHAVIOR_HASH,
78 MEMCACHED_BEHAVIOR_KETAMA,
79 MEMCACHED_BEHAVIOR_SOCKET_SEND_SIZE,
80 MEMCACHED_BEHAVIOR_SOCKET_RECV_SIZE,
81 MEMCACHED_BEHAVIOR_CACHE_LOOKUPS,
82 MEMCACHED_BEHAVIOR_SUPPORT_CAS,
83 MEMCACHED_BEHAVIOR_POLL_TIMEOUT,
84 MEMCACHED_BEHAVIOR_DISTRIBUTION,
85 MEMCACHED_BEHAVIOR_BUFFER_REQUESTS,
86 MEMCACHED_BEHAVIOR_USER_DATA,
87 MEMCACHED_BEHAVIOR_SORT_HOSTS,
88 MEMCACHED_BEHAVIOR_VERIFY_KEY,
89 MEMCACHED_BEHAVIOR_CONNECT_TIMEOUT,
90 MEMCACHED_BEHAVIOR_RETRY_TIMEOUT,
91 MEMCACHED_BEHAVIOR_KETAMA_WEIGHTED,
92 MEMCACHED_BEHAVIOR_KETAMA_HASH,
93 MEMCACHED_BEHAVIOR_BINARY_PROTOCOL,
94 MEMCACHED_BEHAVIOR_SND_TIMEOUT,
95 MEMCACHED_BEHAVIOR_RCV_TIMEOUT,
96 MEMCACHED_BEHAVIOR_SERVER_FAILURE_LIMIT,
97 MEMCACHED_BEHAVIOR_IO_MSG_WATERMARK,
98 MEMCACHED_BEHAVIOR_IO_BYTES_WATERMARK,
99 MEMCACHED_BEHAVIOR_IO_KEY_PREFETCH,
100 MEMCACHED_BEHAVIOR_HASH_WITH_PREFIX_KEY,
101 MEMCACHED_BEHAVIOR_NOREPLY,
102 MEMCACHED_BEHAVIOR_USE_UDP,
103 MEMCACHED_BEHAVIOR_AUTO_EJECT_HOSTS,
104 MEMCACHED_BEHAVIOR_NUMBER_OF_REPLICAS,
105 MEMCACHED_BEHAVIOR_RANDOMIZE_REPLICA_READ,
106 MEMCACHED_BEHAVIOR_CORK,
107 MEMCACHED_BEHAVIOR_TCP_KEEPALIVE,
108 MEMCACHED_BEHAVIOR_TCP_KEEPIDLE,
109 MEMCACHED_BEHAVIOR_LOAD_FROM_FILE,
110 MEMCACHED_BEHAVIOR_REMOVE_FAILED_SERVERS,
111 MEMCACHED_BEHAVIOR_MAX
112 };
113
114 #ifndef __cplusplus
115 typedef enum memcached_behavior_t memcached_behavior_t;
116 #endif
117
118 enum memcached_callback_t {
119 MEMCACHED_CALLBACK_PREFIX_KEY = 0,
120 MEMCACHED_CALLBACK_USER_DATA = 1,
121 MEMCACHED_CALLBACK_CLEANUP_FUNCTION = 2,
122 MEMCACHED_CALLBACK_CLONE_FUNCTION = 3,
123 #ifdef MEMCACHED_ENABLE_DEPRECATED
124 MEMCACHED_CALLBACK_MALLOC_FUNCTION = 4,
125 MEMCACHED_CALLBACK_REALLOC_FUNCTION = 5,
126 MEMCACHED_CALLBACK_FREE_FUNCTION = 6,
127 #endif
128 MEMCACHED_CALLBACK_GET_FAILURE = 7,
129 MEMCACHED_CALLBACK_DELETE_TRIGGER = 8,
130 MEMCACHED_CALLBACK_MAX,
131 MEMCACHED_CALLBACK_NAMESPACE= MEMCACHED_CALLBACK_PREFIX_KEY
132 };
133
134 #ifndef __cplusplus
135 typedef enum memcached_callback_t memcached_callback_t;
136 #endif
137
138 enum memcached_hash_t {
139 MEMCACHED_HASH_DEFAULT= 0,
140 MEMCACHED_HASH_MD5,
141 MEMCACHED_HASH_CRC,
142 MEMCACHED_HASH_FNV1_64,
143 MEMCACHED_HASH_FNV1A_64,
144 MEMCACHED_HASH_FNV1_32,
145 MEMCACHED_HASH_FNV1A_32,
146 MEMCACHED_HASH_HSIEH,
147 MEMCACHED_HASH_MURMUR,
148 MEMCACHED_HASH_JENKINS,
149 MEMCACHED_HASH_CUSTOM,
150 MEMCACHED_HASH_MAX
151 };
152
153 #ifndef __cplusplus
154 typedef enum memcached_hash_t memcached_hash_t;
155 #endif
156
157 enum memcached_connection_t {
158 MEMCACHED_CONNECTION_UNKNOWN,
159 MEMCACHED_CONNECTION_TCP,
160 MEMCACHED_CONNECTION_UDP,
161 MEMCACHED_CONNECTION_UNIX_SOCKET,
162 MEMCACHED_CONNECTION_MAX
163 };
164
165 #ifndef __cplusplus
166 typedef enum memcached_connection_t memcached_connection_t;
167 #endif