Deploy to GitHub pages
[m6w6/libmemcached] / libhashkit / hashkit_function.html
index 359eae476ee4fca40849bc36ec79121c83a712c4..f3581f7d41367eba069aaf40cfbcf606b004e99e 100644 (file)
@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>Set Hash Function &mdash; libmemcached 1.0.99 documentation</title>
+  <title>Set Hash Function &mdash; libmemcached 1.1.0 documentation</title>
   
 
   
   
     
       <script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
-        <script src="../_static/jquery.js"></script>
-        <script src="../_static/underscore.js"></script>
-        <script src="../_static/doctools.js"></script>
-        <script src="../_static/language_data.js"></script>
+        <script type="text/javascript" src="../_static/jquery.js"></script>
+        <script type="text/javascript" src="../_static/underscore.js"></script>
+        <script type="text/javascript" src="../_static/doctools.js"></script>
+        <script type="text/javascript" src="../_static/language_data.js"></script>
     
     <script type="text/javascript" src="../_static/js/theme.js"></script>
 
@@ -61,7 +61,7 @@
             
             
               <div class="version">
-                1.0
+                1.1
               </div>
             
           
               
             
             
-              <p class="caption"><span class="caption-text">libmemcached</span></p>
-<ul>
+              <ul class="current">
 <li class="toctree-l1"><a class="reference internal" href="../libmemcached.html">Introduction</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../libmemcached/index.html">libmemcached API</a></li>
-<li class="toctree-l1"><a class="reference internal" href="../libmemcached/index_misc.html">Misc</a></li>
-</ul>
-<p class="caption"><span class="caption-text">libmemcachedutil</span></p>
-<ul>
-<li class="toctree-l1"><a class="reference internal" href="../libmemcachedutil.html">Introduction</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../libmemcachedutil/index.html">libmemcachedutil API</a></li>
-</ul>
-<p class="caption"><span class="caption-text">libhashkit</span></p>
-<ul class="current">
-<li class="toctree-l1"><a class="reference internal" href="../libhashkit.html">Introduction</a></li>
 <li class="toctree-l1 current"><a class="reference internal" href="index.html">libhashkit API</a><ul class="current">
 <li class="toctree-l2"><a class="reference internal" href="hashkit_create.html">Creating a hashkit structure</a></li>
 <li class="toctree-l2 current"><a class="current reference internal" href="#">Set Hash Function</a></li>
 <li class="toctree-l2"><a class="reference internal" href="hashkit_value.html">Generate hash value</a></li>
 </ul>
 </li>
-</ul>
-<p class="caption"><span class="caption-text">Client Applications</span></p>
-<ul>
 <li class="toctree-l1"><a class="reference internal" href="../bin/index.html">Client Applications</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../libmemcached/index_misc.html">Miscellaneous</a></li>
 </ul>
-<p class="caption"><span class="caption-text">Copyright</span></p>
 <ul>
+<li class="toctree-l1"><a class="reference internal" href="../changelogs.html">Change Logs</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../copyright.html">Copyright</a></li>
 </ul>
 
     
       <li><a href="../index.html">Docs</a> &raquo;</li>
         
-          <li><a href="index.html">libhashkit API</a> &raquo;</li>
+          <li><a href="index.html">libhashkit - C/C++ hashing library</a> &raquo;</li>
         
       <li>Set Hash Function</li>
     
       <li class="wy-breadcrumbs-aside">
         
             
+            
+              <a href="https://github.com/m6w6/libmemcached/blob/v1.x/docs/source/libhashkit/hashkit_function.rst" class="fa fa-github"> Edit on GitHub</a>
+            
+          
         
       </li>
     
             
   <div class="section" id="set-hash-function">
 <h1>Set Hash Function<a class="headerlink" href="#set-hash-function" title="Permalink to this headline">¶</a></h1>
-<span class="target" id="index-0"></span><p id="index-1">Set hash functions to use for calculating values for keys</p>
 <div class="section" id="synopsis">
 <h2>SYNOPSIS<a class="headerlink" href="#synopsis" title="Permalink to this headline">¶</a></h2>
-<dl class="simple">
-<dt>#include &lt;libhashkit-1.0/hashkit.h&gt;</dt><dd><p>Compile and link with -lhashkit</p>
-</dd>
+<dl class="docutils">
+<dt>#include &lt;libhashkit-1/hashkit.h&gt;</dt>
+<dd>Compile and link with -lhashkit</dd>
 </dl>
 <dl class="type">
 <dt id="_CPPv415hashkit_hash_fn">
