From 95fd67da4903671adb5731b710798843938e8536 Mon Sep 17 00:00:00 2001 From: Brian Aker Date: Mon, 21 Dec 2009 22:58:44 -0800 Subject: [PATCH] Updated memcached.h so that it contains only its structure. --- libmemcached/analyze.c | 9 ++++ libmemcached/analyze.h | 48 +++++++++++++++++ libmemcached/auto.h | 85 +++++++++++++++++++++++++++++ libmemcached/constants.h | 4 +- libmemcached/include.am | 3 ++ libmemcached/memcached.h | 113 ++------------------------------------- libmemcached/server.h | 5 -- libmemcached/stats.h | 60 +++++++++++++++++++++ 8 files changed, 211 insertions(+), 116 deletions(-) create mode 100644 libmemcached/analyze.h create mode 100644 libmemcached/auto.h create mode 100644 libmemcached/stats.h diff --git a/libmemcached/analyze.c b/libmemcached/analyze.c index 79ea17b9..de628a72 100644 --- a/libmemcached/analyze.c +++ b/libmemcached/analyze.c @@ -79,6 +79,9 @@ memcached_analysis_st *memcached_analyze(memcached_st *memc, return NULL; } + result->options.allocated= true; + result->root= memc; + for (x= 0; x < server_count; x++) { calc_largest_consumption(result, x, memc_stat[x].bytes); @@ -98,3 +101,9 @@ memcached_analysis_st *memcached_analyze(memcached_st *memc, return result; } + +void memcached_analyze_free(memcached_analysis_st *ptr) +{ + if (ptr->options.allocated) + free(ptr); +} diff --git a/libmemcached/analyze.h b/libmemcached/analyze.h new file mode 100644 index 00000000..3323e855 --- /dev/null +++ b/libmemcached/analyze.h @@ -0,0 +1,48 @@ +/* LibMemcached + * Copyright (C) 2006-2009 Brian Aker + * All rights reserved. + * + * Use and distribution licensed under the BSD license. See + * the COPYING file in the parent directory for full text. + * + * Summary: Change the behavior of the memcached connection. + * + */ + +#ifndef __MEMCACHED_ANALYZE_H__ +#define __MEMCACHED_ANALYZE_H__ + +#ifdef __cplusplus +extern "C" { +#endif + + +struct memcached_analysis_st { + struct { + bool allocated:1; + } options; + memcached_st *root; + uint32_t average_item_size; + uint32_t longest_uptime; + uint32_t least_free_server; + uint32_t most_consumed_server; + uint32_t oldest_server; + double pool_hit_ratio; + uint64_t most_used_bytes; + uint64_t least_remaining_bytes; +}; + + +LIBMEMCACHED_API +memcached_analysis_st *memcached_analyze(memcached_st *memc, + memcached_stat_st *memc_stat, + memcached_return_t *error); + +LIBMEMCACHED_API +void memcached_analyze_free(memcached_analysis_st *); + +#ifdef __cplusplus +} +#endif + +#endif /* __MEMCACHED_ANALYZE_H__ */ diff --git a/libmemcached/auto.h b/libmemcached/auto.h new file mode 100644 index 00000000..c80d0bd0 --- /dev/null +++ b/libmemcached/auto.h @@ -0,0 +1,85 @@ +/* LibMemcached + * Copyright (C) 2006-2009 Brian Aker + * All rights reserved. + * + * Use and distribution licensed under the BSD license. See + * the COPYING file in the parent directory for full text. + * + * Summary: Change the behavior of the memcached connection. + * + */ + +#ifndef __MEMCACHED_AUTO_H__ +#define __MEMCACHED_AUTO_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +LIBMEMCACHED_API +memcached_return_t memcached_increment(memcached_st *ptr, + const char *key, size_t key_length, + uint32_t offset, + uint64_t *value); +LIBMEMCACHED_API +memcached_return_t memcached_decrement(memcached_st *ptr, + const char *key, size_t key_length, + uint32_t offset, + uint64_t *value); + +LIBMEMCACHED_API +memcached_return_t memcached_increment_by_key(memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char *key, size_t key_length, + uint64_t offset, + uint64_t *value); + +LIBMEMCACHED_API +memcached_return_t memcached_decrement_by_key(memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char *key, size_t key_length, + uint64_t offset, + uint64_t *value); + +LIBMEMCACHED_API +memcached_return_t memcached_increment_with_initial(memcached_st *ptr, + const char *key, + size_t key_length, + uint64_t offset, + uint64_t initial, + time_t expiration, + uint64_t *value); +LIBMEMCACHED_API +memcached_return_t memcached_decrement_with_initial(memcached_st *ptr, + const char *key, + size_t key_length, + uint64_t offset, + uint64_t initial, + time_t expiration, + uint64_t *value); +LIBMEMCACHED_API +memcached_return_t memcached_increment_with_initial_by_key(memcached_st *ptr, + const char *master_key, + size_t master_key_length, + const char *key, + size_t key_length, + uint64_t offset, + uint64_t initial, + time_t expiration, + uint64_t *value); +LIBMEMCACHED_API +memcached_return_t memcached_decrement_with_initial_by_key(memcached_st *ptr, + const char *master_key, + size_t master_key_length, + const char *key, + size_t key_length, + uint64_t offset, + uint64_t initial, + time_t expiration, + uint64_t *value); + +#ifdef __cplusplus +} +#endif + +#endif /* __MEMCACHED_AUTO_H__ */ diff --git a/libmemcached/constants.h b/libmemcached/constants.h index 980a32bf..5c704027 100644 --- a/libmemcached/constants.h +++ b/libmemcached/constants.h @@ -1,5 +1,5 @@ /* LibMemcached - * Copyright (C) 2006-2009 Brian Aker + * Copyright (C) 2006-2009 Brian Aker * All rights reserved. * * Use and distribution licensed under the BSD license. See @@ -26,6 +26,8 @@ #define MEMCACHED_CONTINUUM_ADDITION 10 /* How many extra slots we should build for in the continuum */ #define MEMCACHED_PREFIX_KEY_MAX_SIZE 128 #define MEMCACHED_EXPIRATION_NOT_ADD 0xffffffffU +#define MEMCACHED_VERSION_STRING_LENGTH 24 + typedef enum { MEMCACHED_SUCCESS, diff --git a/libmemcached/include.am b/libmemcached/include.am index d7404443..481329e6 100644 --- a/libmemcached/include.am +++ b/libmemcached/include.am @@ -20,6 +20,8 @@ noinst_HEADERS+= \ libmemcached/protocol/binary_handler.h nobase_pkginclude_HEADERS+= \ + libmemcached/analyze.h \ + libmemcached/auto.h \ libmemcached/behavior.h \ libmemcached/callback.h \ libmemcached/constants.h \ @@ -34,6 +36,7 @@ nobase_pkginclude_HEADERS+= \ libmemcached/protocol_handler.h \ libmemcached/result.h \ libmemcached/server.h \ + libmemcached/stats.h \ libmemcached/storage.h \ libmemcached/string.h \ libmemcached/types.h \ diff --git a/libmemcached/memcached.h b/libmemcached/memcached.h index 47968139..95592a48 100644 --- a/libmemcached/memcached.h +++ b/libmemcached/memcached.h @@ -28,7 +28,10 @@ #include #include #include +#include // Everything above this line must be in the order specified. +#include +#include #include #include #include @@ -41,46 +44,6 @@ extern "C" { #endif -#define MEMCACHED_VERSION_STRING_LENGTH 24 - -struct memcached_analysis_st { - uint32_t average_item_size; - uint32_t longest_uptime; - uint32_t least_free_server; - uint32_t most_consumed_server; - uint32_t oldest_server; - double pool_hit_ratio; - uint64_t most_used_bytes; - uint64_t least_remaining_bytes; -}; - -struct memcached_stat_st { - uint32_t connection_structures; - uint32_t curr_connections; - uint32_t curr_items; - uint32_t pid; - uint32_t pointer_size; - uint32_t rusage_system_microseconds; - uint32_t rusage_system_seconds; - uint32_t rusage_user_microseconds; - uint32_t rusage_user_seconds; - uint32_t threads; - uint32_t time; - uint32_t total_connections; - uint32_t total_items; - uint32_t uptime; - uint64_t bytes; - uint64_t bytes_read; - uint64_t bytes_written; - uint64_t cmd_get; - uint64_t cmd_set; - uint64_t evictions; - uint64_t get_hits; - uint64_t get_misses; - uint64_t limit_maxbytes; - char version[MEMCACHED_VERSION_STRING_LENGTH]; -}; - struct memcached_st { struct { bool is_allocated:1; @@ -161,76 +124,6 @@ memcached_st *memcached_clone(memcached_st *clone, memcached_st *ptr); LIBMEMCACHED_API memcached_return_t memcached_delete(memcached_st *ptr, const char *key, size_t key_length, time_t expiration); -LIBMEMCACHED_API -memcached_return_t memcached_increment(memcached_st *ptr, - const char *key, size_t key_length, - uint32_t offset, - uint64_t *value); -LIBMEMCACHED_API -memcached_return_t memcached_decrement(memcached_st *ptr, - const char *key, size_t key_length, - uint32_t offset, - uint64_t *value); - -LIBMEMCACHED_API -memcached_return_t memcached_increment_by_key(memcached_st *ptr, - const char *master_key, size_t master_key_length, - const char *key, size_t key_length, - uint64_t offset, - uint64_t *value); - -LIBMEMCACHED_API -memcached_return_t memcached_decrement_by_key(memcached_st *ptr, - const char *master_key, size_t master_key_length, - const char *key, size_t key_length, - uint64_t offset, - uint64_t *value); - -LIBMEMCACHED_API -memcached_return_t memcached_increment_with_initial(memcached_st *ptr, - const char *key, - size_t key_length, - uint64_t offset, - uint64_t initial, - time_t expiration, - uint64_t *value); -LIBMEMCACHED_API -memcached_return_t memcached_decrement_with_initial(memcached_st *ptr, - const char *key, - size_t key_length, - uint64_t offset, - uint64_t initial, - time_t expiration, - uint64_t *value); -LIBMEMCACHED_API -memcached_return_t memcached_increment_with_initial_by_key(memcached_st *ptr, - const char *master_key, - size_t master_key_length, - const char *key, - size_t key_length, - uint64_t offset, - uint64_t initial, - time_t expiration, - uint64_t *value); -LIBMEMCACHED_API -memcached_return_t memcached_decrement_with_initial_by_key(memcached_st *ptr, - const char *master_key, - size_t master_key_length, - const char *key, - size_t key_length, - uint64_t offset, - uint64_t initial, - time_t expiration, - uint64_t *value); -LIBMEMCACHED_API -void memcached_stat_free(memcached_st *, memcached_stat_st *); - -LIBMEMCACHED_API -memcached_stat_st *memcached_stat(memcached_st *ptr, char *args, memcached_return_t *error); - -LIBMEMCACHED_API -memcached_return_t memcached_stat_servername(memcached_stat_st *memc_stat, char *args, - const char *hostname, in_port_t port); LIBMEMCACHED_API memcached_return_t memcached_flush(memcached_st *ptr, time_t expiration); diff --git a/libmemcached/server.h b/libmemcached/server.h index 0e38fdd1..66a23a56 100644 --- a/libmemcached/server.h +++ b/libmemcached/server.h @@ -92,11 +92,6 @@ LIBMEMCACHED_API memcached_server_st *memcached_server_clone(memcached_server_st *clone, memcached_server_st *ptr); -LIBMEMCACHED_API -memcached_analysis_st *memcached_analyze(memcached_st *memc, - memcached_stat_st *memc_stat, - memcached_return_t *error); - LIBMEMCACHED_API memcached_return_t memcached_server_remove(memcached_server_st *st_ptr); diff --git a/libmemcached/stats.h b/libmemcached/stats.h new file mode 100644 index 00000000..79f7e6cf --- /dev/null +++ b/libmemcached/stats.h @@ -0,0 +1,60 @@ +/* LibMemcached + * Copyright (C) 2006-2009 Brian Aker + * All rights reserved. + * + * Use and distribution licensed under the BSD license. See + * the COPYING file in the parent directory for full text. + * + * Summary: Change the behavior of the memcached connection. + * + */ + +#ifndef __MEMCACHED_STATS_H__ +#define __MEMCACHED_STATS_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +struct memcached_stat_st { + uint32_t connection_structures; + uint32_t curr_connections; + uint32_t curr_items; + uint32_t pid; + uint32_t pointer_size; + uint32_t rusage_system_microseconds; + uint32_t rusage_system_seconds; + uint32_t rusage_user_microseconds; + uint32_t rusage_user_seconds; + uint32_t threads; + uint32_t time; + uint32_t total_connections; + uint32_t total_items; + uint32_t uptime; + uint64_t bytes; + uint64_t bytes_read; + uint64_t bytes_written; + uint64_t cmd_get; + uint64_t cmd_set; + uint64_t evictions; + uint64_t get_hits; + uint64_t get_misses; + uint64_t limit_maxbytes; + char version[MEMCACHED_VERSION_STRING_LENGTH]; +}; + +LIBMEMCACHED_API +void memcached_stat_free(memcached_st *, memcached_stat_st *); + +LIBMEMCACHED_API +memcached_stat_st *memcached_stat(memcached_st *ptr, char *args, memcached_return_t *error); + +LIBMEMCACHED_API +memcached_return_t memcached_stat_servername(memcached_stat_st *memc_stat, char *args, + const char *hostname, in_port_t port); + +#ifdef __cplusplus +} +#endif + +#endif /* __MEMCACHED_STATS_H__ */ -- 2.30.2