callback.h   callback.h 
skipping to change at line 335 skipping to change at line 335
* @param cookie id of the client receiving the command * @param cookie id of the client receiving the command
* @param response_handler to send the result back to the client, but * @param response_handler to send the result back to the client, but
* don't send reply on success! * don't send reply on success!
* *
*/ */
protocol_binary_response_status (*version)(const void *cookie, protocol_binary_response_status (*version)(const void *cookie,
memcached_binary_protocol_ver sion_response_handler response_handler); memcached_binary_protocol_ver sion_response_handler response_handler);
} memcached_binary_protocol_callback_v1_st; } memcached_binary_protocol_callback_v1_st;
/** /**
* * The version numbers for the different callback structures.
*/
typedef enum {
/** Version 0 is a lowlevel interface that tries to maximize your freedo
m */
MEMCACHED_PROTOCOL_HANDLER_V0= 0,
/**
* Version 1 abstracts more of the protocol details, and let you work at
* a logical level
*/
MEMCACHED_PROTOCOL_HANDLER_V1= 1,
} memcached_protocol_interface_version_t;
/**
* Definition of the protocol callback structure.
*/ */
typedef struct { typedef struct {
/** /**
* The interface version used (set to 0 if you don't have any specialize * The interface version you provide callbacks for.
d
* command handlers).
*/ */
uint64_t interface_version; memcached_protocol_interface_version_t interface_version;
/** /**
* Callback fired just before the command will be executed. * Callback fired just before the command will be executed.
* *
* @param cookie id of the client receiving the command * @param cookie id of the client receiving the command
* @param header the command header as received on the wire. If you look * @param header the command header as received on the wire. If you look
* at the content you <b>must</b> ensure that you don't * at the content you <b>must</b> ensure that you don't
* try to access beyond the end of the message. * try to access beyond the end of the message.
*/ */
void (*pre_execute)(const void *cookie, void (*pre_execute)(const void *cookie,
 End of changes. 3 change blocks. 
5 lines changed or deleted 17 lines changed or added


 memcached.h   memcached.h 
skipping to change at line 36 skipping to change at line 36
#include <libmemcached/memcached_server.h> #include <libmemcached/memcached_server.h>
#include <libmemcached/memcached_string.h> #include <libmemcached/memcached_string.h>
#include <libmemcached/memcached_result.h> #include <libmemcached/memcached_result.h>
#include <libmemcached/memcached_storage.h> #include <libmemcached/memcached_storage.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
#define MEMCACHED_VERSION_STRING_LENGTH 24 #define MEMCACHED_VERSION_STRING_LENGTH 24
#define LIBMEMCACHED_VERSION_STRING "0.34" #define LIBMEMCACHED_VERSION_STRING "0.35"
struct memcached_analysis_st { struct memcached_analysis_st {
uint32_t average_item_size; uint32_t average_item_size;
uint32_t longest_uptime; uint32_t longest_uptime;
uint32_t least_free_server; uint32_t least_free_server;
uint32_t most_consumed_server; uint32_t most_consumed_server;
uint32_t oldest_server; uint32_t oldest_server;
double pool_hit_ratio; double pool_hit_ratio;
uint64_t most_used_bytes; uint64_t most_used_bytes;
uint64_t least_remaining_bytes; uint64_t least_remaining_bytes;
skipping to change at line 116 skipping to change at line 116
memcached_clone_func on_clone; memcached_clone_func on_clone;
memcached_cleanup_func on_cleanup; memcached_cleanup_func on_cleanup;
memcached_free_function call_free; memcached_free_function call_free;
memcached_malloc_function call_malloc; memcached_malloc_function call_malloc;
memcached_realloc_function call_realloc; memcached_realloc_function call_realloc;
memcached_calloc_function call_calloc; memcached_calloc_function call_calloc;
memcached_trigger_key get_key_failure; memcached_trigger_key get_key_failure;
memcached_trigger_delete_key delete_trigger; memcached_trigger_delete_key delete_trigger;
char prefix_key[MEMCACHED_PREFIX_KEY_MAX_SIZE]; char prefix_key[MEMCACHED_PREFIX_KEY_MAX_SIZE];
uint32_t number_of_replicas; uint32_t number_of_replicas;
memcached_callback_st *callbacks;
}; };
LIBMEMCACHED_API LIBMEMCACHED_API
memcached_return memcached_version(memcached_st *ptr); memcached_return memcached_version(memcached_st *ptr);
/* Public API */ /* Public API */
LIBMEMCACHED_API LIBMEMCACHED_API
const char * memcached_lib_version(void); const char * memcached_lib_version(void);
skipping to change at line 146 skipping to change at line 147
LIBMEMCACHED_API LIBMEMCACHED_API
memcached_return memcached_increment(memcached_st *ptr, memcached_return memcached_increment(memcached_st *ptr,
const char *key, size_t key_length, const char *key, size_t key_length,
uint32_t offset, uint32_t offset,
uint64_t *value); uint64_t *value);
LIBMEMCACHED_API LIBMEMCACHED_API
memcached_return memcached_decrement(memcached_st *ptr, memcached_return memcached_decrement(memcached_st *ptr,
const char *key, size_t key_length, const char *key, size_t key_length,
uint32_t offset, uint32_t offset,
uint64_t *value); uint64_t *value);
LIBMEMCACHED_API
memcached_return memcached_increment_by_key(memcached_st *ptr,
const char *master_key, size_t
master_key_length,
const char *key, size_t key_len
gth,
uint64_t offset,
uint64_t *value);
LIBMEMCACHED_API
memcached_return memcached_decrement_by_key(memcached_st *ptr,
const char *master_key, size_t
master_key_length,
const char *key, size_t key_len
gth,
uint64_t offset,
uint64_t *value);
LIBMEMCACHED_API LIBMEMCACHED_API
memcached_return memcached_increment_with_initial(memcached_st *ptr, memcached_return memcached_increment_with_initial(memcached_st *ptr,
const char *key, const char *key,
size_t key_length, size_t key_length,
uint64_t offset, uint64_t offset,
uint64_t initial, uint64_t initial,
time_t expiration, time_t expiration,
uint64_t *value); uint64_t *value);
LIBMEMCACHED_API LIBMEMCACHED_API
memcached_return memcached_decrement_with_initial(memcached_st *ptr, memcached_return memcached_decrement_with_initial(memcached_st *ptr,
const char *key, const char *key,
size_t key_length, size_t key_length,
uint64_t offset, uint64_t offset,
uint64_t initial, uint64_t initial,
time_t expiration, time_t expiration,
uint64_t *value); uint64_t *value);
LIBMEMCACHED_API LIBMEMCACHED_API
memcached_return memcached_increment_with_initial_by_key(memcached_st *ptr,
const char *master
_key,
size_t master_key_
length,
const char *key,
size_t key_length,
uint64_t offset,
uint64_t initial,
time_t expiration,
uint64_t *value);
LIBMEMCACHED_API
memcached_return memcached_decrement_with_initial_by_key(memcached_st *ptr,
const char *master
_key,
size_t master_key_
length,
const char *key,
size_t key_length,
uint64_t offset,
uint64_t initial,
time_t expiration,
uint64_t *value);
LIBMEMCACHED_API
void memcached_stat_free(memcached_st *, memcached_stat_st *); void memcached_stat_free(memcached_st *, memcached_stat_st *);
LIBMEMCACHED_API LIBMEMCACHED_API
memcached_stat_st *memcached_stat(memcached_st *ptr, char *args, memcached_ return *error); memcached_stat_st *memcached_stat(memcached_st *ptr, char *args, memcached_ return *error);
LIBMEMCACHED_API LIBMEMCACHED_API
memcached_return memcached_stat_servername(memcached_stat_st *memc_stat, ch ar *args, memcached_return memcached_stat_servername(memcached_stat_st *memc_stat, ch ar *args,
char *hostname, unsigned int por t); char *hostname, unsigned int por t);
LIBMEMCACHED_API LIBMEMCACHED_API
memcached_return memcached_flush(memcached_st *ptr, time_t expiration); memcached_return memcached_flush(memcached_st *ptr, time_t expiration);
LIBMEMCACHED_API LIBMEMCACHED_API
memcached_return memcached_verbosity(memcached_st *ptr, unsigned int verbos ity); memcached_return memcached_verbosity(memcached_st *ptr, unsigned int verbos ity);
 End of changes. 4 change blocks. 
1 lines changed or deleted 45 lines changed or added


 memcached.hpp   memcached.hpp 
skipping to change at line 239 skipping to change at line 239
size_t key_length= 0; size_t key_length= 0;
memcached_return rc; memcached_return rc;
uint32_t flags= 0; uint32_t flags= 0;
char *value= memcached_fetch(&memc, ret_key, &key_length, char *value= memcached_fetch(&memc, ret_key, &key_length,
&value_length, &flags, &rc); &value_length, &flags, &rc);
if (value && ret_val.empty()) if (value && ret_val.empty())
{ {
ret_val.reserve(value_length); ret_val.reserve(value_length);
ret_val.assign(value, value + value_length); ret_val.assign(value, value + value_length);
key.assign(ret_key); key.assign(ret_key);
free(value);
} }
else if (value)
{
free(value);
}
return rc; return rc;
} }
/** /**
* Fetches an individual value from the server. * Fetches an individual value from the server.
* *
* @param[in] key key of object whose value to get * @param[in] key key of object whose value to get
* @param[out] ret_val object that is retrieved is stored in * @param[out] ret_val object that is retrieved is stored in
* this vector * this vector
* @return true on success; false otherwise * @return true on success; false otherwise
skipping to change at line 268 skipping to change at line 274
if (key.empty()) if (key.empty())
{ {
throw(Error("the key supplied is empty!", false)); throw(Error("the key supplied is empty!", false));
} }
char *value= memcached_get(&memc, key.c_str(), key.length(), char *value= memcached_get(&memc, key.c_str(), key.length(),
&value_length, &flags, &rc); &value_length, &flags, &rc);
if (value != NULL && ret_val.empty()) if (value != NULL && ret_val.empty())
{ {
ret_val.reserve(value_length); ret_val.reserve(value_length);
ret_val.assign(value, value + value_length); ret_val.assign(value, value + value_length);
free(value);
return true; return true;
} }
return false; return false;
} }
/** /**
* Fetches an individual from a server which is specified by * Fetches an individual from a server which is specified by
* the master_key parameter that is used for determining which * the master_key parameter that is used for determining which
* server an object was stored in if key partitioning was * server an object was stored in if key partitioning was
* used for storage. * used for storage.
skipping to change at line 305 skipping to change at line 312
throw(Error("the master key or key supplied is empty!", false)); throw(Error("the master key or key supplied is empty!", false));
} }
char *value= memcached_get_by_key(&memc, char *value= memcached_get_by_key(&memc,
master_key.c_str(), master_key.length (), master_key.c_str(), master_key.length (),
key.c_str(), key.length(), key.c_str(), key.length(),
&value_length, &flags, &rc); &value_length, &flags, &rc);
if (value) if (value)
{ {
ret_val.reserve(value_length); ret_val.reserve(value_length);
ret_val.assign(value, value + value_length); ret_val.assign(value, value + value_length);
free(value);
return true; return true;
} }
return false; return false;
} }
/** /**
* Selects multiple keys at once. This method always * Selects multiple keys at once. This method always
* works asynchronously. * works asynchronously.
* *
* @param[in] keys vector of keys to select * @param[in] keys vector of keys to select
skipping to change at line 919 skipping to change at line 927
* Get the library version string. * Get the library version string.
* @return std::string containing a copy of the library version string. * @return std::string containing a copy of the library version string.
*/ */
const std::string libVersion() const const std::string libVersion() const
{ {
const char *ver= memcached_lib_version(); const char *ver= memcached_lib_version();
const std::string version(ver); const std::string version(ver);
return version; return version;
} }
/**
* Retrieve memcached statistics. Populate a std::map with the retrieved
* stats. Each server will map to another std::map of the key:value stats
.
*
* @param[out] stats_map a std::map to be populated with the memcached
* stats
* @return true on success; false otherwise
*/
bool getStats(std::map< std::string, std::map<std::string, std::string> >
&stats_map)
{
memcached_return rc;
memcached_stat_st *stats= memcached_stat(&memc, NULL, &rc);
if (rc != MEMCACHED_SUCCESS &&
rc != MEMCACHED_SOME_ERRORS)
{
return false;
}
uint32_t server_count= memcached_server_count(&memc);
/*
* For each memcached server, construct a std::map for its stats and ad
d
* it to the std::map of overall stats.
*/
for (uint32_t x= 0; x < server_count; x++)
{
std::ostringstream strstm;
std::string server_name(memcached_server_name(&memc, servers[x]));
server_name.append(":");
strstm << memcached_server_port(&memc, servers[x]);
server_name.append(strstm.str());
std::map<std::string, std::string> server_stats;
char **list= NULL;
char **ptr= NULL;
list= memcached_stat_get_keys(&memc, &stats[x], &rc);
for (ptr= list; *ptr; ptr++)
{
char *value= memcached_stat_get_value(&memc, &stats[x], *ptr, &rc);
server_stats[*ptr]= value;
free(value);
}
stats_map[server_name]= server_stats;
free(list);
}
memcached_stat_free(&memc, stats);
return true;
}
private: private:
std::string servers_list; std::string servers_list;
memcached_st memc; memcached_st memc;
memcached_server_st *servers; memcached_server_st *servers;
memcached_result_st result; memcached_result_st result;
}; };
} }
 End of changes. 5 change blocks. 
