memcached.h   memcached.h 
skipping to change at line 18 skipping to change at line 18
*/ */
#ifndef __MEMCACHED_H__ #ifndef __MEMCACHED_H__
#define __MEMCACHED_H__ #define __MEMCACHED_H__
#include <stdlib.h> #include <stdlib.h>
#include <inttypes.h> #include <inttypes.h>
#include <sys/types.h> #include <sys/types.h>
#include <netinet/in.h> #include <netinet/in.h>
#include <libmemcached/libmemcached_config.h>
#include <libmemcached/memcached_constants.h>
#include <libmemcached/memcached_types.h>
#include <libmemcached/memcached_watchpoint.h>
#include <libmemcached/memcached_server.h>
#include <libmemcached/memcached_string.h>
#include <libmemcached/memcached_result.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
/* These are Private and should not be used by applications */ /* These are Private and should not be used by applications */
#define MEMCACHED_VERSION_STRING_LENGTH 12 #define MEMCACHED_VERSION_STRING_LENGTH 12
/* Public defines */ /* Public defines */
#define MEMCACHED_DEFAULT_PORT 11211 #define MEMCACHED_DEFAULT_PORT 11211
#define MEMCACHED_MAX_KEY 251 /* We add one to have it null terminated */ #define MEMCACHED_MAX_KEY 251 /* We add one to have it null terminated */
#define MEMCACHED_MAX_BUFFER 8196 #define MEMCACHED_MAX_BUFFER 8196
#define MEMCACHED_MAX_HOST_LENGTH 64 #define MEMCACHED_MAX_HOST_LENGTH 64
#define MEMCACHED_WHEEL_SIZE 1024 #define MEMCACHED_WHEEL_SIZE 1024
#define MEMCACHED_STRIDE 4 #define MEMCACHED_STRIDE 4
#define MEMCACHED_DEFAULT_TIMEOUT INT32_MAX #define MEMCACHED_DEFAULT_TIMEOUT INT32_MAX
/* string value */ /* string value */
#define LIBMEMCACHED_VERSION_STRING "0.17" #define LIBMEMCACHED_VERSION_STRING "0.18"
typedef enum {
MEMCACHED_SUCCESS,
MEMCACHED_FAILURE,
MEMCACHED_HOST_LOOKUP_FAILURE,
MEMCACHED_CONNECTION_FAILURE,
MEMCACHED_CONNECTION_BIND_FAILURE,
MEMCACHED_WRITE_FAILURE,
MEMCACHED_READ_FAILURE,
MEMCACHED_UNKNOWN_READ_FAILURE,
MEMCACHED_PROTOCOL_ERROR,
MEMCACHED_CLIENT_ERROR,
MEMCACHED_SERVER_ERROR,
MEMCACHED_CONNECTION_SOCKET_CREATE_FAILURE,
MEMCACHED_DATA_EXISTS,
MEMCACHED_DATA_DOES_NOT_EXIST,
MEMCACHED_NOTSTORED,
MEMCACHED_STORED,
MEMCACHED_NOTFOUND,
MEMCACHED_MEMORY_ALLOCATION_FAILURE,
MEMCACHED_PARTIAL_READ,
MEMCACHED_SOME_ERRORS,
MEMCACHED_NO_SERVERS,
MEMCACHED_END,
MEMCACHED_DELETED,
MEMCACHED_VALUE,
MEMCACHED_STAT,
MEMCACHED_ERRNO,
MEMCACHED_FAIL_UNIX_SOCKET,
MEMCACHED_NOT_SUPPORTED,
MEMCACHED_NO_KEY_PROVIDED,
MEMCACHED_FETCH_NOTFINISHED,
MEMCACHED_TIMEOUT,
MEMCACHED_BUFFERED,
MEMCACHED_BAD_KEY_PROVIDED,
MEMCACHED_MAXIMUM_RETURN, /* Always add new error code before */
} memcached_return;
typedef struct memcached_st memcached_st;
typedef struct memcached_stat_st memcached_stat_st;
typedef struct memcached_result_st memcached_result_st;
typedef struct memcached_string_st memcached_string_st;
typedef struct memcached_server_st memcached_server_st;
typedef memcached_return (*memcached_clone_func)(memcached_st *parent, memc
ached_st *clone);
typedef memcached_return (*memcached_cleanup_func)(memcached_st *ptr);
typedef void (*memcached_free_function)(memcached_st *ptr, void *mem);
typedef void *(*memcached_malloc_function)(memcached_st *ptr, const size_t
size);
typedef void *(*memcached_realloc_function)(memcached_st *ptr, void *mem, c
onst size_t size);
typedef memcached_return (*memcached_execute_function)(memcached_st *ptr, m
emcached_result_st *result, void *context);
typedef memcached_return (*memcached_server_function)(memcached_st *ptr, me
mcached_server_st *server, void *context);
typedef enum {
MEMCACHED_DISTRIBUTION_MODULA,
MEMCACHED_DISTRIBUTION_CONSISTENT,
} memcached_server_distribution;
typedef enum {
MEMCACHED_BEHAVIOR_NO_BLOCK,
MEMCACHED_BEHAVIOR_TCP_NODELAY,
MEMCACHED_BEHAVIOR_HASH,
MEMCACHED_BEHAVIOR_KETAMA,
MEMCACHED_BEHAVIOR_SOCKET_SEND_SIZE,
MEMCACHED_BEHAVIOR_SOCKET_RECV_SIZE,
MEMCACHED_BEHAVIOR_CACHE_LOOKUPS,
MEMCACHED_BEHAVIOR_SUPPORT_CAS,
MEMCACHED_BEHAVIOR_POLL_TIMEOUT,
MEMCACHED_BEHAVIOR_DISTRIBUTION,
MEMCACHED_BEHAVIOR_BUFFER_REQUESTS,
MEMCACHED_BEHAVIOR_SORT_HOSTS,
MEMCACHED_BEHAVIOR_VERIFY_KEY,
MEMCACHED_BEHAVIOR_CONNECT_TIMEOUT,
} memcached_behavior;
typedef enum {
MEMCACHED_CALLBACK_USER_DATA,
MEMCACHED_CALLBACK_CLEANUP_FUNCTION,
MEMCACHED_CALLBACK_CLONE_FUNCTION,
MEMCACHED_CALLBACK_MALLOC_FUNCTION,
MEMCACHED_CALLBACK_REALLOC_FUNCTION,
MEMCACHED_CALLBACK_FREE_FUNCTION,
} memcached_callback;
typedef enum {
MEMCACHED_HASH_DEFAULT= 0,
MEMCACHED_HASH_MD5,
MEMCACHED_HASH_CRC,
MEMCACHED_HASH_FNV1_64,
MEMCACHED_HASH_FNV1A_64,
MEMCACHED_HASH_FNV1_32,
MEMCACHED_HASH_FNV1A_32,
MEMCACHED_HASH_KETAMA,
MEMCACHED_HASH_HSIEH,
} memcached_hash;
typedef enum {
MEMCACHED_CONNECTION_UNKNOWN,
MEMCACHED_CONNECTION_TCP,
MEMCACHED_CONNECTION_UDP,
MEMCACHED_CONNECTION_UNIX_SOCKET,
} memcached_connection;
typedef enum {
MEMCACHED_NOT_ALLOCATED,
MEMCACHED_ALLOCATED,
MEMCACHED_USED,
} memcached_allocated;
struct memcached_server_st {
char hostname[MEMCACHED_MAX_HOST_LENGTH];
unsigned int port;
int fd;
int cached_errno;
unsigned int cursor_active;
char write_buffer[MEMCACHED_MAX_BUFFER];
size_t write_buffer_offset;
char read_buffer[MEMCACHED_MAX_BUFFER];
size_t read_data_length;
size_t read_buffer_length;
char *read_ptr;
memcached_allocated sockaddr_inited;
struct addrinfo *address_info;
memcached_connection type;
uint8_t major_version;
uint8_t minor_version;
uint8_t micro_version;
uint16_t count;
memcached_st *root;
};
struct memcached_stat_st { struct memcached_stat_st {
uint32_t pid; uint32_t pid;
uint32_t uptime; uint32_t uptime;
uint32_t threads; uint32_t threads;
uint32_t time; uint32_t time;
uint32_t pointer_size; uint32_t pointer_size;
uint32_t rusage_user_seconds; uint32_t rusage_user_seconds;
uint32_t rusage_user_microseconds; uint32_t rusage_user_microseconds;
uint32_t rusage_system_seconds; uint32_t rusage_system_seconds;
skipping to change at line 192 skipping to change at line 72
uint64_t cmd_get; uint64_t cmd_get;
uint64_t cmd_set; uint64_t cmd_set;
uint64_t get_hits; uint64_t get_hits;
uint64_t get_misses; uint64_t get_misses;
uint64_t evictions; uint64_t evictions;
uint64_t bytes_read; uint64_t bytes_read;
uint64_t bytes_written; uint64_t bytes_written;
char version[MEMCACHED_VERSION_STRING_LENGTH]; char version[MEMCACHED_VERSION_STRING_LENGTH];
}; };
struct memcached_string_st {
memcached_st *root;
memcached_allocated is_allocated;
char *string;
char *end;
size_t current_size;
size_t block_size;
};
struct memcached_result_st {
memcached_allocated is_allocated;
memcached_st *root;
char key[MEMCACHED_MAX_KEY];
size_t key_length;
memcached_string_st value;
uint32_t flags;
uint64_t cas;
/* Add result callback function */
};
struct memcached_st { struct memcached_st {
memcached_allocated is_allocated; memcached_allocated is_allocated;
memcached_server_st *hosts; memcached_server_st *hosts;
unsigned int number_of_hosts; unsigned int number_of_hosts;
unsigned int cursor_server; unsigned int cursor_server;
int cached_errno; int cached_errno;
uint32_t flags; uint32_t flags;
int send_size; int send_size;
int recv_size; int recv_size;
int32_t poll_timeout; int32_t poll_timeout;
int32_t connect_timeout; int32_t connect_timeout;
int32_t retry_timeout;
memcached_result_st result; memcached_result_st result;
memcached_hash hash; memcached_hash hash;
memcached_server_distribution distribution; memcached_server_distribution distribution;
void *user_data; void *user_data;
unsigned int wheel[MEMCACHED_WHEEL_SIZE]; unsigned int wheel[MEMCACHED_WHEEL_SIZE];
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;
skipping to change at line 313 skipping to change at line 174
char **keys, size_t *key_length, char **keys, size_t *key_length,
unsigned int number_of_keys); unsigned int number_of_keys);
char *memcached_fetch(memcached_st *ptr, char *key, size_t *key_length, char *memcached_fetch(memcached_st *ptr, 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);
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);
/* Server Public functions */ /* Server Public functions */
#define memcached_server_count(A) (A)->number_of_hosts
#define memcached_server_name(A,B) (B).hostname
#define memcached_server_port(A,B) (B).port
#define memcached_server_list(A) (A)->hosts
#define memcached_server_response_count(A) (A)->cursor_active
memcached_return memcached_server_add_udp(memcached_st *ptr, memcached_return memcached_server_add_udp(memcached_st *ptr,
char *hostname, char *hostname,
unsigned int port); unsigned int port);
memcached_return memcached_server_add_unix_socket(memcached_st *ptr, memcached_return memcached_server_add_unix_socket(memcached_st *ptr,
char *filename); char *filename);
memcached_return memcached_server_add(memcached_st *ptr, char *hostname, memcached_return memcached_server_add(memcached_st *ptr, char *hostname,
unsigned int port); unsigned int port);
void memcached_server_list_free(memcached_server_st *ptr); void memcached_server_list_free(memcached_server_st *ptr);
memcached_return memcached_server_push(memcached_st *ptr, memcached_server_ st *list); memcached_return memcached_server_push(memcached_st *ptr, memcached_server_ st *list);
skipping to change at line 417 skipping to change at line 273
void *data); void *data);
void *memcached_callback_get(memcached_st *ptr, void *memcached_callback_get(memcached_st *ptr,
memcached_callback flag, memcached_callback flag,
memcached_return *error); memcached_return *error);
memcached_return memcached_server_cursor(memcached_st *ptr, memcached_return memcached_server_cursor(memcached_st *ptr,
memcached_server_function *callbac k, memcached_server_function *callbac k,
void *context, void *context,
unsigned int number_of_callbacks); unsigned int number_of_callbacks);
/* Result Struct */
void memcached_result_free(memcached_result_st *result);
memcached_result_st *memcached_result_create(memcached_st *ptr,
memcached_result_st *result);
#define memcached_result_key_value(A) (A)->key
#define memcached_result_key_length(A) (A)->key_length
#ifdef FIX
#define memcached_result_value(A) memcached_string_value((A)->value)
#define memcached_result_length(A) memcached_string_length((A)->value)
#else
char *memcached_result_value(memcached_result_st *ptr);
size_t memcached_result_length(memcached_result_st *ptr);
#endif
#define memcached_result_flags(A) (A)->flags
#define memcached_result_cas(A) (A)->cas
#ifndef __WATCHPOINT_H__
#define __WATCHPOINT_H__
/* Some personal debugging functions */
#ifdef HAVE_DEBUG
#define WATCHPOINT fprintf(stderr, "\nWATCHPOINT %s:%d (%s)\n", __FILE__, _
_LINE__,__func__);fflush(stdout);
#ifdef __MEMCACHED_H__
#define WATCHPOINT_ERROR(A) fprintf(stderr, "\nWATCHPOINT %s:%d %s\n", __FI
LE__, __LINE__, memcached_strerror(NULL, A));fflush(stdout);
#define WATCHPOINT_IFERROR(A) if(A != MEMCACHED_SUCCESS)fprintf(stderr, "\n
WATCHPOINT %s:%d %s\n", __FILE__, __LINE__, memcached_strerror(NULL, A));ff
lush(stdout);
#endif
#define WATCHPOINT_STRING(A) fprintf(stderr, "\nWATCHPOINT %s:%d (%s) %s\n"
, __FILE__, __LINE__,__func__,A);fflush(stdout);
#define WATCHPOINT_STRING_LENGTH(A,B) fprintf(stderr, "\nWATCHPOINT %s:%d (
%s) %.*s\n", __FILE__, __LINE__,__func__,(int)B,A);fflush(stdout);
#define WATCHPOINT_NUMBER(A) fprintf(stderr, "\nWATCHPOINT %s:%d (%s) %zu\n
", __FILE__, __LINE__,__func__,(size_t)(A));fflush(stdout);
#define WATCHPOINT_ERRNO(A) fprintf(stderr, "\nWATCHPOINT %s:%d (%s) %s\n",
__FILE__, __LINE__,__func__, strerror(A));fflush(stdout);
#define WATCHPOINT_ASSERT(A) assert((A));
#else
#define WATCHPOINT
#ifdef __MEMCACHED_H__
#define WATCHPOINT_ERROR(A)
#define WATCHPOINT_IFERROR(A)
#endif
#define WATCHPOINT_STRING(A)
#define WATCHPOINT_NUMBER(A)
#define WATCHPOINT_ERRNO(A)
#define WATCHPOINT_ASSERT(A)
#endif
#endif /* __WATCHPOINT_H__ */
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
#endif /* __MEMCACHED_H__ */ #endif /* __MEMCACHED_H__ */
 End of changes. 6 change blocks. 
211 lines changed or deleted 10 lines changed or added


 memcached.hh   memcached.hh 
skipping to change at line 22 skipping to change at line 22
public: public:
Memcached() Memcached()
{ {
memcached_create(&memc); memcached_create(&memc);
} }
Memcached(memcached_st *clone) Memcached(memcached_st *clone)
{ {
WATCHPOINT;
memcached_clone(&memc, clone); memcached_clone(&memc, clone);
WATCHPOINT;
} }
char *get(char *key, size_t *value_length) char *get(char *key, size_t *value_length)
{ {
uint32_t flags; uint32_t flags;
memcached_return rc; memcached_return rc;
return memcached_get(&memc, key, strlen(key), return memcached_get(&memc, key, strlen(key),
value_length, &flags, &rc); value_length, &flags, &rc);
} }
 End of changes. 2 change blocks. 
2 lines changed or deleted 0 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/