X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=libmemcached%2Ftypes.h;h=b3d8f4791f9c2a54a21a937cc3422208ebafc5ee;hb=fd151d70d25ba4cae4f90a1e57435a8cc72e9c09;hp=e01a47ebc9c7baf6f70035bbb33a3f74d618df69;hpb=c38f53f67c27b36858e456fcb86a725d5c27b977;p=m6w6%2Flibmemcached diff --git a/libmemcached/types.h b/libmemcached/types.h index e01a47eb..b3d8f479 100644 --- a/libmemcached/types.h +++ b/libmemcached/types.h @@ -9,46 +9,71 @@ * */ -#ifndef LIBMEMCACHED_MEMCACHED_TYPES_H -#define LIBMEMCACHED_MEMCACHED_TYPES_H - -#ifdef __cplusplus -extern "C" { -#endif +#pragma once +#ifndef __LIBMEMCACHED_TYPES_H__ +#define __LIBMEMCACHED_TYPES_H__ typedef struct memcached_st memcached_st; typedef struct memcached_stat_st memcached_stat_st; typedef struct memcached_analysis_st memcached_analysis_st; typedef struct memcached_result_st memcached_result_st; -typedef struct memcached_string_st memcached_string_st; +typedef struct memcached_array_st memcached_array_st; +typedef struct memcached_error_t memcached_error_t; + +// All of the flavors of memcache_server_st typedef struct memcached_server_st memcached_server_st; +typedef const struct memcached_server_st *memcached_server_instance_st; +typedef struct memcached_server_st *memcached_server_list_st; + +typedef struct memcached_callback_st memcached_callback_st; + +// The following two structures are internal, and never exposed to users. +typedef struct memcached_string_st memcached_string_st; +typedef struct memcached_string_t memcached_string_t; typedef struct memcached_continuum_item_st memcached_continuum_item_st; -typedef memcached_return_t (*memcached_clone_fn)(memcached_st *parent, memcached_st *clone); -typedef memcached_return_t (*memcached_cleanup_fn)(memcached_st *ptr); -typedef void (*memcached_free_fn)(memcached_st *ptr, void *mem); -typedef void *(*memcached_malloc_fn)(memcached_st *ptr, const size_t size); -typedef void *(*memcached_realloc_fn)(memcached_st *ptr, void *mem, const size_t size); -typedef void *(*memcached_calloc_fn)(memcached_st *ptr, size_t nelem, const size_t elsize); -typedef memcached_return_t (*memcached_execute_fn)(memcached_st *ptr, memcached_result_st *result, void *context); -typedef memcached_return_t (*memcached_server_fn)(memcached_st *ptr, memcached_server_st *server, void *context); -typedef memcached_return_t (*memcached_trigger_key_fn)(memcached_st *ptr, + + +#ifdef __cplusplus +extern "C" { +#endif + +typedef memcached_return_t (*memcached_clone_fn)(memcached_st *destination, const memcached_st *source); +typedef memcached_return_t (*memcached_cleanup_fn)(const memcached_st *ptr); + +/** + Memory allocation functions. +*/ +typedef void (*memcached_free_fn)(const memcached_st *ptr, void *mem, void *context); +typedef void *(*memcached_malloc_fn)(const memcached_st *ptr, const size_t size, void *context); +typedef void *(*memcached_realloc_fn)(const memcached_st *ptr, void *mem, const size_t size, void *context); +typedef void *(*memcached_calloc_fn)(const memcached_st *ptr, size_t nelem, const size_t elsize, void *context); + + +typedef memcached_return_t (*memcached_execute_fn)(const memcached_st *ptr, memcached_result_st *result, void *context); +typedef memcached_return_t (*memcached_server_fn)(const memcached_st *ptr, memcached_server_instance_st server, void *context); +typedef memcached_return_t (*memcached_stat_fn)(memcached_server_instance_st server, + const char *key, size_t key_length, + const char *value, size_t value_length, + void *context); + +/** + Trigger functions. +*/ +typedef memcached_return_t (*memcached_trigger_key_fn)(const memcached_st *ptr, const char *key, size_t key_length, memcached_result_st *result); -typedef memcached_return_t (*memcached_trigger_delete_key_fn)(memcached_st *ptr, +typedef memcached_return_t (*memcached_trigger_delete_key_fn)(const memcached_st *ptr, const char *key, size_t key_length); -typedef memcached_return_t (*memcached_dump_fn)(memcached_st *ptr, +typedef memcached_return_t (*memcached_dump_fn)(const memcached_st *ptr, const char *key, size_t key_length, void *context); -typedef struct { - memcached_execute_fn *callback; - void *context; - uint32_t number_of_callback; -} memcached_callback_st; +#ifdef __cplusplus +} +#endif - /** @note The following definitions are just here for backwards compatibility. */ @@ -60,19 +85,10 @@ typedef memcached_hash_t memcached_hash; typedef memcached_connection_t memcached_connection; typedef memcached_clone_fn memcached_clone_func; typedef memcached_cleanup_fn memcached_cleanup_func; -typedef memcached_free_fn memcached_free_function; -typedef memcached_malloc_fn memcached_malloc_function; -typedef memcached_realloc_fn memcached_realloc_function; -typedef memcached_calloc_fn memcached_calloc_function; typedef memcached_execute_fn memcached_execute_function; typedef memcached_server_fn memcached_server_function; typedef memcached_trigger_key_fn memcached_trigger_key; typedef memcached_trigger_delete_key_fn memcached_trigger_delete_key; typedef memcached_dump_fn memcached_dump_func; - - -#ifdef __cplusplus -} -#endif -#endif /* LIBMEMCACHED_MEMCACHED_TYPES_H */ +#endif /* __LIBMEMCACHED_TYPES_H__ */