-memcached_return memcached_do(memcached_server_st *ptr, const void *commmand,
- size_t command_length, uint8_t with_flush);
-memcached_return memcached_version(memcached_st *ptr);
-memcached_return value_fetch(memcached_server_st *ptr,
- char *buffer,
- memcached_result_st *result);
-void server_list_free(memcached_st *ptr, memcached_server_st *servers);
-
-memcached_return memcachd_key_test(char **keys, size_t *key_length,
- unsigned int number_of_keys);
-
-memcached_return run_distribution(memcached_st *ptr);
+// These are private
+#define memcached_is_allocated(__object) ((__object)->options.is_allocated)
+#define memcached_is_initialized(__object) ((__object)->options.is_initialized)
+#define memcached_is_purging(__object) ((__object)->state.is_purging)
+#define memcached_is_processing_input(__object) ((__object)->state.is_processing_input)
+#define memcached_set_purging(__object, __value) ((__object)->state.is_purging= (__value))
+#define memcached_set_processing_input(__object, __value) ((__object)->state.is_processing_input= (__value))
+#define memcached_set_initialized(__object, __value) ((__object)->options.is_initialized(= (__value))
+#define memcached_set_allocated(__object, __value) ((__object)->options.is_allocated(= (__value))
+
+
+LIBMEMCACHED_LOCAL
+memcached_return_t memcached_do(memcached_server_instance_st *ptr, const void *commmand,
+ size_t command_length, uint8_t with_flush);
+LIBMEMCACHED_LOCAL
+memcached_return_t value_fetch(memcached_server_instance_st *ptr,
+ char *buffer,
+ memcached_result_st *result);
+LIBMEMCACHED_LOCAL
+void server_list_free(memcached_st *ptr, memcached_server_instance_st *servers);
+
+LIBMEMCACHED_LOCAL
+memcached_return_t memcached_key_test(const char * const *keys,
+ const size_t *key_length,
+ size_t number_of_keys);
+
+
+LIBMEMCACHED_LOCAL
+uint32_t generate_hash(memcached_st *ptr, const char *key, size_t key_length);