D7net Mini Sh3LL v1
Current File : /var/www/html/../../../usr/share/doc/libapr1/../libitm1/../libapr1-dev/html/group__apr__hash.html |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Apache Portable Runtime: Hash Tables</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Apache Portable Runtime
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#define-members">Macros</a> |
<a href="#typedef-members">Typedefs</a> |
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">Hash Tables<div class="ingroups"><a class="el" href="group___a_p_r.html">Apache Portability Runtime library</a></div></div> </div>
</div><!--header-->
<div class="contents">
<div class="dynheader">
Collaboration diagram for Hash Tables:</div>
<div class="dyncontent">
<div class="center"><img src="group__apr__hash.png" border="0" usemap="#group____apr____hash" alt=""/></div>
<!-- MAP 0 -->
</div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:ga3ba32541f2717b394000f87f38c7e12d"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__hash.html#ga3ba32541f2717b394000f87f38c7e12d">APR_HASH_KEY_STRING</a>   (-1)</td></tr>
<tr class="separator:ga3ba32541f2717b394000f87f38c7e12d"><td class="memSeparator" colspan="2"> </td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:ga72ec09b8bde6d874c36bd49df915fff6"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="group__apr__hash.html#ga72ec09b8bde6d874c36bd49df915fff6">apr_hash_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__hash.html#ga72ec09b8bde6d874c36bd49df915fff6">apr_hash_t</a></td></tr>
<tr class="separator:ga72ec09b8bde6d874c36bd49df915fff6"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga3b3d353989f6cea4535630634be147f7"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="group__apr__hash.html#ga3b3d353989f6cea4535630634be147f7">apr_hash_index_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__hash.html#ga3b3d353989f6cea4535630634be147f7">apr_hash_index_t</a></td></tr>
<tr class="separator:ga3b3d353989f6cea4535630634be147f7"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga0bf5622266af13a2489c907a101cb156"><td class="memItemLeft" align="right" valign="top">typedef unsigned int(* </td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__hash.html#ga0bf5622266af13a2489c907a101cb156">apr_hashfunc_t</a>) (const char *key, apr_ssize_t *klen)</td></tr>
<tr class="separator:ga0bf5622266af13a2489c907a101cb156"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gafaf9b4435ab207b7708533cb8544face"><td class="memItemLeft" align="right" valign="top">typedef int() </td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__hash.html#gafaf9b4435ab207b7708533cb8544face">apr_hash_do_callback_fn_t</a>(void *rec, const void *key, apr_ssize_t klen, const void *value)</td></tr>
<tr class="separator:gafaf9b4435ab207b7708533cb8544face"><td class="memSeparator" colspan="2"> </td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga8baa6e9d9d6c2c496d2a0ff1a5c53abe"><td class="memItemLeft" align="right" valign="top">unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__hash.html#ga8baa6e9d9d6c2c496d2a0ff1a5c53abe">apr_hashfunc_default</a> (const char *key, apr_ssize_t *klen)</td></tr>
<tr class="separator:ga8baa6e9d9d6c2c496d2a0ff1a5c53abe"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga5f4b424d6761de4d32aa16ff6803bac9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__apr__hash.html#ga72ec09b8bde6d874c36bd49df915fff6">apr_hash_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__hash.html#ga5f4b424d6761de4d32aa16ff6803bac9">apr_hash_make</a> (<a class="el" href="group__apr__pools.html#gaf137f28edcf9a086cd6bc36c20d7cdfb">apr_pool_t</a> *pool)</td></tr>
<tr class="separator:ga5f4b424d6761de4d32aa16ff6803bac9"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga27f40acb206f1821a783ddcb71bc8971"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__apr__hash.html#ga72ec09b8bde6d874c36bd49df915fff6">apr_hash_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__hash.html#ga27f40acb206f1821a783ddcb71bc8971">apr_hash_make_custom</a> (<a class="el" href="group__apr__pools.html#gaf137f28edcf9a086cd6bc36c20d7cdfb">apr_pool_t</a> *pool, <a class="el" href="group__apr__hash.html#ga0bf5622266af13a2489c907a101cb156">apr_hashfunc_t</a> hash_func)</td></tr>
<tr class="separator:ga27f40acb206f1821a783ddcb71bc8971"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gafa0b1b9fb91b2249ee3bcb645d93e148"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__apr__hash.html#ga72ec09b8bde6d874c36bd49df915fff6">apr_hash_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__hash.html#gafa0b1b9fb91b2249ee3bcb645d93e148">apr_hash_copy</a> (<a class="el" href="group__apr__pools.html#gaf137f28edcf9a086cd6bc36c20d7cdfb">apr_pool_t</a> *pool, const <a class="el" href="group__apr__hash.html#ga72ec09b8bde6d874c36bd49df915fff6">apr_hash_t</a> *h)</td></tr>
<tr class="separator:gafa0b1b9fb91b2249ee3bcb645d93e148"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga456beb139bc548728b49c09c2f89b93c"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__hash.html#ga456beb139bc548728b49c09c2f89b93c">apr_hash_set</a> (<a class="el" href="group__apr__hash.html#ga72ec09b8bde6d874c36bd49df915fff6">apr_hash_t</a> *ht, const void *key, apr_ssize_t klen, const void *val)</td></tr>
<tr class="separator:ga456beb139bc548728b49c09c2f89b93c"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga05e526dad8afaebe14caea90d906d6ec"><td class="memItemLeft" align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__hash.html#ga05e526dad8afaebe14caea90d906d6ec">apr_hash_get</a> (<a class="el" href="group__apr__hash.html#ga72ec09b8bde6d874c36bd49df915fff6">apr_hash_t</a> *ht, const void *key, apr_ssize_t klen)</td></tr>
<tr class="separator:ga05e526dad8afaebe14caea90d906d6ec"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga640005a4ba64a5db039b0b43a8ad4898"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__apr__hash.html#ga3b3d353989f6cea4535630634be147f7">apr_hash_index_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__hash.html#ga640005a4ba64a5db039b0b43a8ad4898">apr_hash_first</a> (<a class="el" href="group__apr__pools.html#gaf137f28edcf9a086cd6bc36c20d7cdfb">apr_pool_t</a> *p, <a class="el" href="group__apr__hash.html#ga72ec09b8bde6d874c36bd49df915fff6">apr_hash_t</a> *ht)</td></tr>
<tr class="separator:ga640005a4ba64a5db039b0b43a8ad4898"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga9d7b9198555659e9abac4e3028ccce00"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__apr__hash.html#ga3b3d353989f6cea4535630634be147f7">apr_hash_index_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__hash.html#ga9d7b9198555659e9abac4e3028ccce00">apr_hash_next</a> (<a class="el" href="group__apr__hash.html#ga3b3d353989f6cea4535630634be147f7">apr_hash_index_t</a> *hi)</td></tr>
<tr class="separator:ga9d7b9198555659e9abac4e3028ccce00"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gad90e5b895397c2c535e32b3e44a75b3f"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__hash.html#gad90e5b895397c2c535e32b3e44a75b3f">apr_hash_this</a> (<a class="el" href="group__apr__hash.html#ga3b3d353989f6cea4535630634be147f7">apr_hash_index_t</a> *hi, const void **key, apr_ssize_t *klen, void **val)</td></tr>
<tr class="separator:gad90e5b895397c2c535e32b3e44a75b3f"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga835bd602131de7d40cbf8abd4e0f9f6c"><td class="memItemLeft" align="right" valign="top">const void * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__hash.html#ga835bd602131de7d40cbf8abd4e0f9f6c">apr_hash_this_key</a> (<a class="el" href="group__apr__hash.html#ga3b3d353989f6cea4535630634be147f7">apr_hash_index_t</a> *hi)</td></tr>
<tr class="separator:ga835bd602131de7d40cbf8abd4e0f9f6c"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gae49a862095e9a3ca96603faa69493736"><td class="memItemLeft" align="right" valign="top">apr_ssize_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__hash.html#gae49a862095e9a3ca96603faa69493736">apr_hash_this_key_len</a> (<a class="el" href="group__apr__hash.html#ga3b3d353989f6cea4535630634be147f7">apr_hash_index_t</a> *hi)</td></tr>
<tr class="separator:gae49a862095e9a3ca96603faa69493736"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gaebf56aa7585e6fa18b6ff9563c71914b"><td class="memItemLeft" align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__hash.html#gaebf56aa7585e6fa18b6ff9563c71914b">apr_hash_this_val</a> (<a class="el" href="group__apr__hash.html#ga3b3d353989f6cea4535630634be147f7">apr_hash_index_t</a> *hi)</td></tr>
<tr class="separator:gaebf56aa7585e6fa18b6ff9563c71914b"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga4e44efa9ef043c1bb8a4abc5edcfda2c"><td class="memItemLeft" align="right" valign="top">unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__hash.html#ga4e44efa9ef043c1bb8a4abc5edcfda2c">apr_hash_count</a> (<a class="el" href="group__apr__hash.html#ga72ec09b8bde6d874c36bd49df915fff6">apr_hash_t</a> *ht)</td></tr>
<tr class="separator:ga4e44efa9ef043c1bb8a4abc5edcfda2c"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga06fb1b9ecff1a15ee41ff02db74264e4"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__hash.html#ga06fb1b9ecff1a15ee41ff02db74264e4">apr_hash_clear</a> (<a class="el" href="group__apr__hash.html#ga72ec09b8bde6d874c36bd49df915fff6">apr_hash_t</a> *ht)</td></tr>
<tr class="separator:ga06fb1b9ecff1a15ee41ff02db74264e4"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga2f68646a64bad44efcbf3457af581fdb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__apr__hash.html#ga72ec09b8bde6d874c36bd49df915fff6">apr_hash_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__hash.html#ga2f68646a64bad44efcbf3457af581fdb">apr_hash_overlay</a> (<a class="el" href="group__apr__pools.html#gaf137f28edcf9a086cd6bc36c20d7cdfb">apr_pool_t</a> *p, const <a class="el" href="group__apr__hash.html#ga72ec09b8bde6d874c36bd49df915fff6">apr_hash_t</a> *overlay, const <a class="el" href="group__apr__hash.html#ga72ec09b8bde6d874c36bd49df915fff6">apr_hash_t</a> *base)</td></tr>
<tr class="separator:ga2f68646a64bad44efcbf3457af581fdb"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gaa954266cd16a55f7f384ab0a9c4ff9f1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__apr__hash.html#ga72ec09b8bde6d874c36bd49df915fff6">apr_hash_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__hash.html#gaa954266cd16a55f7f384ab0a9c4ff9f1">apr_hash_merge</a> (<a class="el" href="group__apr__pools.html#gaf137f28edcf9a086cd6bc36c20d7cdfb">apr_pool_t</a> *p, const <a class="el" href="group__apr__hash.html#ga72ec09b8bde6d874c36bd49df915fff6">apr_hash_t</a> *h1, const <a class="el" href="group__apr__hash.html#ga72ec09b8bde6d874c36bd49df915fff6">apr_hash_t</a> *h2, void *(*merger)(<a class="el" href="group__apr__pools.html#gaf137f28edcf9a086cd6bc36c20d7cdfb">apr_pool_t</a> *p, const void *key, apr_ssize_t klen, const void *h1_val, const void *h2_val, const void *data), const void *data)</td></tr>
<tr class="separator:gaa954266cd16a55f7f384ab0a9c4ff9f1"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga3f3bac64e281d9e7eb9fed6101031394"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__hash.html#ga3f3bac64e281d9e7eb9fed6101031394">apr_hash_do</a> (<a class="el" href="group__apr__hash.html#gafaf9b4435ab207b7708533cb8544face">apr_hash_do_callback_fn_t</a> *comp, void *rec, const <a class="el" href="group__apr__hash.html#ga72ec09b8bde6d874c36bd49df915fff6">apr_hash_t</a> *ht)</td></tr>
<tr class="separator:ga3f3bac64e281d9e7eb9fed6101031394"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga6c170fee4d679928d381cd61c559c105"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__apr__pools.html#gaf137f28edcf9a086cd6bc36c20d7cdfb">apr_pool_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__hash.html#ga6c170fee4d679928d381cd61c559c105">apr_hash_pool_get</a> (const <a class="el" href="group__apr__hash.html#ga72ec09b8bde6d874c36bd49df915fff6">apr_hash_t</a> *thehash)</td></tr>
<tr class="separator:ga6c170fee4d679928d381cd61c559c105"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a id="ga3ba32541f2717b394000f87f38c7e12d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga3ba32541f2717b394000f87f38c7e12d">◆ </a></span>APR_HASH_KEY_STRING</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define APR_HASH_KEY_STRING   (-1)</td>
</tr>
</table>
</div><div class="memdoc">
<p>When passing a key to apr_hash_set or apr_hash_get, this value can be passed to indicate a string-valued key, and have apr_hash compute the length automatically.</p>
<dl class="section remark"><dt>Remarks</dt><dd>apr_hash will use strlen(key) for the length. The NUL terminator is not included in the hash value (why throw a constant in?). Since the hash table merely references the provided key (rather than copying it), <a class="el" href="group__apr__hash.html#gad90e5b895397c2c535e32b3e44a75b3f">apr_hash_this()</a> will return the NUL-term'd key. </dd></dl>
</div>
</div>
<h2 class="groupheader">Typedef Documentation</h2>
<a id="gafaf9b4435ab207b7708533cb8544face"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gafaf9b4435ab207b7708533cb8544face">◆ </a></span>apr_hash_do_callback_fn_t</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef int() apr_hash_do_callback_fn_t(void *rec, const void *key, apr_ssize_t klen, const void *value)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Declaration prototype for the iterator callback function of <a class="el" href="group__apr__hash.html#ga3f3bac64e281d9e7eb9fed6101031394">apr_hash_do()</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">rec</td><td>The data passed as the first argument to apr_hash_[v]do() </td></tr>
<tr><td class="paramname">key</td><td>The key from this iteration of the hash table </td></tr>
<tr><td class="paramname">klen</td><td>The key length from this iteration of the hash table </td></tr>
<tr><td class="paramname">value</td><td>The value from this iteration of the hash table </td></tr>
</table>
</dd>
</dl>
<dl class="section remark"><dt>Remarks</dt><dd>Iteration continues while this callback function returns non-zero. To export the callback function for <a class="el" href="group__apr__hash.html#ga3f3bac64e281d9e7eb9fed6101031394">apr_hash_do()</a> it must be declared in the _NONSTD convention. </dd></dl>
</div>
</div>
<a id="ga3b3d353989f6cea4535630634be147f7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga3b3d353989f6cea4535630634be147f7">◆ </a></span>apr_hash_index_t</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef struct <a class="el" href="group__apr__hash.html#ga3b3d353989f6cea4535630634be147f7">apr_hash_index_t</a> <a class="el" href="group__apr__hash.html#ga3b3d353989f6cea4535630634be147f7">apr_hash_index_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Abstract type for scanning hash tables. </p>
</div>
</div>
<a id="ga72ec09b8bde6d874c36bd49df915fff6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga72ec09b8bde6d874c36bd49df915fff6">◆ </a></span>apr_hash_t</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef struct <a class="el" href="group__apr__hash.html#ga72ec09b8bde6d874c36bd49df915fff6">apr_hash_t</a> <a class="el" href="group__apr__hash.html#ga72ec09b8bde6d874c36bd49df915fff6">apr_hash_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Abstract type for hash tables. </p>
</div>
</div>
<a id="ga0bf5622266af13a2489c907a101cb156"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga0bf5622266af13a2489c907a101cb156">◆ </a></span>apr_hashfunc_t</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef unsigned int(* apr_hashfunc_t) (const char *key, apr_ssize_t *klen)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Callback functions for calculating hash values. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">key</td><td>The key. </td></tr>
<tr><td class="paramname">klen</td><td>The length of the key, or APR_HASH_KEY_STRING to use the string length. If APR_HASH_KEY_STRING then returns the actual key length. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="ga06fb1b9ecff1a15ee41ff02db74264e4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga06fb1b9ecff1a15ee41ff02db74264e4">◆ </a></span>apr_hash_clear()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void apr_hash_clear </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__apr__hash.html#ga72ec09b8bde6d874c36bd49df915fff6">apr_hash_t</a> * </td>
<td class="paramname"><em>ht</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Clear any key/value pairs in the hash table. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">ht</td><td>The hash table </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="gafa0b1b9fb91b2249ee3bcb645d93e148"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gafa0b1b9fb91b2249ee3bcb645d93e148">◆ </a></span>apr_hash_copy()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__apr__hash.html#ga72ec09b8bde6d874c36bd49df915fff6">apr_hash_t</a>* apr_hash_copy </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__apr__pools.html#gaf137f28edcf9a086cd6bc36c20d7cdfb">apr_pool_t</a> * </td>
<td class="paramname"><em>pool</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="group__apr__hash.html#ga72ec09b8bde6d874c36bd49df915fff6">apr_hash_t</a> * </td>
<td class="paramname"><em>h</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Make a copy of a hash table </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">pool</td><td>The pool from which to allocate the new hash table </td></tr>
<tr><td class="paramname">h</td><td>The hash table to clone </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The hash table just created </dd></dl>
<dl class="section remark"><dt>Remarks</dt><dd>Makes a shallow copy </dd></dl>
</div>
</div>
<a id="ga4e44efa9ef043c1bb8a4abc5edcfda2c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga4e44efa9ef043c1bb8a4abc5edcfda2c">◆ </a></span>apr_hash_count()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">unsigned int apr_hash_count </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__apr__hash.html#ga72ec09b8bde6d874c36bd49df915fff6">apr_hash_t</a> * </td>
<td class="paramname"><em>ht</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the number of key/value pairs in the hash table. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">ht</td><td>The hash table </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The number of key/value pairs in the hash table. </dd></dl>
</div>
</div>
<a id="ga3f3bac64e281d9e7eb9fed6101031394"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga3f3bac64e281d9e7eb9fed6101031394">◆ </a></span>apr_hash_do()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int apr_hash_do </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__apr__hash.html#gafaf9b4435ab207b7708533cb8544face">apr_hash_do_callback_fn_t</a> * </td>
<td class="paramname"><em>comp</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void * </td>
<td class="paramname"><em>rec</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="group__apr__hash.html#ga72ec09b8bde6d874c36bd49df915fff6">apr_hash_t</a> * </td>
<td class="paramname"><em>ht</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Iterate over a hash table running the provided function once for every element in the hash table. The</p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">comp</td><td>function will be invoked for every element in the hash table.</td></tr>
<tr><td class="paramname">comp</td><td>The function to run </td></tr>
<tr><td class="paramname">rec</td><td>The data to pass as the first argument to the function </td></tr>
<tr><td class="paramname">ht</td><td>The hash table to iterate over </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>FALSE if one of the comp() iterations returned zero; TRUE if all iterations returned non-zero </dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group__apr__hash.html#gafaf9b4435ab207b7708533cb8544face">apr_hash_do_callback_fn_t</a> </dd></dl>
</div>
</div>
<a id="ga640005a4ba64a5db039b0b43a8ad4898"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga640005a4ba64a5db039b0b43a8ad4898">◆ </a></span>apr_hash_first()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__apr__hash.html#ga3b3d353989f6cea4535630634be147f7">apr_hash_index_t</a>* apr_hash_first </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__apr__pools.html#gaf137f28edcf9a086cd6bc36c20d7cdfb">apr_pool_t</a> * </td>
<td class="paramname"><em>p</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__apr__hash.html#ga72ec09b8bde6d874c36bd49df915fff6">apr_hash_t</a> * </td>
<td class="paramname"><em>ht</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Start iterating over the entries in a hash table. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">p</td><td>The pool to allocate the apr_hash_index_t iterator. If this pool is NULL, then an internal, non-thread-safe iterator is used. </td></tr>
<tr><td class="paramname">ht</td><td>The hash table </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The iteration state </dd></dl>
<dl class="section remark"><dt>Remarks</dt><dd>There is no restriction on adding or deleting hash entries during an iteration (although the results may be unpredictable unless all you do is delete the current entry) and multiple iterations can be in progress at the same time.</dd></dl>
<dl class="section user"><dt>Example:</dt><dd></dd></dl>
<div class="fragment"><div class="line"><span class="keywordtype">int</span> sum_values(<a class="code" href="group__apr__pools.html#gaf137f28edcf9a086cd6bc36c20d7cdfb">apr_pool_t</a> *p, <a class="code" href="group__apr__hash.html#ga72ec09b8bde6d874c36bd49df915fff6">apr_hash_t</a> *ht)</div>
<div class="line">{</div>
<div class="line"> <a class="code" href="group__apr__hash.html#ga3b3d353989f6cea4535630634be147f7">apr_hash_index_t</a> *hi;</div>
<div class="line"> <span class="keywordtype">void</span> *val;</div>
<div class="line"> <span class="keywordtype">int</span> sum = 0;</div>
<div class="line"> <span class="keywordflow">for</span> (hi = <a class="code" href="group__apr__hash.html#ga640005a4ba64a5db039b0b43a8ad4898">apr_hash_first</a>(p, ht); hi; hi = <a class="code" href="group__apr__hash.html#ga9d7b9198555659e9abac4e3028ccce00">apr_hash_next</a>(hi)) {</div>
<div class="line"> <a class="code" href="group__apr__hash.html#gad90e5b895397c2c535e32b3e44a75b3f">apr_hash_this</a>(hi, NULL, NULL, &val);</div>
<div class="line"> sum += *(<span class="keywordtype">int</span> *)val;</div>
<div class="line"> }</div>
<div class="line"> <span class="keywordflow">return</span> sum;</div>
<div class="line">}</div>
</div><!-- fragment -->
</div>
</div>
<a id="ga05e526dad8afaebe14caea90d906d6ec"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga05e526dad8afaebe14caea90d906d6ec">◆ </a></span>apr_hash_get()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void* apr_hash_get </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__apr__hash.html#ga72ec09b8bde6d874c36bd49df915fff6">apr_hash_t</a> * </td>
<td class="paramname"><em>ht</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const void * </td>
<td class="paramname"><em>key</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">apr_ssize_t </td>
<td class="paramname"><em>klen</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Look up the value associated with a key in a hash table. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">ht</td><td>The hash table </td></tr>
<tr><td class="paramname">key</td><td>Pointer to the key </td></tr>
<tr><td class="paramname">klen</td><td>Length of the key. Can be APR_HASH_KEY_STRING to use the string length. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Returns NULL if the key is not present. </dd></dl>
</div>
</div>
<a id="ga5f4b424d6761de4d32aa16ff6803bac9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga5f4b424d6761de4d32aa16ff6803bac9">◆ </a></span>apr_hash_make()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__apr__hash.html#ga72ec09b8bde6d874c36bd49df915fff6">apr_hash_t</a>* apr_hash_make </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__apr__pools.html#gaf137f28edcf9a086cd6bc36c20d7cdfb">apr_pool_t</a> * </td>
<td class="paramname"><em>pool</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Create a hash table. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">pool</td><td>The pool to allocate the hash table out of </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The hash table just created </dd></dl>
</div>
</div>
<a id="ga27f40acb206f1821a783ddcb71bc8971"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga27f40acb206f1821a783ddcb71bc8971">◆ </a></span>apr_hash_make_custom()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__apr__hash.html#ga72ec09b8bde6d874c36bd49df915fff6">apr_hash_t</a>* apr_hash_make_custom </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__apr__pools.html#gaf137f28edcf9a086cd6bc36c20d7cdfb">apr_pool_t</a> * </td>
<td class="paramname"><em>pool</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__apr__hash.html#ga0bf5622266af13a2489c907a101cb156">apr_hashfunc_t</a> </td>
<td class="paramname"><em>hash_func</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Create a hash table with a custom hash function </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">pool</td><td>The pool to allocate the hash table out of </td></tr>
<tr><td class="paramname">hash_func</td><td>A custom hash function. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The hash table just created </dd></dl>
</div>
</div>
<a id="gaa954266cd16a55f7f384ab0a9c4ff9f1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaa954266cd16a55f7f384ab0a9c4ff9f1">◆ </a></span>apr_hash_merge()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__apr__hash.html#ga72ec09b8bde6d874c36bd49df915fff6">apr_hash_t</a>* apr_hash_merge </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__apr__pools.html#gaf137f28edcf9a086cd6bc36c20d7cdfb">apr_pool_t</a> * </td>
<td class="paramname"><em>p</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="group__apr__hash.html#ga72ec09b8bde6d874c36bd49df915fff6">apr_hash_t</a> * </td>
<td class="paramname"><em>h1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="group__apr__hash.html#ga72ec09b8bde6d874c36bd49df915fff6">apr_hash_t</a> * </td>
<td class="paramname"><em>h2</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *(*)(<a class="el" href="group__apr__pools.html#gaf137f28edcf9a086cd6bc36c20d7cdfb">apr_pool_t</a> *p, const void *key, apr_ssize_t klen, const void *h1_val, const void *h2_val, const void *data) </td>
<td class="paramname"><em>merger</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const void * </td>
<td class="paramname"><em>data</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Merge two hash tables into one new hash table. If the same key is present in both tables, call the supplied merge function to produce a merged value for the key in the new table. Both hash tables must use the same hash function. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">p</td><td>The pool to use for the new hash table </td></tr>
<tr><td class="paramname">h1</td><td>The first of the tables to merge </td></tr>
<tr><td class="paramname">h2</td><td>The second of the tables to merge </td></tr>
<tr><td class="paramname">merger</td><td>A callback function to merge values, or NULL to make values from h1 override values from h2 (same semantics as <a class="el" href="group__apr__hash.html#ga2f68646a64bad44efcbf3457af581fdb">apr_hash_overlay()</a>) </td></tr>
<tr><td class="paramname">data</td><td>Client data to pass to the merger function </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A new hash table containing all of the data from the two passed in </dd></dl>
</div>
</div>
<a id="ga9d7b9198555659e9abac4e3028ccce00"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga9d7b9198555659e9abac4e3028ccce00">◆ </a></span>apr_hash_next()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__apr__hash.html#ga3b3d353989f6cea4535630634be147f7">apr_hash_index_t</a>* apr_hash_next </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__apr__hash.html#ga3b3d353989f6cea4535630634be147f7">apr_hash_index_t</a> * </td>
<td class="paramname"><em>hi</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Continue iterating over the entries in a hash table. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">hi</td><td>The iteration state </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>a pointer to the updated iteration state. NULL if there are no more <br />
entries. </dd></dl>
</div>
</div>
<a id="ga2f68646a64bad44efcbf3457af581fdb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga2f68646a64bad44efcbf3457af581fdb">◆ </a></span>apr_hash_overlay()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__apr__hash.html#ga72ec09b8bde6d874c36bd49df915fff6">apr_hash_t</a>* apr_hash_overlay </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__apr__pools.html#gaf137f28edcf9a086cd6bc36c20d7cdfb">apr_pool_t</a> * </td>
<td class="paramname"><em>p</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="group__apr__hash.html#ga72ec09b8bde6d874c36bd49df915fff6">apr_hash_t</a> * </td>
<td class="paramname"><em>overlay</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="group__apr__hash.html#ga72ec09b8bde6d874c36bd49df915fff6">apr_hash_t</a> * </td>
<td class="paramname"><em>base</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Merge two hash tables into one new hash table. The values of the overlay hash override the values of the base if both have the same key. Both hash tables must use the same hash function. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">p</td><td>The pool to use for the new hash table </td></tr>
<tr><td class="paramname">overlay</td><td>The table to add to the initial table </td></tr>
<tr><td class="paramname">base</td><td>The table that represents the initial values of the new table </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A new hash table containing all of the data from the two passed in </dd></dl>
</div>
</div>
<a id="ga6c170fee4d679928d381cd61c559c105"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga6c170fee4d679928d381cd61c559c105">◆ </a></span>apr_hash_pool_get()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__apr__pools.html#gaf137f28edcf9a086cd6bc36c20d7cdfb">apr_pool_t</a>* apr_hash_pool_get </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="group__apr__hash.html#ga72ec09b8bde6d874c36bd49df915fff6">apr_hash_t</a> * </td>
<td class="paramname"><em>thehash</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get a pointer to the pool which the hash table was created in </p>
</div>
</div>
<a id="ga456beb139bc548728b49c09c2f89b93c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga456beb139bc548728b49c09c2f89b93c">◆ </a></span>apr_hash_set()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void apr_hash_set </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__apr__hash.html#ga72ec09b8bde6d874c36bd49df915fff6">apr_hash_t</a> * </td>
<td class="paramname"><em>ht</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const void * </td>
<td class="paramname"><em>key</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">apr_ssize_t </td>
<td class="paramname"><em>klen</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const void * </td>
<td class="paramname"><em>val</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Associate a value with a key in a hash table. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">ht</td><td>The hash table </td></tr>
<tr><td class="paramname">key</td><td>Pointer to the key </td></tr>
<tr><td class="paramname">klen</td><td>Length of the key. Can be APR_HASH_KEY_STRING to use the string length. </td></tr>
<tr><td class="paramname">val</td><td>Value to associate with the key </td></tr>
</table>
</dd>
</dl>
<dl class="section remark"><dt>Remarks</dt><dd>If the value is NULL the hash entry is deleted. The key is stored as is, and so must have a lifetime at least as long as the hash table's pool. </dd></dl>
</div>
</div>
<a id="gad90e5b895397c2c535e32b3e44a75b3f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad90e5b895397c2c535e32b3e44a75b3f">◆ </a></span>apr_hash_this()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void apr_hash_this </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__apr__hash.html#ga3b3d353989f6cea4535630634be147f7">apr_hash_index_t</a> * </td>
<td class="paramname"><em>hi</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const void ** </td>
<td class="paramname"><em>key</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">apr_ssize_t * </td>
<td class="paramname"><em>klen</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void ** </td>
<td class="paramname"><em>val</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the current entry's details from the iteration state. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">hi</td><td>The iteration state </td></tr>
<tr><td class="paramname">key</td><td>Return pointer for the pointer to the key. </td></tr>
<tr><td class="paramname">klen</td><td>Return pointer for the key length. </td></tr>
<tr><td class="paramname">val</td><td>Return pointer for the associated value. </td></tr>
</table>
</dd>
</dl>
<dl class="section remark"><dt>Remarks</dt><dd>The return pointers should point to a variable that will be set to the corresponding data, or they may be NULL if the data isn't interesting. </dd></dl>
</div>
</div>
<a id="ga835bd602131de7d40cbf8abd4e0f9f6c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga835bd602131de7d40cbf8abd4e0f9f6c">◆ </a></span>apr_hash_this_key()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const void* apr_hash_this_key </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__apr__hash.html#ga3b3d353989f6cea4535630634be147f7">apr_hash_index_t</a> * </td>
<td class="paramname"><em>hi</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the current entry's key from the iteration state. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">hi</td><td>The iteration state </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The pointer to the key </dd></dl>
</div>
</div>
<a id="gae49a862095e9a3ca96603faa69493736"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae49a862095e9a3ca96603faa69493736">◆ </a></span>apr_hash_this_key_len()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">apr_ssize_t apr_hash_this_key_len </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__apr__hash.html#ga3b3d353989f6cea4535630634be147f7">apr_hash_index_t</a> * </td>
<td class="paramname"><em>hi</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the current entry's key length from the iteration state. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">hi</td><td>The iteration state </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The key length </dd></dl>
</div>
</div>
<a id="gaebf56aa7585e6fa18b6ff9563c71914b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaebf56aa7585e6fa18b6ff9563c71914b">◆ </a></span>apr_hash_this_val()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void* apr_hash_this_val </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__apr__hash.html#ga3b3d353989f6cea4535630634be147f7">apr_hash_index_t</a> * </td>
<td class="paramname"><em>hi</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the current entry's value from the iteration state. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">hi</td><td>The iteration state </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The pointer to the value </dd></dl>
</div>
</div>
<a id="ga8baa6e9d9d6c2c496d2a0ff1a5c53abe"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga8baa6e9d9d6c2c496d2a0ff1a5c53abe">◆ </a></span>apr_hashfunc_default()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">unsigned int apr_hashfunc_default </td>
<td>(</td>
<td class="paramtype">const char * </td>
<td class="paramname"><em>key</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">apr_ssize_t * </td>
<td class="paramname"><em>klen</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>The default hash function. </p>
</div>
</div>
</div><!-- contents -->
<div class="ttc" id="agroup__apr__hash_html_gad90e5b895397c2c535e32b3e44a75b3f"><div class="ttname"><a href="group__apr__hash.html#gad90e5b895397c2c535e32b3e44a75b3f">apr_hash_this</a></div><div class="ttdeci">void apr_hash_this(apr_hash_index_t *hi, const void **key, apr_ssize_t *klen, void **val)</div></div>
<div class="ttc" id="agroup__apr__hash_html_ga3b3d353989f6cea4535630634be147f7"><div class="ttname"><a href="group__apr__hash.html#ga3b3d353989f6cea4535630634be147f7">apr_hash_index_t</a></div><div class="ttdeci">struct apr_hash_index_t apr_hash_index_t</div><div class="ttdef"><b>Definition:</b> apr_hash.h:57</div></div>
<div class="ttc" id="agroup__apr__hash_html_ga72ec09b8bde6d874c36bd49df915fff6"><div class="ttname"><a href="group__apr__hash.html#ga72ec09b8bde6d874c36bd49df915fff6">apr_hash_t</a></div><div class="ttdeci">struct apr_hash_t apr_hash_t</div><div class="ttdef"><b>Definition:</b> apr_hash.h:52</div></div>
<div class="ttc" id="agroup__apr__hash_html_ga640005a4ba64a5db039b0b43a8ad4898"><div class="ttname"><a href="group__apr__hash.html#ga640005a4ba64a5db039b0b43a8ad4898">apr_hash_first</a></div><div class="ttdeci">apr_hash_index_t * apr_hash_first(apr_pool_t *p, apr_hash_t *ht)</div></div>
<div class="ttc" id="agroup__apr__hash_html_ga9d7b9198555659e9abac4e3028ccce00"><div class="ttname"><a href="group__apr__hash.html#ga9d7b9198555659e9abac4e3028ccce00">apr_hash_next</a></div><div class="ttdeci">apr_hash_index_t * apr_hash_next(apr_hash_index_t *hi)</div></div>
<div class="ttc" id="agroup__apr__pools_html_gaf137f28edcf9a086cd6bc36c20d7cdfb"><div class="ttname"><a href="group__apr__pools.html#gaf137f28edcf9a086cd6bc36c20d7cdfb">apr_pool_t</a></div><div class="ttdeci">struct apr_pool_t apr_pool_t</div><div class="ttdef"><b>Definition:</b> apr_pools.h:60</div></div>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by  <a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>
</body>
</html>
AnonSec - 2021 | Recode By D7net