/* LibMemcached
- * Copyright (C) 2006-2009 Brian Aker
+ * Copyright (C) 2006-2009 Brian Aker
* All rights reserved.
*
* Use and distribution licensed under the BSD license. See
{
if (ptr == NULL)
{
- ptr= (memcached_server_st *)calloc(1, sizeof(memcached_server_st));
+ ptr= (memcached_server_st *)memc->call_calloc(memc, 1, sizeof(memcached_server_st));
if (!ptr)
return NULL; /* MEMCACHED_MEMORY_ALLOCATION_FAILURE */
if (ptr == NULL)
return NULL;
- rv = memcached_server_create_with(ptr->root, clone,
- ptr->hostname, ptr->port, ptr->weight,
- ptr->type);
+ rv= memcached_server_create_with(ptr->root, clone,
+ ptr->hostname, ptr->port, ptr->weight,
+ ptr->type);
if (rv != NULL)
{
rv->cached_errno= ptr->cached_errno;
void *context,
uint32_t number_of_callbacks)
{
- unsigned int y;
+ uint32_t y;
- for (y= 0; y < ptr->number_of_hosts; y++)
+ for (y= 0; y < memcached_server_count(ptr); y++)
{
- unsigned int x;
+ uint32_t x;
+ memcached_server_instance_st *instance=
+ memcached_server_instance_fetch(ptr, y);
for (x= 0; x < number_of_callbacks; x++)
{
unsigned int iferror;
- iferror= (*callback[x])(ptr, &ptr->hosts[y], context);
+ iferror= (*callback[x])(ptr, instance, context);
if (iferror)
continue;
memcached_server_st *memcached_server_by_key(memcached_st *ptr, const char *key, size_t key_length, memcached_return_t *error)
{
uint32_t server_key;
+ memcached_server_instance_st *instance;
*error= memcached_validate_key_length(key_length,
ptr->flags.binary_protocol);
unlikely (*error != MEMCACHED_SUCCESS)
return NULL;
- unlikely (ptr->number_of_hosts == 0)
+ unlikely (memcached_server_count(ptr) == 0)
{
*error= MEMCACHED_NO_SERVERS;
return NULL;
}
server_key= memcached_generate_hash(ptr, key, key_length);
+ instance= memcached_server_instance_fetch(ptr, server_key);
- return memcached_server_clone(NULL, &ptr->hosts[server_key]);
+ return memcached_server_clone(NULL, instance);
}
const char *memcached_server_error(memcached_server_st *ptr)
{
- if (ptr)
- return ptr->cached_server_error;
- else
- return NULL;
+ return ptr
+ ? ptr->cached_server_error
+ : NULL;
}
void memcached_server_error_reset(memcached_server_st *ptr)
{
return ptr->last_disconnected_server;
}
+
+uint32_t memcached_server_list_count(memcached_server_st *ptr)
+{
+ return (ptr == NULL)
+ ? 0
+ : memcached_servers_count(ptr);
+}
+
+void memcached_server_list_free(memcached_server_st *ptr)
+{
+ server_list_free(NULL, ptr);
+}