summaryrefslogtreecommitdiff
path: root/docs/source/memcached_memory_allocators.rst
diff options
context:
space:
mode:
authorContinuous Integration <ci@tangent.org>2014-02-16 02:51:47 -0800
committerContinuous Integration <ci@tangent.org>2014-02-16 02:51:47 -0800
commite0871342c7fdc7cb9c518d686aab4519c1bda764 (patch)
tree0eb8f025a8916f509ede181662ae66a544ae49cd /docs/source/memcached_memory_allocators.rst
parentdbc62573e1a6dc8cbcc97d0898e8615b0916d6ab (diff)
parentf2a59b728c20f7fe78874dd41187ab3fb2db6c7e (diff)
downloadlibmemcached-e0871342c7fdc7cb9c518d686aab4519c1bda764.tar.gz
Merge bzr://soup.haus/ Build: jenkins-Libmemcached-472
Diffstat (limited to 'docs/source/memcached_memory_allocators.rst')
-rw-r--r--docs/source/memcached_memory_allocators.rst93
1 files changed, 93 insertions, 0 deletions
diff --git a/docs/source/memcached_memory_allocators.rst b/docs/source/memcached_memory_allocators.rst
new file mode 100644
index 00000000..12a4ce5e
--- /dev/null
+++ b/docs/source/memcached_memory_allocators.rst
@@ -0,0 +1,93 @@
+========================================
+Use custom allocators for embedded usage
+========================================
+
+.. index:: object: memcached_st
+
+Manage memory allocator functions
+
+--------
+SYNOPSIS
+--------
+
+
+#include <libmemcached/memcached.h>
+
+.. c:function:: 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)
+
+.. c:function:: 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)
+
+.. c:function:: void * memcached_get_memory_allocators_context(const memcached_st *ptr)
+
+.. c:function:: void * (*memcached_malloc_fn) (memcached_st *ptr, const size_t size, void *context)
+
+.. c:function:: void * (*memcached_realloc_fn) (memcached_st *ptr, void *mem, const size_t size, void *context)
+
+.. c:function:: void (*memcached_free_fn) (memcached_st *ptr, void *mem, void *context)
+
+.. c:function:: void * (*memcached_calloc_fn) (memcached_st *ptr, size_t nelem, const size_t elsize, void *context)
+
+Compile and link with -lmemcached
+
+
+
+-----------
+DESCRIPTION
+-----------
+
+
+libmemcached(3) allows you to specify your own memory allocators, optimized
+for your application. This enables libmemcached to be used inside of applications that have their own malloc implementation.
+
+:c:func:`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.
+
+:c:func:`memcached_get_memory_allocators` is used to get the currently used
+memory allocators by a mamcached handle.
+
+:c:func:`memcached_get_memory_allocators_context` returns the void \* that
+was passed in during the call to :c:func:`memcached_set_memory_allocators`.
+
+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.
+
+
+-----
+NOTES
+-----
+
+
+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.
+
+
+------
+RETURN
+------
+
+
+:c:func:`memcached_set_memory_allocators` return :c:type:`MEMCACHED_SUCCESS`
+upon success, and :c:type:`MEMCACHED_FAILURE` if you don't pass a complete set
+of function pointers.
+
+
+----
+HOME
+----
+
+
+To find out more information please check:
+`http://libmemcached.org/ <http://libmemcached.org/>`_
+
+
+--------
+SEE ALSO
+--------
+
+:manpage:`memcached(1)` :manpage:`libmemcached(3)` :manpage:`memcached_strerror(3)`