docs: sanitize
[awesomized/libmemcached] / docs / source / libmemcachedutil / memcached_pool.rst
diff --git a/docs/source/libmemcachedutil/memcached_pool.rst b/docs/source/libmemcachedutil/memcached_pool.rst
new file mode 100644 (file)
index 0000000..5417f1a
--- /dev/null
@@ -0,0 +1,117 @@
+============================
+Working with memcached pools
+============================
+
+--------
+SYNOPSIS
+--------
+
+#include <libmemcached/memcached_pool.h>
+  Compile and link with -lmemcachedutil -lmemcached
+
+.. type:: struct memcached_pool_st memcached_pool_st
+
+.. function:: memcached_pool_st* memcached_pool(const char *option_string, size_t option_string_length) 
+
+.. function:: memcached_st* memcached_pool_destroy(memcached_pool_st* pool)
+.. 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
+
+.. function:: memcached_return_t memcached_pool_release(memcached_pool_st* pool, memcached_st* mmc)
+.. versionadded:: 0.53
+   Synonym for memcached_pool_push.
+.. function:: memcached_return_t memcached_pool_behavior_set(memcached_pool_st *pool, memcached_behavior_t flag, uint64_t data)
+.. function:: memcached_return_t memcached_pool_behavior_get(memcached_pool_st *pool, memcached_behavior_t flag, uint64_t *value)
+
+
+.. function:: memcached_pool_st* memcached_pool_create(memcached_st* mmc, int initial, int max)
+.. deprecated:: 0.46
+   Use :func:`memcached_pool`
+
+.. function:: memcached_st* memcached_pool_pop(memcached_pool_st* pool, bool block, memcached_return_t *rc)
+.. deprecated:: 0.53
+   Use :func:`memcached_pool_fetch`
+
+.. function:: memcached_return_t memcached_pool_push(memcached_pool_st* pool, memcached_st *mmc)
+.. deprecated:: 0.53
+   Use :func:`memcached_pool_release`
+
+
+-----------
+DESCRIPTION
+-----------
+
+
+: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
+:type:`memcached_st` objects. Please see :doc:`../libmemcached/configuration`
+for details on the format of the configuration string.
+
+:func:`memcached_pool_destroy` is used to destroy the connection pool
+created with :func:`memcached_pool_create` and release all allocated
+resources. It will return the pointer to the :type:`memcached_st` structure
+passed as an argument to :func:`memcached_pool_create`, and returns the
+ownership of the pointer to the caller when created with
+:func:`memcached_pool_create`, otherwise NULL is returned..
+
+: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.
+
+:func:`memcached_pool_release` is used to return a connection structure back
+to the pool.
+
+:func:`memcached_pool_behavior_get` and :func:`memcached_pool_behavior_set`
+is used to get/set behavior flags on all connections in the pool.
+
+Both :func:`memcached_pool_release` and :func:`memcached_pool_fetch` are
+thread safe.
+
+------
+RETURN
+------
+
+:func:`memcached_pool_destroy` returns the pointer (and ownership) to the
+:type:`memcached_st` structure used to create the pool. If connections are in
+use it returns NULL.
+
+:func:`memcached_pool_pop` returns a pointer to a :type:`memcached_st`
+structure from the pool (or NULL if an allocation cannot be satisfied).
+
+:func:`memcached_pool_release` returns `MEMCACHED_SUCCESS` upon success.
+
+:func:`memcached_pool_behavior_get` and :func:`memcached_pool_behavior_get`
+returns `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.
+
+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
+--------
+
+.. 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:`../libmemcached/memcached_strerror`