Use bool instead of bool:1 if your compiler doesn't create correct code
[awesomized/libmemcached] / libmemcached / common.h
index 895c5a403494e5ce2ba206cd4663f245cc11cbe6..719a3a945e451e9be219486482820278c55f70e3 100644 (file)
@@ -13,8 +13,8 @@
   Common include file for libmemached
 */
 
-#ifndef LIBMEMCACHED_COMMON_H
-#define LIBMEMCACHED_COMMON_H
+#ifndef __LIBMEMCACHED_COMMON_H__
+#define __LIBMEMCACHED_COMMON_H__
 
 #include "config.h"
 
@@ -57,6 +57,7 @@
 typedef struct memcached_server_st memcached_server_instance_st;
 
 /* These are private not to be installed headers */
+#include "libmemcached/do.h"
 #include "libmemcached/io.h"
 #include "libmemcached/internal.h"
 #include "libmemcached/libmemcached_probes.h"
@@ -95,34 +96,33 @@ typedef enum {
 #define SMALL_STRING_LEN 1024
 #define HUGE_STRING_LEN 8196
 
-/* Hashing algo */
-
-LIBMEMCACHED_LOCAL
-void md5_signature(const unsigned char *key, unsigned int length, unsigned char *result);
-LIBMEMCACHED_LOCAL
-uint32_t hash_crc32(const char *data,
-                    size_t data_len);
-#ifdef HAVE_HSIEH_HASH
-LIBMEMCACHED_LOCAL
-uint32_t hsieh_hash(const char *key, size_t key_length);
+#ifdef __cplusplus
+extern "C" {
 #endif
-LIBMEMCACHED_LOCAL
-uint32_t murmur_hash(const char *key, size_t key_length);
-LIBMEMCACHED_LOCAL
-uint32_t jenkins_hash(const void *key, size_t length, uint32_t initval);
 
 LIBMEMCACHED_LOCAL
 memcached_return_t memcached_connect(memcached_server_instance_st *ptr);
 LIBMEMCACHED_LOCAL
 void memcached_quit_server(memcached_server_instance_st *ptr, uint8_t io_death);
 
+LIBMEMCACHED_LOCAL
+memcached_return_t run_distribution(memcached_st *ptr);
+
 #define memcached_server_response_increment(A) (A)->cursor_active++
 #define memcached_server_response_decrement(A) (A)->cursor_active--
 #define memcached_server_response_reset(A) (A)->cursor_active=0
 
-LIBMEMCACHED_LOCAL
-memcached_return_t memcached_do(memcached_server_instance_st *ptr, const void *commmand,
-                                size_t command_length, uint8_t with_flush);
+// 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 value_fetch(memcached_server_instance_st *ptr,
                                char *buffer,
@@ -199,4 +199,28 @@ static inline memcached_ternary_t test_cork(memcached_server_st *ptr, int enable
 #endif
 }
 
-#endif /* LIBMEMCACHED_COMMON_H */
+static inline void libmemcached_free(const memcached_st *ptr, void *mem)
+{
+  ptr->allocators.free(ptr, mem, ptr->allocators.context);
+}
+
+static inline void *libmemcached_malloc(const memcached_st *ptr, const size_t size)
+{
+  return ptr->allocators.malloc(ptr, size, ptr->allocators.context);
+}
+
+static inline void *libmemcached_realloc(const memcached_st *ptr, void *mem, const size_t size)
+{
+  return ptr->allocators.realloc(ptr, mem, size, ptr->allocators.context);
+}
+
+static inline void *libmemcached_calloc(const memcached_st *ptr, size_t nelem, size_t size)
+{
+  return ptr->allocators.calloc(ptr, nelem, size, ptr->allocators.context);
+}
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __LIBMEMCACHED_COMMON_H__ */