-<span id="_CPPv315hashkit_hash_fn"></span><span id="_CPPv215hashkit_hash_fn"></span><span id="hashkit_hash_fn"></span><em class="property">typedef </em>uint32_t (*<code class="sig-name descname">hashkit_hash_fn</code>)<span class="sig-paren">(</span><em class="property">const</em> char *key, size_t key_length, void *context<span class="sig-paren">)</span><a class="headerlink" href="#_CPPv415hashkit_hash_fn" title="Permalink to this definition">¶</a><br /></dt>
+<span id="_CPPv315hashkit_hash_fn"></span><span id="_CPPv215hashkit_hash_fn"></span><span id="hashkit_hash_fn"></span><em class="property">typedef </em>uint32_t (*<code class="descname">hashkit_hash_fn</code>)<span class="sig-paren">(</span><em class="property">const</em> char *key, size_t key_length, void *context<span class="sig-paren">)</span><a class="headerlink" href="#_CPPv415hashkit_hash_fn" title="Permalink to this definition">¶</a><br /></dt>
+<dd><table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>key</strong> -- the key to generate a hash of</li>
+<li><strong>key_length</strong> -- the length of the <code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">key</span></code> without any terminating zero byte</li>
+<li><strong>context</strong> -- the custom hash function context set through <a class="reference internal" href="#_CPPv427hashkit_set_custom_functionP10hashkit_st15hashkit_hash_fnPv" title="hashkit_set_custom_function"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">hashkit_set_custom_function()</span></code></a> or <a class="reference internal" href="#_CPPv440hashkit_set_custom_distribution_functionP10hashkit_st15hashkit_hash_fnPv" title="hashkit_set_custom_distribution_function"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">hashkit_set_custom_distribution_function()</span></code></a></li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">the custom hash function should return a hash value for <code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">key</span></code> as an unsigned 32bit integer</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="type">
+<dt id="c.hashkit_return_t">
+enum <a class="reference internal" href="#c.hashkit_return_t" title="hashkit_return_t">hashkit_return_t</a> <code class="descname">hashkit_return_t</code><a class="headerlink" href="#c.hashkit_return_t" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="enum">
+<dt id="_CPPv416hashkit_return_t">
+<span id="_CPPv316hashkit_return_t"></span><span id="_CPPv216hashkit_return_t"></span><em class="property">enum </em><code class="descname">hashkit_return_t</code><a class="headerlink" href="#_CPPv416hashkit_return_t" title="Permalink to this definition">¶</a><br /></dt>
+<dd><dl class="enumerator">
+<dt id="_CPPv4N16hashkit_return_t15HASHKIT_SUCCESSE">
+<span id="_CPPv3N16hashkit_return_t15HASHKIT_SUCCESSE"></span><span id="_CPPv2N16hashkit_return_t15HASHKIT_SUCCESSE"></span><em class="property">enumerator </em><code class="descname">HASHKIT_SUCCESS</code><a class="headerlink" href="#_CPPv4N16hashkit_return_t15HASHKIT_SUCCESSE" title="Permalink to this definition">¶</a><br /></dt>
+<dd><p>Operation succeeded.</p>
+</dd></dl>
+
+<dl class="enumerator">
+<dt id="_CPPv4N16hashkit_return_t15HASHKIT_FAILUREE">
+<span id="_CPPv3N16hashkit_return_t15HASHKIT_FAILUREE"></span><span id="_CPPv2N16hashkit_return_t15HASHKIT_FAILUREE"></span><em class="property">enumerator </em><code class="descname">HASHKIT_FAILURE</code><a class="headerlink" href="#_CPPv4N16hashkit_return_t15HASHKIT_FAILUREE" title="Permalink to this definition">¶</a><br /></dt>
+<dd><p>Operation failed.</p>
+</dd></dl>
+
+<dl class="enumerator">
+<dt id="_CPPv4N16hashkit_return_t33HASHKIT_MEMORY_ALLOCATION_FAILUREE">
+<span id="_CPPv3N16hashkit_return_t33HASHKIT_MEMORY_ALLOCATION_FAILUREE"></span><span id="_CPPv2N16hashkit_return_t33HASHKIT_MEMORY_ALLOCATION_FAILUREE"></span><em class="property">enumerator </em><code class="descname">HASHKIT_MEMORY_ALLOCATION_FAILURE</code><a class="headerlink" href="#_CPPv4N16hashkit_return_t33HASHKIT_MEMORY_ALLOCATION_FAILUREE" title="Permalink to this definition">¶</a><br /></dt>
+<dd><p>Memory allocation failed.</p>
+</dd></dl>
+
+<dl class="enumerator">
+<dt id="_CPPv4N16hashkit_return_t20HASHKIT_INVALID_HASHE">
+<span id="_CPPv3N16hashkit_return_t20HASHKIT_INVALID_HASHE"></span><span id="_CPPv2N16hashkit_return_t20HASHKIT_INVALID_HASHE"></span><em class="property">enumerator </em><code class="descname">HASHKIT_INVALID_HASH</code><a class="headerlink" href="#_CPPv4N16hashkit_return_t20HASHKIT_INVALID_HASHE" title="Permalink to this definition">¶</a><br /></dt>
+<dd><p>Invalid <a class="reference internal" href="#_CPPv424hashkit_hash_algorithm_t" title="hashkit_hash_algorithm_t"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">hashkit_hash_algorithm_t</span></code></a> passed.</p>
+</dd></dl>
+
+<dl class="enumerator">
+<dt id="_CPPv4N16hashkit_return_t24HASHKIT_INVALID_ARGUMENTE">
+<span id="_CPPv3N16hashkit_return_t24HASHKIT_INVALID_ARGUMENTE"></span><span id="_CPPv2N16hashkit_return_t24HASHKIT_INVALID_ARGUMENTE"></span><em class="property">enumerator </em><code class="descname">HASHKIT_INVALID_ARGUMENT</code><a class="headerlink" href="#_CPPv4N16hashkit_return_t24HASHKIT_INVALID_ARGUMENTE" title="Permalink to this definition">¶</a><br /></dt>
+<dd><p>Invalid argument passed.</p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="type">
+<dt id="c.hashkit_hash_algorithm_t">
+enum <a class="reference internal" href="#c.hashkit_hash_algorithm_t" title="hashkit_hash_algorithm_t">hashkit_hash_algorithm_t</a> <code class="descname">hashkit_hash_algorithm_t</code><a class="headerlink" href="#c.hashkit_hash_algorithm_t" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="enum">
+<dt id="_CPPv424hashkit_hash_algorithm_t">
+<span id="_CPPv324hashkit_hash_algorithm_t"></span><span id="_CPPv224hashkit_hash_algorithm_t"></span><em class="property">enum </em><code class="descname">hashkit_hash_algorithm_t</code><a class="headerlink" href="#_CPPv424hashkit_hash_algorithm_t" title="Permalink to this definition">¶</a><br /></dt>
+<dd><dl class="enumerator">
+<dt id="_CPPv4N24hashkit_hash_algorithm_t20HASHKIT_HASH_DEFAULTE">
+<span id="_CPPv3N24hashkit_hash_algorithm_t20HASHKIT_HASH_DEFAULTE"></span><span id="_CPPv2N24hashkit_hash_algorithm_t20HASHKIT_HASH_DEFAULTE"></span><em class="property">enumerator </em><code class="descname">HASHKIT_HASH_DEFAULT</code><a class="headerlink" href="#_CPPv4N24hashkit_hash_algorithm_t20HASHKIT_HASH_DEFAULTE" title="Permalink to this definition">¶</a><br /></dt>
+<dd><p>Default hash algorithm (one_at_a_time).</p>
+</dd></dl>
+
+<dl class="enumerator">
+<dt id="_CPPv4N24hashkit_hash_algorithm_t16HASHKIT_HASH_MD5E">
+<span id="_CPPv3N24hashkit_hash_algorithm_t16HASHKIT_HASH_MD5E"></span><span id="_CPPv2N24hashkit_hash_algorithm_t16HASHKIT_HASH_MD5E"></span><em class="property">enumerator </em><code class="descname">HASHKIT_HASH_MD5</code><a class="headerlink" href="#_CPPv4N24hashkit_hash_algorithm_t16HASHKIT_HASH_MD5E" title="Permalink to this definition">¶</a><br /></dt>
+<dd></dd></dl>
+
+<dl class="enumerator">
+<dt id="_CPPv4N24hashkit_hash_algorithm_t16HASHKIT_HASH_CRCE">
+<span id="_CPPv3N24hashkit_hash_algorithm_t16HASHKIT_HASH_CRCE"></span><span id="_CPPv2N24hashkit_hash_algorithm_t16HASHKIT_HASH_CRCE"></span><em class="property">enumerator </em><code class="descname">HASHKIT_HASH_CRC</code><a class="headerlink" href="#_CPPv4N24hashkit_hash_algorithm_t16HASHKIT_HASH_CRCE" title="Permalink to this definition">¶</a><br /></dt>
+<dd></dd></dl>
+
+<dl class="enumerator">
+<dt id="_CPPv4N24hashkit_hash_algorithm_t20HASHKIT_HASH_FNV1_64E">
+<span id="_CPPv3N24hashkit_hash_algorithm_t20HASHKIT_HASH_FNV1_64E"></span><span id="_CPPv2N24hashkit_hash_algorithm_t20HASHKIT_HASH_FNV1_64E"></span><em class="property">enumerator </em><code class="descname">HASHKIT_HASH_FNV1_64</code><a class="headerlink" href="#_CPPv4N24hashkit_hash_algorithm_t20HASHKIT_HASH_FNV1_64E" title="Permalink to this definition">¶</a><br /></dt>
+<dd></dd></dl>
+
+<dl class="enumerator">
+<dt id="_CPPv4N24hashkit_hash_algorithm_t21HASHKIT_HASH_FNV1A_64E">
+<span id="_CPPv3N24hashkit_hash_algorithm_t21HASHKIT_HASH_FNV1A_64E"></span><span id="_CPPv2N24hashkit_hash_algorithm_t21HASHKIT_HASH_FNV1A_64E"></span><em class="property">enumerator </em><code class="descname">HASHKIT_HASH_FNV1A_64</code><a class="headerlink" href="#_CPPv4N24hashkit_hash_algorithm_t21HASHKIT_HASH_FNV1A_64E" title="Permalink to this definition">¶</a><br /></dt>
 <dd></dd></dl>
 
