<!DOCTYPE html>
-<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
-<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
+<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8">
+ <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
+ <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
+
+
- <script type="text/javascript" src="../_static/js/modernizr.min.js"></script>
+ <!--[if lt IE 9]>
+ <script src="../_static/js/html5shiv.min.js"></script>
+ <![endif]-->
<script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
<script type="text/javascript" src="../_static/js/theme.js"></script>
-
-
- <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
- <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="copyright" title="Copyright" href="../copyright.html" />
- <link rel="next" title="Determine if a keys exists." href="memcached_exist.html" />
+ <link rel="next" title="Determine if a keys exists" href="memcached_exist.html" />
<link rel="prev" title="Working with Data" href="index_data.html" />
</head>
- <a href="../index.html" class="icon icon-home"> libmemcached
+ <a href="../index.html" class="icon icon-home" alt="Documentation Home"> libmemcached
</div>
+
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
<li class="toctree-l2"><a class="reference internal" href="index_basics.html">Basics</a></li>
<li class="toctree-l2 current"><a class="reference internal" href="index_data.html">Working with Data</a><ul class="current">
<li class="toctree-l3 current"><a class="current reference internal" href="#">Incrementing and Decrementing Values</a></li>
-<li class="toctree-l3"><a class="reference internal" href="memcached_exist.html">Determine if a keys exists.</a></li>
-<li class="toctree-l3"><a class="reference internal" href="memcached_touch.html">memcached_touch, memcached_touch_by_key</a></li>
-<li class="toctree-l3"><a class="reference internal" href="memcached_flush_buffers.html">Flushing client buffers</a></li>
+<li class="toctree-l3"><a class="reference internal" href="memcached_exist.html">Determine if a keys exists</a></li>
+<li class="toctree-l3"><a class="reference internal" href="memcached_touch.html">Update expiration on a key</a></li>
+<li class="toctree-l3"><a class="reference internal" href="memcached_flush_buffers.html">Flush and send buffered commands</a></li>
<li class="toctree-l3"><a class="reference internal" href="memcached_result_st.html">Working with result sets</a></li>
-<li class="toctree-l3"><a class="reference internal" href="memcached_append.html">Appending or Prepending to data on the server</a></li>
+<li class="toctree-l3"><a class="reference internal" href="memcached_append.html">Appending or Prepending Data</a></li>
<li class="toctree-l3"><a class="reference internal" href="memcached_cas.html">Working with data on the server in an atomic fashion</a></li>
</ul>
</li>
</div>
+
</div>
</nav>
<ul class="wy-breadcrumbs">
- <li><a href="../index.html">Docs</a> »</li>
+ <li><a href="../index.html" class="icon icon-home"></a> »</li>
<li><a href="index.html">libmemcached API</a> »</li>
<div class="section" id="incrementing-and-decrementing-values">
<h1>Incrementing and Decrementing Values<a class="headerlink" href="#incrementing-and-decrementing-values" title="Permalink to this headline">¶</a></h1>
<div class="section" id="synopsis">
-<span id="index-0"></span><h2>SYNOPSIS<a class="headerlink" href="#synopsis" title="Permalink to this headline">¶</a></h2>
-<p>#include <libmemcached/memcached.h></p>
-<dl class="function">
+<h2>SYNOPSIS<a class="headerlink" href="#synopsis" title="Permalink to this headline">¶</a></h2>
+<dl class="simple">
+<dt>#include <libmemcached/memcached.h></dt><dd><p>Compile and link with -lmemcached</p>
+</dd>
+</dl>
+<dl class="cpp function">
<dt id="_CPPv419memcached_incrementP12memcached_stPKc6size_t8uint32_tP8uint64_t">
<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>
<dd></dd></dl>
-<dl class="function">
+<dl class="cpp function">
<dt id="_CPPv419memcached_decrementP12memcached_stPKc6size_t8uint32_tP8uint64_t">
<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>
<dd></dd></dl>
-<dl class="function">
+<dl class="cpp function">
<dt id="_CPPv432memcached_increment_with_initialP12memcached_stPKc6size_t8uint64_t8uint64_t6time_tP8uint64_t">
<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>
<dd></dd></dl>
-<dl class="function">
+<dl class="cpp function">
<dt id="_CPPv432memcached_decrement_with_initialP12memcached_stPKc6size_t8uint64_t8uint64_t6time_tP8uint64_t">
<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>
<dd></dd></dl>
-<dl class="function">
+<dl class="cpp function">
<dt id="_CPPv426memcached_increment_by_keyP12memcached_stPKc6size_tPKc6size_t8uint32_tP8uint64_t">
<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>
<dd></dd></dl>
-<dl class="function">
+<dl class="cpp function">
<dt id="_CPPv426memcached_decrement_by_keyP12memcached_stPKc6size_tPKc6size_t8uint32_tP8uint64_t">
<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>
<dd></dd></dl>
-<dl class="function">
+<dl class="cpp function">
<dt id="_CPPv439memcached_increment_with_initial_by_keyP12memcached_stPKc6size_tPKc6size_t8uint64_t8uint64_t6time_tP8uint64_t">
<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>
<dd></dd></dl>
-<dl class="function">
+<dl class="cpp function">
<dt id="_CPPv439memcached_decrement_with_initial_by_keyP12memcached_stPKc6size_tPKc6size_t8uint64_t8uint64_t6time_tP8uint64_t">
<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>
-<dd></dd></dl>
+<dd><dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><ul class="simple">
+<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>
+<li><p><strong>group_key</strong> -- key namespace</p></li>
+<li><p><strong>group_key_length</strong> -- length of the key namespace without any terminating zero</p></li>
+<li><p><strong>key</strong> -- the key</p></li>
+<li><p><strong>key_length</strong> -- length of the key without any terminating zero</p></li>
+<li><p><strong>offset</strong> -- offset to increment/decrement</p></li>
+<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>
+<li><p><strong>expiration</strong> -- expiration as a unix timestamp or as relative expiration time in seconds</p></li>
+<li><p><strong>value</strong> -- the resulting value after initialization/increment/decrement</p></li>
+</ul>
+</dd>
+<dt class="field-even">Returns</dt>
+<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>
+</dd>
+</dl>
+</dd></dl>
-<p>Compile and link with -lmemcached</p>
</div>
<div class="section" id="description">
<h2>DESCRIPTION<a class="headerlink" href="#description" title="Permalink to this headline">¶</a></h2>
-<p><em class="manpage"><a class="manpage reference external" href="http://man7.org/linux/man-pages/man1/memcached.1.html">memcached(1)</a></em> servers have the ability to increment and decrement keys
+<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
(overflow and underflow are not detected). This gives you the ability to use
memcached to generate shared sequences of values.</p>
-<p>memcached_increment takes a key and key length and increments the value by
-the offset passed to it. The value is then returned via the uint32_t
-value pointer you pass to it.</p>
-<p>memcached_decrement takes a key and keylength and decrements the value by
-the offset passed to it. The value is then returned via the uint32_t
-value pointer you pass to it.</p>
-<p>memcached_increment_with_initial takes a key and keylength and increments
-the value by the offset passed to it. If the object specified by key does
-not exist, one of two things may happen: If the expiration value is
-MEMCACHED_EXPIRATION_NOT_ADD, the operation will fail. For all other
-expiration values, the operation will succeed by seeding the value for that
-key with a initial value to expire with the provided expiration time. The
-flags will be set to zero.The value is then returned via the uint32_t
-value pointer you pass to it. memcached_increment_with_initial is only available
-when using the binary protocol.</p>
-<p>memcached_decrement_with_initial takes a key and keylength and decrements
-the value by the offset passed to it. If the object specified by key does
-not exist, one of two things may happen: If the expiration value is
-MEMCACHED_EXPIRATION_NOT_ADD, the operation will fail. For all other
-expiration values, the operation will succeed by seeding the value for that
-key with a initial value to expire with the provided expiration time. The
-flags will be set to zero.The value is then returned via the uint32_t
-value pointer you pass to it. memcached_decrement_with_initial is only available
-when using the binary protocol.</p>
-<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-func 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-func docutils literal notranslate"><span class="pre">memcached_decrement_by_key()</span></code></a>,
-<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-func docutils literal notranslate"><span class="pre">memcached_increment_with_initial_by_key()</span></code></a>, 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"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">memcached_decrement_with_initial_by_key()</span></code></a> are master key equivalents of the above.</p>
+<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
+value by the <code class="docutils literal notranslate"><span class="pre">offset</span></code> passed to it. The value is then returned via the
+uint32_t <code class="docutils literal notranslate"><span class="pre">value</span></code> pointer you pass to it.</p>
+<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
+value by the <code class="docutils literal notranslate"><span class="pre">offset</span></code> passed to it. The value is then returned via the
+uint32_t <code class="docutils literal notranslate"><span class="pre">value</span></code> pointer you pass to it.</p>
+<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
+increments the value by the <code class="docutils literal notranslate"><span class="pre">offset</span></code> passed to it. If the object specified by
+<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>
+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
+all other <code class="docutils literal notranslate"><span class="pre">expiration</span></code> values, the operation will succeed by seeding the value
+for that key with a initial value to expire with the provided expiration time.
+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
+<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
+available when using the binary protocol.</p>
+<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
+decrements the value by the <code class="docutils literal notranslate"><span class="pre">offset</span></code> passed to it. If the object specified by
+<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>
+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
+all other <code class="docutils literal notranslate"><span class="pre">expiration</span></code> values, the operation will succeed by seeding the value
+for that key with a initial value to expire with the provided expiration time.
+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
+<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
+available when using the binary protocol.</p>
+<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>,
+<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
+<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
+above.</p>
</div>
-<div class="section" id="return">
-<h2>RETURN<a class="headerlink" href="#return" title="Permalink to this headline">¶</a></h2>
-<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-type docutils literal notranslate"><span class="pre">memcached_return_t</span></code></a> is returned.
+<div class="section" id="return-value">
+<h2>RETURN VALUE<a class="headerlink" href="#return-value" title="Permalink to this headline">¶</a></h2>
+<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.
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>.
-Use memcached_strerror to translate this value to a printable string.</p>
+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>
</div>
<div class="section" id="see-also">
<h2>SEE ALSO<a class="headerlink" href="#see-also" title="Permalink to this headline">¶</a></h2>
+<ul class="simple">
+<li><p><em class="manpage"><a class="manpage reference external" href="https://linux.die.net/man/1/memcached">memcached(1)</a></em></p></li>
+<li><p><a class="reference internal" href="../libmemcached.html"><span class="doc">C/C++ Client Library for memcached</span></a></p></li>
+<li><p><a class="reference internal" href="memcached_strerror.html"><span class="doc">Converting Error Codes to Messages</span></a></p></li>
+</ul>
</div>
</div>
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
- <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>
+ <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>
<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>
<div role="contentinfo">
<p>
+
+
© <a href="../copyright.html">Copyright</a>
</p>
</div>
- 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>.
+
+
+
+ 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>.
</footer>
</div>
-
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);