SEE ALSO
--------
-:manpage:`memcached(1)` :manpage:`libmemcached(3)`
+.. only:: man
+
+ :manpage:`memcached(1)` :manpage:`libmemcached(3)`
SEE ALSO
--------
-:manpage:`memcached(1)` :manpage:`libmemcached(3)`
+.. only:: man
+
+ :manpage:`memcached(1)` :manpage:`libmemcached(3)`
SEE ALSO
--------
+.. only:: man
-:manpage:`memcached(1)` :manpage:`libmemcached(3)`
+ :manpage:`memcached(1)` :manpage:`libmemcached(3)`
SEE ALSO
--------
+.. only:: man
-:manpage:`memcached(1)` :manpage:`libmemcached(3)`
+ :manpage:`memcached(1)` :manpage:`libmemcached(3)`
SEE ALSO
--------
-:manpage:`memcached(1)` :manpage:`libmemcached(3)`
+.. only:: man
+
+ :manpage:`memcached(1)` :manpage:`libmemcached(3)`
SEE ALSO
--------
+.. only:: man
-:manpage:`memcached(1)` :manpage:`libmemcached(3)`
+ :manpage:`memcached(1)` :manpage:`libmemcached(3)`
SEE ALSO
--------
+.. only:: man
-:manpage:`memcached(1)` :manpage:`libmemcached(3)`
+ :manpage:`memcached(1)` :manpage:`libmemcached(3)`
SEE ALSO
--------
-:manpage:`memcached(1)` :manpage:`libmemcached(3)`
+.. only:: man
+
+ :manpage:`memcached(1)` :manpage:`libmemcached(3)`
SEE ALSO
--------
+.. only:: man
-:manpage:`memcached(1)` :manpage:`libmemcached(3)`
+ :manpage:`memcached(1)` :manpage:`libmemcached(3)`
SEE ALSO
--------
-:manpage:`memcached(1)` :manpage:`libmemcached(3)`
+.. only:: man
+
+ :manpage:`memcached(1)` :manpage:`libmemcached(3)`
SEE ALSO
--------
+.. only:: man
-:manpage:`memcached(1)` :manpage:`libmemcached(3)`
+ :manpage:`memcached(1)` :manpage:`libmemcached(3)`
SEE ALSO
--------
+.. only:: man
-:manpage:`memcached(1)` :manpage:`libmemcached(3)`
+ :manpage:`memcached(1)` :manpage:`libmemcached(3)`
SEE ALSO
--------
+.. only:: man
-:manpage:`memcached(1)` :manpage:`libmemcached(3)`
+ :manpage:`memcached(1)` :manpage:`libmemcached(3)`
SEE ALSO
--------
+.. only:: man
-:manpage:`memcached(1)` :manpage:`libmemcached(3)`
+ :manpage:`memcached(1)` :manpage:`libmemcached(3)`
('hashkit_create' , 'hashkit_create' , u'libhashkit Documentation' , man_authors, 3),
('hashkit_create' , 'hashkit_free' , u'libhashkit Documentation' , man_authors, 3),
('hashkit_create' , 'hashkit_is_allocated' , u'libhashkit Documentation' , man_authors, 3),
+ ('hashkit_function' , 'hashkit_function' , u'libhashkit Documentation' , man_authors, 3),
+ ('hashkit_function' , 'hashkit_get_distribution_function' , u'libhashkit Documentation' , man_authors, 3),
+ ('hashkit_function' , 'hashkit_get_function' , u'libhashkit Documentation' , man_authors, 3),
+ ('hashkit_function' , 'hashkit_set_function' , u'libhashkit Documentation' , man_authors, 3),
+ ('hashkit_function' , 'hashkit_set_custom_distribution_function',u'libhashkit Documentation' , man_authors, 3),
+ ('hashkit_function' , 'hashkit_set_custom_function' , u'libhashkit Documentation' , man_authors, 3),
+ ('hashkit_function' , 'hashkit_set_distribution_function' , u'libhashkit Documentation' , man_authors, 3),
('hashkit_functions' , 'hashkit_crc32' , u'libhashkit Documentation' , man_authors, 3),
('hashkit_functions' , 'hashkit_fnv1_32' , u'libhashkit Documentation' , man_authors, 3),
('hashkit_functions' , 'hashkit_fnv1_64' , u'libhashkit Documentation' , man_authors, 3),
('bin/memtouch' , 'memtouch' , u'libmemcached Documentation' , man_authors, 1),
]
+rst_prolog = """
+.. |libhashkit_version| replace:: @LIBHASHKIT_VERSION_MAJOR@.@LIBHASHKIT_VERSION_MINOR@
+.. |libmemcached_version| replace:: @LIBMEMCACHED_VERSION_MAJOR@.@LIBMEMCACHED_VERSION_MINOR@
+"""
+
@SPHINX_CONF_APPEND@
-============================
Creating a hashkit structure
============================
-.. highlightlang:: c
-
.. index:: object: hashkit_st
---------
+Create, copy and free a hashkit structure
+
SYNOPSIS
--------
-.. describe:: #include <libhashkit/hashkit.h>
-
-.. c:type:: hashkit_st
+#include <libhashkit-|libhashkit_version|/hashkit.h>
+ Compile and link with -lhashkit
+
+.. c:type:: struct hashkit_st
+
+ typedef struct hashkit_st hashkit_st;
.. c:function:: hashkit_st *hashkit_create(hashkit_st *hash)
.. c:function:: bool hashkit_is_allocated(const hashkit_st *hash)
-Compile and link with -lhashkit
-
------------
DESCRIPTION
-----------
-
The :c:func:`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
The :c:func:`hashkit_is_allocated` reports where the memory was allocated
for a hashkit object.
-
-------------
RETURN VALUE
------------
-
:c:func:`hashkit_create` and :c:func:`hashkit_clone` will return NULL on
failure or non-NULL on success.
object was allocated inside of :c:func:`hashkit_create` or
:c:func:`hashkit_clone`, otherwise it is false and was user-supplied memory.
-
-
---------
SEE ALSO
--------
+.. only:: man
+
+ :manpage:`libhashkit(3)`
+ :manpage:`hashkit_value(3)`
+ :manpage:`hashkit_function3)`
-:manpage:`hashkit_create(3)` :manpage:`hashkit_value(3)` :manpage:`hashkit_set_hash_fn(3)`
+.. only:: html
+ * :doc:`libhashkit`
+ * :doc:`hashkit_value`
+ * :doc:`hashkit_function`
--- /dev/null
+Set Hash Function
+=================
+
+.. index:: object: hashkit_st
+.. index:: object: hashkit_hash_fn
+
+Set hash functions to use for calculating values for keys
+
+SYNOPSIS
+--------
+
+#include <libhashkit-|libhashkit_version|/hashkit.h>
+ Compile and link with -lhashkit
+
+.. c:type:: hashkit_hash_fn
+
+.. code-block:: c
+
+ typedef uint32_t (*hashkit_hash_fn)(const char *key, size_t key_length, void *context);
+
+.. c:function:: hashkit_return_t hashkit_set_function(hashkit_st *hash, hashkit_hash_algorithm_t hash_algorithm)
+
+.. c:function:: hashkit_return_t hashkit_set_custom_function(hashkit_st *hash, hashkit_hash_fn function, void *context)
+
+.. c:function:: hashkit_hash_algorithm_t hashkit_get_function(const hashkit_st *hash)
+
+.. c:function:: hashkit_return_t hashkit_set_distribution_function(hashkit_st *hash, hashkit_hash_algorithm_t hash_algorithm)
+
+.. c:function:: hashkit_return_t hashkit_set_custom_distribution_function(hashkit_st *self, hashkit_hash_fn function, void *context)
+
+.. c:function:: hashkit_hash_algorithm_t hashkit_get_distribution_function(const hashkit_st *self)
+
+DESCRIPTION
+-----------
+
+These functions are used to set and retrieve the key and distribution hash functions.
+
+
+RETURN VALUE
+------------
+
+:c:func:`hashkit_set_function`, :c:func:`hashkit_set_custom_function` and the distribution equivalents
+return :c:type:`hashkit_return_t` `HASHKIT_SUCCESS` on success.
+
+:c:func:`hashkit_get_function` and :c:func:`hashkit_get_distribution_function` return :c:type:`hashkit_hash_algorithm_t`
+indicating the hash function used.
+
+SEE ALSO
+--------
+
+.. only:: man
+
+ :manpage:`libhashkit(3)`
+ :manpage:`hashkit_create(3)`
+ :manpage:`hashkit_functions(3)`
+
+.. only:: html
+
+ * :doc:`libhashkit`
+ * :doc:`hashkit_create`
+ * :doc:`hashkit_functions`
+
-================
Available Hashes
================
Various hash functions to use for calculating values for keys
-
---------
SYNOPSIS
--------
-#include <libhashkit/hashkit.h>
-
+#include <libhashkit-|libhashkit_version|/hashkit.h>
+ Compile and link with -lhashkit
+
.. c:function:: uint32_t hashkit_default(const char *key, size_t key_length)
.. c:function:: uint32_t hashkit_fnv1_64(const char *key, size_t key_length)
.. c:function:: uint32_t hashkit_murmur(const char *key, size_t key_length)
+.. c:function:: uint32_t hashkit_murmur3(const char *key, size_t key_length)
+
.. c:function:: uint32_t hashkit_jenkins(const char *key, size_t key_length)
.. c:function:: uint32_t hashkit_md5(const char *key, size_t key_length)
-Compile and link with -lhashkit
-
-
------------
DESCRIPTION
-----------
-
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).
+to :c:func:`hashkit_set_hash_fn` or :c:func:`hashkit_set_continuum_hash_fn`.
-The hashkit_hsieh is only available if the library is built with
+The :c:func:`hashkit_hsieh` is only available if the library is built with
the appropriate flag enabled.
-
-------------
RETURN VALUE
------------
-
A 32-bit hash value.
-
-
---------
SEE ALSO
--------
+.. only:: man
+
+ :manpage:`libhashkit(3)`
+ :manpage:`hashkit_create(3)`
+ :manpage:`hashkit_function(3)`
+
+.. only:: html
-:manpage:`hashkit_create(3)` :manpage:`hashkit_value(3)` :manpage:`hashkit_set_hash_fn(3)` :manpage:`hashkit_set_continuum_hash_fn(3)`
+ * :doc:`libhashkit`
+ * :doc:`hashkit_create`
+ * :doc:`hashkit_function`
-=============
-hashkit_value
-=============
-
+Generate hash value
+===================
.. index:: object: hashkit_st
Generate a value for the given key
---------
SYNOPSIS
--------
-
-#include <libhashkit/hashkit.h>
+#include <libhashkit-|libhashkit_version|/hashkit.h>
+ Compile and link with -lhashkit
.. c:function:: uint32_t hashkit_value(hashkit_st *hash, const char *key, size_t key_length)
-
-Compile and link with -lhashkit
------------
DESCRIPTION
-----------
-
The :c:func:`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.
-
-------------
RETURN VALUE
------------
-
A 32-bit hash value.
-
---------
SEE ALSO
--------
+.. only:: man
+
+ :manpage:`libhashkit(3)`
+ :manpage:`hashkit_create(3)`
+ :manpage:`hashkit_function(3)`
+ :manpage:`hashkit_functions(3)`
+
+.. only:: html
-:manpage:`hashkit_create(3)` :manpage:`hashkit_set_distribution(3)` :manpage:`hashkit_set_hash_fn(3)`
+ * :doc:`libhashkit`
+ * :doc:`hashkit_create`
+ * :doc:`hashkit_function`
+ * :doc:`hashkit_functions`
libhashkit
hashkit_create
+ hashkit_function
hashkit_functions
hashkit_value
-======================
Introducing libhashkit
======================
+SYNOPSIS
+--------
-.. code-block:: c
-
- cc [ flag ... ] file ... -lhashkit
-
- #include <libhashkit/hashkit.h>
-
-
+#include <libhashkit-|libhashkit_version|/hashkit.h>
+ Compile and link with -lhashkit.
------------
DESCRIPTION
-----------
+libhashkit is a small and thread-safe client library that provides a collection of useful hashing algorithm.
-libhashkit is a small and thread-safe client library that provides a collection of useful hashing algorithm. libhashkit is distributed with libmemcached.
+libhashkit is distributed with libmemcached.
-
-
---------
SEE ALSO
--------
-:manpage:`libhashkit(3)`
+.. only:: man
+
+ :manpage:`libmemcached(3)`
+ :manpage:`hashkit_create(3)`
+ :manpage:`hashkit_function(3)`
+ :manpage:`hashkit_functions(3)`
+ :manpage:`hashkit_value(3)`
+
+.. only:: html
+
+ * :doc:`libmemcached`
+ * :doc:`hashkit_create`
+ * :doc:`hashkit_function`
+ * :doc:`hashkit_functions`
+ * :doc:`hashkit_value`
SEE ALSO
--------
-:manpage:`memcached(1)` :manpage:`libmemcached(3)` :manpage:`memcached_strerror(3)`
+.. only:: man
+
+ :manpage:`memcached(1)` :manpage:`libmemcached(3)` :manpage:`memcached_strerror(3)`
SEE ALSO
--------
-:manpage:`memcached(1)` :manpage:`libmemcached(3)` :manpage:`memcached_strerror(3)`
+.. only:: man
+
+ :manpage:`memcached(1)` :manpage:`libmemcached(3)` :manpage:`memcached_strerror(3)`
--------
#include <libmemcached/memcached.h>
-
-Compile and link with -lmemcached
+ Compile and link with -lmemcached
=======
-libMemcached is an open source C/C++ client library and tools for the memcached server (http://memcached.org/). It has been designed to be light on memory usage, thread safe, and provide full access to server side methods.
+libMemcached is an open source C/C++ client library and tools for the memcached server (http://memcached.org/).
+It has been designed to be light on memory usage, thread safe, and provide full access to server side methods.
libMemcached was designed to provide the greatest number of options to use Memcached. Some of the features provided:
This value can be translated to a printable string with
:c:type:`memcached_strerror`.
-Objects are stored on servers by hashing keys. The hash value maps the key to a particular server. All clients understand how this hashing works, so it is possibly to reliably both push data to a server and retrieve data from a server.
+Objects are stored on servers by hashing keys. The hash value maps the key to a particular server.
+All clients understand how this hashing works, so it is possibly to reliably both push data to a server and retrieve data from a server.
Group keys can be optionally used to group sets of objects with servers.
Some features of the library must be enabled through :c:func:`memcached_behavior_set`.
-Hope you enjoy it!
-
---------
CONSTANTS
SEE ALSO
--------
-
-:manpage:`memcached(1)` :manpage:`libmemcached_examples(3)`
-:manpage:`libmemcached(1)` :manpage:`memcat(1)` :manpage:`memcp(1)`
-:manpage:`memflush(1)` :manpage:`memrm(1)` :manpage:`memslap(1)`
-:manpage:`memstat(1)` :manpage:`memcached_fetch(3)`
-:manpage:`memcached_replace(3)` :manpage:`memcached_server_list_free(3)`
-:manpage:`libmemcached_examples(3)` :manpage:`memcached_clone(3)`
-:manpage:`memcached_free(3)` :manpage:`memcached_server_add(3)`
-:manpage:`memcached_server_push(3)` :manpage:`memcached_add(3)`
-:manpage:`memcached_get(3)` :manpage:`memcached_server_count(3)`
-:manpage:`memcached_create(3)` :manpage:`memcached_increment(3)`
-:manpage:`memcached_server_list(3)` :manpage:`memcached_set(3)`
-:manpage:`memcached_decrement(3)` :manpage:`memcached_mget(3)`
-:manpage:`memcached_server_list_append(3)` :manpage:`memcached_strerror(3)`
-:manpage:`memcached_delete(3)` :manpage:`memcached_quit(3)`
-:manpage:`memcached_server_list_count(3)` :manpage:`memcached_verbosity(3)`
-:manpage:`memcached_server_add_unix_socket(3)`
-:manpage:`memcached_result_create(3)` :manpage:`memcached_result_free(3)`
-:manpage:`memcached_result_key_value(3)`
-:manpage:`memcached_result_key_length(3)`
-:manpage:`memcached_result_value(3)` :manpage:`memcached_result_length(3)`
-:manpage:`memcached_result_flags(3)` :manpage:`memcached_result_cas(3)`
-:manpage:`memcached_result_st(3)` :manpage:`memcached_append(3)`
-:manpage:`memcached_prepend(3)` :manpage:`memcached_fetch_result(3)`
-:manpage:`memerror(1)` :manpage:`memcached_get_by_key(3)`
-:manpage:`memcached_mget_by_key(3)` :manpage:`memcached_delete_by_key(3)`
-:manpage:`memcached_fetch_execute(3)` :manpage:`memcached_callback_get(3)`
-:manpage:`memcached_callback_set(3)` :manpage:`memcached_version(3)`
-:manpage:`memcached_lib_version(3)` :manpage:`memcached_result_set_value(3)`
-:manpage:`memcached_dump(3)` :manpage:`memdump(1)`
-:manpage:`memcached_set_memory_allocators(3)`
-:manpage:`memcached_get_memory_allocators(3)`
-:manpage:`memcached_get_user_data(3)` :manpage:`memcached_set_user_data(3)`
+.. only:: man
+
+ :manpage:`memcached(1)`
+ :manpage:`memaslap(1)`
+ :manpage:`memcapable(1)`
+ :manpage:`memcat(1)`
+ :manpage:`memcp(1)`
+ :manpage:`memdump(1)`
+ :manpage:`memerror(1)`
+ :manpage:`memexist(1)`
+ :manpage:`memflush(1)`
+ :manpage:`memparse(1)`
+ :manpage:`memping(1)`
+ :manpage:`memrm(1)`
+ :manpage:`memslap(1)`
+ :manpage:`memstat(1)`
+ :manpage:`memtouch(1)`
+ :manpage:`libhashkit(3)`
+ :manpage:`libmemcached_configuration(3)`
+ :manpage:`libmemcached_examples(3)`
+ :manpage:`libmemcachedutil(3)`
+ :manpage:`memcached_analyze(3)`
+ :manpage:`memcached_append(3)`
+ :manpage:`memcached_auto(3)`
+ :manpage:`memcached_behavior(3)`
+ :manpage:`memcached_callback(3)`
+ :manpage:`memcached_cas(3)`
+ :manpage:`memcached_create(3)`
+ :manpage:`memcached_delete(3)`
+ :manpage:`memcached_dump(3)`
+ :manpage:`memcached_exist(3)`
+ :manpage:`memcached_fetch(3)`
+ :manpage:`memcached_flush(3)`
+ :manpage:`memcached_flush_buffers(3)`
+ :manpage:`memcached_generate_hash_value(3)`
+ :manpage:`memcached_get(3)`
+ :manpage:`memcached_last_error_message(3)`
+ :manpage:`memcached_memory_allocators(3)`
+ :manpage:`memcached_pool(3)`
+ :manpage:`memcached_quit(3)`
+ :manpage:`memcached_result_st(3)`
+ :manpage:`memcached_return_t(3)`
+ :manpage:`memcached_sasl(3)`
+ :manpage:`memcached_servers(3)`
+ :manpage:`memcached_server_st(3)`
+ :manpage:`memcached_set(3)`
+ :manpage:`memcached_set_encoding_key(3)`
+ :manpage:`memcached_stats(3)`
+ :manpage:`memcached_strerror(3)`
+ :manpage:`memcached_touch(3)`
+ :manpage:`memcached_user_data(3)`
+ :manpage:`memcached_verbosity(3)`
+ :manpage:`memcached_version(3)`
+
+.. only:: html
+
+ * :manpage:`memcached(1)`
+ * :doc:`bin/memaslap`
+ * :doc:`bin/memcapable`
+ * :doc:`bin/memcat`
+ * :doc:`bin/memcp`
+ * :doc:`bin/memdump`
+ * :doc:`bin/memerror`
+ * :doc:`bin/memexist`
+ * :doc:`bin/memflush`
+ * :doc:`bin/memparse`
+ * :doc:`bin/memping`
+ * :doc:`bin/memrm`
+ * :doc:`bin/memslap`
+ * :doc:`bin/memstat`
+ * :doc:`bin/memtouch`
+ * :doc:`libhashkit`
+ * :doc:`libmemcached_configuration`
+ * :doc:`libmemcached_examples`
+ * :doc:`libmemcachedutil`
+ * :doc:`memcached_analyze`
+ * :doc:`memcached_append`
+ * :doc:`memcached_auto`
+ * :doc:`memcached_behavior`
+ * :doc:`memcached_callback`
+ * :doc:`memcached_cas`
+ * :doc:`memcached_create`
+ * :doc:`memcached_delete`
+ * :doc:`memcached_dump`
+ * :doc:`libmemcached/memcached_exist`
+ * :doc:`libmemcached/memcached_fetch`
+ * :doc:`memcached_flush`
+ * :doc:`memcached_flush_buffers`
+ * :doc:`memcached_generate_hash_value`
+ * :doc:`memcached_get`
+ * :doc:`libmemcached/memcached_last_error_message`
+ * :doc:`memcached_memory_allocators`
+ * :doc:`memcached_pool`
+ * :doc:`memcached_quit`
+ * :doc:`memcached_result_st`
+ * :doc:`libmemcached/memcached_return_t`
+ * :doc:`memcached_sasl`
+ * :doc:`memcached_servers`
+ * :doc:`memcached_server_st`
+ * :doc:`memcached_set`
+ * :doc:`libmemcached-1.0/memcached_set_encoding_key`
+ * :doc:`memcached_stats`
+ * :doc:`memcached_strerror`
+ * :doc:`libmemcached-1.0/memcached_touch`
+ * :doc:`memcached_user_data`
+ * :doc:`memcached_verbosity`
+ * :doc:`memcached_version`
SEE ALSO
--------
+.. only:: man
-:manpage:`memcached(1)` :manpage:`libmemcached(3)` :manpage:`memcached_strerror(3)`
+ :manpage:`memcached(1)` :manpage:`libmemcached(3)` :manpage:`memcached_strerror(3)`
SEE ALSO
--------
-:manpage:`memcached(1)` :manpage:`libmemcached(3)` :manpage:`memcached_strerror(3)` :manpage:`memcached_fetch_result(3)`
+.. only:: man
+
+ :manpage:`memcached(1)` :manpage:`libmemcached(3)` :manpage:`memcached_strerror(3)` :manpage:`memcached_fetch_result(3)`
SEE ALSO
--------
-:manpage:`memcached(1)` :manpage:`libmemcached(3)` :manpage:`memcached_strerror(3)`
+.. only:: man
+
+ :manpage:`memcached(1)` :manpage:`libmemcached(3)` :manpage:`memcached_strerror(3)`
SEE ALSO
--------
-:manpage:`memcached` :manpage:`libmemcached` :manpage:`memcached_str_error`
+.. only:: man
+
+ :manpage:`memcached` :manpage:`libmemcached` :manpage:`memcached_str_error`
SYNOPSIS
--------
-.. describe:: #include <libmemcached-1.0/memcached.h>
+#include <libmemcached-1.0/memcached.h>
+ Compile and link with -lmemcached
-.. c:function:: memcached_st *\
- memcached(const char *string, size_t string_length)
+.. c:function:: memcached_st *memcached(const char *string, size_t string_length)
-.. c:function:: memcached_return_t \
- libmemcached_check_configuration(const char *option_string, size_t length, \
- char *error_buffer, size_t error_buffer_size)
-
-Compile and link with -lmemcached
+.. c:function:: memcached_return_t libmemcached_check_configuration(const char *option_string, size_t length, char *error_buffer, size_t error_buffer_size)
-----------
SEE ALSO
--------
+.. only:: man
+
+ :manpage:`memcached(1)`
+ :manpage:`libmemcached(3)`
+ :manpage:`memcached_strerror(3)`
+
+.. only:: html
-:manpage:`memcached(1)` :manpage:`libmemcached(3)` :manpage:`memcached_strerror(3)`
+ * :manpage:`memcached(1)`
+ * :doc:`libmemcached`
+ * :doc:`memcached_strerror`
SEE ALSO
--------
-
:manpage:`memcached(1)`
SYNOPSIS
--------
-.. code-block:: c
-
- cc [ flag ... ] file ... -lmemcachedutil
-
- #include <libmemcached/memcached_util.h>
-
+#include <libmemcached/memcached_util.h>
+ Compile and link with -lmemcachedutil
-----------
-----------
-:program:`libmemcachedutil` is a small and thread-safe client library that
-provides extra functionality built on top of :program:`libmemcached`.
+`libmemcachedutil` is a small and thread-safe client library that
+provides extra functionality built on top of `libmemcached`.
-------
THREADS
-------
-
Do not try to access an instance of :c:type:`memcached_st` from multiple threads
at the same time. If you want to access memcached from multiple threads
you should either clone the :c:type:`memcached_st`, or use the memcached pool
-implementation. see :c:func:`memcached_pool_create`.
+implementation. See :c:func:`memcached_pool_create`.
--------
SEE ALSO
--------
+.. only:: man
+
+ :manpage:`libmemcached(3)`
+ :manpage:`memcached_pool(3)`
+ :manpage:`memcached_pool_destroy(3)`
+ :manpage:`memcached_pool_pop(3)`
+ :manpage:`memcached_pool_push(3)`
-:manpage:`libmemcached(3)` :manpage:`memcached_pool_create(3)` :manpage:`memcached_pool_destroy(3)` :manpage:`memcached_pool_pop(3)` :manpage:`memcached_pool_push(3)`
+.. only:: html
+ * :doc:`libmemcached`
+ * :doc:`memcached_pool`
SEE ALSO
--------
+.. only:: man
-:manpage:`memcached(1)` :manpage:`libmemcached(3)` :manpage:`memcached_strerror(3)`
+ :manpage:`memcached(1)` :manpage:`libmemcached(3)` :manpage:`memcached_strerror(3)`
SEE ALSO
--------
+.. only:: man
-:manpage:`memcached(1)` :manpage:`libmemcached(3)` :manpage:`memcached_strerror(3)` :manpage:`memcached_set(3)` :manpage:`memcached_add(3)` :manpage:`memcached_cas(3)` :manpage:`memcached_replace(3)`
+ :manpage:`memcached(1)` :manpage:`libmemcached(3)` :manpage:`memcached_strerror(3)` :manpage:`memcached_set(3)` :manpage:`memcached_add(3)` :manpage:`memcached_cas(3)` :manpage:`memcached_replace(3)`
SEE ALSO
--------
+.. only:: man
-:manpage:`memcached(1)` :manpage:`libmemcached(3)` :manpage:`memcached_strerror(3)`
+ :manpage:`memcached(1)` :manpage:`libmemcached(3)` :manpage:`memcached_strerror(3)`
SEE ALSO
--------
+.. only:: man
-:manpage:`memcached(1)` :manpage:`libmemcached(3)` :manpage:`memcached_strerror(3)`
+ :manpage:`memcached(1)` :manpage:`libmemcached(3)` :manpage:`memcached_strerror(3)`
SEE ALSO
--------
+.. only:: man
-:manpage:`memcached(1)` :manpage:`libmemcached(3)` :manpage:`memcached_strerror(3)`
+ :manpage:`memcached(1)` :manpage:`libmemcached(3)` :manpage:`memcached_strerror(3)`
SEE ALSO
--------
+.. only:: man
-:manpage:`memcached(1)` :manpage:`libmemcached(3)` :manpage:`memcached_strerror(3)` :manpage:`memcached_set(3)` :manpage:`memcached_append(3)` :manpage:`memcached_add(3)` :manpage:`memcached_prepend(3)` :manpage:`memcached_replace(3)`
+ :manpage:`memcached(1)` :manpage:`libmemcached(3)` :manpage:`memcached_strerror(3)` :manpage:`memcached_set(3)` :manpage:`memcached_append(3)` :manpage:`memcached_add(3)` :manpage:`memcached_prepend(3)` :manpage:`memcached_replace(3)`
SEE ALSO
--------
+.. only:: man
-:manpage:`memcached(1)` :manpage:`libmemcached(3)` :manpage:`memcached_strerror(3)`
+ :manpage:`memcached(1)` :manpage:`libmemcached(3)` :manpage:`memcached_strerror(3)`
SEE ALSO
--------
-:manpage:`memcached(1)` :manpage:`libmemcached(3)` :manpage:`memcached_strerror(3)`
+.. only:: man
+
+ :manpage:`memcached(1)` :manpage:`libmemcached(3)` :manpage:`memcached_strerror(3)`
SEE ALSO
--------
+.. only:: man
-:manpage:`memcached(1)` :manpage:`libmemcached(3)` :manpage:`memcached_strerror(3)`
+ :manpage:`memcached(1)` :manpage:`libmemcached(3)` :manpage:`memcached_strerror(3)`
SEE ALSO
--------
-:manpage:`memcached(1)` :manpage:`libmemcached(3)` :manpage:`memcached_strerror(3)`
+.. only:: man
+
+ :manpage:`memcached(1)` :manpage:`libmemcached(3)` :manpage:`memcached_strerror(3)`
SEE ALSO
--------
+.. only:: man
-:manpage:`memcached(1)` :manpage:`libmemcached(3)` :manpage:`memcached_strerror(3)`
+ :manpage:`memcached(1)` :manpage:`libmemcached(3)` :manpage:`memcached_strerror(3)`
SEE ALSO
--------
+.. only:: man
-:manpage:`memcached(1)` :manpage:`libmemcached(3)` :manpage:`memcached_strerror(3)`
+ :manpage:`memcached(1)` :manpage:`libmemcached(3)` :manpage:`memcached_strerror(3)`
SEE ALSO
--------
-:manpage:`memcached(1)` :manpage:`libmemcached(3)` :manpage:`memcached_strerror(3)`
+.. only:: man
+
+ :manpage:`memcached(1)` :manpage:`libmemcached(3)` :manpage:`memcached_strerror(3)`
SEE ALSO
--------
-:manpage:`memcached(1)` :manpage:`libmemcached(3)` :manpage:`memcached_strerror(3)`
+.. only:: man
+
+ :manpage:`memcached(1)` :manpage:`libmemcached(3)` :manpage:`memcached_strerror(3)`
--------
#include <libmemcached/memcached_pool.h>
+ Compile and link with -lmemcachedutil -lmemcached
-.. c:type:: memcached_pool_st
+.. c:type:: struct memcached_pool_st
+
+ typedef struct memcached_pool_st memcached_pool_st;
.. c:function:: memcached_pool_st* memcached_pool(const char *option_string, size_t option_string_length)
-.. c:function:: memcached_pool_st* memcached_pool_create(memcached_st* mmc, int initial, int max)
-.. deprecated:: 0.46
- Use :c:func:`memcached_pool`
-
.. c:function:: memcached_st* memcached_pool_destroy(memcached_pool_st* pool)
-.. c:function:: memcached_st* memcached_pool_pop(memcached_pool_st* pool, bool block, memcached_return_t *rc)
-.. deprecated:: 0.53
- Use :c:func:`memcached_pool_fetch`
-
.. c:function:: memcached_st* memcached_pool_fetch(memcached_pool_st*, struct timespec* relative_time, memcached_return_t* rc)
-
.. versionadded:: 0.53
Synonym for memcached_pool_pop
-.. c:function:: memcached_return_t memcached_pool_push(memcached_pool_st* pool, memcached_st *mmc)
-.. deprecated:: 0.53
- Use :c:func:`memcached_pool_push`
-
.. c:function:: memcached_return_t memcached_pool_release(memcached_pool_st* pool, memcached_st* mmc)
.. versionadded:: 0.53
Synonym for memcached_pool_push.
.. c:function:: memcached_return_t memcached_pool_behavior_get(memcached_pool_st *pool, memcached_behavior_t flag, uint64_t *value)
-Compile and link with -lmemcachedutil -lmemcached
+
+.. c:function:: memcached_pool_st* memcached_pool_create(memcached_st* mmc, int initial, int max)
+.. deprecated:: 0.46
+ Use :c:func:`memcached_pool`
+
+.. c:function:: memcached_st* memcached_pool_pop(memcached_pool_st* pool, bool block, memcached_return_t *rc)
+.. deprecated:: 0.53
+ Use :c:func:`memcached_pool_fetch`
+
+.. c:function:: memcached_return_t memcached_pool_push(memcached_pool_st* pool, memcached_st *mmc)
+.. deprecated:: 0.53
+ Use :c:func:`memcached_pool_release`
+
-----------
DESCRIPTION
:c:func:`memcached_pool` is used to create a connection pool of objects you
may use to remove the overhead of using memcached_clone for short lived
-:c:type:`memcached_st` objects. Please see :doc:`libmemcached_configuration` for details on the format of the configuration string.
+:c:type:`memcached_st` objects. Please see :doc:`libmemcached_configuration`
+for details on the format of the configuration string.
:c:func:`memcached_pool_destroy` is used to destroy the connection pool
created with :c:func:`memcached_pool_create` and release all allocated
resources. It will return the pointer to the :c:type:`memcached_st` structure
-passed as an argument to :c:func:`memcached_pool_create`, and returns the ownership of the pointer to the caller when created with :c:func:`memcached_pool_create`, otherwise NULL is returned..
+passed as an argument to :c:func:`memcached_pool_create`, and returns the
+ownership of the pointer to the caller when created with
+:c:func:`memcached_pool_create`, otherwise NULL is returned..
:c:func:`memcached_pool_fetch` is used to fetch a connection structure from the
connection pool. The relative_time argument specifies if the function should
block and wait for a connection structure to be available if we try
to exceed the maximum size. You need to specify time in relative time.
-:c:func:`memcached_pool_release` is used to return a connection structure back to the pool.
+:c:func:`memcached_pool_release` is used to return a connection structure back
+to the pool.
-:c:func:`memcached_pool_behavior_get` and :c:func:`memcached_pool_behavior_set` is used to get/set behavior flags on all connections in the pool.
+:c:func:`memcached_pool_behavior_get` and :c:func:`memcached_pool_behavior_set`
+is used to get/set behavior flags on all connections in the pool.
-Both :c:func:`memcached_pool_release` and :c:func:`memcached_pool_fetch` are thread safe.
+Both :c:func:`memcached_pool_release` and :c:func:`memcached_pool_fetch` are
+thread safe.
------
RETURN
------
-:c:func:`memcached_pool_destroy` returns the pointer (and ownership) to the :c:type:`memcached_st` structure used to create the pool. If connections are in use it returns NULL.
+:c:func:`memcached_pool_destroy` returns the pointer (and ownership) to the
+:c:type:`memcached_st` structure used to create the pool. If connections are in
+use it returns NULL.
-:c:func:`memcached_pool_pop` returns a pointer to a :c:type:`memcached_st` structure from the pool (or NULL if an allocation cannot be satisfied).
+:c:func:`memcached_pool_pop` returns a pointer to a :c:type:`memcached_st`
+structure from the pool (or NULL if an allocation cannot be satisfied).
:c:func:`memcached_pool_release` returns :c:type:`MEMCACHED_SUCCESS` upon success.
-:c:func:`memcached_pool_behavior_get` and :c:func:`memcached_pool_behavior_get` returns :c:type:`MEMCACHED_SUCCESS` upon success.
+:c:func:`memcached_pool_behavior_get` and :c:func:`memcached_pool_behavior_get`
+returns :c:type:`MEMCACHED_SUCCESS` upon success.
-If any methods returns MEMCACHED_IN_PROGRESS then a lock on the pool could not be obtained. If any of the parameters passed to any of these functions is invalid, MEMCACHED_INVALID_ARGUMENTS will be returned.
+If any methods returns MEMCACHED_IN_PROGRESS then a lock on the pool could not
+be obtained. If any of the parameters passed to any of these functions is
+invalid, MEMCACHED_INVALID_ARGUMENTS will be returned.
-memcached_pool_fetch may return MEMCACHED_TIMEOUT if a timeout occurs while waiting for a free memcached_st. MEMCACHED_NOTFOUND if no memcached_st was available.
+memcached_pool_fetch may return MEMCACHED_TIMEOUT if a timeout occurs while
+waiting for a free memcached_st. MEMCACHED_NOTFOUND if no memcached_st was
+available.
SEE ALSO
--------
-:manpage:`memcached(1)` :manpage:`libmemcached(3)` :manpage:`memcached_strerror(3)` :manpage:`libmemcached_configuration(3)`
+.. only:: man
+
+ :manpage:`memcached(1)`
+ :manpage:`libmemcached(3)`
+ :manpage:`libmemcached_configuration(3)`
+ :manpage:`memcached_strerror(3)`
+
+.. only:: html
+
+ * :manpage:`memcached(1)`
+ * :doc:`libmemcached`
+ * :doc:`libmemcached_configuration`
+ * :doc:`memcached_strerror`
SEE ALSO
--------
-:manpage:`memcached(1)` :manpage:`libmemcached(3)` :manpage:`memcached_strerror(3)`
+.. only:: man
+
+ :manpage:`memcached(1)` :manpage:`libmemcached(3)` :manpage:`memcached_strerror(3)`
SEE ALSO
--------
-:manpage:`memcached(1)` :manpage:`libmemcached(3)` :manpage:`memcached_strerror(3)`
+.. only:: man
+
+ :manpage:`memcached(1)` :manpage:`libmemcached(3)` :manpage:`memcached_strerror(3)`
SEE ALSO
--------
+.. only:: man
-:manpage:`memcached(1)` :manpage:`libmemcached(3)` :manpage:`memcached_strerror(3)`
+ :manpage:`memcached(1)` :manpage:`libmemcached(3)` :manpage:`memcached_strerror(3)`
SEE ALSO
--------
+.. only:: man
-:manpage:`memcached(1)` :manpage:`libmemcached(3)` :manpage:`memcached_strerror(3)`
+ :manpage:`memcached(1)` :manpage:`libmemcached(3)` :manpage:`memcached_strerror(3)`
SEE ALSO
--------
+.. only:: man
-:manpage:`memcached(1)` :manpage:`libmemcached(3)` :manpage:`memcached_strerror(3)`
+ :manpage:`memcached(1)` :manpage:`libmemcached(3)` :manpage:`memcached_strerror(3)`
SEE ALSO
--------
+.. only:: man
-:manpage:`memcached(1)` :manpage:`libmemcached(3)` :manpage:`memcached_strerror(3)` :manpage:`memcached_prepend(3)` :manpage:`memcached_cas(3)` :manpage:`memcached_append(3)`
+ :manpage:`memcached(1)` :manpage:`libmemcached(3)` :manpage:`memcached_strerror(3)` :manpage:`memcached_prepend(3)` :manpage:`memcached_cas(3)` :manpage:`memcached_append(3)`
SEE ALSO
--------
+.. only:: man
-:manpage:`memcached(1)` :manpage:`libmemcached(3)` :manpage:`memcached_strerror(3)`
+ :manpage:`memcached(1)` :manpage:`libmemcached(3)` :manpage:`memcached_strerror(3)`
SEE ALSO
--------
+.. only:: man
-:manpage:`memcached(1)` :manpage:`libmemcached(3)`
+ :manpage:`memcached(1)` :manpage:`libmemcached(3)`
SEE ALSO
--------
+.. only:: man
-:manpage:`memcached(1)` :manpage:`libmemcached(3)`
+ :manpage:`memcached(1)` :manpage:`libmemcached(3)`
SEE ALSO
--------
+.. only:: man
-:manpage:`memcached(1)` :manpage:`libmemcached(3)` :manpage:`memcached_strerror(3)`
+ :manpage:`memcached(1)` :manpage:`libmemcached(3)` :manpage:`memcached_strerror(3)`
SEE ALSO
--------
+.. only:: man
-:manpage:`memcached(1)` :manpage:`libmemcached(3)` :manpage:`memcached_strerror(3)`
+ :manpage:`memcached(1)` :manpage:`libmemcached(3)` :manpage:`memcached_strerror(3)`
configure_file(configure.h.in configure.h @ONLY)
-install_public_headers(
- libhashkit-1.0
-
+install_public_headers(libhashkit-1.0
algorithm.h
basic_string.h
behavior.h