From: Brian Aker Date: Fri, 8 Apr 2011 02:37:02 +0000 (-0700) Subject: Merge in more updates for docs (we are just going to check them all in so that users... X-Git-Tag: 0.51~15^2~21 X-Git-Url: https://git.m6w6.name/?a=commitdiff_plain;h=f285e1b3821f56a8983b5ce9fb1a0070e7bb0a1c;p=awesomized%2Flibmemcached Merge in more updates for docs (we are just going to check them all in so that users won't have to generate them). --- diff --git a/.bzrignore b/.bzrignore index ff0c0bb2..78b001ef 100644 --- a/.bzrignore +++ b/.bzrignore @@ -73,7 +73,6 @@ lt~obsolete.m4 patch docs/html/ docs/linkcheck/ -docs/man/ patch2 stamp-h1 support/Makefile diff --git a/docs/conf.py b/docs/conf.py index 6a483c16..0ef2fa42 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -224,7 +224,7 @@ man_pages = [ ('hashkit_functions', 'hashkit_jenkins', u'libhashkit Documentation', [u'Brian Aker'], 3), ('hashkit_functions', 'hashkit_md5', u'libhashkit Documentation', [u'Brian Aker'], 3), ('hashkit_functions', 'hashkit_murmur', u'libhashkit Documentation', [u'Brian Aker'], 3), - ('hashkit_hsieh', 'hashkit_hsieh', u'libhashkit Documentation', [u'Brian Aker'], 3), + ('hashkit_functions', 'hashkit_hsieh', u'libhashkit Documentation', [u'Brian Aker'], 3), ('hashkit_value', 'hashkit_value', u'libhashkit Documentation', [u'Brian Aker'], 3), ('libmemcached', 'libmemcached', u'libmemcached Documentation', [u'Brian Aker'], 3), ('libmemcached_examples', 'libmemcached_examples', u'libmemcached Documentation', [u'Brian Aker'], 3), diff --git a/docs/include.am b/docs/include.am index 0e93ee7d..ebfa12ab 100644 --- a/docs/include.am +++ b/docs/include.am @@ -163,8 +163,6 @@ ALLSPHINXOPTS = -d $(SPHINX_BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOP .PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest -if HAVE_RECENT_SPHINX - man_MANS+= \ docs/man/hashkit_crc32.3 \ docs/man/hashkit_clone.3 \ @@ -265,109 +263,6 @@ man_MANS+= \ docs/man/memslap.1 \ docs/man/memstat.1 -DISTCLEANFILES+= \ - docs/man/* - -docs/man/hashkit_clone.3: man -docs/man/hashkit_crc32.3: man -docs/man/hashkit_create.3: man -docs/man/hashkit_fnv1_32.3: man -docs/man/hashkit_fnv1_64.3: man -docs/man/hashkit_fnv1a_32.3: man -docs/man/hashkit_fnv1a_64.3: man -docs/man/hashkit_free.3: man -docs/man/hashkit_functions.3: man -docs/man/hashkit_hsieh.3: man -docs/man/hashkit_is_allocated.3: man -docs/man/hashkit_jenkins.3: man -docs/man/hashkit_md5.3: man -docs/man/hashkit_murmur.3: man -docs/man/hashkit_value.3: man -docs/man/libmemcached.3: man -docs/man/libmemcached_examples.3: man -docs/man/libmemcachedutil.3: man -docs/man/memcached_add.3: man -docs/man/memcached_add_by_key.3: man -docs/man/memcached_analyze.3: man -docs/man/memcached_append.3: man -docs/man/memcached_append_by_key.3: man -docs/man/memcached_behavior_get.3: man -docs/man/memcached_behavior_set.3: man -docs/man/memcached_callback_get.3: man -docs/man/memcached_callback_set.3: man -docs/man/memcached_cas.3: man -docs/man/memcached_cas_by_key.3: man -docs/man/memcached_clone.3: man -docs/man/memcached_create.3: man -docs/man/memcached_decrement.3: man -docs/man/memcached_decrement_with_initial.3: man -docs/man/memcached_delete.3: man -docs/man/memcached_delete_by_key.3: man -docs/man/memcached_destroy_sasl_auth_data.3: man -docs/man/memcached_dump.3: man -docs/man/memcached_fetch.3: man -docs/man/memcached_fetch_execute.3: man -docs/man/memcached_fetch_result.3: man -docs/man/memcached_flush_buffers.3: man -docs/man/memcached_free.3: man -docs/man/memcached_generate_hash_value.3: man -docs/man/memcached_get.3: man -docs/man/memcached_get_by_key.3: man -docs/man/memcached_get_memory_allocators.3: man -docs/man/memcached_get_sasl_callbacks.3: man -docs/man/memcached_get_user_data.3: man -docs/man/memcached_increment.3: man -docs/man/memcached_increment_with_initial.3: man -docs/man/memcached_lib_version.3: man -docs/man/memcached_mget.3: man -docs/man/memcached_mget_by_key.3: man -docs/man/memcached_mget_execute.3: man -docs/man/memcached_mget_execute_by_key.3: man -docs/man/memcached_pool_behavior_get.3: man -docs/man/memcached_pool_behavior_set.3: man -docs/man/memcached_pool_create.3: man -docs/man/memcached_pool_destroy.3: man -docs/man/memcached_pool_pop.3: man -docs/man/memcached_pool_push.3: man -docs/man/memcached_prepend.3: man -docs/man/memcached_prepend_by_key.3: man -docs/man/memcached_quit.3: man -docs/man/memcached_replace.3: man -docs/man/memcached_replace_by_key.3: man -docs/man/memcached_sasl_set_auth_data.3: man -docs/man/memcached_server_add.3: man -docs/man/memcached_server_count.3: man -docs/man/memcached_server_cursor.3: man -docs/man/memcached_server_list.3: man -docs/man/memcached_server_list_append.3: man -docs/man/memcached_server_list_count.3: man -docs/man/memcached_server_list_free.3: man -docs/man/memcached_server_push.3: man -docs/man/memcached_servers_parse.3: man -docs/man/memcached_set.3: man -docs/man/memcached_set_by_key.3: man -docs/man/memcached_set_memory_allocators.3: man -docs/man/memcached_set_sasl_callbacks.3: man -docs/man/memcached_set_user_data.3: man -docs/man/memcached_stat.3: man -docs/man/memcached_stat_execute.3: man -docs/man/memcached_stat_get_keys.3: man -docs/man/memcached_stat_get_value.3: man -docs/man/memcached_stat_servername.3: man -docs/man/memcached_strerror.3: man -docs/man/memcached_verbosity.3: man -docs/man/memcached_version.3: man -docs/man/memcapable.1: man -docs/man/memcat.1: man -docs/man/memcp.1: man -docs/man/memdump.1: man -docs/man/memerror.1: man -docs/man/memflush.1: man -docs/man/memrm.1: man -docs/man/memslap.1: man -docs/man/memstat.1: man - -endif if HAVE_SPHINX sphinx-help: diff --git a/docs/index.rst b/docs/index.rst index b8931239..b2228ea4 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -11,113 +11,32 @@ Contents: .. toctree:: :maxdepth: 2 - hashkit_clone hashkit_create hashkit_functions hashkit_value - hashkit_crc32 - hashkit_fnv1_32 - hashkit_fnv1_64 - hashkit_fnv1a_32 - hashkit_fnv1a_64 - hashkit_free - hashkit_hsieh - hashkit_is_allocated - hashkit_jenkins - hashkit_md5 - hashkit_murmur - memcached_destroy_sasl_auth_data - memcached_get_sasl_callbacks - memcached_sasl_set_auth_data - memcached_set_sasl_callbacks - libmemcached + index libmemcached_examples + libmemcached libmemcachedutil - memcached_add - memcached_add_by_key memcached_analyze - memcached_append - memcached_append_by_key memcached_auto memcached_behavior - memcached_behavior_get - memcached_behavior_set memcached_callback - memcached_callback_get - memcached_callback_set - memcached_cas - memcached_cas_by_key - memcached_clone memcached_create - memcached_decrement - memcached_decrement_with_initial memcached_delete - memcached_delete_by_key memcached_dump - memcached_fetch - memcached_fetch_execute - memcached_fetch_result - memcached_flush memcached_flush_buffers - memcached_free + memcached_flush memcached_generate_hash_value memcached_get - memcached_get_by_key - memcached_get_memory_allocators - memcached_get_user_data - memcached_increment - memcached_increment_with_initial - memcached_lib_version memcached_memory_allocators - memcached_mget - memcached_mget_by_key - memcached_mget_execute - memcached_mget_execute_by_key memcached_pool - memcached_pool_behavior_get - memcached_pool_behavior_set - memcached_pool_create - memcached_pool_destroy - memcached_pool_push - memcached_pool_rst - memcached_prepend - memcached_prepend_by_key memcached_quit - memcached_replace - memcached_replace_by_key - memcached_result_cas - memcached_result_create - memcached_result_flags - memcached_result_free - memcached_result_key_length - memcached_result_key_value - memcached_result_length memcached_result_st - memcached_result_value memcached_sasl - memcached_server_add - memcached_server_add_unix_socket - memcached_server_count - memcached_server_cursor - memcached_server_list - memcached_server_list_append - memcached_server_list_count - memcached_server_list_free - memcached_server_push - memcached_server_st memcached_servers - memcached_servers_parse - memcached_servers_reset + memcached_server_st memcached_set - memcached_set_by_key - memcached_set_memory_allocators - memcached_set_memory_allocators_context - memcached_set_user_data - memcached_stat - memcached_stat_execute - memcached_stat_get_keys - memcached_stat_get_value - memcached_stat_servername memcached_stats memcached_strerror memcached_user_data diff --git a/docs/libmemcached.rst b/docs/libmemcached.rst index eb5656f7..5baaad75 100644 --- a/docs/libmemcached.rst +++ b/docs/libmemcached.rst @@ -24,7 +24,7 @@ SYNOPSIS .. code-block:: perl - #include + #include diff --git a/docs/man/hashkit_clone.3 b/docs/man/hashkit_clone.3 new file mode 100644 index 00000000..9c83fea0 --- /dev/null +++ b/docs/man/hashkit_clone.3 @@ -0,0 +1,90 @@ +.TH "HASHKIT_CLONE" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +hashkit_clone \- libhashkit Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Create and destroy hashkit objects +.SH LIBRARY +.sp +C Library for hashing algorithms (libhashkit, \-lhashkit) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +hashkit_st *hashkit_create(hashkit_st *hash); + +hashkit_st *hashkit_clone(hashkit_st *destination, const hashkit_st *ptr); + +void hashkit_free(hashkit_st *hash); + +bool hashkit_is_allocated(const hashkit_st *hash); +.ft P +.fi +.SH DESCRIPTION +.sp +The hashkit_create() function initializes a hashkit object for use. If +you pass a NULL argument for hash, then the memory for the object is +allocated. If you specify a pre\-allocated piece of memory, that is +initialized for use. +.sp +The hashkit_clone() function initializes a hashkit object much like +hashkit_create(), but instead of using default settings it will use +the settings of the ptr hashkit object. +.sp +The hashkit_free() frees any resources being consumed by the hashkit +objects that were initialized with hashkit_create() or hashkit_clone(). +.sp +The hashkit_is_allocated() reports where the memory was allocated +for a hashkit object. +.SH RETURN VALUE +.sp +hashkit_create() and hashkit_clone() will return NULL on failure or +non\-NULL on success. +.sp +hashkit_is_allocated() returns true if the memory for the hashkit +object was allocated inside of hashkit_create() or hashkit_clone(), +otherwise it is false and was user\-supplied memory. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Brian Aker, <\fI\%brian@tangent.org\fP> +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/hashkit_crc32.3 b/docs/man/hashkit_crc32.3 new file mode 100644 index 00000000..2aa8c98e --- /dev/null +++ b/docs/man/hashkit_crc32.3 @@ -0,0 +1,84 @@ +.TH "HASHKIT_CRC32" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +hashkit_crc32 \- libhashkit Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Various hash functions to use for calculating values for keys +.SH LIBRARY +.sp +C Library for hashing algorithms (libhashkit, \-lhashkit) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +uint32_t hashkit_default(const char *key, size_t key_length); +uint32_t hashkit_fnv1_64(const char *key, size_t key_length); +uint32_t hashkit_fnv1a_64(const char *key, size_t key_length); +uint32_t hashkit_fnv1_32(const char *key, size_t key_length); +uint32_t hashkit_fnv1a_32(const char *key, size_t key_length); +uint32_t hashkit_crc32(const char *key, size_t key_length); +uint32_t hashkit_hsieh(const char *key, size_t key_length); +uint32_t hashkit_murmur(const char *key, size_t key_length); +uint32_t hashkit_jenkins(const char *key, size_t key_length); +uint32_t hashkit_md5(const char *key, size_t key_length); +.ft P +.fi +.SH DESCRIPTION +.sp +These functions generate hash values from a key using a variety of +algorithms. These functions can be used standalone, or as arguments +to hashkit_set_hash_fn(3) or hashkit_set_continuum_hash_fn(3). +.sp +The hashkit_hsieh() is only available if the library is built with +the appropriate flag enabled. +.SH RETURN VALUE +.sp +A 32\-bit hash value. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Brian Aker, <\fI\%brian@tangent.org\fP> +.SH SEE ALSO +.sp +hashkit_create(3) hashkit_value(3) hashkit_set_hash_fn(3) +hashkit_set_continuum_hash_fn(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/hashkit_create.3 b/docs/man/hashkit_create.3 new file mode 100644 index 00000000..c795c316 --- /dev/null +++ b/docs/man/hashkit_create.3 @@ -0,0 +1,90 @@ +.TH "HASHKIT_CREATE" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +hashkit_create \- libhashkit Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Create and destroy hashkit objects +.SH LIBRARY +.sp +C Library for hashing algorithms (libhashkit, \-lhashkit) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +hashkit_st *hashkit_create(hashkit_st *hash); + +hashkit_st *hashkit_clone(hashkit_st *destination, const hashkit_st *ptr); + +void hashkit_free(hashkit_st *hash); + +bool hashkit_is_allocated(const hashkit_st *hash); +.ft P +.fi +.SH DESCRIPTION +.sp +The hashkit_create() function initializes a hashkit object for use. If +you pass a NULL argument for hash, then the memory for the object is +allocated. If you specify a pre\-allocated piece of memory, that is +initialized for use. +.sp +The hashkit_clone() function initializes a hashkit object much like +hashkit_create(), but instead of using default settings it will use +the settings of the ptr hashkit object. +.sp +The hashkit_free() frees any resources being consumed by the hashkit +objects that were initialized with hashkit_create() or hashkit_clone(). +.sp +The hashkit_is_allocated() reports where the memory was allocated +for a hashkit object. +.SH RETURN VALUE +.sp +hashkit_create() and hashkit_clone() will return NULL on failure or +non\-NULL on success. +.sp +hashkit_is_allocated() returns true if the memory for the hashkit +object was allocated inside of hashkit_create() or hashkit_clone(), +otherwise it is false and was user\-supplied memory. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Brian Aker, <\fI\%brian@tangent.org\fP> +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/hashkit_fnv1_32.3 b/docs/man/hashkit_fnv1_32.3 new file mode 100644 index 00000000..177b872b --- /dev/null +++ b/docs/man/hashkit_fnv1_32.3 @@ -0,0 +1,84 @@ +.TH "HASHKIT_FNV1_32" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +hashkit_fnv1_32 \- libhashkit Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Various hash functions to use for calculating values for keys +.SH LIBRARY +.sp +C Library for hashing algorithms (libhashkit, \-lhashkit) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +uint32_t hashkit_default(const char *key, size_t key_length); +uint32_t hashkit_fnv1_64(const char *key, size_t key_length); +uint32_t hashkit_fnv1a_64(const char *key, size_t key_length); +uint32_t hashkit_fnv1_32(const char *key, size_t key_length); +uint32_t hashkit_fnv1a_32(const char *key, size_t key_length); +uint32_t hashkit_crc32(const char *key, size_t key_length); +uint32_t hashkit_hsieh(const char *key, size_t key_length); +uint32_t hashkit_murmur(const char *key, size_t key_length); +uint32_t hashkit_jenkins(const char *key, size_t key_length); +uint32_t hashkit_md5(const char *key, size_t key_length); +.ft P +.fi +.SH DESCRIPTION +.sp +These functions generate hash values from a key using a variety of +algorithms. These functions can be used standalone, or as arguments +to hashkit_set_hash_fn(3) or hashkit_set_continuum_hash_fn(3). +.sp +The hashkit_hsieh() is only available if the library is built with +the appropriate flag enabled. +.SH RETURN VALUE +.sp +A 32\-bit hash value. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Brian Aker, <\fI\%brian@tangent.org\fP> +.SH SEE ALSO +.sp +hashkit_create(3) hashkit_value(3) hashkit_set_hash_fn(3) +hashkit_set_continuum_hash_fn(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/hashkit_fnv1_64.3 b/docs/man/hashkit_fnv1_64.3 new file mode 100644 index 00000000..382e1aa4 --- /dev/null +++ b/docs/man/hashkit_fnv1_64.3 @@ -0,0 +1,84 @@ +.TH "HASHKIT_FNV1_64" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +hashkit_fnv1_64 \- libhashkit Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Various hash functions to use for calculating values for keys +.SH LIBRARY +.sp +C Library for hashing algorithms (libhashkit, \-lhashkit) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +uint32_t hashkit_default(const char *key, size_t key_length); +uint32_t hashkit_fnv1_64(const char *key, size_t key_length); +uint32_t hashkit_fnv1a_64(const char *key, size_t key_length); +uint32_t hashkit_fnv1_32(const char *key, size_t key_length); +uint32_t hashkit_fnv1a_32(const char *key, size_t key_length); +uint32_t hashkit_crc32(const char *key, size_t key_length); +uint32_t hashkit_hsieh(const char *key, size_t key_length); +uint32_t hashkit_murmur(const char *key, size_t key_length); +uint32_t hashkit_jenkins(const char *key, size_t key_length); +uint32_t hashkit_md5(const char *key, size_t key_length); +.ft P +.fi +.SH DESCRIPTION +.sp +These functions generate hash values from a key using a variety of +algorithms. These functions can be used standalone, or as arguments +to hashkit_set_hash_fn(3) or hashkit_set_continuum_hash_fn(3). +.sp +The hashkit_hsieh() is only available if the library is built with +the appropriate flag enabled. +.SH RETURN VALUE +.sp +A 32\-bit hash value. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Brian Aker, <\fI\%brian@tangent.org\fP> +.SH SEE ALSO +.sp +hashkit_create(3) hashkit_value(3) hashkit_set_hash_fn(3) +hashkit_set_continuum_hash_fn(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/hashkit_fnv1a_32.3 b/docs/man/hashkit_fnv1a_32.3 new file mode 100644 index 00000000..7efe6cd3 --- /dev/null +++ b/docs/man/hashkit_fnv1a_32.3 @@ -0,0 +1,84 @@ +.TH "HASHKIT_FNV1A_32" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +hashkit_fnv1a_32 \- libhashkit Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Various hash functions to use for calculating values for keys +.SH LIBRARY +.sp +C Library for hashing algorithms (libhashkit, \-lhashkit) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +uint32_t hashkit_default(const char *key, size_t key_length); +uint32_t hashkit_fnv1_64(const char *key, size_t key_length); +uint32_t hashkit_fnv1a_64(const char *key, size_t key_length); +uint32_t hashkit_fnv1_32(const char *key, size_t key_length); +uint32_t hashkit_fnv1a_32(const char *key, size_t key_length); +uint32_t hashkit_crc32(const char *key, size_t key_length); +uint32_t hashkit_hsieh(const char *key, size_t key_length); +uint32_t hashkit_murmur(const char *key, size_t key_length); +uint32_t hashkit_jenkins(const char *key, size_t key_length); +uint32_t hashkit_md5(const char *key, size_t key_length); +.ft P +.fi +.SH DESCRIPTION +.sp +These functions generate hash values from a key using a variety of +algorithms. These functions can be used standalone, or as arguments +to hashkit_set_hash_fn(3) or hashkit_set_continuum_hash_fn(3). +.sp +The hashkit_hsieh() is only available if the library is built with +the appropriate flag enabled. +.SH RETURN VALUE +.sp +A 32\-bit hash value. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Brian Aker, <\fI\%brian@tangent.org\fP> +.SH SEE ALSO +.sp +hashkit_create(3) hashkit_value(3) hashkit_set_hash_fn(3) +hashkit_set_continuum_hash_fn(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/hashkit_fnv1a_64.3 b/docs/man/hashkit_fnv1a_64.3 new file mode 100644 index 00000000..ec613ecc --- /dev/null +++ b/docs/man/hashkit_fnv1a_64.3 @@ -0,0 +1,84 @@ +.TH "HASHKIT_FNV1A_64" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +hashkit_fnv1a_64 \- libhashkit Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Various hash functions to use for calculating values for keys +.SH LIBRARY +.sp +C Library for hashing algorithms (libhashkit, \-lhashkit) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +uint32_t hashkit_default(const char *key, size_t key_length); +uint32_t hashkit_fnv1_64(const char *key, size_t key_length); +uint32_t hashkit_fnv1a_64(const char *key, size_t key_length); +uint32_t hashkit_fnv1_32(const char *key, size_t key_length); +uint32_t hashkit_fnv1a_32(const char *key, size_t key_length); +uint32_t hashkit_crc32(const char *key, size_t key_length); +uint32_t hashkit_hsieh(const char *key, size_t key_length); +uint32_t hashkit_murmur(const char *key, size_t key_length); +uint32_t hashkit_jenkins(const char *key, size_t key_length); +uint32_t hashkit_md5(const char *key, size_t key_length); +.ft P +.fi +.SH DESCRIPTION +.sp +These functions generate hash values from a key using a variety of +algorithms. These functions can be used standalone, or as arguments +to hashkit_set_hash_fn(3) or hashkit_set_continuum_hash_fn(3). +.sp +The hashkit_hsieh() is only available if the library is built with +the appropriate flag enabled. +.SH RETURN VALUE +.sp +A 32\-bit hash value. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Brian Aker, <\fI\%brian@tangent.org\fP> +.SH SEE ALSO +.sp +hashkit_create(3) hashkit_value(3) hashkit_set_hash_fn(3) +hashkit_set_continuum_hash_fn(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/hashkit_free.3 b/docs/man/hashkit_free.3 new file mode 100644 index 00000000..d016b898 --- /dev/null +++ b/docs/man/hashkit_free.3 @@ -0,0 +1,90 @@ +.TH "HASHKIT_FREE" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +hashkit_free \- libhashkit Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Create and destroy hashkit objects +.SH LIBRARY +.sp +C Library for hashing algorithms (libhashkit, \-lhashkit) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +hashkit_st *hashkit_create(hashkit_st *hash); + +hashkit_st *hashkit_clone(hashkit_st *destination, const hashkit_st *ptr); + +void hashkit_free(hashkit_st *hash); + +bool hashkit_is_allocated(const hashkit_st *hash); +.ft P +.fi +.SH DESCRIPTION +.sp +The hashkit_create() function initializes a hashkit object for use. If +you pass a NULL argument for hash, then the memory for the object is +allocated. If you specify a pre\-allocated piece of memory, that is +initialized for use. +.sp +The hashkit_clone() function initializes a hashkit object much like +hashkit_create(), but instead of using default settings it will use +the settings of the ptr hashkit object. +.sp +The hashkit_free() frees any resources being consumed by the hashkit +objects that were initialized with hashkit_create() or hashkit_clone(). +.sp +The hashkit_is_allocated() reports where the memory was allocated +for a hashkit object. +.SH RETURN VALUE +.sp +hashkit_create() and hashkit_clone() will return NULL on failure or +non\-NULL on success. +.sp +hashkit_is_allocated() returns true if the memory for the hashkit +object was allocated inside of hashkit_create() or hashkit_clone(), +otherwise it is false and was user\-supplied memory. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Brian Aker, <\fI\%brian@tangent.org\fP> +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/hashkit_functions.3 b/docs/man/hashkit_functions.3 new file mode 100644 index 00000000..72006c0b --- /dev/null +++ b/docs/man/hashkit_functions.3 @@ -0,0 +1,84 @@ +.TH "HASHKIT_FUNCTIONS" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +hashkit_functions \- libhashkit Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Various hash functions to use for calculating values for keys +.SH LIBRARY +.sp +C Library for hashing algorithms (libhashkit, \-lhashkit) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +uint32_t hashkit_default(const char *key, size_t key_length); +uint32_t hashkit_fnv1_64(const char *key, size_t key_length); +uint32_t hashkit_fnv1a_64(const char *key, size_t key_length); +uint32_t hashkit_fnv1_32(const char *key, size_t key_length); +uint32_t hashkit_fnv1a_32(const char *key, size_t key_length); +uint32_t hashkit_crc32(const char *key, size_t key_length); +uint32_t hashkit_hsieh(const char *key, size_t key_length); +uint32_t hashkit_murmur(const char *key, size_t key_length); +uint32_t hashkit_jenkins(const char *key, size_t key_length); +uint32_t hashkit_md5(const char *key, size_t key_length); +.ft P +.fi +.SH DESCRIPTION +.sp +These functions generate hash values from a key using a variety of +algorithms. These functions can be used standalone, or as arguments +to hashkit_set_hash_fn(3) or hashkit_set_continuum_hash_fn(3). +.sp +The hashkit_hsieh() is only available if the library is built with +the appropriate flag enabled. +.SH RETURN VALUE +.sp +A 32\-bit hash value. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Brian Aker, <\fI\%brian@tangent.org\fP> +.SH SEE ALSO +.sp +hashkit_create(3) hashkit_value(3) hashkit_set_hash_fn(3) +hashkit_set_continuum_hash_fn(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/hashkit_hsieh.3 b/docs/man/hashkit_hsieh.3 new file mode 100644 index 00000000..06eea99b --- /dev/null +++ b/docs/man/hashkit_hsieh.3 @@ -0,0 +1,84 @@ +.TH "HASHKIT_HSIEH" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +hashkit_hsieh \- libhashkit Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Various hash functions to use for calculating values for keys +.SH LIBRARY +.sp +C Library for hashing algorithms (libhashkit, \-lhashkit) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +uint32_t hashkit_default(const char *key, size_t key_length); +uint32_t hashkit_fnv1_64(const char *key, size_t key_length); +uint32_t hashkit_fnv1a_64(const char *key, size_t key_length); +uint32_t hashkit_fnv1_32(const char *key, size_t key_length); +uint32_t hashkit_fnv1a_32(const char *key, size_t key_length); +uint32_t hashkit_crc32(const char *key, size_t key_length); +uint32_t hashkit_hsieh(const char *key, size_t key_length); +uint32_t hashkit_murmur(const char *key, size_t key_length); +uint32_t hashkit_jenkins(const char *key, size_t key_length); +uint32_t hashkit_md5(const char *key, size_t key_length); +.ft P +.fi +.SH DESCRIPTION +.sp +These functions generate hash values from a key using a variety of +algorithms. These functions can be used standalone, or as arguments +to hashkit_set_hash_fn(3) or hashkit_set_continuum_hash_fn(3). +.sp +The hashkit_hsieh() is only available if the library is built with +the appropriate flag enabled. +.SH RETURN VALUE +.sp +A 32\-bit hash value. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Brian Aker, <\fI\%brian@tangent.org\fP> +.SH SEE ALSO +.sp +hashkit_create(3) hashkit_value(3) hashkit_set_hash_fn(3) +hashkit_set_continuum_hash_fn(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/hashkit_is_allocated.3 b/docs/man/hashkit_is_allocated.3 new file mode 100644 index 00000000..27a64e6f --- /dev/null +++ b/docs/man/hashkit_is_allocated.3 @@ -0,0 +1,90 @@ +.TH "HASHKIT_IS_ALLOCATED" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +hashkit_is_allocated \- libhashkit Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Create and destroy hashkit objects +.SH LIBRARY +.sp +C Library for hashing algorithms (libhashkit, \-lhashkit) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +hashkit_st *hashkit_create(hashkit_st *hash); + +hashkit_st *hashkit_clone(hashkit_st *destination, const hashkit_st *ptr); + +void hashkit_free(hashkit_st *hash); + +bool hashkit_is_allocated(const hashkit_st *hash); +.ft P +.fi +.SH DESCRIPTION +.sp +The hashkit_create() function initializes a hashkit object for use. If +you pass a NULL argument for hash, then the memory for the object is +allocated. If you specify a pre\-allocated piece of memory, that is +initialized for use. +.sp +The hashkit_clone() function initializes a hashkit object much like +hashkit_create(), but instead of using default settings it will use +the settings of the ptr hashkit object. +.sp +The hashkit_free() frees any resources being consumed by the hashkit +objects that were initialized with hashkit_create() or hashkit_clone(). +.sp +The hashkit_is_allocated() reports where the memory was allocated +for a hashkit object. +.SH RETURN VALUE +.sp +hashkit_create() and hashkit_clone() will return NULL on failure or +non\-NULL on success. +.sp +hashkit_is_allocated() returns true if the memory for the hashkit +object was allocated inside of hashkit_create() or hashkit_clone(), +otherwise it is false and was user\-supplied memory. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Brian Aker, <\fI\%brian@tangent.org\fP> +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/hashkit_jenkins.3 b/docs/man/hashkit_jenkins.3 new file mode 100644 index 00000000..871568e2 --- /dev/null +++ b/docs/man/hashkit_jenkins.3 @@ -0,0 +1,84 @@ +.TH "HASHKIT_JENKINS" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +hashkit_jenkins \- libhashkit Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Various hash functions to use for calculating values for keys +.SH LIBRARY +.sp +C Library for hashing algorithms (libhashkit, \-lhashkit) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +uint32_t hashkit_default(const char *key, size_t key_length); +uint32_t hashkit_fnv1_64(const char *key, size_t key_length); +uint32_t hashkit_fnv1a_64(const char *key, size_t key_length); +uint32_t hashkit_fnv1_32(const char *key, size_t key_length); +uint32_t hashkit_fnv1a_32(const char *key, size_t key_length); +uint32_t hashkit_crc32(const char *key, size_t key_length); +uint32_t hashkit_hsieh(const char *key, size_t key_length); +uint32_t hashkit_murmur(const char *key, size_t key_length); +uint32_t hashkit_jenkins(const char *key, size_t key_length); +uint32_t hashkit_md5(const char *key, size_t key_length); +.ft P +.fi +.SH DESCRIPTION +.sp +These functions generate hash values from a key using a variety of +algorithms. These functions can be used standalone, or as arguments +to hashkit_set_hash_fn(3) or hashkit_set_continuum_hash_fn(3). +.sp +The hashkit_hsieh() is only available if the library is built with +the appropriate flag enabled. +.SH RETURN VALUE +.sp +A 32\-bit hash value. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Brian Aker, <\fI\%brian@tangent.org\fP> +.SH SEE ALSO +.sp +hashkit_create(3) hashkit_value(3) hashkit_set_hash_fn(3) +hashkit_set_continuum_hash_fn(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/hashkit_md5.3 b/docs/man/hashkit_md5.3 new file mode 100644 index 00000000..a5400be7 --- /dev/null +++ b/docs/man/hashkit_md5.3 @@ -0,0 +1,84 @@ +.TH "HASHKIT_MD5" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +hashkit_md5 \- libhashkit Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Various hash functions to use for calculating values for keys +.SH LIBRARY +.sp +C Library for hashing algorithms (libhashkit, \-lhashkit) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +uint32_t hashkit_default(const char *key, size_t key_length); +uint32_t hashkit_fnv1_64(const char *key, size_t key_length); +uint32_t hashkit_fnv1a_64(const char *key, size_t key_length); +uint32_t hashkit_fnv1_32(const char *key, size_t key_length); +uint32_t hashkit_fnv1a_32(const char *key, size_t key_length); +uint32_t hashkit_crc32(const char *key, size_t key_length); +uint32_t hashkit_hsieh(const char *key, size_t key_length); +uint32_t hashkit_murmur(const char *key, size_t key_length); +uint32_t hashkit_jenkins(const char *key, size_t key_length); +uint32_t hashkit_md5(const char *key, size_t key_length); +.ft P +.fi +.SH DESCRIPTION +.sp +These functions generate hash values from a key using a variety of +algorithms. These functions can be used standalone, or as arguments +to hashkit_set_hash_fn(3) or hashkit_set_continuum_hash_fn(3). +.sp +The hashkit_hsieh() is only available if the library is built with +the appropriate flag enabled. +.SH RETURN VALUE +.sp +A 32\-bit hash value. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Brian Aker, <\fI\%brian@tangent.org\fP> +.SH SEE ALSO +.sp +hashkit_create(3) hashkit_value(3) hashkit_set_hash_fn(3) +hashkit_set_continuum_hash_fn(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/hashkit_murmur.3 b/docs/man/hashkit_murmur.3 new file mode 100644 index 00000000..e8ea61b6 --- /dev/null +++ b/docs/man/hashkit_murmur.3 @@ -0,0 +1,84 @@ +.TH "HASHKIT_MURMUR" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +hashkit_murmur \- libhashkit Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Various hash functions to use for calculating values for keys +.SH LIBRARY +.sp +C Library for hashing algorithms (libhashkit, \-lhashkit) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +uint32_t hashkit_default(const char *key, size_t key_length); +uint32_t hashkit_fnv1_64(const char *key, size_t key_length); +uint32_t hashkit_fnv1a_64(const char *key, size_t key_length); +uint32_t hashkit_fnv1_32(const char *key, size_t key_length); +uint32_t hashkit_fnv1a_32(const char *key, size_t key_length); +uint32_t hashkit_crc32(const char *key, size_t key_length); +uint32_t hashkit_hsieh(const char *key, size_t key_length); +uint32_t hashkit_murmur(const char *key, size_t key_length); +uint32_t hashkit_jenkins(const char *key, size_t key_length); +uint32_t hashkit_md5(const char *key, size_t key_length); +.ft P +.fi +.SH DESCRIPTION +.sp +These functions generate hash values from a key using a variety of +algorithms. These functions can be used standalone, or as arguments +to hashkit_set_hash_fn(3) or hashkit_set_continuum_hash_fn(3). +.sp +The hashkit_hsieh() is only available if the library is built with +the appropriate flag enabled. +.SH RETURN VALUE +.sp +A 32\-bit hash value. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Brian Aker, <\fI\%brian@tangent.org\fP> +.SH SEE ALSO +.sp +hashkit_create(3) hashkit_value(3) hashkit_set_hash_fn(3) +hashkit_set_continuum_hash_fn(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/hashkit_value.3 b/docs/man/hashkit_value.3 new file mode 100644 index 00000000..71272045 --- /dev/null +++ b/docs/man/hashkit_value.3 @@ -0,0 +1,74 @@ +.TH "HASHKIT_VALUE" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +hashkit_value \- libhashkit Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Generate a value for the given key +.SH LIBRARY +.sp +C Library for hashing algorithms (libhashkit, \-lhashkit) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +uint32_t hashkit_value(hashkit_st *hash, + const char *key, + size_t key_length); +.ft P +.fi +.SH DESCRIPTION +.sp +The hashkit_value() function generates a 32\-bit hash value from the +given key and key_length. The hash argument is an initialized hashkit +object, and distribution type and hash function is used from this +object while generating the value. +.SH RETURN VALUE +.sp +A 32\-bit hash value. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Brian Aker, <\fI\%brian@tangent.org\fP> +.SH SEE ALSO +.sp +hashkit_create(3) hashkit_set_distribution(3) hashkit_set_hash_fn(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/libmemcached.3 b/docs/man/libmemcached.3 new file mode 100644 index 00000000..f8e8bc4a --- /dev/null +++ b/docs/man/libmemcached.3 @@ -0,0 +1,187 @@ +.TH "LIBMEMCACHED" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +libmemcached \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Client library for memcached +.SH LIBRARY +.sp +C Client Library for memcached (libmemcached, \-lmemcached) +.SH SYNOPSIS +.sp +.nf +.ft C +#include +.ft P +.fi +.SH DESCRIPTION +.sp +"Memcached is a high\-performance, distributed memory object caching +system, generic in nature, but intended for use in speeding up dynamic web +applications by alleviating database load." \fI\%http://danga.com/memcached/\fP +.sp +\fBlibmemcached\fP is a small, thread\-safe client library for the +memcached protocol. The code has all been written with an eye to allow +for both web and embedded usage. It handles the work behind routing +particular keys to specific servers that you specify (and values are +matched based on server order as supplied by you). It implements both +a modula and consistent method of object distribution. +.sp +There are multiple implemented routing and hashing methods. See the +memcached_behavior_set() manpage. +.sp +All operations are performed against a \fBmemcached_st\fP structure. +These structures can either be dynamically allocated or statically +allocated and then initialized by memcached_create(). Functions have been +written in order to encapsulate the \fBmemcached_st\fP. It is not +recommended that you operate directly against the structure. +.sp +Nearly all functions return a \fBmemcached_return_t\fP value. +This value can be translated to a printable string with memcached_strerror(3). +.sp +Partitioning based on keys is supported in the library. Using the key partioning +functions it is possible to group sets of object onto servers. +.sp +\fBmemcached_st\fP structures are thread\-safe, but each thread must +contain its own structure (that is, if you want to share these among +threads you must provide your own locking). No global variables are +used in this library. +.sp +If you are working with GNU autotools you will want to add the following to +your configure.ac to properly include libmemcached in your application. +.sp +PKG_CHECK_MODULES(DEPS, libmemcached >= 0.8.0) +AC_SUBST(DEPS_CFLAGS) +AC_SUBST(DEPS_LIBS) +.sp +Some features of the library must be enabled through memcached_behavior_set(). +.sp +Hope you enjoy it! +.SH CONSTANTS +.sp +A number of constants have been provided for in the library. +.sp +MEMCACHED_DEFAULT_PORT +.INDENT 0.0 +.INDENT 3.5 +.sp +The default port used by memcached(3). +.UNINDENT +.UNINDENT +.sp +MEMCACHED_MAX_KEY +.INDENT 0.0 +.INDENT 3.5 +.sp +Default maximum size of a key (which includes the null pointer). Master keys +have no limit, this only applies to keys used for storage. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_MAX_KEY +.INDENT 0.0 +.INDENT 3.5 +.sp +Default size of key (which includes the null pointer). +.UNINDENT +.UNINDENT +.sp +MEMCACHED_STRIDE +.INDENT 0.0 +.INDENT 3.5 +.sp +This is the "stride" used in the consistent hash used between replicas. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_MAX_HOST_LENGTH +.INDENT 0.0 +.INDENT 3.5 +.sp +Maximum allowed size of the hostname. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_VERSION_STRING +.INDENT 0.0 +.INDENT 3.5 +.sp +String value of libmemcached version such as "1.23.4" +.UNINDENT +.UNINDENT +.sp +MEMCACHED_MAJOR_VERSION +.INDENT 0.0 +.INDENT 3.5 +.sp +Major version value. Such as 1.23.4, would be 1 +.UNINDENT +.UNINDENT +.sp +MEMCACHED_MINOR_VERSION +.INDENT 0.0 +.INDENT 3.5 +.sp +Major version value. Such as 1.23.4, would be 23 +.UNINDENT +.UNINDENT +.sp +MEMCACHED_MICRO_VERSION +.INDENT 0.0 +.INDENT 3.5 +.sp +Major version value. Such as 1.23.4, would be 4 +.UNINDENT +.UNINDENT +.SH THREADS AND PROCESSES +.sp +When using threads or forked processes it is important to keep an instance +of \fBmemcached_st\fP per process or thread. Without creating your own locking +structures you can not share a single \fBmemcached_st\fP. You can though call +memcached_quit(3) on a \fBmemcached_st\fP and then use the resulting cloned +structure. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Brian Aker, <\fI\%brian@tangent.org\fP> +.SH SEE ALSO +.sp +memcached(1) libmemcached_examples(3) libmemcached(1) memcat(1) memcp(1) memflush(1) memrm(1) memslap(1) memstat(1) memcached_fetch(3) memcached_replace(3) memcached_server_list_free(3) libmemcached_examples(3) memcached_clone(3) memcached_free(3) memcached_server_add(3) memcached_server_push(3) memcached_add(3) memcached_get(3) memcached_server_count(3) memcached_servers_parse(3) memcached_create(3) memcached_increment(3) memcached_server_list(3) memcached_set(3) memcached_decrement(3) memcached_mget(3) memcached_server_list_append(3) memcached_strerror(3) memcached_delete(3) memcached_quit(3) memcached_server_list_count(3) memcached_verbosity(3) memcached_server_add_unix_socket(3) memcached_result_create(3) memcached_result_free(3) memcached_result_key_value(3) memcached_result_key_length(3) memcached_result_value(3) memcached_result_length(3) memcached_result_flags(3) memcached_result_cas(3) memcached_result_st(3) memcached_append(3) memcached_prepend(3) memcached_fetch_result(3) memerror(1) memcached_get_by_key(3) memcached_mget_by_key(3) memcached_delete_by_key(3) memcached_fetch_execute(3) memcached_callback_get(3) memcached_callback_set(3) memcached_version(3) memcached_lib_version(3) memcached_result_set_value(3) memcached_dump(3) memdump(1) memcached_set_memory_allocators(3) memcached_get_memory_allocators(3) memcached_get_user_data(3) memcached_set_user_data(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/libmemcached_examples.3 b/docs/man/libmemcached_examples.3 new file mode 100644 index 00000000..621116d6 --- /dev/null +++ b/docs/man/libmemcached_examples.3 @@ -0,0 +1,156 @@ +.TH "LIBMEMCACHED_EXAMPLES" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +libmemcached_examples \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Examples for libmemcached +.SH DESCRIPTION +.sp +For full examples, test cases are found in tests/*.c in the main +distribution. These are always up to date, and are used for each test run of +the library. +.SS Creating and Freeing structure +.sp +.nf +.ft C +memcached_st *memc; +memcached_return_t rc; + +memc= memcached_create(NULL); +\&...do stuff... +memcached_free(memc); +.ft P +.fi +.sp +The above code would create a connection and then free the connection when +finished. +.SS Connecting to servers +.sp +.nf +.ft C +memcached_server_st *servers; +memcached_st *memc= memcached_create(NULL); +char servername[]= "0.example.com"; + +servers= memcached_server_list_append(NULL, servername, 400, &rc); + +for (x= 0; x < 20; x++) +{ + char buffer[SMALL_STRING_LEN]; + + snprintf(buffer, SMALL_STRING_LEN, "%u.example.com", 400+x); + servers= memcached_server_list_append(servers, buffer, 401, &rc); +} +rc= memcached_server_push(memc, servers); +memcached_server_free(servers); +memcached_free(memc); +.ft P +.fi +.sp +In the above code you create a \fBmemcached_st\fP object that you then feed in a +single host into. In the for loop you build a \fBmemcached_server_st\fPpointer that you then later feed via memcached_server_push() into the +\fBmemcached_st\fP structure. +.sp +You can reuse the \fBmemcached_server_st\fP object with multile \fBmemcached_st\fPstructures. +.SS Adding a value to the server +.sp +.nf +.ft C +char *key= "foo"; +char *value; +size_t value_length= 8191; +unsigned int x; + +value = (char*)malloc(value_length); +assert(value); + +for (x= 0; x < value_length; x++) +value[x] = (char) (x % 127); + +for (x= 0; x < 1; x++) +{ + rc= memcached_set(memc, key, strlen(key), + value, value_length, + (time_t)0, (uint32_t)0); + assert(rc == MEMCACHED_SUCCESS); +} + +free(value); +.ft P +.fi +.sp +It is best practice to always look at the return value of any operation. +.SS Fetching multiple values +.sp +.nf +.ft C +memcached_return_t rc; +char *keys[]= {"fudge", "son", "food"}; +size_t key_length[]= {5, 3, 4}; +unsigned int x; +uint32_t flags; + +char return_key[MEMCACHED_MAX_KEY]; +size_t return_key_length; +char *return_value; +size_t return_value_length; + +rc= memcached_mget(memc, keys, key_length, 3); + +x= 0; +while ((return_value= memcached_fetch(memc, return_key, &return_key_length, + &return_value_length, &flags, &rc))) +{ + free(return_value); + x++; +} +.ft P +.fi +.sp +Notice that you freed values returned from memcached_fetch(). The define +\fBMEMCACHED_MAX_KEY\fP is provided for usage. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Brian Aker, <\fI\%brian@tangent.org\fP> +.SH SEE ALSO +.sp +memcached(1) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/libmemcachedutil.3 b/docs/man/libmemcachedutil.3 new file mode 100644 index 00000000..ab0d7ea8 --- /dev/null +++ b/docs/man/libmemcachedutil.3 @@ -0,0 +1,73 @@ +.TH "LIBMEMCACHEDUTIL" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +libmemcachedutil \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +libmemcachedutil \- Utility library for libmemcached +.SH LIBRARY +.sp +C Client Library containing utility functions for libmemcached (libmemcachedutil, \-lmemcachedutil) +.SH SYNOPSIS +.sp +.nf +.ft C +cc [ flag ... ] file ... \-lmemcachedutil + +#include +.ft P +.fi +.SH DESCRIPTION +.sp +\fBlibmemcachedutil\fP is a small and thread\-safe client library that provides +extra functionality built on top of \fBlibmemcached\fP. +.SH THREADS +.sp +Do not try to access an instance of \fBmemcached_st\fP from multiple threads +at the same time. If you want to access memcached from multiple threads +you should either clone the \fBmemcached_st\fP, or use the memcached pool +implementation. see memcached_pool_create(3). +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Trond Norbye, <\fI\%trond.norbye@gmail.com\fP> +.SH SEE ALSO +.sp +libmemcached(3) memcached_pool_create(3) memcached_pool_destroy(3) memcached_pool_pop(3) memcached_pool_push(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcached_add.3 b/docs/man/memcached_add.3 new file mode 100644 index 00000000..7457d382 --- /dev/null +++ b/docs/man/memcached_add.3 @@ -0,0 +1,216 @@ +.TH "MEMCACHED_ADD" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcached_add \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Store value on server +.SH LIBRARY +.sp +C Client Library for memcached (libmemcached, \-lmemcached) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +memcached_return_t + memcached_set (memcached_st *ptr, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + +memcached_return_t + memcached_add (memcached_st *ptr, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + +memcached_return_t + memcached_replace (memcached_st *ptr, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + +memcached_return_t + memcached_prepend(memcached_st *ptr, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags) + +memcached_return_t + memcached_append(memcached_st *ptr, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags) +memcached_return_t + memcached_cas(memcached_st *ptr, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags, + uint64_t cas); + +memcached_return_t + memcached_set_by_key(memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + +memcached_return_t + memcached_add_by_key(memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + +memcached_return_t + memcached_replace_by_key(memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + +memcached_return_t + memcached_prepend_by_key(memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + +memcached_return_t + memcached_append_by_key(memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + +memcached_return_t + memcached_cas_by_key(memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags, + uint64_t cas); +.ft P +.fi +.SH DESCRIPTION +.sp +memcached_set(), memcached_add(), and memcached_replace() are all used to +store information on the server. All methods take a key, and its length to +store the object. Keys are currently limited to 250 characters by the +memcached(1) server. You must also supply a value and a length. Optionally you +may support an expiration time for the object and a 16 byte value (it is +meant to be used as a bitmap). +.sp +memcached_set() will write an object to the server. If an object already +exists it will overwrite what is in the server. If the object does not exist +it will be written. If you are using the non\-blocking mode this function +will always return true unless a network error occurs. +.sp +memcached_replace() replaces an object on the server. If the object is not +found on the server an error occurs. +.sp +memcached_add() adds an object to the server. If the object is found on the +server an error occurs, otherwise the value is stored. +.sp +memcached_prepend() places a segment of data before the last piece of data +stored. Currently expiration and key are not used in the server. +.sp +memcached_append() places a segment of data at the end of the last piece of +data stored. Currently expiration and key are not used in the server. +.sp +memcached_cas() overwrites data in the server as long as the "cas" value is +still the same in the server. You can get the cas value of a result by +calling memcached_result_cas() on a memcached_result_st(3) structure. At the point +that this note was written cas is still buggy in memached. Turning on support +for it in libmemcached(3) is optional. Please see memcached_set() for +information on how to do this. +.sp +memcached_set_by_key(), memcached_add_by_key(), memcached_replace_by_key(), +memcached_prepend_by_key(), memcached_append_by_key_by_key(), +memcached_cas_by_key() methods all behave in a similar method as the non key +methods. The difference is that they use their master_key parameter to map +objects to particular servers. +.sp +If you are looking for performance, memcached_set() with non\-blocking IO is +the fastest way to store data on the server. +.sp +All of the above functions are supported with the \fBMEMCACHED_BEHAVIOR_USE_UDP\fPbehavior enabled. But when using these operations with this behavior on, there +are limits to the size of the payload being sent to the server. The reason for +these limits is that the Memcahed Server does not allow multi\-datagram requests +and the current server implementation sets a datagram size to 1400 bytes. Due +to protocol overhead, the actual limit of the user supplied data is less than +1400 bytes and depends on the protocol in use as well as the operation being +executed. When running with the binary protocol, \(ga\(ga MEMCACHED_BEHAVIOR_BINARY_PROTOCOL\(ga\(ga, +the size of the key,value, flags and expiry combined may not exceed 1368 bytes. +When running with the ASCII protocol, the exact limit fluctuates depending on +which function is being executed and whether the function is a cas operation +or not. For non\-cas ASCII set operations, there are at least 1335 bytes available +to split among the key, key_prefix, and value; for cas ASCII operations there are +at least 1318 bytes available to split among the key, key_prefix and value. If the +total size of the command, including overhead, exceeds 1400 bytes, a \fBMEMCACHED_WRITE_FAILURE\fPwill be returned. +.SH RETURN +.sp +All methods return a value of type \fBmemcached_return_t\fP. +On success the value will be \fBMEMCACHED_SUCCESS\fP. +Use memcached_strerror() to translate this value to a printable string. +.sp +For memcached_replace() and memcached_add(), \fBMEMCACHED_NOTSTORED\fP is a +legitmate error in the case of a collision. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Brian Aker, <\fI\%brian@tangent.org\fP> +.SH SEE ALSO +.sp +memcached(1) libmemached(3) memcached_strerror(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcached_add_by_key.3 b/docs/man/memcached_add_by_key.3 new file mode 100644 index 00000000..15bdbca2 --- /dev/null +++ b/docs/man/memcached_add_by_key.3 @@ -0,0 +1,216 @@ +.TH "MEMCACHED_ADD_BY_KEY" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcached_add_by_key \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Store value on server +.SH LIBRARY +.sp +C Client Library for memcached (libmemcached, \-lmemcached) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +memcached_return_t + memcached_set (memcached_st *ptr, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + +memcached_return_t + memcached_add (memcached_st *ptr, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + +memcached_return_t + memcached_replace (memcached_st *ptr, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + +memcached_return_t + memcached_prepend(memcached_st *ptr, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags) + +memcached_return_t + memcached_append(memcached_st *ptr, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags) +memcached_return_t + memcached_cas(memcached_st *ptr, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags, + uint64_t cas); + +memcached_return_t + memcached_set_by_key(memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + +memcached_return_t + memcached_add_by_key(memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + +memcached_return_t + memcached_replace_by_key(memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + +memcached_return_t + memcached_prepend_by_key(memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + +memcached_return_t + memcached_append_by_key(memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + +memcached_return_t + memcached_cas_by_key(memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags, + uint64_t cas); +.ft P +.fi +.SH DESCRIPTION +.sp +memcached_set(), memcached_add(), and memcached_replace() are all used to +store information on the server. All methods take a key, and its length to +store the object. Keys are currently limited to 250 characters by the +memcached(1) server. You must also supply a value and a length. Optionally you +may support an expiration time for the object and a 16 byte value (it is +meant to be used as a bitmap). +.sp +memcached_set() will write an object to the server. If an object already +exists it will overwrite what is in the server. If the object does not exist +it will be written. If you are using the non\-blocking mode this function +will always return true unless a network error occurs. +.sp +memcached_replace() replaces an object on the server. If the object is not +found on the server an error occurs. +.sp +memcached_add() adds an object to the server. If the object is found on the +server an error occurs, otherwise the value is stored. +.sp +memcached_prepend() places a segment of data before the last piece of data +stored. Currently expiration and key are not used in the server. +.sp +memcached_append() places a segment of data at the end of the last piece of +data stored. Currently expiration and key are not used in the server. +.sp +memcached_cas() overwrites data in the server as long as the "cas" value is +still the same in the server. You can get the cas value of a result by +calling memcached_result_cas() on a memcached_result_st(3) structure. At the point +that this note was written cas is still buggy in memached. Turning on support +for it in libmemcached(3) is optional. Please see memcached_set() for +information on how to do this. +.sp +memcached_set_by_key(), memcached_add_by_key(), memcached_replace_by_key(), +memcached_prepend_by_key(), memcached_append_by_key_by_key(), +memcached_cas_by_key() methods all behave in a similar method as the non key +methods. The difference is that they use their master_key parameter to map +objects to particular servers. +.sp +If you are looking for performance, memcached_set() with non\-blocking IO is +the fastest way to store data on the server. +.sp +All of the above functions are supported with the \fBMEMCACHED_BEHAVIOR_USE_UDP\fPbehavior enabled. But when using these operations with this behavior on, there +are limits to the size of the payload being sent to the server. The reason for +these limits is that the Memcahed Server does not allow multi\-datagram requests +and the current server implementation sets a datagram size to 1400 bytes. Due +to protocol overhead, the actual limit of the user supplied data is less than +1400 bytes and depends on the protocol in use as well as the operation being +executed. When running with the binary protocol, \(ga\(ga MEMCACHED_BEHAVIOR_BINARY_PROTOCOL\(ga\(ga, +the size of the key,value, flags and expiry combined may not exceed 1368 bytes. +When running with the ASCII protocol, the exact limit fluctuates depending on +which function is being executed and whether the function is a cas operation +or not. For non\-cas ASCII set operations, there are at least 1335 bytes available +to split among the key, key_prefix, and value; for cas ASCII operations there are +at least 1318 bytes available to split among the key, key_prefix and value. If the +total size of the command, including overhead, exceeds 1400 bytes, a \fBMEMCACHED_WRITE_FAILURE\fPwill be returned. +.SH RETURN +.sp +All methods return a value of type \fBmemcached_return_t\fP. +On success the value will be \fBMEMCACHED_SUCCESS\fP. +Use memcached_strerror() to translate this value to a printable string. +.sp +For memcached_replace() and memcached_add(), \fBMEMCACHED_NOTSTORED\fP is a +legitmate error in the case of a collision. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Brian Aker, <\fI\%brian@tangent.org\fP> +.SH SEE ALSO +.sp +memcached(1) libmemached(3) memcached_strerror(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcached_analyze.3 b/docs/man/memcached_analyze.3 new file mode 100644 index 00000000..fef39881 --- /dev/null +++ b/docs/man/memcached_analyze.3 @@ -0,0 +1,86 @@ +.TH "MEMCACHED_ANALYZE" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcached_analyze \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Analyze server information +.SH LIBRARY +.sp +C Client Library for memcached (libmemcached, \-lmemcached) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +memcached_analysis_st * + memcached_analyze (memcached_st *ptr, + memcached_stat_st *stat, + memcached_return_t *error); +.ft P +.fi +.SH DESCRIPTION +.sp +libmemcached(3) has the ability to query a memcached server (or collection +of servers) for their current state. Queries to find state return a +\fBmemcached_analysis_st\fP structure. You are responsible for freeing this structure. +.sp +memcached_analyze() analyzes useful information based on the provided servers +and sets the result to the \fBmemcached_analysis_st\fP structure. The return value +must be freed by the calling application. +.sp +A command line tool, memstat(1) with the option \-\-analyze, is provided so that +you do not have to write an application to use this method. +.SH RETURN +.sp +A pointer to the allocated \fBmemcached_analysis_st\fP structure on success and +a NULL pointer on failure. You may inspect the error detail by checking the +\fBmemcached_return_t\fP value. +.sp +Any method returning a \fBmemcached_analysis_st\fP expects you to free the +memory allocated for it. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Toru Maesaka, <\fI\%dev@torum.net\fP> +.SH SEE ALSO +.sp +memcached(1) libmemcached(3) memcached_strerror(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcached_append.3 b/docs/man/memcached_append.3 new file mode 100644 index 00000000..b7c0e4ac --- /dev/null +++ b/docs/man/memcached_append.3 @@ -0,0 +1,216 @@ +.TH "MEMCACHED_APPEND" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcached_append \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Store value on server +.SH LIBRARY +.sp +C Client Library for memcached (libmemcached, \-lmemcached) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +memcached_return_t + memcached_set (memcached_st *ptr, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + +memcached_return_t + memcached_add (memcached_st *ptr, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + +memcached_return_t + memcached_replace (memcached_st *ptr, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + +memcached_return_t + memcached_prepend(memcached_st *ptr, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags) + +memcached_return_t + memcached_append(memcached_st *ptr, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags) +memcached_return_t + memcached_cas(memcached_st *ptr, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags, + uint64_t cas); + +memcached_return_t + memcached_set_by_key(memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + +memcached_return_t + memcached_add_by_key(memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + +memcached_return_t + memcached_replace_by_key(memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + +memcached_return_t + memcached_prepend_by_key(memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + +memcached_return_t + memcached_append_by_key(memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + +memcached_return_t + memcached_cas_by_key(memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags, + uint64_t cas); +.ft P +.fi +.SH DESCRIPTION +.sp +memcached_set(), memcached_add(), and memcached_replace() are all used to +store information on the server. All methods take a key, and its length to +store the object. Keys are currently limited to 250 characters by the +memcached(1) server. You must also supply a value and a length. Optionally you +may support an expiration time for the object and a 16 byte value (it is +meant to be used as a bitmap). +.sp +memcached_set() will write an object to the server. If an object already +exists it will overwrite what is in the server. If the object does not exist +it will be written. If you are using the non\-blocking mode this function +will always return true unless a network error occurs. +.sp +memcached_replace() replaces an object on the server. If the object is not +found on the server an error occurs. +.sp +memcached_add() adds an object to the server. If the object is found on the +server an error occurs, otherwise the value is stored. +.sp +memcached_prepend() places a segment of data before the last piece of data +stored. Currently expiration and key are not used in the server. +.sp +memcached_append() places a segment of data at the end of the last piece of +data stored. Currently expiration and key are not used in the server. +.sp +memcached_cas() overwrites data in the server as long as the "cas" value is +still the same in the server. You can get the cas value of a result by +calling memcached_result_cas() on a memcached_result_st(3) structure. At the point +that this note was written cas is still buggy in memached. Turning on support +for it in libmemcached(3) is optional. Please see memcached_set() for +information on how to do this. +.sp +memcached_set_by_key(), memcached_add_by_key(), memcached_replace_by_key(), +memcached_prepend_by_key(), memcached_append_by_key_by_key(), +memcached_cas_by_key() methods all behave in a similar method as the non key +methods. The difference is that they use their master_key parameter to map +objects to particular servers. +.sp +If you are looking for performance, memcached_set() with non\-blocking IO is +the fastest way to store data on the server. +.sp +All of the above functions are supported with the \fBMEMCACHED_BEHAVIOR_USE_UDP\fPbehavior enabled. But when using these operations with this behavior on, there +are limits to the size of the payload being sent to the server. The reason for +these limits is that the Memcahed Server does not allow multi\-datagram requests +and the current server implementation sets a datagram size to 1400 bytes. Due +to protocol overhead, the actual limit of the user supplied data is less than +1400 bytes and depends on the protocol in use as well as the operation being +executed. When running with the binary protocol, \(ga\(ga MEMCACHED_BEHAVIOR_BINARY_PROTOCOL\(ga\(ga, +the size of the key,value, flags and expiry combined may not exceed 1368 bytes. +When running with the ASCII protocol, the exact limit fluctuates depending on +which function is being executed and whether the function is a cas operation +or not. For non\-cas ASCII set operations, there are at least 1335 bytes available +to split among the key, key_prefix, and value; for cas ASCII operations there are +at least 1318 bytes available to split among the key, key_prefix and value. If the +total size of the command, including overhead, exceeds 1400 bytes, a \fBMEMCACHED_WRITE_FAILURE\fPwill be returned. +.SH RETURN +.sp +All methods return a value of type \fBmemcached_return_t\fP. +On success the value will be \fBMEMCACHED_SUCCESS\fP. +Use memcached_strerror() to translate this value to a printable string. +.sp +For memcached_replace() and memcached_add(), \fBMEMCACHED_NOTSTORED\fP is a +legitmate error in the case of a collision. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Brian Aker, <\fI\%brian@tangent.org\fP> +.SH SEE ALSO +.sp +memcached(1) libmemached(3) memcached_strerror(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcached_append_by_key.3 b/docs/man/memcached_append_by_key.3 new file mode 100644 index 00000000..0958b1ea --- /dev/null +++ b/docs/man/memcached_append_by_key.3 @@ -0,0 +1,216 @@ +.TH "MEMCACHED_APPEND_BY_KEY" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcached_append_by_key \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Store value on server +.SH LIBRARY +.sp +C Client Library for memcached (libmemcached, \-lmemcached) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +memcached_return_t + memcached_set (memcached_st *ptr, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + +memcached_return_t + memcached_add (memcached_st *ptr, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + +memcached_return_t + memcached_replace (memcached_st *ptr, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + +memcached_return_t + memcached_prepend(memcached_st *ptr, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags) + +memcached_return_t + memcached_append(memcached_st *ptr, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags) +memcached_return_t + memcached_cas(memcached_st *ptr, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags, + uint64_t cas); + +memcached_return_t + memcached_set_by_key(memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + +memcached_return_t + memcached_add_by_key(memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + +memcached_return_t + memcached_replace_by_key(memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + +memcached_return_t + memcached_prepend_by_key(memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + +memcached_return_t + memcached_append_by_key(memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + +memcached_return_t + memcached_cas_by_key(memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags, + uint64_t cas); +.ft P +.fi +.SH DESCRIPTION +.sp +memcached_set(), memcached_add(), and memcached_replace() are all used to +store information on the server. All methods take a key, and its length to +store the object. Keys are currently limited to 250 characters by the +memcached(1) server. You must also supply a value and a length. Optionally you +may support an expiration time for the object and a 16 byte value (it is +meant to be used as a bitmap). +.sp +memcached_set() will write an object to the server. If an object already +exists it will overwrite what is in the server. If the object does not exist +it will be written. If you are using the non\-blocking mode this function +will always return true unless a network error occurs. +.sp +memcached_replace() replaces an object on the server. If the object is not +found on the server an error occurs. +.sp +memcached_add() adds an object to the server. If the object is found on the +server an error occurs, otherwise the value is stored. +.sp +memcached_prepend() places a segment of data before the last piece of data +stored. Currently expiration and key are not used in the server. +.sp +memcached_append() places a segment of data at the end of the last piece of +data stored. Currently expiration and key are not used in the server. +.sp +memcached_cas() overwrites data in the server as long as the "cas" value is +still the same in the server. You can get the cas value of a result by +calling memcached_result_cas() on a memcached_result_st(3) structure. At the point +that this note was written cas is still buggy in memached. Turning on support +for it in libmemcached(3) is optional. Please see memcached_set() for +information on how to do this. +.sp +memcached_set_by_key(), memcached_add_by_key(), memcached_replace_by_key(), +memcached_prepend_by_key(), memcached_append_by_key_by_key(), +memcached_cas_by_key() methods all behave in a similar method as the non key +methods. The difference is that they use their master_key parameter to map +objects to particular servers. +.sp +If you are looking for performance, memcached_set() with non\-blocking IO is +the fastest way to store data on the server. +.sp +All of the above functions are supported with the \fBMEMCACHED_BEHAVIOR_USE_UDP\fPbehavior enabled. But when using these operations with this behavior on, there +are limits to the size of the payload being sent to the server. The reason for +these limits is that the Memcahed Server does not allow multi\-datagram requests +and the current server implementation sets a datagram size to 1400 bytes. Due +to protocol overhead, the actual limit of the user supplied data is less than +1400 bytes and depends on the protocol in use as well as the operation being +executed. When running with the binary protocol, \(ga\(ga MEMCACHED_BEHAVIOR_BINARY_PROTOCOL\(ga\(ga, +the size of the key,value, flags and expiry combined may not exceed 1368 bytes. +When running with the ASCII protocol, the exact limit fluctuates depending on +which function is being executed and whether the function is a cas operation +or not. For non\-cas ASCII set operations, there are at least 1335 bytes available +to split among the key, key_prefix, and value; for cas ASCII operations there are +at least 1318 bytes available to split among the key, key_prefix and value. If the +total size of the command, including overhead, exceeds 1400 bytes, a \fBMEMCACHED_WRITE_FAILURE\fPwill be returned. +.SH RETURN +.sp +All methods return a value of type \fBmemcached_return_t\fP. +On success the value will be \fBMEMCACHED_SUCCESS\fP. +Use memcached_strerror() to translate this value to a printable string. +.sp +For memcached_replace() and memcached_add(), \fBMEMCACHED_NOTSTORED\fP is a +legitmate error in the case of a collision. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Brian Aker, <\fI\%brian@tangent.org\fP> +.SH SEE ALSO +.sp +memcached(1) libmemached(3) memcached_strerror(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcached_auto.3 b/docs/man/memcached_auto.3 new file mode 100644 index 00000000..a88df62e --- /dev/null +++ b/docs/man/memcached_auto.3 @@ -0,0 +1,168 @@ +.TH "MEMCACHED_AUTO" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcached_auto \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Manipulate counters +.SH LIBRARY +.sp +C Client Library for memcached (libmemcached, \-lmemcached) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +memcached_return_t + memcached_increment (memcached_st *ptr, + const char *key, size_t key_length, + unsigned int offset, + uint64_t *value); + +memcached_return_t + memcached_decrement (memcached_st *ptr, + const char *key, size_t key_length, + unsigned int offset, + uint64_t *value); + +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); + +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); + +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, + unsigned int offset, + uint64_t *value); + +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, + unsigned int offset, + uint64_t *value); + +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); + +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); +.ft P +.fi +.SH DESCRIPTION +.sp +memcached(1) servers have the ability to increment and decrement keys +(overflow and underflow are not detected). This gives you the ability to use +memcached to generate shared sequences of values. +.sp +memcached_increment() takes a key and keylength and increments the value by +the offset passed to it. The value is then returned via the unsigned int +value pointer you pass to it. +.sp +memcached_decrement() takes a key and keylength and decrements the value by +the offset passed to it. The value is then returned via the unsigned int +value pointer you pass to it. +.sp +memcached_increment_with_initial() takes a key and keylength and increments +the value by the offset passed to it. If the object specified by key does +not exist, one of two things may happen: If the expiration value is +MEMCACHED_EXPIRATION_NOT_ADD, the operation will fail. For all other +expiration values, the operation will succeed by seeding the value for that +key with a initial value to expire with the provided expiration time. The +flags will be set to zero.The value is then returned via the unsigned int +value pointer you pass to it. +.sp +memcached_decrement_with_initial() takes a key and keylength and decrements +the value by the offset passed to it. If the object specified by key does +not exist, one of two things may happen: If the expiration value is +MEMCACHED_EXPIRATION_NOT_ADD, the operation will fail. For all other +expiration values, the operation will succeed by seeding the value for that +key with a initial value to expire with the provided expiration time. The +flags will be set to zero.The value is then returned via the unsigned int +value pointer you pass to it. +.sp +memcached_increment_by_key(), memcached_decrement_by_key(), +memcached_increment_with_initial_by_key(), and +memcached_decrement_with_initial_by_key() are master key equivalents of the +above. +.SH RETURN +.sp +A value of type \fBmemcached_return_t\fP is returned. +On success that value will be \fBMEMCACHED_SUCCESS\fP. +Use memcached_strerror() to translate this value to a printable string. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Brian Aker, <\fI\%brian@tangent.org\fP> +.SH SEE ALSO +.sp +memcached(1) libmemcached(3) memcached_strerror(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcached_behavior.3 b/docs/man/memcached_behavior.3 new file mode 100644 index 00000000..d93e6857 --- /dev/null +++ b/docs/man/memcached_behavior.3 @@ -0,0 +1,468 @@ +.TH "MEMCACHED_BEHAVIOR" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcached_behavior \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Manipulate behavior +.SH LIBRARY +.sp +C Client Library for memcached (libmemcached, \-lmemcached) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +uint64_t + memcached_behavior_get (memcached_st *ptr, + memcached_behavior flag); + +memcached_return_t + memcached_behavior_set (memcached_st *ptr, + memcached_behavior flag, + uint64_t data); +.ft P +.fi +.SH DESCRIPTION +.sp +libmemcached(3) behavior can be modified by use memcached_behavior_set(). +Default behavior is the library strives to be quick and accurate. Some +behavior, while being faster, can also result in not entirely accurate +behavior (for instance, memcached_set() will always respond with +\fBMEMCACHED_SUCCESS\fP). +.sp +memcached_behavior_get() takes a behavior flag and returns whether or not +that behavior is currently enabled in the client. +.sp +memcached_behavior_set() changes the value of a particular option of the +client. It takes both a flag (listed below) and a value. For simple on or +off options you just need to pass in a value of 1. Calls to +memcached_behavior_set() will flush and reset all connections. +.sp +MEMCACHED_BEHAVIOR_USE_UDP +.INDENT 0.0 +.INDENT 3.5 +.sp +Causes libmemcached(3) to use the UDP transport when communicating +with a memcached server. Not all I/O operations are supported +when this behavior is enababled. The following operations will return +\fBMEMCACHED_NOT_SUPPORTED\fP when executed with the MEMCACHED_BEHAVIOR_USE_UDP +enabled: memcached_version(), memcached_stat(), memcached_get(), +memcached_get_by_key(), memcached_mget(), memcached_mget_by_key(), +memcached_fetch(), memcached_fetch_result(), memcached_value_fetch(). +.sp +All other operations are supported but are executed in a \(aqfire\-and\-forget\(aq +mode, in which once the client has executed the operation, no attempt +will be made to ensure the operation has been received and acted on by the +server. +.sp +libmemcached(3) does not allow TCP and UDP servers to be shared within +the same libmemached(3) client \(aqinstance\(aq. An attempt to add a TCP server +when this behavior is enabled will result in a \fBMEMCACHED_INVALID_HOST_PROTOCOL\fP, +as will attempting to add a UDP server when this behavior has not been enabled. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_NO_BLOCK +.INDENT 0.0 +.INDENT 3.5 +.sp +Causes libmemcached(3) to use asychronous IO. This is the fastest transport +available for storage functions. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_SND_TIMEOUT +.INDENT 0.0 +.INDENT 3.5 +.sp +This sets the microsecond behavior of the socket against the SO_SNDTIMEO flag. +In cases where you cannot use non\-blocking IO this will allow you to still have +timeouts on the sending of data. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_RCV_TIMEOUT +.INDENT 0.0 +.INDENT 3.5 +.sp +This sets the microsecond behavior of the socket against the SO_RCVTIMEO flag. +In cases where you cannot use non\-blocking IO this will allow you to still have +timeouts on the reading of data. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_TCP_NODELAY +.INDENT 0.0 +.INDENT 3.5 +.sp +Turns on the no\-delay feature for connecting sockets (may be faster in some +environments). +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_HASH +.INDENT 0.0 +.INDENT 3.5 +.sp +Makes the default hashing algorithm for keys use MD5. The value can be set +to either MEMCACHED_HASH_DEFAULT, MEMCACHED_HASH_MD5, MEMCACHED_HASH_CRC, MEMCACHED_HASH_FNV1_64, MEMCACHED_HASH_FNV1A_64, MEMCACHED_HASH_FNV1_32, MEMCACHED_HASH_FNV1A_32, MEMCACHED_HASH_JENKINS, MEMCACHED_HASH_HSIEH, and MEMCACHED_HASH_MURMUR. +Each hash has it\(aqs advantages and it\(aqs weaknesses. If you don\(aqt know or don\(aqt care, just go with the default. +Support for MEMCACHED_HASH_HSIEH is a compile time option that is disabled by default. To enable support for this hashing algorithm, configure and build libmemcached with the \-\-enable\-hash_hsieh. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_DISTRIBUTION +.INDENT 0.0 +.INDENT 3.5 +.sp +Using this you can enable different means of distributing values to servers. +The default method is MEMCACHED_DISTRIBUTION_MODULA. You can enable +consistent hashing by setting MEMCACHED_DISTRIBUTION_CONSISTENT. +Consistent hashing delivers better distribution and allows servers to be +added to the cluster with minimal cache losses. Currently +MEMCACHED_DISTRIBUTION_CONSISTENT is an alias for the value +MEMCACHED_DISTRIBUTION_CONSISTENT_KETAMA. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_CACHE_LOOKUPS +.INDENT 0.0 +.INDENT 3.5 +.sp +Memcached can cache named lookups so that DNS lookups are made only once. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_SUPPORT_CAS +.INDENT 0.0 +.INDENT 3.5 +.sp +Support CAS operations (this is not enabled by default at this point in the server since it imposes a slight performance penalty). +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_KETAMA +.INDENT 0.0 +.INDENT 3.5 +.sp +Sets the default distribution to MEMCACHED_DISTRIBUTION_CONSISTENT_KETAMA +and the hash to MEMCACHED_HASH_MD5. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_KETAMA_WEIGHTED +.INDENT 0.0 +.INDENT 3.5 +.sp +Sets the default distribution to MEMCACHED_DISTRIBUTION_CONSISTENT_KETAMA with the weighted support. +and the hash to MEMCACHED_HASH_MD5. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_KETAMA_HASH +.INDENT 0.0 +.INDENT 3.5 +.sp +Sets the hashing algorithm for host mapping on continuum. The value can be set +to either MEMCACHED_HASH_DEFAULT, MEMCACHED_HASH_MD5, MEMCACHED_HASH_CRC, MEMCACHED_HASH_FNV1_64, MEMCACHED_HASH_FNV1A_64, MEMCACHED_HASH_FNV1_32, and MEMCACHED_HASH_FNV1A_32. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_KETAMA_COMPAT +.INDENT 0.0 +.INDENT 3.5 +.sp +Sets the compatibility mode. The value can be set to either +MEMCACHED_KETAMA_COMPAT_LIBMEMCACHED (this is the default) or +MEMCACHED_KETAMA_COMPAT_SPY to be compatible with the SPY Memcached client +for Java. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_POLL_TIMEOUT +.INDENT 0.0 +.INDENT 3.5 +.sp +Modify the timeout value that is used by poll(). The default value is \-1. An signed int pointer must be passed to memcached_behavior_set() to change this value. For memcached_behavior_get() a signed int value will be cast and returned as the unsigned long long. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_USER_DATA +.INDENT 0.0 +.INDENT 3.5 +.sp +This allows you to store a pointer to a specifc piece of data. This can be +retrieved from inside of memcached_fetch_execute(). Cloning a memcached_st +.sp +will copy the pointer to the clone. This was deprecated in 0.14 in favor +of memcached_callback_set(3). This will be removed in 0.15. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_BUFFER_REQUESTS +.INDENT 0.0 +.INDENT 3.5 +.sp +Enabling buffered IO causes commands to "buffer" instead of being sent. Any +action that gets data causes this buffer to be be sent to the remote +connection. Quiting the connection or closing down the connection will also +cause the buffered data to be pushed to the remote connection. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_VERIFY_KEY +.INDENT 0.0 +.INDENT 3.5 +.sp +Enabling this will cause libmemcached(3) to test all keys to verify that they +are valid keys. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_SORT_HOSTS +.INDENT 0.0 +.INDENT 3.5 +.sp +Enabling this will cause hosts that are added to be placed in the host list in +sorted order. This will defeat consisten hashing. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_CONNECT_TIMEOUT +.INDENT 0.0 +.INDENT 3.5 +.sp +In non\-blocking mode this changes the value of the timeout during socket +connection. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_BINARY_PROTOCOL +.INDENT 0.0 +.INDENT 3.5 +.sp +Enable the use of the binary protocol. Please note that you cannot toggle +this flag on an open connection. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_SERVER_FAILURE_LIMIT +.INDENT 0.0 +.INDENT 3.5 +.sp +Set this value to enable the server be removed after continuous MEMCACHED_BEHAVIOR_SERVER_FAILURE_LIMIT +times connection failure. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_IO_MSG_WATERMARK +.INDENT 0.0 +.INDENT 3.5 +.sp +Set this value to tune the number of messages that may be sent before +libmemcached should start to automatically drain the input queue. Setting +this value to high, may cause libmemcached to deadlock (trying to send data, +but the send will block because the input buffer in the kernel is full). +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_IO_BYTES_WATERMARK +.INDENT 0.0 +.INDENT 3.5 +.sp +Set this value to tune the number of bytes that may be sent before +libmemcached should start to automatically drain the input queue (need +at least 10 IO requests sent without reading the input buffer). Setting +this value to high, may cause libmemcached to deadlock (trying to send +data, but the send will block because the input buffer in the kernel is full). +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_IO_KEY_PREFETCH +.INDENT 0.0 +.INDENT 3.5 +.sp +The binary protocol works a bit different than the textual protocol in +that a multiget is implemented as a pipe of single get\-operations which +are sent to the server in a chunk. If you are using large multigets from +your application, you may improve the latency of the gets by setting +this value so you send out the first chunk of requests when you hit the +specified limit. It allows the servers to start processing the requests +to send the data back while the rest of the requests are created and +sent to the server. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_NOREPLY +.INDENT 0.0 +.INDENT 3.5 +.sp +Set this value to specify that you really don\(aqt care about the result +from your storage commands (set, add, replace, append, prepend). +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_NUMBER_OF_REPLICAS +.INDENT 0.0 +.INDENT 3.5 +.sp +If you just want "a poor mans HA", you may specify the numbers of +replicas libmemcached should store of each item (on different servers). +This replication does not dedicate certain memcached servers to store the +replicas in, but instead it will store the replicas together with all of the +other objects (on the \(aqn\(aq next servers specified in your server list). +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_RANDOMIZE_REPLICA_READ +.INDENT 0.0 +.INDENT 3.5 +.sp +Allows randomizing the replica reads starting point. Normally the read is +done from primary server and in case of miss the read is done from primary ++ 1, then primary + 2 all the way to \(aqn\(aq replicas. If this option is set +on the starting point of the replica reads is randomized between the servers. +This allows distributing read load to multiple servers with the expense of +more write traffic. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_CORK +.INDENT 0.0 +.INDENT 3.5 +.sp +Enable TCP_CORK behavior. This is only available as an option Linux. +MEMCACHED_NO_SERVERS is returned if no servers are available to test with. +MEMCACHED_NOT_SUPPORTED is returned if we were not able to determine +if support was available. All other responses then MEMCACHED_SUCCESS +report an error of some sort. This behavior also enables +MEMCACHED_BEHAVIOR_TCP_NODELAY when set. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_KEEPALIVE +.INDENT 0.0 +.INDENT 3.5 +.sp +Enable TCP_KEEPALIVE behavior. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_KEEPALIVE_IDLE +.INDENT 0.0 +.INDENT 3.5 +.sp +Specify time, in seconds, to mark a connection as idle. This is only available as an option Linux. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_SOCKET_SEND_SIZE +.INDENT 0.0 +.INDENT 3.5 +.sp +Find the current size of SO_SNDBUF. A value of 0 means either an error +occured or no hosts were available. It is safe to assume system default +if this occurs. If an error occurs you can checked the last cached errno statement to find the specific error. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_SOCKET_RECV_SIZE +.INDENT 0.0 +.INDENT 3.5 +.sp +Find the current size of SO_RCVBUF. A value of 0 means either an error +occured or no hosts were available. It is safe to assume system default +if this occurs. If an error occurs you can checked the last cached errno statement to find the specific error. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_SERVER_FAILURE_LIMIT +.INDENT 0.0 +.INDENT 3.5 +.sp +This number of times a host can have an error before it is disabled. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_AUTO_EJECT_HOSTS +.INDENT 0.0 +.INDENT 3.5 +.sp +If enabled any hosts which have been flagged as disabled will be removed +from the list of servers in the memcached_st structure. This must be used +in combination with MEMCACHED_BEHAVIOR_SERVER_FAILURE_LIMIT. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_RETRY_TIMEOUT +.INDENT 0.0 +.INDENT 3.5 +.sp +When enabled a host which is problematic will only be checked for usage +based on the amount of time set by this behavior. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_HASH_WITH_PREFIX_KEY +.INDENT 0.0 +.INDENT 3.5 +.sp +When enabled the prefix key will be added to the key when determining +server by hash. +.UNINDENT +.UNINDENT +.SH RETURN +.sp +memcached_behavior_get() returns either the current value of the get, or 0 +or 1 on simple flag behaviors (1 being enabled). memcached_behavior_set() +returns failure or success. +.SH NOTES +.sp +memcached_behavior_set() in version .17 was changed from taking a pointer +to data value, to taking a uin64_t. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Brian Aker, <\fI\%brian@tangent.org\fP> +.SH SEE ALSO +.sp +memcached(1) libmemcached(3) memcached_strerror(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcached_behavior_get.3 b/docs/man/memcached_behavior_get.3 new file mode 100644 index 00000000..8109c9f9 --- /dev/null +++ b/docs/man/memcached_behavior_get.3 @@ -0,0 +1,468 @@ +.TH "MEMCACHED_BEHAVIOR_GET" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcached_behavior_get \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Manipulate behavior +.SH LIBRARY +.sp +C Client Library for memcached (libmemcached, \-lmemcached) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +uint64_t + memcached_behavior_get (memcached_st *ptr, + memcached_behavior flag); + +memcached_return_t + memcached_behavior_set (memcached_st *ptr, + memcached_behavior flag, + uint64_t data); +.ft P +.fi +.SH DESCRIPTION +.sp +libmemcached(3) behavior can be modified by use memcached_behavior_set(). +Default behavior is the library strives to be quick and accurate. Some +behavior, while being faster, can also result in not entirely accurate +behavior (for instance, memcached_set() will always respond with +\fBMEMCACHED_SUCCESS\fP). +.sp +memcached_behavior_get() takes a behavior flag and returns whether or not +that behavior is currently enabled in the client. +.sp +memcached_behavior_set() changes the value of a particular option of the +client. It takes both a flag (listed below) and a value. For simple on or +off options you just need to pass in a value of 1. Calls to +memcached_behavior_set() will flush and reset all connections. +.sp +MEMCACHED_BEHAVIOR_USE_UDP +.INDENT 0.0 +.INDENT 3.5 +.sp +Causes libmemcached(3) to use the UDP transport when communicating +with a memcached server. Not all I/O operations are supported +when this behavior is enababled. The following operations will return +\fBMEMCACHED_NOT_SUPPORTED\fP when executed with the MEMCACHED_BEHAVIOR_USE_UDP +enabled: memcached_version(), memcached_stat(), memcached_get(), +memcached_get_by_key(), memcached_mget(), memcached_mget_by_key(), +memcached_fetch(), memcached_fetch_result(), memcached_value_fetch(). +.sp +All other operations are supported but are executed in a \(aqfire\-and\-forget\(aq +mode, in which once the client has executed the operation, no attempt +will be made to ensure the operation has been received and acted on by the +server. +.sp +libmemcached(3) does not allow TCP and UDP servers to be shared within +the same libmemached(3) client \(aqinstance\(aq. An attempt to add a TCP server +when this behavior is enabled will result in a \fBMEMCACHED_INVALID_HOST_PROTOCOL\fP, +as will attempting to add a UDP server when this behavior has not been enabled. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_NO_BLOCK +.INDENT 0.0 +.INDENT 3.5 +.sp +Causes libmemcached(3) to use asychronous IO. This is the fastest transport +available for storage functions. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_SND_TIMEOUT +.INDENT 0.0 +.INDENT 3.5 +.sp +This sets the microsecond behavior of the socket against the SO_SNDTIMEO flag. +In cases where you cannot use non\-blocking IO this will allow you to still have +timeouts on the sending of data. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_RCV_TIMEOUT +.INDENT 0.0 +.INDENT 3.5 +.sp +This sets the microsecond behavior of the socket against the SO_RCVTIMEO flag. +In cases where you cannot use non\-blocking IO this will allow you to still have +timeouts on the reading of data. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_TCP_NODELAY +.INDENT 0.0 +.INDENT 3.5 +.sp +Turns on the no\-delay feature for connecting sockets (may be faster in some +environments). +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_HASH +.INDENT 0.0 +.INDENT 3.5 +.sp +Makes the default hashing algorithm for keys use MD5. The value can be set +to either MEMCACHED_HASH_DEFAULT, MEMCACHED_HASH_MD5, MEMCACHED_HASH_CRC, MEMCACHED_HASH_FNV1_64, MEMCACHED_HASH_FNV1A_64, MEMCACHED_HASH_FNV1_32, MEMCACHED_HASH_FNV1A_32, MEMCACHED_HASH_JENKINS, MEMCACHED_HASH_HSIEH, and MEMCACHED_HASH_MURMUR. +Each hash has it\(aqs advantages and it\(aqs weaknesses. If you don\(aqt know or don\(aqt care, just go with the default. +Support for MEMCACHED_HASH_HSIEH is a compile time option that is disabled by default. To enable support for this hashing algorithm, configure and build libmemcached with the \-\-enable\-hash_hsieh. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_DISTRIBUTION +.INDENT 0.0 +.INDENT 3.5 +.sp +Using this you can enable different means of distributing values to servers. +The default method is MEMCACHED_DISTRIBUTION_MODULA. You can enable +consistent hashing by setting MEMCACHED_DISTRIBUTION_CONSISTENT. +Consistent hashing delivers better distribution and allows servers to be +added to the cluster with minimal cache losses. Currently +MEMCACHED_DISTRIBUTION_CONSISTENT is an alias for the value +MEMCACHED_DISTRIBUTION_CONSISTENT_KETAMA. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_CACHE_LOOKUPS +.INDENT 0.0 +.INDENT 3.5 +.sp +Memcached can cache named lookups so that DNS lookups are made only once. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_SUPPORT_CAS +.INDENT 0.0 +.INDENT 3.5 +.sp +Support CAS operations (this is not enabled by default at this point in the server since it imposes a slight performance penalty). +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_KETAMA +.INDENT 0.0 +.INDENT 3.5 +.sp +Sets the default distribution to MEMCACHED_DISTRIBUTION_CONSISTENT_KETAMA +and the hash to MEMCACHED_HASH_MD5. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_KETAMA_WEIGHTED +.INDENT 0.0 +.INDENT 3.5 +.sp +Sets the default distribution to MEMCACHED_DISTRIBUTION_CONSISTENT_KETAMA with the weighted support. +and the hash to MEMCACHED_HASH_MD5. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_KETAMA_HASH +.INDENT 0.0 +.INDENT 3.5 +.sp +Sets the hashing algorithm for host mapping on continuum. The value can be set +to either MEMCACHED_HASH_DEFAULT, MEMCACHED_HASH_MD5, MEMCACHED_HASH_CRC, MEMCACHED_HASH_FNV1_64, MEMCACHED_HASH_FNV1A_64, MEMCACHED_HASH_FNV1_32, and MEMCACHED_HASH_FNV1A_32. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_KETAMA_COMPAT +.INDENT 0.0 +.INDENT 3.5 +.sp +Sets the compatibility mode. The value can be set to either +MEMCACHED_KETAMA_COMPAT_LIBMEMCACHED (this is the default) or +MEMCACHED_KETAMA_COMPAT_SPY to be compatible with the SPY Memcached client +for Java. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_POLL_TIMEOUT +.INDENT 0.0 +.INDENT 3.5 +.sp +Modify the timeout value that is used by poll(). The default value is \-1. An signed int pointer must be passed to memcached_behavior_set() to change this value. For memcached_behavior_get() a signed int value will be cast and returned as the unsigned long long. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_USER_DATA +.INDENT 0.0 +.INDENT 3.5 +.sp +This allows you to store a pointer to a specifc piece of data. This can be +retrieved from inside of memcached_fetch_execute(). Cloning a memcached_st +.sp +will copy the pointer to the clone. This was deprecated in 0.14 in favor +of memcached_callback_set(3). This will be removed in 0.15. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_BUFFER_REQUESTS +.INDENT 0.0 +.INDENT 3.5 +.sp +Enabling buffered IO causes commands to "buffer" instead of being sent. Any +action that gets data causes this buffer to be be sent to the remote +connection. Quiting the connection or closing down the connection will also +cause the buffered data to be pushed to the remote connection. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_VERIFY_KEY +.INDENT 0.0 +.INDENT 3.5 +.sp +Enabling this will cause libmemcached(3) to test all keys to verify that they +are valid keys. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_SORT_HOSTS +.INDENT 0.0 +.INDENT 3.5 +.sp +Enabling this will cause hosts that are added to be placed in the host list in +sorted order. This will defeat consisten hashing. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_CONNECT_TIMEOUT +.INDENT 0.0 +.INDENT 3.5 +.sp +In non\-blocking mode this changes the value of the timeout during socket +connection. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_BINARY_PROTOCOL +.INDENT 0.0 +.INDENT 3.5 +.sp +Enable the use of the binary protocol. Please note that you cannot toggle +this flag on an open connection. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_SERVER_FAILURE_LIMIT +.INDENT 0.0 +.INDENT 3.5 +.sp +Set this value to enable the server be removed after continuous MEMCACHED_BEHAVIOR_SERVER_FAILURE_LIMIT +times connection failure. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_IO_MSG_WATERMARK +.INDENT 0.0 +.INDENT 3.5 +.sp +Set this value to tune the number of messages that may be sent before +libmemcached should start to automatically drain the input queue. Setting +this value to high, may cause libmemcached to deadlock (trying to send data, +but the send will block because the input buffer in the kernel is full). +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_IO_BYTES_WATERMARK +.INDENT 0.0 +.INDENT 3.5 +.sp +Set this value to tune the number of bytes that may be sent before +libmemcached should start to automatically drain the input queue (need +at least 10 IO requests sent without reading the input buffer). Setting +this value to high, may cause libmemcached to deadlock (trying to send +data, but the send will block because the input buffer in the kernel is full). +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_IO_KEY_PREFETCH +.INDENT 0.0 +.INDENT 3.5 +.sp +The binary protocol works a bit different than the textual protocol in +that a multiget is implemented as a pipe of single get\-operations which +are sent to the server in a chunk. If you are using large multigets from +your application, you may improve the latency of the gets by setting +this value so you send out the first chunk of requests when you hit the +specified limit. It allows the servers to start processing the requests +to send the data back while the rest of the requests are created and +sent to the server. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_NOREPLY +.INDENT 0.0 +.INDENT 3.5 +.sp +Set this value to specify that you really don\(aqt care about the result +from your storage commands (set, add, replace, append, prepend). +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_NUMBER_OF_REPLICAS +.INDENT 0.0 +.INDENT 3.5 +.sp +If you just want "a poor mans HA", you may specify the numbers of +replicas libmemcached should store of each item (on different servers). +This replication does not dedicate certain memcached servers to store the +replicas in, but instead it will store the replicas together with all of the +other objects (on the \(aqn\(aq next servers specified in your server list). +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_RANDOMIZE_REPLICA_READ +.INDENT 0.0 +.INDENT 3.5 +.sp +Allows randomizing the replica reads starting point. Normally the read is +done from primary server and in case of miss the read is done from primary ++ 1, then primary + 2 all the way to \(aqn\(aq replicas. If this option is set +on the starting point of the replica reads is randomized between the servers. +This allows distributing read load to multiple servers with the expense of +more write traffic. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_CORK +.INDENT 0.0 +.INDENT 3.5 +.sp +Enable TCP_CORK behavior. This is only available as an option Linux. +MEMCACHED_NO_SERVERS is returned if no servers are available to test with. +MEMCACHED_NOT_SUPPORTED is returned if we were not able to determine +if support was available. All other responses then MEMCACHED_SUCCESS +report an error of some sort. This behavior also enables +MEMCACHED_BEHAVIOR_TCP_NODELAY when set. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_KEEPALIVE +.INDENT 0.0 +.INDENT 3.5 +.sp +Enable TCP_KEEPALIVE behavior. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_KEEPALIVE_IDLE +.INDENT 0.0 +.INDENT 3.5 +.sp +Specify time, in seconds, to mark a connection as idle. This is only available as an option Linux. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_SOCKET_SEND_SIZE +.INDENT 0.0 +.INDENT 3.5 +.sp +Find the current size of SO_SNDBUF. A value of 0 means either an error +occured or no hosts were available. It is safe to assume system default +if this occurs. If an error occurs you can checked the last cached errno statement to find the specific error. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_SOCKET_RECV_SIZE +.INDENT 0.0 +.INDENT 3.5 +.sp +Find the current size of SO_RCVBUF. A value of 0 means either an error +occured or no hosts were available. It is safe to assume system default +if this occurs. If an error occurs you can checked the last cached errno statement to find the specific error. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_SERVER_FAILURE_LIMIT +.INDENT 0.0 +.INDENT 3.5 +.sp +This number of times a host can have an error before it is disabled. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_AUTO_EJECT_HOSTS +.INDENT 0.0 +.INDENT 3.5 +.sp +If enabled any hosts which have been flagged as disabled will be removed +from the list of servers in the memcached_st structure. This must be used +in combination with MEMCACHED_BEHAVIOR_SERVER_FAILURE_LIMIT. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_RETRY_TIMEOUT +.INDENT 0.0 +.INDENT 3.5 +.sp +When enabled a host which is problematic will only be checked for usage +based on the amount of time set by this behavior. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_HASH_WITH_PREFIX_KEY +.INDENT 0.0 +.INDENT 3.5 +.sp +When enabled the prefix key will be added to the key when determining +server by hash. +.UNINDENT +.UNINDENT +.SH RETURN +.sp +memcached_behavior_get() returns either the current value of the get, or 0 +or 1 on simple flag behaviors (1 being enabled). memcached_behavior_set() +returns failure or success. +.SH NOTES +.sp +memcached_behavior_set() in version .17 was changed from taking a pointer +to data value, to taking a uin64_t. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Brian Aker, <\fI\%brian@tangent.org\fP> +.SH SEE ALSO +.sp +memcached(1) libmemcached(3) memcached_strerror(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcached_behavior_set.3 b/docs/man/memcached_behavior_set.3 new file mode 100644 index 00000000..e4b65fea --- /dev/null +++ b/docs/man/memcached_behavior_set.3 @@ -0,0 +1,468 @@ +.TH "MEMCACHED_BEHAVIOR_SET" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcached_behavior_set \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Manipulate behavior +.SH LIBRARY +.sp +C Client Library for memcached (libmemcached, \-lmemcached) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +uint64_t + memcached_behavior_get (memcached_st *ptr, + memcached_behavior flag); + +memcached_return_t + memcached_behavior_set (memcached_st *ptr, + memcached_behavior flag, + uint64_t data); +.ft P +.fi +.SH DESCRIPTION +.sp +libmemcached(3) behavior can be modified by use memcached_behavior_set(). +Default behavior is the library strives to be quick and accurate. Some +behavior, while being faster, can also result in not entirely accurate +behavior (for instance, memcached_set() will always respond with +\fBMEMCACHED_SUCCESS\fP). +.sp +memcached_behavior_get() takes a behavior flag and returns whether or not +that behavior is currently enabled in the client. +.sp +memcached_behavior_set() changes the value of a particular option of the +client. It takes both a flag (listed below) and a value. For simple on or +off options you just need to pass in a value of 1. Calls to +memcached_behavior_set() will flush and reset all connections. +.sp +MEMCACHED_BEHAVIOR_USE_UDP +.INDENT 0.0 +.INDENT 3.5 +.sp +Causes libmemcached(3) to use the UDP transport when communicating +with a memcached server. Not all I/O operations are supported +when this behavior is enababled. The following operations will return +\fBMEMCACHED_NOT_SUPPORTED\fP when executed with the MEMCACHED_BEHAVIOR_USE_UDP +enabled: memcached_version(), memcached_stat(), memcached_get(), +memcached_get_by_key(), memcached_mget(), memcached_mget_by_key(), +memcached_fetch(), memcached_fetch_result(), memcached_value_fetch(). +.sp +All other operations are supported but are executed in a \(aqfire\-and\-forget\(aq +mode, in which once the client has executed the operation, no attempt +will be made to ensure the operation has been received and acted on by the +server. +.sp +libmemcached(3) does not allow TCP and UDP servers to be shared within +the same libmemached(3) client \(aqinstance\(aq. An attempt to add a TCP server +when this behavior is enabled will result in a \fBMEMCACHED_INVALID_HOST_PROTOCOL\fP, +as will attempting to add a UDP server when this behavior has not been enabled. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_NO_BLOCK +.INDENT 0.0 +.INDENT 3.5 +.sp +Causes libmemcached(3) to use asychronous IO. This is the fastest transport +available for storage functions. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_SND_TIMEOUT +.INDENT 0.0 +.INDENT 3.5 +.sp +This sets the microsecond behavior of the socket against the SO_SNDTIMEO flag. +In cases where you cannot use non\-blocking IO this will allow you to still have +timeouts on the sending of data. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_RCV_TIMEOUT +.INDENT 0.0 +.INDENT 3.5 +.sp +This sets the microsecond behavior of the socket against the SO_RCVTIMEO flag. +In cases where you cannot use non\-blocking IO this will allow you to still have +timeouts on the reading of data. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_TCP_NODELAY +.INDENT 0.0 +.INDENT 3.5 +.sp +Turns on the no\-delay feature for connecting sockets (may be faster in some +environments). +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_HASH +.INDENT 0.0 +.INDENT 3.5 +.sp +Makes the default hashing algorithm for keys use MD5. The value can be set +to either MEMCACHED_HASH_DEFAULT, MEMCACHED_HASH_MD5, MEMCACHED_HASH_CRC, MEMCACHED_HASH_FNV1_64, MEMCACHED_HASH_FNV1A_64, MEMCACHED_HASH_FNV1_32, MEMCACHED_HASH_FNV1A_32, MEMCACHED_HASH_JENKINS, MEMCACHED_HASH_HSIEH, and MEMCACHED_HASH_MURMUR. +Each hash has it\(aqs advantages and it\(aqs weaknesses. If you don\(aqt know or don\(aqt care, just go with the default. +Support for MEMCACHED_HASH_HSIEH is a compile time option that is disabled by default. To enable support for this hashing algorithm, configure and build libmemcached with the \-\-enable\-hash_hsieh. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_DISTRIBUTION +.INDENT 0.0 +.INDENT 3.5 +.sp +Using this you can enable different means of distributing values to servers. +The default method is MEMCACHED_DISTRIBUTION_MODULA. You can enable +consistent hashing by setting MEMCACHED_DISTRIBUTION_CONSISTENT. +Consistent hashing delivers better distribution and allows servers to be +added to the cluster with minimal cache losses. Currently +MEMCACHED_DISTRIBUTION_CONSISTENT is an alias for the value +MEMCACHED_DISTRIBUTION_CONSISTENT_KETAMA. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_CACHE_LOOKUPS +.INDENT 0.0 +.INDENT 3.5 +.sp +Memcached can cache named lookups so that DNS lookups are made only once. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_SUPPORT_CAS +.INDENT 0.0 +.INDENT 3.5 +.sp +Support CAS operations (this is not enabled by default at this point in the server since it imposes a slight performance penalty). +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_KETAMA +.INDENT 0.0 +.INDENT 3.5 +.sp +Sets the default distribution to MEMCACHED_DISTRIBUTION_CONSISTENT_KETAMA +and the hash to MEMCACHED_HASH_MD5. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_KETAMA_WEIGHTED +.INDENT 0.0 +.INDENT 3.5 +.sp +Sets the default distribution to MEMCACHED_DISTRIBUTION_CONSISTENT_KETAMA with the weighted support. +and the hash to MEMCACHED_HASH_MD5. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_KETAMA_HASH +.INDENT 0.0 +.INDENT 3.5 +.sp +Sets the hashing algorithm for host mapping on continuum. The value can be set +to either MEMCACHED_HASH_DEFAULT, MEMCACHED_HASH_MD5, MEMCACHED_HASH_CRC, MEMCACHED_HASH_FNV1_64, MEMCACHED_HASH_FNV1A_64, MEMCACHED_HASH_FNV1_32, and MEMCACHED_HASH_FNV1A_32. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_KETAMA_COMPAT +.INDENT 0.0 +.INDENT 3.5 +.sp +Sets the compatibility mode. The value can be set to either +MEMCACHED_KETAMA_COMPAT_LIBMEMCACHED (this is the default) or +MEMCACHED_KETAMA_COMPAT_SPY to be compatible with the SPY Memcached client +for Java. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_POLL_TIMEOUT +.INDENT 0.0 +.INDENT 3.5 +.sp +Modify the timeout value that is used by poll(). The default value is \-1. An signed int pointer must be passed to memcached_behavior_set() to change this value. For memcached_behavior_get() a signed int value will be cast and returned as the unsigned long long. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_USER_DATA +.INDENT 0.0 +.INDENT 3.5 +.sp +This allows you to store a pointer to a specifc piece of data. This can be +retrieved from inside of memcached_fetch_execute(). Cloning a memcached_st +.sp +will copy the pointer to the clone. This was deprecated in 0.14 in favor +of memcached_callback_set(3). This will be removed in 0.15. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_BUFFER_REQUESTS +.INDENT 0.0 +.INDENT 3.5 +.sp +Enabling buffered IO causes commands to "buffer" instead of being sent. Any +action that gets data causes this buffer to be be sent to the remote +connection. Quiting the connection or closing down the connection will also +cause the buffered data to be pushed to the remote connection. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_VERIFY_KEY +.INDENT 0.0 +.INDENT 3.5 +.sp +Enabling this will cause libmemcached(3) to test all keys to verify that they +are valid keys. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_SORT_HOSTS +.INDENT 0.0 +.INDENT 3.5 +.sp +Enabling this will cause hosts that are added to be placed in the host list in +sorted order. This will defeat consisten hashing. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_CONNECT_TIMEOUT +.INDENT 0.0 +.INDENT 3.5 +.sp +In non\-blocking mode this changes the value of the timeout during socket +connection. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_BINARY_PROTOCOL +.INDENT 0.0 +.INDENT 3.5 +.sp +Enable the use of the binary protocol. Please note that you cannot toggle +this flag on an open connection. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_SERVER_FAILURE_LIMIT +.INDENT 0.0 +.INDENT 3.5 +.sp +Set this value to enable the server be removed after continuous MEMCACHED_BEHAVIOR_SERVER_FAILURE_LIMIT +times connection failure. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_IO_MSG_WATERMARK +.INDENT 0.0 +.INDENT 3.5 +.sp +Set this value to tune the number of messages that may be sent before +libmemcached should start to automatically drain the input queue. Setting +this value to high, may cause libmemcached to deadlock (trying to send data, +but the send will block because the input buffer in the kernel is full). +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_IO_BYTES_WATERMARK +.INDENT 0.0 +.INDENT 3.5 +.sp +Set this value to tune the number of bytes that may be sent before +libmemcached should start to automatically drain the input queue (need +at least 10 IO requests sent without reading the input buffer). Setting +this value to high, may cause libmemcached to deadlock (trying to send +data, but the send will block because the input buffer in the kernel is full). +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_IO_KEY_PREFETCH +.INDENT 0.0 +.INDENT 3.5 +.sp +The binary protocol works a bit different than the textual protocol in +that a multiget is implemented as a pipe of single get\-operations which +are sent to the server in a chunk. If you are using large multigets from +your application, you may improve the latency of the gets by setting +this value so you send out the first chunk of requests when you hit the +specified limit. It allows the servers to start processing the requests +to send the data back while the rest of the requests are created and +sent to the server. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_NOREPLY +.INDENT 0.0 +.INDENT 3.5 +.sp +Set this value to specify that you really don\(aqt care about the result +from your storage commands (set, add, replace, append, prepend). +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_NUMBER_OF_REPLICAS +.INDENT 0.0 +.INDENT 3.5 +.sp +If you just want "a poor mans HA", you may specify the numbers of +replicas libmemcached should store of each item (on different servers). +This replication does not dedicate certain memcached servers to store the +replicas in, but instead it will store the replicas together with all of the +other objects (on the \(aqn\(aq next servers specified in your server list). +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_RANDOMIZE_REPLICA_READ +.INDENT 0.0 +.INDENT 3.5 +.sp +Allows randomizing the replica reads starting point. Normally the read is +done from primary server and in case of miss the read is done from primary ++ 1, then primary + 2 all the way to \(aqn\(aq replicas. If this option is set +on the starting point of the replica reads is randomized between the servers. +This allows distributing read load to multiple servers with the expense of +more write traffic. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_CORK +.INDENT 0.0 +.INDENT 3.5 +.sp +Enable TCP_CORK behavior. This is only available as an option Linux. +MEMCACHED_NO_SERVERS is returned if no servers are available to test with. +MEMCACHED_NOT_SUPPORTED is returned if we were not able to determine +if support was available. All other responses then MEMCACHED_SUCCESS +report an error of some sort. This behavior also enables +MEMCACHED_BEHAVIOR_TCP_NODELAY when set. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_KEEPALIVE +.INDENT 0.0 +.INDENT 3.5 +.sp +Enable TCP_KEEPALIVE behavior. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_KEEPALIVE_IDLE +.INDENT 0.0 +.INDENT 3.5 +.sp +Specify time, in seconds, to mark a connection as idle. This is only available as an option Linux. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_SOCKET_SEND_SIZE +.INDENT 0.0 +.INDENT 3.5 +.sp +Find the current size of SO_SNDBUF. A value of 0 means either an error +occured or no hosts were available. It is safe to assume system default +if this occurs. If an error occurs you can checked the last cached errno statement to find the specific error. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_SOCKET_RECV_SIZE +.INDENT 0.0 +.INDENT 3.5 +.sp +Find the current size of SO_RCVBUF. A value of 0 means either an error +occured or no hosts were available. It is safe to assume system default +if this occurs. If an error occurs you can checked the last cached errno statement to find the specific error. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_SERVER_FAILURE_LIMIT +.INDENT 0.0 +.INDENT 3.5 +.sp +This number of times a host can have an error before it is disabled. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_AUTO_EJECT_HOSTS +.INDENT 0.0 +.INDENT 3.5 +.sp +If enabled any hosts which have been flagged as disabled will be removed +from the list of servers in the memcached_st structure. This must be used +in combination with MEMCACHED_BEHAVIOR_SERVER_FAILURE_LIMIT. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_RETRY_TIMEOUT +.INDENT 0.0 +.INDENT 3.5 +.sp +When enabled a host which is problematic will only be checked for usage +based on the amount of time set by this behavior. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_BEHAVIOR_HASH_WITH_PREFIX_KEY +.INDENT 0.0 +.INDENT 3.5 +.sp +When enabled the prefix key will be added to the key when determining +server by hash. +.UNINDENT +.UNINDENT +.SH RETURN +.sp +memcached_behavior_get() returns either the current value of the get, or 0 +or 1 on simple flag behaviors (1 being enabled). memcached_behavior_set() +returns failure or success. +.SH NOTES +.sp +memcached_behavior_set() in version .17 was changed from taking a pointer +to data value, to taking a uin64_t. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Brian Aker, <\fI\%brian@tangent.org\fP> +.SH SEE ALSO +.sp +memcached(1) libmemcached(3) memcached_strerror(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcached_callback.3 b/docs/man/memcached_callback.3 new file mode 100644 index 00000000..d44493bc --- /dev/null +++ b/docs/man/memcached_callback.3 @@ -0,0 +1,188 @@ +.TH "MEMCACHED_CALLBACK" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcached_callback \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Get and set a callback +.SH LIBRARY +.sp +C Client Library for memcached (libmemcached, \-lmemcached) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +memcached_return_t + memcached_callback_set (memcached_st *ptr, + memcached_callback_t flag, + void *data); + +void * + memcached_callback_get (memcached_st *ptr, + memcached_callback_t flag, + memcached_return_t *error); +.ft P +.fi +.SH DESCRIPTION +.sp +libmemcached(3) can have callbacks set key execution points. These either +provide function calls at points in the code, or return pointers to +structures for particular usages. +.sp +memcached_callback_get() takes a callback flag and returns the structure or +function set by memcached_callback_set(). +.sp +memcached_callback_set() changes the function/structure assigned by a +callback flag. No connections are reset. +.sp +You can use MEMCACHED_CALLBACK_USER_DATA to provide custom context if required for any +of the callbacks +.sp +MEMCACHED_CALLBACK_CLEANUP_FUNCTION +.INDENT 0.0 +.INDENT 3.5 +.sp +When memcached_delete() is called this function will be excuted. At the +point of its execution all connections have been closed. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_CALLBACK_CLONE_FUNCTION +.INDENT 0.0 +.INDENT 3.5 +.sp +When memcached_delete() is called this function will be excuted. At the +point of its execution all connections have been closed. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_CALLBACK_PREFIX_KEY +.INDENT 0.0 +.INDENT 3.5 +.sp +You can set a value which will be used to create a domain for your keys. +The value specified here will be prefixed to each of your keys. The value can not +be greater then MEMCACHED_PREFIX_KEY_MAX_SIZE \- 1 and will reduce MEMCACHED_MAX_KEY by +the value of your key. The prefix key is only applied to the primary key, +not the master key. MEMCACHED_FAILURE will be returned if no key is set. In the case +of a key which is too long MEMCACHED_BAD_KEY_PROVIDED will be returned. +.sp +If you set a value with the value being NULL then the prefix key is disabled. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_CALLBACK_USER_DATA +.INDENT 0.0 +.INDENT 3.5 +.sp +This allows you to store a pointer to a specifc piece of data. This can be +retrieved from inside of memcached_fetch_execute(). Cloning a memcached_st +will copy the pointer to the clone. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_CALLBACK_MALLOC_FUNCTION +.INDENT 0.0 +.INDENT 3.5 +.sp +DEPRECATED: use memcached_set_memory_allocators instead. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_CALLBACK_REALLOC_FUNCTION +.INDENT 0.0 +.INDENT 3.5 +.sp +DEPRECATED: use memcached_set_memory_allocators instead. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_CALLBACK_FREE_FUNCTION +.INDENT 0.0 +.INDENT 3.5 +.sp +DEPRECATED: use memcached_set_memory_allocators instead. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_CALLBACK_GET_FAILURE +.INDENT 0.0 +.INDENT 3.5 +.sp +This function implements the read through cache behavior. On failure of retrieval this callback will be called. +You are responsible for populating the result object provided. This result object will then be stored in the server and +returned to the calling process. You must clone the memcached_st in order to +make use of it. The value will be stored only if you return +MEMCACHED_SUCCESS or MEMCACHED_BUFFERED. Returning MEMCACHED_BUFFERED will +cause the object to be buffered and not sent immediatly (if this is the default behavior based on your connection setup this will happen automatically). +.sp +The prototype for this is: +memcached_return_t (*memcached_trigger_key)(memcached_st *ptr, char *key, size_t key_length, memcached_result_st *result); +.UNINDENT +.UNINDENT +.sp +MEMCACHED_CALLBACK_DELETE_TRIGGER +.INDENT 0.0 +.INDENT 3.5 +.sp +This function implements a trigger upon successful deletion of a key. The memcached_st structure will need to be cloned +in order to make use of it. +.sp +The prototype for this is: +typedef memcached_return_t (*memcached_trigger_delete_key)(memcached_st *ptr, char *key, size_t key_length); +.UNINDENT +.UNINDENT +.SH RETURN +.sp +memcached_callback_get() return the function or structure that was provided. +Upon error, nothing is set, null is returned, and the memcached_return_t +argument is set to MEMCACHED_FAILURE. +.sp +memcached_callback_set() returns MEMCACHED_SUCCESS upon successful setting, +otherwise MEMCACHED_FAILURE on error. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Brian Aker, <\fI\%brian@tangent.org\fP> +.SH SEE ALSO +.sp +memcached(1) libmemcached(3) memcached_strerror(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcached_callback_get.3 b/docs/man/memcached_callback_get.3 new file mode 100644 index 00000000..2db8cfbf --- /dev/null +++ b/docs/man/memcached_callback_get.3 @@ -0,0 +1,188 @@ +.TH "MEMCACHED_CALLBACK_GET" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcached_callback_get \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Get and set a callback +.SH LIBRARY +.sp +C Client Library for memcached (libmemcached, \-lmemcached) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +memcached_return_t + memcached_callback_set (memcached_st *ptr, + memcached_callback_t flag, + void *data); + +void * + memcached_callback_get (memcached_st *ptr, + memcached_callback_t flag, + memcached_return_t *error); +.ft P +.fi +.SH DESCRIPTION +.sp +libmemcached(3) can have callbacks set key execution points. These either +provide function calls at points in the code, or return pointers to +structures for particular usages. +.sp +memcached_callback_get() takes a callback flag and returns the structure or +function set by memcached_callback_set(). +.sp +memcached_callback_set() changes the function/structure assigned by a +callback flag. No connections are reset. +.sp +You can use MEMCACHED_CALLBACK_USER_DATA to provide custom context if required for any +of the callbacks +.sp +MEMCACHED_CALLBACK_CLEANUP_FUNCTION +.INDENT 0.0 +.INDENT 3.5 +.sp +When memcached_delete() is called this function will be excuted. At the +point of its execution all connections have been closed. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_CALLBACK_CLONE_FUNCTION +.INDENT 0.0 +.INDENT 3.5 +.sp +When memcached_delete() is called this function will be excuted. At the +point of its execution all connections have been closed. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_CALLBACK_PREFIX_KEY +.INDENT 0.0 +.INDENT 3.5 +.sp +You can set a value which will be used to create a domain for your keys. +The value specified here will be prefixed to each of your keys. The value can not +be greater then MEMCACHED_PREFIX_KEY_MAX_SIZE \- 1 and will reduce MEMCACHED_MAX_KEY by +the value of your key. The prefix key is only applied to the primary key, +not the master key. MEMCACHED_FAILURE will be returned if no key is set. In the case +of a key which is too long MEMCACHED_BAD_KEY_PROVIDED will be returned. +.sp +If you set a value with the value being NULL then the prefix key is disabled. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_CALLBACK_USER_DATA +.INDENT 0.0 +.INDENT 3.5 +.sp +This allows you to store a pointer to a specifc piece of data. This can be +retrieved from inside of memcached_fetch_execute(). Cloning a memcached_st +will copy the pointer to the clone. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_CALLBACK_MALLOC_FUNCTION +.INDENT 0.0 +.INDENT 3.5 +.sp +DEPRECATED: use memcached_set_memory_allocators instead. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_CALLBACK_REALLOC_FUNCTION +.INDENT 0.0 +.INDENT 3.5 +.sp +DEPRECATED: use memcached_set_memory_allocators instead. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_CALLBACK_FREE_FUNCTION +.INDENT 0.0 +.INDENT 3.5 +.sp +DEPRECATED: use memcached_set_memory_allocators instead. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_CALLBACK_GET_FAILURE +.INDENT 0.0 +.INDENT 3.5 +.sp +This function implements the read through cache behavior. On failure of retrieval this callback will be called. +You are responsible for populating the result object provided. This result object will then be stored in the server and +returned to the calling process. You must clone the memcached_st in order to +make use of it. The value will be stored only if you return +MEMCACHED_SUCCESS or MEMCACHED_BUFFERED. Returning MEMCACHED_BUFFERED will +cause the object to be buffered and not sent immediatly (if this is the default behavior based on your connection setup this will happen automatically). +.sp +The prototype for this is: +memcached_return_t (*memcached_trigger_key)(memcached_st *ptr, char *key, size_t key_length, memcached_result_st *result); +.UNINDENT +.UNINDENT +.sp +MEMCACHED_CALLBACK_DELETE_TRIGGER +.INDENT 0.0 +.INDENT 3.5 +.sp +This function implements a trigger upon successful deletion of a key. The memcached_st structure will need to be cloned +in order to make use of it. +.sp +The prototype for this is: +typedef memcached_return_t (*memcached_trigger_delete_key)(memcached_st *ptr, char *key, size_t key_length); +.UNINDENT +.UNINDENT +.SH RETURN +.sp +memcached_callback_get() return the function or structure that was provided. +Upon error, nothing is set, null is returned, and the memcached_return_t +argument is set to MEMCACHED_FAILURE. +.sp +memcached_callback_set() returns MEMCACHED_SUCCESS upon successful setting, +otherwise MEMCACHED_FAILURE on error. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Brian Aker, <\fI\%brian@tangent.org\fP> +.SH SEE ALSO +.sp +memcached(1) libmemcached(3) memcached_strerror(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcached_callback_set.3 b/docs/man/memcached_callback_set.3 new file mode 100644 index 00000000..d7d21122 --- /dev/null +++ b/docs/man/memcached_callback_set.3 @@ -0,0 +1,188 @@ +.TH "MEMCACHED_CALLBACK_SET" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcached_callback_set \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Get and set a callback +.SH LIBRARY +.sp +C Client Library for memcached (libmemcached, \-lmemcached) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +memcached_return_t + memcached_callback_set (memcached_st *ptr, + memcached_callback_t flag, + void *data); + +void * + memcached_callback_get (memcached_st *ptr, + memcached_callback_t flag, + memcached_return_t *error); +.ft P +.fi +.SH DESCRIPTION +.sp +libmemcached(3) can have callbacks set key execution points. These either +provide function calls at points in the code, or return pointers to +structures for particular usages. +.sp +memcached_callback_get() takes a callback flag and returns the structure or +function set by memcached_callback_set(). +.sp +memcached_callback_set() changes the function/structure assigned by a +callback flag. No connections are reset. +.sp +You can use MEMCACHED_CALLBACK_USER_DATA to provide custom context if required for any +of the callbacks +.sp +MEMCACHED_CALLBACK_CLEANUP_FUNCTION +.INDENT 0.0 +.INDENT 3.5 +.sp +When memcached_delete() is called this function will be excuted. At the +point of its execution all connections have been closed. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_CALLBACK_CLONE_FUNCTION +.INDENT 0.0 +.INDENT 3.5 +.sp +When memcached_delete() is called this function will be excuted. At the +point of its execution all connections have been closed. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_CALLBACK_PREFIX_KEY +.INDENT 0.0 +.INDENT 3.5 +.sp +You can set a value which will be used to create a domain for your keys. +The value specified here will be prefixed to each of your keys. The value can not +be greater then MEMCACHED_PREFIX_KEY_MAX_SIZE \- 1 and will reduce MEMCACHED_MAX_KEY by +the value of your key. The prefix key is only applied to the primary key, +not the master key. MEMCACHED_FAILURE will be returned if no key is set. In the case +of a key which is too long MEMCACHED_BAD_KEY_PROVIDED will be returned. +.sp +If you set a value with the value being NULL then the prefix key is disabled. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_CALLBACK_USER_DATA +.INDENT 0.0 +.INDENT 3.5 +.sp +This allows you to store a pointer to a specifc piece of data. This can be +retrieved from inside of memcached_fetch_execute(). Cloning a memcached_st +will copy the pointer to the clone. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_CALLBACK_MALLOC_FUNCTION +.INDENT 0.0 +.INDENT 3.5 +.sp +DEPRECATED: use memcached_set_memory_allocators instead. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_CALLBACK_REALLOC_FUNCTION +.INDENT 0.0 +.INDENT 3.5 +.sp +DEPRECATED: use memcached_set_memory_allocators instead. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_CALLBACK_FREE_FUNCTION +.INDENT 0.0 +.INDENT 3.5 +.sp +DEPRECATED: use memcached_set_memory_allocators instead. +.UNINDENT +.UNINDENT +.sp +MEMCACHED_CALLBACK_GET_FAILURE +.INDENT 0.0 +.INDENT 3.5 +.sp +This function implements the read through cache behavior. On failure of retrieval this callback will be called. +You are responsible for populating the result object provided. This result object will then be stored in the server and +returned to the calling process. You must clone the memcached_st in order to +make use of it. The value will be stored only if you return +MEMCACHED_SUCCESS or MEMCACHED_BUFFERED. Returning MEMCACHED_BUFFERED will +cause the object to be buffered and not sent immediatly (if this is the default behavior based on your connection setup this will happen automatically). +.sp +The prototype for this is: +memcached_return_t (*memcached_trigger_key)(memcached_st *ptr, char *key, size_t key_length, memcached_result_st *result); +.UNINDENT +.UNINDENT +.sp +MEMCACHED_CALLBACK_DELETE_TRIGGER +.INDENT 0.0 +.INDENT 3.5 +.sp +This function implements a trigger upon successful deletion of a key. The memcached_st structure will need to be cloned +in order to make use of it. +.sp +The prototype for this is: +typedef memcached_return_t (*memcached_trigger_delete_key)(memcached_st *ptr, char *key, size_t key_length); +.UNINDENT +.UNINDENT +.SH RETURN +.sp +memcached_callback_get() return the function or structure that was provided. +Upon error, nothing is set, null is returned, and the memcached_return_t +argument is set to MEMCACHED_FAILURE. +.sp +memcached_callback_set() returns MEMCACHED_SUCCESS upon successful setting, +otherwise MEMCACHED_FAILURE on error. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Brian Aker, <\fI\%brian@tangent.org\fP> +.SH SEE ALSO +.sp +memcached(1) libmemcached(3) memcached_strerror(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcached_cas.3 b/docs/man/memcached_cas.3 new file mode 100644 index 00000000..0c68e49b --- /dev/null +++ b/docs/man/memcached_cas.3 @@ -0,0 +1,216 @@ +.TH "MEMCACHED_CAS" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcached_cas \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Store value on server +.SH LIBRARY +.sp +C Client Library for memcached (libmemcached, \-lmemcached) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +memcached_return_t + memcached_set (memcached_st *ptr, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + +memcached_return_t + memcached_add (memcached_st *ptr, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + +memcached_return_t + memcached_replace (memcached_st *ptr, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + +memcached_return_t + memcached_prepend(memcached_st *ptr, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags) + +memcached_return_t + memcached_append(memcached_st *ptr, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags) +memcached_return_t + memcached_cas(memcached_st *ptr, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags, + uint64_t cas); + +memcached_return_t + memcached_set_by_key(memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + +memcached_return_t + memcached_add_by_key(memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + +memcached_return_t + memcached_replace_by_key(memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + +memcached_return_t + memcached_prepend_by_key(memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + +memcached_return_t + memcached_append_by_key(memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + +memcached_return_t + memcached_cas_by_key(memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags, + uint64_t cas); +.ft P +.fi +.SH DESCRIPTION +.sp +memcached_set(), memcached_add(), and memcached_replace() are all used to +store information on the server. All methods take a key, and its length to +store the object. Keys are currently limited to 250 characters by the +memcached(1) server. You must also supply a value and a length. Optionally you +may support an expiration time for the object and a 16 byte value (it is +meant to be used as a bitmap). +.sp +memcached_set() will write an object to the server. If an object already +exists it will overwrite what is in the server. If the object does not exist +it will be written. If you are using the non\-blocking mode this function +will always return true unless a network error occurs. +.sp +memcached_replace() replaces an object on the server. If the object is not +found on the server an error occurs. +.sp +memcached_add() adds an object to the server. If the object is found on the +server an error occurs, otherwise the value is stored. +.sp +memcached_prepend() places a segment of data before the last piece of data +stored. Currently expiration and key are not used in the server. +.sp +memcached_append() places a segment of data at the end of the last piece of +data stored. Currently expiration and key are not used in the server. +.sp +memcached_cas() overwrites data in the server as long as the "cas" value is +still the same in the server. You can get the cas value of a result by +calling memcached_result_cas() on a memcached_result_st(3) structure. At the point +that this note was written cas is still buggy in memached. Turning on support +for it in libmemcached(3) is optional. Please see memcached_set() for +information on how to do this. +.sp +memcached_set_by_key(), memcached_add_by_key(), memcached_replace_by_key(), +memcached_prepend_by_key(), memcached_append_by_key_by_key(), +memcached_cas_by_key() methods all behave in a similar method as the non key +methods. The difference is that they use their master_key parameter to map +objects to particular servers. +.sp +If you are looking for performance, memcached_set() with non\-blocking IO is +the fastest way to store data on the server. +.sp +All of the above functions are supported with the \fBMEMCACHED_BEHAVIOR_USE_UDP\fPbehavior enabled. But when using these operations with this behavior on, there +are limits to the size of the payload being sent to the server. The reason for +these limits is that the Memcahed Server does not allow multi\-datagram requests +and the current server implementation sets a datagram size to 1400 bytes. Due +to protocol overhead, the actual limit of the user supplied data is less than +1400 bytes and depends on the protocol in use as well as the operation being +executed. When running with the binary protocol, \(ga\(ga MEMCACHED_BEHAVIOR_BINARY_PROTOCOL\(ga\(ga, +the size of the key,value, flags and expiry combined may not exceed 1368 bytes. +When running with the ASCII protocol, the exact limit fluctuates depending on +which function is being executed and whether the function is a cas operation +or not. For non\-cas ASCII set operations, there are at least 1335 bytes available +to split among the key, key_prefix, and value; for cas ASCII operations there are +at least 1318 bytes available to split among the key, key_prefix and value. If the +total size of the command, including overhead, exceeds 1400 bytes, a \fBMEMCACHED_WRITE_FAILURE\fPwill be returned. +.SH RETURN +.sp +All methods return a value of type \fBmemcached_return_t\fP. +On success the value will be \fBMEMCACHED_SUCCESS\fP. +Use memcached_strerror() to translate this value to a printable string. +.sp +For memcached_replace() and memcached_add(), \fBMEMCACHED_NOTSTORED\fP is a +legitmate error in the case of a collision. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Brian Aker, <\fI\%brian@tangent.org\fP> +.SH SEE ALSO +.sp +memcached(1) libmemached(3) memcached_strerror(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcached_cas_by_key.3 b/docs/man/memcached_cas_by_key.3 new file mode 100644 index 00000000..b60ef231 --- /dev/null +++ b/docs/man/memcached_cas_by_key.3 @@ -0,0 +1,216 @@ +.TH "MEMCACHED_CAS_BY_KEY" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcached_cas_by_key \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Store value on server +.SH LIBRARY +.sp +C Client Library for memcached (libmemcached, \-lmemcached) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +memcached_return_t + memcached_set (memcached_st *ptr, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + +memcached_return_t + memcached_add (memcached_st *ptr, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + +memcached_return_t + memcached_replace (memcached_st *ptr, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + +memcached_return_t + memcached_prepend(memcached_st *ptr, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags) + +memcached_return_t + memcached_append(memcached_st *ptr, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags) +memcached_return_t + memcached_cas(memcached_st *ptr, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags, + uint64_t cas); + +memcached_return_t + memcached_set_by_key(memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + +memcached_return_t + memcached_add_by_key(memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + +memcached_return_t + memcached_replace_by_key(memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + +memcached_return_t + memcached_prepend_by_key(memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + +memcached_return_t + memcached_append_by_key(memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + +memcached_return_t + memcached_cas_by_key(memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags, + uint64_t cas); +.ft P +.fi +.SH DESCRIPTION +.sp +memcached_set(), memcached_add(), and memcached_replace() are all used to +store information on the server. All methods take a key, and its length to +store the object. Keys are currently limited to 250 characters by the +memcached(1) server. You must also supply a value and a length. Optionally you +may support an expiration time for the object and a 16 byte value (it is +meant to be used as a bitmap). +.sp +memcached_set() will write an object to the server. If an object already +exists it will overwrite what is in the server. If the object does not exist +it will be written. If you are using the non\-blocking mode this function +will always return true unless a network error occurs. +.sp +memcached_replace() replaces an object on the server. If the object is not +found on the server an error occurs. +.sp +memcached_add() adds an object to the server. If the object is found on the +server an error occurs, otherwise the value is stored. +.sp +memcached_prepend() places a segment of data before the last piece of data +stored. Currently expiration and key are not used in the server. +.sp +memcached_append() places a segment of data at the end of the last piece of +data stored. Currently expiration and key are not used in the server. +.sp +memcached_cas() overwrites data in the server as long as the "cas" value is +still the same in the server. You can get the cas value of a result by +calling memcached_result_cas() on a memcached_result_st(3) structure. At the point +that this note was written cas is still buggy in memached. Turning on support +for it in libmemcached(3) is optional. Please see memcached_set() for +information on how to do this. +.sp +memcached_set_by_key(), memcached_add_by_key(), memcached_replace_by_key(), +memcached_prepend_by_key(), memcached_append_by_key_by_key(), +memcached_cas_by_key() methods all behave in a similar method as the non key +methods. The difference is that they use their master_key parameter to map +objects to particular servers. +.sp +If you are looking for performance, memcached_set() with non\-blocking IO is +the fastest way to store data on the server. +.sp +All of the above functions are supported with the \fBMEMCACHED_BEHAVIOR_USE_UDP\fPbehavior enabled. But when using these operations with this behavior on, there +are limits to the size of the payload being sent to the server. The reason for +these limits is that the Memcahed Server does not allow multi\-datagram requests +and the current server implementation sets a datagram size to 1400 bytes. Due +to protocol overhead, the actual limit of the user supplied data is less than +1400 bytes and depends on the protocol in use as well as the operation being +executed. When running with the binary protocol, \(ga\(ga MEMCACHED_BEHAVIOR_BINARY_PROTOCOL\(ga\(ga, +the size of the key,value, flags and expiry combined may not exceed 1368 bytes. +When running with the ASCII protocol, the exact limit fluctuates depending on +which function is being executed and whether the function is a cas operation +or not. For non\-cas ASCII set operations, there are at least 1335 bytes available +to split among the key, key_prefix, and value; for cas ASCII operations there are +at least 1318 bytes available to split among the key, key_prefix and value. If the +total size of the command, including overhead, exceeds 1400 bytes, a \fBMEMCACHED_WRITE_FAILURE\fPwill be returned. +.SH RETURN +.sp +All methods return a value of type \fBmemcached_return_t\fP. +On success the value will be \fBMEMCACHED_SUCCESS\fP. +Use memcached_strerror() to translate this value to a printable string. +.sp +For memcached_replace() and memcached_add(), \fBMEMCACHED_NOTSTORED\fP is a +legitmate error in the case of a collision. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Brian Aker, <\fI\%brian@tangent.org\fP> +.SH SEE ALSO +.sp +memcached(1) libmemached(3) memcached_strerror(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcached_clone.3 b/docs/man/memcached_clone.3 new file mode 100644 index 00000000..76e11dad --- /dev/null +++ b/docs/man/memcached_clone.3 @@ -0,0 +1,99 @@ +.TH "MEMCACHED_CLONE" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcached_clone \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Create a memcached_st structure +.SH LIBRARY +.sp +C Client Library for memcached (libmemcached, \-lmemcached) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +memcached_st *memcached_create (memcached_st *ptr); + +void memcached_free (memcached_st *ptr); + +memcached_st *memcached_clone (memcached_st *destination, memcached_st *source); + +void memcached_servers_reset(memcached_st); +.ft P +.fi +.SH DESCRIPTION +.sp +memcached_create() is used to create a \fBmemcached_st\fP structure that will then +be used by other libmemcached(3) functions to communicate with the server. You +should either pass a statically declared \fBmemcached_st\fP to memcached_create() or +a NULL. If a NULL passed in then a structure is allocated for you. +.sp +memcached_clone() is similar to memcached_create(3) but it copies the +defaults and list of servers from the source \fBmemcached_st\fP. If you pass a null as +the argument for the source to clone, it is the same as a call to memcached_create(). +If the destination argument is NULL a \fBmemcached_st\fP will be allocated for you. +.sp +memcached_servers_reset() allows you to zero out the list of servers that +the memcached_st has. +.sp +To clean up memory associated with a \fBmemcached_st\fP structure you should pass +it to memcached_free() when you are finished using it. memcached_free() is +the only way to make sure all memory is deallocated when you finish using +the structure. +.sp +You may wish to avoid using memcached_create(3) or memcached_clone(3) with a +stack based allocation. The most common issues related to ABI safety involve +heap allocated structures. +.SH RETURN +.sp +memcached_create() returns a pointer to the memcached_st that was created +(or initialized). On an allocation failure, it returns NULL. +.sp +memcached_clone() returns a pointer to the memcached_st that was created +(or initialized). On an allocation failure, it returns NULL. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Brian Aker, <\fI\%brian@tangent.org\fP> +.SH SEE ALSO +.sp +memcached(1) libmemcached(3) memcached_strerror(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcached_create.3 b/docs/man/memcached_create.3 new file mode 100644 index 00000000..1cd0b8c0 --- /dev/null +++ b/docs/man/memcached_create.3 @@ -0,0 +1,99 @@ +.TH "MEMCACHED_CREATE" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcached_create \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Create a memcached_st structure +.SH LIBRARY +.sp +C Client Library for memcached (libmemcached, \-lmemcached) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +memcached_st *memcached_create (memcached_st *ptr); + +void memcached_free (memcached_st *ptr); + +memcached_st *memcached_clone (memcached_st *destination, memcached_st *source); + +void memcached_servers_reset(memcached_st); +.ft P +.fi +.SH DESCRIPTION +.sp +memcached_create() is used to create a \fBmemcached_st\fP structure that will then +be used by other libmemcached(3) functions to communicate with the server. You +should either pass a statically declared \fBmemcached_st\fP to memcached_create() or +a NULL. If a NULL passed in then a structure is allocated for you. +.sp +memcached_clone() is similar to memcached_create(3) but it copies the +defaults and list of servers from the source \fBmemcached_st\fP. If you pass a null as +the argument for the source to clone, it is the same as a call to memcached_create(). +If the destination argument is NULL a \fBmemcached_st\fP will be allocated for you. +.sp +memcached_servers_reset() allows you to zero out the list of servers that +the memcached_st has. +.sp +To clean up memory associated with a \fBmemcached_st\fP structure you should pass +it to memcached_free() when you are finished using it. memcached_free() is +the only way to make sure all memory is deallocated when you finish using +the structure. +.sp +You may wish to avoid using memcached_create(3) or memcached_clone(3) with a +stack based allocation. The most common issues related to ABI safety involve +heap allocated structures. +.SH RETURN +.sp +memcached_create() returns a pointer to the memcached_st that was created +(or initialized). On an allocation failure, it returns NULL. +.sp +memcached_clone() returns a pointer to the memcached_st that was created +(or initialized). On an allocation failure, it returns NULL. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Brian Aker, <\fI\%brian@tangent.org\fP> +.SH SEE ALSO +.sp +memcached(1) libmemcached(3) memcached_strerror(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcached_decrement.3 b/docs/man/memcached_decrement.3 new file mode 100644 index 00000000..5124a837 --- /dev/null +++ b/docs/man/memcached_decrement.3 @@ -0,0 +1,168 @@ +.TH "MEMCACHED_DECREMENT" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcached_decrement \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Manipulate counters +.SH LIBRARY +.sp +C Client Library for memcached (libmemcached, \-lmemcached) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +memcached_return_t + memcached_increment (memcached_st *ptr, + const char *key, size_t key_length, + unsigned int offset, + uint64_t *value); + +memcached_return_t + memcached_decrement (memcached_st *ptr, + const char *key, size_t key_length, + unsigned int offset, + uint64_t *value); + +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); + +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); + +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, + unsigned int offset, + uint64_t *value); + +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, + unsigned int offset, + uint64_t *value); + +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); + +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); +.ft P +.fi +.SH DESCRIPTION +.sp +memcached(1) servers have the ability to increment and decrement keys +(overflow and underflow are not detected). This gives you the ability to use +memcached to generate shared sequences of values. +.sp +memcached_increment() takes a key and keylength and increments the value by +the offset passed to it. The value is then returned via the unsigned int +value pointer you pass to it. +.sp +memcached_decrement() takes a key and keylength and decrements the value by +the offset passed to it. The value is then returned via the unsigned int +value pointer you pass to it. +.sp +memcached_increment_with_initial() takes a key and keylength and increments +the value by the offset passed to it. If the object specified by key does +not exist, one of two things may happen: If the expiration value is +MEMCACHED_EXPIRATION_NOT_ADD, the operation will fail. For all other +expiration values, the operation will succeed by seeding the value for that +key with a initial value to expire with the provided expiration time. The +flags will be set to zero.The value is then returned via the unsigned int +value pointer you pass to it. +.sp +memcached_decrement_with_initial() takes a key and keylength and decrements +the value by the offset passed to it. If the object specified by key does +not exist, one of two things may happen: If the expiration value is +MEMCACHED_EXPIRATION_NOT_ADD, the operation will fail. For all other +expiration values, the operation will succeed by seeding the value for that +key with a initial value to expire with the provided expiration time. The +flags will be set to zero.The value is then returned via the unsigned int +value pointer you pass to it. +.sp +memcached_increment_by_key(), memcached_decrement_by_key(), +memcached_increment_with_initial_by_key(), and +memcached_decrement_with_initial_by_key() are master key equivalents of the +above. +.SH RETURN +.sp +A value of type \fBmemcached_return_t\fP is returned. +On success that value will be \fBMEMCACHED_SUCCESS\fP. +Use memcached_strerror() to translate this value to a printable string. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Brian Aker, <\fI\%brian@tangent.org\fP> +.SH SEE ALSO +.sp +memcached(1) libmemcached(3) memcached_strerror(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcached_decrement_with_initial.3 b/docs/man/memcached_decrement_with_initial.3 new file mode 100644 index 00000000..cadf76da --- /dev/null +++ b/docs/man/memcached_decrement_with_initial.3 @@ -0,0 +1,168 @@ +.TH "MEMCACHED_DECREMENT_WITH_INITIAL" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcached_decrement_with_initial \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Manipulate counters +.SH LIBRARY +.sp +C Client Library for memcached (libmemcached, \-lmemcached) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +memcached_return_t + memcached_increment (memcached_st *ptr, + const char *key, size_t key_length, + unsigned int offset, + uint64_t *value); + +memcached_return_t + memcached_decrement (memcached_st *ptr, + const char *key, size_t key_length, + unsigned int offset, + uint64_t *value); + +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); + +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); + +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, + unsigned int offset, + uint64_t *value); + +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, + unsigned int offset, + uint64_t *value); + +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); + +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); +.ft P +.fi +.SH DESCRIPTION +.sp +memcached(1) servers have the ability to increment and decrement keys +(overflow and underflow are not detected). This gives you the ability to use +memcached to generate shared sequences of values. +.sp +memcached_increment() takes a key and keylength and increments the value by +the offset passed to it. The value is then returned via the unsigned int +value pointer you pass to it. +.sp +memcached_decrement() takes a key and keylength and decrements the value by +the offset passed to it. The value is then returned via the unsigned int +value pointer you pass to it. +.sp +memcached_increment_with_initial() takes a key and keylength and increments +the value by the offset passed to it. If the object specified by key does +not exist, one of two things may happen: If the expiration value is +MEMCACHED_EXPIRATION_NOT_ADD, the operation will fail. For all other +expiration values, the operation will succeed by seeding the value for that +key with a initial value to expire with the provided expiration time. The +flags will be set to zero.The value is then returned via the unsigned int +value pointer you pass to it. +.sp +memcached_decrement_with_initial() takes a key and keylength and decrements +the value by the offset passed to it. If the object specified by key does +not exist, one of two things may happen: If the expiration value is +MEMCACHED_EXPIRATION_NOT_ADD, the operation will fail. For all other +expiration values, the operation will succeed by seeding the value for that +key with a initial value to expire with the provided expiration time. The +flags will be set to zero.The value is then returned via the unsigned int +value pointer you pass to it. +.sp +memcached_increment_by_key(), memcached_decrement_by_key(), +memcached_increment_with_initial_by_key(), and +memcached_decrement_with_initial_by_key() are master key equivalents of the +above. +.SH RETURN +.sp +A value of type \fBmemcached_return_t\fP is returned. +On success that value will be \fBMEMCACHED_SUCCESS\fP. +Use memcached_strerror() to translate this value to a printable string. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Brian Aker, <\fI\%brian@tangent.org\fP> +.SH SEE ALSO +.sp +memcached(1) libmemcached(3) memcached_strerror(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcached_delete.3 b/docs/man/memcached_delete.3 new file mode 100644 index 00000000..51da4a3d --- /dev/null +++ b/docs/man/memcached_delete.3 @@ -0,0 +1,93 @@ +.TH "MEMCACHED_DELETE" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcached_delete \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Delete a key +.SH LIBRARY +.sp +C Client Library for memcached (libmemcached, \-lmemcached) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +memcached_return_t + memcached_delete (memcached_st *ptr, + const char *key, size_t key_length, + time_t expiration); + +memcached_return_t +memcached_delete_by_key (memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char *key, size_t key_length, + time_t expiration); +.ft P +.fi +.SH DESCRIPTION +.sp +memcached_delete() is used to delete a particular key. +memcached_delete_by_key() works the same, but it takes a master key to +find the given value. +.sp +Expiration works by placing the item into a delete queue, which means that +it won\(aqt possible to retrieve it by the "get" command, but "add" and +"replace" command with this key will also fail (the "set" command will +succeed, however). After the time passes, the item is finally deleted from server memory. +.sp +Please note the the Danga memcached server removed support for expiration in +the 1.4 version. +.SH RETURN +.sp +A value of type \fBmemcached_return_t\fP is returned +On success that value will be \fBMEMCACHED_SUCCESS\fP. +Use memcached_strerror() to translate this value to a printable string. +.sp +If you are using the non\-blocking mode of the library, success only +means that the message was queued for delivery. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Brian Aker, <\fI\%brian@tangent.org\fP> +.SH SEE ALSO +.sp +memcached(1) libmemcached(3) memcached_strerror(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcached_delete_by_key.3 b/docs/man/memcached_delete_by_key.3 new file mode 100644 index 00000000..e2bf8471 --- /dev/null +++ b/docs/man/memcached_delete_by_key.3 @@ -0,0 +1,93 @@ +.TH "MEMCACHED_DELETE_BY_KEY" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcached_delete_by_key \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Delete a key +.SH LIBRARY +.sp +C Client Library for memcached (libmemcached, \-lmemcached) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +memcached_return_t + memcached_delete (memcached_st *ptr, + const char *key, size_t key_length, + time_t expiration); + +memcached_return_t +memcached_delete_by_key (memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char *key, size_t key_length, + time_t expiration); +.ft P +.fi +.SH DESCRIPTION +.sp +memcached_delete() is used to delete a particular key. +memcached_delete_by_key() works the same, but it takes a master key to +find the given value. +.sp +Expiration works by placing the item into a delete queue, which means that +it won\(aqt possible to retrieve it by the "get" command, but "add" and +"replace" command with this key will also fail (the "set" command will +succeed, however). After the time passes, the item is finally deleted from server memory. +.sp +Please note the the Danga memcached server removed support for expiration in +the 1.4 version. +.SH RETURN +.sp +A value of type \fBmemcached_return_t\fP is returned +On success that value will be \fBMEMCACHED_SUCCESS\fP. +Use memcached_strerror() to translate this value to a printable string. +.sp +If you are using the non\-blocking mode of the library, success only +means that the message was queued for delivery. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Brian Aker, <\fI\%brian@tangent.org\fP> +.SH SEE ALSO +.sp +memcached(1) libmemcached(3) memcached_strerror(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcached_destroy_sasl_auth_data.3 b/docs/man/memcached_destroy_sasl_auth_data.3 new file mode 100644 index 00000000..65504e5c --- /dev/null +++ b/docs/man/memcached_destroy_sasl_auth_data.3 @@ -0,0 +1,94 @@ +.TH "MEMCACHED_DESTROY_SASL_AUTH_DATA" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcached_destroy_sasl_auth_data \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +SASL support +.SH LIBRARY +.sp +C Client Library for memcached (libmemcached, \-lmemcached) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +void memcached_set_sasl_callbacks(memcached_st *ptr, + const sasl_callback_t *callbacks) + +const sasl_callback_t *memcached_get_sasl_callbacks(memcached_st *ptr) + +memcached_return memcached_set_sasl_auth_data(memcached_st *ptr, + const char *username, + const char *password) +memcached_return memcached_destroy_sasl_auth_data(memcached_st *ptr) +.ft P +.fi +.SH DESCRIPTION +.sp +libmemcached(3) allows you to plug in your own callbacks function used by +libsasl to perform SASL authentication. +.sp +Please note that SASL requires the memcached binary protocol, and you have +to specify the callbacks before you connect to the server. +.sp +memcached_set_sasl_auth_data() is a helper function for you defining +the basic functionality for you, but it will store the username and password +in memory. If you choose to use this method you have to call +memcached_destroy_sasl_auth_data before calling memcached_free to avoid +a memory leak. You should NOT call memcached_destroy_sasl_auth_data if you +specify your own callback function with memcached_set_sasl_callbacks(). +.sp +You as a client user have to initialize libsasl by using sasl_client_init +before enabling it in libmemcached, and you have to shut down libsasl by +calling sasl_done() when you are done using SASL from libmemcached. +.SH RETURN +.sp +memcached_get_sasl_callbacks() returns the callbacks currently used +by this memcached handle. +memcached_get_sasl_set_auth_data() returns MEMCACHED_SUCCESS upon success. +.SH HOME +.sp +To find out more information please check: +\fI\%http://libmemcached.org/\fP +.SH AUTHOR +.sp +Trond Norbye, <\fI\%trond.norbye@gmail.com\fP> +.SH SEE ALSO +.sp +memcached(1) libmemcached(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcached_dump.3 b/docs/man/memcached_dump.3 new file mode 100644 index 00000000..599c8a10 --- /dev/null +++ b/docs/man/memcached_dump.3 @@ -0,0 +1,85 @@ +.TH "MEMCACHED_DUMP" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcached_dump \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Get a list of keys found on memcached servers +.SH LIBRARY +.sp +C Client Library for memcached (libmemcached, \-lmemcached) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +memcached_return_t + memcached_dump (memcached_st *ptr, + memcached_dump_fn *function, + void *context, + uint32_t number_of_callbacks); + +typedef memcached_return_t (*memcached_dump_fn)(memcached_st *ptr, + const char *key, + size_t key_length, + void *context); +.ft P +.fi +.SH DESCRIPTION +.sp +memcached_dump() is used to get a list of keys found memcached(1) servers. +Because memcached(1) does not guarentee to dump all keys you can not assume +you have fetched all keys from the server. The function takes an array +of callbacks that it will use to execute on keys as they are found. +.sp +Currently the binar protocol is not supported. +.SH RETURN +.sp +A value of type \fBmemcached_return_t\fP is returned +On success that value will be \fBMEMCACHED_SUCCESS\fP. +Use memcached_strerror() to translate this value to a printable string. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Brian Aker, <\fI\%brian@tangent.org\fP> +.SH SEE ALSO +.sp +memcached(1) libmemcached(3) memcached_strerror(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcached_fetch.3 b/docs/man/memcached_fetch.3 new file mode 100644 index 00000000..d901605b --- /dev/null +++ b/docs/man/memcached_fetch.3 @@ -0,0 +1,206 @@ +.TH "MEMCACHED_FETCH" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcached_fetch \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Get a value +.SH LIBRARY +.sp +C Client Library for memcached (libmemcached, \-lmemcached) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +memcached_result_st * + memcached_fetch_result (memcached_st *ptr, + memcached_result_st *result, + memcached_return_t *error); + +char * + memcached_get (memcached_st *ptr, + const char *key, size_t key_length, + size_t *value_length, + uint32_t *flags, + memcached_return_t *error); + +memcached_return_t + memcached_mget (memcached_st *ptr, + const char * const *keys, + const size_t *key_length, + size_t number_of_keys); +char * + memcached_get_by_key (memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char *key, size_t key_length, + size_t *value_length, + uint32_t *flags, + memcached_return_t *error); + +memcached_return_t + memcached_mget_by_key (memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char * const *keys, + const size_t *key_length, + size_t number_of_keys); + +char * + memcached_fetch (memcached_st *ptr, + char *key, size_t *key_length, + size_t *value_length, + uint32_t *flags, + memcached_return_t *error); + +memcached_return_t + memcached_fetch_execute (memcached_st *ptr, + memcached_execute_fn *callback, + void *context, + uint32_t number_of_callbacks); + + +memcached_return_t + memcached_mget_execute (memcached_st *ptr, + const char * const *keys, + const size_t *key_length, + size_t number_of_keys, + memcached_execute_fn *callback, + void *context, + uint32_t number_of_callbacks); + +memcached_return_t + memcached_mget_execute_by_key (memcached_st *ptr, + const char *master_key, + size_t master_key_length, + const char * const *keys, + const size_t *key_length, + size_t number_of_keys, + memcached_execute_fn *callback, + void *context, + uint32_t number_of_callbacks); +.ft P +.fi +.SH DESCRIPTION +.sp +memcached_get() is used to fetch an individual value from the server. You +must pass in a key and its length to fetch the object. You must supply +three pointer variables which will give you the state of the returned +object. A uint32_t pointer to contain whatever flags you stored with the value, +a size_t pointer which will be filled with size of of the object, and a +memcached_return_t pointer to hold any error. The object will be returned +upon success and NULL will be returned on failure. Any object returned by +memcached_get() must be released by the caller application. +.sp +memcached_mget() is used to select multiple keys at once. For multiple key +operations it is always faster to use this function. This function always +works asynchronously. memcached_fetch() is then used to retrieve any keys +found. No error is given on keys that are not found. You must call either +memcached_fetch() or memcached_fetch_result() after a successful call to +memcached_mget(). You should continue to call these functions until they +return NULL (aka no more values). If you need to quit in the middle of a +memcached_get() call, execute a memcached_quit(). After you do this, you can +issue new queries against the server. +.sp +memcached_fetch() is used to fetch an individual value from the server. +memcached_mget() must always be called before using this method. You +must pass in a key and its length to fetch the object. You must supply +three pointer variables which will give you the state of the returned +object. A uint32_t pointer to contain whatever flags you stored with the value, +a size_t pointer which will be filled with size of of the object, and a +memcached_return_t pointer to hold any error. The object will be returned +upon success and NULL will be returned on failure. MEMCACHD_END is returned +by the *error value when all objects that have been found are returned. +The final value upon MEMCACHED_END is null. Values returned by +memcached_fetch() musted be free\(aqed by the caller. memcached_fetch() will +be DEPRECATED in the near future, memcached_fetch_result() should be used +instead. +.sp +memcached_fetch_result() is used to return a memcached_result_st(3) structure +from a memcached server. The result object is forward compatible with changes +to the server. For more information please refer to the memcached_result_st(3) +help. This function will dynamically allocate a result structure for you +if you do not pass one to the function. +.sp +memcached_fetch_execute() is a callback function for result sets. Instead +of returning the results to you for processing, it passes each of the +result sets to the list of functions you provide. It passes to the function +a memcached_st that can be cloned for use in the called function (it can not +be used directly). It also passes a result set which does not need to be freed. +Finally it passes a "context". This is just a pointer to a memory reference +you supply the calling function. Currently only one value is being passed +to each function call. In the future there will be an option to allow this +to be an array. +.sp +memcached_mget_execute() and memcached_mget_execute_by_key() is +similar to memcached_mget(), but it may trigger the supplied callbacks +with result sets while sending out the queries. If you try to perform +a really large multiget with memcached_mget() you may encounter a +deadlock in the OS kernel (we fail to write data to the socket because +the input buffer is full). memcached_mget_execute() solves this +problem by processing some of the results before continuing sending +out requests. Please note that this function is only available in the +binary protocol. +.sp +memcached_get_by_key() and memcached_mget_by_key() behave in a similar nature +as memcached_get() and memcached_mget(). The difference is that they take +a master key that is used for determining which server an object was stored +if key partitioning was used for storage. +.sp +All of the above functions are not supported when the \fBMEMCACHED_BEHAVIOR_USE_UDP\fPhas been set. Executing any of these functions with this behavior on will result in +\fBMEMCACHED_NOT_SUPPORTED\fP being returned or, for those functions which do not return +a \fBmemcached_return_t\fP, the error function parameter will be set to +\fBMEMCACHED_NOT_SUPPORTED\fP. +.SH RETURN +.sp +All objects returned must be freed by the calling application. +memcached_get() and memcached_fetch() will return NULL on error. You must +look at the value of error to determine what the actual error was. +.sp +MEMCACHED_KEY_TOO_BIG is set to error whenever memcached_fetch() was used +and the key was set larger then MEMCACHED_MAX_KEY, which was the largest +key allowed for the original memcached ascii server. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Brian Aker, <\fI\%brian@tangent.org\fP> +.SH SEE ALSO +.sp +memcached(1) libmemcached(3) memcached_strerror(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcached_fetch_execute.3 b/docs/man/memcached_fetch_execute.3 new file mode 100644 index 00000000..5d73721e --- /dev/null +++ b/docs/man/memcached_fetch_execute.3 @@ -0,0 +1,206 @@ +.TH "MEMCACHED_FETCH_EXECUTE" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcached_fetch_execute \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Get a value +.SH LIBRARY +.sp +C Client Library for memcached (libmemcached, \-lmemcached) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +memcached_result_st * + memcached_fetch_result (memcached_st *ptr, + memcached_result_st *result, + memcached_return_t *error); + +char * + memcached_get (memcached_st *ptr, + const char *key, size_t key_length, + size_t *value_length, + uint32_t *flags, + memcached_return_t *error); + +memcached_return_t + memcached_mget (memcached_st *ptr, + const char * const *keys, + const size_t *key_length, + size_t number_of_keys); +char * + memcached_get_by_key (memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char *key, size_t key_length, + size_t *value_length, + uint32_t *flags, + memcached_return_t *error); + +memcached_return_t + memcached_mget_by_key (memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char * const *keys, + const size_t *key_length, + size_t number_of_keys); + +char * + memcached_fetch (memcached_st *ptr, + char *key, size_t *key_length, + size_t *value_length, + uint32_t *flags, + memcached_return_t *error); + +memcached_return_t + memcached_fetch_execute (memcached_st *ptr, + memcached_execute_fn *callback, + void *context, + uint32_t number_of_callbacks); + + +memcached_return_t + memcached_mget_execute (memcached_st *ptr, + const char * const *keys, + const size_t *key_length, + size_t number_of_keys, + memcached_execute_fn *callback, + void *context, + uint32_t number_of_callbacks); + +memcached_return_t + memcached_mget_execute_by_key (memcached_st *ptr, + const char *master_key, + size_t master_key_length, + const char * const *keys, + const size_t *key_length, + size_t number_of_keys, + memcached_execute_fn *callback, + void *context, + uint32_t number_of_callbacks); +.ft P +.fi +.SH DESCRIPTION +.sp +memcached_get() is used to fetch an individual value from the server. You +must pass in a key and its length to fetch the object. You must supply +three pointer variables which will give you the state of the returned +object. A uint32_t pointer to contain whatever flags you stored with the value, +a size_t pointer which will be filled with size of of the object, and a +memcached_return_t pointer to hold any error. The object will be returned +upon success and NULL will be returned on failure. Any object returned by +memcached_get() must be released by the caller application. +.sp +memcached_mget() is used to select multiple keys at once. For multiple key +operations it is always faster to use this function. This function always +works asynchronously. memcached_fetch() is then used to retrieve any keys +found. No error is given on keys that are not found. You must call either +memcached_fetch() or memcached_fetch_result() after a successful call to +memcached_mget(). You should continue to call these functions until they +return NULL (aka no more values). If you need to quit in the middle of a +memcached_get() call, execute a memcached_quit(). After you do this, you can +issue new queries against the server. +.sp +memcached_fetch() is used to fetch an individual value from the server. +memcached_mget() must always be called before using this method. You +must pass in a key and its length to fetch the object. You must supply +three pointer variables which will give you the state of the returned +object. A uint32_t pointer to contain whatever flags you stored with the value, +a size_t pointer which will be filled with size of of the object, and a +memcached_return_t pointer to hold any error. The object will be returned +upon success and NULL will be returned on failure. MEMCACHD_END is returned +by the *error value when all objects that have been found are returned. +The final value upon MEMCACHED_END is null. Values returned by +memcached_fetch() musted be free\(aqed by the caller. memcached_fetch() will +be DEPRECATED in the near future, memcached_fetch_result() should be used +instead. +.sp +memcached_fetch_result() is used to return a memcached_result_st(3) structure +from a memcached server. The result object is forward compatible with changes +to the server. For more information please refer to the memcached_result_st(3) +help. This function will dynamically allocate a result structure for you +if you do not pass one to the function. +.sp +memcached_fetch_execute() is a callback function for result sets. Instead +of returning the results to you for processing, it passes each of the +result sets to the list of functions you provide. It passes to the function +a memcached_st that can be cloned for use in the called function (it can not +be used directly). It also passes a result set which does not need to be freed. +Finally it passes a "context". This is just a pointer to a memory reference +you supply the calling function. Currently only one value is being passed +to each function call. In the future there will be an option to allow this +to be an array. +.sp +memcached_mget_execute() and memcached_mget_execute_by_key() is +similar to memcached_mget(), but it may trigger the supplied callbacks +with result sets while sending out the queries. If you try to perform +a really large multiget with memcached_mget() you may encounter a +deadlock in the OS kernel (we fail to write data to the socket because +the input buffer is full). memcached_mget_execute() solves this +problem by processing some of the results before continuing sending +out requests. Please note that this function is only available in the +binary protocol. +.sp +memcached_get_by_key() and memcached_mget_by_key() behave in a similar nature +as memcached_get() and memcached_mget(). The difference is that they take +a master key that is used for determining which server an object was stored +if key partitioning was used for storage. +.sp +All of the above functions are not supported when the \fBMEMCACHED_BEHAVIOR_USE_UDP\fPhas been set. Executing any of these functions with this behavior on will result in +\fBMEMCACHED_NOT_SUPPORTED\fP being returned or, for those functions which do not return +a \fBmemcached_return_t\fP, the error function parameter will be set to +\fBMEMCACHED_NOT_SUPPORTED\fP. +.SH RETURN +.sp +All objects returned must be freed by the calling application. +memcached_get() and memcached_fetch() will return NULL on error. You must +look at the value of error to determine what the actual error was. +.sp +MEMCACHED_KEY_TOO_BIG is set to error whenever memcached_fetch() was used +and the key was set larger then MEMCACHED_MAX_KEY, which was the largest +key allowed for the original memcached ascii server. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Brian Aker, <\fI\%brian@tangent.org\fP> +.SH SEE ALSO +.sp +memcached(1) libmemcached(3) memcached_strerror(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcached_fetch_result.3 b/docs/man/memcached_fetch_result.3 new file mode 100644 index 00000000..fc6c844a --- /dev/null +++ b/docs/man/memcached_fetch_result.3 @@ -0,0 +1,206 @@ +.TH "MEMCACHED_FETCH_RESULT" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcached_fetch_result \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Get a value +.SH LIBRARY +.sp +C Client Library for memcached (libmemcached, \-lmemcached) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +memcached_result_st * + memcached_fetch_result (memcached_st *ptr, + memcached_result_st *result, + memcached_return_t *error); + +char * + memcached_get (memcached_st *ptr, + const char *key, size_t key_length, + size_t *value_length, + uint32_t *flags, + memcached_return_t *error); + +memcached_return_t + memcached_mget (memcached_st *ptr, + const char * const *keys, + const size_t *key_length, + size_t number_of_keys); +char * + memcached_get_by_key (memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char *key, size_t key_length, + size_t *value_length, + uint32_t *flags, + memcached_return_t *error); + +memcached_return_t + memcached_mget_by_key (memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char * const *keys, + const size_t *key_length, + size_t number_of_keys); + +char * + memcached_fetch (memcached_st *ptr, + char *key, size_t *key_length, + size_t *value_length, + uint32_t *flags, + memcached_return_t *error); + +memcached_return_t + memcached_fetch_execute (memcached_st *ptr, + memcached_execute_fn *callback, + void *context, + uint32_t number_of_callbacks); + + +memcached_return_t + memcached_mget_execute (memcached_st *ptr, + const char * const *keys, + const size_t *key_length, + size_t number_of_keys, + memcached_execute_fn *callback, + void *context, + uint32_t number_of_callbacks); + +memcached_return_t + memcached_mget_execute_by_key (memcached_st *ptr, + const char *master_key, + size_t master_key_length, + const char * const *keys, + const size_t *key_length, + size_t number_of_keys, + memcached_execute_fn *callback, + void *context, + uint32_t number_of_callbacks); +.ft P +.fi +.SH DESCRIPTION +.sp +memcached_get() is used to fetch an individual value from the server. You +must pass in a key and its length to fetch the object. You must supply +three pointer variables which will give you the state of the returned +object. A uint32_t pointer to contain whatever flags you stored with the value, +a size_t pointer which will be filled with size of of the object, and a +memcached_return_t pointer to hold any error. The object will be returned +upon success and NULL will be returned on failure. Any object returned by +memcached_get() must be released by the caller application. +.sp +memcached_mget() is used to select multiple keys at once. For multiple key +operations it is always faster to use this function. This function always +works asynchronously. memcached_fetch() is then used to retrieve any keys +found. No error is given on keys that are not found. You must call either +memcached_fetch() or memcached_fetch_result() after a successful call to +memcached_mget(). You should continue to call these functions until they +return NULL (aka no more values). If you need to quit in the middle of a +memcached_get() call, execute a memcached_quit(). After you do this, you can +issue new queries against the server. +.sp +memcached_fetch() is used to fetch an individual value from the server. +memcached_mget() must always be called before using this method. You +must pass in a key and its length to fetch the object. You must supply +three pointer variables which will give you the state of the returned +object. A uint32_t pointer to contain whatever flags you stored with the value, +a size_t pointer which will be filled with size of of the object, and a +memcached_return_t pointer to hold any error. The object will be returned +upon success and NULL will be returned on failure. MEMCACHD_END is returned +by the *error value when all objects that have been found are returned. +The final value upon MEMCACHED_END is null. Values returned by +memcached_fetch() musted be free\(aqed by the caller. memcached_fetch() will +be DEPRECATED in the near future, memcached_fetch_result() should be used +instead. +.sp +memcached_fetch_result() is used to return a memcached_result_st(3) structure +from a memcached server. The result object is forward compatible with changes +to the server. For more information please refer to the memcached_result_st(3) +help. This function will dynamically allocate a result structure for you +if you do not pass one to the function. +.sp +memcached_fetch_execute() is a callback function for result sets. Instead +of returning the results to you for processing, it passes each of the +result sets to the list of functions you provide. It passes to the function +a memcached_st that can be cloned for use in the called function (it can not +be used directly). It also passes a result set which does not need to be freed. +Finally it passes a "context". This is just a pointer to a memory reference +you supply the calling function. Currently only one value is being passed +to each function call. In the future there will be an option to allow this +to be an array. +.sp +memcached_mget_execute() and memcached_mget_execute_by_key() is +similar to memcached_mget(), but it may trigger the supplied callbacks +with result sets while sending out the queries. If you try to perform +a really large multiget with memcached_mget() you may encounter a +deadlock in the OS kernel (we fail to write data to the socket because +the input buffer is full). memcached_mget_execute() solves this +problem by processing some of the results before continuing sending +out requests. Please note that this function is only available in the +binary protocol. +.sp +memcached_get_by_key() and memcached_mget_by_key() behave in a similar nature +as memcached_get() and memcached_mget(). The difference is that they take +a master key that is used for determining which server an object was stored +if key partitioning was used for storage. +.sp +All of the above functions are not supported when the \fBMEMCACHED_BEHAVIOR_USE_UDP\fPhas been set. Executing any of these functions with this behavior on will result in +\fBMEMCACHED_NOT_SUPPORTED\fP being returned or, for those functions which do not return +a \fBmemcached_return_t\fP, the error function parameter will be set to +\fBMEMCACHED_NOT_SUPPORTED\fP. +.SH RETURN +.sp +All objects returned must be freed by the calling application. +memcached_get() and memcached_fetch() will return NULL on error. You must +look at the value of error to determine what the actual error was. +.sp +MEMCACHED_KEY_TOO_BIG is set to error whenever memcached_fetch() was used +and the key was set larger then MEMCACHED_MAX_KEY, which was the largest +key allowed for the original memcached ascii server. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Brian Aker, <\fI\%brian@tangent.org\fP> +.SH SEE ALSO +.sp +memcached(1) libmemcached(3) memcached_strerror(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcached_flush.3 b/docs/man/memcached_flush.3 new file mode 100644 index 00000000..9ef4144f --- /dev/null +++ b/docs/man/memcached_flush.3 @@ -0,0 +1,78 @@ +.TH "MEMCACHED_FLUSH" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcached_flush \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Wipe contents of memcached servers +.SH LIBRARY +.sp +C Client Library for memcached (libmemcached, \-lmemcached) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +memcached_return_t + memcached_flush (memcached_st *ptr, + time_t expiration); +.ft P +.fi +.SH DESCRIPTION +.sp +memcached_flush() is used to wipe clean the contents of memcached(1) servers. +It will either do this immediately or expire the content based on the +expiration time passed to the method (a value of zero causes an immediate +flush). The operation is not atomic to multiple servers, just atomic to a +single server. That is, it will flush the servers in the order that they were +added. +.SH RETURN +.sp +A value of type \fBmemcached_return_t\fP is returned +On success that value will be \fBMEMCACHED_SUCCESS\fP. +Use memcached_strerror() to translate this value to a printable string. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Brian Aker, <\fI\%brian@tangent.org\fP> +.SH SEE ALSO +.sp +memcached(1) libmemcached(3) memcached_strerror(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcached_flush_buffers.3 b/docs/man/memcached_flush_buffers.3 new file mode 100644 index 00000000..f57262c8 --- /dev/null +++ b/docs/man/memcached_flush_buffers.3 @@ -0,0 +1,74 @@ +.TH "MEMCACHED_FLUSH_BUFFERS" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcached_flush_buffers \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Flush buffers and send buffered commands +.SH LIBRARY +.sp +C Client Library for memcached (libmemcached, \-lmemcached) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +memcached_return_t + memcached_flush_buffers (memcached_st *ptr); +.ft P +.fi +.SH DESCRIPTION +.sp +memcached_flush_buffers() is used in conjunction with +MEMCACHED_BEHAVIOR_BUFFER_REQUESTS (see memcached_behavior(3)) to flush +all buffers by sending the buffered commands to the server for processing. +.SH RETURN +.sp +A value of type \fBmemcached_return_t\fP is returned +On success that value will be \fBMEMCACHED_SUCCESS\fP. +Use memcached_strerror() to translate this value to a printable string. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Trond Norbye, <\fI\%trond.norbye@gmail.com\fP> +.SH SEE ALSO +.sp +memcached(1) libmemcached(3) memcached_strerror(3) memcached_behavior(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcached_free.3 b/docs/man/memcached_free.3 new file mode 100644 index 00000000..d1691762 --- /dev/null +++ b/docs/man/memcached_free.3 @@ -0,0 +1,99 @@ +.TH "MEMCACHED_FREE" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcached_free \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Create a memcached_st structure +.SH LIBRARY +.sp +C Client Library for memcached (libmemcached, \-lmemcached) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +memcached_st *memcached_create (memcached_st *ptr); + +void memcached_free (memcached_st *ptr); + +memcached_st *memcached_clone (memcached_st *destination, memcached_st *source); + +void memcached_servers_reset(memcached_st); +.ft P +.fi +.SH DESCRIPTION +.sp +memcached_create() is used to create a \fBmemcached_st\fP structure that will then +be used by other libmemcached(3) functions to communicate with the server. You +should either pass a statically declared \fBmemcached_st\fP to memcached_create() or +a NULL. If a NULL passed in then a structure is allocated for you. +.sp +memcached_clone() is similar to memcached_create(3) but it copies the +defaults and list of servers from the source \fBmemcached_st\fP. If you pass a null as +the argument for the source to clone, it is the same as a call to memcached_create(). +If the destination argument is NULL a \fBmemcached_st\fP will be allocated for you. +.sp +memcached_servers_reset() allows you to zero out the list of servers that +the memcached_st has. +.sp +To clean up memory associated with a \fBmemcached_st\fP structure you should pass +it to memcached_free() when you are finished using it. memcached_free() is +the only way to make sure all memory is deallocated when you finish using +the structure. +.sp +You may wish to avoid using memcached_create(3) or memcached_clone(3) with a +stack based allocation. The most common issues related to ABI safety involve +heap allocated structures. +.SH RETURN +.sp +memcached_create() returns a pointer to the memcached_st that was created +(or initialized). On an allocation failure, it returns NULL. +.sp +memcached_clone() returns a pointer to the memcached_st that was created +(or initialized). On an allocation failure, it returns NULL. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Brian Aker, <\fI\%brian@tangent.org\fP> +.SH SEE ALSO +.sp +memcached(1) libmemcached(3) memcached_strerror(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcached_generate_hash_value.3 b/docs/man/memcached_generate_hash_value.3 new file mode 100644 index 00000000..21ce63b4 --- /dev/null +++ b/docs/man/memcached_generate_hash_value.3 @@ -0,0 +1,92 @@ +.TH "MEMCACHED_GENERATE_HASH_VALUE" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcached_generate_hash_value \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Hash a key value +.SH LIBRARY +.sp +C Client Library for memcached (libmemcached, \-lmemcached) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +uint32_t + memcached_generate_hash_value (const char *key, + size_t key_length, + memcached_hash_t hash_algorithm); + +uint32_t + memcached_generate_hash (memcached_st *ptr, + const char *key, + size_t key_length); +.ft P +.fi +.SH DESCRIPTION +.sp +memcached_generate_hash_value() allows you to hash a key using one of +the hash functions defined in the library. This method is provided for +the convenience of higher\-level language bindings and is not necessary +for normal memcache operations. +.sp +The allowed hash algorithm constants are listed in the manpage for +memcached_behavior_set(). +.sp +memcached_generate_hash() takes a memcached_st struture and produces +the hash value that would have been generated based on the defaults +of the memcached_st structure. +.sp +As of version 0.36 all hash methods have been placed into the library +libhashkit(3) which is linked with libmemcached(3). +.SH RETURN +.sp +A 32\-bit integer which is the result of hashing the given key. +For 64\-bit hash algorithms, only the least\-significant 32 bits are +returned. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Brian Aker, <\fI\%brian@tangent.org\fP> +.SH SEE ALSO +.sp +memcached(1) libmemcached(3) memcached_behavior_set(3) libhashkit(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcached_get.3 b/docs/man/memcached_get.3 new file mode 100644 index 00000000..580206b8 --- /dev/null +++ b/docs/man/memcached_get.3 @@ -0,0 +1,206 @@ +.TH "MEMCACHED_GET" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcached_get \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Get a value +.SH LIBRARY +.sp +C Client Library for memcached (libmemcached, \-lmemcached) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +memcached_result_st * + memcached_fetch_result (memcached_st *ptr, + memcached_result_st *result, + memcached_return_t *error); + +char * + memcached_get (memcached_st *ptr, + const char *key, size_t key_length, + size_t *value_length, + uint32_t *flags, + memcached_return_t *error); + +memcached_return_t + memcached_mget (memcached_st *ptr, + const char * const *keys, + const size_t *key_length, + size_t number_of_keys); +char * + memcached_get_by_key (memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char *key, size_t key_length, + size_t *value_length, + uint32_t *flags, + memcached_return_t *error); + +memcached_return_t + memcached_mget_by_key (memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char * const *keys, + const size_t *key_length, + size_t number_of_keys); + +char * + memcached_fetch (memcached_st *ptr, + char *key, size_t *key_length, + size_t *value_length, + uint32_t *flags, + memcached_return_t *error); + +memcached_return_t + memcached_fetch_execute (memcached_st *ptr, + memcached_execute_fn *callback, + void *context, + uint32_t number_of_callbacks); + + +memcached_return_t + memcached_mget_execute (memcached_st *ptr, + const char * const *keys, + const size_t *key_length, + size_t number_of_keys, + memcached_execute_fn *callback, + void *context, + uint32_t number_of_callbacks); + +memcached_return_t + memcached_mget_execute_by_key (memcached_st *ptr, + const char *master_key, + size_t master_key_length, + const char * const *keys, + const size_t *key_length, + size_t number_of_keys, + memcached_execute_fn *callback, + void *context, + uint32_t number_of_callbacks); +.ft P +.fi +.SH DESCRIPTION +.sp +memcached_get() is used to fetch an individual value from the server. You +must pass in a key and its length to fetch the object. You must supply +three pointer variables which will give you the state of the returned +object. A uint32_t pointer to contain whatever flags you stored with the value, +a size_t pointer which will be filled with size of of the object, and a +memcached_return_t pointer to hold any error. The object will be returned +upon success and NULL will be returned on failure. Any object returned by +memcached_get() must be released by the caller application. +.sp +memcached_mget() is used to select multiple keys at once. For multiple key +operations it is always faster to use this function. This function always +works asynchronously. memcached_fetch() is then used to retrieve any keys +found. No error is given on keys that are not found. You must call either +memcached_fetch() or memcached_fetch_result() after a successful call to +memcached_mget(). You should continue to call these functions until they +return NULL (aka no more values). If you need to quit in the middle of a +memcached_get() call, execute a memcached_quit(). After you do this, you can +issue new queries against the server. +.sp +memcached_fetch() is used to fetch an individual value from the server. +memcached_mget() must always be called before using this method. You +must pass in a key and its length to fetch the object. You must supply +three pointer variables which will give you the state of the returned +object. A uint32_t pointer to contain whatever flags you stored with the value, +a size_t pointer which will be filled with size of of the object, and a +memcached_return_t pointer to hold any error. The object will be returned +upon success and NULL will be returned on failure. MEMCACHD_END is returned +by the *error value when all objects that have been found are returned. +The final value upon MEMCACHED_END is null. Values returned by +memcached_fetch() musted be free\(aqed by the caller. memcached_fetch() will +be DEPRECATED in the near future, memcached_fetch_result() should be used +instead. +.sp +memcached_fetch_result() is used to return a memcached_result_st(3) structure +from a memcached server. The result object is forward compatible with changes +to the server. For more information please refer to the memcached_result_st(3) +help. This function will dynamically allocate a result structure for you +if you do not pass one to the function. +.sp +memcached_fetch_execute() is a callback function for result sets. Instead +of returning the results to you for processing, it passes each of the +result sets to the list of functions you provide. It passes to the function +a memcached_st that can be cloned for use in the called function (it can not +be used directly). It also passes a result set which does not need to be freed. +Finally it passes a "context". This is just a pointer to a memory reference +you supply the calling function. Currently only one value is being passed +to each function call. In the future there will be an option to allow this +to be an array. +.sp +memcached_mget_execute() and memcached_mget_execute_by_key() is +similar to memcached_mget(), but it may trigger the supplied callbacks +with result sets while sending out the queries. If you try to perform +a really large multiget with memcached_mget() you may encounter a +deadlock in the OS kernel (we fail to write data to the socket because +the input buffer is full). memcached_mget_execute() solves this +problem by processing some of the results before continuing sending +out requests. Please note that this function is only available in the +binary protocol. +.sp +memcached_get_by_key() and memcached_mget_by_key() behave in a similar nature +as memcached_get() and memcached_mget(). The difference is that they take +a master key that is used for determining which server an object was stored +if key partitioning was used for storage. +.sp +All of the above functions are not supported when the \fBMEMCACHED_BEHAVIOR_USE_UDP\fPhas been set. Executing any of these functions with this behavior on will result in +\fBMEMCACHED_NOT_SUPPORTED\fP being returned or, for those functions which do not return +a \fBmemcached_return_t\fP, the error function parameter will be set to +\fBMEMCACHED_NOT_SUPPORTED\fP. +.SH RETURN +.sp +All objects returned must be freed by the calling application. +memcached_get() and memcached_fetch() will return NULL on error. You must +look at the value of error to determine what the actual error was. +.sp +MEMCACHED_KEY_TOO_BIG is set to error whenever memcached_fetch() was used +and the key was set larger then MEMCACHED_MAX_KEY, which was the largest +key allowed for the original memcached ascii server. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Brian Aker, <\fI\%brian@tangent.org\fP> +.SH SEE ALSO +.sp +memcached(1) libmemcached(3) memcached_strerror(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcached_get_by_key.3 b/docs/man/memcached_get_by_key.3 new file mode 100644 index 00000000..91a4c6a2 --- /dev/null +++ b/docs/man/memcached_get_by_key.3 @@ -0,0 +1,206 @@ +.TH "MEMCACHED_GET_BY_KEY" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcached_get_by_key \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Get a value +.SH LIBRARY +.sp +C Client Library for memcached (libmemcached, \-lmemcached) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +memcached_result_st * + memcached_fetch_result (memcached_st *ptr, + memcached_result_st *result, + memcached_return_t *error); + +char * + memcached_get (memcached_st *ptr, + const char *key, size_t key_length, + size_t *value_length, + uint32_t *flags, + memcached_return_t *error); + +memcached_return_t + memcached_mget (memcached_st *ptr, + const char * const *keys, + const size_t *key_length, + size_t number_of_keys); +char * + memcached_get_by_key (memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char *key, size_t key_length, + size_t *value_length, + uint32_t *flags, + memcached_return_t *error); + +memcached_return_t + memcached_mget_by_key (memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char * const *keys, + const size_t *key_length, + size_t number_of_keys); + +char * + memcached_fetch (memcached_st *ptr, + char *key, size_t *key_length, + size_t *value_length, + uint32_t *flags, + memcached_return_t *error); + +memcached_return_t + memcached_fetch_execute (memcached_st *ptr, + memcached_execute_fn *callback, + void *context, + uint32_t number_of_callbacks); + + +memcached_return_t + memcached_mget_execute (memcached_st *ptr, + const char * const *keys, + const size_t *key_length, + size_t number_of_keys, + memcached_execute_fn *callback, + void *context, + uint32_t number_of_callbacks); + +memcached_return_t + memcached_mget_execute_by_key (memcached_st *ptr, + const char *master_key, + size_t master_key_length, + const char * const *keys, + const size_t *key_length, + size_t number_of_keys, + memcached_execute_fn *callback, + void *context, + uint32_t number_of_callbacks); +.ft P +.fi +.SH DESCRIPTION +.sp +memcached_get() is used to fetch an individual value from the server. You +must pass in a key and its length to fetch the object. You must supply +three pointer variables which will give you the state of the returned +object. A uint32_t pointer to contain whatever flags you stored with the value, +a size_t pointer which will be filled with size of of the object, and a +memcached_return_t pointer to hold any error. The object will be returned +upon success and NULL will be returned on failure. Any object returned by +memcached_get() must be released by the caller application. +.sp +memcached_mget() is used to select multiple keys at once. For multiple key +operations it is always faster to use this function. This function always +works asynchronously. memcached_fetch() is then used to retrieve any keys +found. No error is given on keys that are not found. You must call either +memcached_fetch() or memcached_fetch_result() after a successful call to +memcached_mget(). You should continue to call these functions until they +return NULL (aka no more values). If you need to quit in the middle of a +memcached_get() call, execute a memcached_quit(). After you do this, you can +issue new queries against the server. +.sp +memcached_fetch() is used to fetch an individual value from the server. +memcached_mget() must always be called before using this method. You +must pass in a key and its length to fetch the object. You must supply +three pointer variables which will give you the state of the returned +object. A uint32_t pointer to contain whatever flags you stored with the value, +a size_t pointer which will be filled with size of of the object, and a +memcached_return_t pointer to hold any error. The object will be returned +upon success and NULL will be returned on failure. MEMCACHD_END is returned +by the *error value when all objects that have been found are returned. +The final value upon MEMCACHED_END is null. Values returned by +memcached_fetch() musted be free\(aqed by the caller. memcached_fetch() will +be DEPRECATED in the near future, memcached_fetch_result() should be used +instead. +.sp +memcached_fetch_result() is used to return a memcached_result_st(3) structure +from a memcached server. The result object is forward compatible with changes +to the server. For more information please refer to the memcached_result_st(3) +help. This function will dynamically allocate a result structure for you +if you do not pass one to the function. +.sp +memcached_fetch_execute() is a callback function for result sets. Instead +of returning the results to you for processing, it passes each of the +result sets to the list of functions you provide. It passes to the function +a memcached_st that can be cloned for use in the called function (it can not +be used directly). It also passes a result set which does not need to be freed. +Finally it passes a "context". This is just a pointer to a memory reference +you supply the calling function. Currently only one value is being passed +to each function call. In the future there will be an option to allow this +to be an array. +.sp +memcached_mget_execute() and memcached_mget_execute_by_key() is +similar to memcached_mget(), but it may trigger the supplied callbacks +with result sets while sending out the queries. If you try to perform +a really large multiget with memcached_mget() you may encounter a +deadlock in the OS kernel (we fail to write data to the socket because +the input buffer is full). memcached_mget_execute() solves this +problem by processing some of the results before continuing sending +out requests. Please note that this function is only available in the +binary protocol. +.sp +memcached_get_by_key() and memcached_mget_by_key() behave in a similar nature +as memcached_get() and memcached_mget(). The difference is that they take +a master key that is used for determining which server an object was stored +if key partitioning was used for storage. +.sp +All of the above functions are not supported when the \fBMEMCACHED_BEHAVIOR_USE_UDP\fPhas been set. Executing any of these functions with this behavior on will result in +\fBMEMCACHED_NOT_SUPPORTED\fP being returned or, for those functions which do not return +a \fBmemcached_return_t\fP, the error function parameter will be set to +\fBMEMCACHED_NOT_SUPPORTED\fP. +.SH RETURN +.sp +All objects returned must be freed by the calling application. +memcached_get() and memcached_fetch() will return NULL on error. You must +look at the value of error to determine what the actual error was. +.sp +MEMCACHED_KEY_TOO_BIG is set to error whenever memcached_fetch() was used +and the key was set larger then MEMCACHED_MAX_KEY, which was the largest +key allowed for the original memcached ascii server. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Brian Aker, <\fI\%brian@tangent.org\fP> +.SH SEE ALSO +.sp +memcached(1) libmemcached(3) memcached_strerror(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcached_get_memory_allocators.3 b/docs/man/memcached_get_memory_allocators.3 new file mode 100644 index 00000000..13847e67 --- /dev/null +++ b/docs/man/memcached_get_memory_allocators.3 @@ -0,0 +1,129 @@ +.TH "MEMCACHED_GET_MEMORY_ALLOCATORS" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcached_get_memory_allocators \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Manage memory allocator functions +.SH LIBRARY +.sp +C Client Library for memcached (libmemcached, \-lmemcached) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +memcached_return_t + memcached_set_memory_allocators (memcached_st *ptr, + memcached_malloc_fn mem_malloc, + memcached_free_fn mem_free, + memcached_realloc_fn mem_realloc, + memcached_calloc_fn mem_calloc, + void *context); + +void + memcached_get_memory_allocators (memcached_st *ptr, + memcached_malloc_fn *mem_malloc, + memcached_free_fn *mem_free, + memcached_realloc_fn *mem_realloc, + memcached_calloc_fn *mem_calloc); + +void * + memcached_get_memory_allocators_context(const memcached_st *ptr); + +void * + (*memcached_malloc_fn) (memcached_st *ptr, const size_t size, + void *context); + +void * + (*memcached_realloc_fn) (memcached_st *ptr, void *mem, + const size_t size, + void *context); + +void + (*memcached_free_fn) (memcached_st *ptr, void *mem, + void *context); + +void * +(*memcached_calloc_fn) (memcached_st *ptr, + size_t nelem, + const size_t elsize, + void *context); +.ft P +.fi +.SH DESCRIPTION +.sp +libmemcached(3) allows you to specify your own memory allocators optimized +for your application. +.sp +memcached_set_memory_allocators() is used to set the memory allocators used +by the memcached instance specified by ptr. Please note that you cannot +override only one of the memory allocators, you have to specify a complete +new set if you want to override one of them. All of the memory allocation +functions should behave as specified in the C99 standard. Specify NULL as +all functions to reset them to the default values. +.sp +memcached_get_memory_allocators() is used to get the currently used memory +allocators by a mamcached handle. +.sp +memcached_get_memory_allocators_context() returns the void * that was +passed in during the call to memcached_set_memory_allocators(). +.sp +The first argument to the memory allocator functions is a pointer to a +memcached structure, the is passed as const and you will need to clone +it in order to make use of any operation which would modify it. +.SH NOTES +.sp +In version 0.38 all functions were modified to have a context void pointer +passed to them. This was so that customer allocators could have their +own space for memory. +.SH RETURN +.sp +memcached_set_memory_allocators() return MEMCACHED_SUCCESS upon success, +and MEMCACHED_FAILURE if you don\(aqt pass a complete set of function pointers. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Trond Norbye, <\fI\%trond.norbye@gmail.com\fP> +Brian Aker, <\fI\%brian@tangent\fP.orf +.SH SEE ALSO +.sp +memcached(1) libmemcached(3) memcached_get_user_data(3) memcached_set_user_data(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcached_get_sasl_callbacks.3 b/docs/man/memcached_get_sasl_callbacks.3 new file mode 100644 index 00000000..e11eae2d --- /dev/null +++ b/docs/man/memcached_get_sasl_callbacks.3 @@ -0,0 +1,94 @@ +.TH "MEMCACHED_GET_SASL_CALLBACKS" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcached_get_sasl_callbacks \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +SASL support +.SH LIBRARY +.sp +C Client Library for memcached (libmemcached, \-lmemcached) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +void memcached_set_sasl_callbacks(memcached_st *ptr, + const sasl_callback_t *callbacks) + +const sasl_callback_t *memcached_get_sasl_callbacks(memcached_st *ptr) + +memcached_return memcached_set_sasl_auth_data(memcached_st *ptr, + const char *username, + const char *password) +memcached_return memcached_destroy_sasl_auth_data(memcached_st *ptr) +.ft P +.fi +.SH DESCRIPTION +.sp +libmemcached(3) allows you to plug in your own callbacks function used by +libsasl to perform SASL authentication. +.sp +Please note that SASL requires the memcached binary protocol, and you have +to specify the callbacks before you connect to the server. +.sp +memcached_set_sasl_auth_data() is a helper function for you defining +the basic functionality for you, but it will store the username and password +in memory. If you choose to use this method you have to call +memcached_destroy_sasl_auth_data before calling memcached_free to avoid +a memory leak. You should NOT call memcached_destroy_sasl_auth_data if you +specify your own callback function with memcached_set_sasl_callbacks(). +.sp +You as a client user have to initialize libsasl by using sasl_client_init +before enabling it in libmemcached, and you have to shut down libsasl by +calling sasl_done() when you are done using SASL from libmemcached. +.SH RETURN +.sp +memcached_get_sasl_callbacks() returns the callbacks currently used +by this memcached handle. +memcached_get_sasl_set_auth_data() returns MEMCACHED_SUCCESS upon success. +.SH HOME +.sp +To find out more information please check: +\fI\%http://libmemcached.org/\fP +.SH AUTHOR +.sp +Trond Norbye, <\fI\%trond.norbye@gmail.com\fP> +.SH SEE ALSO +.sp +memcached(1) libmemcached(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcached_get_user_data.3 b/docs/man/memcached_get_user_data.3 new file mode 100644 index 00000000..08c741ee --- /dev/null +++ b/docs/man/memcached_get_user_data.3 @@ -0,0 +1,82 @@ +.TH "MEMCACHED_GET_USER_DATA" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcached_get_user_data \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Manage user specific data +.SH LIBRARY +.sp +C Client Library for memcached (libmemcached, \-lmemcached) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +void *memcached_get_user_data (memcached_st *ptr); + +void *memcached_set_user_data (memcached_st *ptr, void *data); +.ft P +.fi +.SH DESCRIPTION +.sp +libmemcached(3) allows you to store a pointer to a user specific data inside +the memcached_st structure. +.sp +memcached_set_user_data() is used to set the user specific data in the +memcached_st structure. +.sp +memcached_get_user_data() is used to retrieve the user specific data in +the memcached_st structure. +.SH RETURN +.sp +memcached_set_user_data() returns the previous value of the user specific +data. +.sp +memcached_get_user_data() returns the current value uf the user specific +data. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Trond Norbye, <\fI\%trond.norbye@gmail.com\fP> +.SH SEE ALSO +.sp +memcached(1) libmemcached(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcached_increment.3 b/docs/man/memcached_increment.3 new file mode 100644 index 00000000..070ff09a --- /dev/null +++ b/docs/man/memcached_increment.3 @@ -0,0 +1,168 @@ +.TH "MEMCACHED_INCREMENT" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcached_increment \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Manipulate counters +.SH LIBRARY +.sp +C Client Library for memcached (libmemcached, \-lmemcached) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +memcached_return_t + memcached_increment (memcached_st *ptr, + const char *key, size_t key_length, + unsigned int offset, + uint64_t *value); + +memcached_return_t + memcached_decrement (memcached_st *ptr, + const char *key, size_t key_length, + unsigned int offset, + uint64_t *value); + +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); + +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); + +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, + unsigned int offset, + uint64_t *value); + +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, + unsigned int offset, + uint64_t *value); + +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); + +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); +.ft P +.fi +.SH DESCRIPTION +.sp +memcached(1) servers have the ability to increment and decrement keys +(overflow and underflow are not detected). This gives you the ability to use +memcached to generate shared sequences of values. +.sp +memcached_increment() takes a key and keylength and increments the value by +the offset passed to it. The value is then returned via the unsigned int +value pointer you pass to it. +.sp +memcached_decrement() takes a key and keylength and decrements the value by +the offset passed to it. The value is then returned via the unsigned int +value pointer you pass to it. +.sp +memcached_increment_with_initial() takes a key and keylength and increments +the value by the offset passed to it. If the object specified by key does +not exist, one of two things may happen: If the expiration value is +MEMCACHED_EXPIRATION_NOT_ADD, the operation will fail. For all other +expiration values, the operation will succeed by seeding the value for that +key with a initial value to expire with the provided expiration time. The +flags will be set to zero.The value is then returned via the unsigned int +value pointer you pass to it. +.sp +memcached_decrement_with_initial() takes a key and keylength and decrements +the value by the offset passed to it. If the object specified by key does +not exist, one of two things may happen: If the expiration value is +MEMCACHED_EXPIRATION_NOT_ADD, the operation will fail. For all other +expiration values, the operation will succeed by seeding the value for that +key with a initial value to expire with the provided expiration time. The +flags will be set to zero.The value is then returned via the unsigned int +value pointer you pass to it. +.sp +memcached_increment_by_key(), memcached_decrement_by_key(), +memcached_increment_with_initial_by_key(), and +memcached_decrement_with_initial_by_key() are master key equivalents of the +above. +.SH RETURN +.sp +A value of type \fBmemcached_return_t\fP is returned. +On success that value will be \fBMEMCACHED_SUCCESS\fP. +Use memcached_strerror() to translate this value to a printable string. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Brian Aker, <\fI\%brian@tangent.org\fP> +.SH SEE ALSO +.sp +memcached(1) libmemcached(3) memcached_strerror(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcached_increment_with_initial.3 b/docs/man/memcached_increment_with_initial.3 new file mode 100644 index 00000000..e0992cce --- /dev/null +++ b/docs/man/memcached_increment_with_initial.3 @@ -0,0 +1,168 @@ +.TH "MEMCACHED_INCREMENT_WITH_INITIAL" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcached_increment_with_initial \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Manipulate counters +.SH LIBRARY +.sp +C Client Library for memcached (libmemcached, \-lmemcached) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +memcached_return_t + memcached_increment (memcached_st *ptr, + const char *key, size_t key_length, + unsigned int offset, + uint64_t *value); + +memcached_return_t + memcached_decrement (memcached_st *ptr, + const char *key, size_t key_length, + unsigned int offset, + uint64_t *value); + +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); + +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); + +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, + unsigned int offset, + uint64_t *value); + +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, + unsigned int offset, + uint64_t *value); + +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); + +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); +.ft P +.fi +.SH DESCRIPTION +.sp +memcached(1) servers have the ability to increment and decrement keys +(overflow and underflow are not detected). This gives you the ability to use +memcached to generate shared sequences of values. +.sp +memcached_increment() takes a key and keylength and increments the value by +the offset passed to it. The value is then returned via the unsigned int +value pointer you pass to it. +.sp +memcached_decrement() takes a key and keylength and decrements the value by +the offset passed to it. The value is then returned via the unsigned int +value pointer you pass to it. +.sp +memcached_increment_with_initial() takes a key and keylength and increments +the value by the offset passed to it. If the object specified by key does +not exist, one of two things may happen: If the expiration value is +MEMCACHED_EXPIRATION_NOT_ADD, the operation will fail. For all other +expiration values, the operation will succeed by seeding the value for that +key with a initial value to expire with the provided expiration time. The +flags will be set to zero.The value is then returned via the unsigned int +value pointer you pass to it. +.sp +memcached_decrement_with_initial() takes a key and keylength and decrements +the value by the offset passed to it. If the object specified by key does +not exist, one of two things may happen: If the expiration value is +MEMCACHED_EXPIRATION_NOT_ADD, the operation will fail. For all other +expiration values, the operation will succeed by seeding the value for that +key with a initial value to expire with the provided expiration time. The +flags will be set to zero.The value is then returned via the unsigned int +value pointer you pass to it. +.sp +memcached_increment_by_key(), memcached_decrement_by_key(), +memcached_increment_with_initial_by_key(), and +memcached_decrement_with_initial_by_key() are master key equivalents of the +above. +.SH RETURN +.sp +A value of type \fBmemcached_return_t\fP is returned. +On success that value will be \fBMEMCACHED_SUCCESS\fP. +Use memcached_strerror() to translate this value to a printable string. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Brian Aker, <\fI\%brian@tangent.org\fP> +.SH SEE ALSO +.sp +memcached(1) libmemcached(3) memcached_strerror(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcached_lib_version.3 b/docs/man/memcached_lib_version.3 new file mode 100644 index 00000000..53e09dd9 --- /dev/null +++ b/docs/man/memcached_lib_version.3 @@ -0,0 +1,85 @@ +.TH "MEMCACHED_LIB_VERSION" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcached_lib_version \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Get library version +.SH LIBRARY +.sp +C Client Library for memcached (libmemcached, \-lmemcached) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +const char * + memcached_lib_version (void) + + +memcached_return_t + memcached_version (memcached_st *ptr) +.ft P +.fi +.SH DESCRIPTION +.sp +memcached_lib_version() is used to return a simple version string representing +the libmemcached version (version of the client library, not server) +.sp +memcached_version() is used to set the major, minor, and micro versions of each +memcached server being used by the memcached_st connection structure. It returns the +memcached server return code. +.SH RETURN +.sp +A string with the version of libmemcached driver is returned from +memcached_lib_version() +.sp +A value of type \fBmemcached_return_t\fP is returned from memcached_version() +On success that value will be \fBMEMCACHED_SUCCESS\fP. If called with the +\fBMEMCACHED_BEHAVIOR_USE_UDP\fP behavior set, the value \fBMEMCACHED_NOT_SUPPORTED\fPwill be returned. Use memcached_strerror() to translate this value to +a printable string. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Brian Aker, <\fI\%brian@tangent.org\fP> +.SH SEE ALSO +.sp +memcached(1) libmemcached(3) memcached_strerror(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcached_memory_allocators.3 b/docs/man/memcached_memory_allocators.3 new file mode 100644 index 00000000..49b1d07b --- /dev/null +++ b/docs/man/memcached_memory_allocators.3 @@ -0,0 +1,129 @@ +.TH "MEMCACHED_MEMORY_ALLOCATORS" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcached_memory_allocators \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Manage memory allocator functions +.SH LIBRARY +.sp +C Client Library for memcached (libmemcached, \-lmemcached) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +memcached_return_t + memcached_set_memory_allocators (memcached_st *ptr, + memcached_malloc_fn mem_malloc, + memcached_free_fn mem_free, + memcached_realloc_fn mem_realloc, + memcached_calloc_fn mem_calloc, + void *context); + +void + memcached_get_memory_allocators (memcached_st *ptr, + memcached_malloc_fn *mem_malloc, + memcached_free_fn *mem_free, + memcached_realloc_fn *mem_realloc, + memcached_calloc_fn *mem_calloc); + +void * + memcached_get_memory_allocators_context(const memcached_st *ptr); + +void * + (*memcached_malloc_fn) (memcached_st *ptr, const size_t size, + void *context); + +void * + (*memcached_realloc_fn) (memcached_st *ptr, void *mem, + const size_t size, + void *context); + +void + (*memcached_free_fn) (memcached_st *ptr, void *mem, + void *context); + +void * +(*memcached_calloc_fn) (memcached_st *ptr, + size_t nelem, + const size_t elsize, + void *context); +.ft P +.fi +.SH DESCRIPTION +.sp +libmemcached(3) allows you to specify your own memory allocators optimized +for your application. +.sp +memcached_set_memory_allocators() is used to set the memory allocators used +by the memcached instance specified by ptr. Please note that you cannot +override only one of the memory allocators, you have to specify a complete +new set if you want to override one of them. All of the memory allocation +functions should behave as specified in the C99 standard. Specify NULL as +all functions to reset them to the default values. +.sp +memcached_get_memory_allocators() is used to get the currently used memory +allocators by a mamcached handle. +.sp +memcached_get_memory_allocators_context() returns the void * that was +passed in during the call to memcached_set_memory_allocators(). +.sp +The first argument to the memory allocator functions is a pointer to a +memcached structure, the is passed as const and you will need to clone +it in order to make use of any operation which would modify it. +.SH NOTES +.sp +In version 0.38 all functions were modified to have a context void pointer +passed to them. This was so that customer allocators could have their +own space for memory. +.SH RETURN +.sp +memcached_set_memory_allocators() return MEMCACHED_SUCCESS upon success, +and MEMCACHED_FAILURE if you don\(aqt pass a complete set of function pointers. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Trond Norbye, <\fI\%trond.norbye@gmail.com\fP> +Brian Aker, <\fI\%brian@tangent\fP.orf +.SH SEE ALSO +.sp +memcached(1) libmemcached(3) memcached_get_user_data(3) memcached_set_user_data(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcached_mget.3 b/docs/man/memcached_mget.3 new file mode 100644 index 00000000..6490fda5 --- /dev/null +++ b/docs/man/memcached_mget.3 @@ -0,0 +1,206 @@ +.TH "MEMCACHED_MGET" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcached_mget \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Get a value +.SH LIBRARY +.sp +C Client Library for memcached (libmemcached, \-lmemcached) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +memcached_result_st * + memcached_fetch_result (memcached_st *ptr, + memcached_result_st *result, + memcached_return_t *error); + +char * + memcached_get (memcached_st *ptr, + const char *key, size_t key_length, + size_t *value_length, + uint32_t *flags, + memcached_return_t *error); + +memcached_return_t + memcached_mget (memcached_st *ptr, + const char * const *keys, + const size_t *key_length, + size_t number_of_keys); +char * + memcached_get_by_key (memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char *key, size_t key_length, + size_t *value_length, + uint32_t *flags, + memcached_return_t *error); + +memcached_return_t + memcached_mget_by_key (memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char * const *keys, + const size_t *key_length, + size_t number_of_keys); + +char * + memcached_fetch (memcached_st *ptr, + char *key, size_t *key_length, + size_t *value_length, + uint32_t *flags, + memcached_return_t *error); + +memcached_return_t + memcached_fetch_execute (memcached_st *ptr, + memcached_execute_fn *callback, + void *context, + uint32_t number_of_callbacks); + + +memcached_return_t + memcached_mget_execute (memcached_st *ptr, + const char * const *keys, + const size_t *key_length, + size_t number_of_keys, + memcached_execute_fn *callback, + void *context, + uint32_t number_of_callbacks); + +memcached_return_t + memcached_mget_execute_by_key (memcached_st *ptr, + const char *master_key, + size_t master_key_length, + const char * const *keys, + const size_t *key_length, + size_t number_of_keys, + memcached_execute_fn *callback, + void *context, + uint32_t number_of_callbacks); +.ft P +.fi +.SH DESCRIPTION +.sp +memcached_get() is used to fetch an individual value from the server. You +must pass in a key and its length to fetch the object. You must supply +three pointer variables which will give you the state of the returned +object. A uint32_t pointer to contain whatever flags you stored with the value, +a size_t pointer which will be filled with size of of the object, and a +memcached_return_t pointer to hold any error. The object will be returned +upon success and NULL will be returned on failure. Any object returned by +memcached_get() must be released by the caller application. +.sp +memcached_mget() is used to select multiple keys at once. For multiple key +operations it is always faster to use this function. This function always +works asynchronously. memcached_fetch() is then used to retrieve any keys +found. No error is given on keys that are not found. You must call either +memcached_fetch() or memcached_fetch_result() after a successful call to +memcached_mget(). You should continue to call these functions until they +return NULL (aka no more values). If you need to quit in the middle of a +memcached_get() call, execute a memcached_quit(). After you do this, you can +issue new queries against the server. +.sp +memcached_fetch() is used to fetch an individual value from the server. +memcached_mget() must always be called before using this method. You +must pass in a key and its length to fetch the object. You must supply +three pointer variables which will give you the state of the returned +object. A uint32_t pointer to contain whatever flags you stored with the value, +a size_t pointer which will be filled with size of of the object, and a +memcached_return_t pointer to hold any error. The object will be returned +upon success and NULL will be returned on failure. MEMCACHD_END is returned +by the *error value when all objects that have been found are returned. +The final value upon MEMCACHED_END is null. Values returned by +memcached_fetch() musted be free\(aqed by the caller. memcached_fetch() will +be DEPRECATED in the near future, memcached_fetch_result() should be used +instead. +.sp +memcached_fetch_result() is used to return a memcached_result_st(3) structure +from a memcached server. The result object is forward compatible with changes +to the server. For more information please refer to the memcached_result_st(3) +help. This function will dynamically allocate a result structure for you +if you do not pass one to the function. +.sp +memcached_fetch_execute() is a callback function for result sets. Instead +of returning the results to you for processing, it passes each of the +result sets to the list of functions you provide. It passes to the function +a memcached_st that can be cloned for use in the called function (it can not +be used directly). It also passes a result set which does not need to be freed. +Finally it passes a "context". This is just a pointer to a memory reference +you supply the calling function. Currently only one value is being passed +to each function call. In the future there will be an option to allow this +to be an array. +.sp +memcached_mget_execute() and memcached_mget_execute_by_key() is +similar to memcached_mget(), but it may trigger the supplied callbacks +with result sets while sending out the queries. If you try to perform +a really large multiget with memcached_mget() you may encounter a +deadlock in the OS kernel (we fail to write data to the socket because +the input buffer is full). memcached_mget_execute() solves this +problem by processing some of the results before continuing sending +out requests. Please note that this function is only available in the +binary protocol. +.sp +memcached_get_by_key() and memcached_mget_by_key() behave in a similar nature +as memcached_get() and memcached_mget(). The difference is that they take +a master key that is used for determining which server an object was stored +if key partitioning was used for storage. +.sp +All of the above functions are not supported when the \fBMEMCACHED_BEHAVIOR_USE_UDP\fPhas been set. Executing any of these functions with this behavior on will result in +\fBMEMCACHED_NOT_SUPPORTED\fP being returned or, for those functions which do not return +a \fBmemcached_return_t\fP, the error function parameter will be set to +\fBMEMCACHED_NOT_SUPPORTED\fP. +.SH RETURN +.sp +All objects returned must be freed by the calling application. +memcached_get() and memcached_fetch() will return NULL on error. You must +look at the value of error to determine what the actual error was. +.sp +MEMCACHED_KEY_TOO_BIG is set to error whenever memcached_fetch() was used +and the key was set larger then MEMCACHED_MAX_KEY, which was the largest +key allowed for the original memcached ascii server. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Brian Aker, <\fI\%brian@tangent.org\fP> +.SH SEE ALSO +.sp +memcached(1) libmemcached(3) memcached_strerror(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcached_mget_by_key.3 b/docs/man/memcached_mget_by_key.3 new file mode 100644 index 00000000..cb5b4587 --- /dev/null +++ b/docs/man/memcached_mget_by_key.3 @@ -0,0 +1,206 @@ +.TH "MEMCACHED_MGET_BY_KEY" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcached_mget_by_key \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Get a value +.SH LIBRARY +.sp +C Client Library for memcached (libmemcached, \-lmemcached) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +memcached_result_st * + memcached_fetch_result (memcached_st *ptr, + memcached_result_st *result, + memcached_return_t *error); + +char * + memcached_get (memcached_st *ptr, + const char *key, size_t key_length, + size_t *value_length, + uint32_t *flags, + memcached_return_t *error); + +memcached_return_t + memcached_mget (memcached_st *ptr, + const char * const *keys, + const size_t *key_length, + size_t number_of_keys); +char * + memcached_get_by_key (memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char *key, size_t key_length, + size_t *value_length, + uint32_t *flags, + memcached_return_t *error); + +memcached_return_t + memcached_mget_by_key (memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char * const *keys, + const size_t *key_length, + size_t number_of_keys); + +char * + memcached_fetch (memcached_st *ptr, + char *key, size_t *key_length, + size_t *value_length, + uint32_t *flags, + memcached_return_t *error); + +memcached_return_t + memcached_fetch_execute (memcached_st *ptr, + memcached_execute_fn *callback, + void *context, + uint32_t number_of_callbacks); + + +memcached_return_t + memcached_mget_execute (memcached_st *ptr, + const char * const *keys, + const size_t *key_length, + size_t number_of_keys, + memcached_execute_fn *callback, + void *context, + uint32_t number_of_callbacks); + +memcached_return_t + memcached_mget_execute_by_key (memcached_st *ptr, + const char *master_key, + size_t master_key_length, + const char * const *keys, + const size_t *key_length, + size_t number_of_keys, + memcached_execute_fn *callback, + void *context, + uint32_t number_of_callbacks); +.ft P +.fi +.SH DESCRIPTION +.sp +memcached_get() is used to fetch an individual value from the server. You +must pass in a key and its length to fetch the object. You must supply +three pointer variables which will give you the state of the returned +object. A uint32_t pointer to contain whatever flags you stored with the value, +a size_t pointer which will be filled with size of of the object, and a +memcached_return_t pointer to hold any error. The object will be returned +upon success and NULL will be returned on failure. Any object returned by +memcached_get() must be released by the caller application. +.sp +memcached_mget() is used to select multiple keys at once. For multiple key +operations it is always faster to use this function. This function always +works asynchronously. memcached_fetch() is then used to retrieve any keys +found. No error is given on keys that are not found. You must call either +memcached_fetch() or memcached_fetch_result() after a successful call to +memcached_mget(). You should continue to call these functions until they +return NULL (aka no more values). If you need to quit in the middle of a +memcached_get() call, execute a memcached_quit(). After you do this, you can +issue new queries against the server. +.sp +memcached_fetch() is used to fetch an individual value from the server. +memcached_mget() must always be called before using this method. You +must pass in a key and its length to fetch the object. You must supply +three pointer variables which will give you the state of the returned +object. A uint32_t pointer to contain whatever flags you stored with the value, +a size_t pointer which will be filled with size of of the object, and a +memcached_return_t pointer to hold any error. The object will be returned +upon success and NULL will be returned on failure. MEMCACHD_END is returned +by the *error value when all objects that have been found are returned. +The final value upon MEMCACHED_END is null. Values returned by +memcached_fetch() musted be free\(aqed by the caller. memcached_fetch() will +be DEPRECATED in the near future, memcached_fetch_result() should be used +instead. +.sp +memcached_fetch_result() is used to return a memcached_result_st(3) structure +from a memcached server. The result object is forward compatible with changes +to the server. For more information please refer to the memcached_result_st(3) +help. This function will dynamically allocate a result structure for you +if you do not pass one to the function. +.sp +memcached_fetch_execute() is a callback function for result sets. Instead +of returning the results to you for processing, it passes each of the +result sets to the list of functions you provide. It passes to the function +a memcached_st that can be cloned for use in the called function (it can not +be used directly). It also passes a result set which does not need to be freed. +Finally it passes a "context". This is just a pointer to a memory reference +you supply the calling function. Currently only one value is being passed +to each function call. In the future there will be an option to allow this +to be an array. +.sp +memcached_mget_execute() and memcached_mget_execute_by_key() is +similar to memcached_mget(), but it may trigger the supplied callbacks +with result sets while sending out the queries. If you try to perform +a really large multiget with memcached_mget() you may encounter a +deadlock in the OS kernel (we fail to write data to the socket because +the input buffer is full). memcached_mget_execute() solves this +problem by processing some of the results before continuing sending +out requests. Please note that this function is only available in the +binary protocol. +.sp +memcached_get_by_key() and memcached_mget_by_key() behave in a similar nature +as memcached_get() and memcached_mget(). The difference is that they take +a master key that is used for determining which server an object was stored +if key partitioning was used for storage. +.sp +All of the above functions are not supported when the \fBMEMCACHED_BEHAVIOR_USE_UDP\fPhas been set. Executing any of these functions with this behavior on will result in +\fBMEMCACHED_NOT_SUPPORTED\fP being returned or, for those functions which do not return +a \fBmemcached_return_t\fP, the error function parameter will be set to +\fBMEMCACHED_NOT_SUPPORTED\fP. +.SH RETURN +.sp +All objects returned must be freed by the calling application. +memcached_get() and memcached_fetch() will return NULL on error. You must +look at the value of error to determine what the actual error was. +.sp +MEMCACHED_KEY_TOO_BIG is set to error whenever memcached_fetch() was used +and the key was set larger then MEMCACHED_MAX_KEY, which was the largest +key allowed for the original memcached ascii server. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Brian Aker, <\fI\%brian@tangent.org\fP> +.SH SEE ALSO +.sp +memcached(1) libmemcached(3) memcached_strerror(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcached_mget_execute.3 b/docs/man/memcached_mget_execute.3 new file mode 100644 index 00000000..79c667f3 --- /dev/null +++ b/docs/man/memcached_mget_execute.3 @@ -0,0 +1,206 @@ +.TH "MEMCACHED_MGET_EXECUTE" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcached_mget_execute \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Get a value +.SH LIBRARY +.sp +C Client Library for memcached (libmemcached, \-lmemcached) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +memcached_result_st * + memcached_fetch_result (memcached_st *ptr, + memcached_result_st *result, + memcached_return_t *error); + +char * + memcached_get (memcached_st *ptr, + const char *key, size_t key_length, + size_t *value_length, + uint32_t *flags, + memcached_return_t *error); + +memcached_return_t + memcached_mget (memcached_st *ptr, + const char * const *keys, + const size_t *key_length, + size_t number_of_keys); +char * + memcached_get_by_key (memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char *key, size_t key_length, + size_t *value_length, + uint32_t *flags, + memcached_return_t *error); + +memcached_return_t + memcached_mget_by_key (memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char * const *keys, + const size_t *key_length, + size_t number_of_keys); + +char * + memcached_fetch (memcached_st *ptr, + char *key, size_t *key_length, + size_t *value_length, + uint32_t *flags, + memcached_return_t *error); + +memcached_return_t + memcached_fetch_execute (memcached_st *ptr, + memcached_execute_fn *callback, + void *context, + uint32_t number_of_callbacks); + + +memcached_return_t + memcached_mget_execute (memcached_st *ptr, + const char * const *keys, + const size_t *key_length, + size_t number_of_keys, + memcached_execute_fn *callback, + void *context, + uint32_t number_of_callbacks); + +memcached_return_t + memcached_mget_execute_by_key (memcached_st *ptr, + const char *master_key, + size_t master_key_length, + const char * const *keys, + const size_t *key_length, + size_t number_of_keys, + memcached_execute_fn *callback, + void *context, + uint32_t number_of_callbacks); +.ft P +.fi +.SH DESCRIPTION +.sp +memcached_get() is used to fetch an individual value from the server. You +must pass in a key and its length to fetch the object. You must supply +three pointer variables which will give you the state of the returned +object. A uint32_t pointer to contain whatever flags you stored with the value, +a size_t pointer which will be filled with size of of the object, and a +memcached_return_t pointer to hold any error. The object will be returned +upon success and NULL will be returned on failure. Any object returned by +memcached_get() must be released by the caller application. +.sp +memcached_mget() is used to select multiple keys at once. For multiple key +operations it is always faster to use this function. This function always +works asynchronously. memcached_fetch() is then used to retrieve any keys +found. No error is given on keys that are not found. You must call either +memcached_fetch() or memcached_fetch_result() after a successful call to +memcached_mget(). You should continue to call these functions until they +return NULL (aka no more values). If you need to quit in the middle of a +memcached_get() call, execute a memcached_quit(). After you do this, you can +issue new queries against the server. +.sp +memcached_fetch() is used to fetch an individual value from the server. +memcached_mget() must always be called before using this method. You +must pass in a key and its length to fetch the object. You must supply +three pointer variables which will give you the state of the returned +object. A uint32_t pointer to contain whatever flags you stored with the value, +a size_t pointer which will be filled with size of of the object, and a +memcached_return_t pointer to hold any error. The object will be returned +upon success and NULL will be returned on failure. MEMCACHD_END is returned +by the *error value when all objects that have been found are returned. +The final value upon MEMCACHED_END is null. Values returned by +memcached_fetch() musted be free\(aqed by the caller. memcached_fetch() will +be DEPRECATED in the near future, memcached_fetch_result() should be used +instead. +.sp +memcached_fetch_result() is used to return a memcached_result_st(3) structure +from a memcached server. The result object is forward compatible with changes +to the server. For more information please refer to the memcached_result_st(3) +help. This function will dynamically allocate a result structure for you +if you do not pass one to the function. +.sp +memcached_fetch_execute() is a callback function for result sets. Instead +of returning the results to you for processing, it passes each of the +result sets to the list of functions you provide. It passes to the function +a memcached_st that can be cloned for use in the called function (it can not +be used directly). It also passes a result set which does not need to be freed. +Finally it passes a "context". This is just a pointer to a memory reference +you supply the calling function. Currently only one value is being passed +to each function call. In the future there will be an option to allow this +to be an array. +.sp +memcached_mget_execute() and memcached_mget_execute_by_key() is +similar to memcached_mget(), but it may trigger the supplied callbacks +with result sets while sending out the queries. If you try to perform +a really large multiget with memcached_mget() you may encounter a +deadlock in the OS kernel (we fail to write data to the socket because +the input buffer is full). memcached_mget_execute() solves this +problem by processing some of the results before continuing sending +out requests. Please note that this function is only available in the +binary protocol. +.sp +memcached_get_by_key() and memcached_mget_by_key() behave in a similar nature +as memcached_get() and memcached_mget(). The difference is that they take +a master key that is used for determining which server an object was stored +if key partitioning was used for storage. +.sp +All of the above functions are not supported when the \fBMEMCACHED_BEHAVIOR_USE_UDP\fPhas been set. Executing any of these functions with this behavior on will result in +\fBMEMCACHED_NOT_SUPPORTED\fP being returned or, for those functions which do not return +a \fBmemcached_return_t\fP, the error function parameter will be set to +\fBMEMCACHED_NOT_SUPPORTED\fP. +.SH RETURN +.sp +All objects returned must be freed by the calling application. +memcached_get() and memcached_fetch() will return NULL on error. You must +look at the value of error to determine what the actual error was. +.sp +MEMCACHED_KEY_TOO_BIG is set to error whenever memcached_fetch() was used +and the key was set larger then MEMCACHED_MAX_KEY, which was the largest +key allowed for the original memcached ascii server. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Brian Aker, <\fI\%brian@tangent.org\fP> +.SH SEE ALSO +.sp +memcached(1) libmemcached(3) memcached_strerror(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcached_mget_execute_by_key.3 b/docs/man/memcached_mget_execute_by_key.3 new file mode 100644 index 00000000..a7db7a11 --- /dev/null +++ b/docs/man/memcached_mget_execute_by_key.3 @@ -0,0 +1,206 @@ +.TH "MEMCACHED_MGET_EXECUTE_BY_KEY" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcached_mget_execute_by_key \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Get a value +.SH LIBRARY +.sp +C Client Library for memcached (libmemcached, \-lmemcached) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +memcached_result_st * + memcached_fetch_result (memcached_st *ptr, + memcached_result_st *result, + memcached_return_t *error); + +char * + memcached_get (memcached_st *ptr, + const char *key, size_t key_length, + size_t *value_length, + uint32_t *flags, + memcached_return_t *error); + +memcached_return_t + memcached_mget (memcached_st *ptr, + const char * const *keys, + const size_t *key_length, + size_t number_of_keys); +char * + memcached_get_by_key (memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char *key, size_t key_length, + size_t *value_length, + uint32_t *flags, + memcached_return_t *error); + +memcached_return_t + memcached_mget_by_key (memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char * const *keys, + const size_t *key_length, + size_t number_of_keys); + +char * + memcached_fetch (memcached_st *ptr, + char *key, size_t *key_length, + size_t *value_length, + uint32_t *flags, + memcached_return_t *error); + +memcached_return_t + memcached_fetch_execute (memcached_st *ptr, + memcached_execute_fn *callback, + void *context, + uint32_t number_of_callbacks); + + +memcached_return_t + memcached_mget_execute (memcached_st *ptr, + const char * const *keys, + const size_t *key_length, + size_t number_of_keys, + memcached_execute_fn *callback, + void *context, + uint32_t number_of_callbacks); + +memcached_return_t + memcached_mget_execute_by_key (memcached_st *ptr, + const char *master_key, + size_t master_key_length, + const char * const *keys, + const size_t *key_length, + size_t number_of_keys, + memcached_execute_fn *callback, + void *context, + uint32_t number_of_callbacks); +.ft P +.fi +.SH DESCRIPTION +.sp +memcached_get() is used to fetch an individual value from the server. You +must pass in a key and its length to fetch the object. You must supply +three pointer variables which will give you the state of the returned +object. A uint32_t pointer to contain whatever flags you stored with the value, +a size_t pointer which will be filled with size of of the object, and a +memcached_return_t pointer to hold any error. The object will be returned +upon success and NULL will be returned on failure. Any object returned by +memcached_get() must be released by the caller application. +.sp +memcached_mget() is used to select multiple keys at once. For multiple key +operations it is always faster to use this function. This function always +works asynchronously. memcached_fetch() is then used to retrieve any keys +found. No error is given on keys that are not found. You must call either +memcached_fetch() or memcached_fetch_result() after a successful call to +memcached_mget(). You should continue to call these functions until they +return NULL (aka no more values). If you need to quit in the middle of a +memcached_get() call, execute a memcached_quit(). After you do this, you can +issue new queries against the server. +.sp +memcached_fetch() is used to fetch an individual value from the server. +memcached_mget() must always be called before using this method. You +must pass in a key and its length to fetch the object. You must supply +three pointer variables which will give you the state of the returned +object. A uint32_t pointer to contain whatever flags you stored with the value, +a size_t pointer which will be filled with size of of the object, and a +memcached_return_t pointer to hold any error. The object will be returned +upon success and NULL will be returned on failure. MEMCACHD_END is returned +by the *error value when all objects that have been found are returned. +The final value upon MEMCACHED_END is null. Values returned by +memcached_fetch() musted be free\(aqed by the caller. memcached_fetch() will +be DEPRECATED in the near future, memcached_fetch_result() should be used +instead. +.sp +memcached_fetch_result() is used to return a memcached_result_st(3) structure +from a memcached server. The result object is forward compatible with changes +to the server. For more information please refer to the memcached_result_st(3) +help. This function will dynamically allocate a result structure for you +if you do not pass one to the function. +.sp +memcached_fetch_execute() is a callback function for result sets. Instead +of returning the results to you for processing, it passes each of the +result sets to the list of functions you provide. It passes to the function +a memcached_st that can be cloned for use in the called function (it can not +be used directly). It also passes a result set which does not need to be freed. +Finally it passes a "context". This is just a pointer to a memory reference +you supply the calling function. Currently only one value is being passed +to each function call. In the future there will be an option to allow this +to be an array. +.sp +memcached_mget_execute() and memcached_mget_execute_by_key() is +similar to memcached_mget(), but it may trigger the supplied callbacks +with result sets while sending out the queries. If you try to perform +a really large multiget with memcached_mget() you may encounter a +deadlock in the OS kernel (we fail to write data to the socket because +the input buffer is full). memcached_mget_execute() solves this +problem by processing some of the results before continuing sending +out requests. Please note that this function is only available in the +binary protocol. +.sp +memcached_get_by_key() and memcached_mget_by_key() behave in a similar nature +as memcached_get() and memcached_mget(). The difference is that they take +a master key that is used for determining which server an object was stored +if key partitioning was used for storage. +.sp +All of the above functions are not supported when the \fBMEMCACHED_BEHAVIOR_USE_UDP\fPhas been set. Executing any of these functions with this behavior on will result in +\fBMEMCACHED_NOT_SUPPORTED\fP being returned or, for those functions which do not return +a \fBmemcached_return_t\fP, the error function parameter will be set to +\fBMEMCACHED_NOT_SUPPORTED\fP. +.SH RETURN +.sp +All objects returned must be freed by the calling application. +memcached_get() and memcached_fetch() will return NULL on error. You must +look at the value of error to determine what the actual error was. +.sp +MEMCACHED_KEY_TOO_BIG is set to error whenever memcached_fetch() was used +and the key was set larger then MEMCACHED_MAX_KEY, which was the largest +key allowed for the original memcached ascii server. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Brian Aker, <\fI\%brian@tangent.org\fP> +.SH SEE ALSO +.sp +memcached(1) libmemcached(3) memcached_strerror(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcached_pool.3 b/docs/man/memcached_pool.3 new file mode 100644 index 00000000..06a951fe --- /dev/null +++ b/docs/man/memcached_pool.3 @@ -0,0 +1,130 @@ +.TH "MEMCACHED_POOL" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcached_pool \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Manage pools +.SH LIBRARY +.sp +C Client Library for memcached (libmemcachedutil, \-lmemcachedutil) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +memcached_pool_st * + memcached_pool_create(memcached_st* mmc, int initial, int max); + +memcached_st * + memcached_pool_destroy(memcached_pool_st* pool); + +memcached_st * + memcached_pool_pop (memcached_pool_st* pool, bool block, memcached_return_t *rc); + +memcached_return_t + memcached_pool_push(memcached_pool_st* pool, memcached_st *mmc); + +memcached_st *memcached_create (memcached_st *ptr); + +memcached_return_t + memcached_pool_behavior_set(memcached_pool_st *pool, + memcached_behavior_t flag, + uint64_t data) + +memcached_return_t + memcached_pool_behavior_get(memcached_pool_st *pool, + memcached_behavior_t flag, + uint64_t *value) +.ft P +.fi +.SH DESCRIPTION +.sp +memcached_pool_create() is used to create a connection pool of objects you +may use to remove the overhead of using memcached_clone for short +lived \fBmemcached_st\fP objects. The mmc argument should be an +initialised \fBmemcached_st\fP structure, and a successfull invocation of +memcached_pool_create takes full ownership of the variable (until it +is released by memcached_pool_destroy). The \fBinitial\fP argument +specifies the initial size of the connection pool, and the \fBmax\fPargument specifies the maximum size the connection pool should grow +to. Please note that the library will allocate a fixed size buffer +scaled to the max size of the connection pool, so you should not pass +MAXINT or some other large number here. +.sp +memcached_pool_destroy() is used to destroy the connection pool +created with memcached_pool_create() and release all allocated +resources. It will return the pointer to the \fBmemcached_st\fP structure +passed as an argument to memcached_pool_create(), and returns the +ownership of the pointer to the caller. +.sp +memcached_pool_pop() is used to grab a connection structure from the +connection pool. The block argument specifies if the function should +block and wait for a connection structure to be available if we try +to exceed the maximum size. +.sp +memcached_pool_push() is used to return a connection structure back to the pool. +.sp +memcached_pool_behavior_set() and memcached_pool_behagior_get() is +used to get/set behavior flags on all connections in the pool. +.SH RETURN +.sp +memcached_pool_create() returns a pointer to the newly created +memcached_pool_st structure. On an allocation failure, it returns +NULL. +.sp +memcached_pool_destroy() returns the pointer (and ownership) to the +memcached_st structure used to create the pool. If connections are in +use it returns NULL. +.sp +memcached_pool_pop() returns a pointer to a memcached_st structure +from the pool (or NULL if an allocation cannot be satisfied). +.sp +memcached_pool_push() returns MEMCACHED_SUCCESS upon success. +.sp +memcached_pool_behavior_get() and memcached_pool_behavior_get() +returns MEMCACHED_SUCCESS upon success. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Trond Norbye, <\fI\%trond.norbye@gmail.com\fP> +.SH SEE ALSO +.sp +memcached(1) libmemcached(3) memcached_create(3) memcached_free(3) libmemcachedutil(3) memcached_behavior_get(3) memcached_behavior_set(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcached_pool_behavior_get.3 b/docs/man/memcached_pool_behavior_get.3 new file mode 100644 index 00000000..6c55f90b --- /dev/null +++ b/docs/man/memcached_pool_behavior_get.3 @@ -0,0 +1,130 @@ +.TH "MEMCACHED_POOL_BEHAVIOR_GET" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcached_pool_behavior_get \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Manage pools +.SH LIBRARY +.sp +C Client Library for memcached (libmemcachedutil, \-lmemcachedutil) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +memcached_pool_st * + memcached_pool_create(memcached_st* mmc, int initial, int max); + +memcached_st * + memcached_pool_destroy(memcached_pool_st* pool); + +memcached_st * + memcached_pool_pop (memcached_pool_st* pool, bool block, memcached_return_t *rc); + +memcached_return_t + memcached_pool_push(memcached_pool_st* pool, memcached_st *mmc); + +memcached_st *memcached_create (memcached_st *ptr); + +memcached_return_t + memcached_pool_behavior_set(memcached_pool_st *pool, + memcached_behavior_t flag, + uint64_t data) + +memcached_return_t + memcached_pool_behavior_get(memcached_pool_st *pool, + memcached_behavior_t flag, + uint64_t *value) +.ft P +.fi +.SH DESCRIPTION +.sp +memcached_pool_create() is used to create a connection pool of objects you +may use to remove the overhead of using memcached_clone for short +lived \fBmemcached_st\fP objects. The mmc argument should be an +initialised \fBmemcached_st\fP structure, and a successfull invocation of +memcached_pool_create takes full ownership of the variable (until it +is released by memcached_pool_destroy). The \fBinitial\fP argument +specifies the initial size of the connection pool, and the \fBmax\fPargument specifies the maximum size the connection pool should grow +to. Please note that the library will allocate a fixed size buffer +scaled to the max size of the connection pool, so you should not pass +MAXINT or some other large number here. +.sp +memcached_pool_destroy() is used to destroy the connection pool +created with memcached_pool_create() and release all allocated +resources. It will return the pointer to the \fBmemcached_st\fP structure +passed as an argument to memcached_pool_create(), and returns the +ownership of the pointer to the caller. +.sp +memcached_pool_pop() is used to grab a connection structure from the +connection pool. The block argument specifies if the function should +block and wait for a connection structure to be available if we try +to exceed the maximum size. +.sp +memcached_pool_push() is used to return a connection structure back to the pool. +.sp +memcached_pool_behavior_set() and memcached_pool_behagior_get() is +used to get/set behavior flags on all connections in the pool. +.SH RETURN +.sp +memcached_pool_create() returns a pointer to the newly created +memcached_pool_st structure. On an allocation failure, it returns +NULL. +.sp +memcached_pool_destroy() returns the pointer (and ownership) to the +memcached_st structure used to create the pool. If connections are in +use it returns NULL. +.sp +memcached_pool_pop() returns a pointer to a memcached_st structure +from the pool (or NULL if an allocation cannot be satisfied). +.sp +memcached_pool_push() returns MEMCACHED_SUCCESS upon success. +.sp +memcached_pool_behavior_get() and memcached_pool_behavior_get() +returns MEMCACHED_SUCCESS upon success. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Trond Norbye, <\fI\%trond.norbye@gmail.com\fP> +.SH SEE ALSO +.sp +memcached(1) libmemcached(3) memcached_create(3) memcached_free(3) libmemcachedutil(3) memcached_behavior_get(3) memcached_behavior_set(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcached_pool_behavior_set.3 b/docs/man/memcached_pool_behavior_set.3 new file mode 100644 index 00000000..0a42d26a --- /dev/null +++ b/docs/man/memcached_pool_behavior_set.3 @@ -0,0 +1,130 @@ +.TH "MEMCACHED_POOL_BEHAVIOR_SET" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcached_pool_behavior_set \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Manage pools +.SH LIBRARY +.sp +C Client Library for memcached (libmemcachedutil, \-lmemcachedutil) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +memcached_pool_st * + memcached_pool_create(memcached_st* mmc, int initial, int max); + +memcached_st * + memcached_pool_destroy(memcached_pool_st* pool); + +memcached_st * + memcached_pool_pop (memcached_pool_st* pool, bool block, memcached_return_t *rc); + +memcached_return_t + memcached_pool_push(memcached_pool_st* pool, memcached_st *mmc); + +memcached_st *memcached_create (memcached_st *ptr); + +memcached_return_t + memcached_pool_behavior_set(memcached_pool_st *pool, + memcached_behavior_t flag, + uint64_t data) + +memcached_return_t + memcached_pool_behavior_get(memcached_pool_st *pool, + memcached_behavior_t flag, + uint64_t *value) +.ft P +.fi +.SH DESCRIPTION +.sp +memcached_pool_create() is used to create a connection pool of objects you +may use to remove the overhead of using memcached_clone for short +lived \fBmemcached_st\fP objects. The mmc argument should be an +initialised \fBmemcached_st\fP structure, and a successfull invocation of +memcached_pool_create takes full ownership of the variable (until it +is released by memcached_pool_destroy). The \fBinitial\fP argument +specifies the initial size of the connection pool, and the \fBmax\fPargument specifies the maximum size the connection pool should grow +to. Please note that the library will allocate a fixed size buffer +scaled to the max size of the connection pool, so you should not pass +MAXINT or some other large number here. +.sp +memcached_pool_destroy() is used to destroy the connection pool +created with memcached_pool_create() and release all allocated +resources. It will return the pointer to the \fBmemcached_st\fP structure +passed as an argument to memcached_pool_create(), and returns the +ownership of the pointer to the caller. +.sp +memcached_pool_pop() is used to grab a connection structure from the +connection pool. The block argument specifies if the function should +block and wait for a connection structure to be available if we try +to exceed the maximum size. +.sp +memcached_pool_push() is used to return a connection structure back to the pool. +.sp +memcached_pool_behavior_set() and memcached_pool_behagior_get() is +used to get/set behavior flags on all connections in the pool. +.SH RETURN +.sp +memcached_pool_create() returns a pointer to the newly created +memcached_pool_st structure. On an allocation failure, it returns +NULL. +.sp +memcached_pool_destroy() returns the pointer (and ownership) to the +memcached_st structure used to create the pool. If connections are in +use it returns NULL. +.sp +memcached_pool_pop() returns a pointer to a memcached_st structure +from the pool (or NULL if an allocation cannot be satisfied). +.sp +memcached_pool_push() returns MEMCACHED_SUCCESS upon success. +.sp +memcached_pool_behavior_get() and memcached_pool_behavior_get() +returns MEMCACHED_SUCCESS upon success. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Trond Norbye, <\fI\%trond.norbye@gmail.com\fP> +.SH SEE ALSO +.sp +memcached(1) libmemcached(3) memcached_create(3) memcached_free(3) libmemcachedutil(3) memcached_behavior_get(3) memcached_behavior_set(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcached_pool_create.3 b/docs/man/memcached_pool_create.3 new file mode 100644 index 00000000..230da8be --- /dev/null +++ b/docs/man/memcached_pool_create.3 @@ -0,0 +1,130 @@ +.TH "MEMCACHED_POOL_CREATE" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcached_pool_create \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Manage pools +.SH LIBRARY +.sp +C Client Library for memcached (libmemcachedutil, \-lmemcachedutil) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +memcached_pool_st * + memcached_pool_create(memcached_st* mmc, int initial, int max); + +memcached_st * + memcached_pool_destroy(memcached_pool_st* pool); + +memcached_st * + memcached_pool_pop (memcached_pool_st* pool, bool block, memcached_return_t *rc); + +memcached_return_t + memcached_pool_push(memcached_pool_st* pool, memcached_st *mmc); + +memcached_st *memcached_create (memcached_st *ptr); + +memcached_return_t + memcached_pool_behavior_set(memcached_pool_st *pool, + memcached_behavior_t flag, + uint64_t data) + +memcached_return_t + memcached_pool_behavior_get(memcached_pool_st *pool, + memcached_behavior_t flag, + uint64_t *value) +.ft P +.fi +.SH DESCRIPTION +.sp +memcached_pool_create() is used to create a connection pool of objects you +may use to remove the overhead of using memcached_clone for short +lived \fBmemcached_st\fP objects. The mmc argument should be an +initialised \fBmemcached_st\fP structure, and a successfull invocation of +memcached_pool_create takes full ownership of the variable (until it +is released by memcached_pool_destroy). The \fBinitial\fP argument +specifies the initial size of the connection pool, and the \fBmax\fPargument specifies the maximum size the connection pool should grow +to. Please note that the library will allocate a fixed size buffer +scaled to the max size of the connection pool, so you should not pass +MAXINT or some other large number here. +.sp +memcached_pool_destroy() is used to destroy the connection pool +created with memcached_pool_create() and release all allocated +resources. It will return the pointer to the \fBmemcached_st\fP structure +passed as an argument to memcached_pool_create(), and returns the +ownership of the pointer to the caller. +.sp +memcached_pool_pop() is used to grab a connection structure from the +connection pool. The block argument specifies if the function should +block and wait for a connection structure to be available if we try +to exceed the maximum size. +.sp +memcached_pool_push() is used to return a connection structure back to the pool. +.sp +memcached_pool_behavior_set() and memcached_pool_behagior_get() is +used to get/set behavior flags on all connections in the pool. +.SH RETURN +.sp +memcached_pool_create() returns a pointer to the newly created +memcached_pool_st structure. On an allocation failure, it returns +NULL. +.sp +memcached_pool_destroy() returns the pointer (and ownership) to the +memcached_st structure used to create the pool. If connections are in +use it returns NULL. +.sp +memcached_pool_pop() returns a pointer to a memcached_st structure +from the pool (or NULL if an allocation cannot be satisfied). +.sp +memcached_pool_push() returns MEMCACHED_SUCCESS upon success. +.sp +memcached_pool_behavior_get() and memcached_pool_behavior_get() +returns MEMCACHED_SUCCESS upon success. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Trond Norbye, <\fI\%trond.norbye@gmail.com\fP> +.SH SEE ALSO +.sp +memcached(1) libmemcached(3) memcached_create(3) memcached_free(3) libmemcachedutil(3) memcached_behavior_get(3) memcached_behavior_set(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcached_pool_destroy.3 b/docs/man/memcached_pool_destroy.3 new file mode 100644 index 00000000..7c55cd22 --- /dev/null +++ b/docs/man/memcached_pool_destroy.3 @@ -0,0 +1,130 @@ +.TH "MEMCACHED_POOL_DESTROY" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcached_pool_destroy \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Manage pools +.SH LIBRARY +.sp +C Client Library for memcached (libmemcachedutil, \-lmemcachedutil) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +memcached_pool_st * + memcached_pool_create(memcached_st* mmc, int initial, int max); + +memcached_st * + memcached_pool_destroy(memcached_pool_st* pool); + +memcached_st * + memcached_pool_pop (memcached_pool_st* pool, bool block, memcached_return_t *rc); + +memcached_return_t + memcached_pool_push(memcached_pool_st* pool, memcached_st *mmc); + +memcached_st *memcached_create (memcached_st *ptr); + +memcached_return_t + memcached_pool_behavior_set(memcached_pool_st *pool, + memcached_behavior_t flag, + uint64_t data) + +memcached_return_t + memcached_pool_behavior_get(memcached_pool_st *pool, + memcached_behavior_t flag, + uint64_t *value) +.ft P +.fi +.SH DESCRIPTION +.sp +memcached_pool_create() is used to create a connection pool of objects you +may use to remove the overhead of using memcached_clone for short +lived \fBmemcached_st\fP objects. The mmc argument should be an +initialised \fBmemcached_st\fP structure, and a successfull invocation of +memcached_pool_create takes full ownership of the variable (until it +is released by memcached_pool_destroy). The \fBinitial\fP argument +specifies the initial size of the connection pool, and the \fBmax\fPargument specifies the maximum size the connection pool should grow +to. Please note that the library will allocate a fixed size buffer +scaled to the max size of the connection pool, so you should not pass +MAXINT or some other large number here. +.sp +memcached_pool_destroy() is used to destroy the connection pool +created with memcached_pool_create() and release all allocated +resources. It will return the pointer to the \fBmemcached_st\fP structure +passed as an argument to memcached_pool_create(), and returns the +ownership of the pointer to the caller. +.sp +memcached_pool_pop() is used to grab a connection structure from the +connection pool. The block argument specifies if the function should +block and wait for a connection structure to be available if we try +to exceed the maximum size. +.sp +memcached_pool_push() is used to return a connection structure back to the pool. +.sp +memcached_pool_behavior_set() and memcached_pool_behagior_get() is +used to get/set behavior flags on all connections in the pool. +.SH RETURN +.sp +memcached_pool_create() returns a pointer to the newly created +memcached_pool_st structure. On an allocation failure, it returns +NULL. +.sp +memcached_pool_destroy() returns the pointer (and ownership) to the +memcached_st structure used to create the pool. If connections are in +use it returns NULL. +.sp +memcached_pool_pop() returns a pointer to a memcached_st structure +from the pool (or NULL if an allocation cannot be satisfied). +.sp +memcached_pool_push() returns MEMCACHED_SUCCESS upon success. +.sp +memcached_pool_behavior_get() and memcached_pool_behavior_get() +returns MEMCACHED_SUCCESS upon success. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Trond Norbye, <\fI\%trond.norbye@gmail.com\fP> +.SH SEE ALSO +.sp +memcached(1) libmemcached(3) memcached_create(3) memcached_free(3) libmemcachedutil(3) memcached_behavior_get(3) memcached_behavior_set(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcached_pool_pop.3 b/docs/man/memcached_pool_pop.3 new file mode 100644 index 00000000..73570162 --- /dev/null +++ b/docs/man/memcached_pool_pop.3 @@ -0,0 +1,130 @@ +.TH "MEMCACHED_POOL_POP" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcached_pool_pop \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Manage pools +.SH LIBRARY +.sp +C Client Library for memcached (libmemcachedutil, \-lmemcachedutil) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +memcached_pool_st * + memcached_pool_create(memcached_st* mmc, int initial, int max); + +memcached_st * + memcached_pool_destroy(memcached_pool_st* pool); + +memcached_st * + memcached_pool_pop (memcached_pool_st* pool, bool block, memcached_return_t *rc); + +memcached_return_t + memcached_pool_push(memcached_pool_st* pool, memcached_st *mmc); + +memcached_st *memcached_create (memcached_st *ptr); + +memcached_return_t + memcached_pool_behavior_set(memcached_pool_st *pool, + memcached_behavior_t flag, + uint64_t data) + +memcached_return_t + memcached_pool_behavior_get(memcached_pool_st *pool, + memcached_behavior_t flag, + uint64_t *value) +.ft P +.fi +.SH DESCRIPTION +.sp +memcached_pool_create() is used to create a connection pool of objects you +may use to remove the overhead of using memcached_clone for short +lived \fBmemcached_st\fP objects. The mmc argument should be an +initialised \fBmemcached_st\fP structure, and a successfull invocation of +memcached_pool_create takes full ownership of the variable (until it +is released by memcached_pool_destroy). The \fBinitial\fP argument +specifies the initial size of the connection pool, and the \fBmax\fPargument specifies the maximum size the connection pool should grow +to. Please note that the library will allocate a fixed size buffer +scaled to the max size of the connection pool, so you should not pass +MAXINT or some other large number here. +.sp +memcached_pool_destroy() is used to destroy the connection pool +created with memcached_pool_create() and release all allocated +resources. It will return the pointer to the \fBmemcached_st\fP structure +passed as an argument to memcached_pool_create(), and returns the +ownership of the pointer to the caller. +.sp +memcached_pool_pop() is used to grab a connection structure from the +connection pool. The block argument specifies if the function should +block and wait for a connection structure to be available if we try +to exceed the maximum size. +.sp +memcached_pool_push() is used to return a connection structure back to the pool. +.sp +memcached_pool_behavior_set() and memcached_pool_behagior_get() is +used to get/set behavior flags on all connections in the pool. +.SH RETURN +.sp +memcached_pool_create() returns a pointer to the newly created +memcached_pool_st structure. On an allocation failure, it returns +NULL. +.sp +memcached_pool_destroy() returns the pointer (and ownership) to the +memcached_st structure used to create the pool. If connections are in +use it returns NULL. +.sp +memcached_pool_pop() returns a pointer to a memcached_st structure +from the pool (or NULL if an allocation cannot be satisfied). +.sp +memcached_pool_push() returns MEMCACHED_SUCCESS upon success. +.sp +memcached_pool_behavior_get() and memcached_pool_behavior_get() +returns MEMCACHED_SUCCESS upon success. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Trond Norbye, <\fI\%trond.norbye@gmail.com\fP> +.SH SEE ALSO +.sp +memcached(1) libmemcached(3) memcached_create(3) memcached_free(3) libmemcachedutil(3) memcached_behavior_get(3) memcached_behavior_set(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcached_pool_push.3 b/docs/man/memcached_pool_push.3 new file mode 100644 index 00000000..12946a8c --- /dev/null +++ b/docs/man/memcached_pool_push.3 @@ -0,0 +1,130 @@ +.TH "MEMCACHED_POOL_PUSH" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcached_pool_push \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Manage pools +.SH LIBRARY +.sp +C Client Library for memcached (libmemcachedutil, \-lmemcachedutil) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +memcached_pool_st * + memcached_pool_create(memcached_st* mmc, int initial, int max); + +memcached_st * + memcached_pool_destroy(memcached_pool_st* pool); + +memcached_st * + memcached_pool_pop (memcached_pool_st* pool, bool block, memcached_return_t *rc); + +memcached_return_t + memcached_pool_push(memcached_pool_st* pool, memcached_st *mmc); + +memcached_st *memcached_create (memcached_st *ptr); + +memcached_return_t + memcached_pool_behavior_set(memcached_pool_st *pool, + memcached_behavior_t flag, + uint64_t data) + +memcached_return_t + memcached_pool_behavior_get(memcached_pool_st *pool, + memcached_behavior_t flag, + uint64_t *value) +.ft P +.fi +.SH DESCRIPTION +.sp +memcached_pool_create() is used to create a connection pool of objects you +may use to remove the overhead of using memcached_clone for short +lived \fBmemcached_st\fP objects. The mmc argument should be an +initialised \fBmemcached_st\fP structure, and a successfull invocation of +memcached_pool_create takes full ownership of the variable (until it +is released by memcached_pool_destroy). The \fBinitial\fP argument +specifies the initial size of the connection pool, and the \fBmax\fPargument specifies the maximum size the connection pool should grow +to. Please note that the library will allocate a fixed size buffer +scaled to the max size of the connection pool, so you should not pass +MAXINT or some other large number here. +.sp +memcached_pool_destroy() is used to destroy the connection pool +created with memcached_pool_create() and release all allocated +resources. It will return the pointer to the \fBmemcached_st\fP structure +passed as an argument to memcached_pool_create(), and returns the +ownership of the pointer to the caller. +.sp +memcached_pool_pop() is used to grab a connection structure from the +connection pool. The block argument specifies if the function should +block and wait for a connection structure to be available if we try +to exceed the maximum size. +.sp +memcached_pool_push() is used to return a connection structure back to the pool. +.sp +memcached_pool_behavior_set() and memcached_pool_behagior_get() is +used to get/set behavior flags on all connections in the pool. +.SH RETURN +.sp +memcached_pool_create() returns a pointer to the newly created +memcached_pool_st structure. On an allocation failure, it returns +NULL. +.sp +memcached_pool_destroy() returns the pointer (and ownership) to the +memcached_st structure used to create the pool. If connections are in +use it returns NULL. +.sp +memcached_pool_pop() returns a pointer to a memcached_st structure +from the pool (or NULL if an allocation cannot be satisfied). +.sp +memcached_pool_push() returns MEMCACHED_SUCCESS upon success. +.sp +memcached_pool_behavior_get() and memcached_pool_behavior_get() +returns MEMCACHED_SUCCESS upon success. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Trond Norbye, <\fI\%trond.norbye@gmail.com\fP> +.SH SEE ALSO +.sp +memcached(1) libmemcached(3) memcached_create(3) memcached_free(3) libmemcachedutil(3) memcached_behavior_get(3) memcached_behavior_set(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcached_prepend.3 b/docs/man/memcached_prepend.3 new file mode 100644 index 00000000..b8863390 --- /dev/null +++ b/docs/man/memcached_prepend.3 @@ -0,0 +1,216 @@ +.TH "MEMCACHED_PREPEND" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcached_prepend \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Store value on server +.SH LIBRARY +.sp +C Client Library for memcached (libmemcached, \-lmemcached) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +memcached_return_t + memcached_set (memcached_st *ptr, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + +memcached_return_t + memcached_add (memcached_st *ptr, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + +memcached_return_t + memcached_replace (memcached_st *ptr, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + +memcached_return_t + memcached_prepend(memcached_st *ptr, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags) + +memcached_return_t + memcached_append(memcached_st *ptr, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags) +memcached_return_t + memcached_cas(memcached_st *ptr, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags, + uint64_t cas); + +memcached_return_t + memcached_set_by_key(memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + +memcached_return_t + memcached_add_by_key(memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + +memcached_return_t + memcached_replace_by_key(memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + +memcached_return_t + memcached_prepend_by_key(memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + +memcached_return_t + memcached_append_by_key(memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + +memcached_return_t + memcached_cas_by_key(memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags, + uint64_t cas); +.ft P +.fi +.SH DESCRIPTION +.sp +memcached_set(), memcached_add(), and memcached_replace() are all used to +store information on the server. All methods take a key, and its length to +store the object. Keys are currently limited to 250 characters by the +memcached(1) server. You must also supply a value and a length. Optionally you +may support an expiration time for the object and a 16 byte value (it is +meant to be used as a bitmap). +.sp +memcached_set() will write an object to the server. If an object already +exists it will overwrite what is in the server. If the object does not exist +it will be written. If you are using the non\-blocking mode this function +will always return true unless a network error occurs. +.sp +memcached_replace() replaces an object on the server. If the object is not +found on the server an error occurs. +.sp +memcached_add() adds an object to the server. If the object is found on the +server an error occurs, otherwise the value is stored. +.sp +memcached_prepend() places a segment of data before the last piece of data +stored. Currently expiration and key are not used in the server. +.sp +memcached_append() places a segment of data at the end of the last piece of +data stored. Currently expiration and key are not used in the server. +.sp +memcached_cas() overwrites data in the server as long as the "cas" value is +still the same in the server. You can get the cas value of a result by +calling memcached_result_cas() on a memcached_result_st(3) structure. At the point +that this note was written cas is still buggy in memached. Turning on support +for it in libmemcached(3) is optional. Please see memcached_set() for +information on how to do this. +.sp +memcached_set_by_key(), memcached_add_by_key(), memcached_replace_by_key(), +memcached_prepend_by_key(), memcached_append_by_key_by_key(), +memcached_cas_by_key() methods all behave in a similar method as the non key +methods. The difference is that they use their master_key parameter to map +objects to particular servers. +.sp +If you are looking for performance, memcached_set() with non\-blocking IO is +the fastest way to store data on the server. +.sp +All of the above functions are supported with the \fBMEMCACHED_BEHAVIOR_USE_UDP\fPbehavior enabled. But when using these operations with this behavior on, there +are limits to the size of the payload being sent to the server. The reason for +these limits is that the Memcahed Server does not allow multi\-datagram requests +and the current server implementation sets a datagram size to 1400 bytes. Due +to protocol overhead, the actual limit of the user supplied data is less than +1400 bytes and depends on the protocol in use as well as the operation being +executed. When running with the binary protocol, \(ga\(ga MEMCACHED_BEHAVIOR_BINARY_PROTOCOL\(ga\(ga, +the size of the key,value, flags and expiry combined may not exceed 1368 bytes. +When running with the ASCII protocol, the exact limit fluctuates depending on +which function is being executed and whether the function is a cas operation +or not. For non\-cas ASCII set operations, there are at least 1335 bytes available +to split among the key, key_prefix, and value; for cas ASCII operations there are +at least 1318 bytes available to split among the key, key_prefix and value. If the +total size of the command, including overhead, exceeds 1400 bytes, a \fBMEMCACHED_WRITE_FAILURE\fPwill be returned. +.SH RETURN +.sp +All methods return a value of type \fBmemcached_return_t\fP. +On success the value will be \fBMEMCACHED_SUCCESS\fP. +Use memcached_strerror() to translate this value to a printable string. +.sp +For memcached_replace() and memcached_add(), \fBMEMCACHED_NOTSTORED\fP is a +legitmate error in the case of a collision. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Brian Aker, <\fI\%brian@tangent.org\fP> +.SH SEE ALSO +.sp +memcached(1) libmemached(3) memcached_strerror(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcached_prepend_by_key.3 b/docs/man/memcached_prepend_by_key.3 new file mode 100644 index 00000000..a8b5a2f0 --- /dev/null +++ b/docs/man/memcached_prepend_by_key.3 @@ -0,0 +1,216 @@ +.TH "MEMCACHED_PREPEND_BY_KEY" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcached_prepend_by_key \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Store value on server +.SH LIBRARY +.sp +C Client Library for memcached (libmemcached, \-lmemcached) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +memcached_return_t + memcached_set (memcached_st *ptr, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + +memcached_return_t + memcached_add (memcached_st *ptr, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + +memcached_return_t + memcached_replace (memcached_st *ptr, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + +memcached_return_t + memcached_prepend(memcached_st *ptr, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags) + +memcached_return_t + memcached_append(memcached_st *ptr, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags) +memcached_return_t + memcached_cas(memcached_st *ptr, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags, + uint64_t cas); + +memcached_return_t + memcached_set_by_key(memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + +memcached_return_t + memcached_add_by_key(memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + +memcached_return_t + memcached_replace_by_key(memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + +memcached_return_t + memcached_prepend_by_key(memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + +memcached_return_t + memcached_append_by_key(memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + +memcached_return_t + memcached_cas_by_key(memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags, + uint64_t cas); +.ft P +.fi +.SH DESCRIPTION +.sp +memcached_set(), memcached_add(), and memcached_replace() are all used to +store information on the server. All methods take a key, and its length to +store the object. Keys are currently limited to 250 characters by the +memcached(1) server. You must also supply a value and a length. Optionally you +may support an expiration time for the object and a 16 byte value (it is +meant to be used as a bitmap). +.sp +memcached_set() will write an object to the server. If an object already +exists it will overwrite what is in the server. If the object does not exist +it will be written. If you are using the non\-blocking mode this function +will always return true unless a network error occurs. +.sp +memcached_replace() replaces an object on the server. If the object is not +found on the server an error occurs. +.sp +memcached_add() adds an object to the server. If the object is found on the +server an error occurs, otherwise the value is stored. +.sp +memcached_prepend() places a segment of data before the last piece of data +stored. Currently expiration and key are not used in the server. +.sp +memcached_append() places a segment of data at the end of the last piece of +data stored. Currently expiration and key are not used in the server. +.sp +memcached_cas() overwrites data in the server as long as the "cas" value is +still the same in the server. You can get the cas value of a result by +calling memcached_result_cas() on a memcached_result_st(3) structure. At the point +that this note was written cas is still buggy in memached. Turning on support +for it in libmemcached(3) is optional. Please see memcached_set() for +information on how to do this. +.sp +memcached_set_by_key(), memcached_add_by_key(), memcached_replace_by_key(), +memcached_prepend_by_key(), memcached_append_by_key_by_key(), +memcached_cas_by_key() methods all behave in a similar method as the non key +methods. The difference is that they use their master_key parameter to map +objects to particular servers. +.sp +If you are looking for performance, memcached_set() with non\-blocking IO is +the fastest way to store data on the server. +.sp +All of the above functions are supported with the \fBMEMCACHED_BEHAVIOR_USE_UDP\fPbehavior enabled. But when using these operations with this behavior on, there +are limits to the size of the payload being sent to the server. The reason for +these limits is that the Memcahed Server does not allow multi\-datagram requests +and the current server implementation sets a datagram size to 1400 bytes. Due +to protocol overhead, the actual limit of the user supplied data is less than +1400 bytes and depends on the protocol in use as well as the operation being +executed. When running with the binary protocol, \(ga\(ga MEMCACHED_BEHAVIOR_BINARY_PROTOCOL\(ga\(ga, +the size of the key,value, flags and expiry combined may not exceed 1368 bytes. +When running with the ASCII protocol, the exact limit fluctuates depending on +which function is being executed and whether the function is a cas operation +or not. For non\-cas ASCII set operations, there are at least 1335 bytes available +to split among the key, key_prefix, and value; for cas ASCII operations there are +at least 1318 bytes available to split among the key, key_prefix and value. If the +total size of the command, including overhead, exceeds 1400 bytes, a \fBMEMCACHED_WRITE_FAILURE\fPwill be returned. +.SH RETURN +.sp +All methods return a value of type \fBmemcached_return_t\fP. +On success the value will be \fBMEMCACHED_SUCCESS\fP. +Use memcached_strerror() to translate this value to a printable string. +.sp +For memcached_replace() and memcached_add(), \fBMEMCACHED_NOTSTORED\fP is a +legitmate error in the case of a collision. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Brian Aker, <\fI\%brian@tangent.org\fP> +.SH SEE ALSO +.sp +memcached(1) libmemached(3) memcached_strerror(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcached_quit.3 b/docs/man/memcached_quit.3 new file mode 100644 index 00000000..719858cf --- /dev/null +++ b/docs/man/memcached_quit.3 @@ -0,0 +1,79 @@ +.TH "MEMCACHED_QUIT" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcached_quit \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Disconnect from all servers +.SH LIBRARY +.sp +C Client Library for memcached (libmemcached, \-lmemcached) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +void memcached_quit (memcached_st *ptr); +.ft P +.fi +.SH DESCRIPTION +.sp +memcached_quit() will disconnect you from all currently connected servers. +It will also reset the state of the connection (ie, any memcached_fetch() you +are in the middle of will be terminated). This function is called +automatically when you call memcached_free() on the \fBmemcached_st\fP structure. +.sp +You do not need to call this on your own. All operations to change server +hashes and parameters will handle connections to the server for you. This +function is provided mainly so that you can timeout your connections or +reset connections during the middle of a memcached_fetch(). +.SH RETURN +.sp +A value of type \fBmemcached_return\fP is returned +On success that value will be \fBMEMCACHED_SUCCESS\fP. +Use memcached_strerror() to translate this value to a printable string. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Brian Aker, <\fI\%brian@tangent.org\fP> +.SH SEE ALSO +.sp +memcached(1) libmemcached(3) memcached_strerror(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcached_replace.3 b/docs/man/memcached_replace.3 new file mode 100644 index 00000000..db36e337 --- /dev/null +++ b/docs/man/memcached_replace.3 @@ -0,0 +1,216 @@ +.TH "MEMCACHED_REPLACE" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcached_replace \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Store value on server +.SH LIBRARY +.sp +C Client Library for memcached (libmemcached, \-lmemcached) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +memcached_return_t + memcached_set (memcached_st *ptr, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + +memcached_return_t + memcached_add (memcached_st *ptr, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + +memcached_return_t + memcached_replace (memcached_st *ptr, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + +memcached_return_t + memcached_prepend(memcached_st *ptr, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags) + +memcached_return_t + memcached_append(memcached_st *ptr, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags) +memcached_return_t + memcached_cas(memcached_st *ptr, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags, + uint64_t cas); + +memcached_return_t + memcached_set_by_key(memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + +memcached_return_t + memcached_add_by_key(memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + +memcached_return_t + memcached_replace_by_key(memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + +memcached_return_t + memcached_prepend_by_key(memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + +memcached_return_t + memcached_append_by_key(memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + +memcached_return_t + memcached_cas_by_key(memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags, + uint64_t cas); +.ft P +.fi +.SH DESCRIPTION +.sp +memcached_set(), memcached_add(), and memcached_replace() are all used to +store information on the server. All methods take a key, and its length to +store the object. Keys are currently limited to 250 characters by the +memcached(1) server. You must also supply a value and a length. Optionally you +may support an expiration time for the object and a 16 byte value (it is +meant to be used as a bitmap). +.sp +memcached_set() will write an object to the server. If an object already +exists it will overwrite what is in the server. If the object does not exist +it will be written. If you are using the non\-blocking mode this function +will always return true unless a network error occurs. +.sp +memcached_replace() replaces an object on the server. If the object is not +found on the server an error occurs. +.sp +memcached_add() adds an object to the server. If the object is found on the +server an error occurs, otherwise the value is stored. +.sp +memcached_prepend() places a segment of data before the last piece of data +stored. Currently expiration and key are not used in the server. +.sp +memcached_append() places a segment of data at the end of the last piece of +data stored. Currently expiration and key are not used in the server. +.sp +memcached_cas() overwrites data in the server as long as the "cas" value is +still the same in the server. You can get the cas value of a result by +calling memcached_result_cas() on a memcached_result_st(3) structure. At the point +that this note was written cas is still buggy in memached. Turning on support +for it in libmemcached(3) is optional. Please see memcached_set() for +information on how to do this. +.sp +memcached_set_by_key(), memcached_add_by_key(), memcached_replace_by_key(), +memcached_prepend_by_key(), memcached_append_by_key_by_key(), +memcached_cas_by_key() methods all behave in a similar method as the non key +methods. The difference is that they use their master_key parameter to map +objects to particular servers. +.sp +If you are looking for performance, memcached_set() with non\-blocking IO is +the fastest way to store data on the server. +.sp +All of the above functions are supported with the \fBMEMCACHED_BEHAVIOR_USE_UDP\fPbehavior enabled. But when using these operations with this behavior on, there +are limits to the size of the payload being sent to the server. The reason for +these limits is that the Memcahed Server does not allow multi\-datagram requests +and the current server implementation sets a datagram size to 1400 bytes. Due +to protocol overhead, the actual limit of the user supplied data is less than +1400 bytes and depends on the protocol in use as well as the operation being +executed. When running with the binary protocol, \(ga\(ga MEMCACHED_BEHAVIOR_BINARY_PROTOCOL\(ga\(ga, +the size of the key,value, flags and expiry combined may not exceed 1368 bytes. +When running with the ASCII protocol, the exact limit fluctuates depending on +which function is being executed and whether the function is a cas operation +or not. For non\-cas ASCII set operations, there are at least 1335 bytes available +to split among the key, key_prefix, and value; for cas ASCII operations there are +at least 1318 bytes available to split among the key, key_prefix and value. If the +total size of the command, including overhead, exceeds 1400 bytes, a \fBMEMCACHED_WRITE_FAILURE\fPwill be returned. +.SH RETURN +.sp +All methods return a value of type \fBmemcached_return_t\fP. +On success the value will be \fBMEMCACHED_SUCCESS\fP. +Use memcached_strerror() to translate this value to a printable string. +.sp +For memcached_replace() and memcached_add(), \fBMEMCACHED_NOTSTORED\fP is a +legitmate error in the case of a collision. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Brian Aker, <\fI\%brian@tangent.org\fP> +.SH SEE ALSO +.sp +memcached(1) libmemached(3) memcached_strerror(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcached_replace_by_key.3 b/docs/man/memcached_replace_by_key.3 new file mode 100644 index 00000000..afa9f428 --- /dev/null +++ b/docs/man/memcached_replace_by_key.3 @@ -0,0 +1,216 @@ +.TH "MEMCACHED_REPLACE_BY_KEY" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcached_replace_by_key \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Store value on server +.SH LIBRARY +.sp +C Client Library for memcached (libmemcached, \-lmemcached) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +memcached_return_t + memcached_set (memcached_st *ptr, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + +memcached_return_t + memcached_add (memcached_st *ptr, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + +memcached_return_t + memcached_replace (memcached_st *ptr, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + +memcached_return_t + memcached_prepend(memcached_st *ptr, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags) + +memcached_return_t + memcached_append(memcached_st *ptr, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags) +memcached_return_t + memcached_cas(memcached_st *ptr, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags, + uint64_t cas); + +memcached_return_t + memcached_set_by_key(memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + +memcached_return_t + memcached_add_by_key(memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + +memcached_return_t + memcached_replace_by_key(memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + +memcached_return_t + memcached_prepend_by_key(memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + +memcached_return_t + memcached_append_by_key(memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + +memcached_return_t + memcached_cas_by_key(memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags, + uint64_t cas); +.ft P +.fi +.SH DESCRIPTION +.sp +memcached_set(), memcached_add(), and memcached_replace() are all used to +store information on the server. All methods take a key, and its length to +store the object. Keys are currently limited to 250 characters by the +memcached(1) server. You must also supply a value and a length. Optionally you +may support an expiration time for the object and a 16 byte value (it is +meant to be used as a bitmap). +.sp +memcached_set() will write an object to the server. If an object already +exists it will overwrite what is in the server. If the object does not exist +it will be written. If you are using the non\-blocking mode this function +will always return true unless a network error occurs. +.sp +memcached_replace() replaces an object on the server. If the object is not +found on the server an error occurs. +.sp +memcached_add() adds an object to the server. If the object is found on the +server an error occurs, otherwise the value is stored. +.sp +memcached_prepend() places a segment of data before the last piece of data +stored. Currently expiration and key are not used in the server. +.sp +memcached_append() places a segment of data at the end of the last piece of +data stored. Currently expiration and key are not used in the server. +.sp +memcached_cas() overwrites data in the server as long as the "cas" value is +still the same in the server. You can get the cas value of a result by +calling memcached_result_cas() on a memcached_result_st(3) structure. At the point +that this note was written cas is still buggy in memached. Turning on support +for it in libmemcached(3) is optional. Please see memcached_set() for +information on how to do this. +.sp +memcached_set_by_key(), memcached_add_by_key(), memcached_replace_by_key(), +memcached_prepend_by_key(), memcached_append_by_key_by_key(), +memcached_cas_by_key() methods all behave in a similar method as the non key +methods. The difference is that they use their master_key parameter to map +objects to particular servers. +.sp +If you are looking for performance, memcached_set() with non\-blocking IO is +the fastest way to store data on the server. +.sp +All of the above functions are supported with the \fBMEMCACHED_BEHAVIOR_USE_UDP\fPbehavior enabled. But when using these operations with this behavior on, there +are limits to the size of the payload being sent to the server. The reason for +these limits is that the Memcahed Server does not allow multi\-datagram requests +and the current server implementation sets a datagram size to 1400 bytes. Due +to protocol overhead, the actual limit of the user supplied data is less than +1400 bytes and depends on the protocol in use as well as the operation being +executed. When running with the binary protocol, \(ga\(ga MEMCACHED_BEHAVIOR_BINARY_PROTOCOL\(ga\(ga, +the size of the key,value, flags and expiry combined may not exceed 1368 bytes. +When running with the ASCII protocol, the exact limit fluctuates depending on +which function is being executed and whether the function is a cas operation +or not. For non\-cas ASCII set operations, there are at least 1335 bytes available +to split among the key, key_prefix, and value; for cas ASCII operations there are +at least 1318 bytes available to split among the key, key_prefix and value. If the +total size of the command, including overhead, exceeds 1400 bytes, a \fBMEMCACHED_WRITE_FAILURE\fPwill be returned. +.SH RETURN +.sp +All methods return a value of type \fBmemcached_return_t\fP. +On success the value will be \fBMEMCACHED_SUCCESS\fP. +Use memcached_strerror() to translate this value to a printable string. +.sp +For memcached_replace() and memcached_add(), \fBMEMCACHED_NOTSTORED\fP is a +legitmate error in the case of a collision. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Brian Aker, <\fI\%brian@tangent.org\fP> +.SH SEE ALSO +.sp +memcached(1) libmemached(3) memcached_strerror(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcached_result_cas.3 b/docs/man/memcached_result_cas.3 new file mode 100644 index 00000000..710c7e78 --- /dev/null +++ b/docs/man/memcached_result_cas.3 @@ -0,0 +1,143 @@ +.TH "MEMCACHED_RESULT_CAS" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcached_result_cas \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Work with memcached_result_st +.SH LIBRARY +.sp +C Client Library for memcached (libmemcached, \-lmemcached) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +memcached_result_st * + memcached_result_create (memcached_st *ptr, + memcached_result_st *result); + +void memcached_result_free (memcached_result_st *result); + +const char * memcached_result_key_value (memcached_result_st *result); + +size_t memcached_result_key_length (const memcached_result_st *result); + +const char *memcached_result_value (memcached_result_st *ptr); + +size_t memcached_result_length (const memcached_result_st *ptr); + +uint32_t memcached_result_flags (const memcached_result_st *result) + +uint64_t memcached_result_cas (const memcached_result_st *result); + +memcached_return_t + memcached_result_set_value (memcached_result_st *ptr, + const char *value, size_t length) + +void memcached_result_set_flags (memcached_result_st *ptr, uint32_t flags) + +void memcached_result_set_expiration (memcached_result_st *ptr, time_t) +.ft P +.fi +.SH DESCRIPTION +.sp +libmemcached(3) can optionally return a memcached_result_st which acts as a +result object. The result objects have added benefits over the character +pointer returns in that they are forward compatible with new return items +that future memcached servers may implement (the best current example of +this is the CAS return item). The structures can also be reused which will +save on calls to malloc(3). It is suggested that you use result objects over +char * return functions. +.sp +The structure of memcached_result_st has been encapsulated, you should not +write code to directly access members of the structure. +.sp +memcached_result_create() will either allocate memory for a +memcached_result_st or will initialize a structure passed to it. +.sp +memcached_result_free() will deallocate any memory attached to the +structure. If the structure was also alloacted, it will deallocate it. +.sp +memcached_result_key_value() returns the key value associated with the +current result object. +.sp +memcached_result_key_length() returns the key length associated with the +current result object. +.sp +memcached_result_value() returns the result value associated with the +current result object. +.sp +memcached_result_length() returns the result length associated with the +current result object. +.sp +memcached_result_flags() returns the flags associated with the +current result object. +.sp +memcached_result_cas() returns the cas associated with the +current result object. This value will only be available if the server +supports it. +.sp +memcached_result_set_value() takes a byte array and a size and sets +the result to this value. This function is used for trigger responses. +.sp +void memcached_result_set_flags() takes a result structure and stores +a new value for the flags field. +.sp +void memcached_result_set_expiration(A) takes a result structure and stores +a new value for the expiration field (this is only used by read through +triggers). +.sp +You may wish to avoid using memcached_result_create(3) with a +stack based allocation. The most common issues related to ABI safety involve +heap allocated structures. +.SH RETURN +.sp +Varies, see particular functions. All structures must have +memcached_result_free() called on them for cleanup purposes. Failure to +do this will result in leaked memory. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Brian Aker, <\fI\%brian@tangent.org\fP> +.SH SEE ALSO +.sp +memcached(1) libmemcached(3) memcached_strerror(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcached_result_create.3 b/docs/man/memcached_result_create.3 new file mode 100644 index 00000000..f0facf54 --- /dev/null +++ b/docs/man/memcached_result_create.3 @@ -0,0 +1,143 @@ +.TH "MEMCACHED_RESULT_CREATE" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcached_result_create \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Work with memcached_result_st +.SH LIBRARY +.sp +C Client Library for memcached (libmemcached, \-lmemcached) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +memcached_result_st * + memcached_result_create (memcached_st *ptr, + memcached_result_st *result); + +void memcached_result_free (memcached_result_st *result); + +const char * memcached_result_key_value (memcached_result_st *result); + +size_t memcached_result_key_length (const memcached_result_st *result); + +const char *memcached_result_value (memcached_result_st *ptr); + +size_t memcached_result_length (const memcached_result_st *ptr); + +uint32_t memcached_result_flags (const memcached_result_st *result) + +uint64_t memcached_result_cas (const memcached_result_st *result); + +memcached_return_t + memcached_result_set_value (memcached_result_st *ptr, + const char *value, size_t length) + +void memcached_result_set_flags (memcached_result_st *ptr, uint32_t flags) + +void memcached_result_set_expiration (memcached_result_st *ptr, time_t) +.ft P +.fi +.SH DESCRIPTION +.sp +libmemcached(3) can optionally return a memcached_result_st which acts as a +result object. The result objects have added benefits over the character +pointer returns in that they are forward compatible with new return items +that future memcached servers may implement (the best current example of +this is the CAS return item). The structures can also be reused which will +save on calls to malloc(3). It is suggested that you use result objects over +char * return functions. +.sp +The structure of memcached_result_st has been encapsulated, you should not +write code to directly access members of the structure. +.sp +memcached_result_create() will either allocate memory for a +memcached_result_st or will initialize a structure passed to it. +.sp +memcached_result_free() will deallocate any memory attached to the +structure. If the structure was also alloacted, it will deallocate it. +.sp +memcached_result_key_value() returns the key value associated with the +current result object. +.sp +memcached_result_key_length() returns the key length associated with the +current result object. +.sp +memcached_result_value() returns the result value associated with the +current result object. +.sp +memcached_result_length() returns the result length associated with the +current result object. +.sp +memcached_result_flags() returns the flags associated with the +current result object. +.sp +memcached_result_cas() returns the cas associated with the +current result object. This value will only be available if the server +supports it. +.sp +memcached_result_set_value() takes a byte array and a size and sets +the result to this value. This function is used for trigger responses. +.sp +void memcached_result_set_flags() takes a result structure and stores +a new value for the flags field. +.sp +void memcached_result_set_expiration(A) takes a result structure and stores +a new value for the expiration field (this is only used by read through +triggers). +.sp +You may wish to avoid using memcached_result_create(3) with a +stack based allocation. The most common issues related to ABI safety involve +heap allocated structures. +.SH RETURN +.sp +Varies, see particular functions. All structures must have +memcached_result_free() called on them for cleanup purposes. Failure to +do this will result in leaked memory. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Brian Aker, <\fI\%brian@tangent.org\fP> +.SH SEE ALSO +.sp +memcached(1) libmemcached(3) memcached_strerror(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcached_result_flags.3 b/docs/man/memcached_result_flags.3 new file mode 100644 index 00000000..601879da --- /dev/null +++ b/docs/man/memcached_result_flags.3 @@ -0,0 +1,143 @@ +.TH "MEMCACHED_RESULT_FLAGS" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcached_result_flags \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Work with memcached_result_st +.SH LIBRARY +.sp +C Client Library for memcached (libmemcached, \-lmemcached) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +memcached_result_st * + memcached_result_create (memcached_st *ptr, + memcached_result_st *result); + +void memcached_result_free (memcached_result_st *result); + +const char * memcached_result_key_value (memcached_result_st *result); + +size_t memcached_result_key_length (const memcached_result_st *result); + +const char *memcached_result_value (memcached_result_st *ptr); + +size_t memcached_result_length (const memcached_result_st *ptr); + +uint32_t memcached_result_flags (const memcached_result_st *result) + +uint64_t memcached_result_cas (const memcached_result_st *result); + +memcached_return_t + memcached_result_set_value (memcached_result_st *ptr, + const char *value, size_t length) + +void memcached_result_set_flags (memcached_result_st *ptr, uint32_t flags) + +void memcached_result_set_expiration (memcached_result_st *ptr, time_t) +.ft P +.fi +.SH DESCRIPTION +.sp +libmemcached(3) can optionally return a memcached_result_st which acts as a +result object. The result objects have added benefits over the character +pointer returns in that they are forward compatible with new return items +that future memcached servers may implement (the best current example of +this is the CAS return item). The structures can also be reused which will +save on calls to malloc(3). It is suggested that you use result objects over +char * return functions. +.sp +The structure of memcached_result_st has been encapsulated, you should not +write code to directly access members of the structure. +.sp +memcached_result_create() will either allocate memory for a +memcached_result_st or will initialize a structure passed to it. +.sp +memcached_result_free() will deallocate any memory attached to the +structure. If the structure was also alloacted, it will deallocate it. +.sp +memcached_result_key_value() returns the key value associated with the +current result object. +.sp +memcached_result_key_length() returns the key length associated with the +current result object. +.sp +memcached_result_value() returns the result value associated with the +current result object. +.sp +memcached_result_length() returns the result length associated with the +current result object. +.sp +memcached_result_flags() returns the flags associated with the +current result object. +.sp +memcached_result_cas() returns the cas associated with the +current result object. This value will only be available if the server +supports it. +.sp +memcached_result_set_value() takes a byte array and a size and sets +the result to this value. This function is used for trigger responses. +.sp +void memcached_result_set_flags() takes a result structure and stores +a new value for the flags field. +.sp +void memcached_result_set_expiration(A) takes a result structure and stores +a new value for the expiration field (this is only used by read through +triggers). +.sp +You may wish to avoid using memcached_result_create(3) with a +stack based allocation. The most common issues related to ABI safety involve +heap allocated structures. +.SH RETURN +.sp +Varies, see particular functions. All structures must have +memcached_result_free() called on them for cleanup purposes. Failure to +do this will result in leaked memory. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Brian Aker, <\fI\%brian@tangent.org\fP> +.SH SEE ALSO +.sp +memcached(1) libmemcached(3) memcached_strerror(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcached_result_free.3 b/docs/man/memcached_result_free.3 new file mode 100644 index 00000000..40351635 --- /dev/null +++ b/docs/man/memcached_result_free.3 @@ -0,0 +1,143 @@ +.TH "MEMCACHED_RESULT_FREE" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcached_result_free \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Work with memcached_result_st +.SH LIBRARY +.sp +C Client Library for memcached (libmemcached, \-lmemcached) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +memcached_result_st * + memcached_result_create (memcached_st *ptr, + memcached_result_st *result); + +void memcached_result_free (memcached_result_st *result); + +const char * memcached_result_key_value (memcached_result_st *result); + +size_t memcached_result_key_length (const memcached_result_st *result); + +const char *memcached_result_value (memcached_result_st *ptr); + +size_t memcached_result_length (const memcached_result_st *ptr); + +uint32_t memcached_result_flags (const memcached_result_st *result) + +uint64_t memcached_result_cas (const memcached_result_st *result); + +memcached_return_t + memcached_result_set_value (memcached_result_st *ptr, + const char *value, size_t length) + +void memcached_result_set_flags (memcached_result_st *ptr, uint32_t flags) + +void memcached_result_set_expiration (memcached_result_st *ptr, time_t) +.ft P +.fi +.SH DESCRIPTION +.sp +libmemcached(3) can optionally return a memcached_result_st which acts as a +result object. The result objects have added benefits over the character +pointer returns in that they are forward compatible with new return items +that future memcached servers may implement (the best current example of +this is the CAS return item). The structures can also be reused which will +save on calls to malloc(3). It is suggested that you use result objects over +char * return functions. +.sp +The structure of memcached_result_st has been encapsulated, you should not +write code to directly access members of the structure. +.sp +memcached_result_create() will either allocate memory for a +memcached_result_st or will initialize a structure passed to it. +.sp +memcached_result_free() will deallocate any memory attached to the +structure. If the structure was also alloacted, it will deallocate it. +.sp +memcached_result_key_value() returns the key value associated with the +current result object. +.sp +memcached_result_key_length() returns the key length associated with the +current result object. +.sp +memcached_result_value() returns the result value associated with the +current result object. +.sp +memcached_result_length() returns the result length associated with the +current result object. +.sp +memcached_result_flags() returns the flags associated with the +current result object. +.sp +memcached_result_cas() returns the cas associated with the +current result object. This value will only be available if the server +supports it. +.sp +memcached_result_set_value() takes a byte array and a size and sets +the result to this value. This function is used for trigger responses. +.sp +void memcached_result_set_flags() takes a result structure and stores +a new value for the flags field. +.sp +void memcached_result_set_expiration(A) takes a result structure and stores +a new value for the expiration field (this is only used by read through +triggers). +.sp +You may wish to avoid using memcached_result_create(3) with a +stack based allocation. The most common issues related to ABI safety involve +heap allocated structures. +.SH RETURN +.sp +Varies, see particular functions. All structures must have +memcached_result_free() called on them for cleanup purposes. Failure to +do this will result in leaked memory. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Brian Aker, <\fI\%brian@tangent.org\fP> +.SH SEE ALSO +.sp +memcached(1) libmemcached(3) memcached_strerror(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcached_result_key_length.3 b/docs/man/memcached_result_key_length.3 new file mode 100644 index 00000000..0cfbcfc9 --- /dev/null +++ b/docs/man/memcached_result_key_length.3 @@ -0,0 +1,143 @@ +.TH "MEMCACHED_RESULT_KEY_LENGTH" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcached_result_key_length \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Work with memcached_result_st +.SH LIBRARY +.sp +C Client Library for memcached (libmemcached, \-lmemcached) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +memcached_result_st * + memcached_result_create (memcached_st *ptr, + memcached_result_st *result); + +void memcached_result_free (memcached_result_st *result); + +const char * memcached_result_key_value (memcached_result_st *result); + +size_t memcached_result_key_length (const memcached_result_st *result); + +const char *memcached_result_value (memcached_result_st *ptr); + +size_t memcached_result_length (const memcached_result_st *ptr); + +uint32_t memcached_result_flags (const memcached_result_st *result) + +uint64_t memcached_result_cas (const memcached_result_st *result); + +memcached_return_t + memcached_result_set_value (memcached_result_st *ptr, + const char *value, size_t length) + +void memcached_result_set_flags (memcached_result_st *ptr, uint32_t flags) + +void memcached_result_set_expiration (memcached_result_st *ptr, time_t) +.ft P +.fi +.SH DESCRIPTION +.sp +libmemcached(3) can optionally return a memcached_result_st which acts as a +result object. The result objects have added benefits over the character +pointer returns in that they are forward compatible with new return items +that future memcached servers may implement (the best current example of +this is the CAS return item). The structures can also be reused which will +save on calls to malloc(3). It is suggested that you use result objects over +char * return functions. +.sp +The structure of memcached_result_st has been encapsulated, you should not +write code to directly access members of the structure. +.sp +memcached_result_create() will either allocate memory for a +memcached_result_st or will initialize a structure passed to it. +.sp +memcached_result_free() will deallocate any memory attached to the +structure. If the structure was also alloacted, it will deallocate it. +.sp +memcached_result_key_value() returns the key value associated with the +current result object. +.sp +memcached_result_key_length() returns the key length associated with the +current result object. +.sp +memcached_result_value() returns the result value associated with the +current result object. +.sp +memcached_result_length() returns the result length associated with the +current result object. +.sp +memcached_result_flags() returns the flags associated with the +current result object. +.sp +memcached_result_cas() returns the cas associated with the +current result object. This value will only be available if the server +supports it. +.sp +memcached_result_set_value() takes a byte array and a size and sets +the result to this value. This function is used for trigger responses. +.sp +void memcached_result_set_flags() takes a result structure and stores +a new value for the flags field. +.sp +void memcached_result_set_expiration(A) takes a result structure and stores +a new value for the expiration field (this is only used by read through +triggers). +.sp +You may wish to avoid using memcached_result_create(3) with a +stack based allocation. The most common issues related to ABI safety involve +heap allocated structures. +.SH RETURN +.sp +Varies, see particular functions. All structures must have +memcached_result_free() called on them for cleanup purposes. Failure to +do this will result in leaked memory. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Brian Aker, <\fI\%brian@tangent.org\fP> +.SH SEE ALSO +.sp +memcached(1) libmemcached(3) memcached_strerror(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcached_result_key_value.3 b/docs/man/memcached_result_key_value.3 new file mode 100644 index 00000000..a2516e31 --- /dev/null +++ b/docs/man/memcached_result_key_value.3 @@ -0,0 +1,143 @@ +.TH "MEMCACHED_RESULT_KEY_VALUE" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcached_result_key_value \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Work with memcached_result_st +.SH LIBRARY +.sp +C Client Library for memcached (libmemcached, \-lmemcached) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +memcached_result_st * + memcached_result_create (memcached_st *ptr, + memcached_result_st *result); + +void memcached_result_free (memcached_result_st *result); + +const char * memcached_result_key_value (memcached_result_st *result); + +size_t memcached_result_key_length (const memcached_result_st *result); + +const char *memcached_result_value (memcached_result_st *ptr); + +size_t memcached_result_length (const memcached_result_st *ptr); + +uint32_t memcached_result_flags (const memcached_result_st *result) + +uint64_t memcached_result_cas (const memcached_result_st *result); + +memcached_return_t + memcached_result_set_value (memcached_result_st *ptr, + const char *value, size_t length) + +void memcached_result_set_flags (memcached_result_st *ptr, uint32_t flags) + +void memcached_result_set_expiration (memcached_result_st *ptr, time_t) +.ft P +.fi +.SH DESCRIPTION +.sp +libmemcached(3) can optionally return a memcached_result_st which acts as a +result object. The result objects have added benefits over the character +pointer returns in that they are forward compatible with new return items +that future memcached servers may implement (the best current example of +this is the CAS return item). The structures can also be reused which will +save on calls to malloc(3). It is suggested that you use result objects over +char * return functions. +.sp +The structure of memcached_result_st has been encapsulated, you should not +write code to directly access members of the structure. +.sp +memcached_result_create() will either allocate memory for a +memcached_result_st or will initialize a structure passed to it. +.sp +memcached_result_free() will deallocate any memory attached to the +structure. If the structure was also alloacted, it will deallocate it. +.sp +memcached_result_key_value() returns the key value associated with the +current result object. +.sp +memcached_result_key_length() returns the key length associated with the +current result object. +.sp +memcached_result_value() returns the result value associated with the +current result object. +.sp +memcached_result_length() returns the result length associated with the +current result object. +.sp +memcached_result_flags() returns the flags associated with the +current result object. +.sp +memcached_result_cas() returns the cas associated with the +current result object. This value will only be available if the server +supports it. +.sp +memcached_result_set_value() takes a byte array and a size and sets +the result to this value. This function is used for trigger responses. +.sp +void memcached_result_set_flags() takes a result structure and stores +a new value for the flags field. +.sp +void memcached_result_set_expiration(A) takes a result structure and stores +a new value for the expiration field (this is only used by read through +triggers). +.sp +You may wish to avoid using memcached_result_create(3) with a +stack based allocation. The most common issues related to ABI safety involve +heap allocated structures. +.SH RETURN +.sp +Varies, see particular functions. All structures must have +memcached_result_free() called on them for cleanup purposes. Failure to +do this will result in leaked memory. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Brian Aker, <\fI\%brian@tangent.org\fP> +.SH SEE ALSO +.sp +memcached(1) libmemcached(3) memcached_strerror(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcached_result_length.3 b/docs/man/memcached_result_length.3 new file mode 100644 index 00000000..363905fb --- /dev/null +++ b/docs/man/memcached_result_length.3 @@ -0,0 +1,143 @@ +.TH "MEMCACHED_RESULT_LENGTH" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcached_result_length \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Work with memcached_result_st +.SH LIBRARY +.sp +C Client Library for memcached (libmemcached, \-lmemcached) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +memcached_result_st * + memcached_result_create (memcached_st *ptr, + memcached_result_st *result); + +void memcached_result_free (memcached_result_st *result); + +const char * memcached_result_key_value (memcached_result_st *result); + +size_t memcached_result_key_length (const memcached_result_st *result); + +const char *memcached_result_value (memcached_result_st *ptr); + +size_t memcached_result_length (const memcached_result_st *ptr); + +uint32_t memcached_result_flags (const memcached_result_st *result) + +uint64_t memcached_result_cas (const memcached_result_st *result); + +memcached_return_t + memcached_result_set_value (memcached_result_st *ptr, + const char *value, size_t length) + +void memcached_result_set_flags (memcached_result_st *ptr, uint32_t flags) + +void memcached_result_set_expiration (memcached_result_st *ptr, time_t) +.ft P +.fi +.SH DESCRIPTION +.sp +libmemcached(3) can optionally return a memcached_result_st which acts as a +result object. The result objects have added benefits over the character +pointer returns in that they are forward compatible with new return items +that future memcached servers may implement (the best current example of +this is the CAS return item). The structures can also be reused which will +save on calls to malloc(3). It is suggested that you use result objects over +char * return functions. +.sp +The structure of memcached_result_st has been encapsulated, you should not +write code to directly access members of the structure. +.sp +memcached_result_create() will either allocate memory for a +memcached_result_st or will initialize a structure passed to it. +.sp +memcached_result_free() will deallocate any memory attached to the +structure. If the structure was also alloacted, it will deallocate it. +.sp +memcached_result_key_value() returns the key value associated with the +current result object. +.sp +memcached_result_key_length() returns the key length associated with the +current result object. +.sp +memcached_result_value() returns the result value associated with the +current result object. +.sp +memcached_result_length() returns the result length associated with the +current result object. +.sp +memcached_result_flags() returns the flags associated with the +current result object. +.sp +memcached_result_cas() returns the cas associated with the +current result object. This value will only be available if the server +supports it. +.sp +memcached_result_set_value() takes a byte array and a size and sets +the result to this value. This function is used for trigger responses. +.sp +void memcached_result_set_flags() takes a result structure and stores +a new value for the flags field. +.sp +void memcached_result_set_expiration(A) takes a result structure and stores +a new value for the expiration field (this is only used by read through +triggers). +.sp +You may wish to avoid using memcached_result_create(3) with a +stack based allocation. The most common issues related to ABI safety involve +heap allocated structures. +.SH RETURN +.sp +Varies, see particular functions. All structures must have +memcached_result_free() called on them for cleanup purposes. Failure to +do this will result in leaked memory. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Brian Aker, <\fI\%brian@tangent.org\fP> +.SH SEE ALSO +.sp +memcached(1) libmemcached(3) memcached_strerror(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcached_result_st.3 b/docs/man/memcached_result_st.3 new file mode 100644 index 00000000..0bdf0f5f --- /dev/null +++ b/docs/man/memcached_result_st.3 @@ -0,0 +1,143 @@ +.TH "MEMCACHED_RESULT_ST" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcached_result_st \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Work with memcached_result_st +.SH LIBRARY +.sp +C Client Library for memcached (libmemcached, \-lmemcached) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +memcached_result_st * + memcached_result_create (memcached_st *ptr, + memcached_result_st *result); + +void memcached_result_free (memcached_result_st *result); + +const char * memcached_result_key_value (memcached_result_st *result); + +size_t memcached_result_key_length (const memcached_result_st *result); + +const char *memcached_result_value (memcached_result_st *ptr); + +size_t memcached_result_length (const memcached_result_st *ptr); + +uint32_t memcached_result_flags (const memcached_result_st *result) + +uint64_t memcached_result_cas (const memcached_result_st *result); + +memcached_return_t + memcached_result_set_value (memcached_result_st *ptr, + const char *value, size_t length) + +void memcached_result_set_flags (memcached_result_st *ptr, uint32_t flags) + +void memcached_result_set_expiration (memcached_result_st *ptr, time_t) +.ft P +.fi +.SH DESCRIPTION +.sp +libmemcached(3) can optionally return a memcached_result_st which acts as a +result object. The result objects have added benefits over the character +pointer returns in that they are forward compatible with new return items +that future memcached servers may implement (the best current example of +this is the CAS return item). The structures can also be reused which will +save on calls to malloc(3). It is suggested that you use result objects over +char * return functions. +.sp +The structure of memcached_result_st has been encapsulated, you should not +write code to directly access members of the structure. +.sp +memcached_result_create() will either allocate memory for a +memcached_result_st or will initialize a structure passed to it. +.sp +memcached_result_free() will deallocate any memory attached to the +structure. If the structure was also alloacted, it will deallocate it. +.sp +memcached_result_key_value() returns the key value associated with the +current result object. +.sp +memcached_result_key_length() returns the key length associated with the +current result object. +.sp +memcached_result_value() returns the result value associated with the +current result object. +.sp +memcached_result_length() returns the result length associated with the +current result object. +.sp +memcached_result_flags() returns the flags associated with the +current result object. +.sp +memcached_result_cas() returns the cas associated with the +current result object. This value will only be available if the server +supports it. +.sp +memcached_result_set_value() takes a byte array and a size and sets +the result to this value. This function is used for trigger responses. +.sp +void memcached_result_set_flags() takes a result structure and stores +a new value for the flags field. +.sp +void memcached_result_set_expiration(A) takes a result structure and stores +a new value for the expiration field (this is only used by read through +triggers). +.sp +You may wish to avoid using memcached_result_create(3) with a +stack based allocation. The most common issues related to ABI safety involve +heap allocated structures. +.SH RETURN +.sp +Varies, see particular functions. All structures must have +memcached_result_free() called on them for cleanup purposes. Failure to +do this will result in leaked memory. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Brian Aker, <\fI\%brian@tangent.org\fP> +.SH SEE ALSO +.sp +memcached(1) libmemcached(3) memcached_strerror(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcached_result_value.3 b/docs/man/memcached_result_value.3 new file mode 100644 index 00000000..80b0774c --- /dev/null +++ b/docs/man/memcached_result_value.3 @@ -0,0 +1,143 @@ +.TH "MEMCACHED_RESULT_VALUE" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcached_result_value \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Work with memcached_result_st +.SH LIBRARY +.sp +C Client Library for memcached (libmemcached, \-lmemcached) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +memcached_result_st * + memcached_result_create (memcached_st *ptr, + memcached_result_st *result); + +void memcached_result_free (memcached_result_st *result); + +const char * memcached_result_key_value (memcached_result_st *result); + +size_t memcached_result_key_length (const memcached_result_st *result); + +const char *memcached_result_value (memcached_result_st *ptr); + +size_t memcached_result_length (const memcached_result_st *ptr); + +uint32_t memcached_result_flags (const memcached_result_st *result) + +uint64_t memcached_result_cas (const memcached_result_st *result); + +memcached_return_t + memcached_result_set_value (memcached_result_st *ptr, + const char *value, size_t length) + +void memcached_result_set_flags (memcached_result_st *ptr, uint32_t flags) + +void memcached_result_set_expiration (memcached_result_st *ptr, time_t) +.ft P +.fi +.SH DESCRIPTION +.sp +libmemcached(3) can optionally return a memcached_result_st which acts as a +result object. The result objects have added benefits over the character +pointer returns in that they are forward compatible with new return items +that future memcached servers may implement (the best current example of +this is the CAS return item). The structures can also be reused which will +save on calls to malloc(3). It is suggested that you use result objects over +char * return functions. +.sp +The structure of memcached_result_st has been encapsulated, you should not +write code to directly access members of the structure. +.sp +memcached_result_create() will either allocate memory for a +memcached_result_st or will initialize a structure passed to it. +.sp +memcached_result_free() will deallocate any memory attached to the +structure. If the structure was also alloacted, it will deallocate it. +.sp +memcached_result_key_value() returns the key value associated with the +current result object. +.sp +memcached_result_key_length() returns the key length associated with the +current result object. +.sp +memcached_result_value() returns the result value associated with the +current result object. +.sp +memcached_result_length() returns the result length associated with the +current result object. +.sp +memcached_result_flags() returns the flags associated with the +current result object. +.sp +memcached_result_cas() returns the cas associated with the +current result object. This value will only be available if the server +supports it. +.sp +memcached_result_set_value() takes a byte array and a size and sets +the result to this value. This function is used for trigger responses. +.sp +void memcached_result_set_flags() takes a result structure and stores +a new value for the flags field. +.sp +void memcached_result_set_expiration(A) takes a result structure and stores +a new value for the expiration field (this is only used by read through +triggers). +.sp +You may wish to avoid using memcached_result_create(3) with a +stack based allocation. The most common issues related to ABI safety involve +heap allocated structures. +.SH RETURN +.sp +Varies, see particular functions. All structures must have +memcached_result_free() called on them for cleanup purposes. Failure to +do this will result in leaked memory. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Brian Aker, <\fI\%brian@tangent.org\fP> +.SH SEE ALSO +.sp +memcached(1) libmemcached(3) memcached_strerror(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcached_sasl.3 b/docs/man/memcached_sasl.3 new file mode 100644 index 00000000..fd704330 --- /dev/null +++ b/docs/man/memcached_sasl.3 @@ -0,0 +1,94 @@ +.TH "MEMCACHED_SASL" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcached_sasl \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +SASL support +.SH LIBRARY +.sp +C Client Library for memcached (libmemcached, \-lmemcached) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +void memcached_set_sasl_callbacks(memcached_st *ptr, + const sasl_callback_t *callbacks) + +const sasl_callback_t *memcached_get_sasl_callbacks(memcached_st *ptr) + +memcached_return memcached_set_sasl_auth_data(memcached_st *ptr, + const char *username, + const char *password) +memcached_return memcached_destroy_sasl_auth_data(memcached_st *ptr) +.ft P +.fi +.SH DESCRIPTION +.sp +libmemcached(3) allows you to plug in your own callbacks function used by +libsasl to perform SASL authentication. +.sp +Please note that SASL requires the memcached binary protocol, and you have +to specify the callbacks before you connect to the server. +.sp +memcached_set_sasl_auth_data() is a helper function for you defining +the basic functionality for you, but it will store the username and password +in memory. If you choose to use this method you have to call +memcached_destroy_sasl_auth_data before calling memcached_free to avoid +a memory leak. You should NOT call memcached_destroy_sasl_auth_data if you +specify your own callback function with memcached_set_sasl_callbacks(). +.sp +You as a client user have to initialize libsasl by using sasl_client_init +before enabling it in libmemcached, and you have to shut down libsasl by +calling sasl_done() when you are done using SASL from libmemcached. +.SH RETURN +.sp +memcached_get_sasl_callbacks() returns the callbacks currently used +by this memcached handle. +memcached_get_sasl_set_auth_data() returns MEMCACHED_SUCCESS upon success. +.SH HOME +.sp +To find out more information please check: +\fI\%http://libmemcached.org/\fP +.SH AUTHOR +.sp +Trond Norbye, <\fI\%trond.norbye@gmail.com\fP> +.SH SEE ALSO +.sp +memcached(1) libmemcached(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcached_sasl_set_auth_data.3 b/docs/man/memcached_sasl_set_auth_data.3 new file mode 100644 index 00000000..2d04a849 --- /dev/null +++ b/docs/man/memcached_sasl_set_auth_data.3 @@ -0,0 +1,94 @@ +.TH "MEMCACHED_SASL_SET_AUTH_DATA" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcached_sasl_set_auth_data \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +SASL support +.SH LIBRARY +.sp +C Client Library for memcached (libmemcached, \-lmemcached) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +void memcached_set_sasl_callbacks(memcached_st *ptr, + const sasl_callback_t *callbacks) + +const sasl_callback_t *memcached_get_sasl_callbacks(memcached_st *ptr) + +memcached_return memcached_set_sasl_auth_data(memcached_st *ptr, + const char *username, + const char *password) +memcached_return memcached_destroy_sasl_auth_data(memcached_st *ptr) +.ft P +.fi +.SH DESCRIPTION +.sp +libmemcached(3) allows you to plug in your own callbacks function used by +libsasl to perform SASL authentication. +.sp +Please note that SASL requires the memcached binary protocol, and you have +to specify the callbacks before you connect to the server. +.sp +memcached_set_sasl_auth_data() is a helper function for you defining +the basic functionality for you, but it will store the username and password +in memory. If you choose to use this method you have to call +memcached_destroy_sasl_auth_data before calling memcached_free to avoid +a memory leak. You should NOT call memcached_destroy_sasl_auth_data if you +specify your own callback function with memcached_set_sasl_callbacks(). +.sp +You as a client user have to initialize libsasl by using sasl_client_init +before enabling it in libmemcached, and you have to shut down libsasl by +calling sasl_done() when you are done using SASL from libmemcached. +.SH RETURN +.sp +memcached_get_sasl_callbacks() returns the callbacks currently used +by this memcached handle. +memcached_get_sasl_set_auth_data() returns MEMCACHED_SUCCESS upon success. +.SH HOME +.sp +To find out more information please check: +\fI\%http://libmemcached.org/\fP +.SH AUTHOR +.sp +Trond Norbye, <\fI\%trond.norbye@gmail.com\fP> +.SH SEE ALSO +.sp +memcached(1) libmemcached(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcached_server_add.3 b/docs/man/memcached_server_add.3 new file mode 100644 index 00000000..83fec35e --- /dev/null +++ b/docs/man/memcached_server_add.3 @@ -0,0 +1,147 @@ +.TH "MEMCACHED_SERVER_ADD" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcached_server_add \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Manage server list +.SH LIBRARY +.sp +C Client Library for memcached (libmemcached, \-lmemcached) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +uint32_t memcached_server_count (memcached_st *ptr); + +memcached_return_t + memcached_server_add (memcached_st *ptr, + const char *hostname, + in_port_t port); + +memcached_return_t + memcached_server_add_udp (memcached_st *ptr, + const char *hostname, + in_port_t port); + +memcached_return_t + memcached_server_add_unix_socket (memcached_st *ptr, + const char *socket); + +memcached_return_t + memcached_server_push (memcached_st *ptr, + const memcached_server_st *list); + +memcached_server_instance_st + memcached_server_by_key (const memcached_st *ptr, + const char *key, + size_t key_length, + memcached_return_t *error); + +memcached_server_instance_st + memcached_server_get_last_disconnect (const memcached_st *ptr) + +memcached_return_t + memcached_server_cursor(const memcached_st *ptr, + const memcached_server_fn *callback, + void *context, + uint32_t number_of_callbacks); +.ft P +.fi +.SH DESCRIPTION +.sp +libmemcached(3) performs operations on a list of hosts. The order of these +hosts determine routing to keys. Functions are provided to add keys to +memcached_st structures. To manipulate lists of servers see +memcached_server_st(3). +.sp +memcached_server_count() provides you a count of the current number of +servers being used by a \fBmemcached_st\fP structure. +.sp +memcached_server_add() pushes a single TCP server into the \fBmemcached_st\fPstructure. This server will be placed at the end. Duplicate servers are +allowed, so duplication is not checked. Executing this function with the +\fBMEMCACHED_BEHAVIOR_USE_UDP\fP behavior set will result in a +\fBMEMCACHED_INVALID_HOST_PROTOCOL\fP. +.sp +memcached_server_add_udp() pushes a single UDP server into the \fBmemcached_st\fPstructure. This server will be placed at the end. Duplicate servers are +allowed, so duplication is not checked. Executing this function with out +setting the \fBMEMCACHED_BEHAVIOR_USE_UDP\fP behavior will result in a +\fBMEMCACHED_INVALID_HOST_PROTOCOL\fP. +.sp +memcached_server_add_unix_socket() pushes a single UNIX socket into the +\fBmemcached_st\fP structure. This UNIX socket will be placed at the end. +Duplicate servers are allowed, so duplication is not checked. The length +of the filename must be one character less then MEMCACHED_MAX_HOST_LENGTH. +.sp +memcached_server_push() pushes an array of \fBmemcached_server_st\fP into +the \fBmemcached_st\fP structure. These servers will be placed at the +end. Duplicate servers are allowed, so duplication is not checked. A +copy is made of structure so the list provided (and any operations on +the list) are not saved. +.sp +memcached_server_by_key() allows you to provide a key and retrieve the +server which would be used for assignment. This structure is cloned +from its original structure and must be freed. If NULL is returned you +should consult *error. The returning structure should be freed with +memcached_server_free(). +.sp +memcached_server_get_last_disconnect() returns a pointer to the last server +for which there was a connection problem. It does not mean this particular +server is currently dead but if the library is reporting a server is, +the returned server is a very good candidate. +.sp +memcached_server_cursor() takes a memcached_st and loops through the +list of hosts currently in the cursor calling the list of callback +functions provided. You can optionally pass in a value via +context which will be provided to each callback function. An error +return from any callback will terminate the loop. memcached_server_cursor() +is passed the original caller memcached_st in its current state. +.SH RETURN +.sp +Varies, see particular functions. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Brian Aker, <\fI\%brian@tangent.org\fP> +.SH SEE ALSO +.sp +memcached(1) libmemcached(3) memcached_strerror(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcached_server_add_unix_socket.3 b/docs/man/memcached_server_add_unix_socket.3 new file mode 100644 index 00000000..143e24c5 --- /dev/null +++ b/docs/man/memcached_server_add_unix_socket.3 @@ -0,0 +1,147 @@ +.TH "MEMCACHED_SERVER_ADD_UNIX_SOCKET" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcached_server_add_unix_socket \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Manage server list +.SH LIBRARY +.sp +C Client Library for memcached (libmemcached, \-lmemcached) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +uint32_t memcached_server_count (memcached_st *ptr); + +memcached_return_t + memcached_server_add (memcached_st *ptr, + const char *hostname, + in_port_t port); + +memcached_return_t + memcached_server_add_udp (memcached_st *ptr, + const char *hostname, + in_port_t port); + +memcached_return_t + memcached_server_add_unix_socket (memcached_st *ptr, + const char *socket); + +memcached_return_t + memcached_server_push (memcached_st *ptr, + const memcached_server_st *list); + +memcached_server_instance_st + memcached_server_by_key (const memcached_st *ptr, + const char *key, + size_t key_length, + memcached_return_t *error); + +memcached_server_instance_st + memcached_server_get_last_disconnect (const memcached_st *ptr) + +memcached_return_t + memcached_server_cursor(const memcached_st *ptr, + const memcached_server_fn *callback, + void *context, + uint32_t number_of_callbacks); +.ft P +.fi +.SH DESCRIPTION +.sp +libmemcached(3) performs operations on a list of hosts. The order of these +hosts determine routing to keys. Functions are provided to add keys to +memcached_st structures. To manipulate lists of servers see +memcached_server_st(3). +.sp +memcached_server_count() provides you a count of the current number of +servers being used by a \fBmemcached_st\fP structure. +.sp +memcached_server_add() pushes a single TCP server into the \fBmemcached_st\fPstructure. This server will be placed at the end. Duplicate servers are +allowed, so duplication is not checked. Executing this function with the +\fBMEMCACHED_BEHAVIOR_USE_UDP\fP behavior set will result in a +\fBMEMCACHED_INVALID_HOST_PROTOCOL\fP. +.sp +memcached_server_add_udp() pushes a single UDP server into the \fBmemcached_st\fPstructure. This server will be placed at the end. Duplicate servers are +allowed, so duplication is not checked. Executing this function with out +setting the \fBMEMCACHED_BEHAVIOR_USE_UDP\fP behavior will result in a +\fBMEMCACHED_INVALID_HOST_PROTOCOL\fP. +.sp +memcached_server_add_unix_socket() pushes a single UNIX socket into the +\fBmemcached_st\fP structure. This UNIX socket will be placed at the end. +Duplicate servers are allowed, so duplication is not checked. The length +of the filename must be one character less then MEMCACHED_MAX_HOST_LENGTH. +.sp +memcached_server_push() pushes an array of \fBmemcached_server_st\fP into +the \fBmemcached_st\fP structure. These servers will be placed at the +end. Duplicate servers are allowed, so duplication is not checked. A +copy is made of structure so the list provided (and any operations on +the list) are not saved. +.sp +memcached_server_by_key() allows you to provide a key and retrieve the +server which would be used for assignment. This structure is cloned +from its original structure and must be freed. If NULL is returned you +should consult *error. The returning structure should be freed with +memcached_server_free(). +.sp +memcached_server_get_last_disconnect() returns a pointer to the last server +for which there was a connection problem. It does not mean this particular +server is currently dead but if the library is reporting a server is, +the returned server is a very good candidate. +.sp +memcached_server_cursor() takes a memcached_st and loops through the +list of hosts currently in the cursor calling the list of callback +functions provided. You can optionally pass in a value via +context which will be provided to each callback function. An error +return from any callback will terminate the loop. memcached_server_cursor() +is passed the original caller memcached_st in its current state. +.SH RETURN +.sp +Varies, see particular functions. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Brian Aker, <\fI\%brian@tangent.org\fP> +.SH SEE ALSO +.sp +memcached(1) libmemcached(3) memcached_strerror(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcached_server_count.3 b/docs/man/memcached_server_count.3 new file mode 100644 index 00000000..e4c42c85 --- /dev/null +++ b/docs/man/memcached_server_count.3 @@ -0,0 +1,147 @@ +.TH "MEMCACHED_SERVER_COUNT" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcached_server_count \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Manage server list +.SH LIBRARY +.sp +C Client Library for memcached (libmemcached, \-lmemcached) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +uint32_t memcached_server_count (memcached_st *ptr); + +memcached_return_t + memcached_server_add (memcached_st *ptr, + const char *hostname, + in_port_t port); + +memcached_return_t + memcached_server_add_udp (memcached_st *ptr, + const char *hostname, + in_port_t port); + +memcached_return_t + memcached_server_add_unix_socket (memcached_st *ptr, + const char *socket); + +memcached_return_t + memcached_server_push (memcached_st *ptr, + const memcached_server_st *list); + +memcached_server_instance_st + memcached_server_by_key (const memcached_st *ptr, + const char *key, + size_t key_length, + memcached_return_t *error); + +memcached_server_instance_st + memcached_server_get_last_disconnect (const memcached_st *ptr) + +memcached_return_t + memcached_server_cursor(const memcached_st *ptr, + const memcached_server_fn *callback, + void *context, + uint32_t number_of_callbacks); +.ft P +.fi +.SH DESCRIPTION +.sp +libmemcached(3) performs operations on a list of hosts. The order of these +hosts determine routing to keys. Functions are provided to add keys to +memcached_st structures. To manipulate lists of servers see +memcached_server_st(3). +.sp +memcached_server_count() provides you a count of the current number of +servers being used by a \fBmemcached_st\fP structure. +.sp +memcached_server_add() pushes a single TCP server into the \fBmemcached_st\fPstructure. This server will be placed at the end. Duplicate servers are +allowed, so duplication is not checked. Executing this function with the +\fBMEMCACHED_BEHAVIOR_USE_UDP\fP behavior set will result in a +\fBMEMCACHED_INVALID_HOST_PROTOCOL\fP. +.sp +memcached_server_add_udp() pushes a single UDP server into the \fBmemcached_st\fPstructure. This server will be placed at the end. Duplicate servers are +allowed, so duplication is not checked. Executing this function with out +setting the \fBMEMCACHED_BEHAVIOR_USE_UDP\fP behavior will result in a +\fBMEMCACHED_INVALID_HOST_PROTOCOL\fP. +.sp +memcached_server_add_unix_socket() pushes a single UNIX socket into the +\fBmemcached_st\fP structure. This UNIX socket will be placed at the end. +Duplicate servers are allowed, so duplication is not checked. The length +of the filename must be one character less then MEMCACHED_MAX_HOST_LENGTH. +.sp +memcached_server_push() pushes an array of \fBmemcached_server_st\fP into +the \fBmemcached_st\fP structure. These servers will be placed at the +end. Duplicate servers are allowed, so duplication is not checked. A +copy is made of structure so the list provided (and any operations on +the list) are not saved. +.sp +memcached_server_by_key() allows you to provide a key and retrieve the +server which would be used for assignment. This structure is cloned +from its original structure and must be freed. If NULL is returned you +should consult *error. The returning structure should be freed with +memcached_server_free(). +.sp +memcached_server_get_last_disconnect() returns a pointer to the last server +for which there was a connection problem. It does not mean this particular +server is currently dead but if the library is reporting a server is, +the returned server is a very good candidate. +.sp +memcached_server_cursor() takes a memcached_st and loops through the +list of hosts currently in the cursor calling the list of callback +functions provided. You can optionally pass in a value via +context which will be provided to each callback function. An error +return from any callback will terminate the loop. memcached_server_cursor() +is passed the original caller memcached_st in its current state. +.SH RETURN +.sp +Varies, see particular functions. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Brian Aker, <\fI\%brian@tangent.org\fP> +.SH SEE ALSO +.sp +memcached(1) libmemcached(3) memcached_strerror(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcached_server_cursor.3 b/docs/man/memcached_server_cursor.3 new file mode 100644 index 00000000..d775a84f --- /dev/null +++ b/docs/man/memcached_server_cursor.3 @@ -0,0 +1,147 @@ +.TH "MEMCACHED_SERVER_CURSOR" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcached_server_cursor \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Manage server list +.SH LIBRARY +.sp +C Client Library for memcached (libmemcached, \-lmemcached) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +uint32_t memcached_server_count (memcached_st *ptr); + +memcached_return_t + memcached_server_add (memcached_st *ptr, + const char *hostname, + in_port_t port); + +memcached_return_t + memcached_server_add_udp (memcached_st *ptr, + const char *hostname, + in_port_t port); + +memcached_return_t + memcached_server_add_unix_socket (memcached_st *ptr, + const char *socket); + +memcached_return_t + memcached_server_push (memcached_st *ptr, + const memcached_server_st *list); + +memcached_server_instance_st + memcached_server_by_key (const memcached_st *ptr, + const char *key, + size_t key_length, + memcached_return_t *error); + +memcached_server_instance_st + memcached_server_get_last_disconnect (const memcached_st *ptr) + +memcached_return_t + memcached_server_cursor(const memcached_st *ptr, + const memcached_server_fn *callback, + void *context, + uint32_t number_of_callbacks); +.ft P +.fi +.SH DESCRIPTION +.sp +libmemcached(3) performs operations on a list of hosts. The order of these +hosts determine routing to keys. Functions are provided to add keys to +memcached_st structures. To manipulate lists of servers see +memcached_server_st(3). +.sp +memcached_server_count() provides you a count of the current number of +servers being used by a \fBmemcached_st\fP structure. +.sp +memcached_server_add() pushes a single TCP server into the \fBmemcached_st\fPstructure. This server will be placed at the end. Duplicate servers are +allowed, so duplication is not checked. Executing this function with the +\fBMEMCACHED_BEHAVIOR_USE_UDP\fP behavior set will result in a +\fBMEMCACHED_INVALID_HOST_PROTOCOL\fP. +.sp +memcached_server_add_udp() pushes a single UDP server into the \fBmemcached_st\fPstructure. This server will be placed at the end. Duplicate servers are +allowed, so duplication is not checked. Executing this function with out +setting the \fBMEMCACHED_BEHAVIOR_USE_UDP\fP behavior will result in a +\fBMEMCACHED_INVALID_HOST_PROTOCOL\fP. +.sp +memcached_server_add_unix_socket() pushes a single UNIX socket into the +\fBmemcached_st\fP structure. This UNIX socket will be placed at the end. +Duplicate servers are allowed, so duplication is not checked. The length +of the filename must be one character less then MEMCACHED_MAX_HOST_LENGTH. +.sp +memcached_server_push() pushes an array of \fBmemcached_server_st\fP into +the \fBmemcached_st\fP structure. These servers will be placed at the +end. Duplicate servers are allowed, so duplication is not checked. A +copy is made of structure so the list provided (and any operations on +the list) are not saved. +.sp +memcached_server_by_key() allows you to provide a key and retrieve the +server which would be used for assignment. This structure is cloned +from its original structure and must be freed. If NULL is returned you +should consult *error. The returning structure should be freed with +memcached_server_free(). +.sp +memcached_server_get_last_disconnect() returns a pointer to the last server +for which there was a connection problem. It does not mean this particular +server is currently dead but if the library is reporting a server is, +the returned server is a very good candidate. +.sp +memcached_server_cursor() takes a memcached_st and loops through the +list of hosts currently in the cursor calling the list of callback +functions provided. You can optionally pass in a value via +context which will be provided to each callback function. An error +return from any callback will terminate the loop. memcached_server_cursor() +is passed the original caller memcached_st in its current state. +.SH RETURN +.sp +Varies, see particular functions. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Brian Aker, <\fI\%brian@tangent.org\fP> +.SH SEE ALSO +.sp +memcached(1) libmemcached(3) memcached_strerror(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcached_server_list.3 b/docs/man/memcached_server_list.3 new file mode 100644 index 00000000..539c5e08 --- /dev/null +++ b/docs/man/memcached_server_list.3 @@ -0,0 +1,147 @@ +.TH "MEMCACHED_SERVER_LIST" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcached_server_list \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Manage server list +.SH LIBRARY +.sp +C Client Library for memcached (libmemcached, \-lmemcached) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +uint32_t memcached_server_count (memcached_st *ptr); + +memcached_return_t + memcached_server_add (memcached_st *ptr, + const char *hostname, + in_port_t port); + +memcached_return_t + memcached_server_add_udp (memcached_st *ptr, + const char *hostname, + in_port_t port); + +memcached_return_t + memcached_server_add_unix_socket (memcached_st *ptr, + const char *socket); + +memcached_return_t + memcached_server_push (memcached_st *ptr, + const memcached_server_st *list); + +memcached_server_instance_st + memcached_server_by_key (const memcached_st *ptr, + const char *key, + size_t key_length, + memcached_return_t *error); + +memcached_server_instance_st + memcached_server_get_last_disconnect (const memcached_st *ptr) + +memcached_return_t + memcached_server_cursor(const memcached_st *ptr, + const memcached_server_fn *callback, + void *context, + uint32_t number_of_callbacks); +.ft P +.fi +.SH DESCRIPTION +.sp +libmemcached(3) performs operations on a list of hosts. The order of these +hosts determine routing to keys. Functions are provided to add keys to +memcached_st structures. To manipulate lists of servers see +memcached_server_st(3). +.sp +memcached_server_count() provides you a count of the current number of +servers being used by a \fBmemcached_st\fP structure. +.sp +memcached_server_add() pushes a single TCP server into the \fBmemcached_st\fPstructure. This server will be placed at the end. Duplicate servers are +allowed, so duplication is not checked. Executing this function with the +\fBMEMCACHED_BEHAVIOR_USE_UDP\fP behavior set will result in a +\fBMEMCACHED_INVALID_HOST_PROTOCOL\fP. +.sp +memcached_server_add_udp() pushes a single UDP server into the \fBmemcached_st\fPstructure. This server will be placed at the end. Duplicate servers are +allowed, so duplication is not checked. Executing this function with out +setting the \fBMEMCACHED_BEHAVIOR_USE_UDP\fP behavior will result in a +\fBMEMCACHED_INVALID_HOST_PROTOCOL\fP. +.sp +memcached_server_add_unix_socket() pushes a single UNIX socket into the +\fBmemcached_st\fP structure. This UNIX socket will be placed at the end. +Duplicate servers are allowed, so duplication is not checked. The length +of the filename must be one character less then MEMCACHED_MAX_HOST_LENGTH. +.sp +memcached_server_push() pushes an array of \fBmemcached_server_st\fP into +the \fBmemcached_st\fP structure. These servers will be placed at the +end. Duplicate servers are allowed, so duplication is not checked. A +copy is made of structure so the list provided (and any operations on +the list) are not saved. +.sp +memcached_server_by_key() allows you to provide a key and retrieve the +server which would be used for assignment. This structure is cloned +from its original structure and must be freed. If NULL is returned you +should consult *error. The returning structure should be freed with +memcached_server_free(). +.sp +memcached_server_get_last_disconnect() returns a pointer to the last server +for which there was a connection problem. It does not mean this particular +server is currently dead but if the library is reporting a server is, +the returned server is a very good candidate. +.sp +memcached_server_cursor() takes a memcached_st and loops through the +list of hosts currently in the cursor calling the list of callback +functions provided. You can optionally pass in a value via +context which will be provided to each callback function. An error +return from any callback will terminate the loop. memcached_server_cursor() +is passed the original caller memcached_st in its current state. +.SH RETURN +.sp +Varies, see particular functions. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Brian Aker, <\fI\%brian@tangent.org\fP> +.SH SEE ALSO +.sp +memcached(1) libmemcached(3) memcached_strerror(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcached_server_list_append.3 b/docs/man/memcached_server_list_append.3 new file mode 100644 index 00000000..31c7bf99 --- /dev/null +++ b/docs/man/memcached_server_list_append.3 @@ -0,0 +1,114 @@ +.TH "MEMCACHED_SERVER_LIST_APPEND" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcached_server_list_append \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Manage server list +.SH LIBRARY +.sp +C Client Library for memcached (libmemcached, \-lmemcached) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +const memcached_server_instance_st + memcached_server_list (memcached_st *ptr); + +void memcached_server_list_free (memcached_server_list_st list); + +memcached_server_list_st + memcached_server_list_append (memcached_server_list_st list, + const char *hostname, + unsigned int port, + memcached_return_t *error); + +uint32_t memcached_server_list_count (memcached_server_list_st list); + +memcached_server_list_st memcached_servers_parse (const char *server_strings); + +const char *memcached_server_error (memcached_server_instance_st instance); + +DEPRECATED +void memcached_server_error_reset (memcached_server_instance_st list); +.ft P +.fi +.SH DESCRIPTION +.sp +libmemcached(3) operates on a list of hosts which are stored in +memcached_server_st structures. You should not modify these structures +directly. Functions are provided to modify these structures (and more can be +added, just ask!). +.sp +memcached_server_list() is used to provide an array of all defined hosts. +This was incorrectly documented as "requiring free()" up till version 0.39. +.sp +memcached_server_list_free() deallocates all memory associated with the array +of memcached_server_st that you passed to it. +.sp +memcached_server_list_append() adds a server to the end of a +memcached_server_st array. On error null will be returned and the +memcached_return_t pointer you passed into the function will be set with the +appropriate error. If the value of port is zero, it is set to the default +port of a memcached server. +.sp +memcached_servers_parse() takes a string, the type that is used for the +command line applications, and parse it to an array of memcached_server_st. +The example is "localhost, foo:555, foo, bar". All hosts except foo:555 will +be set to the default port, while that host will have a port of 555. +.sp +memcached_server_error() can be used to look at the text of the last error +message sent by the server to to the client. +.sp +Before version 0.39 theses functions used a memcache_server_st *. In 0.39 +memcached_server_st * was aliased to memcached_server_list_st. This was +done for a style reason/to help clean up some concepts in the code. +.SH RETURN +.sp +Varies, see particular functions. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Brian Aker, <\fI\%brian@tangent.org\fP> +.SH SEE ALSO +.sp +memcached(1) libmemcached(3) memcached_strerror(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcached_server_list_count.3 b/docs/man/memcached_server_list_count.3 new file mode 100644 index 00000000..c940517e --- /dev/null +++ b/docs/man/memcached_server_list_count.3 @@ -0,0 +1,114 @@ +.TH "MEMCACHED_SERVER_LIST_COUNT" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcached_server_list_count \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Manage server list +.SH LIBRARY +.sp +C Client Library for memcached (libmemcached, \-lmemcached) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +const memcached_server_instance_st + memcached_server_list (memcached_st *ptr); + +void memcached_server_list_free (memcached_server_list_st list); + +memcached_server_list_st + memcached_server_list_append (memcached_server_list_st list, + const char *hostname, + unsigned int port, + memcached_return_t *error); + +uint32_t memcached_server_list_count (memcached_server_list_st list); + +memcached_server_list_st memcached_servers_parse (const char *server_strings); + +const char *memcached_server_error (memcached_server_instance_st instance); + +DEPRECATED +void memcached_server_error_reset (memcached_server_instance_st list); +.ft P +.fi +.SH DESCRIPTION +.sp +libmemcached(3) operates on a list of hosts which are stored in +memcached_server_st structures. You should not modify these structures +directly. Functions are provided to modify these structures (and more can be +added, just ask!). +.sp +memcached_server_list() is used to provide an array of all defined hosts. +This was incorrectly documented as "requiring free()" up till version 0.39. +.sp +memcached_server_list_free() deallocates all memory associated with the array +of memcached_server_st that you passed to it. +.sp +memcached_server_list_append() adds a server to the end of a +memcached_server_st array. On error null will be returned and the +memcached_return_t pointer you passed into the function will be set with the +appropriate error. If the value of port is zero, it is set to the default +port of a memcached server. +.sp +memcached_servers_parse() takes a string, the type that is used for the +command line applications, and parse it to an array of memcached_server_st. +The example is "localhost, foo:555, foo, bar". All hosts except foo:555 will +be set to the default port, while that host will have a port of 555. +.sp +memcached_server_error() can be used to look at the text of the last error +message sent by the server to to the client. +.sp +Before version 0.39 theses functions used a memcache_server_st *. In 0.39 +memcached_server_st * was aliased to memcached_server_list_st. This was +done for a style reason/to help clean up some concepts in the code. +.SH RETURN +.sp +Varies, see particular functions. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Brian Aker, <\fI\%brian@tangent.org\fP> +.SH SEE ALSO +.sp +memcached(1) libmemcached(3) memcached_strerror(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcached_server_list_free.3 b/docs/man/memcached_server_list_free.3 new file mode 100644 index 00000000..0b95a4d0 --- /dev/null +++ b/docs/man/memcached_server_list_free.3 @@ -0,0 +1,114 @@ +.TH "MEMCACHED_SERVER_LIST_FREE" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcached_server_list_free \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Manage server list +.SH LIBRARY +.sp +C Client Library for memcached (libmemcached, \-lmemcached) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +const memcached_server_instance_st + memcached_server_list (memcached_st *ptr); + +void memcached_server_list_free (memcached_server_list_st list); + +memcached_server_list_st + memcached_server_list_append (memcached_server_list_st list, + const char *hostname, + unsigned int port, + memcached_return_t *error); + +uint32_t memcached_server_list_count (memcached_server_list_st list); + +memcached_server_list_st memcached_servers_parse (const char *server_strings); + +const char *memcached_server_error (memcached_server_instance_st instance); + +DEPRECATED +void memcached_server_error_reset (memcached_server_instance_st list); +.ft P +.fi +.SH DESCRIPTION +.sp +libmemcached(3) operates on a list of hosts which are stored in +memcached_server_st structures. You should not modify these structures +directly. Functions are provided to modify these structures (and more can be +added, just ask!). +.sp +memcached_server_list() is used to provide an array of all defined hosts. +This was incorrectly documented as "requiring free()" up till version 0.39. +.sp +memcached_server_list_free() deallocates all memory associated with the array +of memcached_server_st that you passed to it. +.sp +memcached_server_list_append() adds a server to the end of a +memcached_server_st array. On error null will be returned and the +memcached_return_t pointer you passed into the function will be set with the +appropriate error. If the value of port is zero, it is set to the default +port of a memcached server. +.sp +memcached_servers_parse() takes a string, the type that is used for the +command line applications, and parse it to an array of memcached_server_st. +The example is "localhost, foo:555, foo, bar". All hosts except foo:555 will +be set to the default port, while that host will have a port of 555. +.sp +memcached_server_error() can be used to look at the text of the last error +message sent by the server to to the client. +.sp +Before version 0.39 theses functions used a memcache_server_st *. In 0.39 +memcached_server_st * was aliased to memcached_server_list_st. This was +done for a style reason/to help clean up some concepts in the code. +.SH RETURN +.sp +Varies, see particular functions. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Brian Aker, <\fI\%brian@tangent.org\fP> +.SH SEE ALSO +.sp +memcached(1) libmemcached(3) memcached_strerror(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcached_server_push.3 b/docs/man/memcached_server_push.3 new file mode 100644 index 00000000..a04f80de --- /dev/null +++ b/docs/man/memcached_server_push.3 @@ -0,0 +1,147 @@ +.TH "MEMCACHED_SERVER_PUSH" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcached_server_push \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Manage server list +.SH LIBRARY +.sp +C Client Library for memcached (libmemcached, \-lmemcached) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +uint32_t memcached_server_count (memcached_st *ptr); + +memcached_return_t + memcached_server_add (memcached_st *ptr, + const char *hostname, + in_port_t port); + +memcached_return_t + memcached_server_add_udp (memcached_st *ptr, + const char *hostname, + in_port_t port); + +memcached_return_t + memcached_server_add_unix_socket (memcached_st *ptr, + const char *socket); + +memcached_return_t + memcached_server_push (memcached_st *ptr, + const memcached_server_st *list); + +memcached_server_instance_st + memcached_server_by_key (const memcached_st *ptr, + const char *key, + size_t key_length, + memcached_return_t *error); + +memcached_server_instance_st + memcached_server_get_last_disconnect (const memcached_st *ptr) + +memcached_return_t + memcached_server_cursor(const memcached_st *ptr, + const memcached_server_fn *callback, + void *context, + uint32_t number_of_callbacks); +.ft P +.fi +.SH DESCRIPTION +.sp +libmemcached(3) performs operations on a list of hosts. The order of these +hosts determine routing to keys. Functions are provided to add keys to +memcached_st structures. To manipulate lists of servers see +memcached_server_st(3). +.sp +memcached_server_count() provides you a count of the current number of +servers being used by a \fBmemcached_st\fP structure. +.sp +memcached_server_add() pushes a single TCP server into the \fBmemcached_st\fPstructure. This server will be placed at the end. Duplicate servers are +allowed, so duplication is not checked. Executing this function with the +\fBMEMCACHED_BEHAVIOR_USE_UDP\fP behavior set will result in a +\fBMEMCACHED_INVALID_HOST_PROTOCOL\fP. +.sp +memcached_server_add_udp() pushes a single UDP server into the \fBmemcached_st\fPstructure. This server will be placed at the end. Duplicate servers are +allowed, so duplication is not checked. Executing this function with out +setting the \fBMEMCACHED_BEHAVIOR_USE_UDP\fP behavior will result in a +\fBMEMCACHED_INVALID_HOST_PROTOCOL\fP. +.sp +memcached_server_add_unix_socket() pushes a single UNIX socket into the +\fBmemcached_st\fP structure. This UNIX socket will be placed at the end. +Duplicate servers are allowed, so duplication is not checked. The length +of the filename must be one character less then MEMCACHED_MAX_HOST_LENGTH. +.sp +memcached_server_push() pushes an array of \fBmemcached_server_st\fP into +the \fBmemcached_st\fP structure. These servers will be placed at the +end. Duplicate servers are allowed, so duplication is not checked. A +copy is made of structure so the list provided (and any operations on +the list) are not saved. +.sp +memcached_server_by_key() allows you to provide a key and retrieve the +server which would be used for assignment. This structure is cloned +from its original structure and must be freed. If NULL is returned you +should consult *error. The returning structure should be freed with +memcached_server_free(). +.sp +memcached_server_get_last_disconnect() returns a pointer to the last server +for which there was a connection problem. It does not mean this particular +server is currently dead but if the library is reporting a server is, +the returned server is a very good candidate. +.sp +memcached_server_cursor() takes a memcached_st and loops through the +list of hosts currently in the cursor calling the list of callback +functions provided. You can optionally pass in a value via +context which will be provided to each callback function. An error +return from any callback will terminate the loop. memcached_server_cursor() +is passed the original caller memcached_st in its current state. +.SH RETURN +.sp +Varies, see particular functions. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Brian Aker, <\fI\%brian@tangent.org\fP> +.SH SEE ALSO +.sp +memcached(1) libmemcached(3) memcached_strerror(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcached_server_st.3 b/docs/man/memcached_server_st.3 new file mode 100644 index 00000000..32a939fa --- /dev/null +++ b/docs/man/memcached_server_st.3 @@ -0,0 +1,147 @@ +.TH "MEMCACHED_SERVER_ST" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcached_server_st \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Manage server list +.SH LIBRARY +.sp +C Client Library for memcached (libmemcached, \-lmemcached) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +uint32_t memcached_server_count (memcached_st *ptr); + +memcached_return_t + memcached_server_add (memcached_st *ptr, + const char *hostname, + in_port_t port); + +memcached_return_t + memcached_server_add_udp (memcached_st *ptr, + const char *hostname, + in_port_t port); + +memcached_return_t + memcached_server_add_unix_socket (memcached_st *ptr, + const char *socket); + +memcached_return_t + memcached_server_push (memcached_st *ptr, + const memcached_server_st *list); + +memcached_server_instance_st + memcached_server_by_key (const memcached_st *ptr, + const char *key, + size_t key_length, + memcached_return_t *error); + +memcached_server_instance_st + memcached_server_get_last_disconnect (const memcached_st *ptr) + +memcached_return_t + memcached_server_cursor(const memcached_st *ptr, + const memcached_server_fn *callback, + void *context, + uint32_t number_of_callbacks); +.ft P +.fi +.SH DESCRIPTION +.sp +libmemcached(3) performs operations on a list of hosts. The order of these +hosts determine routing to keys. Functions are provided to add keys to +memcached_st structures. To manipulate lists of servers see +memcached_server_st(3). +.sp +memcached_server_count() provides you a count of the current number of +servers being used by a \fBmemcached_st\fP structure. +.sp +memcached_server_add() pushes a single TCP server into the \fBmemcached_st\fPstructure. This server will be placed at the end. Duplicate servers are +allowed, so duplication is not checked. Executing this function with the +\fBMEMCACHED_BEHAVIOR_USE_UDP\fP behavior set will result in a +\fBMEMCACHED_INVALID_HOST_PROTOCOL\fP. +.sp +memcached_server_add_udp() pushes a single UDP server into the \fBmemcached_st\fPstructure. This server will be placed at the end. Duplicate servers are +allowed, so duplication is not checked. Executing this function with out +setting the \fBMEMCACHED_BEHAVIOR_USE_UDP\fP behavior will result in a +\fBMEMCACHED_INVALID_HOST_PROTOCOL\fP. +.sp +memcached_server_add_unix_socket() pushes a single UNIX socket into the +\fBmemcached_st\fP structure. This UNIX socket will be placed at the end. +Duplicate servers are allowed, so duplication is not checked. The length +of the filename must be one character less then MEMCACHED_MAX_HOST_LENGTH. +.sp +memcached_server_push() pushes an array of \fBmemcached_server_st\fP into +the \fBmemcached_st\fP structure. These servers will be placed at the +end. Duplicate servers are allowed, so duplication is not checked. A +copy is made of structure so the list provided (and any operations on +the list) are not saved. +.sp +memcached_server_by_key() allows you to provide a key and retrieve the +server which would be used for assignment. This structure is cloned +from its original structure and must be freed. If NULL is returned you +should consult *error. The returning structure should be freed with +memcached_server_free(). +.sp +memcached_server_get_last_disconnect() returns a pointer to the last server +for which there was a connection problem. It does not mean this particular +server is currently dead but if the library is reporting a server is, +the returned server is a very good candidate. +.sp +memcached_server_cursor() takes a memcached_st and loops through the +list of hosts currently in the cursor calling the list of callback +functions provided. You can optionally pass in a value via +context which will be provided to each callback function. An error +return from any callback will terminate the loop. memcached_server_cursor() +is passed the original caller memcached_st in its current state. +.SH RETURN +.sp +Varies, see particular functions. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Brian Aker, <\fI\%brian@tangent.org\fP> +.SH SEE ALSO +.sp +memcached(1) libmemcached(3) memcached_strerror(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcached_servers.3 b/docs/man/memcached_servers.3 new file mode 100644 index 00000000..7d9ffaa1 --- /dev/null +++ b/docs/man/memcached_servers.3 @@ -0,0 +1,147 @@ +.TH "MEMCACHED_SERVERS" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcached_servers \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Manage server list +.SH LIBRARY +.sp +C Client Library for memcached (libmemcached, \-lmemcached) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +uint32_t memcached_server_count (memcached_st *ptr); + +memcached_return_t + memcached_server_add (memcached_st *ptr, + const char *hostname, + in_port_t port); + +memcached_return_t + memcached_server_add_udp (memcached_st *ptr, + const char *hostname, + in_port_t port); + +memcached_return_t + memcached_server_add_unix_socket (memcached_st *ptr, + const char *socket); + +memcached_return_t + memcached_server_push (memcached_st *ptr, + const memcached_server_st *list); + +memcached_server_instance_st + memcached_server_by_key (const memcached_st *ptr, + const char *key, + size_t key_length, + memcached_return_t *error); + +memcached_server_instance_st + memcached_server_get_last_disconnect (const memcached_st *ptr) + +memcached_return_t + memcached_server_cursor(const memcached_st *ptr, + const memcached_server_fn *callback, + void *context, + uint32_t number_of_callbacks); +.ft P +.fi +.SH DESCRIPTION +.sp +libmemcached(3) performs operations on a list of hosts. The order of these +hosts determine routing to keys. Functions are provided to add keys to +memcached_st structures. To manipulate lists of servers see +memcached_server_st(3). +.sp +memcached_server_count() provides you a count of the current number of +servers being used by a \fBmemcached_st\fP structure. +.sp +memcached_server_add() pushes a single TCP server into the \fBmemcached_st\fPstructure. This server will be placed at the end. Duplicate servers are +allowed, so duplication is not checked. Executing this function with the +\fBMEMCACHED_BEHAVIOR_USE_UDP\fP behavior set will result in a +\fBMEMCACHED_INVALID_HOST_PROTOCOL\fP. +.sp +memcached_server_add_udp() pushes a single UDP server into the \fBmemcached_st\fPstructure. This server will be placed at the end. Duplicate servers are +allowed, so duplication is not checked. Executing this function with out +setting the \fBMEMCACHED_BEHAVIOR_USE_UDP\fP behavior will result in a +\fBMEMCACHED_INVALID_HOST_PROTOCOL\fP. +.sp +memcached_server_add_unix_socket() pushes a single UNIX socket into the +\fBmemcached_st\fP structure. This UNIX socket will be placed at the end. +Duplicate servers are allowed, so duplication is not checked. The length +of the filename must be one character less then MEMCACHED_MAX_HOST_LENGTH. +.sp +memcached_server_push() pushes an array of \fBmemcached_server_st\fP into +the \fBmemcached_st\fP structure. These servers will be placed at the +end. Duplicate servers are allowed, so duplication is not checked. A +copy is made of structure so the list provided (and any operations on +the list) are not saved. +.sp +memcached_server_by_key() allows you to provide a key and retrieve the +server which would be used for assignment. This structure is cloned +from its original structure and must be freed. If NULL is returned you +should consult *error. The returning structure should be freed with +memcached_server_free(). +.sp +memcached_server_get_last_disconnect() returns a pointer to the last server +for which there was a connection problem. It does not mean this particular +server is currently dead but if the library is reporting a server is, +the returned server is a very good candidate. +.sp +memcached_server_cursor() takes a memcached_st and loops through the +list of hosts currently in the cursor calling the list of callback +functions provided. You can optionally pass in a value via +context which will be provided to each callback function. An error +return from any callback will terminate the loop. memcached_server_cursor() +is passed the original caller memcached_st in its current state. +.SH RETURN +.sp +Varies, see particular functions. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Brian Aker, <\fI\%brian@tangent.org\fP> +.SH SEE ALSO +.sp +memcached(1) libmemcached(3) memcached_strerror(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcached_servers_parse.3 b/docs/man/memcached_servers_parse.3 new file mode 100644 index 00000000..e5133e8f --- /dev/null +++ b/docs/man/memcached_servers_parse.3 @@ -0,0 +1,114 @@ +.TH "MEMCACHED_SERVERS_PARSE" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcached_servers_parse \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Manage server list +.SH LIBRARY +.sp +C Client Library for memcached (libmemcached, \-lmemcached) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +const memcached_server_instance_st + memcached_server_list (memcached_st *ptr); + +void memcached_server_list_free (memcached_server_list_st list); + +memcached_server_list_st + memcached_server_list_append (memcached_server_list_st list, + const char *hostname, + unsigned int port, + memcached_return_t *error); + +uint32_t memcached_server_list_count (memcached_server_list_st list); + +memcached_server_list_st memcached_servers_parse (const char *server_strings); + +const char *memcached_server_error (memcached_server_instance_st instance); + +DEPRECATED +void memcached_server_error_reset (memcached_server_instance_st list); +.ft P +.fi +.SH DESCRIPTION +.sp +libmemcached(3) operates on a list of hosts which are stored in +memcached_server_st structures. You should not modify these structures +directly. Functions are provided to modify these structures (and more can be +added, just ask!). +.sp +memcached_server_list() is used to provide an array of all defined hosts. +This was incorrectly documented as "requiring free()" up till version 0.39. +.sp +memcached_server_list_free() deallocates all memory associated with the array +of memcached_server_st that you passed to it. +.sp +memcached_server_list_append() adds a server to the end of a +memcached_server_st array. On error null will be returned and the +memcached_return_t pointer you passed into the function will be set with the +appropriate error. If the value of port is zero, it is set to the default +port of a memcached server. +.sp +memcached_servers_parse() takes a string, the type that is used for the +command line applications, and parse it to an array of memcached_server_st. +The example is "localhost, foo:555, foo, bar". All hosts except foo:555 will +be set to the default port, while that host will have a port of 555. +.sp +memcached_server_error() can be used to look at the text of the last error +message sent by the server to to the client. +.sp +Before version 0.39 theses functions used a memcache_server_st *. In 0.39 +memcached_server_st * was aliased to memcached_server_list_st. This was +done for a style reason/to help clean up some concepts in the code. +.SH RETURN +.sp +Varies, see particular functions. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Brian Aker, <\fI\%brian@tangent.org\fP> +.SH SEE ALSO +.sp +memcached(1) libmemcached(3) memcached_strerror(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcached_servers_reset.3 b/docs/man/memcached_servers_reset.3 new file mode 100644 index 00000000..d48147b1 --- /dev/null +++ b/docs/man/memcached_servers_reset.3 @@ -0,0 +1,99 @@ +.TH "MEMCACHED_SERVERS_RESET" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcached_servers_reset \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Create a memcached_st structure +.SH LIBRARY +.sp +C Client Library for memcached (libmemcached, \-lmemcached) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +memcached_st *memcached_create (memcached_st *ptr); + +void memcached_free (memcached_st *ptr); + +memcached_st *memcached_clone (memcached_st *destination, memcached_st *source); + +void memcached_servers_reset(memcached_st); +.ft P +.fi +.SH DESCRIPTION +.sp +memcached_create() is used to create a \fBmemcached_st\fP structure that will then +be used by other libmemcached(3) functions to communicate with the server. You +should either pass a statically declared \fBmemcached_st\fP to memcached_create() or +a NULL. If a NULL passed in then a structure is allocated for you. +.sp +memcached_clone() is similar to memcached_create(3) but it copies the +defaults and list of servers from the source \fBmemcached_st\fP. If you pass a null as +the argument for the source to clone, it is the same as a call to memcached_create(). +If the destination argument is NULL a \fBmemcached_st\fP will be allocated for you. +.sp +memcached_servers_reset() allows you to zero out the list of servers that +the memcached_st has. +.sp +To clean up memory associated with a \fBmemcached_st\fP structure you should pass +it to memcached_free() when you are finished using it. memcached_free() is +the only way to make sure all memory is deallocated when you finish using +the structure. +.sp +You may wish to avoid using memcached_create(3) or memcached_clone(3) with a +stack based allocation. The most common issues related to ABI safety involve +heap allocated structures. +.SH RETURN +.sp +memcached_create() returns a pointer to the memcached_st that was created +(or initialized). On an allocation failure, it returns NULL. +.sp +memcached_clone() returns a pointer to the memcached_st that was created +(or initialized). On an allocation failure, it returns NULL. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Brian Aker, <\fI\%brian@tangent.org\fP> +.SH SEE ALSO +.sp +memcached(1) libmemcached(3) memcached_strerror(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcached_set.3 b/docs/man/memcached_set.3 new file mode 100644 index 00000000..68820b7d --- /dev/null +++ b/docs/man/memcached_set.3 @@ -0,0 +1,216 @@ +.TH "MEMCACHED_SET" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcached_set \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Store value on server +.SH LIBRARY +.sp +C Client Library for memcached (libmemcached, \-lmemcached) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +memcached_return_t + memcached_set (memcached_st *ptr, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + +memcached_return_t + memcached_add (memcached_st *ptr, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + +memcached_return_t + memcached_replace (memcached_st *ptr, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + +memcached_return_t + memcached_prepend(memcached_st *ptr, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags) + +memcached_return_t + memcached_append(memcached_st *ptr, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags) +memcached_return_t + memcached_cas(memcached_st *ptr, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags, + uint64_t cas); + +memcached_return_t + memcached_set_by_key(memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + +memcached_return_t + memcached_add_by_key(memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + +memcached_return_t + memcached_replace_by_key(memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + +memcached_return_t + memcached_prepend_by_key(memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + +memcached_return_t + memcached_append_by_key(memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + +memcached_return_t + memcached_cas_by_key(memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags, + uint64_t cas); +.ft P +.fi +.SH DESCRIPTION +.sp +memcached_set(), memcached_add(), and memcached_replace() are all used to +store information on the server. All methods take a key, and its length to +store the object. Keys are currently limited to 250 characters by the +memcached(1) server. You must also supply a value and a length. Optionally you +may support an expiration time for the object and a 16 byte value (it is +meant to be used as a bitmap). +.sp +memcached_set() will write an object to the server. If an object already +exists it will overwrite what is in the server. If the object does not exist +it will be written. If you are using the non\-blocking mode this function +will always return true unless a network error occurs. +.sp +memcached_replace() replaces an object on the server. If the object is not +found on the server an error occurs. +.sp +memcached_add() adds an object to the server. If the object is found on the +server an error occurs, otherwise the value is stored. +.sp +memcached_prepend() places a segment of data before the last piece of data +stored. Currently expiration and key are not used in the server. +.sp +memcached_append() places a segment of data at the end of the last piece of +data stored. Currently expiration and key are not used in the server. +.sp +memcached_cas() overwrites data in the server as long as the "cas" value is +still the same in the server. You can get the cas value of a result by +calling memcached_result_cas() on a memcached_result_st(3) structure. At the point +that this note was written cas is still buggy in memached. Turning on support +for it in libmemcached(3) is optional. Please see memcached_set() for +information on how to do this. +.sp +memcached_set_by_key(), memcached_add_by_key(), memcached_replace_by_key(), +memcached_prepend_by_key(), memcached_append_by_key_by_key(), +memcached_cas_by_key() methods all behave in a similar method as the non key +methods. The difference is that they use their master_key parameter to map +objects to particular servers. +.sp +If you are looking for performance, memcached_set() with non\-blocking IO is +the fastest way to store data on the server. +.sp +All of the above functions are supported with the \fBMEMCACHED_BEHAVIOR_USE_UDP\fPbehavior enabled. But when using these operations with this behavior on, there +are limits to the size of the payload being sent to the server. The reason for +these limits is that the Memcahed Server does not allow multi\-datagram requests +and the current server implementation sets a datagram size to 1400 bytes. Due +to protocol overhead, the actual limit of the user supplied data is less than +1400 bytes and depends on the protocol in use as well as the operation being +executed. When running with the binary protocol, \(ga\(ga MEMCACHED_BEHAVIOR_BINARY_PROTOCOL\(ga\(ga, +the size of the key,value, flags and expiry combined may not exceed 1368 bytes. +When running with the ASCII protocol, the exact limit fluctuates depending on +which function is being executed and whether the function is a cas operation +or not. For non\-cas ASCII set operations, there are at least 1335 bytes available +to split among the key, key_prefix, and value; for cas ASCII operations there are +at least 1318 bytes available to split among the key, key_prefix and value. If the +total size of the command, including overhead, exceeds 1400 bytes, a \fBMEMCACHED_WRITE_FAILURE\fPwill be returned. +.SH RETURN +.sp +All methods return a value of type \fBmemcached_return_t\fP. +On success the value will be \fBMEMCACHED_SUCCESS\fP. +Use memcached_strerror() to translate this value to a printable string. +.sp +For memcached_replace() and memcached_add(), \fBMEMCACHED_NOTSTORED\fP is a +legitmate error in the case of a collision. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Brian Aker, <\fI\%brian@tangent.org\fP> +.SH SEE ALSO +.sp +memcached(1) libmemached(3) memcached_strerror(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcached_set_by_key.3 b/docs/man/memcached_set_by_key.3 new file mode 100644 index 00000000..c919aca6 --- /dev/null +++ b/docs/man/memcached_set_by_key.3 @@ -0,0 +1,216 @@ +.TH "MEMCACHED_SET_BY_KEY" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcached_set_by_key \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Store value on server +.SH LIBRARY +.sp +C Client Library for memcached (libmemcached, \-lmemcached) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +memcached_return_t + memcached_set (memcached_st *ptr, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + +memcached_return_t + memcached_add (memcached_st *ptr, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + +memcached_return_t + memcached_replace (memcached_st *ptr, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + +memcached_return_t + memcached_prepend(memcached_st *ptr, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags) + +memcached_return_t + memcached_append(memcached_st *ptr, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags) +memcached_return_t + memcached_cas(memcached_st *ptr, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags, + uint64_t cas); + +memcached_return_t + memcached_set_by_key(memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + +memcached_return_t + memcached_add_by_key(memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + +memcached_return_t + memcached_replace_by_key(memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + +memcached_return_t + memcached_prepend_by_key(memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + +memcached_return_t + memcached_append_by_key(memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + +memcached_return_t + memcached_cas_by_key(memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags, + uint64_t cas); +.ft P +.fi +.SH DESCRIPTION +.sp +memcached_set(), memcached_add(), and memcached_replace() are all used to +store information on the server. All methods take a key, and its length to +store the object. Keys are currently limited to 250 characters by the +memcached(1) server. You must also supply a value and a length. Optionally you +may support an expiration time for the object and a 16 byte value (it is +meant to be used as a bitmap). +.sp +memcached_set() will write an object to the server. If an object already +exists it will overwrite what is in the server. If the object does not exist +it will be written. If you are using the non\-blocking mode this function +will always return true unless a network error occurs. +.sp +memcached_replace() replaces an object on the server. If the object is not +found on the server an error occurs. +.sp +memcached_add() adds an object to the server. If the object is found on the +server an error occurs, otherwise the value is stored. +.sp +memcached_prepend() places a segment of data before the last piece of data +stored. Currently expiration and key are not used in the server. +.sp +memcached_append() places a segment of data at the end of the last piece of +data stored. Currently expiration and key are not used in the server. +.sp +memcached_cas() overwrites data in the server as long as the "cas" value is +still the same in the server. You can get the cas value of a result by +calling memcached_result_cas() on a memcached_result_st(3) structure. At the point +that this note was written cas is still buggy in memached. Turning on support +for it in libmemcached(3) is optional. Please see memcached_set() for +information on how to do this. +.sp +memcached_set_by_key(), memcached_add_by_key(), memcached_replace_by_key(), +memcached_prepend_by_key(), memcached_append_by_key_by_key(), +memcached_cas_by_key() methods all behave in a similar method as the non key +methods. The difference is that they use their master_key parameter to map +objects to particular servers. +.sp +If you are looking for performance, memcached_set() with non\-blocking IO is +the fastest way to store data on the server. +.sp +All of the above functions are supported with the \fBMEMCACHED_BEHAVIOR_USE_UDP\fPbehavior enabled. But when using these operations with this behavior on, there +are limits to the size of the payload being sent to the server. The reason for +these limits is that the Memcahed Server does not allow multi\-datagram requests +and the current server implementation sets a datagram size to 1400 bytes. Due +to protocol overhead, the actual limit of the user supplied data is less than +1400 bytes and depends on the protocol in use as well as the operation being +executed. When running with the binary protocol, \(ga\(ga MEMCACHED_BEHAVIOR_BINARY_PROTOCOL\(ga\(ga, +the size of the key,value, flags and expiry combined may not exceed 1368 bytes. +When running with the ASCII protocol, the exact limit fluctuates depending on +which function is being executed and whether the function is a cas operation +or not. For non\-cas ASCII set operations, there are at least 1335 bytes available +to split among the key, key_prefix, and value; for cas ASCII operations there are +at least 1318 bytes available to split among the key, key_prefix and value. If the +total size of the command, including overhead, exceeds 1400 bytes, a \fBMEMCACHED_WRITE_FAILURE\fPwill be returned. +.SH RETURN +.sp +All methods return a value of type \fBmemcached_return_t\fP. +On success the value will be \fBMEMCACHED_SUCCESS\fP. +Use memcached_strerror() to translate this value to a printable string. +.sp +For memcached_replace() and memcached_add(), \fBMEMCACHED_NOTSTORED\fP is a +legitmate error in the case of a collision. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Brian Aker, <\fI\%brian@tangent.org\fP> +.SH SEE ALSO +.sp +memcached(1) libmemached(3) memcached_strerror(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcached_set_memory_allocators.3 b/docs/man/memcached_set_memory_allocators.3 new file mode 100644 index 00000000..f56caa4a --- /dev/null +++ b/docs/man/memcached_set_memory_allocators.3 @@ -0,0 +1,129 @@ +.TH "MEMCACHED_SET_MEMORY_ALLOCATORS" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcached_set_memory_allocators \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Manage memory allocator functions +.SH LIBRARY +.sp +C Client Library for memcached (libmemcached, \-lmemcached) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +memcached_return_t + memcached_set_memory_allocators (memcached_st *ptr, + memcached_malloc_fn mem_malloc, + memcached_free_fn mem_free, + memcached_realloc_fn mem_realloc, + memcached_calloc_fn mem_calloc, + void *context); + +void + memcached_get_memory_allocators (memcached_st *ptr, + memcached_malloc_fn *mem_malloc, + memcached_free_fn *mem_free, + memcached_realloc_fn *mem_realloc, + memcached_calloc_fn *mem_calloc); + +void * + memcached_get_memory_allocators_context(const memcached_st *ptr); + +void * + (*memcached_malloc_fn) (memcached_st *ptr, const size_t size, + void *context); + +void * + (*memcached_realloc_fn) (memcached_st *ptr, void *mem, + const size_t size, + void *context); + +void + (*memcached_free_fn) (memcached_st *ptr, void *mem, + void *context); + +void * +(*memcached_calloc_fn) (memcached_st *ptr, + size_t nelem, + const size_t elsize, + void *context); +.ft P +.fi +.SH DESCRIPTION +.sp +libmemcached(3) allows you to specify your own memory allocators optimized +for your application. +.sp +memcached_set_memory_allocators() is used to set the memory allocators used +by the memcached instance specified by ptr. Please note that you cannot +override only one of the memory allocators, you have to specify a complete +new set if you want to override one of them. All of the memory allocation +functions should behave as specified in the C99 standard. Specify NULL as +all functions to reset them to the default values. +.sp +memcached_get_memory_allocators() is used to get the currently used memory +allocators by a mamcached handle. +.sp +memcached_get_memory_allocators_context() returns the void * that was +passed in during the call to memcached_set_memory_allocators(). +.sp +The first argument to the memory allocator functions is a pointer to a +memcached structure, the is passed as const and you will need to clone +it in order to make use of any operation which would modify it. +.SH NOTES +.sp +In version 0.38 all functions were modified to have a context void pointer +passed to them. This was so that customer allocators could have their +own space for memory. +.SH RETURN +.sp +memcached_set_memory_allocators() return MEMCACHED_SUCCESS upon success, +and MEMCACHED_FAILURE if you don\(aqt pass a complete set of function pointers. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Trond Norbye, <\fI\%trond.norbye@gmail.com\fP> +Brian Aker, <\fI\%brian@tangent\fP.orf +.SH SEE ALSO +.sp +memcached(1) libmemcached(3) memcached_get_user_data(3) memcached_set_user_data(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcached_set_memory_allocators_context.3 b/docs/man/memcached_set_memory_allocators_context.3 new file mode 100644 index 00000000..679f6ce4 --- /dev/null +++ b/docs/man/memcached_set_memory_allocators_context.3 @@ -0,0 +1,129 @@ +.TH "MEMCACHED_SET_MEMORY_ALLOCATORS_CONTEXT" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcached_set_memory_allocators_context \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Manage memory allocator functions +.SH LIBRARY +.sp +C Client Library for memcached (libmemcached, \-lmemcached) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +memcached_return_t + memcached_set_memory_allocators (memcached_st *ptr, + memcached_malloc_fn mem_malloc, + memcached_free_fn mem_free, + memcached_realloc_fn mem_realloc, + memcached_calloc_fn mem_calloc, + void *context); + +void + memcached_get_memory_allocators (memcached_st *ptr, + memcached_malloc_fn *mem_malloc, + memcached_free_fn *mem_free, + memcached_realloc_fn *mem_realloc, + memcached_calloc_fn *mem_calloc); + +void * + memcached_get_memory_allocators_context(const memcached_st *ptr); + +void * + (*memcached_malloc_fn) (memcached_st *ptr, const size_t size, + void *context); + +void * + (*memcached_realloc_fn) (memcached_st *ptr, void *mem, + const size_t size, + void *context); + +void + (*memcached_free_fn) (memcached_st *ptr, void *mem, + void *context); + +void * +(*memcached_calloc_fn) (memcached_st *ptr, + size_t nelem, + const size_t elsize, + void *context); +.ft P +.fi +.SH DESCRIPTION +.sp +libmemcached(3) allows you to specify your own memory allocators optimized +for your application. +.sp +memcached_set_memory_allocators() is used to set the memory allocators used +by the memcached instance specified by ptr. Please note that you cannot +override only one of the memory allocators, you have to specify a complete +new set if you want to override one of them. All of the memory allocation +functions should behave as specified in the C99 standard. Specify NULL as +all functions to reset them to the default values. +.sp +memcached_get_memory_allocators() is used to get the currently used memory +allocators by a mamcached handle. +.sp +memcached_get_memory_allocators_context() returns the void * that was +passed in during the call to memcached_set_memory_allocators(). +.sp +The first argument to the memory allocator functions is a pointer to a +memcached structure, the is passed as const and you will need to clone +it in order to make use of any operation which would modify it. +.SH NOTES +.sp +In version 0.38 all functions were modified to have a context void pointer +passed to them. This was so that customer allocators could have their +own space for memory. +.SH RETURN +.sp +memcached_set_memory_allocators() return MEMCACHED_SUCCESS upon success, +and MEMCACHED_FAILURE if you don\(aqt pass a complete set of function pointers. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Trond Norbye, <\fI\%trond.norbye@gmail.com\fP> +Brian Aker, <\fI\%brian@tangent\fP.orf +.SH SEE ALSO +.sp +memcached(1) libmemcached(3) memcached_get_user_data(3) memcached_set_user_data(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcached_set_sasl_callbacks.3 b/docs/man/memcached_set_sasl_callbacks.3 new file mode 100644 index 00000000..db3f695f --- /dev/null +++ b/docs/man/memcached_set_sasl_callbacks.3 @@ -0,0 +1,94 @@ +.TH "MEMCACHED_SET_SASL_CALLBACKS" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcached_set_sasl_callbacks \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +SASL support +.SH LIBRARY +.sp +C Client Library for memcached (libmemcached, \-lmemcached) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +void memcached_set_sasl_callbacks(memcached_st *ptr, + const sasl_callback_t *callbacks) + +const sasl_callback_t *memcached_get_sasl_callbacks(memcached_st *ptr) + +memcached_return memcached_set_sasl_auth_data(memcached_st *ptr, + const char *username, + const char *password) +memcached_return memcached_destroy_sasl_auth_data(memcached_st *ptr) +.ft P +.fi +.SH DESCRIPTION +.sp +libmemcached(3) allows you to plug in your own callbacks function used by +libsasl to perform SASL authentication. +.sp +Please note that SASL requires the memcached binary protocol, and you have +to specify the callbacks before you connect to the server. +.sp +memcached_set_sasl_auth_data() is a helper function for you defining +the basic functionality for you, but it will store the username and password +in memory. If you choose to use this method you have to call +memcached_destroy_sasl_auth_data before calling memcached_free to avoid +a memory leak. You should NOT call memcached_destroy_sasl_auth_data if you +specify your own callback function with memcached_set_sasl_callbacks(). +.sp +You as a client user have to initialize libsasl by using sasl_client_init +before enabling it in libmemcached, and you have to shut down libsasl by +calling sasl_done() when you are done using SASL from libmemcached. +.SH RETURN +.sp +memcached_get_sasl_callbacks() returns the callbacks currently used +by this memcached handle. +memcached_get_sasl_set_auth_data() returns MEMCACHED_SUCCESS upon success. +.SH HOME +.sp +To find out more information please check: +\fI\%http://libmemcached.org/\fP +.SH AUTHOR +.sp +Trond Norbye, <\fI\%trond.norbye@gmail.com\fP> +.SH SEE ALSO +.sp +memcached(1) libmemcached(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcached_set_user_data.3 b/docs/man/memcached_set_user_data.3 new file mode 100644 index 00000000..3fe9d5a6 --- /dev/null +++ b/docs/man/memcached_set_user_data.3 @@ -0,0 +1,82 @@ +.TH "MEMCACHED_SET_USER_DATA" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcached_set_user_data \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Manage user specific data +.SH LIBRARY +.sp +C Client Library for memcached (libmemcached, \-lmemcached) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +void *memcached_get_user_data (memcached_st *ptr); + +void *memcached_set_user_data (memcached_st *ptr, void *data); +.ft P +.fi +.SH DESCRIPTION +.sp +libmemcached(3) allows you to store a pointer to a user specific data inside +the memcached_st structure. +.sp +memcached_set_user_data() is used to set the user specific data in the +memcached_st structure. +.sp +memcached_get_user_data() is used to retrieve the user specific data in +the memcached_st structure. +.SH RETURN +.sp +memcached_set_user_data() returns the previous value of the user specific +data. +.sp +memcached_get_user_data() returns the current value uf the user specific +data. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Trond Norbye, <\fI\%trond.norbye@gmail.com\fP> +.SH SEE ALSO +.sp +memcached(1) libmemcached(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcached_stat.3 b/docs/man/memcached_stat.3 new file mode 100644 index 00000000..7d5b82c7 --- /dev/null +++ b/docs/man/memcached_stat.3 @@ -0,0 +1,127 @@ +.TH "MEMCACHED_STAT" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcached_stat \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Get memcached statistics +.SH LIBRARY +.sp +C Client Library for memcached (libmemcached, \-lmemcached) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +memcached_stat_st *memcached_stat (memcached_st *ptr, + char *args, + memcached_return_t *error); + +memcached_return_t memcached_stat_servername (memcached_stat_st *stat, + char *args, + const char *hostname, + unsigned int port); + +char * + memcached_stat_get_value (memcached_st *ptr, + memcached_stat_st *stat, + const char *key, + memcached_return_t *error); + +char ** + memcached_stat_get_keys (memcached_st *ptr, + memcached_stat_st *stat, + memcached_return_t *error); + +memcached_return_t + memcached_stat_execute (memcached_st *memc, + const char *args, + memcached_stat_fn func, + void *context); +.ft P +.fi +.SH DESCRIPTION +.sp +libmemcached(3) has the ability to query a memcached server (or collection +of servers) for their current state. Queries to find state return a +\fBmemcached_stat_st\fP structure. You are responsible for freeing this structure. +While it is possible to access the structure directly it is not advisable. + +.SH SEE ALSO +.sp +memcached(1) libmemcached(3) memcached_strerror(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcached_stat_execute.3 b/docs/man/memcached_stat_execute.3 new file mode 100644 index 00000000..d201063f --- /dev/null +++ b/docs/man/memcached_stat_execute.3 @@ -0,0 +1,127 @@ +.TH "MEMCACHED_STAT_EXECUTE" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcached_stat_execute \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Get memcached statistics +.SH LIBRARY +.sp +C Client Library for memcached (libmemcached, \-lmemcached) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +memcached_stat_st *memcached_stat (memcached_st *ptr, + char *args, + memcached_return_t *error); + +memcached_return_t memcached_stat_servername (memcached_stat_st *stat, + char *args, + const char *hostname, + unsigned int port); + +char * + memcached_stat_get_value (memcached_st *ptr, + memcached_stat_st *stat, + const char *key, + memcached_return_t *error); + +char ** + memcached_stat_get_keys (memcached_st *ptr, + memcached_stat_st *stat, + memcached_return_t *error); + +memcached_return_t + memcached_stat_execute (memcached_st *memc, + const char *args, + memcached_stat_fn func, + void *context); +.ft P +.fi +.SH DESCRIPTION +.sp +libmemcached(3) has the ability to query a memcached server (or collection +of servers) for their current state. Queries to find state return a +\fBmemcached_stat_st\fP structure. You are responsible for freeing this structure. +While it is possible to access the structure directly it is not advisable. + +.SH SEE ALSO +.sp +memcached(1) libmemcached(3) memcached_strerror(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcached_stat_get_keys.3 b/docs/man/memcached_stat_get_keys.3 new file mode 100644 index 00000000..1d65d129 --- /dev/null +++ b/docs/man/memcached_stat_get_keys.3 @@ -0,0 +1,127 @@ +.TH "MEMCACHED_STAT_GET_KEYS" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcached_stat_get_keys \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Get memcached statistics +.SH LIBRARY +.sp +C Client Library for memcached (libmemcached, \-lmemcached) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +memcached_stat_st *memcached_stat (memcached_st *ptr, + char *args, + memcached_return_t *error); + +memcached_return_t memcached_stat_servername (memcached_stat_st *stat, + char *args, + const char *hostname, + unsigned int port); + +char * + memcached_stat_get_value (memcached_st *ptr, + memcached_stat_st *stat, + const char *key, + memcached_return_t *error); + +char ** + memcached_stat_get_keys (memcached_st *ptr, + memcached_stat_st *stat, + memcached_return_t *error); + +memcached_return_t + memcached_stat_execute (memcached_st *memc, + const char *args, + memcached_stat_fn func, + void *context); +.ft P +.fi +.SH DESCRIPTION +.sp +libmemcached(3) has the ability to query a memcached server (or collection +of servers) for their current state. Queries to find state return a +\fBmemcached_stat_st\fP structure. You are responsible for freeing this structure. +While it is possible to access the structure directly it is not advisable. + +.SH SEE ALSO +.sp +memcached(1) libmemcached(3) memcached_strerror(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcached_stat_get_value.3 b/docs/man/memcached_stat_get_value.3 new file mode 100644 index 00000000..e3a8c8c9 --- /dev/null +++ b/docs/man/memcached_stat_get_value.3 @@ -0,0 +1,127 @@ +.TH "MEMCACHED_STAT_GET_VALUE" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcached_stat_get_value \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Get memcached statistics +.SH LIBRARY +.sp +C Client Library for memcached (libmemcached, \-lmemcached) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +memcached_stat_st *memcached_stat (memcached_st *ptr, + char *args, + memcached_return_t *error); + +memcached_return_t memcached_stat_servername (memcached_stat_st *stat, + char *args, + const char *hostname, + unsigned int port); + +char * + memcached_stat_get_value (memcached_st *ptr, + memcached_stat_st *stat, + const char *key, + memcached_return_t *error); + +char ** + memcached_stat_get_keys (memcached_st *ptr, + memcached_stat_st *stat, + memcached_return_t *error); + +memcached_return_t + memcached_stat_execute (memcached_st *memc, + const char *args, + memcached_stat_fn func, + void *context); +.ft P +.fi +.SH DESCRIPTION +.sp +libmemcached(3) has the ability to query a memcached server (or collection +of servers) for their current state. Queries to find state return a +\fBmemcached_stat_st\fP structure. You are responsible for freeing this structure. +While it is possible to access the structure directly it is not advisable. + +.SH SEE ALSO +.sp +memcached(1) libmemcached(3) memcached_strerror(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcached_stat_servername.3 b/docs/man/memcached_stat_servername.3 new file mode 100644 index 00000000..14ac0bc5 --- /dev/null +++ b/docs/man/memcached_stat_servername.3 @@ -0,0 +1,127 @@ +.TH "MEMCACHED_STAT_SERVERNAME" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcached_stat_servername \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Get memcached statistics +.SH LIBRARY +.sp +C Client Library for memcached (libmemcached, \-lmemcached) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +memcached_stat_st *memcached_stat (memcached_st *ptr, + char *args, + memcached_return_t *error); + +memcached_return_t memcached_stat_servername (memcached_stat_st *stat, + char *args, + const char *hostname, + unsigned int port); + +char * + memcached_stat_get_value (memcached_st *ptr, + memcached_stat_st *stat, + const char *key, + memcached_return_t *error); + +char ** + memcached_stat_get_keys (memcached_st *ptr, + memcached_stat_st *stat, + memcached_return_t *error); + +memcached_return_t + memcached_stat_execute (memcached_st *memc, + const char *args, + memcached_stat_fn func, + void *context); +.ft P +.fi +.SH DESCRIPTION +.sp +libmemcached(3) has the ability to query a memcached server (or collection +of servers) for their current state. Queries to find state return a +\fBmemcached_stat_st\fP structure. You are responsible for freeing this structure. +While it is possible to access the structure directly it is not advisable. + +.SH SEE ALSO +.sp +memcached(1) libmemcached(3) memcached_strerror(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcached_stats.3 b/docs/man/memcached_stats.3 new file mode 100644 index 00000000..e1cfa14b --- /dev/null +++ b/docs/man/memcached_stats.3 @@ -0,0 +1,127 @@ +.TH "MEMCACHED_STATS" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcached_stats \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Get memcached statistics +.SH LIBRARY +.sp +C Client Library for memcached (libmemcached, \-lmemcached) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +memcached_stat_st *memcached_stat (memcached_st *ptr, + char *args, + memcached_return_t *error); + +memcached_return_t memcached_stat_servername (memcached_stat_st *stat, + char *args, + const char *hostname, + unsigned int port); + +char * + memcached_stat_get_value (memcached_st *ptr, + memcached_stat_st *stat, + const char *key, + memcached_return_t *error); + +char ** + memcached_stat_get_keys (memcached_st *ptr, + memcached_stat_st *stat, + memcached_return_t *error); + +memcached_return_t + memcached_stat_execute (memcached_st *memc, + const char *args, + memcached_stat_fn func, + void *context); +.ft P +.fi +.SH DESCRIPTION +.sp +libmemcached(3) has the ability to query a memcached server (or collection +of servers) for their current state. Queries to find state return a +\fBmemcached_stat_st\fP structure. You are responsible for freeing this structure. +While it is possible to access the structure directly it is not advisable. + +.SH SEE ALSO +.sp +memcached(1) libmemcached(3) memcached_strerror(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcached_strerror.3 b/docs/man/memcached_strerror.3 new file mode 100644 index 00000000..bd253970 --- /dev/null +++ b/docs/man/memcached_strerror.3 @@ -0,0 +1,79 @@ +.TH "MEMCACHED_STRERROR" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcached_strerror \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Get error string +.SH LIBRARY +.sp +C Client Library for memcached (libmemcached, \-lmemcached) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +const char * + memcached_strerror (memcached_st *ptr, + memcached_return_t rc); +.ft P +.fi +.SH DESCRIPTION +.sp +memcached_strerror() takes a \fBmemcached_return_t\fP value and returns a string +describing the error. +.sp +This string must not be modified by the application. +.sp +\fBmemcached_return_t\fP values are returned from nearly all libmemcached(3) functions. +.sp +\fBmemcached_return_t\fP values are of an enum type so that you can set up responses +with switch/case and know that you are capturing all possible return values. +.SH RETURN +.sp +memcached_strerror() returns a string describing a \fBmemcached_return_t\fP value. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Brian Aker, <\fI\%brian@tangent.org\fP> +.SH SEE ALSO +.sp +memcached(1) libmemcached(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcached_user_data.3 b/docs/man/memcached_user_data.3 new file mode 100644 index 00000000..a27c0d3f --- /dev/null +++ b/docs/man/memcached_user_data.3 @@ -0,0 +1,82 @@ +.TH "MEMCACHED_USER_DATA" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcached_user_data \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Manage user specific data +.SH LIBRARY +.sp +C Client Library for memcached (libmemcached, \-lmemcached) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +void *memcached_get_user_data (memcached_st *ptr); + +void *memcached_set_user_data (memcached_st *ptr, void *data); +.ft P +.fi +.SH DESCRIPTION +.sp +libmemcached(3) allows you to store a pointer to a user specific data inside +the memcached_st structure. +.sp +memcached_set_user_data() is used to set the user specific data in the +memcached_st structure. +.sp +memcached_get_user_data() is used to retrieve the user specific data in +the memcached_st structure. +.SH RETURN +.sp +memcached_set_user_data() returns the previous value of the user specific +data. +.sp +memcached_get_user_data() returns the current value uf the user specific +data. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Trond Norbye, <\fI\%trond.norbye@gmail.com\fP> +.SH SEE ALSO +.sp +memcached(1) libmemcached(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcached_verbosity.3 b/docs/man/memcached_verbosity.3 new file mode 100644 index 00000000..536481ae --- /dev/null +++ b/docs/man/memcached_verbosity.3 @@ -0,0 +1,74 @@ +.TH "MEMCACHED_VERBOSITY" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcached_verbosity \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Modifiy verbosity of servers +.SH LIBRARY +.sp +C Client Library for memcached (libmemcached, \-lmemcached) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +memcached_return_t + memcached_verbosity (memcached_st *ptr, + unsigned int verbosity); +.ft P +.fi +.SH DESCRIPTION +.sp +memcached_verbosity() modifies the "verbosity" of the +memcached(1) servers referenced in the \fBmemcached_st\fP parameter. +.SH RETURN +.sp +A value of type \fBmemcached_return_t\fP is returned +On success that value will be \fBMEMCACHED_SUCCESS\fP. +Use memcached_strerror() to translate this value to a printable string. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Brian Aker, <\fI\%brian@tangent.org\fP> +.SH SEE ALSO +.sp +memcached(1) libmemcached(3) memcached_strerror(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcached_version.3 b/docs/man/memcached_version.3 new file mode 100644 index 00000000..f1c37883 --- /dev/null +++ b/docs/man/memcached_version.3 @@ -0,0 +1,85 @@ +.TH "MEMCACHED_VERSION" "3" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcached_version \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Get library version +.SH LIBRARY +.sp +C Client Library for memcached (libmemcached, \-lmemcached) +.SH SYNOPSIS +.sp +.nf +.ft C +#include + +const char * + memcached_lib_version (void) + + +memcached_return_t + memcached_version (memcached_st *ptr) +.ft P +.fi +.SH DESCRIPTION +.sp +memcached_lib_version() is used to return a simple version string representing +the libmemcached version (version of the client library, not server) +.sp +memcached_version() is used to set the major, minor, and micro versions of each +memcached server being used by the memcached_st connection structure. It returns the +memcached server return code. +.SH RETURN +.sp +A string with the version of libmemcached driver is returned from +memcached_lib_version() +.sp +A value of type \fBmemcached_return_t\fP is returned from memcached_version() +On success that value will be \fBMEMCACHED_SUCCESS\fP. If called with the +\fBMEMCACHED_BEHAVIOR_USE_UDP\fP behavior set, the value \fBMEMCACHED_NOT_SUPPORTED\fPwill be returned. Use memcached_strerror() to translate this value to +a printable string. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Brian Aker, <\fI\%brian@tangent.org\fP> +.SH SEE ALSO +.sp +memcached(1) libmemcached(3) memcached_strerror(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcapable.1 b/docs/man/memcapable.1 new file mode 100644 index 00000000..4e34e974 --- /dev/null +++ b/docs/man/memcapable.1 @@ -0,0 +1,91 @@ +.TH "MEMCAPABLE" "1" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcapable \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Check memcached server capabilities +.SH SYNOPSIS +.sp +.nf +.ft C +memcat [\-h hostname] [\-p port] [\-c] [\-v] [\-t n] +.ft P +.fi +.SH DESCRIPTION +.sp +\fBmemcapable\fP connects to the specified memcached server and tries to +determine its capabilities by running the various commands and verifying +the response. +.SH OPTIONS +.sp +The following options are supported: +.INDENT 0.0 +.TP +.BI \-h \ hostname +. +Specify the hostname to connect to. The default is \fIlocalhost\fP +.TP +.BI \-p \ port +. +Specify the port number to connect to. The default is \fI11211\fP +.TP +.B \-c +. +Generate a coredump when it detects an error from the server. +.TP +.B \-v +. +Print out the comparison when it detects an error from the server. +.TP +.BI \-t \ n +. +Set the timeout from an IO operation to/from the server to \fIn\fP seconds. +.UNINDENT +.SH LIMITATIONS +.sp +The current version of memcapable will only verify the binary protocol. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Trond Norbye, <\fI\%trond.norbye@gmail.com\fP> +.SH SEE ALSO +.sp +memcached(1) libmemcached(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcat.1 b/docs/man/memcat.1 new file mode 100644 index 00000000..0755e4db --- /dev/null +++ b/docs/man/memcat.1 @@ -0,0 +1,71 @@ +.TH "MEMCAT" "1" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcat \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Copy a set of keys to stdout +.SH SYNOPSIS +.sp +.nf +.ft C +memcat [options] key key ... +.ft P +.fi +.SH DESCRIPTION +.sp +\fBmemcat\fP outputs to stdout the value a single or multiple set of keys +stored in a memcached(1) server. If any key is not found an error is returned. +.sp +It is similar to the standard UNIX cat(1) utility. +.sp +You can specify servers via the \fB\-\-servers\fP option or via the +environment variable \fBMEMCACHED_SERVERS\fP. +.sp +For a full list of operations run the tool with the \fB\-\-help\fP option. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Brian Aker, <\fI\%brian@tangent.org\fP> +.sp +Mark Atwood <\fI\%mark@fallenpegasus.com\fP> +.SH SEE ALSO +.sp +memcached(1) libmemcached(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memcp.1 b/docs/man/memcp.1 new file mode 100644 index 00000000..819b592e --- /dev/null +++ b/docs/man/memcp.1 @@ -0,0 +1,74 @@ +.TH "MEMCP" "1" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memcp \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Copies files to a collection of memcached servers +.SH SYNOPSIS +.sp +.nf +.ft C +memcp [options] file file +.ft P +.fi +.SH DESCRIPTION +.sp +\fBmemcp\fP copies one or more files into memcached(1) servers. +It is similar to the standard UNIX cp(1) command. +.sp +The key names will be the names of the files, +without any directory path part. +.sp +You can specify servers via the \fB\-\-servers\fP option or via the +environment variable \fBMEMCACHED_SERVERS\fP. If you specify neither of +these, the final value in the command line list is the name of a +server(s). +.sp +For a full list of operations run the tool with the \fB\-\-help\fP option. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Brian Aker, <\fI\%brian@tangent.org\fP> +.sp +Mark Atwood, <\fI\%mark@fallenpegasus.com\fP> +.SH SEE ALSO +.sp +memcached(1) libmemcached(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memdump.1 b/docs/man/memdump.1 new file mode 100644 index 00000000..5c03c73c --- /dev/null +++ b/docs/man/memdump.1 @@ -0,0 +1,65 @@ +.TH "MEMDUMP" "1" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memdump \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Dump a list of keys from a server. +.SH SYNOPSIS +.sp +.nf +.ft C +memdump [options] +.ft P +.fi +.SH DESCRIPTION +.sp +\fBmemdump\fP currently dumps a list of "keys" from all servers that +it is told to fetch from. Because memcached does not guarentee to +provide all keys it is not possible to get a complete "dump". +.sp +For a full list of operations run the tool with the \fB\-\-help\fP option. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Brian Aker, <\fI\%brian@tangent.org\fP> +.SH SEE ALSO +.sp +memcached(1) libmemcached(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memerror.1 b/docs/man/memerror.1 new file mode 100644 index 00000000..afe40958 --- /dev/null +++ b/docs/man/memerror.1 @@ -0,0 +1,64 @@ +.TH "MEMERROR" "1" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memerror \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Translate a memcached error code to a string +.SH SYNOPSIS +.sp +.nf +.ft C +memerror [options] error_code +.ft P +.fi +.SH DESCRIPTION +.sp +\fBmemerror\fP translate an error code from libmemcached(3) to a human +readable string. +.sp +For a full list of operations run the tool with the \fB\-\-help\fP option. +.SH HOME +.sp +To find out more infoerroration please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Brian Aker, <\fI\%brian@tangent.org\fP> +.SH SEE ALSO +.sp +memcached(1) libmemcached(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memflush.1 b/docs/man/memflush.1 new file mode 100644 index 00000000..e24c1e9e --- /dev/null +++ b/docs/man/memflush.1 @@ -0,0 +1,69 @@ +.TH "MEMFLUSH" "1" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memflush \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Reset a server or list of servers +.SH SYNOPSIS +.sp +.nf +.ft C +memflush [options] +.ft P +.fi +.SH DESCRIPTION +.sp +\fBmemflush\fP resets the contents of memcached(1) servers. +This means all data in these servers will be deleted. +.sp +You can specify servers via the \fB\-\-servers\fP option or via the +environment variable \fBMEMCACHED_SERVERS\fP. +.sp +For a full list of operations run the tool with the \fB\-\-help\fP option. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Brian Aker, <\fI\%brian@tangent.org\fP> +.sp +Mark Atwood <\fI\%mark@fallenpegasus.com\fP> +.SH SEE ALSO +.sp +memcached(1) libmemcached(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memrm.1 b/docs/man/memrm.1 new file mode 100644 index 00000000..14945b90 --- /dev/null +++ b/docs/man/memrm.1 @@ -0,0 +1,68 @@ +.TH "MEMRM" "1" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memrm \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +memrm \- Remove a key(s) from a collection of memcached servers +.SH SYNOPSIS +.sp +.nf +.ft C +memrm [options] key key ... +.ft P +.fi +.SH DESCRIPTION +.sp +\fBmemrm\fP removes items, specified by key, from memcached(1) servers. +.sp +You can specify servers via the \fB\-\-servers\fP option or via the +environment variable \fBMEMCACHED_SERVERS\fP. +.sp +For a full list of operations run the tool with the \fB\-\-help\fP option. +.SH HOME +.sp +To find out more information please check: +\fI\%https://launchpad.net/libmemcached\fP +.SH AUTHOR +.sp +Brian Aker, <\fI\%brian@tangent.org\fP> +.sp +Mark Atwood, <\fI\%mark@fallenpegasus.com\fP> +.SH SEE ALSO +.sp +memcached(1) libmemcached(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memslap.1 b/docs/man/memslap.1 new file mode 100644 index 00000000..8262578e --- /dev/null +++ b/docs/man/memslap.1 @@ -0,0 +1,1224 @@ +.TH "MEMSLAP" "1" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memslap \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +memslap \- Load testing and benchmarking tool for memcached +.SH SYNOPSIS +.sp +.nf +.ft C +memslap [options] +.ft P +.fi +.SH DESCRIPTION +.sp +\fBmemslap\fP is a load generation and benchmark tool for memcached(1) +servers. It generates configurable workload such as threads, concurrencies, connections, +run time, overwrite, miss rate, key size, value size, get/set proportion, +expected throughput, and so on. Furthermore, it also supports data +verification, expire\-time verification, UDP, binary protocol, facebook test, +replication test, multi\-get and reconnection, etc. +.sp +Memslap manages network connections like memcached with +libevent. Each thread of memslap is bound with a CPU core, all +the threads don\(aqt communicate with each other, and there are several socket +connections in each thread. Each connection keeps key size distribution, +value size distribution, and command distribution by itself. +.sp +You can specify servers via the \fB\-\-servers\fP option or via the +environment variable \fBMEMCACHED_SERVERS\fP. +.SH FEATURES +.sp +Memslap is developed to for the following purposes: +.sp +Manages network connections with libevent asynchronously. +.sp +Set both TCP and UDP up to use non\-blocking IO. +.sp +Improves parallelism: higher performance in multi\-threads environments. +.sp +Improves time efficiency: faster processing speed. +.sp +Generates key and value more efficiently; key size distribution and value size distribution are configurable. +.sp +Supports get, multi\-get, and set commands; command distribution is configurable. +.sp +Supports controllable miss rate and overwrite rate. +.sp +Supports data and expire\-time verification. +.sp +Supports dumping statistic information periodically. +.sp +Supports thousands of TCP connections. +.sp +Supports binary protocol. +.sp +Supports facebook test (set with TCP and multi\-get with UDP) and replication test. +.SH DETAILS +.SS Effective implementation of network. +.sp +For memslap, both TCP and UDP use non\-blocking network IO. All +the network events are managed by libevent as memcached. The network module +of memslap is similar to memcached. Libevent can ensure +memslap can handle network very efficiently. +.SS Effective implementation of multi\-threads and concurrency +.sp +Memslap has the similar implementation of multi\-threads to +memcached. Memslap creates one or more self\-governed threads; +each thread is bound with one CPU core if the system supports setting CPU +core affinity. +.sp +In addition, each thread has a libevent to manage the events of the network; +each thread has one or more self\-governed concurrencies; and each +concurrency has one or more socket connections. All the concurrencies don’t +communicate with each other even though they are in the same thread. +.sp +Memslap can create thousands of socket connections, and each +concurrency has tens of socket connections. Each concurrency randomly or +sequentially selects one socket connection from its socket connection pool +to run, so memslap can ensure each concurrency handles one +socket connection at any given time. Users can specify the number of +concurrency and socket connections of each concurrency according to their +expected workload. +.SS Effective implementation of generating key and value +.sp +In order to improve time efficiency and space efficiency, +memslap creates a random characters table with 10M characters. All the +suffixes of keys and values are generated from this random characters table. +.sp +Memslap uses the offset in the character table and the length +of the string to identify a string. It can save much memory. +Each key contains two parts, a prefix and a suffix. The prefix is an +uint64_t, 8 bytes. In order to verify the data set before, +memslap need to ensure each key is unique, so it uses the prefix to identify +a key. The prefix cannot include illegal characters, such as ‘r’, ‘n’, +‘0’ and ‘ ‘. And memslap has an algorithm to ensure that. +.sp +Memslap doesn’t generate all the objects (key\-value pairs) at +the beginning. It only generates enough objects to fill the task window +(default 10K objects) of each concurrency. Each object has the following +basic information, key prefix, key suffix offset in the character table, key +length, value offset in the character table, and value length. +.sp +In the work process, each concurrency sequentially or randomly selects an +object from the window to do set operation or get operation. At the same +time, each concurrency kicks objects out of its window and adds new object +into it. +.SS Simple but useful task scheduling +.sp +Memslap uses libevent to schedule all the concurrencies of +threads, and each concurrency schedules tasks based on the local task +window. Memslap assumes that if each concurrency keeps the same +key distribution, value distribution and commands distribution, from +outside, memslap keeps all the distribution as a whole. +Each task window includes a lot of objects, each object stores its basic +information, such as key, value, expire time, and so on. At any time, all +the objects in the window keep the same and fixed key and value +distribution. If an object is overwritten, the value of the object will be +updated. Memslap verifies the data or expire\-time according to +the object information stored in the task window. +.sp +Libevent selects which concurrency to handle based on a specific network +event. Then the concurrency selects which command (get or set) to operate +based on the command distribution. If it needs to kick out an old object and +add a new object, in order to keep the same key and value distribution, the +new object must have the same key length and value length. +.sp +If memcached server has two cache layers (memory and SSD), running +memslap with different window sizes can get different cache +miss rates. If memslap adds enough objects into the windows at +the beginning, and the cache of memcached cannot store all the objects +initialized, then memslap will get some objects from the second +cache layer. It causes the first cache layer to miss. So the user can +specify the window size to get the expected miss rate of the first cache +layer. +.SS Useful implementation of multi\-servers , UDP, TCP, multi\-get and binary protocol +.sp +Because each thread is self\-governed, memslap can assign +different threads to handle different memcached servers. This is just one of +the ways in which memslap supports multiple servers. The only +limitation is that the number of servers cannot be greater than the number +of threads. The other way to support multiple servers is for replication +test. Each concurrency has one socket connection to each memcached server. +For the implementation, memslap can set some objects to one +memcached server, and get these objects from the other servers. +.sp +By default, Memslap does single get. If the user specifies +multi\-get option, memslap will collect enough get commands and +pack and send the commands together. +.sp +Memslap supports both the ASCII protocol and binary protocol, +but it runs on the ASCII protocol by default. +Memslap by default runs on the TCP protocol, but it also +supports UDP. Because UDP is unreliable, dropped packages and out\-of\-order +packages may occur. Memslap creates a memory buffer to handle +these problems. Memslap tries to read all the response data of +one command from the server and reorders the response data. If some packages +get lost, the waiting timeout mechanism can ensure half\-baked packages will +be discarded and the next command will be sent. +.SH USAGE +.sp +Below are some usage samples: +.sp +memslap \-s 127.0.0.1:11211 \-S 5s +.sp +memslap \-s 127.0.0.1:11211 \-t 2m \-v 0.2 \-e 0.05 \-b +.sp +memslap \-s 127.0.0.1:11211 \-F config \-t 2m \-w 40k \-S 20s \-o 0.2 +.sp +memslap \-s 127.0.0.1:11211 \-F config \-t 2m \-T 4 \-c 128 \-d 20 \-P 40k +.sp +memslap \-s 127.0.0.1:11211 \-F config \-t 2m \-d 50 \-a \-n 40 +.sp +memslap \-s 127.0.0.1:11211,127.0.0.1:11212 \-F config \-t 2m +.sp +memslap \-s 127.0.0.1:11211,127.0.0.1:11212 \-F config \-t 2m \-p 2 +.sp +The user must specify one server at least to run memslap. The +rest of the parameters have default values, as shown below: +.sp +Thread number = 1 Concurrency = 16 +.sp +Run time = 600 seconds Configuration file = NULL +.sp +Key size = 64 Value size = 1024 +.sp +Get/set = 9:1 Window size = 10k +.sp +Execute number = 0 Single get = true +.sp +Multi\-get = false Number of sockets of each concurrency = 1 +.sp +Reconnect = false Data verification = false +.sp +Expire\-time verification = false ASCII protocol = true +.sp +Binary protocol = false Dumping statistic information +.sp +periodically = false +.sp +Overwrite proportion = 0% UDP = false +.sp +TCP = true Limit throughput = false +.sp +Facebook test = false Replication test = false +.SS Key size, value size and command distribution. +.sp +All the distributions are read from the configuration file specified by user +with “—cfg_cmd” option. If the user does not specify a configuration file, +memslap will run with the default distribution (key size = 64, +value size = 1024, get/set = 9:1). For information on how to edit the +configuration file, refer to the “Configuration File” section. +.sp +The minimum key size is 16 bytes; the maximum key size is 250 bytes. The +precision of proportion is 0.001. The proportion of distribution will be +rounded to 3 decimal places. +.sp +The minimum value size is 1 bytes; the maximum value size is 1M bytes. The +precision of proportion is 0.001. The proportion of distribution will be +rounded to 3 decimal places. +Currently, memslap only supports set and get commands. And it +supports 100% set and 100% get. For 100% get, it will preset some objects to +the server. +.SS Multi\-thread and concurrency +.sp +The high performance of memslap benefits from the special +schedule of thread and concurrency. It’s important to specify the proper +number of them. The default number of threads is 1; the default number of +concurrency is 16. The user can use “—threads” and “\-\-concurrency” to +specify these variables. +.sp +If the system supports setting CPU affinity and the number of threads +specified by the user is greater than 1, memslap will try to +bind each thread to a different CPU core. So if you want to get the best +performance memslap, it is better to specify the number of +thread equal to the number of CPU cores. The number of threads specified by +the user can also be less or greater than the number of CPU cores. Because +of the limitation of implementation, the number of concurrencies could be +the multiple of the number of threads. +.INDENT 0.0 +.IP 1. 3 +. +For 8 CPU cores system +.UNINDENT +.sp +For example: +.sp +\-\-threads=2 \-\-concurrency=128 +.sp +\-\-threads=8 \-\-concurrency=128 +.sp +\-\-threads=8 \-\-concurrency=256 +.sp +\-\-threads=12 \-\-concurrency=144 +.INDENT 0.0 +.IP 2. 3 +. +For 16 CPU cores system +.UNINDENT +.sp +For example: +.sp +\-\-threads=8 \-\-concurrency=128 +.sp +\-\-threads=16 \-\-concurrency=256 +.sp +\-\-threads=16 \-\-concurrency=512 +.sp +\-\-threads=24 \-\-concurrency=288 +.sp +The memslap performs very well, when +used to test the performance of memcached servers. +Most of the time, the bottleneck is the network or +the server. If for some reason the user wants to +limit the performance of memslap, there +are two ways to do this: +.sp +Decrease the number of threads and concurrencies. +Use the option “\-\-tps” that memslap +provides to limit the throughput. This option allows +the user to get the expected throughput. For +example, assume that the maximum throughput is 50 +kops/s for a specific configuration, you can specify +the throughput equal to or less than the maximum +throughput using “\-\-tps” option. +.SS Window size +.sp +Most of the time, the user does not need to specify the window size. The +default window size is 10k. For Schooner Memcached, the user can specify +different window sizes to get different cache miss rates based on the test +case. Memslap supports cache miss rate between 0% and 100%. +If you use this utility to test the performance of Schooner Memcached, you +can specify a proper window size to get the expected cache miss rate. The +formula for calculating window size is as follows: +.sp +Assume that the key size is 128 bytes, and the value size is 2048 bytes, and +concurrency=128. +.sp +1. Small cache cache_size=1M, 100% cache miss (all data get from SSD). +win_size=10k +.INDENT 0.0 +.IP 2. 3 +. +cache_size=4G +.UNINDENT +.sp +(1). cache miss rate 0% +.sp +win_size=8k +.sp +(2). cache miss rate 5% +.sp +win_size=11k +.INDENT 0.0 +.IP 3. 3 +. +cache_size=16G +.UNINDENT +.sp +(1). cache miss rate 0% +.sp +win_size=32k +.sp +(2). cache miss +.sp +rate 5% +.sp +win_size=46k +.sp +The formula for calculating window size for cache miss rate 0%: +.sp +cache_size / concurrency / (key_size + value_size) * 0.5 +.sp +The formula for calculating window size for cache miss rate 5%: +.sp +cache_size / concurrency / (key_size + value_size) * 0.7 +.SS Verification +.sp +Memslap supports both data verification and expire\-time +verification. The user can use "\-\-verify=" or "\-v" to specify the proportion +of data verification. In theory, it supports 100% data verification. The +user can use "\-\-exp_verify=" or "\-e" to specify the proportion of +expire\-time verification. In theory, it supports 100% expire\-time +verification. Specify the "\-\-verbose" options to get more detailed error +information. +.sp +For example: \-\-exp_verify=0.01 –verify=0.1 , it means that 1% of the objects +set with expire\-time, 10% of the objects gotten will be verified. If the +objects are gotten, memslap will verify the expire\-time and +value. +.SS multi\-servers and multi\-clients +.sp +Memslap supports multi\-servers based on self\-governed thread. +There is a limitation that the number of servers cannot be greater than the +number of threads. Memslap assigns one thread to handle one +server at least. The user can use the "\-\-servers=" or "\-s" option to specify +multi\-servers. +.sp +For example: +.sp +\-\-servers=10.1.1.1:11211,10.1.1.2:11212,10.1.1.3:11213 \-\-threads=6 \-\-concurrency=36 +.sp +The above command means that there are 6 threads, with each thread having 6 +concurrencies and that threads 0 and 3 handle server 0 (10.1.1.1); threads 1 +and 4 handle server 1 (10.1.1.2); and thread 2 and 5 handle server 2 +(10.1.1.3). +.sp +All the threads and concurrencies in memslap are self\-governed. +.sp +So is memslap. The user can start up several +memslap instances. The user can run memslap on different client +machines to communicate with the same memcached server at the same. It is +recommended that the user start different memslap on different +machines using the same configuration. +.SS Run with execute number mode or time mode +.sp +The default memslap runs with time mode. The default run time +is 10 minutes. If it times out, memslap will exit. Do not +specify both execute number mode and time mode at the same time; just +specify one instead. +.sp +For example: +.sp +\-\-time=30s (It means the test will run 30 seconds.) +.sp +\-\-execute_number=100000 (It means that after running 100000 commands, the test will exit.) +.SS Dump statistic information periodically. +.sp +The user can use "\-\-stat_freq=" or "\-S" to specify the frequency. +.sp +For example: +.sp +\-\-stat_freq=20s +.sp +Memslap will dump the statistics of the commands (get and set) at the frequency of every 20 +seconds. +.sp +For more information on the format of dumping statistic information, refer to “Format of Output” section. +.SS Multi\-get +.sp +The user can use "\-\-division=" or "\-d" to specify multi\-get keys count. +Memslap by default does single get with TCP. Memslap also supports data +verification and expire\-time verification for multi\-get. +.sp +Memslap supports multi\-get with both TCP and UDP. Because of +the different implementation of the ASCII protocol and binary protocol, +there are some differences between the two. For the ASCII protocol, +memslap sends one “multi\-get” to the server once. For the +binary protocol, memslap sends several single get commands +together as “multi\-get” to the server. +.SS UDP and TCP +.sp +Memslap supports both UDP and TCP. For TCP, +memslap does not reconnect the memcached server if socket connections are +lost. If all the socket connections are lost or memcached server crashes, +memslap will exit. If the user specifies the “\-\-reconnect” +option when socket connections are lost, it will reconnect them. +.sp +User can use “\-\-udp” to enable the UDP feature, but UDP comes with some +limitations: +.sp +UDP cannot set data more than 1400 bytes. +.sp +UDP is not supported by the binary protocol because the binary protocol of +memcached does not support that. +.sp +UDP doesn’t support reconnection. +.SS Facebook test +.sp +Set data with TCP and multi\-get with UDP. Specify the following options: +.sp +"\-\-facebook \-\-division=50" +.sp +If you want to create thousands of TCP connections, specify the +.sp +"\-\-conn_sock=" option. +.sp +For example: \-\-facebook \-\-division=50 \-\-conn_sock=200 +.sp +The above command means that memslap will do facebook test, +each concurrency has 200 socket TCP connections and one UDP socket. +.sp +Memslap sets objects with the TCP socket, and multi\-gets 50 +objects once with the UDP socket. +.sp +If you specify "\-\-division=50", the key size must be less that 25 bytes +because the UDP packet size is 1400 bytes. +.SS Replication test +.sp +For replication test, the user must specify at least two memcached servers. +The user can use “—rep_write=” option to enable feature. +.sp +For example: +.sp +\-\-servers=10.1.1.1:11211,10.1.1.2:11212 –rep_write=2 +.sp +The above command means that there are 2 replication memcached servers, +memslap will set objects to both server 0 and server 1, get +objects which are set to server 0 before from server 1, and also get objects +which are set to server 1 before from server 0. If server 0 crashes, +memslap will only get objects from server 1. If server 0 comes +back to life again, memslap will reconnect server 0. If both +server 0 and server 1 crash, memslap will exit. +.SS Supports thousands of TCP connections +.sp +Start memslap with "\-\-conn_sock=" or "\-n" to enable this +feature. Make sure that your system can support opening thousands of files +and creating thousands of sockets. However, this feature does not support +reconnection if sockets disconnect. +.sp +For example: +.sp +\-\-threads=8 \-\-concurrency=128 \-\-conn_sock=128 +.sp +The above command means that memslap starts up 8 threads, each +thread has 16 concurrencies, each concurrency has 128 TCP socket +connections, and the total number of TCP socket connections is 128 * 128 = +16384. +.SS Supports binary protocol +.sp +Start memslap with "\-\-binary" or "\-B" options to enable this +feature. It supports all the above features except UDP, because the latest +memcached 1.3.3 does not implement binary UDP protocol. +.sp +For example: +.sp +\-\-binary +.sp +Since memcached 1.3.3 doesn\(aqt implement binary UDP protocol, +memslap does not support UDP. In addition, memcached 1.3.3 does not support +multi\-get. If you specify "\-\-division=50" option, it just sends 50 get +commands together as “mulit\-get” to the server. +.SH CONFIGURATION FILE +.sp +This section describes the format of the configuration file. By default +when no configuration file is specified memslap reads the default +one located at ~/.memslap.cnf. +.sp +Below is a sample configuration file: +.sp +.nf +.ft C +*************************************************************************** +#comments should start with \(aq#\(aq +#key +#start_len end_len proportion +# +#key length range from start_len to end_len +#start_len must be equal to or greater than 16 +#end_len must be equal to or less than 250 +#start_len must be equal to or greater than end_len +#memslap will generate keys according to the key range +#proportion: indicates keys generated from one range accounts for the total +generated keys +# +#example1: key range 16~100 accounts for 80% +# key range 101~200 accounts for 10% +# key range 201~250 accounts for 10% +# total should be 1 (0.8+0.1+0.1 = 1) +# +# 16 100 0.8 +# 101 200 0.1 +# 201 249 0.1 +# +#example2: all keys length are 128 bytes +# +# 128 128 1 +key +128 128 1 +#value +#start_len end_len proportion +# +#value length range from start_len to end_len +#start_len must be equal to or greater than 1 +#end_len must be equal to or less than 1M +#start_len must be equal to or greater than end_len +#memslap will generate values according to the value range +#proportion: indicates values generated from one range accounts for the +total generated values +# +#example1: value range 1~1000 accounts for 80% +# value range 1001~10000 accounts for 10% +# value range 10001~100000 accounts for 10% +# total should be 1 (0.8+0.1+0.1 = 1) +# +# 1 1000 0.8 +# 1001 10000 0.1 +# 10001 100000 0.1 +# +#example2: all value length are 128 bytes +# +# 128 128 1 +value +2048 2048 1 +#cmd +#cmd_type cmd_proportion +# +#currently memslap only supports get and set command. +# +#cmd_type +#set 0 +#get 1 +# +#example: set command accounts for 50% +# get command accounts for 50% +# total should be 1 (0.5+0.5 = 1) +# +# cmd +# 0 0.5 +# 1 0.5 +cmd +0 0.1 +1.0 0.9 +.ft P +.fi +.SH FORMAT OF OUTPUT +.sp +At the beginning, memslap displays some configuration information as follows: +.sp +servers : 127.0.0.1:11211 +.sp +threads count: 1 +.sp +concurrency: 16 +.sp +run time: 20s +.sp +windows size: 10k +.sp +set proportion: set_prop=0.10 +.sp +get proportion: get_prop=0.90 +.SS Where +.sp +servers : "servers" +.INDENT 0.0 +.INDENT 3.5 +.sp +The servers used by memslap. +.UNINDENT +.UNINDENT +.sp +threads count +.INDENT 0.0 +.INDENT 3.5 +.sp +The number of threads memslap runs with. +.UNINDENT +.UNINDENT +.sp +concurrency +.INDENT 0.0 +.INDENT 3.5 +.sp +The number of concurrencies memslap runs with. +.UNINDENT +.UNINDENT +.sp +run time +.INDENT 0.0 +.INDENT 3.5 +.sp +How long to run memslap. +.UNINDENT +.UNINDENT +.sp +windows size +.INDENT 0.0 +.INDENT 3.5 +.sp +The task window size of each concurrency. +.UNINDENT +.UNINDENT +.sp +set proportion +.INDENT 0.0 +.INDENT 3.5 +.sp +The proportion of set command. +.UNINDENT +.UNINDENT +.sp +get proportion +.INDENT 0.0 +.INDENT 3.5 +.sp +The proportion of get command. +.UNINDENT +.UNINDENT +.sp +The output of dynamic statistics is something like this: +.sp +.nf +.ft C +\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- +Get Statistics +Type Time(s) Ops TPS(ops/s) Net(M/s) Get_miss Min(us) Max(us) +Avg(us) Std_dev Geo_dist +Period 5 345826 69165 65.3 0 27 2198 203 +95.43 177.29 +Global 20 1257935 62896 71.8 0 26 3791 224 +117.79 192.60 + + +Set Statistics +Type Time(s) Ops TPS(ops/s) Net(M/s) Get_miss Min(us) Max(us) +Avg(us) Std_dev Geo_dist +Period 5 38425 7685 7.3 0 42 628 240 +88.05 220.21 +Global 20 139780 6989 8.0 0 37 3790 253 +117.93 224.83 + + +Total Statistics +Type Time(s) Ops TPS(ops/s) Net(M/s) Get_miss Min(us) Max(us) +Avg(us) Std_dev Geo_dist +Period 5 384252 76850 72.5 0 27 2198 207 +94.72 181.18 +Global 20 1397720 69886 79.7 0 26 3791 227 +117.93 195.60 +\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- +.ft P +.fi +.SS Where +.sp +Get Statistics +.INDENT 0.0 +.INDENT 3.5 +.sp +Statistics information of get command +.UNINDENT +.UNINDENT +.sp +Set Statistics +.INDENT 0.0 +.INDENT 3.5 +.sp +Statistics information of set command +.UNINDENT +.UNINDENT +.sp +Total Statistics +.INDENT 0.0 +.INDENT 3.5 +.sp +Statistics information of both get and set command +.UNINDENT +.UNINDENT +.sp +Period +.INDENT 0.0 +.INDENT 3.5 +.sp +Result within a period +.UNINDENT +.UNINDENT +.sp +Global +.INDENT 0.0 +.INDENT 3.5 +.sp +Accumulated results +.UNINDENT +.UNINDENT +.sp +Ops +.INDENT 0.0 +.INDENT 3.5 +.sp +Total operations +.UNINDENT +.UNINDENT +.sp +TPS +.INDENT 0.0 +.INDENT 3.5 +.sp +Throughput, operations/second +.UNINDENT +.UNINDENT +.sp +Net +.INDENT 0.0 +.INDENT 3.5 +.sp +The rate of network +.UNINDENT +.UNINDENT +.sp +Get_miss +.INDENT 0.0 +.INDENT 3.5 +.sp +How many objects can’t be gotten +.UNINDENT +.UNINDENT +.sp +Min +.INDENT 0.0 +.INDENT 3.5 +.sp +The minimum response time +.UNINDENT +.UNINDENT +.sp +Max +.INDENT 0.0 +.INDENT 3.5 +.sp +The maximum response time +.UNINDENT +.UNINDENT +.sp +Avg: +.INDENT 0.0 +.INDENT 3.5 +.sp +The average response time +.UNINDENT +.UNINDENT +.sp +Std_dev +.INDENT 0.0 +.INDENT 3.5 +.sp +Standard deviation of response time +.UNINDENT +.UNINDENT +.sp +Geo_dist +.INDENT 0.0 +.INDENT 3.5 +.sp +Geometric distribution based on natural exponential function +.UNINDENT +.UNINDENT +.sp +At the end, memslap will output something like this: +.sp +.nf +.ft C +\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- +Get Statistics (1257956 events) + Min: 26 + Max: 3791 + Avg: 224 + Geo: 192.60 + Std: 116.23 + Log2 Dist: + 4: 0 10 84490 215345 + 8: 484890 459823 12543 824 + 12: 31 + + Set Statistics (139782 events) + Min: 37 + Max: 3790 + Avg: 253 + Geo: 224.84 + Std: 116.83 + Log2 Dist: + 4: 0 0 4200 16988 + 8: 50784 65574 2064 167 + 12: 5 + + Total Statistics (1397738 events) + Min: 26 + Max: 3791 + Avg: 227 + Geo: 195.60 + Std: 116.60 + Log2 Dist: + 4: 0 10 88690 232333 + 8: 535674 525397 14607 991 + 12: 36 + +cmd_get: 1257969 +cmd_set: 139785 +get_misses: 0 +verify_misses: 0 +verify_failed: 0 +expired_get: 0 +unexpired_unget: 0 +written_bytes: 242516030 +read_bytes: 1003702556 +object_bytes: 152086080 +packet_disorder: 0 +packet_drop: 0 +udp_timeout: 0 + +Run time: 20.0s Ops: 1397754 TPS: 69817 Net_rate: 59.4M/s +\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- +.ft P +.fi +.SS Where +.sp +Get Statistics +.INDENT 0.0 +.INDENT 3.5 +.sp +Get statistics of response time +.UNINDENT +.UNINDENT +.sp +Set Statistics +.INDENT 0.0 +.INDENT 3.5 +.sp +Set statistics of response time +.UNINDENT +.UNINDENT +.sp +Total Statistics +.INDENT 0.0 +.INDENT 3.5 +.sp +Both get and set statistics of response time +.UNINDENT +.UNINDENT +.sp +Min +.INDENT 0.0 +.INDENT 3.5 +.sp +The accumulated and minimum response time +.UNINDENT +.UNINDENT +.sp +Max +.INDENT 0.0 +.INDENT 3.5 +.sp +The accumulated and maximum response time +.UNINDENT +.UNINDENT +.sp +Avg +.INDENT 0.0 +.INDENT 3.5 +.sp +The accumulated and average response time +.UNINDENT +.UNINDENT +.sp +Std +.INDENT 0.0 +.INDENT 3.5 +.sp +Standard deviation of response time +.UNINDENT +.UNINDENT +.sp +Log2 Dist +.INDENT 0.0 +.INDENT 3.5 +.sp +Geometric distribution based on logarithm 2 +.UNINDENT +.UNINDENT +.sp +cmd_get +.INDENT 0.0 +.INDENT 3.5 +.sp +Total get commands done +.UNINDENT +.UNINDENT +.sp +cmd_set +.INDENT 0.0 +.INDENT 3.5 +.sp +Total set commands done +.UNINDENT +.UNINDENT +.sp +get_misses +.INDENT 0.0 +.INDENT 3.5 +.sp +How many objects can’t be gotten from server +.UNINDENT +.UNINDENT +.sp +verify_misses +.INDENT 0.0 +.INDENT 3.5 +.sp +How many objects need to verify but can’t get them +.UNINDENT +.UNINDENT +.sp +verify_failed +.INDENT 0.0 +.INDENT 3.5 +.sp +How many objects with insistent value +.UNINDENT +.UNINDENT +.sp +expired_get +.INDENT 0.0 +.INDENT 3.5 +.sp +How many objects are expired but we get them +.UNINDENT +.UNINDENT +.sp +unexpired_unget +.INDENT 0.0 +.INDENT 3.5 +.sp +How many objects are unexpired but we can’t get them +.UNINDENT +.UNINDENT +.sp +written_bytes +.INDENT 0.0 +.INDENT 3.5 +.sp +Total written bytes +.UNINDENT +.UNINDENT +.sp +read_bytes +.INDENT 0.0 +.INDENT 3.5 +.sp +Total read bytes +.UNINDENT +.UNINDENT +.sp +object_bytes +.INDENT 0.0 +.INDENT 3.5 +.sp +Total object bytes +.UNINDENT +.UNINDENT +.sp +packet_disorder +.INDENT 0.0 +.INDENT 3.5 +.sp +How many UDP packages are disorder +.UNINDENT +.UNINDENT +.sp +packet_drop +.INDENT 0.0 +.INDENT 3.5 +.sp +How many UDP packages are lost +.UNINDENT +.UNINDENT +.sp +udp_timeout +.INDENT 0.0 +.INDENT 3.5 +.sp +How many times UDP time out happen +.UNINDENT +.UNINDENT +.sp +Run time +.INDENT 0.0 +.INDENT 3.5 +.sp +Total run time +.UNINDENT +.UNINDENT +.sp +Ops +.INDENT 0.0 +.INDENT 3.5 +.sp +Total operations +.UNINDENT +.UNINDENT +.sp +TPS +.INDENT 0.0 +.INDENT 3.5 +.sp +Throughput, operations/second +.UNINDENT +.UNINDENT +.sp +Net_rate +.INDENT 0.0 +.INDENT 3.5 +.sp +The average rate of network +.UNINDENT +.UNINDENT +.SH OPTIONS +.INDENT 0.0 +.TP +.B \-s, \-\-servers= +. +List one or more servers to connect. Servers count must be less than +threads count. e.g.: \-\-servers=localhost:1234,localhost:11211 +.TP +.B \-T, \-\-threads= +. +Number of threads to startup, better equal to CPU numbers. Default 8. +.TP +.B \-c, \-\-concurrency= +. +Number of concurrency to simulate with load. Default 128. +.TP +.B \-n, \-\-conn_sock= +. +Number of TCP socks per concurrency. Default 1. +.TP +.B \-x, \-\-execute_number= +. +Number of operations(get and set) to execute for the +given test. Default 1000000. +.TP +.B \-t, \-\-time= +. +How long the test to run, suffix: s\-seconds, m\-minutes, h\-hours, +d\-days e.g.: \-\-time=2h. +.TP +.B \-F, \-\-cfg_cmd= +. +Load the configure file to get command,key and value distribution list. +.TP +.B \-w, \-\-win_size= +. +Task window size of each concurrency, suffix: K, M e.g.: \-\-win_size=10k. +Default 10k. +.TP +.B \-X, \-\-fixed_size= +. +Fixed length of value. +.TP +.B \-v, \-\-verify= +. +The proportion of date verification, e.g.: \-\-verify=0.01 +.TP +.B \-d, \-\-division= +. +Number of keys to multi\-get once. Default 1, means single get. +.TP +.B \-S, \-\-stat_freq= +. +Frequency of dumping statistic information. suffix: s\-seconds, +m\-minutes, e.g.: \-\-resp_freq=10s. +.TP +.B \-e, \-\-exp_verify= +. +The proportion of objects with expire time, e.g.: \-\-exp_verify=0.01. +Default no object with expire time +.TP +.B \-o, \-\-overwrite= +. +The proportion of objects need overwrite, e.g.: \-\-overwrite=0.01. +Default never overwrite object. +.UNINDENT +.INDENT 0.0 +.TP +.B \-R, \-\-reconnect +. +Reconnect support, when connection is closed it will be reconnected. +.TP +.B \-U, \-\-udp +. +UDP support, default memslap uses TCP, TCP port and UDP port of +server must be same. +.TP +.B \-a, \-\-facebook +. +Whether it enables facebook test feature, set with TCP and multi\-get with UDP. +.TP +.B \-B, \-\-binary +. +Whether it enables binary protocol. Default with ASCII protocol. +.UNINDENT +.INDENT 0.0 +.TP +.B \-P, \-\-tps= +. +Expected throughput, suffix: K, e.g.: \-\-tps=10k. +.TP +.B \-p, \-\-rep_write= +. +The first nth servers can write data, e.g.: \-\-rep_write=2. +.UNINDENT +.INDENT 0.0 +.TP +.B \-b, \-\-verbose +. +Whether it outputs detailed information when verification fails. +.TP +.B \-h, \-\-help +. +Display this message and then exit. +.TP +.B \-V, \-\-version +. +Display the version of the application and then exit. +.UNINDENT +.SH EXAMPLES +.sp +memslap \-s 127.0.0.1:11211 \-S 5s +.sp +memslap \-s 127.0.0.1:11211 \-t 2m \-v 0.2 \-e 0.05 \-b +.sp +memslap \-s 127.0.0.1:11211 \-F config \-t 2m \-w 40k \-S 20s \-o 0.2 +.sp +memslap \-s 127.0.0.1:11211 \-F config \-t 2m \-T 4 \-c 128 \-d 20 \-P 40k +.sp +memslap \-s 127.0.0.1:11211 \-F config \-t 2m \-d 50 \-a \-n 40 +.sp +memslap \-s 127.0.0.1:11211,127.0.0.1:11212 \-F config \-t 2m +.sp +memslap \-s 127.0.0.1:11211,127.0.0.1:11212 \-F config \-t 2m \-p 2 +.SH HOME +.sp +To find out more information please check: +\fI\%http://launchpad.org/libmemcached\fP +.SH AUTHORS +.sp +Mingqiang Zhuang <\fI\%mingqiangzhuang@hengtiansoft.com\fP> (Schooner Technolgy) +Brian Aker, <\fI\%brian@tangent.org\fP> +.SH SEE ALSO +.sp +memcached(1) libmemcached(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/man/memstat.1 b/docs/man/memstat.1 new file mode 100644 index 00000000..1f3d0bc5 --- /dev/null +++ b/docs/man/memstat.1 @@ -0,0 +1,71 @@ +.TH "MEMSTAT" "1" "April 07, 2011" "0.47" "libmemcached" +.SH NAME +memstat \- libmemcached Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +memstat \- Display the operating status of a single or group of memcached servers +.SH SYNOPSIS +.sp +.nf +.ft C +memstat [options] +.ft P +.fi +.SH DESCRIPTION +.sp +\fBmemstat\fP dumps the state of memcached(1) servers. +It displays all data to stdout. +.sp +You can specify servers via the \fB\-\-servers\fP option or via the +environment variable \fBMEMCACHED_SERVERS\fP. \fB\-\-args\fP can be used +to specify the "argument" sent to the stats command (ie slab, size, items, +etc..). +.sp +For a full list of operations run the tool with the \fB\-\-help\fP option. +.SH HOME +.sp +To find out more information please check: +\fI\%http://launchpad.org/libmemcached\fP +.SH AUTHOR +.sp +Brian Aker, <\fI\%brian@tangent.org\fP> +.sp +Mark Atwood, <\fI\%mark@fallenpegasus.com\fP> +.SH SEE ALSO +.sp +memcached(1) libmemcached(3) +.SH AUTHOR +Brian Aker +.SH COPYRIGHT +2011, Brian Aker +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/memcached_analyze.rst b/docs/memcached_analyze.rst index 28f7f749..da30e141 100644 --- a/docs/memcached_analyze.rst +++ b/docs/memcached_analyze.rst @@ -24,7 +24,7 @@ SYNOPSIS .. code-block:: perl - #include + #include memcached_analysis_st * memcached_analyze (memcached_st *ptr, diff --git a/docs/memcached_auto.rst b/docs/memcached_auto.rst index 0e510a22..d92f1f88 100644 --- a/docs/memcached_auto.rst +++ b/docs/memcached_auto.rst @@ -24,7 +24,7 @@ SYNOPSIS .. code-block:: perl - #include + #include memcached_return_t memcached_increment (memcached_st *ptr, diff --git a/docs/memcached_behavior.rst b/docs/memcached_behavior.rst index 1bfcf720..cc4cf687 100644 --- a/docs/memcached_behavior.rst +++ b/docs/memcached_behavior.rst @@ -24,7 +24,7 @@ SYNOPSIS .. code-block:: perl - #include + #include uint64_t memcached_behavior_get (memcached_st *ptr, diff --git a/docs/memcached_callback.rst b/docs/memcached_callback.rst index ff1f0287..43708b69 100644 --- a/docs/memcached_callback.rst +++ b/docs/memcached_callback.rst @@ -24,7 +24,7 @@ SYNOPSIS .. code-block:: perl - #include + #include memcached_return_t memcached_callback_set (memcached_st *ptr, diff --git a/docs/memcached_create.rst b/docs/memcached_create.rst index b8cf3715..1beff43c 100644 --- a/docs/memcached_create.rst +++ b/docs/memcached_create.rst @@ -24,7 +24,7 @@ SYNOPSIS .. code-block:: perl - #include + #include memcached_st *memcached_create (memcached_st *ptr); diff --git a/docs/memcached_delete.rst b/docs/memcached_delete.rst index 9d9d7784..dcec549f 100644 --- a/docs/memcached_delete.rst +++ b/docs/memcached_delete.rst @@ -24,7 +24,7 @@ SYNOPSIS .. code-block:: perl - #include + #include memcached_return_t memcached_delete (memcached_st *ptr, diff --git a/docs/memcached_dump.rst b/docs/memcached_dump.rst index ab63c7ef..59bd7d54 100644 --- a/docs/memcached_dump.rst +++ b/docs/memcached_dump.rst @@ -24,7 +24,7 @@ SYNOPSIS .. code-block:: perl - #include + #include memcached_return_t memcached_dump (memcached_st *ptr, diff --git a/docs/memcached_flush.rst b/docs/memcached_flush.rst index 8cd66f76..41ca3696 100644 --- a/docs/memcached_flush.rst +++ b/docs/memcached_flush.rst @@ -24,7 +24,7 @@ SYNOPSIS .. code-block:: perl - #include + #include memcached_return_t memcached_flush (memcached_st *ptr, diff --git a/docs/memcached_flush_buffers.rst b/docs/memcached_flush_buffers.rst index eef1a07f..e2067c15 100644 --- a/docs/memcached_flush_buffers.rst +++ b/docs/memcached_flush_buffers.rst @@ -24,7 +24,7 @@ SYNOPSIS .. code-block:: perl - #include + #include memcached_return_t memcached_flush_buffers (memcached_st *ptr); diff --git a/docs/memcached_generate_hash_value.rst b/docs/memcached_generate_hash_value.rst index 8b75a4a8..0cefabb5 100644 --- a/docs/memcached_generate_hash_value.rst +++ b/docs/memcached_generate_hash_value.rst @@ -24,7 +24,7 @@ SYNOPSIS .. code-block:: perl - #include + #include uint32_t memcached_generate_hash_value (const char *key, diff --git a/docs/memcached_get.rst b/docs/memcached_get.rst index 0aeb7d31..27ec765c 100644 --- a/docs/memcached_get.rst +++ b/docs/memcached_get.rst @@ -24,7 +24,7 @@ SYNOPSIS .. code-block:: perl - #include + #include memcached_result_st * memcached_fetch_result (memcached_st *ptr, diff --git a/docs/memcached_memory_allocators.rst b/docs/memcached_memory_allocators.rst index 190fbb94..5de7fb67 100644 --- a/docs/memcached_memory_allocators.rst +++ b/docs/memcached_memory_allocators.rst @@ -24,7 +24,7 @@ SYNOPSIS .. code-block:: perl - #include + #include memcached_return_t memcached_set_memory_allocators (memcached_st *ptr, diff --git a/docs/memcached_quit.rst b/docs/memcached_quit.rst index aedcac42..974f4a50 100644 --- a/docs/memcached_quit.rst +++ b/docs/memcached_quit.rst @@ -24,7 +24,7 @@ SYNOPSIS .. code-block:: perl - #include + #include void memcached_quit (memcached_st *ptr); diff --git a/docs/memcached_result_st.rst b/docs/memcached_result_st.rst index 7c3c6d9c..7eba66da 100644 --- a/docs/memcached_result_st.rst +++ b/docs/memcached_result_st.rst @@ -24,7 +24,7 @@ SYNOPSIS .. code-block:: perl - #include + #include memcached_result_st * memcached_result_create (memcached_st *ptr, diff --git a/docs/memcached_sasl.rst b/docs/memcached_sasl.rst index 1d1993bc..3e3b7789 100644 --- a/docs/memcached_sasl.rst +++ b/docs/memcached_sasl.rst @@ -24,7 +24,7 @@ SYNOPSIS .. code-block:: perl - #include + #include void memcached_set_sasl_callbacks(memcached_st *ptr, const sasl_callback_t *callbacks) diff --git a/docs/memcached_server_st.rst b/docs/memcached_server_st.rst index c45abbb2..67f4f3c1 100644 --- a/docs/memcached_server_st.rst +++ b/docs/memcached_server_st.rst @@ -24,7 +24,7 @@ SYNOPSIS .. code-block:: perl - #include + #include const memcached_server_instance_st memcached_server_list (memcached_st *ptr); diff --git a/docs/memcached_servers.rst b/docs/memcached_servers.rst index 928956a2..d7aa521d 100644 --- a/docs/memcached_servers.rst +++ b/docs/memcached_servers.rst @@ -24,7 +24,7 @@ SYNOPSIS .. code-block:: perl - #include + #include uint32_t memcached_server_count (memcached_st *ptr); diff --git a/docs/memcached_set.rst b/docs/memcached_set.rst index a02a032f..d0dbbd26 100644 --- a/docs/memcached_set.rst +++ b/docs/memcached_set.rst @@ -24,7 +24,7 @@ SYNOPSIS .. code-block:: perl - #include + #include memcached_return_t memcached_set (memcached_st *ptr, diff --git a/docs/memcached_stats.rst b/docs/memcached_stats.rst index 7fd47232..ee5103e7 100644 --- a/docs/memcached_stats.rst +++ b/docs/memcached_stats.rst @@ -24,7 +24,7 @@ SYNOPSIS .. code-block:: perl - #include + #include memcached_stat_st *memcached_stat (memcached_st *ptr, char *args, diff --git a/docs/memcached_strerror.rst b/docs/memcached_strerror.rst index b13458cf..7848a59c 100644 --- a/docs/memcached_strerror.rst +++ b/docs/memcached_strerror.rst @@ -24,7 +24,7 @@ SYNOPSIS .. code-block:: perl - #include + #include const char * memcached_strerror (memcached_st *ptr, diff --git a/docs/memcached_user_data.rst b/docs/memcached_user_data.rst index cf990e6c..1fd9d334 100644 --- a/docs/memcached_user_data.rst +++ b/docs/memcached_user_data.rst @@ -24,7 +24,7 @@ SYNOPSIS .. code-block:: perl - #include + #include void *memcached_get_user_data (memcached_st *ptr); diff --git a/docs/memcached_verbosity.rst b/docs/memcached_verbosity.rst index 0f41094e..c0409244 100644 --- a/docs/memcached_verbosity.rst +++ b/docs/memcached_verbosity.rst @@ -24,7 +24,7 @@ SYNOPSIS .. code-block:: perl - #include + #include memcached_return_t memcached_verbosity (memcached_st *ptr, diff --git a/docs/memcached_version.rst b/docs/memcached_version.rst index 26f3b278..334e09be 100644 --- a/docs/memcached_version.rst +++ b/docs/memcached_version.rst @@ -24,7 +24,7 @@ SYNOPSIS .. code-block:: perl - #include + #include const char * memcached_lib_version (void) diff --git a/libmemcached/error.c b/libmemcached/error.c deleted file mode 100644 index 357fda8c..00000000 --- a/libmemcached/error.c +++ /dev/null @@ -1,199 +0,0 @@ -/* vim:expandtab:shiftwidth=2:tabstop=2:smarttab: - * - * LibMemcached - * - * Copyright (C) 2011 Data Differential, http://datadifferential.com/ - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * * Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following disclaimer - * in the documentation and/or other materials provided with the - * distribution. - * - * * The names of its contributors may not be used to endorse or - * promote products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - */ - -#include "libmemcached/common.h" - -struct memcached_error_st -{ - memcached_st *root; - uint64_t query_id; - struct memcached_error_st *next; - memcached_return_t rc; - int local_errno; - size_t size; - char c_str[]; -}; - -static void _set(memcached_st *memc, memcached_string_t *str, const memcached_return_t rc, const int local_errno) -{ - WATCHPOINT_ASSERT(memc); - if (! memc) - return; - - if (memc->error_messages && memc->error_messages->query_id != memc->query_id) - { - memcached_error_free(memc); - } - - memcached_error_st *error; - error= (struct memcached_error_st *)libmemcached_malloc(memc, sizeof(struct memcached_error_st) +(str ? str->size :0) +1); - - if (! error) - return; - - error->root= memc; - error->query_id= memc->query_id; - error->rc= rc; - error->local_errno= local_errno; - - if (str) - { - error->size= str->size; - memcpy(error->c_str, str->c_str, str->size); - error->c_str[str->size]= 0; - } - else - { - error->size= 0; - } - - error->next= memc->error_messages; - memc->error_messages= error; -} - -memcached_return_t memcached_set_error_string(memcached_st *memc, memcached_return_t rc, const char *str, size_t length) -{ - memcached_string_t tmp; - tmp.c_str= str; - tmp.size= length; - return memcached_set_error(memc, rc, &tmp); -} - -memcached_return_t memcached_set_error(memcached_st *memc, memcached_return_t rc, memcached_string_t *str) -{ - if (rc == MEMCACHED_SUCCESS) - return MEMCACHED_SUCCESS; - - _set(memc, str, rc, 0); - - return rc; -} - -memcached_return_t memcached_set_errno(memcached_st *memc, int local_errno, memcached_string_t *str) -{ - _set(memc, str, MEMCACHED_ERRNO, local_errno); - - return MEMCACHED_ERRNO; -} - -static void _error_print(const memcached_error_st *error) -{ - if (! error) - return; - - if (! error->size) - { - fprintf(stderr, "%s\n", memcached_strerror(NULL, error->rc) ); - } - else - { - fprintf(stderr, "%s %s\n", memcached_strerror(NULL, error->rc), error->c_str); - } - - _error_print(error->next); -} - -void memcached_error_print(const memcached_st *self) -{ - if (! self) - return; - - _error_print(self->error_messages); -} - -static void _error_free(memcached_error_st *error) -{ - if (! error) - return; - - _error_free(error->next); - - if (error && error->root) - { - libmemcached_free(error->root, error); - } - else if (error) - { - free(error); - } -} - -void memcached_error_free(memcached_st *self) -{ - if (! self) - return; - - _error_free(self->error_messages); -} - -const char *memcached_last_error_message(memcached_st *memc) -{ - if (! memc) - return memcached_strerror(memc, MEMCACHED_INVALID_ARGUMENTS); - - if (! memc->error_messages) - return memcached_strerror(memc, MEMCACHED_SUCCESS); - - if (! memc->error_messages->size) - { - return memcached_strerror(memc, memc->error_messages->rc); - } - - return memc->error_messages->c_str; -} - -memcached_return_t memcached_last_error(memcached_st *memc) -{ - if (! memc) - return MEMCACHED_INVALID_ARGUMENTS; - - if (! memc->error_messages) - return MEMCACHED_SUCCESS; - - return memc->error_messages->rc; -} - -int memcached_last_error_errno(memcached_st *memc) -{ - if (! memc) - return 0; - - if (! memc->error_messages) - return 0; - - return memc->error_messages->local_errno; -} diff --git a/libmemcached/error.cc b/libmemcached/error.cc new file mode 100644 index 00000000..ef207a95 --- /dev/null +++ b/libmemcached/error.cc @@ -0,0 +1,201 @@ +/* vim:expandtab:shiftwidth=2:tabstop=2:smarttab: + * + * LibMemcached + * + * Copyright (C) 2011 Data Differential, http://datadifferential.com/ + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * + * * The names of its contributors may not be used to endorse or + * promote products derived from this software without specific prior + * written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#include "libmemcached/common.h" + +#define MAX_ERROR_LENGTH 2048 +struct memcached_error_t +{ + memcached_st *root; + uint64_t query_id; + struct memcached_error_t *next; + memcached_return_t rc; + int local_errno; + size_t size; + char message[MAX_ERROR_LENGTH]; +}; + +static void _set(memcached_st *memc, memcached_string_t *str, const memcached_return_t rc, const int local_errno) +{ + WATCHPOINT_ASSERT(memc); + if (! memc) + return; + + if (memc->error_messages && memc->error_messages->query_id != memc->query_id) + { + memcached_error_free(memc); + } + + memcached_error_t *error; + error= (struct memcached_error_t *)libmemcached_malloc(memc, sizeof(struct memcached_error_t)); + + if (! error) + return; + + error->root= memc; + error->query_id= memc->query_id; + error->rc= rc; + error->local_errno= local_errno; + + if (str) + { + size_t length= str->size > (size_t)MAX_ERROR_LENGTH ? MAX_ERROR_LENGTH : str->size; + error->size= length; + memcpy(error->message, str->c_str, error->size); + error->message[error->size]= 0; + } + else + { + error->size= 0; + } + + error->next= memc->error_messages; + memc->error_messages= error; +} + +memcached_return_t memcached_set_error_string(memcached_st *memc, memcached_return_t rc, const char *str, size_t length) +{ + memcached_string_t tmp; + tmp.c_str= str; + tmp.size= length; + return memcached_set_error(memc, rc, &tmp); +} + +memcached_return_t memcached_set_error(memcached_st *memc, memcached_return_t rc, memcached_string_t *str) +{ + if (rc == MEMCACHED_SUCCESS) + return MEMCACHED_SUCCESS; + + _set(memc, str, rc, 0); + + return rc; +} + +memcached_return_t memcached_set_errno(memcached_st *memc, int local_errno, memcached_string_t *str) +{ + _set(memc, str, MEMCACHED_ERRNO, local_errno); + + return MEMCACHED_ERRNO; +} + +static void _error_print(const memcached_error_t *error) +{ + if (! error) + return; + + if (! error->size) + { + fprintf(stderr, "%s\n", memcached_strerror(NULL, error->rc) ); + } + else + { + fprintf(stderr, "%s %s\n", memcached_strerror(NULL, error->rc), error->message); + } + + _error_print(error->next); +} + +void memcached_error_print(const memcached_st *self) +{ + if (! self) + return; + + _error_print(self->error_messages); +} + +static void _error_free(memcached_error_t *error) +{ + if (! error) + return; + + _error_free(error->next); + + if (error && error->root) + { + libmemcached_free(error->root, error); + } + else if (error) + { + free(error); + } +} + +void memcached_error_free(memcached_st *self) +{ + if (! self) + return; + + _error_free(self->error_messages); +} + +const char *memcached_last_error_message(memcached_st *memc) +{ + if (! memc) + return memcached_strerror(memc, MEMCACHED_INVALID_ARGUMENTS); + + if (! memc->error_messages) + return memcached_strerror(memc, MEMCACHED_SUCCESS); + + if (! memc->error_messages->size) + { + return memcached_strerror(memc, memc->error_messages->rc); + } + + return memc->error_messages->message; +} + +memcached_return_t memcached_last_error(memcached_st *memc) +{ + if (! memc) + return MEMCACHED_INVALID_ARGUMENTS; + + if (! memc->error_messages) + return MEMCACHED_SUCCESS; + + return memc->error_messages->rc; +} + +int memcached_last_error_errno(memcached_st *memc) +{ + if (! memc) + return 0; + + if (! memc->error_messages) + return 0; + + return memc->error_messages->local_errno; +} diff --git a/libmemcached/include.am b/libmemcached/include.am index b10f05af..5a4b8b09 100644 --- a/libmemcached/include.am +++ b/libmemcached/include.am @@ -92,7 +92,7 @@ libmemcached_libmemcachedcallbacks_la_SOURCES = libmemcached/callback.c # These symbols will not be exposed in the shipped .so noinst_LTLIBRARIES+= libmemcached/libmemcachedinternal.la libmemcached_libmemcachedinternal_la_SOURCES= \ - libmemcached/error.c \ + libmemcached/error.cc \ libmemcached/string.c lib_LTLIBRARIES+= libmemcached/libmemcached.la diff --git a/libmemcached/memcached.h b/libmemcached/memcached.h index e3817892..adf55e21 100644 --- a/libmemcached/memcached.h +++ b/libmemcached/memcached.h @@ -156,7 +156,7 @@ struct memcached_st { memcached_trigger_delete_key_fn delete_trigger; memcached_callback_st *callbacks; struct memcached_sasl_st sasl; - struct memcached_error_st *error_messages; + struct memcached_error_t *error_messages; struct memcached_array_st *prefix_key; struct { struct memcached_array_st *filename; diff --git a/libmemcached/types.h b/libmemcached/types.h index 89c1203b..2ebb8c00 100644 --- a/libmemcached/types.h +++ b/libmemcached/types.h @@ -17,7 +17,7 @@ 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_array_st memcached_array_st; -typedef struct memcached_error_st memcached_error_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; diff --git a/tests/string.cc b/tests/string.cc index 827d0f2c..35d6eb41 100644 --- a/tests/string.cc +++ b/tests/string.cc @@ -160,8 +160,6 @@ test_return_t string_alloc_append_multiple(memcached_st *memc) memcached_string_append(error_string, memcached_string_make_from_cstr(memcached_strerror(NULL, MEMCACHED_SUCCESS))); memcached_string_append(error_string, memcached_string_with_size(")")); - memcached_set_error_string(memc, MEMCACHED_FAILURE, memcached_string_value(error_string), memcached_string_length(error_string)); - memcached_string_free(error_string); return TEST_SUCCESS;