#define HUGE_STRING_LEN 8196
#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_BUFFER HUGE_STRING_LEN*4
typedef enum {
MEMCACHED_SUCCESS,
MEMCACHED_END,
MEMCACHED_DELETED,
MEMCACHED_VALUE,
+ MEMCACHED_STAT,
+ MEMCACHED_ERRNO,
MEMCACHED_MAXIMUM_RETURN, /* Always add new error code before */
} memcached_return;
typedef enum {
MEMCACHED_BEHAVIOR_NO_BLOCK,
- MEMCACHED_BEHAVIOR_BLOCK,
MEMCACHED_BEHAVIOR_TCP_NODELAY,
- MEMCACHED_BEHAVIOR_TCP_DELAY,
+ MEMCACHED_BEHAVIOR_MD5_HASHING,
+ MEMCACHED_BEHAVIOR_KETAMA,
} memcached_behavior;
typedef enum {
char *hostname;
unsigned int port;
int fd;
+ unsigned int stack_responses;
+ unsigned int cursor_active;
};
struct memcached_stat_st {
unsigned int limit_maxbytes;
};
-#define MEM_NO_BLOCK (1 << 0)
-#define MEM_TCP_NODELAY (1 << 1)
-#define MEM_REUSE_MEMORY (1 << 2)
-
struct memcached_string_st {
char *string;
char *end;
size_t write_buffer_offset;
char connected;
int my_errno;
- unsigned int stack_responses;
unsigned long long flags;
memcached_return warning; /* Future Use */
};
void memcached_quit(memcached_st *ptr);
char *memcached_strerror(memcached_st *ptr, memcached_return rc);
memcached_return memcached_behavior_set(memcached_st *ptr, memcached_behavior flag, void *data);
+unsigned long long memcached_behavior_get(memcached_st *ptr, memcached_behavior flag);
/* All of the functions for adding data to the server */
memcached_return memcached_set(memcached_st *ptr, char *key, size_t key_length,
#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_increment(A,B) A->hosts[B].stack_responses++
+#define memcached_server_response_decrement(A,B) A->hosts[B].stack_responses--
+#define memcached_server_response_count(A,B) A->hosts[B].stack_responses
memcached_return memcached_server_add(memcached_st *ptr, char *hostname,
unsigned int port);
unsigned int memcached_server_list_count(memcached_server_st *ptr);
memcached_server_st *memcached_servers_parse(char *server_strings);
-/* These are all private, do not use. */
-memcached_return memcached_connect(memcached_st *ptr);
-memcached_return memcached_response(memcached_st *ptr,
- char *buffer, size_t buffer_length,
- unsigned int server_key);
-unsigned int memcached_generate_hash(char *key, size_t key_length);
-char *memcached_stat_get_value(memcached_st *ptr, memcached_stat_st *stat,
- char *key, memcached_return *error);
-char ** memcached_stat_get_keys(memcached_st *ptr, memcached_stat_st *stat,
- memcached_return *error);
-
-
/* String Struct */
#define memcached_string_length(A, B) (size_t)(B->end - B->string)
#define memcached_string_size(A, B) B->current_size
memcached_return memcached_string_reset(memcached_st *ptr, memcached_string_st *string);
void memcached_string_free(memcached_st *ptr, memcached_string_st *string);
+char *memcached_stat_get_value(memcached_st *ptr, memcached_stat_st *stat,
+ char *key, memcached_return *error);
+char ** memcached_stat_get_keys(memcached_st *ptr, memcached_stat_st *stat,
+ memcached_return *error);
+
/* Some personal debugging functions */
#define WATCHPOINT printf("\nWATCHPOINT %s:%d (%s)\n", __FILE__, __LINE__,__func__);fflush(stdout);
#define WATCHPOINT_ERROR(A) printf("\nWATCHPOINT %s:%d %s\n", __FILE__, __LINE__, memcached_strerror(NULL, A));fflush(stdout);