-.. highlight:: perl
+========================================
+Use custom allocators for embedded usage
+========================================
+.. index:: object: memcached_st
-****
-NAME
-****
+Manage memory allocator functions
+--------
+SYNOPSIS
+--------
-memcached_set_memory_allocators, memcached_get_memory_allocators, memcached_set_memory_allocators_context - Manage memory allocator functions
+#include <libmemcached/memcached.h>
-*******
-LIBRARY
-*******
+.. 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 Client Library for memcached (libmemcached, -lmemcached)
+.. 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)
-********
-SYNOPSIS
-********
-
-
-
-.. code-block:: perl
-
- #include <memcached.h>
-
- 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);
-
-
-
-***********
+.. 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.
+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.
-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_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.
-memcached_get_memory_allocators() is used to get the currently used memory
-allocators by a mamcached handle.
+:c:func:`memcached_get_memory_allocators` is used to get the currently used
+memory allocators by a mamcached handle.
-memcached_get_memory_allocators_context() returns the void \* that was
-passed in during the call to memcached_set_memory_allocators().
+: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
own space for memory.
-******
+------
RETURN
-******
+------
-memcached_set_memory_allocators() return MEMCACHED_SUCCESS upon success,
-and MEMCACHED_FAILURE if you don't pass a complete set of function pointers.
+: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:
-`https://launchpad.net/libmemcached <https://launchpad.net/libmemcached>`_
-
-
-******
-AUTHOR
-******
-
+`http://libmemcached.org/ <http://libmemcached.org/>`_
-Trond Norbye, <trond.norbye@gmail.com>
-Brian Aker, <brian@tangent.orf<gt>
-
-********
+--------
SEE ALSO
-********
-
-
-memcached(1) libmemcached(3) memcached_get_user_data(3) memcached_set_user_data(3)
+--------
+:manpage:`memcached(1)` :manpage:`libmemcached(3)` :manpage:`memcached_strerror(3)`