Updating for 1.0.2 release
[awesomized/libmemcached] / libmemcached-1.0 / 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 #define MEMCACHED_SERVER_FAILURE_LIMIT 5
58 #define MEMCACHED_SERVER_FAILURE_RETRY_TIMEOUT 2
59
60
61 enum memcached_server_distribution_t {
62 MEMCACHED_DISTRIBUTION_MODULA,
63 MEMCACHED_DISTRIBUTION_CONSISTENT,
64 MEMCACHED_DISTRIBUTION_CONSISTENT_KETAMA,
65 MEMCACHED_DISTRIBUTION_RANDOM,
66 MEMCACHED_DISTRIBUTION_CONSISTENT_KETAMA_SPY,
67 MEMCACHED_DISTRIBUTION_CONSISTENT_WEIGHTED,
68 MEMCACHED_DISTRIBUTION_VIRTUAL_BUCKET,
69 MEMCACHED_DISTRIBUTION_CONSISTENT_MAX
70 };
71
72 #ifndef __cplusplus
73 typedef enum memcached_server_distribution_t memcached_server_distribution_t;
74 #endif
75
76 enum memcached_behavior_t {
77 MEMCACHED_BEHAVIOR_NO_BLOCK,
78 MEMCACHED_BEHAVIOR_TCP_NODELAY,
79 MEMCACHED_BEHAVIOR_HASH,
80 MEMCACHED_BEHAVIOR_KETAMA,
81 MEMCACHED_BEHAVIOR_SOCKET_SEND_SIZE,
82 MEMCACHED_BEHAVIOR_SOCKET_RECV_SIZE,
83 MEMCACHED_BEHAVIOR_CACHE_LOOKUPS,
84 MEMCACHED_BEHAVIOR_SUPPORT_CAS,
85 MEMCACHED_BEHAVIOR_POLL_TIMEOUT,
86 MEMCACHED_BEHAVIOR_DISTRIBUTION,
87 MEMCACHED_BEHAVIOR_BUFFER_REQUESTS,
88 MEMCACHED_BEHAVIOR_USER_DATA,
89 MEMCACHED_BEHAVIOR_SORT_HOSTS,
90 MEMCACHED_BEHAVIOR_VERIFY_KEY,
91 MEMCACHED_BEHAVIOR_CONNECT_TIMEOUT,
92 MEMCACHED_BEHAVIOR_RETRY_TIMEOUT,
93 MEMCACHED_BEHAVIOR_KETAMA_WEIGHTED,
94 MEMCACHED_BEHAVIOR_KETAMA_HASH,
95 MEMCACHED_BEHAVIOR_BINARY_PROTOCOL,
96 MEMCACHED_BEHAVIOR_SND_TIMEOUT,
97 MEMCACHED_BEHAVIOR_RCV_TIMEOUT,
98 MEMCACHED_BEHAVIOR_SERVER_FAILURE_LIMIT,
99 MEMCACHED_BEHAVIOR_IO_MSG_WATERMARK,
100 MEMCACHED_BEHAVIOR_IO_BYTES_WATERMARK,
101 MEMCACHED_BEHAVIOR_IO_KEY_PREFETCH,
102 MEMCACHED_BEHAVIOR_HASH_WITH_PREFIX_KEY,
103 MEMCACHED_BEHAVIOR_NOREPLY,
104 MEMCACHED_BEHAVIOR_USE_UDP,
105 MEMCACHED_BEHAVIOR_AUTO_EJECT_HOSTS,
106 MEMCACHED_BEHAVIOR_NUMBER_OF_REPLICAS,
107 MEMCACHED_BEHAVIOR_RANDOMIZE_REPLICA_READ,
108 MEMCACHED_BEHAVIOR_CORK,
109 MEMCACHED_BEHAVIOR_TCP_KEEPALIVE,
110 MEMCACHED_BEHAVIOR_TCP_KEEPIDLE,
111 MEMCACHED_BEHAVIOR_LOAD_FROM_FILE,
112 MEMCACHED_BEHAVIOR_REMOVE_FAILED_SERVERS,
113 MEMCACHED_BEHAVIOR_MAX
114 };
115
116 #ifndef __cplusplus
117 typedef enum memcached_behavior_t memcached_behavior_t;
118 #endif
119
120 enum memcached_callback_t {
121 MEMCACHED_CALLBACK_PREFIX_KEY = 0,
122 MEMCACHED_CALLBACK_USER_DATA = 1,
123 MEMCACHED_CALLBACK_CLEANUP_FUNCTION = 2,
124 MEMCACHED_CALLBACK_CLONE_FUNCTION = 3,
125 MEMCACHED_CALLBACK_GET_FAILURE = 7,
126 MEMCACHED_CALLBACK_DELETE_TRIGGER = 8,
127 MEMCACHED_CALLBACK_MAX,
128 MEMCACHED_CALLBACK_NAMESPACE= MEMCACHED_CALLBACK_PREFIX_KEY
129 };
130
131 #ifndef __cplusplus
132 typedef enum memcached_callback_t memcached_callback_t;
133 #endif
134
135 enum memcached_hash_t {
136 MEMCACHED_HASH_DEFAULT= 0,
137 MEMCACHED_HASH_MD5,
138 MEMCACHED_HASH_CRC,
139 MEMCACHED_HASH_FNV1_64,
140 MEMCACHED_HASH_FNV1A_64,
141 MEMCACHED_HASH_FNV1_32,
142 MEMCACHED_HASH_FNV1A_32,
143 MEMCACHED_HASH_HSIEH,
144 MEMCACHED_HASH_MURMUR,
145 MEMCACHED_HASH_JENKINS,
146 MEMCACHED_HASH_CUSTOM,
147 MEMCACHED_HASH_MAX
148 };
149
150 #ifndef __cplusplus
151 typedef enum memcached_hash_t memcached_hash_t;
152 #endif
153
154 enum memcached_connection_t {
155 MEMCACHED_CONNECTION_TCP,
156 MEMCACHED_CONNECTION_UDP,
157 MEMCACHED_CONNECTION_UNIX_SOCKET
158 };
159
160 enum {
161 MEMCACHED_CONNECTION_UNKNOWN= 0,
162 MEMCACHED_CONNECTION_MAX= 0
163 };
164
165 #ifndef __cplusplus
166 typedef enum memcached_connection_t memcached_connection_t;
167 #endif