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