+void memcached_server_list_free(memcached_server_st *ptr);
+memcached_return memcached_server_push(memcached_st *ptr, memcached_server_st *list);
+
+memcached_server_st *memcached_server_list_append(memcached_server_st *ptr,
+ char *hostname, unsigned int port,
+ memcached_return *error);
+unsigned int memcached_server_list_count(memcached_server_st *ptr);
+memcached_server_st *memcached_servers_parse(char *server_strings);
+
+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);
+
+char *memcached_get_by_key(memcached_st *ptr,
+ char *master_key, size_t master_key_length,
+ char *key, size_t key_length,
+ size_t *value_length,
+ uint32_t *flags,
+ memcached_return *error);
+
+memcached_return memcached_mget_by_key(memcached_st *ptr,
+ char *master_key, size_t master_key_length,
+ char **keys, size_t *key_length,
+ unsigned int number_of_keys);
+
+memcached_return memcached_set_by_key(memcached_st *ptr,
+ char *master_key, size_t master_key_length,
+ char *key, size_t key_length,
+ char *value, size_t value_length,
+ time_t expiration,
+ uint32_t flags);
+
+memcached_return memcached_add_by_key(memcached_st *ptr,
+ char *master_key, size_t master_key_length,
+ char *key, size_t key_length,
+ char *value, size_t value_length,
+ time_t expiration,
+ uint32_t flags);
+
+memcached_return memcached_replace_by_key(memcached_st *ptr,
+ char *master_key, size_t master_key_length,
+ char *key, size_t key_length,
+ char *value, size_t value_length,
+ time_t expiration,
+ uint32_t flags);
+
+memcached_return memcached_prepend_by_key(memcached_st *ptr,
+ char *master_key, size_t master_key_length,
+ char *key, size_t key_length,
+ char *value, size_t value_length,
+ time_t expiration,
+ uint32_t flags);
+
+memcached_return memcached_append_by_key(memcached_st *ptr,
+ char *master_key, size_t master_key_length,
+ char *key, size_t key_length,
+ char *value, size_t value_length,
+ time_t expiration,
+ uint32_t flags);
+
+memcached_return memcached_cas_by_key(memcached_st *ptr,
+ char *master_key, size_t master_key_length,
+ char *key, size_t key_length,
+ char *value, size_t value_length,
+ time_t expiration,
+ uint32_t flags,
+ uint64_t cas);
+memcached_return memcached_delete_by_key(memcached_st *ptr,
+ char *master_key, size_t master_key_length,
+ char *key, size_t key_length,
+ time_t expiration);
+
+memcached_return memcached_fetch_execute(memcached_st *ptr,
+ unsigned int (*callback[])(memcached_st *ptr, memcached_result_st *result, void *context),
+ void *context,
+ unsigned int number_of_callbacks
+ );
+
+memcached_return memcached_callback_set(memcached_st *ptr,
+ memcached_callback flag,
+ void *data);
+void *memcached_callback_get(memcached_st *ptr,
+ memcached_callback flag,
+ memcached_return *error);
+
+/* 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", __FILE__, __LINE__, memcached_strerror(NULL, A));fflush(stdout);
+#define WATCHPOINT_IFERROR(A) if(A != MEMCACHED_SUCCESS)fprintf(stderr, "\nWATCHPOINT %s:%d %s\n", __FILE__, __LINE__, memcached_strerror(NULL, A));fflush(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));A= 0;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__ */