update docs
[m6w6/libmemcached] / libmemcached / memcached_auto.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>Incrementing and Decrementing Values &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="Determine if a keys exists" href="memcached_exist.html" />
41 <link rel="prev" title="Working with Data" href="index_data.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 current"><a class="reference internal" href="index_data.html">Working with Data</a><ul class="current">
96 <li class="toctree-l3 current"><a class="current reference internal" href="#">Incrementing and Decrementing Values</a></li>
97 <li class="toctree-l3"><a class="reference internal" href="memcached_exist.html">Determine if a keys exists</a></li>
98 <li class="toctree-l3"><a class="reference internal" href="memcached_touch.html">Update expiration on a key</a></li>
99 <li class="toctree-l3"><a class="reference internal" href="memcached_flush_buffers.html">Flush and send buffered commands</a></li>
100 <li class="toctree-l3"><a class="reference internal" href="memcached_result_st.html">Working with result sets</a></li>
101 <li class="toctree-l3"><a class="reference internal" href="memcached_append.html">Appending or Prepending Data</a></li>
102 <li class="toctree-l3"><a class="reference internal" href="memcached_cas.html">Working with data on the server in an atomic fashion</a></li>
103 </ul>
104 </li>
105 <li class="toctree-l2"><a class="reference internal" href="index_errors.html">Messages and Errors</a></li>
106 <li class="toctree-l2"><a class="reference internal" href="index_advanced.html">Advanced Topics</a></li>
107 <li class="toctree-l2"><a class="reference internal" href="index_deprecated.html">Deprecated Functionality</a></li>
108 </ul>
109 </li>
110 <li class="toctree-l1"><a class="reference internal" href="index_misc.html">Misc</a></li>
111 </ul>
112 <p class="caption"><span class="caption-text">libmemcachedutil</span></p>
113 <ul>
114 <li class="toctree-l1"><a class="reference internal" href="../libmemcachedutil.html">Introduction</a></li>
115 <li class="toctree-l1"><a class="reference internal" href="../libmemcachedutil/index.html">libmemcachedutil API</a></li>
116 </ul>
117 <p class="caption"><span class="caption-text">libhashkit</span></p>
118 <ul>
119 <li class="toctree-l1"><a class="reference internal" href="../libhashkit.html">Introduction</a></li>
120 <li class="toctree-l1"><a class="reference internal" href="../libhashkit/index.html">libhashkit API</a></li>
121 </ul>
122 <p class="caption"><span class="caption-text">Client Applications</span></p>
123 <ul>
124 <li class="toctree-l1"><a class="reference internal" href="../bin/index.html">Client Applications</a></li>
125 </ul>
126 <p class="caption"><span class="caption-text">Copyright</span></p>
127 <ul>
128 <li class="toctree-l1"><a class="reference internal" href="../copyright.html">Copyright</a></li>
129 </ul>
130
131
132
133 </div>
134
135 </div>
136 </nav>
137
138 <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
139
140
141 <nav class="wy-nav-top" aria-label="top navigation">
142
143 <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
144 <a href="../index.html">libmemcached</a>
145
146 </nav>
147
148
149 <div class="wy-nav-content">
150
151 <div class="rst-content">
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169 <div role="navigation" aria-label="breadcrumbs navigation">
170
171 <ul class="wy-breadcrumbs">
172
173 <li><a href="../index.html" class="icon icon-home"></a> &raquo;</li>
174
175 <li><a href="index.html">libmemcached API</a> &raquo;</li>
176
177 <li><a href="index_data.html">Working with Data</a> &raquo;</li>
178
179 <li>Incrementing and Decrementing Values</li>
180
181
182 <li class="wy-breadcrumbs-aside">
183
184
185
186 </li>
187
188 </ul>
189
190
191 <hr/>
192 </div>
193 <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
194 <div itemprop="articleBody">
195
196 <div class="section" id="incrementing-and-decrementing-values">
197 <h1>Incrementing and Decrementing Values<a class="headerlink" href="#incrementing-and-decrementing-values" title="Permalink to this headline"></a></h1>
198 <div class="section" id="synopsis">
199 <h2>SYNOPSIS<a class="headerlink" href="#synopsis" title="Permalink to this headline"></a></h2>
200 <dl class="simple">
201 <dt>#include &lt;libmemcached/memcached.h&gt;</dt><dd><p>Compile and link with -lmemcached</p>
202 </dd>
203 </dl>
204 <dl class="cpp function">
205 <dt id="_CPPv419memcached_incrementP12memcached_stPKc6size_t8uint32_tP8uint64_t">
206 <span id="_CPPv319memcached_incrementP12memcached_stPKc6size_t8uint32_tP8uint64_t"></span><span id="_CPPv219memcached_incrementP12memcached_stPKc6size_t8uint32_tP8uint64_t"></span><span id="memcached_increment__memcached_stP.cCP.s.uint32_t.uint64_tP"></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_increment</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>, <em class="property">const</em> char *<em>key</em>, size_t <em>key_length</em>, uint32_t <em>offset</em>, uint64_t *<em>value</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv419memcached_incrementP12memcached_stPKc6size_t8uint32_tP8uint64_t" title="Permalink to this definition"></a><br /></dt>
207 <dd></dd></dl>
208
209 <dl class="cpp function">
210 <dt id="_CPPv419memcached_decrementP12memcached_stPKc6size_t8uint32_tP8uint64_t">
211 <span id="_CPPv319memcached_decrementP12memcached_stPKc6size_t8uint32_tP8uint64_t"></span><span id="_CPPv219memcached_decrementP12memcached_stPKc6size_t8uint32_tP8uint64_t"></span><span id="memcached_decrement__memcached_stP.cCP.s.uint32_t.uint64_tP"></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_decrement</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>, <em class="property">const</em> char *<em>key</em>, size_t <em>key_length</em>, uint32_t <em>offset</em>, uint64_t *<em>value</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv419memcached_decrementP12memcached_stPKc6size_t8uint32_tP8uint64_t" title="Permalink to this definition"></a><br /></dt>
212 <dd></dd></dl>
213
214 <dl class="cpp function">
215 <dt id="_CPPv432memcached_increment_with_initialP12memcached_stPKc6size_t8uint64_t8uint64_t6time_tP8uint64_t">
216 <span id="_CPPv332memcached_increment_with_initialP12memcached_stPKc6size_t8uint64_t8uint64_t6time_tP8uint64_t"></span><span id="_CPPv232memcached_increment_with_initialP12memcached_stPKc6size_t8uint64_t8uint64_t6time_tP8uint64_t"></span><span id="memcached_increment_with_initial__memcached_stP.cCP.s.uint64_t.uint64_t.time_t.uint64_tP"></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_increment_with_initial</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>, <em class="property">const</em> char *<em>key</em>, size_t <em>key_length</em>, uint64_t <em>offset</em>, uint64_t <em>initial</em>, time_t <em>expiration</em>, uint64_t *<em>value</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv432memcached_increment_with_initialP12memcached_stPKc6size_t8uint64_t8uint64_t6time_tP8uint64_t" title="Permalink to this definition"></a><br /></dt>
217 <dd></dd></dl>
218
219 <dl class="cpp function">
220 <dt id="_CPPv432memcached_decrement_with_initialP12memcached_stPKc6size_t8uint64_t8uint64_t6time_tP8uint64_t">
221 <span id="_CPPv332memcached_decrement_with_initialP12memcached_stPKc6size_t8uint64_t8uint64_t6time_tP8uint64_t"></span><span id="_CPPv232memcached_decrement_with_initialP12memcached_stPKc6size_t8uint64_t8uint64_t6time_tP8uint64_t"></span><span id="memcached_decrement_with_initial__memcached_stP.cCP.s.uint64_t.uint64_t.time_t.uint64_tP"></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_decrement_with_initial</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>, <em class="property">const</em> char *<em>key</em>, size_t <em>key_length</em>, uint64_t <em>offset</em>, uint64_t <em>initial</em>, time_t <em>expiration</em>, uint64_t *<em>value</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv432memcached_decrement_with_initialP12memcached_stPKc6size_t8uint64_t8uint64_t6time_tP8uint64_t" title="Permalink to this definition"></a><br /></dt>
222 <dd></dd></dl>
223
224 <dl class="cpp function">
225 <dt id="_CPPv426memcached_increment_by_keyP12memcached_stPKc6size_tPKc6size_t8uint32_tP8uint64_t">
226 <span id="_CPPv326memcached_increment_by_keyP12memcached_stPKc6size_tPKc6size_t8uint32_tP8uint64_t"></span><span id="_CPPv226memcached_increment_by_keyP12memcached_stPKc6size_tPKc6size_t8uint32_tP8uint64_t"></span><span id="memcached_increment_by_key__memcached_stP.cCP.s.cCP.s.uint32_t.uint64_tP"></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_increment_by_key</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>, <em class="property">const</em> char *<em>group_key</em>, size_t <em>group_key_length</em>, <em class="property">const</em> char *<em>key</em>, size_t <em>key_length</em>, uint32_t <em>offset</em>, uint64_t *<em>value</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv426memcached_increment_by_keyP12memcached_stPKc6size_tPKc6size_t8uint32_tP8uint64_t" title="Permalink to this definition"></a><br /></dt>
227 <dd></dd></dl>
228
229 <dl class="cpp function">
230 <dt id="_CPPv426memcached_decrement_by_keyP12memcached_stPKc6size_tPKc6size_t8uint32_tP8uint64_t">
231 <span id="_CPPv326memcached_decrement_by_keyP12memcached_stPKc6size_tPKc6size_t8uint32_tP8uint64_t"></span><span id="_CPPv226memcached_decrement_by_keyP12memcached_stPKc6size_tPKc6size_t8uint32_tP8uint64_t"></span><span id="memcached_decrement_by_key__memcached_stP.cCP.s.cCP.s.uint32_t.uint64_tP"></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_decrement_by_key</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>, <em class="property">const</em> char *<em>group_key</em>, size_t <em>group_key_length</em>, <em class="property">const</em> char *<em>key</em>, size_t <em>key_length</em>, uint32_t <em>offset</em>, uint64_t *<em>value</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv426memcached_decrement_by_keyP12memcached_stPKc6size_tPKc6size_t8uint32_tP8uint64_t" title="Permalink to this definition"></a><br /></dt>
232 <dd></dd></dl>
233
234 <dl class="cpp function">
235 <dt id="_CPPv439memcached_increment_with_initial_by_keyP12memcached_stPKc6size_tPKc6size_t8uint64_t8uint64_t6time_tP8uint64_t">
236 <span id="_CPPv339memcached_increment_with_initial_by_keyP12memcached_stPKc6size_tPKc6size_t8uint64_t8uint64_t6time_tP8uint64_t"></span><span id="_CPPv239memcached_increment_with_initial_by_keyP12memcached_stPKc6size_tPKc6size_t8uint64_t8uint64_t6time_tP8uint64_t"></span><span id="memcached_increment_with_initial_by_key__memcached_stP.cCP.s.cCP.s.uint64_t.uint64_t.time_t.uint64_tP"></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_increment_with_initial_by_key</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>, <em class="property">const</em> char *<em>group_key</em>, size_t <em>group_key_length</em>, <em class="property">const</em> char *<em>key</em>, size_t <em>key_length</em>, uint64_t <em>offset</em>, uint64_t <em>initial</em>, time_t <em>expiration</em>, uint64_t *<em>value</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv439memcached_increment_with_initial_by_keyP12memcached_stPKc6size_tPKc6size_t8uint64_t8uint64_t6time_tP8uint64_t" title="Permalink to this definition"></a><br /></dt>
237 <dd></dd></dl>
238
239 <dl class="cpp function">
240 <dt id="_CPPv439memcached_decrement_with_initial_by_keyP12memcached_stPKc6size_tPKc6size_t8uint64_t8uint64_t6time_tP8uint64_t">
241 <span id="_CPPv339memcached_decrement_with_initial_by_keyP12memcached_stPKc6size_tPKc6size_t8uint64_t8uint64_t6time_tP8uint64_t"></span><span id="_CPPv239memcached_decrement_with_initial_by_keyP12memcached_stPKc6size_tPKc6size_t8uint64_t8uint64_t6time_tP8uint64_t"></span><span id="memcached_decrement_with_initial_by_key__memcached_stP.cCP.s.cCP.s.uint64_t.uint64_t.time_t.uint64_tP"></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_decrement_with_initial_by_key</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>, <em class="property">const</em> char *<em>group_key</em>, size_t <em>group_key_length</em>, <em class="property">const</em> char *<em>key</em>, size_t <em>key_length</em>, uint64_t <em>offset</em>, uint64_t <em>initial</em>, time_t <em>expiration</em>, uint64_t *<em>value</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv439memcached_decrement_with_initial_by_keyP12memcached_stPKc6size_tPKc6size_t8uint64_t8uint64_t6time_tP8uint64_t" title="Permalink to this definition"></a><br /></dt>
242 <dd><dl class="field-list simple">
243 <dt class="field-odd">Parameters</dt>
244 <dd class="field-odd"><ul class="simple">
245 <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>
246 <li><p><strong>group_key</strong> -- key namespace</p></li>
247 <li><p><strong>group_key_length</strong> -- length of the key namespace without any terminating zero</p></li>
248 <li><p><strong>key</strong> -- the key</p></li>
249 <li><p><strong>key_length</strong> -- length of the key without any terminating zero</p></li>
250 <li><p><strong>offset</strong> -- offset to increment/decrement</p></li>
251 <li><p><strong>initial</strong> -- initial value if <a class="reference internal" href="#_CPPv439memcached_decrement_with_initial_by_keyP12memcached_stPKc6size_tPKc6size_t8uint64_t8uint64_t6time_tP8uint64_t" title="memcached_decrement_with_initial_by_key::key"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">key</span></code></a> does not exist and <a class="reference internal" href="#_CPPv439memcached_decrement_with_initial_by_keyP12memcached_stPKc6size_tPKc6size_t8uint64_t8uint64_t6time_tP8uint64_t" title="memcached_decrement_with_initial_by_key::expiration"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">expiration</span></code></a> is not <code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">MEMCACHED_EXPIRATION_NOT_ADD</span></code></p></li>
252 <li><p><strong>expiration</strong> -- expiration as a unix timestamp or as relative expiration time in seconds</p></li>
253 <li><p><strong>value</strong> -- the resulting value after initialization/increment/decrement</p></li>
254 </ul>
255 </dd>
256 <dt class="field-even">Returns</dt>
257 <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>
258 </dd>
259 </dl>
260 </dd></dl>
261
262 </div>
263 <div class="section" id="description">
264 <h2>DESCRIPTION<a class="headerlink" href="#description" title="Permalink to this headline"></a></h2>
265 <p><em class="manpage"><a class="manpage reference external" href="https://linux.die.net/man/1/memcached">memcached(1)</a></em> servers have the ability to increment and decrement keys
266 (overflow and underflow are not detected). This gives you the ability to use
267 memcached to generate shared sequences of values.</p>
268 <p><a class="reference internal" href="#_CPPv419memcached_incrementP12memcached_stPKc6size_t8uint32_tP8uint64_t" title="memcached_increment"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">memcached_increment()</span></code></a> takes a <code class="docutils literal notranslate"><span class="pre">key</span></code> and <code class="docutils literal notranslate"><span class="pre">key_length</span></code> and increments the
269 value by the <code class="docutils literal notranslate"><span class="pre">offset</span></code> passed to it. The value is then returned via the
270 uint32_t <code class="docutils literal notranslate"><span class="pre">value</span></code> pointer you pass to it.</p>
271 <p><a class="reference internal" href="#_CPPv419memcached_decrementP12memcached_stPKc6size_t8uint32_tP8uint64_t" title="memcached_decrement"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">memcached_decrement()</span></code></a> takes a <code class="docutils literal notranslate"><span class="pre">key</span></code> and <code class="docutils literal notranslate"><span class="pre">key_length</span></code> and decrements the
272 value by the <code class="docutils literal notranslate"><span class="pre">offset</span></code> passed to it. The value is then returned via the
273 uint32_t <code class="docutils literal notranslate"><span class="pre">value</span></code> pointer you pass to it.</p>
274 <p><a class="reference internal" href="#_CPPv432memcached_increment_with_initialP12memcached_stPKc6size_t8uint64_t8uint64_t6time_tP8uint64_t" title="memcached_increment_with_initial"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">memcached_increment_with_initial()</span></code></a> takes a <code class="docutils literal notranslate"><span class="pre">key</span></code> and <code class="docutils literal notranslate"><span class="pre">key_length</span></code> and
275 increments the value by the <code class="docutils literal notranslate"><span class="pre">offset</span></code> passed to it. If the object specified by
276 <code class="docutils literal notranslate"><span class="pre">key</span></code> does not exist, one of two things may happen: If the <code class="docutils literal notranslate"><span class="pre">expiration</span></code>
277 value is <a class="reference internal" href="constants.html#c.MEMCACHED_EXPIRATION_NOT_ADD" title="MEMCACHED_EXPIRATION_NOT_ADD"><code class="xref c c-macro docutils literal notranslate"><span class="pre">MEMCACHED_EXPIRATION_NOT_ADD</span></code></a>, the operation will fail. For
278 all other <code class="docutils literal notranslate"><span class="pre">expiration</span></code> values, the operation will succeed by seeding the value
279 for that key with a initial value to expire with the provided expiration time.
280 The <code class="docutils literal notranslate"><span class="pre">flags</span></code> will be set to zero. The value is then returned via the uint32_t
281 <code class="docutils literal notranslate"><span class="pre">value</span></code> pointer you pass to it. <code class="docutils literal notranslate"><span class="pre">memcached_increment_with_initial</span></code> is only
282 available when using the binary protocol.</p>
283 <p><a class="reference internal" href="#_CPPv432memcached_decrement_with_initialP12memcached_stPKc6size_t8uint64_t8uint64_t6time_tP8uint64_t" title="memcached_decrement_with_initial"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">memcached_decrement_with_initial()</span></code></a> takes a <code class="docutils literal notranslate"><span class="pre">key</span></code> and <code class="docutils literal notranslate"><span class="pre">key_length</span></code> and
284 decrements the value by the <code class="docutils literal notranslate"><span class="pre">offset</span></code> passed to it. If the object specified by
285 <code class="docutils literal notranslate"><span class="pre">key</span></code> does not exist, one of two things may happen: If the <code class="docutils literal notranslate"><span class="pre">expiration</span></code>
286 value is <a class="reference internal" href="constants.html#c.MEMCACHED_EXPIRATION_NOT_ADD" title="MEMCACHED_EXPIRATION_NOT_ADD"><code class="xref c c-macro docutils literal notranslate"><span class="pre">MEMCACHED_EXPIRATION_NOT_ADD</span></code></a>, the operation will fail. For
287 all other <code class="docutils literal notranslate"><span class="pre">expiration</span></code> values, the operation will succeed by seeding the value
288 for that key with a initial value to expire with the provided expiration time.
289 The <code class="docutils literal notranslate"><span class="pre">flags</span></code> will be set to zero. The value is then returned via the uint32_t
290 <code class="docutils literal notranslate"><span class="pre">value</span></code> pointer you pass to it. <a class="reference internal" href="#_CPPv432memcached_decrement_with_initialP12memcached_stPKc6size_t8uint64_t8uint64_t6time_tP8uint64_t" title="memcached_decrement_with_initial"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">memcached_decrement_with_initial()</span></code></a> is only
291 available when using the binary protocol.</p>
292 <p><a class="reference internal" href="#_CPPv426memcached_increment_by_keyP12memcached_stPKc6size_tPKc6size_t8uint32_tP8uint64_t" title="memcached_increment_by_key"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">memcached_increment_by_key()</span></code></a>, <a class="reference internal" href="#_CPPv426memcached_decrement_by_keyP12memcached_stPKc6size_tPKc6size_t8uint32_tP8uint64_t" title="memcached_decrement_by_key"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">memcached_decrement_by_key()</span></code></a>,
293 <a class="reference internal" href="#_CPPv439memcached_increment_with_initial_by_keyP12memcached_stPKc6size_tPKc6size_t8uint64_t8uint64_t6time_tP8uint64_t" title="memcached_increment_with_initial_by_key"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">memcached_increment_with_initial_by_key()</span></code></a>, and
294 <a class="reference internal" href="#_CPPv439memcached_decrement_with_initial_by_keyP12memcached_stPKc6size_tPKc6size_t8uint64_t8uint64_t6time_tP8uint64_t" title="memcached_decrement_with_initial_by_key"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">memcached_decrement_with_initial_by_key()</span></code></a> are master key equivalents of the
295 above.</p>
296 </div>
297 <div class="section" id="return-value">
298 <h2>RETURN VALUE<a class="headerlink" href="#return-value" title="Permalink to this headline"></a></h2>
299 <p>A value of type <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> is returned.
300 On success that value will be <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>.
301 Use <a class="reference internal" href="memcached_strerror.html#_CPPv418memcached_strerrorP12memcached_st18memcached_return_t" title="memcached_strerror"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">memcached_strerror()</span></code></a> to translate this value to a printable string.</p>
302 </div>
303 <div class="section" id="see-also">
304 <h2>SEE ALSO<a class="headerlink" href="#see-also" title="Permalink to this headline"></a></h2>
305 <ul class="simple">
306 <li><p><em class="manpage"><a class="manpage reference external" href="https://linux.die.net/man/1/memcached">memcached(1)</a></em></p></li>
307 <li><p><a class="reference internal" href="../libmemcached.html"><span class="doc">C/C++ Client Library for memcached</span></a></p></li>
308 <li><p><a class="reference internal" href="memcached_strerror.html"><span class="doc">Converting Error Codes to Messages</span></a></p></li>
309 </ul>
310 </div>
311 </div>
312
313
314 </div>
315
316 </div>
317 <footer>
318
319 <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
320
321 <a href="memcached_exist.html" class="btn btn-neutral float-right" title="Determine if a keys exists" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
322
323
324 <a href="index_data.html" class="btn btn-neutral float-left" title="Working with Data" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
325
326 </div>
327
328
329 <hr/>
330
331 <div role="contentinfo">
332 <p>
333
334
335 &copy; <a href="../copyright.html">Copyright</a>
336
337 </p>
338 </div>
339
340
341
342 Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a
343
344 <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a>
345
346 provided by <a href="https://readthedocs.org">Read the Docs</a>.
347
348 </footer>
349
350 </div>
351 </div>
352
353 </section>
354
355 </div>
356
357
358 <script type="text/javascript">
359 jQuery(function () {
360 SphinxRtdTheme.Navigation.enable(true);
361 });
362 </script>
363
364
365
366
367
368
369 </body>
370 </html>