Added randomized read behavior
[m6w6/libmemcached] / libmemcached / memcached_constants.h
index 1d2b08ad6b800cb4ee516cc6dbb1becaeb73dc10..b19f03c78d33cad617890f40431c234ad4859318 100644 (file)
@@ -9,21 +9,20 @@
 #ifndef __MEMCACHED_CONSTANTS_H__
 #define __MEMCACHED_CONSTANTS_H__
 
-#ifdef __cplusplus
-extern "C" {
-#endif
-
 /* Public defines */
 #define MEMCACHED_DEFAULT_PORT 11211
 #define MEMCACHED_MAX_KEY 251 /* We add one to have it null terminated */
 #define MEMCACHED_MAX_BUFFER 8196
 #define MEMCACHED_MAX_HOST_LENGTH 64
 #define MEMCACHED_MAX_HOST_SORT_LENGTH 86 /* Used for Ketama */
-#define MEMCACHED_POINTS_PER_SERVER 100 
-#define MEMCACHED_CONTINUUM_SIZE MEMCACHED_POINTS_PER_SERVER*100 /* This would then set max hosts to 100 */ 
+#define MEMCACHED_POINTS_PER_SERVER 100
+#define MEMCACHED_POINTS_PER_SERVER_KETAMA 160
+#define MEMCACHED_CONTINUUM_SIZE MEMCACHED_POINTS_PER_SERVER*100 /* This would then set max hosts to 100 */
 #define MEMCACHED_STRIDE 4
-#define MEMCACHED_DEFAULT_TIMEOUT INT32_MAX
+#define MEMCACHED_DEFAULT_TIMEOUT 1000
 #define MEMCACHED_CONTINUUM_ADDITION 10 /* How many extra slots we should build for in the continuum */
+#define MEMCACHED_PREFIX_KEY_MAX_SIZE 128
+#define MEMCACHED_EXPIRATION_NOT_ADD 0xffffffffU
 
 typedef enum {
   MEMCACHED_SUCCESS,
@@ -51,22 +50,29 @@ typedef enum {
   MEMCACHED_DELETED,
   MEMCACHED_VALUE,
   MEMCACHED_STAT,
+  MEMCACHED_ITEM,
   MEMCACHED_ERRNO,
   MEMCACHED_FAIL_UNIX_SOCKET,
   MEMCACHED_NOT_SUPPORTED,
-  MEMCACHED_NO_KEY_PROVIDED,
+  MEMCACHED_NO_KEY_PROVIDED, /* Deprecated. Use MEMCACHED_BAD_KEY_PROVIDED! */
   MEMCACHED_FETCH_NOTFINISHED,
   MEMCACHED_TIMEOUT,
   MEMCACHED_BUFFERED,
   MEMCACHED_BAD_KEY_PROVIDED,
-  MEMCACHED_MAXIMUM_RETURN, /* Always add new error code before */
+  MEMCACHED_INVALID_HOST_PROTOCOL,
+  MEMCACHED_SERVER_MARKED_DEAD,
+  MEMCACHED_UNKNOWN_STAT_KEY,
+  MEMCACHED_E2BIG,
+  MEMCACHED_INVALID_ARGUMENTS,
+  MEMCACHED_MAXIMUM_RETURN /* Always add new error code before */
 } memcached_return;
 
 typedef enum {
   MEMCACHED_DISTRIBUTION_MODULA,
   MEMCACHED_DISTRIBUTION_CONSISTENT,
-  MEMCACHED_DISTRIBUTION_CONSISTENT_WHEEL,
   MEMCACHED_DISTRIBUTION_CONSISTENT_KETAMA,
+  MEMCACHED_DISTRIBUTION_RANDOM,
+  MEMCACHED_DISTRIBUTION_CONSISTENT_KETAMA_SPY
 } memcached_server_distribution;
 
 typedef enum {
@@ -86,17 +92,39 @@ typedef enum {
   MEMCACHED_BEHAVIOR_VERIFY_KEY,
   MEMCACHED_BEHAVIOR_CONNECT_TIMEOUT,
   MEMCACHED_BEHAVIOR_RETRY_TIMEOUT,
+  MEMCACHED_BEHAVIOR_KETAMA_WEIGHTED,
+  MEMCACHED_BEHAVIOR_KETAMA_HASH,
+  MEMCACHED_BEHAVIOR_BINARY_PROTOCOL,
+  MEMCACHED_BEHAVIOR_SND_TIMEOUT,
+  MEMCACHED_BEHAVIOR_RCV_TIMEOUT,
+  MEMCACHED_BEHAVIOR_SERVER_FAILURE_LIMIT,
+  MEMCACHED_BEHAVIOR_IO_MSG_WATERMARK,
+  MEMCACHED_BEHAVIOR_IO_BYTES_WATERMARK,
+  MEMCACHED_BEHAVIOR_IO_KEY_PREFETCH,
+  MEMCACHED_BEHAVIOR_HASH_WITH_PREFIX_KEY,
+  MEMCACHED_BEHAVIOR_NOREPLY,
+  MEMCACHED_BEHAVIOR_USE_UDP,
+  MEMCACHED_BEHAVIOR_AUTO_EJECT_HOSTS,
+  MEMCACHED_BEHAVIOR_NUMBER_OF_REPLICAS,
+  MEMCACHED_BEHAVIOR_KETAMA_COMPAT_MODE,
+  MEMCACHED_BEHAVIOR_RANDOMIZE_REPLICA_READ
 } memcached_behavior;
 
+#define MEMCACHED_KETAMA_COMPAT_LIBMEMCACHED 0
+#define MEMCACHED_KETAMA_COMPAT_SPY 1
+
 typedef enum {
-  MEMCACHED_CALLBACK_USER_DATA,
-  MEMCACHED_CALLBACK_CLEANUP_FUNCTION,
-  MEMCACHED_CALLBACK_CLONE_FUNCTION,
-  MEMCACHED_CALLBACK_MALLOC_FUNCTION,
-  MEMCACHED_CALLBACK_REALLOC_FUNCTION,
-  MEMCACHED_CALLBACK_FREE_FUNCTION,
-  MEMCACHED_CALLBACK_GET_FAILURE,
-  MEMCACHED_CALLBACK_DELETE_TRIGGER,
+  MEMCACHED_CALLBACK_PREFIX_KEY = 0,
+  MEMCACHED_CALLBACK_USER_DATA = 1,
+  MEMCACHED_CALLBACK_CLEANUP_FUNCTION = 2,
+  MEMCACHED_CALLBACK_CLONE_FUNCTION = 3,
+#ifdef MEMCACHED_ENABLE_DEPRECATED
+  MEMCACHED_CALLBACK_MALLOC_FUNCTION = 4,
+  MEMCACHED_CALLBACK_REALLOC_FUNCTION = 5,
+  MEMCACHED_CALLBACK_FREE_FUNCTION = 6,
+#endif
+  MEMCACHED_CALLBACK_GET_FAILURE = 7,
+  MEMCACHED_CALLBACK_DELETE_TRIGGER = 8
 } memcached_callback;
 
 typedef enum {
@@ -107,27 +135,16 @@ typedef enum {
   MEMCACHED_HASH_FNV1A_64,
   MEMCACHED_HASH_FNV1_32,
   MEMCACHED_HASH_FNV1A_32,
-  MEMCACHED_HASH_KETAMA,
   MEMCACHED_HASH_HSIEH,
   MEMCACHED_HASH_MURMUR,
+  MEMCACHED_HASH_JENKINS
 } memcached_hash;
 
 typedef enum {
   MEMCACHED_CONNECTION_UNKNOWN,
   MEMCACHED_CONNECTION_TCP,
   MEMCACHED_CONNECTION_UDP,
-  MEMCACHED_CONNECTION_UNIX_SOCKET,
+  MEMCACHED_CONNECTION_UNIX_SOCKET
 } memcached_connection;
 
-typedef enum {
-  MEMCACHED_NOT_ALLOCATED,
-  MEMCACHED_ALLOCATED,
-  MEMCACHED_USED,
-} memcached_allocated;
-
-
-#ifdef __cplusplus
-}
-#endif
-
 #endif /* __MEMCACHED_CONSTANTS_H__ */