0 lines changed or deleted 64 lines changed or added


 memcached_constants.h   memcached_constants.h 
skipping to change at line 66 skipping to change at line 66
MEMCACHED_NOT_SUPPORTED, MEMCACHED_NOT_SUPPORTED,
MEMCACHED_NO_KEY_PROVIDED, /* Deprecated. Use MEMCACHED_BAD_KEY_PROVIDED! */ MEMCACHED_NO_KEY_PROVIDED, /* Deprecated. Use MEMCACHED_BAD_KEY_PROVIDED! */
MEMCACHED_FETCH_NOTFINISHED, MEMCACHED_FETCH_NOTFINISHED,
MEMCACHED_TIMEOUT, MEMCACHED_TIMEOUT,
MEMCACHED_BUFFERED, MEMCACHED_BUFFERED,
MEMCACHED_BAD_KEY_PROVIDED, MEMCACHED_BAD_KEY_PROVIDED,
MEMCACHED_INVALID_HOST_PROTOCOL, MEMCACHED_INVALID_HOST_PROTOCOL,
MEMCACHED_SERVER_MARKED_DEAD, MEMCACHED_SERVER_MARKED_DEAD,
MEMCACHED_UNKNOWN_STAT_KEY, MEMCACHED_UNKNOWN_STAT_KEY,
MEMCACHED_E2BIG, MEMCACHED_E2BIG,
MEMCACHED_INVALID_ARGUMENTS,
MEMCACHED_MAXIMUM_RETURN /* Always add new error code before */ MEMCACHED_MAXIMUM_RETURN /* Always add new error code before */
} memcached_return; } memcached_return;
typedef enum { typedef enum {
MEMCACHED_DISTRIBUTION_MODULA, MEMCACHED_DISTRIBUTION_MODULA,
MEMCACHED_DISTRIBUTION_CONSISTENT, MEMCACHED_DISTRIBUTION_CONSISTENT,
MEMCACHED_DISTRIBUTION_CONSISTENT_KETAMA, MEMCACHED_DISTRIBUTION_CONSISTENT_KETAMA,
MEMCACHED_DISTRIBUTION_RANDOM MEMCACHED_DISTRIBUTION_RANDOM,
MEMCACHED_DISTRIBUTION_CONSISTENT_KETAMA_SPY
} memcached_server_distribution; } memcached_server_distribution;
typedef enum { typedef enum {
MEMCACHED_BEHAVIOR_NO_BLOCK, MEMCACHED_BEHAVIOR_NO_BLOCK,
MEMCACHED_BEHAVIOR_TCP_NODELAY, MEMCACHED_BEHAVIOR_TCP_NODELAY,
MEMCACHED_BEHAVIOR_HASH, MEMCACHED_BEHAVIOR_HASH,
MEMCACHED_BEHAVIOR_KETAMA, MEMCACHED_BEHAVIOR_KETAMA,
MEMCACHED_BEHAVIOR_SOCKET_SEND_SIZE, MEMCACHED_BEHAVIOR_SOCKET_SEND_SIZE,
MEMCACHED_BEHAVIOR_SOCKET_RECV_SIZE, MEMCACHED_BEHAVIOR_SOCKET_RECV_SIZE,
MEMCACHED_BEHAVIOR_CACHE_LOOKUPS, MEMCACHED_BEHAVIOR_CACHE_LOOKUPS,
skipping to change at line 106 skipping to change at line 108
MEMCACHED_BEHAVIOR_SND_TIMEOUT, MEMCACHED_BEHAVIOR_SND_TIMEOUT,
MEMCACHED_BEHAVIOR_RCV_TIMEOUT, MEMCACHED_BEHAVIOR_RCV_TIMEOUT,
MEMCACHED_BEHAVIOR_SERVER_FAILURE_LIMIT, MEMCACHED_BEHAVIOR_SERVER_FAILURE_LIMIT,
MEMCACHED_BEHAVIOR_IO_MSG_WATERMARK, MEMCACHED_BEHAVIOR_IO_MSG_WATERMARK,
MEMCACHED_BEHAVIOR_IO_BYTES_WATERMARK, MEMCACHED_BEHAVIOR_IO_BYTES_WATERMARK,
MEMCACHED_BEHAVIOR_IO_KEY_PREFETCH, MEMCACHED_BEHAVIOR_IO_KEY_PREFETCH,
MEMCACHED_BEHAVIOR_HASH_WITH_PREFIX_KEY, MEMCACHED_BEHAVIOR_HASH_WITH_PREFIX_KEY,
MEMCACHED_BEHAVIOR_NOREPLY, MEMCACHED_BEHAVIOR_NOREPLY,
MEMCACHED_BEHAVIOR_USE_UDP, MEMCACHED_BEHAVIOR_USE_UDP,
MEMCACHED_BEHAVIOR_AUTO_EJECT_HOSTS, MEMCACHED_BEHAVIOR_AUTO_EJECT_HOSTS,
MEMCACHED_BEHAVIOR_NUMBER_OF_REPLICAS MEMCACHED_BEHAVIOR_NUMBER_OF_REPLICAS,
MEMCACHED_BEHAVIOR_KETAMA_COMPAT_MODE
} memcached_behavior; } memcached_behavior;
#define MEMCACHED_KETAMA_COMPAT_LIBMEMCACHED 0
#define MEMCACHED_KETAMA_COMPAT_SPY 1
typedef enum { typedef enum {
MEMCACHED_CALLBACK_PREFIX_KEY = 0, MEMCACHED_CALLBACK_PREFIX_KEY = 0,
MEMCACHED_CALLBACK_USER_DATA = 1, MEMCACHED_CALLBACK_USER_DATA = 1,
MEMCACHED_CALLBACK_CLEANUP_FUNCTION = 2, MEMCACHED_CALLBACK_CLEANUP_FUNCTION = 2,
MEMCACHED_CALLBACK_CLONE_FUNCTION = 3, MEMCACHED_CALLBACK_CLONE_FUNCTION = 3,
#ifdef MEMCACHED_ENABLE_DEPRECATED #ifdef MEMCACHED_ENABLE_DEPRECATED
MEMCACHED_CALLBACK_MALLOC_FUNCTION = 4, MEMCACHED_CALLBACK_MALLOC_FUNCTION = 4,
MEMCACHED_CALLBACK_REALLOC_FUNCTION = 5, MEMCACHED_CALLBACK_REALLOC_FUNCTION = 5,
MEMCACHED_CALLBACK_FREE_FUNCTION = 6, MEMCACHED_CALLBACK_FREE_FUNCTION = 6,
#endif #endif
 End of changes. 4 change blocks. 
2 lines changed or deleted 8 lines changed or added


 memcached_get.h   memcached_get.h 
/* /*
* Summary: Get functions for libmemcached * Summary: Get functions for libmemcached
* *
* Copy: See Copyright for the status of this software. * Copy: See Copyright for the status of this software.
* *
* Author: Brian Aker * Author: Brian Aker
*/ */
#ifndef __MEMCACHED_GET_H__ #ifndef LIBMEMCACHED_MEMCACHED_GET_H
#define __MEMCACHED_GET_H__ #define LIBMEMCACHED_MEMCACHED_GET_H
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
/* Public defines */ /* Public defines */
LIBMEMCACHED_API LIBMEMCACHED_API
char *memcached_get(memcached_st *ptr, char *memcached_get(memcached_st *ptr,
const char *key, size_t key_length, const char *key, size_t key_length,
size_t *value_length, size_t *value_length,
uint32_t *flags, uint32_t *flags,
memcached_return *error); memcached_return *error);
LIBMEMCACHED_API LIBMEMCACHED_API
memcached_return memcached_mget(memcached_st *ptr, memcached_return memcached_mget(memcached_st *ptr,
const char **keys, size_t *key_length, const char * const *keys,
const size_t *key_length,
size_t number_of_keys); size_t number_of_keys);
LIBMEMCACHED_API LIBMEMCACHED_API
char *memcached_get_by_key(memcached_st *ptr, char *memcached_get_by_key(memcached_st *ptr,
const char *master_key, size_t master_key_length , const char *master_key, size_t master_key_length ,
const char *key, size_t key_length, const char *key, size_t key_length,
size_t *value_length, size_t *value_length,
uint32_t *flags, uint32_t *flags,
memcached_return *error); memcached_return *error);
LIBMEMCACHED_API LIBMEMCACHED_API
memcached_return memcached_mget_by_key(memcached_st *ptr, memcached_return memcached_mget_by_key(memcached_st *ptr,
const char *master_key, size_t const char *master_key, size_t
master_key_length, master_key_length,
const char **keys, const char * const *keys,
size_t *key_length, const size_t *key_length,
size_t number_of_keys); size_t number_of_keys);
LIBMEMCACHED_API LIBMEMCACHED_API
char *memcached_fetch(memcached_st *ptr, char *memcached_fetch(memcached_st *ptr,
char *key, size_t *key_length, char *key, size_t *key_length,
size_t *value_length, uint32_t *flags, size_t *value_length, uint32_t *flags,
memcached_return *error); memcached_return *error);
LIBMEMCACHED_API LIBMEMCACHED_API
memcached_result_st *memcached_fetch_result(memcached_st *ptr, memcached_result_st *memcached_fetch_result(memcached_st *ptr,
memcached_result_st *result, memcached_result_st *result,
memcached_return *error); memcached_return *error);
LIBMEMCACHED_API
memcached_return memcached_mget_execute(memcached_st *ptr,
const char * const *keys,
const size_t *key_length,
size_t number_of_keys,
memcached_execute_function *callbac
k,
void *context,
unsigned int number_of_callbacks);
LIBMEMCACHED_API
memcached_return memcached_mget_execute_by_key(memcached_st *ptr,
const char *master_key,
size_t master_key_length,
const char * const *keys,
const size_t *key_length,
size_t number_of_keys,
memcached_execute_function *
callback,
void *context,
unsigned int number_of_callb
acks);
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
#endif /* __MEMCACHED_GET_H__ */ #endif /* LIBMEMCACHED_MEMCACHED_GET_H */
 End of changes. 5 change blocks. 
5 lines changed or deleted 29 lines changed or added


 memcached_types.h   memcached_types.h 
/* /*
* Summary: Typpes for libmemcached * Summary: Typpes for libmemcached
* *
* Copy: See Copyright for the status of this software. * Copy: See Copyright for the status of this software.
* *
* Author: Brian Aker * Author: Brian Aker
*/ */
#ifndef __MEMCACHED_TYPES_H__ #ifndef LIBMEMCACHED_MEMCACHED_TYPES_H
#define __MEMCACHED_TYPES_H__ #define LIBMEMCACHED_MEMCACHED_TYPES_H
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
typedef struct memcached_st memcached_st; typedef struct memcached_st memcached_st;
typedef struct memcached_stat_st memcached_stat_st; typedef struct memcached_stat_st memcached_stat_st;
typedef struct memcached_analysis_st memcached_analysis_st; typedef struct memcached_analysis_st memcached_analysis_st;
typedef struct memcached_result_st memcached_result_st; typedef struct memcached_result_st memcached_result_st;
typedef struct memcached_string_st memcached_string_st; typedef struct memcached_string_st memcached_string_st;
skipping to change at line 40 skipping to change at line 40
typedef memcached_return (*memcached_server_function)(memcached_st *ptr, me mcached_server_st *server, void *context); typedef memcached_return (*memcached_server_function)(memcached_st *ptr, me mcached_server_st *server, void *context);
typedef memcached_return (*memcached_trigger_key)(memcached_st *ptr, typedef memcached_return (*memcached_trigger_key)(memcached_st *ptr,
const char *key, size_t k ey_length, const char *key, size_t k ey_length,
memcached_result_st *resu lt); memcached_result_st *resu lt);
typedef memcached_return (*memcached_trigger_delete_key)(memcached_st *ptr, typedef memcached_return (*memcached_trigger_delete_key)(memcached_st *ptr,
const char *key, s ize_t key_length); const char *key, s ize_t key_length);
typedef memcached_return (*memcached_dump_func)(memcached_st *ptr, typedef memcached_return (*memcached_dump_func)(memcached_st *ptr,
const char *key, size_t key _length, void *context); const char *key, size_t key _length, void *context);
typedef struct {
memcached_execute_function *callback;
void *context;
unsigned int number_of_callback;
} memcached_callback_st;
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
#endif /* __MEMCACHED_TYPES_H__ */ #endif /* LIBMEMCACHED_MEMCACHED_TYPES_H */
 End of changes. 3 change blocks. 
2 lines changed or deleted 8 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/