+<dl class="enumerator">
+<dt id="_CPPv4N24hashkit_hash_algorithm_t20HASHKIT_HASH_FNV1_32E">
+<span id="_CPPv3N24hashkit_hash_algorithm_t20HASHKIT_HASH_FNV1_32E"></span><span id="_CPPv2N24hashkit_hash_algorithm_t20HASHKIT_HASH_FNV1_32E"></span><em class="property">enumerator </em><code class="descname">HASHKIT_HASH_FNV1_32</code><a class="headerlink" href="#_CPPv4N24hashkit_hash_algorithm_t20HASHKIT_HASH_FNV1_32E" title="Permalink to this definition">¶</a><br /></dt>
+<dd></dd></dl>
+
+<dl class="enumerator">
+<dt id="_CPPv4N24hashkit_hash_algorithm_t21HASHKIT_HASH_FNV1A_32E">
+<span id="_CPPv3N24hashkit_hash_algorithm_t21HASHKIT_HASH_FNV1A_32E"></span><span id="_CPPv2N24hashkit_hash_algorithm_t21HASHKIT_HASH_FNV1A_32E"></span><em class="property">enumerator </em><code class="descname">HASHKIT_HASH_FNV1A_32</code><a class="headerlink" href="#_CPPv4N24hashkit_hash_algorithm_t21HASHKIT_HASH_FNV1A_32E" title="Permalink to this definition">¶</a><br /></dt>
+<dd></dd></dl>
+
+<dl class="enumerator">
+<dt id="_CPPv4N24hashkit_hash_algorithm_t18HASHKIT_HASH_HSIEHE">
+<span id="_CPPv3N24hashkit_hash_algorithm_t18HASHKIT_HASH_HSIEHE"></span><span id="_CPPv2N24hashkit_hash_algorithm_t18HASHKIT_HASH_HSIEHE"></span><em class="property">enumerator </em><code class="descname">HASHKIT_HASH_HSIEH</code><a class="headerlink" href="#_CPPv4N24hashkit_hash_algorithm_t18HASHKIT_HASH_HSIEHE" title="Permalink to this definition">¶</a><br /></dt>
+<dd><p>Only available if <code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">libhashkit</span></code> hash been built with HSIEH support.</p>
+</dd></dl>
+
+<dl class="enumerator">
+<dt id="_CPPv4N24hashkit_hash_algorithm_t19HASHKIT_HASH_MURMURE">
+<span id="_CPPv3N24hashkit_hash_algorithm_t19HASHKIT_HASH_MURMURE"></span><span id="_CPPv2N24hashkit_hash_algorithm_t19HASHKIT_HASH_MURMURE"></span><em class="property">enumerator </em><code class="descname">HASHKIT_HASH_MURMUR</code><a class="headerlink" href="#_CPPv4N24hashkit_hash_algorithm_t19HASHKIT_HASH_MURMURE" title="Permalink to this definition">¶</a><br /></dt>
+<dd><p>Only available if <code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">libhashkit</span></code> has been built with MURMUR support.</p>
+</dd></dl>
+
+<dl class="enumerator">
+<dt id="_CPPv4N24hashkit_hash_algorithm_t20HASHKIT_HASH_MURMUR3E">
+<span id="_CPPv3N24hashkit_hash_algorithm_t20HASHKIT_HASH_MURMUR3E"></span><span id="_CPPv2N24hashkit_hash_algorithm_t20HASHKIT_HASH_MURMUR3E"></span><em class="property">enumerator </em><code class="descname">HASHKIT_HASH_MURMUR3</code><a class="headerlink" href="#_CPPv4N24hashkit_hash_algorithm_t20HASHKIT_HASH_MURMUR3E" title="Permalink to this definition">¶</a><br /></dt>
+<dd><p>Only available if <code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">libhashkit</span></code> has been built with MURMUR support.</p>
+</dd></dl>
+
+<dl class="enumerator">
+<dt id="_CPPv4N24hashkit_hash_algorithm_t20HASHKIT_HASH_JENKINSE">
+<span id="_CPPv3N24hashkit_hash_algorithm_t20HASHKIT_HASH_JENKINSE"></span><span id="_CPPv2N24hashkit_hash_algorithm_t20HASHKIT_HASH_JENKINSE"></span><em class="property">enumerator </em><code class="descname">HASHKIT_HASH_JENKINS</code><a class="headerlink" href="#_CPPv4N24hashkit_hash_algorithm_t20HASHKIT_HASH_JENKINSE" title="Permalink to this definition">¶</a><br /></dt>
+<dd></dd></dl>
+
+<dl class="enumerator">
+<dt id="_CPPv4N24hashkit_hash_algorithm_t19HASHKIT_HASH_CUSTOME">
+<span id="_CPPv3N24hashkit_hash_algorithm_t19HASHKIT_HASH_CUSTOME"></span><span id="_CPPv2N24hashkit_hash_algorithm_t19HASHKIT_HASH_CUSTOME"></span><em class="property">enumerator </em><code class="descname">HASHKIT_HASH_CUSTOM</code><a class="headerlink" href="#_CPPv4N24hashkit_hash_algorithm_t19HASHKIT_HASH_CUSTOME" title="Permalink to this definition">¶</a><br /></dt>
+<dd><p>Use custom <a class="reference internal" href="#_CPPv415hashkit_hash_fn" title="hashkit_hash_fn"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">hashkit_hash_fn</span></code></a> function set through <a class="reference internal" href="#_CPPv427hashkit_set_custom_functionP10hashkit_st15hashkit_hash_fnPv" title="hashkit_set_custom_function"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">hashkit_set_custom_function()</span></code></a> or <a class="reference internal" href="#_CPPv440hashkit_set_custom_distribution_functionP10hashkit_st15hashkit_hash_fnPv" title="hashkit_set_custom_distribution_function"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">hashkit_set_custom_distribution_function()</span></code></a>.</p>
+</dd></dl>
+
+</dd></dl>
+
 <dl class="function">
 <dt id="_CPPv420hashkit_set_functionP10hashkit_st24hashkit_hash_algorithm_t">
