#include <stdint.h>
+#include <libmemcached/common.h>
#include <libmemcached/options/context.h>
-#include <libmemcached/options/build.h>
-#include <libmemcached/options/string.h>
#include <libmemcached/options/symbol.h>
-#include <libmemcached/visibility.h>
-#include <libmemcached/prefix_key.h>
+#include <libmemcached/options/scanner.h>
#pragma GCC diagnostic ignored "-Wold-style-cast"
-#include <libmemcached/options/scanner.h>
int conf_lex(YYSTYPE* lvalp, void* scanner);
-#define parser_abort(A, B) do { parser::abort_func((A), (B)); YYABORT; } while (0)
+#define parser_abort(A, B) do { (A)->abort((B)); YYABORT; } while (0)
inline void config_error(Context *context, yyscan_t *scanner, const char *error)
{
if (not context->end())
- parser::abort_func(context, error);
+ context->abort(error);
}
/* Line 189 of yacc.c */
-#line 109 "libmemcached/options/parser.cc"
+#line 106 "libmemcached/options/parser.cc"
/* Enabling traces. */
#ifndef YYDEBUG
SERVERS_OPTION = 268,
UNKNOWN_OPTION = 269,
UNKNOWN = 270,
- AUTO_EJECT_HOSTS = 271,
- BINARY_PROTOCOL = 272,
- BUFFER_REQUESTS = 273,
- CONNECT_TIMEOUT = 274,
- DISTRIBUTION = 275,
- HASH = 276,
- HASH_WITH_PREFIX_KEY = 277,
- IO_BYTES_WATERMARK = 278,
- IO_KEY_PREFETCH = 279,
- IO_MSG_WATERMARK = 280,
- KETAMA_HASH = 281,
- KETAMA_WEIGHTED = 282,
- NOREPLY = 283,
- NUMBER_OF_REPLICAS = 284,
- POLL_TIMEOUT = 285,
- RANDOMIZE_REPLICA_READ = 286,
- RCV_TIMEOUT = 287,
+ BINARY_PROTOCOL = 271,
+ BUFFER_REQUESTS = 272,
+ CONNECT_TIMEOUT = 273,
+ DISTRIBUTION = 274,
+ HASH = 275,
+ HASH_WITH_NAMESPACE = 276,
+ IO_BYTES_WATERMARK = 277,
+ IO_KEY_PREFETCH = 278,
+ IO_MSG_WATERMARK = 279,
+ KETAMA_HASH = 280,
+ KETAMA_WEIGHTED = 281,
+ NOREPLY = 282,
+ NUMBER_OF_REPLICAS = 283,
+ POLL_TIMEOUT = 284,
+ RANDOMIZE_REPLICA_READ = 285,
+ RCV_TIMEOUT = 286,
+ REMOVE_FAILED_SERVERS = 287,
RETRY_TIMEOUT = 288,
- SERVER_FAILURE_LIMIT = 289,
- SND_TIMEOUT = 290,
- SOCKET_RECV_SIZE = 291,
- SOCKET_SEND_SIZE = 292,
- SORT_HOSTS = 293,
- SUPPORT_CAS = 294,
- _TCP_NODELAY = 295,
- _TCP_KEEPALIVE = 296,
- _TCP_KEEPIDLE = 297,
- USER_DATA = 298,
- USE_UDP = 299,
- VERIFY_KEY = 300,
- PREFIX_KEY = 301,
- MD5 = 302,
- CRC = 303,
- FNV1_64 = 304,
- FNV1A_64 = 305,
- FNV1_32 = 306,
- FNV1A_32 = 307,
- HSIEH = 308,
- MURMUR = 309,
- JENKINS = 310,
- CONSISTENT = 311,
- MODULA = 312,
- RANDOM = 313,
- TRUE = 314,
- FALSE = 315,
- FLOAT = 316,
- NUMBER = 317,
- PORT = 318,
- WEIGHT_START = 319,
- IPADDRESS = 320,
- HOSTNAME = 321,
- STRING = 322,
- QUOTED_STRING = 323,
- FILE_PATH = 324
+ SND_TIMEOUT = 289,
+ SOCKET_RECV_SIZE = 290,
+ SOCKET_SEND_SIZE = 291,
+ SORT_HOSTS = 292,
+ SUPPORT_CAS = 293,
+ USER_DATA = 294,
+ USE_UDP = 295,
+ VERIFY_KEY = 296,
+ _TCP_KEEPALIVE = 297,
+ _TCP_KEEPIDLE = 298,
+ _TCP_NODELAY = 299,
+ NAMESPACE = 300,
+ POOL_MIN = 301,
+ POOL_MAX = 302,
+ MD5 = 303,
+ CRC = 304,
+ FNV1_64 = 305,
+ FNV1A_64 = 306,
+ FNV1_32 = 307,
+ FNV1A_32 = 308,
+ HSIEH = 309,
+ MURMUR = 310,
+ JENKINS = 311,
+ CONSISTENT = 312,
+ MODULA = 313,
+ RANDOM = 314,
+ TRUE = 315,
+ FALSE = 316,
+ FLOAT = 317,
+ NUMBER = 318,
+ PORT = 319,
+ WEIGHT_START = 320,
+ IPADDRESS = 321,
+ HOSTNAME = 322,
+ STRING = 323,
+ QUOTED_STRING = 324,
+ FILE_PATH = 325
};
#endif
/* Line 264 of yacc.c */
-#line 219 "libmemcached/options/parser.cc"
+#line 217 "libmemcached/options/parser.cc"
#ifdef short
# undef short
#endif
/* YYFINAL -- State number of the termination state. */
-#define YYFINAL 66
+#define YYFINAL 69
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 72
+#define YYLAST 73
/* YYNTOKENS -- Number of terminals. */
-#define YYNTOKENS 73
+#define YYNTOKENS 74
/* YYNNTS -- Number of nonterminals. */
#define YYNNTS 12
/* YYNRULES -- Number of rules. */
-#define YYNRULES 65
+#define YYNRULES 66
/* YYNRULES -- Number of states. */
-#define YYNSTATES 79
+#define YYNSTATES 82
/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
#define YYUNDEFTOK 2
-#define YYMAXUTOK 324
+#define YYMAXUTOK 325
#define YYTRANSLATE(YYX) \
((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 72, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 61, 2, 2, 2, 2, 2,
+ 2, 2, 73, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 62, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 62, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 63, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
- 55, 56, 57, 58, 59, 60, 63, 64, 65, 66,
- 67, 68, 69, 70, 71
+ 55, 56, 57, 58, 59, 60, 61, 64, 65, 66,
+ 67, 68, 69, 70, 71, 72
};
#if YYDEBUG
static const yytype_uint8 yyprhs[] =
{
0, 0, 3, 5, 9, 11, 13, 15, 17, 19,
- 21, 23, 27, 32, 37, 40, 42, 45, 48, 53,
- 56, 59, 61, 63, 65, 67, 69, 71, 73, 75,
- 77, 79, 81, 83, 85, 87, 89, 91, 93, 95,
- 97, 99, 101, 103, 105, 107, 109, 111, 113, 114,
- 116, 117, 119, 121, 123, 125, 127, 129, 131, 133,
- 135, 137, 139, 141, 143, 145
+ 21, 23, 27, 32, 37, 40, 43, 46, 48, 51,
+ 54, 59, 62, 65, 67, 69, 71, 73, 75, 77,
+ 79, 81, 83, 85, 87, 89, 91, 93, 95, 97,
+ 99, 101, 103, 105, 107, 109, 111, 113, 115, 117,
+ 118, 120, 121, 123, 125, 127, 129, 131, 133, 135,
+ 137, 139, 141, 143, 145, 147, 149
};
/* YYRHS -- A `-1'-separated list of the rules' RHS. */
static const yytype_int8 yyrhs[] =
{
- 74, 0, -1, 75, -1, 74, 72, 75, -1, 76,
+ 75, 0, -1, 76, -1, 75, 73, 76, -1, 77,
-1, 3, -1, 10, -1, 4, -1, 5, -1, 6,
- -1, 7, -1, 8, 72, 83, -1, 11, 68, 80,
- 81, -1, 11, 67, 80, 81, -1, 9, 83, -1,
- 77, -1, 46, 83, -1, 20, 84, -1, 20, 84,
- 61, 82, -1, 21, 82, -1, 78, 64, -1, 79,
- -1, 43, -1, 19, -1, 25, -1, 23, -1, 24,
- -1, 29, -1, 30, -1, 32, -1, 33, -1, 34,
- -1, 35, -1, 36, -1, 37, -1, 16, -1, 17,
- -1, 18, -1, 22, -1, 28, -1, 31, -1, 38,
- -1, 39, -1, 40, -1, 41, -1, 42, -1, 44,
- -1, 45, -1, -1, 65, -1, -1, 66, -1, 47,
- -1, 48, -1, 49, -1, 50, -1, 51, -1, 52,
- -1, 53, -1, 54, -1, 55, -1, 69, -1, 70,
- -1, 56, -1, 57, -1, 58, -1
+ -1, 7, -1, 8, 73, 84, -1, 11, 69, 81,
+ 82, -1, 11, 68, 81, 82, -1, 9, 84, -1,
+ 46, 65, -1, 47, 65, -1, 78, -1, 45, 84,
+ -1, 19, 85, -1, 19, 85, 62, 83, -1, 20,
+ 83, -1, 79, 65, -1, 80, -1, 39, -1, 32,
+ -1, 18, -1, 24, -1, 22, -1, 23, -1, 28,
+ -1, 29, -1, 31, -1, 33, -1, 34, -1, 35,
+ -1, 36, -1, 16, -1, 17, -1, 21, -1, 27,
+ -1, 30, -1, 37, -1, 38, -1, 44, -1, 42,
+ -1, 43, -1, 40, -1, 41, -1, -1, 66, -1,
+ -1, 67, -1, 48, -1, 49, -1, 50, -1, 51,
+ -1, 52, -1, 53, -1, 54, -1, 55, -1, 56,
+ -1, 70, -1, 71, -1, 57, -1, 58, -1, 59,
+ -1
};
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
static const yytype_uint16 yyrline[] =
{
0, 155, 155, 156, 160, 162, 164, 166, 171, 176,
- 180, 184, 195, 203, 211, 215, 219, 226, 233, 244,
- 251, 258, 265, 271, 275, 279, 283, 287, 291, 295,
- 299, 303, 307, 311, 315, 322, 326, 330, 334, 338,
- 342, 346, 350, 354, 358, 362, 366, 370, 377, 378,
- 383, 384, 389, 393, 397, 401, 405, 409, 413, 417,
- 421, 428, 432, 440, 444, 448
+ 180, 184, 195, 203, 211, 215, 219, 223, 227, 234,
+ 241, 252, 259, 266, 273, 279, 283, 287, 291, 295,
+ 299, 303, 307, 311, 315, 319, 323, 330, 334, 338,
+ 342, 346, 350, 354, 358, 362, 366, 370, 374, 381,
+ 382, 387, 388, 393, 397, 401, 405, 409, 413, 417,
+ 421, 425, 432, 436, 444, 448, 452
};
#endif
"$end", "error", "$undefined", "COMMENT", "END", "ERROR", "RESET",
"PARSER_DEBUG", "INCLUDE", "CONFIGURE_FILE", "EMPTY_LINE", "SERVER",
"SERVERS", "SERVERS_OPTION", "UNKNOWN_OPTION", "UNKNOWN",
- "AUTO_EJECT_HOSTS", "BINARY_PROTOCOL", "BUFFER_REQUESTS",
- "CONNECT_TIMEOUT", "DISTRIBUTION", "HASH", "HASH_WITH_PREFIX_KEY",
- "IO_BYTES_WATERMARK", "IO_KEY_PREFETCH", "IO_MSG_WATERMARK",
- "KETAMA_HASH", "KETAMA_WEIGHTED", "NOREPLY", "NUMBER_OF_REPLICAS",
- "POLL_TIMEOUT", "RANDOMIZE_REPLICA_READ", "RCV_TIMEOUT", "RETRY_TIMEOUT",
- "SERVER_FAILURE_LIMIT", "SND_TIMEOUT", "SOCKET_RECV_SIZE",
- "SOCKET_SEND_SIZE", "SORT_HOSTS", "SUPPORT_CAS", "_TCP_NODELAY",
- "_TCP_KEEPALIVE", "_TCP_KEEPIDLE", "USER_DATA", "USE_UDP", "VERIFY_KEY",
- "PREFIX_KEY", "MD5", "CRC", "FNV1_64", "FNV1A_64", "FNV1_32", "FNV1A_32",
- "HSIEH", "MURMUR", "JENKINS", "CONSISTENT", "MODULA", "RANDOM", "TRUE",
- "FALSE", "','", "'='", "FLOAT", "NUMBER", "PORT", "WEIGHT_START",
- "IPADDRESS", "HOSTNAME", "STRING", "QUOTED_STRING", "FILE_PATH", "' '",
- "$accept", "begin", "statement", "expression", "behaviors",
- "behavior_number", "behavior_boolean", "optional_port",
- "optional_weight", "hash", "string", "distribution", 0
+ "BINARY_PROTOCOL", "BUFFER_REQUESTS", "CONNECT_TIMEOUT", "DISTRIBUTION",
+ "HASH", "HASH_WITH_NAMESPACE", "IO_BYTES_WATERMARK", "IO_KEY_PREFETCH",
+ "IO_MSG_WATERMARK", "KETAMA_HASH", "KETAMA_WEIGHTED", "NOREPLY",
+ "NUMBER_OF_REPLICAS", "POLL_TIMEOUT", "RANDOMIZE_REPLICA_READ",
+ "RCV_TIMEOUT", "REMOVE_FAILED_SERVERS", "RETRY_TIMEOUT", "SND_TIMEOUT",
+ "SOCKET_RECV_SIZE", "SOCKET_SEND_SIZE", "SORT_HOSTS", "SUPPORT_CAS",
+ "USER_DATA", "USE_UDP", "VERIFY_KEY", "_TCP_KEEPALIVE", "_TCP_KEEPIDLE",
+ "_TCP_NODELAY", "NAMESPACE", "POOL_MIN", "POOL_MAX", "MD5", "CRC",
+ "FNV1_64", "FNV1A_64", "FNV1_32", "FNV1A_32", "HSIEH", "MURMUR",
+ "JENKINS", "CONSISTENT", "MODULA", "RANDOM", "TRUE", "FALSE", "','",
+ "'='", "FLOAT", "NUMBER", "PORT", "WEIGHT_START", "IPADDRESS",
+ "HOSTNAME", "STRING", "QUOTED_STRING", "FILE_PATH", "' '", "$accept",
+ "begin", "statement", "expression", "behaviors", "behavior_number",
+ "behavior_boolean", "optional_port", "optional_weight", "hash", "string",
+ "distribution", 0
};
#endif
285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
- 315, 44, 61, 316, 317, 318, 319, 320, 321, 322,
- 323, 324, 32
+ 315, 316, 44, 61, 317, 318, 319, 320, 321, 322,
+ 323, 324, 325, 32
};
# endif
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
static const yytype_uint8 yyr1[] =
{
- 0, 73, 74, 74, 75, 75, 75, 75, 75, 75,
- 75, 75, 76, 76, 76, 76, 77, 77, 77, 77,
- 77, 77, 77, 78, 78, 78, 78, 78, 78, 78,
+ 0, 74, 75, 75, 76, 76, 76, 76, 76, 76,
+ 76, 76, 77, 77, 77, 77, 77, 77, 78, 78,
78, 78, 78, 78, 78, 79, 79, 79, 79, 79,
- 79, 79, 79, 79, 79, 79, 79, 79, 80, 80,
- 81, 81, 82, 82, 82, 82, 82, 82, 82, 82,
- 82, 83, 83, 84, 84, 84
+ 79, 79, 79, 79, 79, 79, 79, 80, 80, 80,
+ 80, 80, 80, 80, 80, 80, 80, 80, 80, 81,
+ 81, 82, 82, 83, 83, 83, 83, 83, 83, 83,
+ 83, 83, 84, 84, 85, 85, 85
};
/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
static const yytype_uint8 yyr2[] =
{
0, 2, 1, 3, 1, 1, 1, 1, 1, 1,
- 1, 3, 4, 4, 2, 1, 2, 2, 4, 2,
- 2, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 3, 4, 4, 2, 2, 2, 1, 2, 2,
+ 4, 2, 2, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 0, 1,
- 0, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
+ 1, 0, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1
};
/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
static const yytype_uint8 yydefact[] =
{
0, 5, 7, 8, 9, 10, 0, 0, 6, 0,
- 35, 36, 37, 23, 0, 0, 38, 25, 26, 24,
- 39, 27, 28, 40, 29, 30, 31, 32, 33, 34,
- 41, 42, 43, 44, 45, 22, 46, 47, 0, 0,
- 2, 4, 15, 0, 21, 0, 61, 62, 14, 48,
- 48, 63, 64, 65, 17, 52, 53, 54, 55, 56,
- 57, 58, 59, 60, 19, 16, 1, 0, 20, 11,
- 49, 50, 50, 0, 3, 51, 13, 12, 18
+ 37, 38, 26, 0, 0, 39, 28, 29, 27, 40,
+ 30, 31, 41, 32, 25, 33, 34, 35, 36, 42,
+ 43, 24, 47, 48, 45, 46, 44, 0, 0, 0,
+ 0, 2, 4, 17, 0, 23, 0, 62, 63, 14,
+ 49, 49, 64, 65, 66, 19, 53, 54, 55, 56,
+ 57, 58, 59, 60, 61, 21, 18, 15, 16, 1,
+ 0, 22, 11, 50, 51, 51, 0, 3, 52, 13,
+ 12, 20
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int8 yydefgoto[] =
{
- -1, 39, 40, 41, 42, 43, 44, 71, 76, 64,
- 48, 54
+ -1, 40, 41, 42, 43, 44, 45, 74, 79, 65,
+ 49, 55
};
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
STATE-NUM. */
-#define YYPACT_NINF -60
+#define YYPACT_NINF -61
static const yytype_int8 yypact[] =
{
- -2, -60, -60, -60, -60, -60, -59, -45, -60, -11,
- -60, -60, -60, -60, -46, -1, -60, -60, -60, -60,
- -60, -60, -60, -60, -60, -60, -60, -60, -60, -60,
- -60, -60, -60, -60, -60, -60, -60, -60, -45, 0,
- -60, -60, -60, -19, -60, -45, -60, -60, -60, -7,
- -7, -60, -60, -60, 2, -60, -60, -60, -60, -60,
- -60, -60, -60, -60, -60, -60, -60, -2, -60, -60,
- -60, -6, -6, -1, -60, -60, -60, -60, -60
+ -2, -61, -61, -61, -61, -61, -60, -23, -61, -45,
+ -61, -61, -61, -47, 8, -61, -61, -61, -61, -61,
+ -61, -61, -61, -61, -61, -61, -61, -61, -61, -61,
+ -61, -61, -61, -61, -61, -61, -61, -23, -16, -15,
+ 0, -61, -61, -61, -14, -61, -23, -61, -61, -61,
+ -13, -13, -61, -61, -61, -10, -61, -61, -61, -61,
+ -61, -61, -61, -61, -61, -61, -61, -61, -61, -61,
+ -2, -61, -61, -61, -1, -1, 8, -61, -61, -61,
+ -61, -61
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int8 yypgoto[] =
{
- -60, -60, -8, -60, -60, -60, -60, 11, -5, -9,
- 17, -60
+ -61, -61, -5, -61, -61, -61, -61, 3, -8, -7,
+ 9, -61
};
/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
#define YYTABLE_NINF -1
static const yytype_uint8 yytable[] =
{
- 66, 1, 2, 3, 4, 5, 6, 7, 8, 9,
- 51, 52, 53, 45, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 46, 47, 20, 21, 22, 23,
+ 69, 1, 2, 3, 4, 5, 6, 7, 8, 9,
+ 52, 53, 54, 46, 10, 11, 12, 13, 14, 15,
+ 16, 17, 18, 50, 51, 19, 20, 21, 22, 23,
24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
- 34, 35, 36, 37, 38, 68, 55, 56, 57, 58,
- 59, 60, 61, 62, 63, 65, 49, 50, 70, 74,
- 75, 72, 69, 73, 78, 0, 0, 77, 0, 0,
- 0, 0, 67
+ 34, 35, 36, 37, 38, 39, 66, 47, 48, 67,
+ 68, 71, 76, 73, 75, 72, 56, 57, 58, 59,
+ 60, 61, 62, 63, 64, 77, 78, 80, 0, 81,
+ 0, 0, 0, 70
};
static const yytype_int8 yycheck[] =
{
0, 3, 4, 5, 6, 7, 8, 9, 10, 11,
- 56, 57, 58, 72, 16, 17, 18, 19, 20, 21,
- 22, 23, 24, 25, 69, 70, 28, 29, 30, 31,
+ 57, 58, 59, 73, 16, 17, 18, 19, 20, 21,
+ 22, 23, 24, 68, 69, 27, 28, 29, 30, 31,
32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
- 42, 43, 44, 45, 46, 64, 47, 48, 49, 50,
- 51, 52, 53, 54, 55, 38, 67, 68, 65, 67,
- 66, 50, 45, 61, 73, -1, -1, 72, -1, -1,
- -1, -1, 72
+ 42, 43, 44, 45, 46, 47, 37, 70, 71, 65,
+ 65, 65, 62, 66, 51, 46, 48, 49, 50, 51,
+ 52, 53, 54, 55, 56, 70, 67, 75, -1, 76,
+ -1, -1, -1, 73
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
static const yytype_uint8 yystos[] =
{
0, 3, 4, 5, 6, 7, 8, 9, 10, 11,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
+ 16, 17, 18, 19, 20, 21, 22, 23, 24, 27,
28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
- 38, 39, 40, 41, 42, 43, 44, 45, 46, 74,
- 75, 76, 77, 78, 79, 72, 69, 70, 83, 67,
- 68, 56, 57, 58, 84, 47, 48, 49, 50, 51,
- 52, 53, 54, 55, 82, 83, 0, 72, 64, 83,
- 65, 80, 80, 61, 75, 66, 81, 81, 82
+ 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
+ 75, 76, 77, 78, 79, 80, 73, 70, 71, 84,
+ 68, 69, 57, 58, 59, 85, 48, 49, 50, 51,
+ 52, 53, 54, 55, 56, 83, 84, 65, 65, 0,
+ 73, 65, 84, 66, 81, 81, 62, 76, 67, 82,
+ 82, 83
};
#define yyerrok (yyerrstatus = 0)
/* Line 1464 of yacc.c */
#line 185 "libmemcached/options/parser.yy"
{
- if ((context->rc= memcached_parse_configure_file(context->memc, (yyvsp[(3) - (3)].string).c_str, (yyvsp[(3) - (3)].string).length)) != MEMCACHED_SUCCESS)
+ if ((context->rc= memcached_parse_configure_file(context->memc, (yyvsp[(3) - (3)].string).c_str, (yyvsp[(3) - (3)].string).size)) != MEMCACHED_SUCCESS)
{
parser_abort(context, NULL);
}
/* Line 1464 of yacc.c */
#line 212 "libmemcached/options/parser.yy"
{
- memcached_set_configuration_file(context->memc, (yyvsp[(2) - (2)].string).c_str, (yyvsp[(2) - (2)].string).length);
+ memcached_set_configuration_file(context->memc, (yyvsp[(2) - (2)].string).c_str, (yyvsp[(2) - (2)].string).size);
+ ;}
+ break;
+
+ case 15:
+
+/* Line 1464 of yacc.c */
+#line 216 "libmemcached/options/parser.yy"
+ {
+ context->memc->configure.initial_pool_size= (yyvsp[(2) - (2)].number);
;}
break;
/* Line 1464 of yacc.c */
#line 220 "libmemcached/options/parser.yy"
{
- if ((context->rc= memcached_set_prefix_key(context->memc, (yyvsp[(2) - (2)].string).c_str, (yyvsp[(2) - (2)].string).length)) != MEMCACHED_SUCCESS)
+ context->memc->configure.max_pool_size= (yyvsp[(2) - (2)].number);
+ ;}
+ break;
+
+ case 18:
+
+/* Line 1464 of yacc.c */
+#line 228 "libmemcached/options/parser.yy"
+ {
+ if ((context->rc= memcached_set_prefix_key(context->memc, (yyvsp[(2) - (2)].string).c_str, (yyvsp[(2) - (2)].string).size)) != MEMCACHED_SUCCESS)
{
parser_abort(context, NULL);;
}
;}
break;
- case 17:
+ case 19:
/* Line 1464 of yacc.c */
-#line 227 "libmemcached/options/parser.yy"
+#line 235 "libmemcached/options/parser.yy"
{
if ((context->rc= memcached_behavior_set(context->memc, MEMCACHED_BEHAVIOR_DISTRIBUTION, (yyvsp[(2) - (2)].distribution))) != MEMCACHED_SUCCESS)
{
;}
break;
- case 18:
+ case 20:
/* Line 1464 of yacc.c */
-#line 234 "libmemcached/options/parser.yy"
+#line 242 "libmemcached/options/parser.yy"
{
if ((context->rc= memcached_behavior_set(context->memc, MEMCACHED_BEHAVIOR_DISTRIBUTION, (yyvsp[(2) - (4)].distribution))) != MEMCACHED_SUCCESS)
{
;}
break;
- case 19:
+ case 21:
/* Line 1464 of yacc.c */
-#line 245 "libmemcached/options/parser.yy"
+#line 253 "libmemcached/options/parser.yy"
{
if ((context->rc= memcached_behavior_set(context->memc, MEMCACHED_BEHAVIOR_HASH, (yyvsp[(2) - (2)].hash))) != MEMCACHED_SUCCESS)
{
;}
break;
- case 20:
+ case 22:
/* Line 1464 of yacc.c */
-#line 252 "libmemcached/options/parser.yy"
+#line 260 "libmemcached/options/parser.yy"
{
if ((context->rc= memcached_behavior_set(context->memc, (yyvsp[(1) - (2)].behavior), (yyvsp[(2) - (2)].number))) != MEMCACHED_SUCCESS)
{
;}
break;
- case 21:
+ case 23:
/* Line 1464 of yacc.c */
-#line 259 "libmemcached/options/parser.yy"
+#line 267 "libmemcached/options/parser.yy"
{
if ((context->rc= memcached_behavior_set(context->memc, (yyvsp[(1) - (1)].behavior), true)) != MEMCACHED_SUCCESS)
{
;}
break;
- case 22:
-
-/* Line 1464 of yacc.c */
-#line 266 "libmemcached/options/parser.yy"
- {
- ;}
- break;
-
- case 23:
-
-/* Line 1464 of yacc.c */
-#line 272 "libmemcached/options/parser.yy"
- {
- (yyval.behavior)= MEMCACHED_BEHAVIOR_CONNECT_TIMEOUT;
- ;}
- break;
-
case 24:
/* Line 1464 of yacc.c */
-#line 276 "libmemcached/options/parser.yy"
+#line 274 "libmemcached/options/parser.yy"
{
- (yyval.behavior)= MEMCACHED_BEHAVIOR_IO_MSG_WATERMARK;
;}
break;
/* Line 1464 of yacc.c */
#line 280 "libmemcached/options/parser.yy"
{
- (yyval.behavior)= MEMCACHED_BEHAVIOR_IO_BYTES_WATERMARK;
+ (yyval.behavior)= MEMCACHED_BEHAVIOR_REMOVE_FAILED_SERVERS;
;}
break;
/* Line 1464 of yacc.c */
#line 284 "libmemcached/options/parser.yy"
{
- (yyval.behavior)= MEMCACHED_BEHAVIOR_IO_KEY_PREFETCH;
+ (yyval.behavior)= MEMCACHED_BEHAVIOR_CONNECT_TIMEOUT;
;}
break;
/* Line 1464 of yacc.c */
#line 288 "libmemcached/options/parser.yy"
{
- (yyval.behavior)= MEMCACHED_BEHAVIOR_NUMBER_OF_REPLICAS;
+ (yyval.behavior)= MEMCACHED_BEHAVIOR_IO_MSG_WATERMARK;
;}
break;
/* Line 1464 of yacc.c */
#line 292 "libmemcached/options/parser.yy"
{
- (yyval.behavior)= MEMCACHED_BEHAVIOR_POLL_TIMEOUT;
+ (yyval.behavior)= MEMCACHED_BEHAVIOR_IO_BYTES_WATERMARK;
;}
break;
/* Line 1464 of yacc.c */
#line 296 "libmemcached/options/parser.yy"
{
- (yyval.behavior)= MEMCACHED_BEHAVIOR_RCV_TIMEOUT;
+ (yyval.behavior)= MEMCACHED_BEHAVIOR_IO_KEY_PREFETCH;
;}
break;
/* Line 1464 of yacc.c */
#line 300 "libmemcached/options/parser.yy"
{
- (yyval.behavior)= MEMCACHED_BEHAVIOR_RETRY_TIMEOUT;
+ (yyval.behavior)= MEMCACHED_BEHAVIOR_NUMBER_OF_REPLICAS;
;}
break;
/* Line 1464 of yacc.c */
#line 304 "libmemcached/options/parser.yy"
{
- (yyval.behavior)= MEMCACHED_BEHAVIOR_SERVER_FAILURE_LIMIT;
+ (yyval.behavior)= MEMCACHED_BEHAVIOR_POLL_TIMEOUT;
;}
break;
/* Line 1464 of yacc.c */
#line 308 "libmemcached/options/parser.yy"
{
- (yyval.behavior)= MEMCACHED_BEHAVIOR_SND_TIMEOUT;
+ (yyval.behavior)= MEMCACHED_BEHAVIOR_RCV_TIMEOUT;
;}
break;
/* Line 1464 of yacc.c */
#line 312 "libmemcached/options/parser.yy"
{
- (yyval.behavior)= MEMCACHED_BEHAVIOR_SOCKET_RECV_SIZE;
+ (yyval.behavior)= MEMCACHED_BEHAVIOR_RETRY_TIMEOUT;
;}
break;
/* Line 1464 of yacc.c */
#line 316 "libmemcached/options/parser.yy"
{
- (yyval.behavior)= MEMCACHED_BEHAVIOR_SOCKET_SEND_SIZE;
+ (yyval.behavior)= MEMCACHED_BEHAVIOR_SND_TIMEOUT;
;}
break;
case 35:
/* Line 1464 of yacc.c */
-#line 323 "libmemcached/options/parser.yy"
+#line 320 "libmemcached/options/parser.yy"
{
- (yyval.behavior)= MEMCACHED_BEHAVIOR_AUTO_EJECT_HOSTS;
+ (yyval.behavior)= MEMCACHED_BEHAVIOR_SOCKET_RECV_SIZE;
;}
break;
case 36:
/* Line 1464 of yacc.c */
-#line 327 "libmemcached/options/parser.yy"
+#line 324 "libmemcached/options/parser.yy"
{
- (yyval.behavior)= MEMCACHED_BEHAVIOR_BINARY_PROTOCOL;
+ (yyval.behavior)= MEMCACHED_BEHAVIOR_SOCKET_SEND_SIZE;
;}
break;
/* Line 1464 of yacc.c */
#line 331 "libmemcached/options/parser.yy"
{
- (yyval.behavior)= MEMCACHED_BEHAVIOR_BUFFER_REQUESTS;
+ (yyval.behavior)= MEMCACHED_BEHAVIOR_BINARY_PROTOCOL;
;}
break;
/* Line 1464 of yacc.c */
#line 335 "libmemcached/options/parser.yy"
{
- (yyval.behavior)= MEMCACHED_BEHAVIOR_HASH_WITH_PREFIX_KEY;
+ (yyval.behavior)= MEMCACHED_BEHAVIOR_BUFFER_REQUESTS;
;}
break;
/* Line 1464 of yacc.c */
#line 339 "libmemcached/options/parser.yy"
{
- (yyval.behavior)= MEMCACHED_BEHAVIOR_NOREPLY;
+ (yyval.behavior)= MEMCACHED_BEHAVIOR_HASH_WITH_PREFIX_KEY;
;}
break;
/* Line 1464 of yacc.c */
#line 343 "libmemcached/options/parser.yy"
{
- (yyval.behavior)= MEMCACHED_BEHAVIOR_RANDOMIZE_REPLICA_READ;
+ (yyval.behavior)= MEMCACHED_BEHAVIOR_NOREPLY;
;}
break;
/* Line 1464 of yacc.c */
#line 347 "libmemcached/options/parser.yy"
{
- (yyval.behavior)= MEMCACHED_BEHAVIOR_SORT_HOSTS;
+ (yyval.behavior)= MEMCACHED_BEHAVIOR_RANDOMIZE_REPLICA_READ;
;}
break;
/* Line 1464 of yacc.c */
#line 351 "libmemcached/options/parser.yy"
{
- (yyval.behavior)= MEMCACHED_BEHAVIOR_SUPPORT_CAS;
+ (yyval.behavior)= MEMCACHED_BEHAVIOR_SORT_HOSTS;
;}
break;
/* Line 1464 of yacc.c */
#line 355 "libmemcached/options/parser.yy"
{
- (yyval.behavior)= MEMCACHED_BEHAVIOR_TCP_NODELAY;
+ (yyval.behavior)= MEMCACHED_BEHAVIOR_SUPPORT_CAS;
;}
break;
/* Line 1464 of yacc.c */
#line 359 "libmemcached/options/parser.yy"
{
- (yyval.behavior)= MEMCACHED_BEHAVIOR_TCP_KEEPALIVE;
+ (yyval.behavior)= MEMCACHED_BEHAVIOR_TCP_NODELAY;
;}
break;
/* Line 1464 of yacc.c */
#line 363 "libmemcached/options/parser.yy"
{
- (yyval.behavior)= MEMCACHED_BEHAVIOR_TCP_KEEPIDLE;
+ (yyval.behavior)= MEMCACHED_BEHAVIOR_TCP_KEEPALIVE;
;}
break;
/* Line 1464 of yacc.c */
#line 367 "libmemcached/options/parser.yy"
{
- (yyval.behavior)= MEMCACHED_BEHAVIOR_USE_UDP;
+ (yyval.behavior)= MEMCACHED_BEHAVIOR_TCP_KEEPIDLE;
;}
break;
/* Line 1464 of yacc.c */
#line 371 "libmemcached/options/parser.yy"
{
- (yyval.behavior)= MEMCACHED_BEHAVIOR_VERIFY_KEY;
+ (yyval.behavior)= MEMCACHED_BEHAVIOR_USE_UDP;
;}
break;
case 48:
/* Line 1464 of yacc.c */
-#line 377 "libmemcached/options/parser.yy"
- { ;}
+#line 375 "libmemcached/options/parser.yy"
+ {
+ (yyval.behavior)= MEMCACHED_BEHAVIOR_VERIFY_KEY;
+ ;}
break;
case 49:
/* Line 1464 of yacc.c */
-#line 379 "libmemcached/options/parser.yy"
+#line 381 "libmemcached/options/parser.yy"
{ ;}
break;
case 51:
/* Line 1464 of yacc.c */
-#line 385 "libmemcached/options/parser.yy"
+#line 387 "libmemcached/options/parser.yy"
{ ;}
break;
case 52:
/* Line 1464 of yacc.c */
-#line 390 "libmemcached/options/parser.yy"
- {
- (yyval.hash)= MEMCACHED_HASH_MD5;
- ;}
+#line 389 "libmemcached/options/parser.yy"
+ { ;}
break;
case 53:
/* Line 1464 of yacc.c */
#line 394 "libmemcached/options/parser.yy"
{
- (yyval.hash)= MEMCACHED_HASH_CRC;
+ (yyval.hash)= MEMCACHED_HASH_MD5;
;}
break;
/* Line 1464 of yacc.c */
#line 398 "libmemcached/options/parser.yy"
{
- (yyval.hash)= MEMCACHED_HASH_FNV1_64;
+ (yyval.hash)= MEMCACHED_HASH_CRC;
;}
break;
/* Line 1464 of yacc.c */
#line 402 "libmemcached/options/parser.yy"
{
- (yyval.hash)= MEMCACHED_HASH_FNV1A_64;
+ (yyval.hash)= MEMCACHED_HASH_FNV1_64;
;}
break;
/* Line 1464 of yacc.c */
#line 406 "libmemcached/options/parser.yy"
{
- (yyval.hash)= MEMCACHED_HASH_FNV1_32;
+ (yyval.hash)= MEMCACHED_HASH_FNV1A_64;
;}
break;
/* Line 1464 of yacc.c */
#line 410 "libmemcached/options/parser.yy"
{
- (yyval.hash)= MEMCACHED_HASH_FNV1A_32;
+ (yyval.hash)= MEMCACHED_HASH_FNV1_32;
;}
break;
/* Line 1464 of yacc.c */
#line 414 "libmemcached/options/parser.yy"
{
- (yyval.hash)= MEMCACHED_HASH_HSIEH;
+ (yyval.hash)= MEMCACHED_HASH_FNV1A_32;
;}
break;
/* Line 1464 of yacc.c */
#line 418 "libmemcached/options/parser.yy"
{
- (yyval.hash)= MEMCACHED_HASH_MURMUR;
+ (yyval.hash)= MEMCACHED_HASH_HSIEH;
;}
break;
/* Line 1464 of yacc.c */
#line 422 "libmemcached/options/parser.yy"
{
- (yyval.hash)= MEMCACHED_HASH_JENKINS;
+ (yyval.hash)= MEMCACHED_HASH_MURMUR;
;}
break;
case 61:
/* Line 1464 of yacc.c */
-#line 429 "libmemcached/options/parser.yy"
+#line 426 "libmemcached/options/parser.yy"
{
- (yyval.string)= (yyvsp[(1) - (1)].string);
+ (yyval.hash)= MEMCACHED_HASH_JENKINS;
;}
break;
/* Line 1464 of yacc.c */
#line 433 "libmemcached/options/parser.yy"
{
- (yyval.string).c_str= (yyvsp[(1) - (1)].string).c_str +1; // +1 to move use passed the initial quote
- (yyval.string).length= (yyvsp[(1) - (1)].string).length -1; // -1 removes the end quote
+ (yyval.string)= (yyvsp[(1) - (1)].string);
;}
break;
case 63:
/* Line 1464 of yacc.c */
-#line 441 "libmemcached/options/parser.yy"
+#line 437 "libmemcached/options/parser.yy"
{
- (yyval.distribution)= MEMCACHED_DISTRIBUTION_CONSISTENT;
+ (yyval.string).c_str= (yyvsp[(1) - (1)].string).c_str +1; // +1 to move use passed the initial quote
+ (yyval.string).size= (yyvsp[(1) - (1)].string).size -2; // -2 removes the begin and end quote
;}
break;
/* Line 1464 of yacc.c */
#line 445 "libmemcached/options/parser.yy"
{
- (yyval.distribution)= MEMCACHED_DISTRIBUTION_MODULA;
+ (yyval.distribution)= MEMCACHED_DISTRIBUTION_CONSISTENT;
;}
break;
/* Line 1464 of yacc.c */
#line 449 "libmemcached/options/parser.yy"
+ {
+ (yyval.distribution)= MEMCACHED_DISTRIBUTION_MODULA;
+ ;}
+ break;
+
+ case 66:
+
+/* Line 1464 of yacc.c */
+#line 453 "libmemcached/options/parser.yy"
{
(yyval.distribution)= MEMCACHED_DISTRIBUTION_RANDOM;
;}
/* Line 1464 of yacc.c */
-#line 2092 "libmemcached/options/parser.cc"
+#line 2103 "libmemcached/options/parser.cc"
default: break;
}
YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
/* Line 1684 of yacc.c */
-#line 454 "libmemcached/options/parser.yy"
+#line 458 "libmemcached/options/parser.yy"
void Context::start()