e9aec619121ce82be6bd302f491364bd37bfdd6c
[m6w6/libmemcached] / libmemcached / memcached_memory_allocators.html
1
2
3 <!DOCTYPE html>
4 <html class="writer-html5" lang="en" >
5 <head>
6 <meta charset="utf-8">
7
8 <meta name="viewport" content="width=device-width, initial-scale=1.0">
9
10 <title>Use custom allocators for embedded usage &mdash; libmemcached 1.0.99 documentation</title>
11
12
13
14 <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
15 <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
16
17
18
19
20
21
22
23 <!--[if lt IE 9]>
24 <script src="../_static/js/html5shiv.min.js"></script>
25 <![endif]-->
26
27
28 <script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
29 <script src="../_static/jquery.js"></script>
30 <script src="../_static/underscore.js"></script>
31 <script src="../_static/doctools.js"></script>
32 <script src="../_static/language_data.js"></script>
33
34 <script type="text/javascript" src="../_static/js/theme.js"></script>
35
36
37 <link rel="index" title="Index" href="../genindex.html" />
38 <link rel="search" title="Search" href="../search.html" />
39 <link rel="copyright" title="Copyright" href="../copyright.html" />
40 <link rel="next" title="Storing custom user information in the client." href="memcached_user_data.html" />
41 <link rel="prev" title="Library callbacks" href="memcached_callback.html" />
42 </head>
43
44 <body class="wy-body-for-nav">
45
46
47 <div class="wy-grid-for-nav">
48
49 <nav data-toggle="wy-nav-shift" class="wy-nav-side">
50 <div class="wy-side-scroll">
51 <div class="wy-side-nav-search" >
52
53
54
55 <a href="../index.html" class="icon icon-home" alt="Documentation Home"> libmemcached
56
57
58
59 </a>
60
61
62
63
64 <div class="version">
65 1.0
66 </div>
67
68
69
70
71 <div role="search">
72 <form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
73 <input type="text" name="q" placeholder="Search docs" />
74 <input type="hidden" name="check_keywords" value="yes" />
75 <input type="hidden" name="area" value="default" />
76 </form>
77 </div>
78
79
80 </div>
81
82
83 <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
84
85
86
87
88
89
90 <p class="caption"><span class="caption-text">libmemcached</span></p>
91 <ul class="current">
92 <li class="toctree-l1"><a class="reference internal" href="../libmemcached.html">Introduction</a></li>
93 <li class="toctree-l1 current"><a class="reference internal" href="index.html">libmemcached API</a><ul class="current">
94 <li class="toctree-l2"><a class="reference internal" href="index_basics.html">Basics</a></li>
95 <li class="toctree-l2"><a class="reference internal" href="index_data.html">Working with Data</a></li>
96 <li class="toctree-l2"><a class="reference internal" href="index_errors.html">Messages and Errors</a></li>
97 <li class="toctree-l2 current"><a class="reference internal" href="index_advanced.html">Advanced Topics</a><ul class="current">
98 <li class="toctree-l3 current"><a class="reference internal" href="index_advanced_internals.html">Internal Behavior</a><ul class="current">
99 <li class="toctree-l4"><a class="reference internal" href="memcached_behavior.html">Behaviors of the library</a></li>
100 <li class="toctree-l4"><a class="reference internal" href="memcached_callback.html">Library callbacks</a></li>
101 <li class="toctree-l4 current"><a class="current reference internal" href="#">Use custom allocators for embedded usage</a></li>
102 <li class="toctree-l4"><a class="reference internal" href="memcached_user_data.html">Storing custom user information in the client.</a></li>
103 </ul>
104 </li>
105 <li class="toctree-l3"><a class="reference internal" href="index_advanced_aeh.html">Authentication, Encryption &amp; Hashing</a></li>
106 <li class="toctree-l3"><a class="reference internal" href="index_advanced_servers.html">Servers and Server Lists</a></li>
107 <li class="toctree-l3"><a class="reference internal" href="index_advanced_daemon.html">Affecting the memcached Daemon</a></li>
108 <li class="toctree-l3"><a class="reference internal" href="index_advanced_stats.html">Statistics</a></li>
109 </ul>
110 </li>
111 <li class="toctree-l2"><a class="reference internal" href="index_deprecated.html">Deprecated Functionality</a></li>
112 </ul>
113 </li>
114 <li class="toctree-l1"><a class="reference internal" href="index_misc.html">Misc</a></li>
115 </ul>
116 <p class="caption"><span class="caption-text">libmemcachedutil</span></p>
117 <ul>
118 <li class="toctree-l1"><a class="reference internal" href="../libmemcachedutil.html">Introduction</a></li>
119 <li class="toctree-l1"><a class="reference internal" href="../libmemcachedutil/index.html">libmemcachedutil API</a></li>
120 </ul>
121 <p class="caption"><span class="caption-text">libhashkit</span></p>
122 <ul>
123 <li class="toctree-l1"><a class="reference internal" href="../libhashkit.html">Introduction</a></li>
124 <li class="toctree-l1"><a class="reference internal" href="../libhashkit/index.html">libhashkit API</a></li>
125 </ul>
126 <p class="caption"><span class="caption-text">Client Applications</span></p>
127 <ul>
128 <li class="toctree-l1"><a class="reference internal" href="../bin/index.html">Client Applications</a></li>
129 </ul>
130 <p class="caption"><span class="caption-text">Copyright</span></p>
131 <ul>
132 <li class="toctree-l1"><a class="reference internal" href="../copyright.html">Copyright</a></li>
133 </ul>
134
135
136
137 </div>
138
139 </div>
140 </nav>
141
142 <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
143
144
145 <nav class="wy-nav-top" aria-label="top navigation">
146
147 <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
148 <a href="../index.html">libmemcached</a>
149
150 </nav>
151
152
153 <div class="wy-nav-content">
154
155 <div class="rst-content">
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173 <div role="navigation" aria-label="breadcrumbs navigation">
174
175 <ul class="wy-breadcrumbs">
176
177 <li><a href="../index.html" class="icon icon-home"></a> &raquo;</li>
178
179 <li><a href="index.html">libmemcached API</a> &raquo;</li>
180
181 <li><a href="index_advanced.html">Advanced Topics</a> &raquo;</li>
182
183 <li><a href="index_advanced_internals.html">Internal Behavior</a> &raquo;</li>
184
185 <li>Use custom allocators for embedded usage</li>
186
187
188 <li class="wy-breadcrumbs-aside">
189
190
191
192 </li>
193
194 </ul>
195
196
197 <hr/>
198 </div>
199 <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
200 <div itemprop="articleBody">
201
202 <div class="section" id="use-custom-allocators-for-embedded-usage">
203 <h1>Use custom allocators for embedded usage<a class="headerlink" href="#use-custom-allocators-for-embedded-usage" title="Permalink to this headline"></a></h1>
204 <p>Manage memory allocator functions</p>
205 <div class="section" id="synopsis">
206 <h2>SYNOPSIS<a class="headerlink" href="#synopsis" title="Permalink to this headline"></a></h2>
207 <dl class="simple">
208 <dt>#include &lt;libmemcached/memcached.h&gt;</dt><dd><p>Compile and link with -lmemcached</p>
209 </dd>
210 </dl>
211 <dl class="cpp function">
212 <dt id="_CPPv431memcached_set_memory_allocatorsP12memcached_st19memcached_malloc_fn17memcached_free_fn20memcached_realloc_fn19memcached_calloc_fnPv">
213 <span id="_CPPv331memcached_set_memory_allocatorsP12memcached_st19memcached_malloc_fn17memcached_free_fn20memcached_realloc_fn19memcached_calloc_fnPv"></span><span id="_CPPv231memcached_set_memory_allocatorsP12memcached_st19memcached_malloc_fn17memcached_free_fn20memcached_realloc_fn19memcached_calloc_fnPv"></span><span id="memcached_set_memory_allocators__memcached_stP.memcached_malloc_fn.memcached_free_fn.memcached_realloc_fn.memcached_calloc_fn.voidP"></span><a class="reference internal" href="memcached_return_t.html#_CPPv418memcached_return_t" title="memcached_return_t">memcached_return_t</a> <code class="sig-name descname">memcached_set_memory_allocators</code><span class="sig-paren">(</span><a class="reference internal" href="memcached_create.html#_CPPv412memcached_st" title="memcached_st">memcached_st</a> *<em>ptr</em>, <a class="reference internal" href="#_CPPv419memcached_malloc_fn" title="memcached_malloc_fn">memcached_malloc_fn</a> <em>mem_malloc</em>, <a class="reference internal" href="#_CPPv417memcached_free_fn" title="memcached_free_fn">memcached_free_fn</a> <em>mem_free</em>, <a class="reference internal" href="#_CPPv420memcached_realloc_fn" title="memcached_realloc_fn">memcached_realloc_fn</a> <em>mem_realloc</em>, <a class="reference internal" href="#_CPPv419memcached_calloc_fn" title="memcached_calloc_fn">memcached_calloc_fn</a> <em>mem_calloc</em>, void *<em>context</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv431memcached_set_memory_allocatorsP12memcached_st19memcached_malloc_fn17memcached_free_fn20memcached_realloc_fn19memcached_calloc_fnPv" title="Permalink to this definition"></a><br /></dt>
214 <dd><dl class="field-list simple">
215 <dt class="field-odd">Parameters</dt>
216 <dd class="field-odd"><ul class="simple">
217 <li><p><strong>ptr</strong> -- pointer to an initialized <a class="reference internal" href="memcached_create.html#_CPPv412memcached_st" title="memcached_st"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">memcached_st</span></code></a> struct</p></li>
218 <li><p><strong>mem_malloc</strong> -- pointer to a <a class="reference internal" href="#_CPPv419memcached_malloc_fn" title="memcached_malloc_fn"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">memcached_malloc_fn</span></code></a> callback</p></li>
219 <li><p><strong>mem_free</strong> -- pointer to a <a class="reference internal" href="#_CPPv417memcached_free_fn" title="memcached_free_fn"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">memcached_free_fn</span></code></a> callback</p></li>
220 <li><p><strong>mem_realloc</strong> -- pointer to a <a class="reference internal" href="#_CPPv420memcached_realloc_fn" title="memcached_realloc_fn"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">memcached_realloc_fn</span></code></a> callback</p></li>
221 <li><p><strong>mem_calloc</strong> -- pointer to a <a class="reference internal" href="#_CPPv419memcached_calloc_fn" title="memcached_calloc_fn"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">memcached_calloc_fn</span></code></a> callback</p></li>
222 <li><p><strong>context</strong> -- pointer to a user supplied context</p></li>
223 </ul>
224 </dd>
225 <dt class="field-even">Returns</dt>
226 <dd class="field-even"><p><a class="reference internal" href="memcached_return_t.html#_CPPv418memcached_return_t" title="memcached_return_t"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">memcached_return_t</span></code></a> indicating success</p>
227 </dd>
228 </dl>
229 </dd></dl>
230
231 <dl class="cpp function">
232 <dt id="_CPPv431memcached_get_memory_allocatorsP12memcached_stP19memcached_malloc_fnP17memcached_free_fnP20memcached_realloc_fnP19memcached_calloc_fn">
233 <span id="_CPPv331memcached_get_memory_allocatorsP12memcached_stP19memcached_malloc_fnP17memcached_free_fnP20memcached_realloc_fnP19memcached_calloc_fn"></span><span id="_CPPv231memcached_get_memory_allocatorsP12memcached_stP19memcached_malloc_fnP17memcached_free_fnP20memcached_realloc_fnP19memcached_calloc_fn"></span><span id="memcached_get_memory_allocators__memcached_stP.memcached_malloc_fnP.memcached_free_fnP.memcached_realloc_fnP.memcached_calloc_fnP"></span>void <code class="sig-name descname">memcached_get_memory_allocators</code><span class="sig-paren">(</span><a class="reference internal" href="memcached_create.html#_CPPv412memcached_st" title="memcached_st">memcached_st</a> *<em>ptr</em>, <a class="reference internal" href="#_CPPv419memcached_malloc_fn" title="memcached_malloc_fn">memcached_malloc_fn</a> *<em>mem_malloc</em>, <a class="reference internal" href="#_CPPv417memcached_free_fn" title="memcached_free_fn">memcached_free_fn</a> *<em>mem_free</em>, <a class="reference internal" href="#_CPPv420memcached_realloc_fn" title="memcached_realloc_fn">memcached_realloc_fn</a> *<em>mem_realloc</em>, <a class="reference internal" href="#_CPPv419memcached_calloc_fn" title="memcached_calloc_fn">memcached_calloc_fn</a> *<em>mem_calloc</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv431memcached_get_memory_allocatorsP12memcached_stP19memcached_malloc_fnP17memcached_free_fnP20memcached_realloc_fnP19memcached_calloc_fn" title="Permalink to this definition"></a><br /></dt>
234 <dd><dl class="field-list simple">
235 <dt class="field-odd">Parameters</dt>
236 <dd class="field-odd"><ul class="simple">
237 <li><p><strong>ptr</strong> -- pointer to an initialized <a class="reference internal" href="memcached_create.html#_CPPv412memcached_st" title="memcached_st"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">memcached_st</span></code></a> struct</p></li>
238 <li><p><strong>mem_malloc</strong> -- pointer to store the address of the <a class="reference internal" href="#_CPPv419memcached_malloc_fn" title="memcached_malloc_fn"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">memcached_malloc_fn</span></code></a> callback</p></li>
239 <li><p><strong>mem_free</strong> -- pointer to store the address of the <a class="reference internal" href="#_CPPv417memcached_free_fn" title="memcached_free_fn"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">memcached_free_fn</span></code></a> callback</p></li>
240 <li><p><strong>mem_realloc</strong> -- pointer to store the address of the <a class="reference internal" href="#_CPPv420memcached_realloc_fn" title="memcached_realloc_fn"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">memcached_realloc_fn</span></code></a> callback</p></li>
241 <li><p><strong>mem_calloc</strong> -- pointer to store the address of the <a class="reference internal" href="#_CPPv419memcached_calloc_fn" title="memcached_calloc_fn"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">memcached_calloc_fn</span></code></a> callback</p></li>
242 </ul>
243 </dd>
244 </dl>
245 </dd></dl>
246
247 <dl class="cpp function">
248 <dt id="_CPPv439memcached_get_memory_allocators_contextPK12memcached_st">
249 <span id="_CPPv339memcached_get_memory_allocators_contextPK12memcached_st"></span><span id="_CPPv239memcached_get_memory_allocators_contextPK12memcached_st"></span><span id="memcached_get_memory_allocators_context__memcached_stCP"></span>void *<code class="sig-name descname">memcached_get_memory_allocators_context</code><span class="sig-paren">(</span><em class="property">const</em> <a class="reference internal" href="memcached_create.html#_CPPv412memcached_st" title="memcached_st">memcached_st</a> *<em>ptr</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv439memcached_get_memory_allocators_contextPK12memcached_st" title="Permalink to this definition"></a><br /></dt>
250 <dd><dl class="field-list simple">
251 <dt class="field-odd">Parameters</dt>
252 <dd class="field-odd"><p><strong>ptr</strong> -- pointer to an initialized <a class="reference internal" href="memcached_create.html#_CPPv412memcached_st" title="memcached_st"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">memcached_st</span></code></a> struct</p>
253 </dd>
254 <dt class="field-even">Returns</dt>
255 <dd class="field-even"><p>pointer to the user supplied context</p>
256 </dd>
257 </dl>
258 </dd></dl>
259
260 <dl class="cpp type">
261 <dt id="_CPPv419memcached_malloc_fn">
262 <span id="_CPPv319memcached_malloc_fn"></span><span id="_CPPv219memcached_malloc_fn"></span><span id="memcached_malloc_fn"></span><em class="property">typedef </em>void *(*<code class="sig-name descname">memcached_malloc_fn</code>)<span class="sig-paren">(</span><a class="reference internal" href="memcached_create.html#_CPPv412memcached_st" title="memcached_st">memcached_st</a> *ptr, <em class="property">const</em> size_t size, void *context<span class="sig-paren">)</span><a class="headerlink" href="#_CPPv419memcached_malloc_fn" title="Permalink to this definition"></a><br /></dt>
263 <dd><dl class="field-list simple">
264 <dt class="field-odd">Parameters</dt>
265 <dd class="field-odd"><ul class="simple">
266 <li><p><strong>ptr</strong> -- pointer to an initialized <a class="reference internal" href="memcached_create.html#_CPPv412memcached_st" title="memcached_st"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">memcached_st</span></code></a> struct</p></li>
267 <li><p><strong>size</strong> -- the number of bytes to allocate</p></li>
268 <li><p><strong>context</strong> -- pointer to the user supplied context</p></li>
269 </ul>
270 </dd>
271 <dt class="field-even">Returns</dt>
272 <dd class="field-even"><p>pointer to at least <code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">size</span></code> bytes of allocated memory</p>
273 </dd>
274 </dl>
275 </dd></dl>
276
277 <dl class="cpp type">
278 <dt id="_CPPv420memcached_realloc_fn">
279 <span id="_CPPv320memcached_realloc_fn"></span><span id="_CPPv220memcached_realloc_fn"></span><span id="memcached_realloc_fn"></span><em class="property">typedef </em>void *(*<code class="sig-name descname">memcached_realloc_fn</code>)<span class="sig-paren">(</span><a class="reference internal" href="memcached_create.html#_CPPv412memcached_st" title="memcached_st">memcached_st</a> *ptr, void *mem, <em class="property">const</em> size_t size, void *context<span class="sig-paren">)</span><a class="headerlink" href="#_CPPv420memcached_realloc_fn" title="Permalink to this definition"></a><br /></dt>
280 <dd><dl class="field-list simple">
281 <dt class="field-odd">Parameters</dt>
282 <dd class="field-odd"><ul class="simple">
283 <li><p><strong>ptr</strong> -- pointer to an initialized <a class="reference internal" href="memcached_create.html#_CPPv412memcached_st" title="memcached_st"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">memcached_st</span></code></a> struct</p></li>
284 <li><p><strong>mem</strong> -- pointer to previously allocated memory</p></li>
285 <li><p><strong>size</strong> -- the number of bytes to allocate</p></li>
286 <li><p><strong>context</strong> -- pointer to the user supplied context</p></li>
287 </ul>
288 </dd>
289 <dt class="field-even">Returns</dt>
290 <dd class="field-even"><p>pointer to at least <code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">size</span></code> bytes of allocated memory</p>
291 </dd>
292 </dl>
293 </dd></dl>
294
295 <dl class="cpp type">
296 <dt id="_CPPv417memcached_free_fn">
297 <span id="_CPPv317memcached_free_fn"></span><span id="_CPPv217memcached_free_fn"></span><span id="memcached_free_fn"></span><em class="property">typedef </em>void (*<code class="sig-name descname">memcached_free_fn</code>)<span class="sig-paren">(</span><a class="reference internal" href="memcached_create.html#_CPPv412memcached_st" title="memcached_st">memcached_st</a> *ptr, void *mem, void *context<span class="sig-paren">)</span><a class="headerlink" href="#_CPPv417memcached_free_fn" title="Permalink to this definition"></a><br /></dt>
298 <dd><dl class="field-list simple">
299 <dt class="field-odd">Parameters</dt>
300 <dd class="field-odd"><ul class="simple">
301 <li><p><strong>ptr</strong> -- pointer to an initialized <a class="reference internal" href="memcached_create.html#_CPPv412memcached_st" title="memcached_st"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">memcached_st</span></code></a> struct</p></li>
302 <li><p><strong>mem</strong> -- pointer to previously allocated memory</p></li>
303 <li><p><strong>context</strong> -- pointer to the user supplied context</p></li>
304 </ul>
305 </dd>
306 </dl>
307 </dd></dl>
308
309 <dl class="cpp type">
310 <dt id="_CPPv419memcached_calloc_fn">
311 <span id="_CPPv319memcached_calloc_fn"></span><span id="_CPPv219memcached_calloc_fn"></span><span id="memcached_calloc_fn"></span><em class="property">typedef </em>void *(*<code class="sig-name descname">memcached_calloc_fn</code>)<span class="sig-paren">(</span><a class="reference internal" href="memcached_create.html#_CPPv412memcached_st" title="memcached_st">memcached_st</a> *ptr, size_t nelem, <em class="property">const</em> size_t elsize, void *context<span class="sig-paren">)</span><a class="headerlink" href="#_CPPv419memcached_calloc_fn" title="Permalink to this definition"></a><br /></dt>
312 <dd><dl class="field-list simple">
313 <dt class="field-odd">Parameters</dt>
314 <dd class="field-odd"><ul class="simple">
315 <li><p><strong>ptr</strong> -- pointer to an initialized <a class="reference internal" href="memcached_create.html#_CPPv412memcached_st" title="memcached_st"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">memcached_st</span></code></a> struct</p></li>
316 <li><p><strong>nelem</strong> -- number of elements to allocate</p></li>
317 <li><p><strong>elsize</strong> -- the number of bytes to allocate per element</p></li>
318 <li><p><strong>context</strong> -- pointer to the user supplied context</p></li>
319 </ul>
320 </dd>
321 <dt class="field-even">Returns</dt>
322 <dd class="field-even"><p>pointer to at least <code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">elsize</span></code> * <code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">nelem</span></code> bytes of allocated and zeroed memory</p>
323 </dd>
324 </dl>
325 </dd></dl>
326
327 </div>
328 <div class="section" id="description">
329 <h2>DESCRIPTION<a class="headerlink" href="#description" title="Permalink to this headline"></a></h2>
330 <p><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">libmemcached</span></code> allows you to specify your own memory allocators, optimized for
331 your application. This enables libmemcached to be used inside of applications
332 that have their own malloc implementation.</p>
333 <p><a class="reference internal" href="#_CPPv431memcached_set_memory_allocatorsP12memcached_st19memcached_malloc_fn17memcached_free_fn20memcached_realloc_fn19memcached_calloc_fnPv" title="memcached_set_memory_allocators"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">memcached_set_memory_allocators()</span></code></a> is used to set the memory allocators
334 used by the memcached instance specified by ptr. Please note that you cannot
335 override only one of the memory allocators, you have to specify a complete new
336 set if you want to override one of them. All of the memory allocation functions
337 should behave as specified in the C99 standard. Specify NULL as all functions to
338 reset them to the default values.</p>
339 <p><a class="reference internal" href="#_CPPv431memcached_get_memory_allocatorsP12memcached_stP19memcached_malloc_fnP17memcached_free_fnP20memcached_realloc_fnP19memcached_calloc_fn" title="memcached_get_memory_allocators"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">memcached_get_memory_allocators()</span></code></a> is used to get the currently used memory
340 allocators by a memcached handle.</p>
341 <p><a class="reference internal" href="#_CPPv439memcached_get_memory_allocators_contextPK12memcached_st" title="memcached_get_memory_allocators_context"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">memcached_get_memory_allocators_context()</span></code></a> returns the void * that was
342 passed in during the call to <a class="reference internal" href="#_CPPv431memcached_set_memory_allocatorsP12memcached_st19memcached_malloc_fn17memcached_free_fn20memcached_realloc_fn19memcached_calloc_fnPv" title="memcached_set_memory_allocators"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">memcached_set_memory_allocators()</span></code></a>.</p>
343 <p>The first argument to the memory allocator functions is a pointer to a memcached
344 structure, the is passed as const and you will need to clone it in order to make
345 use of any operation which would modify it.</p>
346 </div>
347 <div class="section" id="notes">
348 <h2>NOTES<a class="headerlink" href="#notes" title="Permalink to this headline"></a></h2>
349 <p>In version 0.38 all functions were modified to have a context void pointer
350 passed to them. This was so that custom allocators could have their own space
351 for memory.</p>
352 </div>
353 <div class="section" id="return-value">
354 <h2>RETURN VALUE<a class="headerlink" href="#return-value" title="Permalink to this headline"></a></h2>
355 <p><a class="reference internal" href="#_CPPv431memcached_set_memory_allocatorsP12memcached_st19memcached_malloc_fn17memcached_free_fn20memcached_realloc_fn19memcached_calloc_fnPv" title="memcached_set_memory_allocators"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">memcached_set_memory_allocators()</span></code></a> returns <a class="reference internal" href="memcached_return_t.html#_CPPv4N18memcached_return_t17MEMCACHED_SUCCESSE" title="MEMCACHED_SUCCESS"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">MEMCACHED_SUCCESS</span></code></a> upon success,
356 and <a class="reference internal" href="memcached_return_t.html#_CPPv4N18memcached_return_t17MEMCACHED_FAILUREE" title="MEMCACHED_FAILURE"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">MEMCACHED_FAILURE</span></code></a> if you don't pass a complete set of function pointers.</p>
357 </div>
358 <div class="section" id="see-also">
359 <h2>SEE ALSO<a class="headerlink" href="#see-also" title="Permalink to this headline"></a></h2>
360 <ul class="simple">
361 <li><p><em class="manpage"><a class="manpage reference external" href="https://linux.die.net/man/1/memcached">memcached(1)</a></em></p></li>
362 <li><p><a class="reference internal" href="../libmemcached.html"><span class="doc">C/C++ Client Library for memcached</span></a></p></li>
363 <li><p><a class="reference internal" href="memcached_strerror.html"><span class="doc">Converting Error Codes to Messages</span></a></p></li>
364 </ul>
365 </div>
366 </div>
367
368
369 </div>
370
371 </div>
372 <footer>
373
374 <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
375
376 <a href="memcached_user_data.html" class="btn btn-neutral float-right" title="Storing custom user information in the client." accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
377
378
379 <a href="memcached_callback.html" class="btn btn-neutral float-left" title="Library callbacks" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
380
381 </div>
382
383
384 <hr/>
385
386 <div role="contentinfo">
387 <p>
388
389
390 &copy; <a href="../copyright.html">Copyright</a>
391
392 </p>
393 </div>
394
395
396
397 Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a
398
399 <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a>
400
401 provided by <a href="https://readthedocs.org">Read the Docs</a>.
402
403 </footer>
404
405 </div>
406 </div>
407
408 </section>
409
410 </div>
411
412
413 <script type="text/javascript">
414 jQuery(function () {
415 SphinxRtdTheme.Navigation.enable(true);
416 });
417 </script>
418
419
420
421
422
423
424 </body>
425 </html>