-<span id="_CPPv320hashkit_set_functionP10hashkit_st24hashkit_hash_algorithm_t"></span><span id="_CPPv220hashkit_set_functionP10hashkit_st24hashkit_hash_algorithm_t"></span><span id="hashkit_set_function__hashkit_stP.hashkit_hash_algorithm_t"></span>hashkit_return_t <code class="sig-name descname">hashkit_set_function</code><span class="sig-paren">(</span><a class="reference internal" href="hashkit_create.html#_CPPv410hashkit_st" title="hashkit_st">hashkit_st</a> *<em>hash</em>, hashkit_hash_algorithm_t <em>hash_algorithm</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv420hashkit_set_functionP10hashkit_st24hashkit_hash_algorithm_t" title="Permalink to this definition">¶</a><br /></dt>
-<dd></dd></dl>
+<span id="_CPPv320hashkit_set_functionP10hashkit_st24hashkit_hash_algorithm_t"></span><span id="_CPPv220hashkit_set_functionP10hashkit_st24hashkit_hash_algorithm_t"></span><span id="hashkit_set_function__hashkit_stP.hashkit_hash_algorithm_t"></span><a class="reference internal" href="#_CPPv416hashkit_return_t" title="hashkit_return_t">hashkit_return_t</a> <code class="descname">hashkit_set_function</code><span class="sig-paren">(</span><a class="reference internal" href="hashkit_create.html#_CPPv410hashkit_st" title="hashkit_st">hashkit_st</a> *<em>hash</em>, <a class="reference internal" href="#_CPPv424hashkit_hash_algorithm_t" title="hashkit_hash_algorithm_t">hashkit_hash_algorithm_t</a> <em>hash_algorithm</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv420hashkit_set_functionP10hashkit_st24hashkit_hash_algorithm_t" title="Permalink to this definition">¶</a><br /></dt>
+<dd><table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>hash</strong> -- pointer to an initialized <a class="reference internal" href="hashkit_create.html#_CPPv410hashkit_st" title="hashkit_st"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">hashkit_st</span></code></a> struct</li>
+<li><strong>hash_algorithm</strong> -- valid <a class="reference internal" href="#_CPPv424hashkit_hash_algorithm_t" title="hashkit_hash_algorithm_t"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">hashkit_hash_algorithm_t</span></code></a> constant</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last"><a class="reference internal" href="#_CPPv416hashkit_return_t" title="hashkit_return_t"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">hashkit_return_t</span></code></a> indicating success or failure</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
 
 <dl class="function">
 <dt id="_CPPv427hashkit_set_custom_functionP10hashkit_st15hashkit_hash_fnPv">
-<span id="_CPPv327hashkit_set_custom_functionP10hashkit_st15hashkit_hash_fnPv"></span><span id="_CPPv227hashkit_set_custom_functionP10hashkit_st15hashkit_hash_fnPv"></span><span id="hashkit_set_custom_function__hashkit_stP.hashkit_hash_fn.voidP"></span>hashkit_return_t <code class="sig-name descname">hashkit_set_custom_function</code><span class="sig-paren">(</span><a class="reference internal" href="hashkit_create.html#_CPPv410hashkit_st" title="hashkit_st">hashkit_st</a> *<em>hash</em>, <a class="reference internal" href="#_CPPv415hashkit_hash_fn" title="hashkit_hash_fn">hashkit_hash_fn</a> <em>function</em>, void *<em>context</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv427hashkit_set_custom_functionP10hashkit_st15hashkit_hash_fnPv" title="Permalink to this definition">¶</a><br /></dt>
-<dd></dd></dl>
+<span id="_CPPv327hashkit_set_custom_functionP10hashkit_st15hashkit_hash_fnPv"></span><span id="_CPPv227hashkit_set_custom_functionP10hashkit_st15hashkit_hash_fnPv"></span><span id="hashkit_set_custom_function__hashkit_stP.hashkit_hash_fn.voidP"></span><a class="reference internal" href="#_CPPv416hashkit_return_t" title="hashkit_return_t">hashkit_return_t</a> <code class="descname">hashkit_set_custom_function</code><span class="sig-paren">(</span><a class="reference internal" href="hashkit_create.html#_CPPv410hashkit_st" title="hashkit_st">hashkit_st</a> *<em>hash</em>, <a class="reference internal" href="#_CPPv415hashkit_hash_fn" title="hashkit_hash_fn">hashkit_hash_fn</a> <em>function</em>, void *<em>context</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv427hashkit_set_custom_functionP10hashkit_st15hashkit_hash_fnPv" title="Permalink to this definition">¶</a><br /></dt>
+<dd><table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>hash</strong> -- pointer to initialized <a class="reference internal" href="hashkit_create.html#_CPPv410hashkit_st" title="hashkit_st"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">hashkit_st</span></code></a> struct</li>
+<li><strong>function</strong> -- <a class="reference internal" href="#_CPPv415hashkit_hash_fn" title="hashkit_hash_fn"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">hashkit_hash_fn</span></code></a> function pointer to use as hash function for <a class="reference internal" href="#_CPPv4N24hashkit_hash_algorithm_t19HASHKIT_HASH_CUSTOME" title="HASHKIT_HASH_CUSTOM"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">HASHKIT_HASH_CUSTOM</span></code></a></li>
+<li><strong>context</strong> -- pointer to an opaque user managed context for the custom hash function</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last"><a class="reference internal" href="#_CPPv416hashkit_return_t" title="hashkit_return_t"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">hashkit_return_t</span></code></a> indicating success or failure</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
 
 <dl class="function">
 <dt id="_CPPv420hashkit_get_functionPK10hashkit_st">
-<span id="_CPPv320hashkit_get_functionPK10hashkit_st"></span><span id="_CPPv220hashkit_get_functionPK10hashkit_st"></span><span id="hashkit_get_function__hashkit_stCP"></span>hashkit_hash_algorithm_t <code class="sig-name descname">hashkit_get_function</code><span class="sig-paren">(</span><em class="property">const</em> <a class="reference internal" href="hashkit_create.html#_CPPv410hashkit_st" title="hashkit_st">hashkit_st</a> *<em>hash</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv420hashkit_get_functionPK10hashkit_st" title="Permalink to this definition">¶</a><br /></dt>
-<dd></dd></dl>
+<span id="_CPPv320hashkit_get_functionPK10hashkit_st"></span><span id="_CPPv220hashkit_get_functionPK10hashkit_st"></span><span id="hashkit_get_function__hashkit_stCP"></span><a class="reference internal" href="#_CPPv424hashkit_hash_algorithm_t" title="hashkit_hash_algorithm_t">hashkit_hash_algorithm_t</a> <code class="descname">hashkit_get_function</code><span class="sig-paren">(</span><em class="property">const</em> <a class="reference internal" href="hashkit_create.html#_CPPv410hashkit_st" title="hashkit_st">hashkit_st</a> *<em>hash</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv420hashkit_get_functionPK10hashkit_st" title="Permalink to this definition">¶</a><br /></dt>
+<dd><table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>hash</strong> -- pointer to an initialized <a class="reference internal" href="hashkit_create.html#_CPPv410hashkit_st" title="hashkit_st"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">hashkit_st</span></code></a> struct</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><a class="reference internal" href="#_CPPv424hashkit_hash_algorithm_t" title="hashkit_hash_algorithm_t"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">hashkit_hash_algorithm_t</span></code></a> indicating the currently set hash algorithm to use</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
 
 <dl class="function">
 <dt id="_CPPv433hashkit_set_distribution_functionP10hashkit_st24hashkit_hash_algorithm_t">
-<span id="_CPPv333hashkit_set_distribution_functionP10hashkit_st24hashkit_hash_algorithm_t"></span><span id="_CPPv233hashkit_set_distribution_functionP10hashkit_st24hashkit_hash_algorithm_t"></span><span id="hashkit_set_distribution_function__hashkit_stP.hashkit_hash_algorithm_t"></span>hashkit_return_t <code class="sig-name descname">hashkit_set_distribution_function</code><span class="sig-paren">(</span><a class="reference internal" href="hashkit_create.html#_CPPv410hashkit_st" title="hashkit_st">hashkit_st</a> *<em>hash</em>, hashkit_hash_algorithm_t <em>hash_algorithm</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv433hashkit_set_distribution_functionP10hashkit_st24hashkit_hash_algorithm_t" title="Permalink to this definition">¶</a><br /></dt>
-<dd></dd></dl>
+<span id="_CPPv333hashkit_set_distribution_functionP10hashkit_st24hashkit_hash_algorithm_t"></span><span id="_CPPv233hashkit_set_distribution_functionP10hashkit_st24hashkit_hash_algorithm_t"></span><span id="hashkit_set_distribution_function__hashkit_stP.hashkit_hash_algorithm_t"></span><a class="reference internal" href="#_CPPv416hashkit_return_t" title="hashkit_return_t">hashkit_return_t</a> <code class="descname">hashkit_set_distribution_function</code><span class="sig-paren">(</span><a class="reference internal" href="hashkit_create.html#_CPPv410hashkit_st" title="hashkit_st">hashkit_st</a> *<em>hash</em>, <a class="reference internal" href="#_CPPv424hashkit_hash_algorithm_t" title="hashkit_hash_algorithm_t">hashkit_hash_algorithm_t</a> <em>hash_algorithm</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv433hashkit_set_distribution_functionP10hashkit_st24hashkit_hash_algorithm_t" title="Permalink to this definition">¶</a><br /></dt>
+<dd><table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>hash</strong> -- pointer to an initialized <a class="reference internal" href="hashkit_create.html#_CPPv410hashkit_st" title="hashkit_st"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">hashkit_st</span></code></a> struct</li>
+<li><strong>hash_algorithm</strong> -- valid <code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">hashkit_hash_algrothm_t</span></code> constant</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last"><a class="reference internal" href="#_CPPv416hashkit_return_t" title="hashkit_return_t"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">hashkit_return_t</span></code></a> indicating success or failure</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
 
 <dl class="function">
 <dt id="_CPPv440hashkit_set_custom_distribution_functionP10hashkit_st15hashkit_hash_fnPv">
-<span id="_CPPv340hashkit_set_custom_distribution_functionP10hashkit_st15hashkit_hash_fnPv"></span><span id="_CPPv240hashkit_set_custom_distribution_functionP10hashkit_st15hashkit_hash_fnPv"></span><span id="hashkit_set_custom_distribution_function__hashkit_stP.hashkit_hash_fn.voidP"></span>hashkit_return_t <code class="sig-name descname">hashkit_set_custom_distribution_function</code><span class="sig-paren">(</span><a class="reference internal" href="hashkit_create.html#_CPPv410hashkit_st" title="hashkit_st">hashkit_st</a> *<em>self</em>, <a class="reference internal" href="#_CPPv415hashkit_hash_fn" title="hashkit_hash_fn">hashkit_hash_fn</a> <em>function</em>, void *<em>context</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv440hashkit_set_custom_distribution_functionP10hashkit_st15hashkit_hash_fnPv" title="Permalink to this definition">¶</a><br /></dt>
-<dd></dd></dl>
+<span id="_CPPv340hashkit_set_custom_distribution_functionP10hashkit_st15hashkit_hash_fnPv"></span><span id="_CPPv240hashkit_set_custom_distribution_functionP10hashkit_st15hashkit_hash_fnPv"></span><span id="hashkit_set_custom_distribution_function__hashkit_stP.hashkit_hash_fn.voidP"></span><a class="reference internal" href="#_CPPv416hashkit_return_t" title="hashkit_return_t">hashkit_return_t</a> <code class="descname">hashkit_set_custom_distribution_function</code><span class="sig-paren">(</span><a class="reference internal" href="hashkit_create.html#_CPPv410hashkit_st" title="hashkit_st">hashkit_st</a> *<em>hash</em>, <a class="reference internal" href="#_CPPv415hashkit_hash_fn" title="hashkit_hash_fn">hashkit_hash_fn</a> <em>function</em>, void *<em>context</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv440hashkit_set_custom_distribution_functionP10hashkit_st15hashkit_hash_fnPv" title="Permalink to this definition">¶</a><br /></dt>
+<dd><table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>hash</strong> -- pointer to initialized <a class="reference internal" href="hashkit_create.html#_CPPv410hashkit_st" title="hashkit_st"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">hashkit_st</span></code></a> struct</li>
+<li><strong>function</strong> -- <a class="reference internal" href="#_CPPv415hashkit_hash_fn" title="hashkit_hash_fn"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">hashkit_hash_fn</span></code></a> function pointer to use as distribution hash function for <a class="reference internal" href="#_CPPv4N24hashkit_hash_algorithm_t19HASHKIT_HASH_CUSTOME" title="HASHKIT_HASH_CUSTOM"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">HASHKIT_HASH_CUSTOM</span></code></a></li>
+<li><strong>context</strong> -- pointer to an opaque user managed context for the custom distribution hash function</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
 
 <dl class="function">
 <dt id="_CPPv433hashkit_get_distribution_functionPK10hashkit_st">
-<span id="_CPPv333hashkit_get_distribution_functionPK10hashkit_st"></span><span id="_CPPv233hashkit_get_distribution_functionPK10hashkit_st"></span><span id="hashkit_get_distribution_function__hashkit_stCP"></span>hashkit_hash_algorithm_t <code class="sig-name descname">hashkit_get_distribution_function</code><span class="sig-paren">(</span><em class="property">const</em> <a class="reference internal" href="hashkit_create.html#_CPPv410hashkit_st" title="hashkit_st">hashkit_st</a> *<em>self</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv433hashkit_get_distribution_functionPK10hashkit_st" title="Permalink to this definition">¶</a><br /></dt>
-<dd></dd></dl>
+<span id="_CPPv333hashkit_get_distribution_functionPK10hashkit_st"></span><span id="_CPPv233hashkit_get_distribution_functionPK10hashkit_st"></span><span id="hashkit_get_distribution_function__hashkit_stCP"></span><a class="reference internal" href="#_CPPv424hashkit_hash_algorithm_t" title="hashkit_hash_algorithm_t">hashkit_hash_algorithm_t</a> <code class="descname">hashkit_get_distribution_function</code><span class="sig-paren">(</span><em class="property">const</em> <a class="reference internal" href="hashkit_create.html#_CPPv410hashkit_st" title="hashkit_st">hashkit_st</a> *<em>hash</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv433hashkit_get_distribution_functionPK10hashkit_st" title="Permalink to this definition">¶</a><br /></dt>
+<dd><table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>hash</strong> -- pointer to an initialized <a class="reference internal" href="hashkit_create.html#_CPPv410hashkit_st" title="hashkit_st"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">hashkit_st</span></code></a> struct</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><a class="reference internal" href="#_CPPv424hashkit_hash_algorithm_t" title="hashkit_hash_algorithm_t"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">hashkit_hash_algorithm_t</span></code></a> indicating the currently set distribution hash algorithm to use</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
 
 </div>
 <div class="section" id="description">
 </div>
 <div class="section" id="return-value">
 <h2>RETURN VALUE<a class="headerlink" href="#return-value" title="Permalink to this headline">¶</a></h2>
-<p><a class="reference internal" href="#_CPPv420hashkit_set_functionP10hashkit_st24hashkit_hash_algorithm_t" title="hashkit_set_function"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">hashkit_set_function()</span></code></a>, <a class="reference internal" href="#_CPPv427hashkit_set_custom_functionP10hashkit_st15hashkit_hash_fnPv" title="hashkit_set_custom_function"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">hashkit_set_custom_function()</span></code></a> and the distribution equivalents
-return <code class="xref cpp cpp-type docutils literal notranslate"><span class="pre">hashkit_return_t</span></code> <code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">HASHKIT_SUCCESS</span></code> on success.</p>
-<p><a class="reference internal" href="#_CPPv420hashkit_get_functionPK10hashkit_st" title="hashkit_get_function"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">hashkit_get_function()</span></code></a> and <a class="reference internal" href="#_CPPv433hashkit_get_distribution_functionPK10hashkit_st" title="hashkit_get_distribution_function"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">hashkit_get_distribution_function()</span></code></a> return <code class="xref cpp cpp-type docutils literal notranslate"><span class="pre">hashkit_hash_algorithm_t</span></code>
-indicating the hash function used.</p>
+<p><a class="reference internal" href="#_CPPv420hashkit_set_functionP10hashkit_st24hashkit_hash_algorithm_t" title="hashkit_set_function"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">hashkit_set_function()</span></code></a>, <a class="reference internal" href="#_CPPv427hashkit_set_custom_functionP10hashkit_st15hashkit_hash_fnPv" title="hashkit_set_custom_function"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">hashkit_set_custom_function()</span></code></a> and the distribution
+equivalents return <a class="reference internal" href="#_CPPv4N16hashkit_return_t15HASHKIT_SUCCESSE" title="hashkit_return_t::HASHKIT_SUCCESS"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">hashkit_return_t::HASHKIT_SUCCESS</span></code></a> on success.</p>
+<p><a class="reference internal" href="#_CPPv420hashkit_get_functionPK10hashkit_st" title="hashkit_get_function"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">hashkit_get_function()</span></code></a> and <a class="reference internal" href="#_CPPv433hashkit_get_distribution_functionPK10hashkit_st" title="hashkit_get_distribution_function"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">hashkit_get_distribution_function()</span></code></a> return
+<a class="reference internal" href="#_CPPv424hashkit_hash_algorithm_t" title="hashkit_hash_algorithm_t"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">hashkit_hash_algorithm_t</span></code></a> indicating the hash function used.</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><a class="reference internal" href="../libhashkit.html"><span class="doc">libhashkit - C/C++ hashing library</span></a></p></li>
-<li><p><a class="reference internal" href="hashkit_create.html"><span class="doc">Creating a hashkit structure</span></a></p></li>
-<li><p><a class="reference internal" href="hashkit_functions.html"><span class="doc">Available Hashes</span></a></p></li>
+<li><a class="reference internal" href="index.html"><span class="doc">libhashkit - C/C++ hashing library</span></a></li>
+<li><a class="reference internal" href="hashkit_create.html"><span class="doc">Creating a hashkit structure</span></a></li>
+<li><a class="reference internal" href="hashkit_functions.html"><span class="doc">Available Hashes</span></a></li>
 </ul>
 </div>
 </div>