const size_t *key_length,
size_t number_of_keys,
bool mget_mode);
-
-char *memcached_get_by_key(memcached_st *ptr,
+char *memcached_get_by_key(memcached_st *shell,
const char *group_key,
size_t group_key_length,
const char *key, size_t key_length,
uint32_t *flags,
memcached_return_t *error)
{
+ Memcached* ptr= memcached2Memcached(shell);
memcached_return_t unused;
if (error == NULL)
{
bool mget_mode)
{
bool failures_occured_in_sending= false;
- const char *get_command= "get ";
- uint8_t get_command_length= 4;
+ const char *get_command= "get";
+ uint8_t get_command_length= 3;
unsigned int master_server_key= (unsigned int)-1; /* 0 is a valid server id! */
memcached_return_t rc;
*/
for (uint32_t x= 0; x < memcached_server_count(ptr); x++)
{
- memcached_server_write_instance_st instance= memcached_server_instance_fetch(ptr, x);
+ org::libmemcached::Instance* instance= memcached_instance_fetch(ptr, x);
- if (memcached_server_response_count(instance))
+ if (instance->response_count())
{
char buffer[MEMCACHED_DEFAULT_COMMAND_SIZE];
memcached_io_write(instance);
}
- while(memcached_server_response_count(instance))
+ while(instance->response_count())
{
(void)memcached_response(instance, buffer, MEMCACHED_DEFAULT_COMMAND_SIZE, &ptr->result);
}
if (ptr->flags.support_cas)
{
- get_command= "gets ";
- get_command_length= 5;
+ get_command= "gets";
+ get_command_length= 4;
}
/*
size_t hosts_connected= 0;
for (uint32_t x= 0; x < number_of_keys; x++)
{
- memcached_server_write_instance_st instance;
uint32_t server_key;
if (is_group_key_set)
server_key= memcached_generate_hash_with_redistribution(ptr, keys[x], key_length[x]);
}
- instance= memcached_server_instance_fetch(ptr, server_key);
+ org::libmemcached::Instance* instance= memcached_instance_fetch(ptr, server_key);
libmemcached_io_vector_st vector[]=
{
{ get_command, get_command_length },
+ { memcached_literal_param(" ") },
{ memcached_array_string(ptr->_namespace), memcached_array_size(ptr->_namespace) },
- { keys[x], key_length[x] },
- { memcached_literal_param(" ") }
+ { keys[x], key_length[x] }
};
- if (memcached_server_response_count(instance) == 0)
+ if (instance->response_count() == 0)
{
rc= memcached_connect(instance);
}
hosts_connected++;
- if ((memcached_io_writev(instance, vector, 4, false)) == false)
+ if ((memcached_io_writev(instance, vector, 1, false)) == false)
{
failures_occured_in_sending= true;
continue;
}
- WATCHPOINT_ASSERT(instance->cursor_active == 0);
- memcached_server_response_increment(instance);
- WATCHPOINT_ASSERT(instance->cursor_active == 1);
+ WATCHPOINT_ASSERT(instance->cursor_active_ == 0);
+ memcached_instance_response_increment(instance);
+ WATCHPOINT_ASSERT(instance->cursor_active_ == 1);
}
- else
+
{
if ((memcached_io_writev(instance, (vector + 1), 3, false)) == false)
{
- memcached_server_response_reset(instance);
+ memcached_instance_response_reset(instance);
failures_occured_in_sending= true;
continue;
}
bool success_happened= false;
for (uint32_t x= 0; x < memcached_server_count(ptr); x++)
{
- memcached_server_write_instance_st instance=
- memcached_server_instance_fetch(ptr, x);
+ org::libmemcached::Instance* instance= memcached_instance_fetch(ptr, x);
- if (memcached_server_response_count(instance))
+ if (instance->response_count())
{
/* We need to do something about non-connnected hosts in the future */
if ((memcached_io_write(instance, "\r\n", 2, true)) == -1)
return MEMCACHED_FAILURE; // Complete failure occurred
}
-memcached_return_t memcached_mget_by_key(memcached_st *ptr,
+memcached_return_t memcached_mget_by_key(memcached_st *shell,
const char *group_key,
size_t group_key_length,
const char * const *keys,
const size_t *key_length,
size_t number_of_keys)
{
+ Memcached* ptr= memcached2Memcached(shell);
return memcached_mget_by_key_real(ptr, group_key, group_key_length, keys,
key_length, number_of_keys, true);
}
context, number_of_callbacks);
}
-memcached_return_t memcached_mget_execute_by_key(memcached_st *ptr,
+memcached_return_t memcached_mget_execute_by_key(memcached_st *shell,
const char *group_key,
size_t group_key_length,
const char * const *keys,
void *context,
unsigned int number_of_callbacks)
{
+ Memcached* ptr= memcached2Memcached(shell);
memcached_return_t rc;
if (memcached_failed(rc= initialize_query(ptr, false)))
{
server_key= memcached_generate_hash_with_redistribution(ptr, keys[x], key_length[x]);
}
- memcached_server_write_instance_st instance= memcached_server_instance_fetch(ptr, server_key);
+ org::libmemcached::Instance* instance= memcached_instance_fetch(ptr, server_key);
- if (memcached_server_response_count(instance) == 0)
+ if (instance->response_count() == 0)
{
rc= memcached_connect(instance);
if (memcached_failed(rc))
}
protocol_binary_request_getk request= { }; //= {.bytes= {0}};
- request.message.header.request.magic= PROTOCOL_BINARY_REQ;
+ initialize_binary_request(instance, request.message.header);
if (mget_mode)
{
request.message.header.request.opcode= PROTOCOL_BINARY_CMD_GETKQ;
Send a noop command to flush the buffers
*/
protocol_binary_request_noop request= {}; //= {.bytes= {0}};
- request.message.header.request.magic= PROTOCOL_BINARY_REQ;
request.message.header.request.opcode= PROTOCOL_BINARY_CMD_NOOP;
request.message.header.request.datatype= PROTOCOL_BINARY_RAW_BYTES;
for (uint32_t x= 0; x < memcached_server_count(ptr); ++x)
{
- memcached_server_write_instance_st instance= memcached_server_instance_fetch(ptr, x);
+ org::libmemcached::Instance* instance= memcached_instance_fetch(ptr, x);
+ initialize_binary_request(instance, request.message.header);
- if (memcached_server_response_count(instance))
+ if (instance->response_count())
{
if (memcached_io_write(instance) == false)
{
- memcached_server_response_reset(instance);
+ memcached_instance_response_reset(instance);
memcached_io_reset(instance);
rc= MEMCACHED_SOME_ERRORS;
}
if (memcached_io_write(instance, request.bytes,
sizeof(request.bytes), true) == -1)
{
- memcached_server_response_reset(instance);
+ memcached_instance_response_reset(instance);
memcached_io_reset(instance);
rc= MEMCACHED_SOME_ERRORS;
}
continue;
}
- memcached_server_write_instance_st instance= memcached_server_instance_fetch(ptr, server);
+ org::libmemcached::Instance* instance= memcached_instance_fetch(ptr, server);
- if (memcached_server_response_count(instance) == 0)
+ if (instance->response_count() == 0)
{
rc= memcached_connect(instance);
}
protocol_binary_request_getk request= {};
- request.message.header.request.magic= PROTOCOL_BINARY_REQ;
+ initialize_binary_request(instance, request.message.header);
request.message.header.request.opcode= PROTOCOL_BINARY_CMD_GETK;
request.message.header.request.keylen= htons((uint16_t)(key_length[x] + memcached_array_size(ptr->_namespace)));
request.message.header.request.datatype= PROTOCOL_BINARY_RAW_BYTES;