+behaviors:
+ PREFIX_KEY '=' string
+ {
+ if ((context->rc= memcached_callback_set(context->memc, MEMCACHED_CALLBACK_PREFIX_KEY, std::string($3.c_str, $3.length).c_str())) != MEMCACHED_SUCCESS)
+ {
+ YYERROR;
+ }
+ }
+ | DISTRIBUTION '=' distribution
+ {
+ if ((context->rc= memcached_behavior_set(context->memc, MEMCACHED_BEHAVIOR_DISTRIBUTION, $3)) != MEMCACHED_SUCCESS)
+ {
+ YYERROR;
+ }
+ }
+ | HASH '=' hash
+ {
+ if ((context->rc= memcached_behavior_set(context->memc, MEMCACHED_BEHAVIOR_HASH, $3)) != MEMCACHED_SUCCESS)
+ {
+ YYERROR;
+ }
+ }
+ | KETAMA_HASH '=' hash
+ {
+ if ((context->rc= memcached_behavior_set(context->memc, MEMCACHED_BEHAVIOR_KETAMA_HASH, $3)) != MEMCACHED_SUCCESS)
+ {
+ YYERROR;
+ }
+ }
+ | behavior_number '=' NUMBER
+ {
+ if ((context->rc= memcached_behavior_set(context->memc, $1, $3)) != MEMCACHED_SUCCESS)
+ {
+ YYERROR;
+ }
+ }
+ | behavior_boolean
+ {
+ if ((context->rc= memcached_behavior_set(context->memc, $1, true)) != MEMCACHED_SUCCESS)
+ {
+ YYERROR;
+ }
+ }
+ | USER_DATA
+ {
+ }
+ ;
+
+behavior_number:
+ CONNECT_TIMEOUT
+ {
+ $$= MEMCACHED_BEHAVIOR_CONNECT_TIMEOUT;
+ }
+ | IO_MSG_WATERMARK
+ {
+ $$= MEMCACHED_BEHAVIOR_IO_MSG_WATERMARK;
+ }
+ | IO_BYTES_WATERMARK
+ {
+ $$= MEMCACHED_BEHAVIOR_IO_BYTES_WATERMARK;
+ }
+ | IO_KEY_PREFETCH
+ {
+ $$= MEMCACHED_BEHAVIOR_IO_KEY_PREFETCH;
+ }
+ | NUMBER_OF_REPLICAS
+ {
+ $$= MEMCACHED_BEHAVIOR_NUMBER_OF_REPLICAS;
+ }
+ | POLL_TIMEOUT
+ {
+ $$= MEMCACHED_BEHAVIOR_POLL_TIMEOUT;
+ }
+ | RCV_TIMEOUT
+ {
+ $$= MEMCACHED_BEHAVIOR_RCV_TIMEOUT;
+ }
+ | RETRY_TIMEOUT
+ {
+ $$= MEMCACHED_BEHAVIOR_RETRY_TIMEOUT;
+ }
+ | SERVER_FAILURE_LIMIT
+ {
+ $$= MEMCACHED_BEHAVIOR_SERVER_FAILURE_LIMIT;
+ }
+ | SND_TIMEOUT
+ {
+ $$= MEMCACHED_BEHAVIOR_SND_TIMEOUT;
+ }
+ | SOCKET_RECV_SIZE
+ {
+ $$= MEMCACHED_BEHAVIOR_SOCKET_RECV_SIZE;
+ }
+ | SOCKET_SEND_SIZE
+ {
+ $$= MEMCACHED_BEHAVIOR_SOCKET_SEND_SIZE;
+ }
+ ;
+
+behavior_boolean:
+ AUTO_EJECT_HOSTS
+ {
+ $$= MEMCACHED_BEHAVIOR_AUTO_EJECT_HOSTS;
+ }
+ | BINARY_PROTOCOL
+ {
+ $$= MEMCACHED_BEHAVIOR_BINARY_PROTOCOL;
+ }
+ | BUFFER_REQUESTS
+ {
+ $$= MEMCACHED_BEHAVIOR_BUFFER_REQUESTS;
+ }
+ | CACHE_LOOKUPS
+ {
+ $$= MEMCACHED_BEHAVIOR_CACHE_LOOKUPS;
+ }
+ | _CORK
+ {
+ $$= MEMCACHED_BEHAVIOR_CORK;
+ }
+ | HASH_WITH_PREFIX_KEY
+ {
+ $$= MEMCACHED_BEHAVIOR_HASH_WITH_PREFIX_KEY;
+ }
+ | KETAMA
+ {
+ $$= MEMCACHED_BEHAVIOR_KETAMA;
+ }
+ | KETAMA_WEIGHTED
+ {
+ $$= MEMCACHED_BEHAVIOR_KETAMA_WEIGHTED;
+ }
+ | NOREPLY
+ {
+ $$= MEMCACHED_BEHAVIOR_NOREPLY;
+ }
+ | RANDOMIZE_REPLICA_READ
+ {
+ $$= MEMCACHED_BEHAVIOR_RANDOMIZE_REPLICA_READ;
+ }
+ | SORT_HOSTS
+ {
+ $$= MEMCACHED_BEHAVIOR_SORT_HOSTS;
+ }
+ | SUPPORT_CAS
+ {
+ $$= MEMCACHED_BEHAVIOR_SUPPORT_CAS;
+ }
+ | _TCP_NODELAY
+ {
+ $$= MEMCACHED_BEHAVIOR_TCP_NODELAY;
+ }
+ | _TCP_KEEPALIVE
+ {
+ $$= MEMCACHED_BEHAVIOR_TCP_KEEPALIVE;
+ }
+ | _TCP_KEEPIDLE
+ {
+ $$= MEMCACHED_BEHAVIOR_TCP_KEEPIDLE;
+ }
+ | USE_UDP
+ {
+ $$= MEMCACHED_BEHAVIOR_USE_UDP;
+ }
+ | VERIFY_KEY
+ {
+ $$= MEMCACHED_BEHAVIOR_VERIFY_KEY;
+ }
+
+