docs/api-2.1/map_8h.html

changeset 390
d345541018fa
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/docs/api-2.1/map_8h.html	Sat Feb 06 19:11:44 2021 +0100
     1.3 @@ -0,0 +1,1689 @@
     1.4 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
     1.5 +<html xmlns="http://www.w3.org/1999/xhtml">
     1.6 +<head>
     1.7 +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
     1.8 +<meta http-equiv="X-UA-Compatible" content="IE=9"/>
     1.9 +<meta name="generator" content="Doxygen 1.8.13"/>
    1.10 +<meta name="viewport" content="width=device-width, initial-scale=1"/>
    1.11 +<title>ucx: /home/mike/workspace/c/ucx/src/ucx/map.h File Reference</title>
    1.12 +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    1.13 +<script type="text/javascript" src="jquery.js"></script>
    1.14 +<script type="text/javascript" src="dynsections.js"></script>
    1.15 +<link href="search/search.css" rel="stylesheet" type="text/css"/>
    1.16 +<script type="text/javascript" src="search/searchdata.js"></script>
    1.17 +<script type="text/javascript" src="search/search.js"></script>
    1.18 +<link href="doxygen.css" rel="stylesheet" type="text/css" />
    1.19 +</head>
    1.20 +<body>
    1.21 +<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
    1.22 +<div id="titlearea">
    1.23 +<table cellspacing="0" cellpadding="0">
    1.24 + <tbody>
    1.25 + <tr style="height: 56px;">
    1.26 +  <td id="projectlogo"><img alt="Logo" src="uaplogo.png"/></td>
    1.27 +  <td id="projectalign" style="padding-left: 0.5em;">
    1.28 +   <div id="projectname">ucx
    1.29 +   </div>
    1.30 +   <div id="projectbrief">UAP Common Extensions</div>
    1.31 +  </td>
    1.32 + </tr>
    1.33 + </tbody>
    1.34 +</table>
    1.35 +</div>
    1.36 +<!-- end header part -->
    1.37 +<!-- Generated by Doxygen 1.8.13 -->
    1.38 +<script type="text/javascript">
    1.39 +var searchBox = new SearchBox("searchBox", "search",false,'Search');
    1.40 +</script>
    1.41 +<script type="text/javascript" src="menudata.js"></script>
    1.42 +<script type="text/javascript" src="menu.js"></script>
    1.43 +<script type="text/javascript">
    1.44 +$(function() {
    1.45 +  initMenu('',true,false,'search.php','Search');
    1.46 +  $(document).ready(function() { init_search(); });
    1.47 +});
    1.48 +</script>
    1.49 +<div id="main-nav"></div>
    1.50 +<!-- window showing the filter options -->
    1.51 +<div id="MSearchSelectWindow"
    1.52 +     onmouseover="return searchBox.OnSearchSelectShow()"
    1.53 +     onmouseout="return searchBox.OnSearchSelectHide()"
    1.54 +     onkeydown="return searchBox.OnSearchSelectKey(event)">
    1.55 +</div>
    1.56 +
    1.57 +<!-- iframe showing the search results (closed by default) -->
    1.58 +<div id="MSearchResultsWindow">
    1.59 +<iframe src="javascript:void(0)" frameborder="0" 
    1.60 +        name="MSearchResults" id="MSearchResults">
    1.61 +</iframe>
    1.62 +</div>
    1.63 +
    1.64 +<div id="nav-path" class="navpath">
    1.65 +  <ul>
    1.66 +<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_69f4ea29401808fe6229564976cde3ce.html">ucx</a></li>  </ul>
    1.67 +</div>
    1.68 +</div><!-- top -->
    1.69 +<div class="header">
    1.70 +  <div class="summary">
    1.71 +<a href="#nested-classes">Data Structures</a> &#124;
    1.72 +<a href="#define-members">Macros</a> &#124;
    1.73 +<a href="#typedef-members">Typedefs</a> &#124;
    1.74 +<a href="#func-members">Functions</a>  </div>
    1.75 +  <div class="headertitle">
    1.76 +<div class="title">map.h File Reference</div>  </div>
    1.77 +</div><!--header-->
    1.78 +<div class="contents">
    1.79 +
    1.80 +<p>Hash map implementation.  
    1.81 +<a href="#details">More...</a></p>
    1.82 +<div class="textblock"><code>#include &quot;<a class="el" href="ucx_8h_source.html">ucx.h</a>&quot;</code><br />
    1.83 +<code>#include &quot;<a class="el" href="string_8h_source.html">string.h</a>&quot;</code><br />
    1.84 +<code>#include &quot;<a class="el" href="allocator_8h_source.html">allocator.h</a>&quot;</code><br />
    1.85 +<code>#include &lt;stdio.h&gt;</code><br />
    1.86 +</div>
    1.87 +<p><a href="map_8h_source.html">Go to the source code of this file.</a></p>
    1.88 +<table class="memberdecls">
    1.89 +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
    1.90 +Data Structures</h2></td></tr>
    1.91 +<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structUcxMap.html">UcxMap</a></td></tr>
    1.92 +<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Structure for the UCX map.  <a href="structUcxMap.html#details">More...</a><br /></td></tr>
    1.93 +<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
    1.94 +<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structUcxKey.html">UcxKey</a></td></tr>
    1.95 +<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Structure to publicly denote a key of a <a class="el" href="structUcxMap.html" title="Structure for the UCX map. ">UcxMap</a>.  <a href="structUcxKey.html#details">More...</a><br /></td></tr>
    1.96 +<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
    1.97 +<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structUcxMapKey.html">UcxMapKey</a></td></tr>
    1.98 +<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Internal structure for a key of a <a class="el" href="structUcxMap.html" title="Structure for the UCX map. ">UcxMap</a>.  <a href="structUcxMapKey.html#details">More...</a><br /></td></tr>
    1.99 +<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
   1.100 +<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structUcxMapElement.html">UcxMapElement</a></td></tr>
   1.101 +<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Structure for an element of a <a class="el" href="structUcxMap.html" title="Structure for the UCX map. ">UcxMap</a>.  <a href="structUcxMapElement.html#details">More...</a><br /></td></tr>
   1.102 +<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
   1.103 +<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structUcxMapIterator.html">UcxMapIterator</a></td></tr>
   1.104 +<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Structure for an iterator over a <a class="el" href="structUcxMap.html" title="Structure for the UCX map. ">UcxMap</a>.  <a href="structUcxMapIterator.html#details">More...</a><br /></td></tr>
   1.105 +<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
   1.106 +</table><table class="memberdecls">
   1.107 +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
   1.108 +Macros</h2></td></tr>
   1.109 +<tr class="memitem:a940896c4aa1b13e54c55c04c3efc186b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="map_8h.html#a940896c4aa1b13e54c55c04c3efc186b">UCX_MAP_FOREACH</a>(key,  value,  iter)&#160;&#160;&#160;for(<a class="el" href="structUcxKey.html">UcxKey</a> key;<a class="el" href="map_8h.html#aceb8675abf44860b4bbc301bbada5b91">ucx_map_iter_next</a>(&amp;iter,&amp;key, (void**)&amp;value);)</td></tr>
   1.110 +<tr class="memdesc:a940896c4aa1b13e54c55c04c3efc186b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Loop statement for UCX maps.  <a href="#a940896c4aa1b13e54c55c04c3efc186b">More...</a><br /></td></tr>
   1.111 +<tr class="separator:a940896c4aa1b13e54c55c04c3efc186b"><td class="memSeparator" colspan="2">&#160;</td></tr>
   1.112 +<tr class="memitem:ac26a8615bfc8f47ee9eaceb47645f98e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="map_8h.html#ac26a8615bfc8f47ee9eaceb47645f98e">ucx_map_sstr_put</a>(map,  key,  value)&#160;&#160;&#160;<a class="el" href="map_8h.html#ac04a08b604217070254d4c58f0e82498">ucx_map_put</a>(map, <a class="el" href="map_8h.html#a3e540bb46b8ee19789aed63fd8919200">ucx_key</a>(key.ptr, key.length), (void*)value)</td></tr>
   1.113 +<tr class="memdesc:ac26a8615bfc8f47ee9eaceb47645f98e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Shorthand for putting data with a <a class="el" href="structsstr__t.html" title="The UCX string structure. ">sstr_t</a> key into the map.  <a href="#ac26a8615bfc8f47ee9eaceb47645f98e">More...</a><br /></td></tr>
   1.114 +<tr class="separator:ac26a8615bfc8f47ee9eaceb47645f98e"><td class="memSeparator" colspan="2">&#160;</td></tr>
   1.115 +<tr class="memitem:ad9356b01425b934ab237b52339ac0cc3"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="map_8h.html#ad9356b01425b934ab237b52339ac0cc3">ucx_map_cstr_put</a>(map,  key,  value)&#160;&#160;&#160;<a class="el" href="map_8h.html#ac04a08b604217070254d4c58f0e82498">ucx_map_put</a>(map, <a class="el" href="map_8h.html#a3e540bb46b8ee19789aed63fd8919200">ucx_key</a>(key, strlen(key)), (void*)value)</td></tr>
   1.116 +<tr class="memdesc:ad9356b01425b934ab237b52339ac0cc3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Shorthand for putting data with a C string key into the map.  <a href="#ad9356b01425b934ab237b52339ac0cc3">More...</a><br /></td></tr>
   1.117 +<tr class="separator:ad9356b01425b934ab237b52339ac0cc3"><td class="memSeparator" colspan="2">&#160;</td></tr>
   1.118 +<tr class="memitem:aaa30af79b4068c923895619e83f44367"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="map_8h.html#aaa30af79b4068c923895619e83f44367">ucx_map_int_put</a>(map,  key,  value)&#160;&#160;&#160;<a class="el" href="map_8h.html#ac04a08b604217070254d4c58f0e82498">ucx_map_put</a>(map, <a class="el" href="map_8h.html#a3e540bb46b8ee19789aed63fd8919200">ucx_key</a>(&amp;key, sizeof(key)), (void*)value)</td></tr>
   1.119 +<tr class="memdesc:aaa30af79b4068c923895619e83f44367"><td class="mdescLeft">&#160;</td><td class="mdescRight">Shorthand for putting data with an integer key into the map.  <a href="#aaa30af79b4068c923895619e83f44367">More...</a><br /></td></tr>
   1.120 +<tr class="separator:aaa30af79b4068c923895619e83f44367"><td class="memSeparator" colspan="2">&#160;</td></tr>
   1.121 +<tr class="memitem:a14d385f6b7f371f0507861cabd2eab4e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="map_8h.html#a14d385f6b7f371f0507861cabd2eab4e">ucx_map_sstr_get</a>(map,  key)&#160;&#160;&#160;<a class="el" href="map_8h.html#ab61192c5af2e06ecb9ad73880d1c95a6">ucx_map_get</a>(map, <a class="el" href="map_8h.html#a3e540bb46b8ee19789aed63fd8919200">ucx_key</a>(key.ptr, key.length))</td></tr>
   1.122 +<tr class="memdesc:a14d385f6b7f371f0507861cabd2eab4e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Shorthand for getting data from the map with a <a class="el" href="structsstr__t.html" title="The UCX string structure. ">sstr_t</a> key.  <a href="#a14d385f6b7f371f0507861cabd2eab4e">More...</a><br /></td></tr>
   1.123 +<tr class="separator:a14d385f6b7f371f0507861cabd2eab4e"><td class="memSeparator" colspan="2">&#160;</td></tr>
   1.124 +<tr class="memitem:a64e1fb55498fa502dd2ed8ed69062cdd"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="map_8h.html#a64e1fb55498fa502dd2ed8ed69062cdd">ucx_map_cstr_get</a>(map,  key)&#160;&#160;&#160;<a class="el" href="map_8h.html#ab61192c5af2e06ecb9ad73880d1c95a6">ucx_map_get</a>(map, <a class="el" href="map_8h.html#a3e540bb46b8ee19789aed63fd8919200">ucx_key</a>(key, strlen(key)))</td></tr>
   1.125 +<tr class="memdesc:a64e1fb55498fa502dd2ed8ed69062cdd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Shorthand for getting data from the map with a C string key.  <a href="#a64e1fb55498fa502dd2ed8ed69062cdd">More...</a><br /></td></tr>
   1.126 +<tr class="separator:a64e1fb55498fa502dd2ed8ed69062cdd"><td class="memSeparator" colspan="2">&#160;</td></tr>
   1.127 +<tr class="memitem:aa1681bd2178553cd092fd24c4d681d3c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="map_8h.html#aa1681bd2178553cd092fd24c4d681d3c">ucx_map_int_get</a>(map,  key)&#160;&#160;&#160;<a class="el" href="map_8h.html#ab61192c5af2e06ecb9ad73880d1c95a6">ucx_map_get</a>(map, <a class="el" href="map_8h.html#a3e540bb46b8ee19789aed63fd8919200">ucx_key</a>(&amp;key, sizeof(int)))</td></tr>
   1.128 +<tr class="memdesc:aa1681bd2178553cd092fd24c4d681d3c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Shorthand for getting data from the map with an integer key.  <a href="#aa1681bd2178553cd092fd24c4d681d3c">More...</a><br /></td></tr>
   1.129 +<tr class="separator:aa1681bd2178553cd092fd24c4d681d3c"><td class="memSeparator" colspan="2">&#160;</td></tr>
   1.130 +<tr class="memitem:a48700ea86fadb9ea54d13010f9124df2"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="map_8h.html#a48700ea86fadb9ea54d13010f9124df2">ucx_map_sstr_remove</a>(map,  key)&#160;&#160;&#160;<a class="el" href="map_8h.html#a17248a4888eb8f9ae18be522d64632aa">ucx_map_remove</a>(map, <a class="el" href="map_8h.html#a3e540bb46b8ee19789aed63fd8919200">ucx_key</a>(key.ptr, key.length))</td></tr>
   1.131 +<tr class="memdesc:a48700ea86fadb9ea54d13010f9124df2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Shorthand for removing data from the map with a <a class="el" href="structsstr__t.html" title="The UCX string structure. ">sstr_t</a> key.  <a href="#a48700ea86fadb9ea54d13010f9124df2">More...</a><br /></td></tr>
   1.132 +<tr class="separator:a48700ea86fadb9ea54d13010f9124df2"><td class="memSeparator" colspan="2">&#160;</td></tr>
   1.133 +<tr class="memitem:a9c4405a5a75ecf64e2ef3d0c6501a9fe"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="map_8h.html#a9c4405a5a75ecf64e2ef3d0c6501a9fe">ucx_map_cstr_remove</a>(map,  key)&#160;&#160;&#160;<a class="el" href="map_8h.html#a17248a4888eb8f9ae18be522d64632aa">ucx_map_remove</a>(map, <a class="el" href="map_8h.html#a3e540bb46b8ee19789aed63fd8919200">ucx_key</a>(key, strlen(key)))</td></tr>
   1.134 +<tr class="memdesc:a9c4405a5a75ecf64e2ef3d0c6501a9fe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Shorthand for removing data from the map with a C string key.  <a href="#a9c4405a5a75ecf64e2ef3d0c6501a9fe">More...</a><br /></td></tr>
   1.135 +<tr class="separator:a9c4405a5a75ecf64e2ef3d0c6501a9fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
   1.136 +<tr class="memitem:aa767958b5468737755c09f7185b1770c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="map_8h.html#aa767958b5468737755c09f7185b1770c">ucx_map_int_remove</a>(map,  key)&#160;&#160;&#160;<a class="el" href="map_8h.html#a17248a4888eb8f9ae18be522d64632aa">ucx_map_remove</a>(map, <a class="el" href="map_8h.html#a3e540bb46b8ee19789aed63fd8919200">ucx_key</a>(&amp;key, sizeof(key)))</td></tr>
   1.137 +<tr class="memdesc:aa767958b5468737755c09f7185b1770c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Shorthand for removing data from the map with an integer key.  <a href="#aa767958b5468737755c09f7185b1770c">More...</a><br /></td></tr>
   1.138 +<tr class="separator:aa767958b5468737755c09f7185b1770c"><td class="memSeparator" colspan="2">&#160;</td></tr>
   1.139 +</table><table class="memberdecls">
   1.140 +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
   1.141 +Typedefs</h2></td></tr>
   1.142 +<tr class="memitem:a18e21948725b2da68c35da587a722033"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structUcxMap.html">UcxMap</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="map_8h.html#a18e21948725b2da68c35da587a722033">UcxMap</a></td></tr>
   1.143 +<tr class="memdesc:a18e21948725b2da68c35da587a722033"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type for the UCX map.  <a href="#a18e21948725b2da68c35da587a722033">More...</a><br /></td></tr>
   1.144 +<tr class="separator:a18e21948725b2da68c35da587a722033"><td class="memSeparator" colspan="2">&#160;</td></tr>
   1.145 +<tr class="memitem:ad63828bb23123fc01a5315a2bac3b142"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structUcxKey.html">UcxKey</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="map_8h.html#ad63828bb23123fc01a5315a2bac3b142">UcxKey</a></td></tr>
   1.146 +<tr class="memdesc:ad63828bb23123fc01a5315a2bac3b142"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type for a key of a <a class="el" href="structUcxMap.html" title="Structure for the UCX map. ">UcxMap</a>.  <a href="#ad63828bb23123fc01a5315a2bac3b142">More...</a><br /></td></tr>
   1.147 +<tr class="separator:ad63828bb23123fc01a5315a2bac3b142"><td class="memSeparator" colspan="2">&#160;</td></tr>
   1.148 +<tr class="memitem:ad7d7a910a32113eb93eae11c3dc97b4b"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structUcxMapElement.html">UcxMapElement</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="map_8h.html#ad7d7a910a32113eb93eae11c3dc97b4b">UcxMapElement</a></td></tr>
   1.149 +<tr class="memdesc:ad7d7a910a32113eb93eae11c3dc97b4b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type for an element of a <a class="el" href="structUcxMap.html" title="Structure for the UCX map. ">UcxMap</a>.  <a href="#ad7d7a910a32113eb93eae11c3dc97b4b">More...</a><br /></td></tr>
   1.150 +<tr class="separator:ad7d7a910a32113eb93eae11c3dc97b4b"><td class="memSeparator" colspan="2">&#160;</td></tr>
   1.151 +<tr class="memitem:ae36aff5f645948c54f51578b11fd87fb"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structUcxMapIterator.html">UcxMapIterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="map_8h.html#ae36aff5f645948c54f51578b11fd87fb">UcxMapIterator</a></td></tr>
   1.152 +<tr class="memdesc:ae36aff5f645948c54f51578b11fd87fb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type for an iterator over a <a class="el" href="structUcxMap.html" title="Structure for the UCX map. ">UcxMap</a>.  <a href="#ae36aff5f645948c54f51578b11fd87fb">More...</a><br /></td></tr>
   1.153 +<tr class="separator:ae36aff5f645948c54f51578b11fd87fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
   1.154 +</table><table class="memberdecls">
   1.155 +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
   1.156 +Functions</h2></td></tr>
   1.157 +<tr class="memitem:a79f31de8b93814493759dbc8b940cf0c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structUcxMap.html">UcxMap</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="map_8h.html#a79f31de8b93814493759dbc8b940cf0c">ucx_map_new</a> (size_t size)</td></tr>
   1.158 +<tr class="memdesc:a79f31de8b93814493759dbc8b940cf0c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a new hash map with the specified size.  <a href="#a79f31de8b93814493759dbc8b940cf0c">More...</a><br /></td></tr>
   1.159 +<tr class="separator:a79f31de8b93814493759dbc8b940cf0c"><td class="memSeparator" colspan="2">&#160;</td></tr>
   1.160 +<tr class="memitem:aed508a94c66cc15372503c64b70eb03e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structUcxMap.html">UcxMap</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="map_8h.html#aed508a94c66cc15372503c64b70eb03e">ucx_map_new_a</a> (<a class="el" href="structUcxAllocator.html">UcxAllocator</a> *allocator, size_t size)</td></tr>
   1.161 +<tr class="memdesc:aed508a94c66cc15372503c64b70eb03e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a new hash map with the specified size using a <a class="el" href="structUcxAllocator.html" title="UCX allocator data structure containing memory management functions. ">UcxAllocator</a>.  <a href="#aed508a94c66cc15372503c64b70eb03e">More...</a><br /></td></tr>
   1.162 +<tr class="separator:aed508a94c66cc15372503c64b70eb03e"><td class="memSeparator" colspan="2">&#160;</td></tr>
   1.163 +<tr class="memitem:abe3d9688e4224bf7bb962abf25ff8c2e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="map_8h.html#abe3d9688e4224bf7bb962abf25ff8c2e">ucx_map_free</a> (<a class="el" href="structUcxMap.html">UcxMap</a> *map)</td></tr>
   1.164 +<tr class="memdesc:abe3d9688e4224bf7bb962abf25ff8c2e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Frees a hash map.  <a href="#abe3d9688e4224bf7bb962abf25ff8c2e">More...</a><br /></td></tr>
   1.165 +<tr class="separator:abe3d9688e4224bf7bb962abf25ff8c2e"><td class="memSeparator" colspan="2">&#160;</td></tr>
   1.166 +<tr class="memitem:a750f3d9d83e2f3788a14c17a9d160618"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="map_8h.html#a750f3d9d83e2f3788a14c17a9d160618">ucx_map_free_content</a> (<a class="el" href="structUcxMap.html">UcxMap</a> *map, <a class="el" href="ucx_8h.html#ad2b370c2809914c8b7fedab163c266b3">ucx_destructor</a> destr)</td></tr>
   1.167 +<tr class="memdesc:a750f3d9d83e2f3788a14c17a9d160618"><td class="mdescLeft">&#160;</td><td class="mdescRight">Frees the contents of a hash map.  <a href="#a750f3d9d83e2f3788a14c17a9d160618">More...</a><br /></td></tr>
   1.168 +<tr class="separator:a750f3d9d83e2f3788a14c17a9d160618"><td class="memSeparator" colspan="2">&#160;</td></tr>
   1.169 +<tr class="memitem:a285e90e40681c6d9631c935dda0967f2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="map_8h.html#a285e90e40681c6d9631c935dda0967f2">ucx_map_clear</a> (<a class="el" href="structUcxMap.html">UcxMap</a> *map)</td></tr>
   1.170 +<tr class="memdesc:a285e90e40681c6d9631c935dda0967f2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clears a hash map.  <a href="#a285e90e40681c6d9631c935dda0967f2">More...</a><br /></td></tr>
   1.171 +<tr class="separator:a285e90e40681c6d9631c935dda0967f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
   1.172 +<tr class="memitem:adfeb2d61003fd2896bcfdc9a57f36425"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="map_8h.html#adfeb2d61003fd2896bcfdc9a57f36425">ucx_map_copy</a> (<a class="el" href="structUcxMap.html">UcxMap</a> const *from, <a class="el" href="structUcxMap.html">UcxMap</a> *to, <a class="el" href="ucx_8h.html#aab917a5fe0965673c73e8ebd0a1fc967">copy_func</a> fnc, void *data)</td></tr>
   1.173 +<tr class="memdesc:adfeb2d61003fd2896bcfdc9a57f36425"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copies contents from a map to another map using a copy function.  <a href="#adfeb2d61003fd2896bcfdc9a57f36425">More...</a><br /></td></tr>
   1.174 +<tr class="separator:adfeb2d61003fd2896bcfdc9a57f36425"><td class="memSeparator" colspan="2">&#160;</td></tr>
   1.175 +<tr class="memitem:a62c6c30cbb0d824ba710f5030ff9a4e4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structUcxMap.html">UcxMap</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="map_8h.html#a62c6c30cbb0d824ba710f5030ff9a4e4">ucx_map_clone</a> (<a class="el" href="structUcxMap.html">UcxMap</a> const *map, <a class="el" href="ucx_8h.html#aab917a5fe0965673c73e8ebd0a1fc967">copy_func</a> fnc, void *data)</td></tr>
   1.176 +<tr class="memdesc:a62c6c30cbb0d824ba710f5030ff9a4e4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clones the map and rehashes if necessary.  <a href="#a62c6c30cbb0d824ba710f5030ff9a4e4">More...</a><br /></td></tr>
   1.177 +<tr class="separator:a62c6c30cbb0d824ba710f5030ff9a4e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
   1.178 +<tr class="memitem:a9aea9103703d5c168420bb6bf85549ea"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structUcxMap.html">UcxMap</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="map_8h.html#a9aea9103703d5c168420bb6bf85549ea">ucx_map_clone_a</a> (<a class="el" href="structUcxAllocator.html">UcxAllocator</a> *allocator, <a class="el" href="structUcxMap.html">UcxMap</a> const *map, <a class="el" href="ucx_8h.html#aab917a5fe0965673c73e8ebd0a1fc967">copy_func</a> fnc, void *data)</td></tr>
   1.179 +<tr class="memdesc:a9aea9103703d5c168420bb6bf85549ea"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clones the map and rehashes if necessary.  <a href="#a9aea9103703d5c168420bb6bf85549ea">More...</a><br /></td></tr>
   1.180 +<tr class="separator:a9aea9103703d5c168420bb6bf85549ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
   1.181 +<tr class="memitem:a174bce9fad554dd92b8da354e0d32512"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="map_8h.html#a174bce9fad554dd92b8da354e0d32512">ucx_map_rehash</a> (<a class="el" href="structUcxMap.html">UcxMap</a> *map)</td></tr>
   1.182 +<tr class="memdesc:a174bce9fad554dd92b8da354e0d32512"><td class="mdescLeft">&#160;</td><td class="mdescRight">Increases size of the hash map, if necessary.  <a href="#a174bce9fad554dd92b8da354e0d32512">More...</a><br /></td></tr>
   1.183 +<tr class="separator:a174bce9fad554dd92b8da354e0d32512"><td class="memSeparator" colspan="2">&#160;</td></tr>
   1.184 +<tr class="memitem:ac04a08b604217070254d4c58f0e82498"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="map_8h.html#ac04a08b604217070254d4c58f0e82498">ucx_map_put</a> (<a class="el" href="structUcxMap.html">UcxMap</a> *map, <a class="el" href="structUcxKey.html">UcxKey</a> key, void *value)</td></tr>
   1.185 +<tr class="memdesc:ac04a08b604217070254d4c58f0e82498"><td class="mdescLeft">&#160;</td><td class="mdescRight">Puts a key/value-pair into the map.  <a href="#ac04a08b604217070254d4c58f0e82498">More...</a><br /></td></tr>
   1.186 +<tr class="separator:ac04a08b604217070254d4c58f0e82498"><td class="memSeparator" colspan="2">&#160;</td></tr>
   1.187 +<tr class="memitem:ab61192c5af2e06ecb9ad73880d1c95a6"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="map_8h.html#ab61192c5af2e06ecb9ad73880d1c95a6">ucx_map_get</a> (<a class="el" href="structUcxMap.html">UcxMap</a> const *map, <a class="el" href="structUcxKey.html">UcxKey</a> key)</td></tr>
   1.188 +<tr class="memdesc:ab61192c5af2e06ecb9ad73880d1c95a6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieves a value by using a key.  <a href="#ab61192c5af2e06ecb9ad73880d1c95a6">More...</a><br /></td></tr>
   1.189 +<tr class="separator:ab61192c5af2e06ecb9ad73880d1c95a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
   1.190 +<tr class="memitem:a17248a4888eb8f9ae18be522d64632aa"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="map_8h.html#a17248a4888eb8f9ae18be522d64632aa">ucx_map_remove</a> (<a class="el" href="structUcxMap.html">UcxMap</a> *map, <a class="el" href="structUcxKey.html">UcxKey</a> key)</td></tr>
   1.191 +<tr class="memdesc:a17248a4888eb8f9ae18be522d64632aa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes a key/value-pair from the map by using the key.  <a href="#a17248a4888eb8f9ae18be522d64632aa">More...</a><br /></td></tr>
   1.192 +<tr class="separator:a17248a4888eb8f9ae18be522d64632aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
   1.193 +<tr class="memitem:a3e540bb46b8ee19789aed63fd8919200"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structUcxKey.html">UcxKey</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="map_8h.html#a3e540bb46b8ee19789aed63fd8919200">ucx_key</a> (const void *data, size_t len)</td></tr>
   1.194 +<tr class="memdesc:a3e540bb46b8ee19789aed63fd8919200"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a <a class="el" href="structUcxKey.html" title="Structure to publicly denote a key of a UcxMap. ">UcxKey</a> based on the given data.  <a href="#a3e540bb46b8ee19789aed63fd8919200">More...</a><br /></td></tr>
   1.195 +<tr class="separator:a3e540bb46b8ee19789aed63fd8919200"><td class="memSeparator" colspan="2">&#160;</td></tr>
   1.196 +<tr class="memitem:aea3be97254c05595d986ef6a9faae87b"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="map_8h.html#aea3be97254c05595d986ef6a9faae87b">ucx_hash</a> (const char *data, size_t len)</td></tr>
   1.197 +<tr class="memdesc:aea3be97254c05595d986ef6a9faae87b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes a murmur hash-2.  <a href="#aea3be97254c05595d986ef6a9faae87b">More...</a><br /></td></tr>
   1.198 +<tr class="separator:aea3be97254c05595d986ef6a9faae87b"><td class="memSeparator" colspan="2">&#160;</td></tr>
   1.199 +<tr class="memitem:a9150e9c64fdf4dfcc2cad106b91aa110"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structUcxMapIterator.html">UcxMapIterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="map_8h.html#a9150e9c64fdf4dfcc2cad106b91aa110">ucx_map_iterator</a> (<a class="el" href="structUcxMap.html">UcxMap</a> const *map)</td></tr>
   1.200 +<tr class="memdesc:a9150e9c64fdf4dfcc2cad106b91aa110"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates an iterator for a map.  <a href="#a9150e9c64fdf4dfcc2cad106b91aa110">More...</a><br /></td></tr>
   1.201 +<tr class="separator:a9150e9c64fdf4dfcc2cad106b91aa110"><td class="memSeparator" colspan="2">&#160;</td></tr>
   1.202 +<tr class="memitem:aceb8675abf44860b4bbc301bbada5b91"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="map_8h.html#aceb8675abf44860b4bbc301bbada5b91">ucx_map_iter_next</a> (<a class="el" href="structUcxMapIterator.html">UcxMapIterator</a> *iterator, <a class="el" href="structUcxKey.html">UcxKey</a> *key, void **value)</td></tr>
   1.203 +<tr class="memdesc:aceb8675abf44860b4bbc301bbada5b91"><td class="mdescLeft">&#160;</td><td class="mdescRight">Proceeds to the next element of the map (if any).  <a href="#aceb8675abf44860b4bbc301bbada5b91">More...</a><br /></td></tr>
   1.204 +<tr class="separator:aceb8675abf44860b4bbc301bbada5b91"><td class="memSeparator" colspan="2">&#160;</td></tr>
   1.205 +<tr class="memitem:a3f65978c481af7f637cad021d93522d5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structUcxMap.html">UcxMap</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="map_8h.html#a3f65978c481af7f637cad021d93522d5">ucx_map_union</a> (const <a class="el" href="structUcxMap.html">UcxMap</a> *first, const <a class="el" href="structUcxMap.html">UcxMap</a> *second, <a class="el" href="ucx_8h.html#aab917a5fe0965673c73e8ebd0a1fc967">copy_func</a> cpfnc, void *cpdata)</td></tr>
   1.206 +<tr class="memdesc:a3f65978c481af7f637cad021d93522d5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the union of two maps.  <a href="#a3f65978c481af7f637cad021d93522d5">More...</a><br /></td></tr>
   1.207 +<tr class="separator:a3f65978c481af7f637cad021d93522d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
   1.208 +<tr class="memitem:ab6370c3fa8113fdad593ce4b0460c9c6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structUcxMap.html">UcxMap</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="map_8h.html#ab6370c3fa8113fdad593ce4b0460c9c6">ucx_map_union_a</a> (<a class="el" href="structUcxAllocator.html">UcxAllocator</a> *allocator, const <a class="el" href="structUcxMap.html">UcxMap</a> *first, const <a class="el" href="structUcxMap.html">UcxMap</a> *second, <a class="el" href="ucx_8h.html#aab917a5fe0965673c73e8ebd0a1fc967">copy_func</a> cpfnc, void *cpdata)</td></tr>
   1.209 +<tr class="memdesc:ab6370c3fa8113fdad593ce4b0460c9c6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the union of two maps.  <a href="#ab6370c3fa8113fdad593ce4b0460c9c6">More...</a><br /></td></tr>
   1.210 +<tr class="separator:ab6370c3fa8113fdad593ce4b0460c9c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
   1.211 +<tr class="memitem:aa594d7a5afebc3bed6bb265348cf6b0d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structUcxMap.html">UcxMap</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="map_8h.html#aa594d7a5afebc3bed6bb265348cf6b0d">ucx_map_intersection</a> (const <a class="el" href="structUcxMap.html">UcxMap</a> *first, const <a class="el" href="structUcxMap.html">UcxMap</a> *second, <a class="el" href="ucx_8h.html#aab917a5fe0965673c73e8ebd0a1fc967">copy_func</a> cpfnc, void *cpdata)</td></tr>
   1.212 +<tr class="memdesc:aa594d7a5afebc3bed6bb265348cf6b0d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the intersection of two maps.  <a href="#aa594d7a5afebc3bed6bb265348cf6b0d">More...</a><br /></td></tr>
   1.213 +<tr class="separator:aa594d7a5afebc3bed6bb265348cf6b0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
   1.214 +<tr class="memitem:a169e0470a20484dd76425fdf77e3651e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structUcxMap.html">UcxMap</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="map_8h.html#a169e0470a20484dd76425fdf77e3651e">ucx_map_intersection_a</a> (<a class="el" href="structUcxAllocator.html">UcxAllocator</a> *allocator, const <a class="el" href="structUcxMap.html">UcxMap</a> *first, const <a class="el" href="structUcxMap.html">UcxMap</a> *second, <a class="el" href="ucx_8h.html#aab917a5fe0965673c73e8ebd0a1fc967">copy_func</a> cpfnc, void *cpdata)</td></tr>
   1.215 +<tr class="memdesc:a169e0470a20484dd76425fdf77e3651e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the intersection of two maps.  <a href="#a169e0470a20484dd76425fdf77e3651e">More...</a><br /></td></tr>
   1.216 +<tr class="separator:a169e0470a20484dd76425fdf77e3651e"><td class="memSeparator" colspan="2">&#160;</td></tr>
   1.217 +<tr class="memitem:a774fcff87d1e58b6c5af77dd19a8c3dc"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structUcxMap.html">UcxMap</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="map_8h.html#a774fcff87d1e58b6c5af77dd19a8c3dc">ucx_map_difference</a> (const <a class="el" href="structUcxMap.html">UcxMap</a> *first, const <a class="el" href="structUcxMap.html">UcxMap</a> *second, <a class="el" href="ucx_8h.html#aab917a5fe0965673c73e8ebd0a1fc967">copy_func</a> cpfnc, void *cpdata)</td></tr>
   1.218 +<tr class="memdesc:a774fcff87d1e58b6c5af77dd19a8c3dc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the difference of two maps.  <a href="#a774fcff87d1e58b6c5af77dd19a8c3dc">More...</a><br /></td></tr>
   1.219 +<tr class="separator:a774fcff87d1e58b6c5af77dd19a8c3dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
   1.220 +<tr class="memitem:ad0ba103494247d798ac3037c50fc8831"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structUcxMap.html">UcxMap</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="map_8h.html#ad0ba103494247d798ac3037c50fc8831">ucx_map_difference_a</a> (<a class="el" href="structUcxAllocator.html">UcxAllocator</a> *allocator, const <a class="el" href="structUcxMap.html">UcxMap</a> *first, const <a class="el" href="structUcxMap.html">UcxMap</a> *second, <a class="el" href="ucx_8h.html#aab917a5fe0965673c73e8ebd0a1fc967">copy_func</a> cpfnc, void *cpdata)</td></tr>
   1.221 +<tr class="memdesc:ad0ba103494247d798ac3037c50fc8831"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the difference of two maps.  <a href="#ad0ba103494247d798ac3037c50fc8831">More...</a><br /></td></tr>
   1.222 +<tr class="separator:ad0ba103494247d798ac3037c50fc8831"><td class="memSeparator" colspan="2">&#160;</td></tr>
   1.223 +</table>
   1.224 +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
   1.225 +<div class="textblock"><p>Hash map implementation. </p>
   1.226 +<p>This implementation uses murmur hash 2 and separate chaining with linked lists.</p>
   1.227 +<dl class="section author"><dt>Author</dt><dd>Mike Becker </dd>
   1.228 +<dd>
   1.229 +Olaf Wintermann </dd></dl>
   1.230 +</div><h2 class="groupheader">Macro Definition Documentation</h2>
   1.231 +<a id="a64e1fb55498fa502dd2ed8ed69062cdd"></a>
   1.232 +<h2 class="memtitle"><span class="permalink"><a href="#a64e1fb55498fa502dd2ed8ed69062cdd">&#9670;&nbsp;</a></span>ucx_map_cstr_get</h2>
   1.233 +
   1.234 +<div class="memitem">
   1.235 +<div class="memproto">
   1.236 +      <table class="memname">
   1.237 +        <tr>
   1.238 +          <td class="memname">#define ucx_map_cstr_get</td>
   1.239 +          <td>(</td>
   1.240 +          <td class="paramtype">&#160;</td>
   1.241 +          <td class="paramname">map, </td>
   1.242 +        </tr>
   1.243 +        <tr>
   1.244 +          <td class="paramkey"></td>
   1.245 +          <td></td>
   1.246 +          <td class="paramtype">&#160;</td>
   1.247 +          <td class="paramname">key&#160;</td>
   1.248 +        </tr>
   1.249 +        <tr>
   1.250 +          <td></td>
   1.251 +          <td>)</td>
   1.252 +          <td></td><td>&#160;&#160;&#160;<a class="el" href="map_8h.html#ab61192c5af2e06ecb9ad73880d1c95a6">ucx_map_get</a>(map, <a class="el" href="map_8h.html#a3e540bb46b8ee19789aed63fd8919200">ucx_key</a>(key, strlen(key)))</td>
   1.253 +        </tr>
   1.254 +      </table>
   1.255 +</div><div class="memdoc">
   1.256 +
   1.257 +<p>Shorthand for getting data from the map with a C string key. </p>
   1.258 +<dl class="params"><dt>Parameters</dt><dd>
   1.259 +  <table class="params">
   1.260 +    <tr><td class="paramname">map</td><td>the map </td></tr>
   1.261 +    <tr><td class="paramname">key</td><td>the key </td></tr>
   1.262 +  </table>
   1.263 +  </dd>
   1.264 +</dl>
   1.265 +<dl class="section return"><dt>Returns</dt><dd>the value </dd></dl>
   1.266 +<dl class="section see"><dt>See also</dt><dd><a class="el" href="map_8h.html#ab61192c5af2e06ecb9ad73880d1c95a6" title="Retrieves a value by using a key. ">ucx_map_get()</a> </dd></dl>
   1.267 +
   1.268 +</div>
   1.269 +</div>
   1.270 +<a id="ad9356b01425b934ab237b52339ac0cc3"></a>
   1.271 +<h2 class="memtitle"><span class="permalink"><a href="#ad9356b01425b934ab237b52339ac0cc3">&#9670;&nbsp;</a></span>ucx_map_cstr_put</h2>
   1.272 +
   1.273 +<div class="memitem">
   1.274 +<div class="memproto">
   1.275 +      <table class="memname">
   1.276 +        <tr>
   1.277 +          <td class="memname">#define ucx_map_cstr_put</td>
   1.278 +          <td>(</td>
   1.279 +          <td class="paramtype">&#160;</td>
   1.280 +          <td class="paramname">map, </td>
   1.281 +        </tr>
   1.282 +        <tr>
   1.283 +          <td class="paramkey"></td>
   1.284 +          <td></td>
   1.285 +          <td class="paramtype">&#160;</td>
   1.286 +          <td class="paramname">key, </td>
   1.287 +        </tr>
   1.288 +        <tr>
   1.289 +          <td class="paramkey"></td>
   1.290 +          <td></td>
   1.291 +          <td class="paramtype">&#160;</td>
   1.292 +          <td class="paramname">value&#160;</td>
   1.293 +        </tr>
   1.294 +        <tr>
   1.295 +          <td></td>
   1.296 +          <td>)</td>
   1.297 +          <td></td><td>&#160;&#160;&#160;<a class="el" href="map_8h.html#ac04a08b604217070254d4c58f0e82498">ucx_map_put</a>(map, <a class="el" href="map_8h.html#a3e540bb46b8ee19789aed63fd8919200">ucx_key</a>(key, strlen(key)), (void*)value)</td>
   1.298 +        </tr>
   1.299 +      </table>
   1.300 +</div><div class="memdoc">
   1.301 +
   1.302 +<p>Shorthand for putting data with a C string key into the map. </p>
   1.303 +<dl class="params"><dt>Parameters</dt><dd>
   1.304 +  <table class="params">
   1.305 +    <tr><td class="paramname">map</td><td>the map </td></tr>
   1.306 +    <tr><td class="paramname">key</td><td>the key </td></tr>
   1.307 +    <tr><td class="paramname">value</td><td>the value </td></tr>
   1.308 +  </table>
   1.309 +  </dd>
   1.310 +</dl>
   1.311 +<dl class="section return"><dt>Returns</dt><dd>0 on success, non-zero value on failure </dd></dl>
   1.312 +<dl class="section see"><dt>See also</dt><dd><a class="el" href="map_8h.html#ac04a08b604217070254d4c58f0e82498" title="Puts a key/value-pair into the map. ">ucx_map_put()</a> </dd></dl>
   1.313 +
   1.314 +</div>
   1.315 +</div>
   1.316 +<a id="a9c4405a5a75ecf64e2ef3d0c6501a9fe"></a>
   1.317 +<h2 class="memtitle"><span class="permalink"><a href="#a9c4405a5a75ecf64e2ef3d0c6501a9fe">&#9670;&nbsp;</a></span>ucx_map_cstr_remove</h2>
   1.318 +
   1.319 +<div class="memitem">
   1.320 +<div class="memproto">
   1.321 +      <table class="memname">
   1.322 +        <tr>
   1.323 +          <td class="memname">#define ucx_map_cstr_remove</td>
   1.324 +          <td>(</td>
   1.325 +          <td class="paramtype">&#160;</td>
   1.326 +          <td class="paramname">map, </td>
   1.327 +        </tr>
   1.328 +        <tr>
   1.329 +          <td class="paramkey"></td>
   1.330 +          <td></td>
   1.331 +          <td class="paramtype">&#160;</td>
   1.332 +          <td class="paramname">key&#160;</td>
   1.333 +        </tr>
   1.334 +        <tr>
   1.335 +          <td></td>
   1.336 +          <td>)</td>
   1.337 +          <td></td><td>&#160;&#160;&#160;<a class="el" href="map_8h.html#a17248a4888eb8f9ae18be522d64632aa">ucx_map_remove</a>(map, <a class="el" href="map_8h.html#a3e540bb46b8ee19789aed63fd8919200">ucx_key</a>(key, strlen(key)))</td>
   1.338 +        </tr>
   1.339 +      </table>
   1.340 +</div><div class="memdoc">
   1.341 +
   1.342 +<p>Shorthand for removing data from the map with a C string key. </p>
   1.343 +<dl class="params"><dt>Parameters</dt><dd>
   1.344 +  <table class="params">
   1.345 +    <tr><td class="paramname">map</td><td>the map </td></tr>
   1.346 +    <tr><td class="paramname">key</td><td>the key </td></tr>
   1.347 +  </table>
   1.348 +  </dd>
   1.349 +</dl>
   1.350 +<dl class="section return"><dt>Returns</dt><dd>the removed value </dd></dl>
   1.351 +<dl class="section see"><dt>See also</dt><dd><a class="el" href="map_8h.html#a17248a4888eb8f9ae18be522d64632aa" title="Removes a key/value-pair from the map by using the key. ">ucx_map_remove()</a> </dd></dl>
   1.352 +
   1.353 +</div>
   1.354 +</div>
   1.355 +<a id="a940896c4aa1b13e54c55c04c3efc186b"></a>
   1.356 +<h2 class="memtitle"><span class="permalink"><a href="#a940896c4aa1b13e54c55c04c3efc186b">&#9670;&nbsp;</a></span>UCX_MAP_FOREACH</h2>
   1.357 +
   1.358 +<div class="memitem">
   1.359 +<div class="memproto">
   1.360 +      <table class="memname">
   1.361 +        <tr>
   1.362 +          <td class="memname">#define UCX_MAP_FOREACH</td>
   1.363 +          <td>(</td>
   1.364 +          <td class="paramtype">&#160;</td>
   1.365 +          <td class="paramname">key, </td>
   1.366 +        </tr>
   1.367 +        <tr>
   1.368 +          <td class="paramkey"></td>
   1.369 +          <td></td>
   1.370 +          <td class="paramtype">&#160;</td>
   1.371 +          <td class="paramname">value, </td>
   1.372 +        </tr>
   1.373 +        <tr>
   1.374 +          <td class="paramkey"></td>
   1.375 +          <td></td>
   1.376 +          <td class="paramtype">&#160;</td>
   1.377 +          <td class="paramname">iter&#160;</td>
   1.378 +        </tr>
   1.379 +        <tr>
   1.380 +          <td></td>
   1.381 +          <td>)</td>
   1.382 +          <td></td><td>&#160;&#160;&#160;for(<a class="el" href="structUcxKey.html">UcxKey</a> key;<a class="el" href="map_8h.html#aceb8675abf44860b4bbc301bbada5b91">ucx_map_iter_next</a>(&amp;iter,&amp;key, (void**)&amp;value);)</td>
   1.383 +        </tr>
   1.384 +      </table>
   1.385 +</div><div class="memdoc">
   1.386 +
   1.387 +<p>Loop statement for UCX maps. </p>
   1.388 +<p>The <code>key</code> variable is implicitly defined, but the <code>value</code> variable must be already declared as type information cannot be inferred.</p>
   1.389 +<dl class="params"><dt>Parameters</dt><dd>
   1.390 +  <table class="params">
   1.391 +    <tr><td class="paramname">key</td><td>the variable name for the key </td></tr>
   1.392 +    <tr><td class="paramname">value</td><td>the variable name for the value </td></tr>
   1.393 +    <tr><td class="paramname">iter</td><td>a <a class="el" href="structUcxMapIterator.html" title="Structure for an iterator over a UcxMap. ">UcxMapIterator</a> </td></tr>
   1.394 +  </table>
   1.395 +  </dd>
   1.396 +</dl>
   1.397 +<dl class="section see"><dt>See also</dt><dd><a class="el" href="map_8h.html#a9150e9c64fdf4dfcc2cad106b91aa110" title="Creates an iterator for a map. ">ucx_map_iterator()</a> </dd></dl>
   1.398 +
   1.399 +</div>
   1.400 +</div>
   1.401 +<a id="aa1681bd2178553cd092fd24c4d681d3c"></a>
   1.402 +<h2 class="memtitle"><span class="permalink"><a href="#aa1681bd2178553cd092fd24c4d681d3c">&#9670;&nbsp;</a></span>ucx_map_int_get</h2>
   1.403 +
   1.404 +<div class="memitem">
   1.405 +<div class="memproto">
   1.406 +      <table class="memname">
   1.407 +        <tr>
   1.408 +          <td class="memname">#define ucx_map_int_get</td>
   1.409 +          <td>(</td>
   1.410 +          <td class="paramtype">&#160;</td>
   1.411 +          <td class="paramname">map, </td>
   1.412 +        </tr>
   1.413 +        <tr>
   1.414 +          <td class="paramkey"></td>
   1.415 +          <td></td>
   1.416 +          <td class="paramtype">&#160;</td>
   1.417 +          <td class="paramname">key&#160;</td>
   1.418 +        </tr>
   1.419 +        <tr>
   1.420 +          <td></td>
   1.421 +          <td>)</td>
   1.422 +          <td></td><td>&#160;&#160;&#160;<a class="el" href="map_8h.html#ab61192c5af2e06ecb9ad73880d1c95a6">ucx_map_get</a>(map, <a class="el" href="map_8h.html#a3e540bb46b8ee19789aed63fd8919200">ucx_key</a>(&amp;key, sizeof(int)))</td>
   1.423 +        </tr>
   1.424 +      </table>
   1.425 +</div><div class="memdoc">
   1.426 +
   1.427 +<p>Shorthand for getting data from the map with an integer key. </p>
   1.428 +<dl class="params"><dt>Parameters</dt><dd>
   1.429 +  <table class="params">
   1.430 +    <tr><td class="paramname">map</td><td>the map </td></tr>
   1.431 +    <tr><td class="paramname">key</td><td>the key </td></tr>
   1.432 +  </table>
   1.433 +  </dd>
   1.434 +</dl>
   1.435 +<dl class="section return"><dt>Returns</dt><dd>the value </dd></dl>
   1.436 +<dl class="section see"><dt>See also</dt><dd><a class="el" href="map_8h.html#ab61192c5af2e06ecb9ad73880d1c95a6" title="Retrieves a value by using a key. ">ucx_map_get()</a> </dd></dl>
   1.437 +
   1.438 +</div>
   1.439 +</div>
   1.440 +<a id="aaa30af79b4068c923895619e83f44367"></a>
   1.441 +<h2 class="memtitle"><span class="permalink"><a href="#aaa30af79b4068c923895619e83f44367">&#9670;&nbsp;</a></span>ucx_map_int_put</h2>
   1.442 +
   1.443 +<div class="memitem">
   1.444 +<div class="memproto">
   1.445 +      <table class="memname">
   1.446 +        <tr>
   1.447 +          <td class="memname">#define ucx_map_int_put</td>
   1.448 +          <td>(</td>
   1.449 +          <td class="paramtype">&#160;</td>
   1.450 +          <td class="paramname">map, </td>
   1.451 +        </tr>
   1.452 +        <tr>
   1.453 +          <td class="paramkey"></td>
   1.454 +          <td></td>
   1.455 +          <td class="paramtype">&#160;</td>
   1.456 +          <td class="paramname">key, </td>
   1.457 +        </tr>
   1.458 +        <tr>
   1.459 +          <td class="paramkey"></td>
   1.460 +          <td></td>
   1.461 +          <td class="paramtype">&#160;</td>
   1.462 +          <td class="paramname">value&#160;</td>
   1.463 +        </tr>
   1.464 +        <tr>
   1.465 +          <td></td>
   1.466 +          <td>)</td>
   1.467 +          <td></td><td>&#160;&#160;&#160;<a class="el" href="map_8h.html#ac04a08b604217070254d4c58f0e82498">ucx_map_put</a>(map, <a class="el" href="map_8h.html#a3e540bb46b8ee19789aed63fd8919200">ucx_key</a>(&amp;key, sizeof(key)), (void*)value)</td>
   1.468 +        </tr>
   1.469 +      </table>
   1.470 +</div><div class="memdoc">
   1.471 +
   1.472 +<p>Shorthand for putting data with an integer key into the map. </p>
   1.473 +<dl class="params"><dt>Parameters</dt><dd>
   1.474 +  <table class="params">
   1.475 +    <tr><td class="paramname">map</td><td>the map </td></tr>
   1.476 +    <tr><td class="paramname">key</td><td>the key </td></tr>
   1.477 +    <tr><td class="paramname">value</td><td>the value </td></tr>
   1.478 +  </table>
   1.479 +  </dd>
   1.480 +</dl>
   1.481 +<dl class="section return"><dt>Returns</dt><dd>0 on success, non-zero value on failure </dd></dl>
   1.482 +<dl class="section see"><dt>See also</dt><dd><a class="el" href="map_8h.html#ac04a08b604217070254d4c58f0e82498" title="Puts a key/value-pair into the map. ">ucx_map_put()</a> </dd></dl>
   1.483 +
   1.484 +</div>
   1.485 +</div>
   1.486 +<a id="aa767958b5468737755c09f7185b1770c"></a>
   1.487 +<h2 class="memtitle"><span class="permalink"><a href="#aa767958b5468737755c09f7185b1770c">&#9670;&nbsp;</a></span>ucx_map_int_remove</h2>
   1.488 +
   1.489 +<div class="memitem">
   1.490 +<div class="memproto">
   1.491 +      <table class="memname">
   1.492 +        <tr>
   1.493 +          <td class="memname">#define ucx_map_int_remove</td>
   1.494 +          <td>(</td>
   1.495 +          <td class="paramtype">&#160;</td>
   1.496 +          <td class="paramname">map, </td>
   1.497 +        </tr>
   1.498 +        <tr>
   1.499 +          <td class="paramkey"></td>
   1.500 +          <td></td>
   1.501 +          <td class="paramtype">&#160;</td>
   1.502 +          <td class="paramname">key&#160;</td>
   1.503 +        </tr>
   1.504 +        <tr>
   1.505 +          <td></td>
   1.506 +          <td>)</td>
   1.507 +          <td></td><td>&#160;&#160;&#160;<a class="el" href="map_8h.html#a17248a4888eb8f9ae18be522d64632aa">ucx_map_remove</a>(map, <a class="el" href="map_8h.html#a3e540bb46b8ee19789aed63fd8919200">ucx_key</a>(&amp;key, sizeof(key)))</td>
   1.508 +        </tr>
   1.509 +      </table>
   1.510 +</div><div class="memdoc">
   1.511 +
   1.512 +<p>Shorthand for removing data from the map with an integer key. </p>
   1.513 +<dl class="params"><dt>Parameters</dt><dd>
   1.514 +  <table class="params">
   1.515 +    <tr><td class="paramname">map</td><td>the map </td></tr>
   1.516 +    <tr><td class="paramname">key</td><td>the key </td></tr>
   1.517 +  </table>
   1.518 +  </dd>
   1.519 +</dl>
   1.520 +<dl class="section return"><dt>Returns</dt><dd>the removed value </dd></dl>
   1.521 +<dl class="section see"><dt>See also</dt><dd><a class="el" href="map_8h.html#a17248a4888eb8f9ae18be522d64632aa" title="Removes a key/value-pair from the map by using the key. ">ucx_map_remove()</a> </dd></dl>
   1.522 +
   1.523 +</div>
   1.524 +</div>
   1.525 +<a id="a14d385f6b7f371f0507861cabd2eab4e"></a>
   1.526 +<h2 class="memtitle"><span class="permalink"><a href="#a14d385f6b7f371f0507861cabd2eab4e">&#9670;&nbsp;</a></span>ucx_map_sstr_get</h2>
   1.527 +
   1.528 +<div class="memitem">
   1.529 +<div class="memproto">
   1.530 +      <table class="memname">
   1.531 +        <tr>
   1.532 +          <td class="memname">#define ucx_map_sstr_get</td>
   1.533 +          <td>(</td>
   1.534 +          <td class="paramtype">&#160;</td>
   1.535 +          <td class="paramname">map, </td>
   1.536 +        </tr>
   1.537 +        <tr>
   1.538 +          <td class="paramkey"></td>
   1.539 +          <td></td>
   1.540 +          <td class="paramtype">&#160;</td>
   1.541 +          <td class="paramname">key&#160;</td>
   1.542 +        </tr>
   1.543 +        <tr>
   1.544 +          <td></td>
   1.545 +          <td>)</td>
   1.546 +          <td></td><td>&#160;&#160;&#160;<a class="el" href="map_8h.html#ab61192c5af2e06ecb9ad73880d1c95a6">ucx_map_get</a>(map, <a class="el" href="map_8h.html#a3e540bb46b8ee19789aed63fd8919200">ucx_key</a>(key.ptr, key.length))</td>
   1.547 +        </tr>
   1.548 +      </table>
   1.549 +</div><div class="memdoc">
   1.550 +
   1.551 +<p>Shorthand for getting data from the map with a <a class="el" href="structsstr__t.html" title="The UCX string structure. ">sstr_t</a> key. </p>
   1.552 +<dl class="params"><dt>Parameters</dt><dd>
   1.553 +  <table class="params">
   1.554 +    <tr><td class="paramname">map</td><td>the map </td></tr>
   1.555 +    <tr><td class="paramname">key</td><td>the key </td></tr>
   1.556 +  </table>
   1.557 +  </dd>
   1.558 +</dl>
   1.559 +<dl class="section return"><dt>Returns</dt><dd>the value </dd></dl>
   1.560 +<dl class="section see"><dt>See also</dt><dd><a class="el" href="map_8h.html#ab61192c5af2e06ecb9ad73880d1c95a6" title="Retrieves a value by using a key. ">ucx_map_get()</a> </dd></dl>
   1.561 +
   1.562 +</div>
   1.563 +</div>
   1.564 +<a id="ac26a8615bfc8f47ee9eaceb47645f98e"></a>
   1.565 +<h2 class="memtitle"><span class="permalink"><a href="#ac26a8615bfc8f47ee9eaceb47645f98e">&#9670;&nbsp;</a></span>ucx_map_sstr_put</h2>
   1.566 +
   1.567 +<div class="memitem">
   1.568 +<div class="memproto">
   1.569 +      <table class="memname">
   1.570 +        <tr>
   1.571 +          <td class="memname">#define ucx_map_sstr_put</td>
   1.572 +          <td>(</td>
   1.573 +          <td class="paramtype">&#160;</td>
   1.574 +          <td class="paramname">map, </td>
   1.575 +        </tr>
   1.576 +        <tr>
   1.577 +          <td class="paramkey"></td>
   1.578 +          <td></td>
   1.579 +          <td class="paramtype">&#160;</td>
   1.580 +          <td class="paramname">key, </td>
   1.581 +        </tr>
   1.582 +        <tr>
   1.583 +          <td class="paramkey"></td>
   1.584 +          <td></td>
   1.585 +          <td class="paramtype">&#160;</td>
   1.586 +          <td class="paramname">value&#160;</td>
   1.587 +        </tr>
   1.588 +        <tr>
   1.589 +          <td></td>
   1.590 +          <td>)</td>
   1.591 +          <td></td><td>&#160;&#160;&#160;<a class="el" href="map_8h.html#ac04a08b604217070254d4c58f0e82498">ucx_map_put</a>(map, <a class="el" href="map_8h.html#a3e540bb46b8ee19789aed63fd8919200">ucx_key</a>(key.ptr, key.length), (void*)value)</td>
   1.592 +        </tr>
   1.593 +      </table>
   1.594 +</div><div class="memdoc">
   1.595 +
   1.596 +<p>Shorthand for putting data with a <a class="el" href="structsstr__t.html" title="The UCX string structure. ">sstr_t</a> key into the map. </p>
   1.597 +<dl class="params"><dt>Parameters</dt><dd>
   1.598 +  <table class="params">
   1.599 +    <tr><td class="paramname">map</td><td>the map </td></tr>
   1.600 +    <tr><td class="paramname">key</td><td>the key </td></tr>
   1.601 +    <tr><td class="paramname">value</td><td>the value </td></tr>
   1.602 +  </table>
   1.603 +  </dd>
   1.604 +</dl>
   1.605 +<dl class="section return"><dt>Returns</dt><dd>0 on success, non-zero value on failure </dd></dl>
   1.606 +<dl class="section see"><dt>See also</dt><dd><a class="el" href="map_8h.html#ac04a08b604217070254d4c58f0e82498" title="Puts a key/value-pair into the map. ">ucx_map_put()</a> </dd></dl>
   1.607 +
   1.608 +</div>
   1.609 +</div>
   1.610 +<a id="a48700ea86fadb9ea54d13010f9124df2"></a>
   1.611 +<h2 class="memtitle"><span class="permalink"><a href="#a48700ea86fadb9ea54d13010f9124df2">&#9670;&nbsp;</a></span>ucx_map_sstr_remove</h2>
   1.612 +
   1.613 +<div class="memitem">
   1.614 +<div class="memproto">
   1.615 +      <table class="memname">
   1.616 +        <tr>
   1.617 +          <td class="memname">#define ucx_map_sstr_remove</td>
   1.618 +          <td>(</td>
   1.619 +          <td class="paramtype">&#160;</td>
   1.620 +          <td class="paramname">map, </td>
   1.621 +        </tr>
   1.622 +        <tr>
   1.623 +          <td class="paramkey"></td>
   1.624 +          <td></td>
   1.625 +          <td class="paramtype">&#160;</td>
   1.626 +          <td class="paramname">key&#160;</td>
   1.627 +        </tr>
   1.628 +        <tr>
   1.629 +          <td></td>
   1.630 +          <td>)</td>
   1.631 +          <td></td><td>&#160;&#160;&#160;<a class="el" href="map_8h.html#a17248a4888eb8f9ae18be522d64632aa">ucx_map_remove</a>(map, <a class="el" href="map_8h.html#a3e540bb46b8ee19789aed63fd8919200">ucx_key</a>(key.ptr, key.length))</td>
   1.632 +        </tr>
   1.633 +      </table>
   1.634 +</div><div class="memdoc">
   1.635 +
   1.636 +<p>Shorthand for removing data from the map with a <a class="el" href="structsstr__t.html" title="The UCX string structure. ">sstr_t</a> key. </p>
   1.637 +<dl class="params"><dt>Parameters</dt><dd>
   1.638 +  <table class="params">
   1.639 +    <tr><td class="paramname">map</td><td>the map </td></tr>
   1.640 +    <tr><td class="paramname">key</td><td>the key </td></tr>
   1.641 +  </table>
   1.642 +  </dd>
   1.643 +</dl>
   1.644 +<dl class="section return"><dt>Returns</dt><dd>the removed value </dd></dl>
   1.645 +<dl class="section see"><dt>See also</dt><dd><a class="el" href="map_8h.html#a17248a4888eb8f9ae18be522d64632aa" title="Removes a key/value-pair from the map by using the key. ">ucx_map_remove()</a> </dd></dl>
   1.646 +
   1.647 +</div>
   1.648 +</div>
   1.649 +<h2 class="groupheader">Typedef Documentation</h2>
   1.650 +<a id="ad63828bb23123fc01a5315a2bac3b142"></a>
   1.651 +<h2 class="memtitle"><span class="permalink"><a href="#ad63828bb23123fc01a5315a2bac3b142">&#9670;&nbsp;</a></span>UcxKey</h2>
   1.652 +
   1.653 +<div class="memitem">
   1.654 +<div class="memproto">
   1.655 +      <table class="memname">
   1.656 +        <tr>
   1.657 +          <td class="memname">typedef struct <a class="el" href="structUcxKey.html">UcxKey</a> <a class="el" href="structUcxKey.html">UcxKey</a></td>
   1.658 +        </tr>
   1.659 +      </table>
   1.660 +</div><div class="memdoc">
   1.661 +
   1.662 +<p>Type for a key of a <a class="el" href="structUcxMap.html" title="Structure for the UCX map. ">UcxMap</a>. </p>
   1.663 +<dl class="section see"><dt>See also</dt><dd><a class="el" href="structUcxKey.html" title="Structure to publicly denote a key of a UcxMap. ">UcxKey</a> </dd></dl>
   1.664 +
   1.665 +</div>
   1.666 +</div>
   1.667 +<a id="a18e21948725b2da68c35da587a722033"></a>
   1.668 +<h2 class="memtitle"><span class="permalink"><a href="#a18e21948725b2da68c35da587a722033">&#9670;&nbsp;</a></span>UcxMap</h2>
   1.669 +
   1.670 +<div class="memitem">
   1.671 +<div class="memproto">
   1.672 +      <table class="memname">
   1.673 +        <tr>
   1.674 +          <td class="memname">typedef struct <a class="el" href="structUcxMap.html">UcxMap</a> <a class="el" href="structUcxMap.html">UcxMap</a></td>
   1.675 +        </tr>
   1.676 +      </table>
   1.677 +</div><div class="memdoc">
   1.678 +
   1.679 +<p>Type for the UCX map. </p>
   1.680 +<dl class="section see"><dt>See also</dt><dd><a class="el" href="structUcxMap.html" title="Structure for the UCX map. ">UcxMap</a> </dd></dl>
   1.681 +
   1.682 +</div>
   1.683 +</div>
   1.684 +<a id="ad7d7a910a32113eb93eae11c3dc97b4b"></a>
   1.685 +<h2 class="memtitle"><span class="permalink"><a href="#ad7d7a910a32113eb93eae11c3dc97b4b">&#9670;&nbsp;</a></span>UcxMapElement</h2>
   1.686 +
   1.687 +<div class="memitem">
   1.688 +<div class="memproto">
   1.689 +      <table class="memname">
   1.690 +        <tr>
   1.691 +          <td class="memname">typedef struct <a class="el" href="structUcxMapElement.html">UcxMapElement</a> <a class="el" href="structUcxMapElement.html">UcxMapElement</a></td>
   1.692 +        </tr>
   1.693 +      </table>
   1.694 +</div><div class="memdoc">
   1.695 +
   1.696 +<p>Type for an element of a <a class="el" href="structUcxMap.html" title="Structure for the UCX map. ">UcxMap</a>. </p>
   1.697 +<dl class="section see"><dt>See also</dt><dd><a class="el" href="structUcxMapElement.html" title="Structure for an element of a UcxMap. ">UcxMapElement</a> </dd></dl>
   1.698 +
   1.699 +</div>
   1.700 +</div>
   1.701 +<a id="ae36aff5f645948c54f51578b11fd87fb"></a>
   1.702 +<h2 class="memtitle"><span class="permalink"><a href="#ae36aff5f645948c54f51578b11fd87fb">&#9670;&nbsp;</a></span>UcxMapIterator</h2>
   1.703 +
   1.704 +<div class="memitem">
   1.705 +<div class="memproto">
   1.706 +      <table class="memname">
   1.707 +        <tr>
   1.708 +          <td class="memname">typedef struct <a class="el" href="structUcxMapIterator.html">UcxMapIterator</a> <a class="el" href="structUcxMapIterator.html">UcxMapIterator</a></td>
   1.709 +        </tr>
   1.710 +      </table>
   1.711 +</div><div class="memdoc">
   1.712 +
   1.713 +<p>Type for an iterator over a <a class="el" href="structUcxMap.html" title="Structure for the UCX map. ">UcxMap</a>. </p>
   1.714 +<dl class="section see"><dt>See also</dt><dd><a class="el" href="structUcxMapIterator.html" title="Structure for an iterator over a UcxMap. ">UcxMapIterator</a> </dd></dl>
   1.715 +
   1.716 +</div>
   1.717 +</div>
   1.718 +<h2 class="groupheader">Function Documentation</h2>
   1.719 +<a id="aea3be97254c05595d986ef6a9faae87b"></a>
   1.720 +<h2 class="memtitle"><span class="permalink"><a href="#aea3be97254c05595d986ef6a9faae87b">&#9670;&nbsp;</a></span>ucx_hash()</h2>
   1.721 +
   1.722 +<div class="memitem">
   1.723 +<div class="memproto">
   1.724 +      <table class="memname">
   1.725 +        <tr>
   1.726 +          <td class="memname">int ucx_hash </td>
   1.727 +          <td>(</td>
   1.728 +          <td class="paramtype">const char *&#160;</td>
   1.729 +          <td class="paramname"><em>data</em>, </td>
   1.730 +        </tr>
   1.731 +        <tr>
   1.732 +          <td class="paramkey"></td>
   1.733 +          <td></td>
   1.734 +          <td class="paramtype">size_t&#160;</td>
   1.735 +          <td class="paramname"><em>len</em>&#160;</td>
   1.736 +        </tr>
   1.737 +        <tr>
   1.738 +          <td></td>
   1.739 +          <td>)</td>
   1.740 +          <td></td><td></td>
   1.741 +        </tr>
   1.742 +      </table>
   1.743 +</div><div class="memdoc">
   1.744 +
   1.745 +<p>Computes a murmur hash-2. </p>
   1.746 +<dl class="params"><dt>Parameters</dt><dd>
   1.747 +  <table class="params">
   1.748 +    <tr><td class="paramname">data</td><td>the data to hash </td></tr>
   1.749 +    <tr><td class="paramname">len</td><td>the length of the data </td></tr>
   1.750 +  </table>
   1.751 +  </dd>
   1.752 +</dl>
   1.753 +<dl class="section return"><dt>Returns</dt><dd>the murmur hash-2 of the data </dd></dl>
   1.754 +
   1.755 +</div>
   1.756 +</div>
   1.757 +<a id="a3e540bb46b8ee19789aed63fd8919200"></a>
   1.758 +<h2 class="memtitle"><span class="permalink"><a href="#a3e540bb46b8ee19789aed63fd8919200">&#9670;&nbsp;</a></span>ucx_key()</h2>
   1.759 +
   1.760 +<div class="memitem">
   1.761 +<div class="memproto">
   1.762 +      <table class="memname">
   1.763 +        <tr>
   1.764 +          <td class="memname"><a class="el" href="structUcxKey.html">UcxKey</a> ucx_key </td>
   1.765 +          <td>(</td>
   1.766 +          <td class="paramtype">const void *&#160;</td>
   1.767 +          <td class="paramname"><em>data</em>, </td>
   1.768 +        </tr>
   1.769 +        <tr>
   1.770 +          <td class="paramkey"></td>
   1.771 +          <td></td>
   1.772 +          <td class="paramtype">size_t&#160;</td>
   1.773 +          <td class="paramname"><em>len</em>&#160;</td>
   1.774 +        </tr>
   1.775 +        <tr>
   1.776 +          <td></td>
   1.777 +          <td>)</td>
   1.778 +          <td></td><td></td>
   1.779 +        </tr>
   1.780 +      </table>
   1.781 +</div><div class="memdoc">
   1.782 +
   1.783 +<p>Creates a <a class="el" href="structUcxKey.html" title="Structure to publicly denote a key of a UcxMap. ">UcxKey</a> based on the given data. </p>
   1.784 +<p>This function implicitly computes the hash.</p>
   1.785 +<dl class="params"><dt>Parameters</dt><dd>
   1.786 +  <table class="params">
   1.787 +    <tr><td class="paramname">data</td><td>the data for the key </td></tr>
   1.788 +    <tr><td class="paramname">len</td><td>the length of the data </td></tr>
   1.789 +  </table>
   1.790 +  </dd>
   1.791 +</dl>
   1.792 +<dl class="section return"><dt>Returns</dt><dd>a <a class="el" href="structUcxKey.html" title="Structure to publicly denote a key of a UcxMap. ">UcxKey</a> with implicitly computed hash </dd></dl>
   1.793 +<dl class="section see"><dt>See also</dt><dd><a class="el" href="map_8h.html#aea3be97254c05595d986ef6a9faae87b" title="Computes a murmur hash-2. ">ucx_hash()</a> </dd></dl>
   1.794 +
   1.795 +</div>
   1.796 +</div>
   1.797 +<a id="a285e90e40681c6d9631c935dda0967f2"></a>
   1.798 +<h2 class="memtitle"><span class="permalink"><a href="#a285e90e40681c6d9631c935dda0967f2">&#9670;&nbsp;</a></span>ucx_map_clear()</h2>
   1.799 +
   1.800 +<div class="memitem">
   1.801 +<div class="memproto">
   1.802 +      <table class="memname">
   1.803 +        <tr>
   1.804 +          <td class="memname">void ucx_map_clear </td>
   1.805 +          <td>(</td>
   1.806 +          <td class="paramtype"><a class="el" href="structUcxMap.html">UcxMap</a> *&#160;</td>
   1.807 +          <td class="paramname"><em>map</em></td><td>)</td>
   1.808 +          <td></td>
   1.809 +        </tr>
   1.810 +      </table>
   1.811 +</div><div class="memdoc">
   1.812 +
   1.813 +<p>Clears a hash map. </p>
   1.814 +<p><b>Note:</b> the contents are <b>not</b> freed, use <a class="el" href="map_8h.html#a750f3d9d83e2f3788a14c17a9d160618" title="Frees the contents of a hash map. ">ucx_map_free_content()</a> before calling this function to achieve that.</p>
   1.815 +<dl class="params"><dt>Parameters</dt><dd>
   1.816 +  <table class="params">
   1.817 +    <tr><td class="paramname">map</td><td>the map to be cleared </td></tr>
   1.818 +  </table>
   1.819 +  </dd>
   1.820 +</dl>
   1.821 +<dl class="section see"><dt>See also</dt><dd><a class="el" href="map_8h.html#a750f3d9d83e2f3788a14c17a9d160618" title="Frees the contents of a hash map. ">ucx_map_free_content()</a> </dd></dl>
   1.822 +
   1.823 +</div>
   1.824 +</div>
   1.825 +<a id="a62c6c30cbb0d824ba710f5030ff9a4e4"></a>
   1.826 +<h2 class="memtitle"><span class="permalink"><a href="#a62c6c30cbb0d824ba710f5030ff9a4e4">&#9670;&nbsp;</a></span>ucx_map_clone()</h2>
   1.827 +
   1.828 +<div class="memitem">
   1.829 +<div class="memproto">
   1.830 +      <table class="memname">
   1.831 +        <tr>
   1.832 +          <td class="memname"><a class="el" href="structUcxMap.html">UcxMap</a>* ucx_map_clone </td>
   1.833 +          <td>(</td>
   1.834 +          <td class="paramtype"><a class="el" href="structUcxMap.html">UcxMap</a> const *&#160;</td>
   1.835 +          <td class="paramname"><em>map</em>, </td>
   1.836 +        </tr>
   1.837 +        <tr>
   1.838 +          <td class="paramkey"></td>
   1.839 +          <td></td>
   1.840 +          <td class="paramtype"><a class="el" href="ucx_8h.html#aab917a5fe0965673c73e8ebd0a1fc967">copy_func</a>&#160;</td>
   1.841 +          <td class="paramname"><em>fnc</em>, </td>
   1.842 +        </tr>
   1.843 +        <tr>
   1.844 +          <td class="paramkey"></td>
   1.845 +          <td></td>
   1.846 +          <td class="paramtype">void *&#160;</td>
   1.847 +          <td class="paramname"><em>data</em>&#160;</td>
   1.848 +        </tr>
   1.849 +        <tr>
   1.850 +          <td></td>
   1.851 +          <td>)</td>
   1.852 +          <td></td><td></td>
   1.853 +        </tr>
   1.854 +      </table>
   1.855 +</div><div class="memdoc">
   1.856 +
   1.857 +<p>Clones the map and rehashes if necessary. </p>
   1.858 +<p><b>Note:</b> In contrast to <a class="el" href="map_8h.html#a174bce9fad554dd92b8da354e0d32512" title="Increases size of the hash map, if necessary. ">ucx_map_rehash()</a> the load factor is irrelevant. This function <em>always</em> ensures a new <a class="el" href="structUcxMap.html#afe120846b26d99580a7ff1276464e838" title="The size of the map is the length of the element list array. ">UcxMap.size</a> of at least 2.5*UcxMap.count.</p>
   1.859 +<dl class="params"><dt>Parameters</dt><dd>
   1.860 +  <table class="params">
   1.861 +    <tr><td class="paramname">map</td><td>the map to clone </td></tr>
   1.862 +    <tr><td class="paramname">fnc</td><td>the copy function to use or <code>NULL</code> if the new and the old map shall share the data pointers </td></tr>
   1.863 +    <tr><td class="paramname">data</td><td>additional data for the copy function </td></tr>
   1.864 +  </table>
   1.865 +  </dd>
   1.866 +</dl>
   1.867 +<dl class="section return"><dt>Returns</dt><dd>the cloned map </dd></dl>
   1.868 +<dl class="section see"><dt>See also</dt><dd><a class="el" href="map_8h.html#adfeb2d61003fd2896bcfdc9a57f36425" title="Copies contents from a map to another map using a copy function. ">ucx_map_copy()</a> </dd></dl>
   1.869 +
   1.870 +</div>
   1.871 +</div>
   1.872 +<a id="a9aea9103703d5c168420bb6bf85549ea"></a>
   1.873 +<h2 class="memtitle"><span class="permalink"><a href="#a9aea9103703d5c168420bb6bf85549ea">&#9670;&nbsp;</a></span>ucx_map_clone_a()</h2>
   1.874 +
   1.875 +<div class="memitem">
   1.876 +<div class="memproto">
   1.877 +      <table class="memname">
   1.878 +        <tr>
   1.879 +          <td class="memname"><a class="el" href="structUcxMap.html">UcxMap</a>* ucx_map_clone_a </td>
   1.880 +          <td>(</td>
   1.881 +          <td class="paramtype"><a class="el" href="structUcxAllocator.html">UcxAllocator</a> *&#160;</td>
   1.882 +          <td class="paramname"><em>allocator</em>, </td>
   1.883 +        </tr>
   1.884 +        <tr>
   1.885 +          <td class="paramkey"></td>
   1.886 +          <td></td>
   1.887 +          <td class="paramtype"><a class="el" href="structUcxMap.html">UcxMap</a> const *&#160;</td>
   1.888 +          <td class="paramname"><em>map</em>, </td>
   1.889 +        </tr>
   1.890 +        <tr>
   1.891 +          <td class="paramkey"></td>
   1.892 +          <td></td>
   1.893 +          <td class="paramtype"><a class="el" href="ucx_8h.html#aab917a5fe0965673c73e8ebd0a1fc967">copy_func</a>&#160;</td>
   1.894 +          <td class="paramname"><em>fnc</em>, </td>
   1.895 +        </tr>
   1.896 +        <tr>
   1.897 +          <td class="paramkey"></td>
   1.898 +          <td></td>
   1.899 +          <td class="paramtype">void *&#160;</td>
   1.900 +          <td class="paramname"><em>data</em>&#160;</td>
   1.901 +        </tr>
   1.902 +        <tr>
   1.903 +          <td></td>
   1.904 +          <td>)</td>
   1.905 +          <td></td><td></td>
   1.906 +        </tr>
   1.907 +      </table>
   1.908 +</div><div class="memdoc">
   1.909 +
   1.910 +<p>Clones the map and rehashes if necessary. </p>
   1.911 +<p><b>Note:</b> In contrast to <a class="el" href="map_8h.html#a174bce9fad554dd92b8da354e0d32512" title="Increases size of the hash map, if necessary. ">ucx_map_rehash()</a> the load factor is irrelevant. This function <em>always</em> ensures a new <a class="el" href="structUcxMap.html#afe120846b26d99580a7ff1276464e838" title="The size of the map is the length of the element list array. ">UcxMap.size</a> of at least 2.5*UcxMap.count.</p>
   1.912 +<dl class="params"><dt>Parameters</dt><dd>
   1.913 +  <table class="params">
   1.914 +    <tr><td class="paramname">allocator</td><td>the allocator to use for the cloned map </td></tr>
   1.915 +    <tr><td class="paramname">map</td><td>the map to clone </td></tr>
   1.916 +    <tr><td class="paramname">fnc</td><td>the copy function to use or <code>NULL</code> if the new and the old map shall share the data pointers </td></tr>
   1.917 +    <tr><td class="paramname">data</td><td>additional data for the copy function </td></tr>
   1.918 +  </table>
   1.919 +  </dd>
   1.920 +</dl>
   1.921 +<dl class="section return"><dt>Returns</dt><dd>the cloned map </dd></dl>
   1.922 +<dl class="section see"><dt>See also</dt><dd><a class="el" href="map_8h.html#adfeb2d61003fd2896bcfdc9a57f36425" title="Copies contents from a map to another map using a copy function. ">ucx_map_copy()</a> </dd></dl>
   1.923 +
   1.924 +</div>
   1.925 +</div>
   1.926 +<a id="adfeb2d61003fd2896bcfdc9a57f36425"></a>
   1.927 +<h2 class="memtitle"><span class="permalink"><a href="#adfeb2d61003fd2896bcfdc9a57f36425">&#9670;&nbsp;</a></span>ucx_map_copy()</h2>
   1.928 +
   1.929 +<div class="memitem">
   1.930 +<div class="memproto">
   1.931 +      <table class="memname">
   1.932 +        <tr>
   1.933 +          <td class="memname">int ucx_map_copy </td>
   1.934 +          <td>(</td>
   1.935 +          <td class="paramtype"><a class="el" href="structUcxMap.html">UcxMap</a> const *&#160;</td>
   1.936 +          <td class="paramname"><em>from</em>, </td>
   1.937 +        </tr>
   1.938 +        <tr>
   1.939 +          <td class="paramkey"></td>
   1.940 +          <td></td>
   1.941 +          <td class="paramtype"><a class="el" href="structUcxMap.html">UcxMap</a> *&#160;</td>
   1.942 +          <td class="paramname"><em>to</em>, </td>
   1.943 +        </tr>
   1.944 +        <tr>
   1.945 +          <td class="paramkey"></td>
   1.946 +          <td></td>
   1.947 +          <td class="paramtype"><a class="el" href="ucx_8h.html#aab917a5fe0965673c73e8ebd0a1fc967">copy_func</a>&#160;</td>
   1.948 +          <td class="paramname"><em>fnc</em>, </td>
   1.949 +        </tr>
   1.950 +        <tr>
   1.951 +          <td class="paramkey"></td>
   1.952 +          <td></td>
   1.953 +          <td class="paramtype">void *&#160;</td>
   1.954 +          <td class="paramname"><em>data</em>&#160;</td>
   1.955 +        </tr>
   1.956 +        <tr>
   1.957 +          <td></td>
   1.958 +          <td>)</td>
   1.959 +          <td></td><td></td>
   1.960 +        </tr>
   1.961 +      </table>
   1.962 +</div><div class="memdoc">
   1.963 +
   1.964 +<p>Copies contents from a map to another map using a copy function. </p>
   1.965 +<p><b>Note:</b> The destination map does not need to be empty. However, if it contains data with keys that are also present in the source map, the contents are overwritten.</p>
   1.966 +<dl class="params"><dt>Parameters</dt><dd>
   1.967 +  <table class="params">
   1.968 +    <tr><td class="paramname">from</td><td>the source map </td></tr>
   1.969 +    <tr><td class="paramname">to</td><td>the destination map </td></tr>
   1.970 +    <tr><td class="paramname">fnc</td><td>the copy function or <code>NULL</code> if the pointer address shall be copied </td></tr>
   1.971 +    <tr><td class="paramname">data</td><td>additional data for the copy function </td></tr>
   1.972 +  </table>
   1.973 +  </dd>
   1.974 +</dl>
   1.975 +<dl class="section return"><dt>Returns</dt><dd>0 on success or a non-zero value on memory allocation errors </dd></dl>
   1.976 +
   1.977 +</div>
   1.978 +</div>
   1.979 +<a id="a774fcff87d1e58b6c5af77dd19a8c3dc"></a>
   1.980 +<h2 class="memtitle"><span class="permalink"><a href="#a774fcff87d1e58b6c5af77dd19a8c3dc">&#9670;&nbsp;</a></span>ucx_map_difference()</h2>
   1.981 +
   1.982 +<div class="memitem">
   1.983 +<div class="memproto">
   1.984 +      <table class="memname">
   1.985 +        <tr>
   1.986 +          <td class="memname"><a class="el" href="structUcxMap.html">UcxMap</a>* ucx_map_difference </td>
   1.987 +          <td>(</td>
   1.988 +          <td class="paramtype">const <a class="el" href="structUcxMap.html">UcxMap</a> *&#160;</td>
   1.989 +          <td class="paramname"><em>first</em>, </td>
   1.990 +        </tr>
   1.991 +        <tr>
   1.992 +          <td class="paramkey"></td>
   1.993 +          <td></td>
   1.994 +          <td class="paramtype">const <a class="el" href="structUcxMap.html">UcxMap</a> *&#160;</td>
   1.995 +          <td class="paramname"><em>second</em>, </td>
   1.996 +        </tr>
   1.997 +        <tr>
   1.998 +          <td class="paramkey"></td>
   1.999 +          <td></td>
  1.1000 +          <td class="paramtype"><a class="el" href="ucx_8h.html#aab917a5fe0965673c73e8ebd0a1fc967">copy_func</a>&#160;</td>
  1.1001 +          <td class="paramname"><em>cpfnc</em>, </td>
  1.1002 +        </tr>
  1.1003 +        <tr>
  1.1004 +          <td class="paramkey"></td>
  1.1005 +          <td></td>
  1.1006 +          <td class="paramtype">void *&#160;</td>
  1.1007 +          <td class="paramname"><em>cpdata</em>&#160;</td>
  1.1008 +        </tr>
  1.1009 +        <tr>
  1.1010 +          <td></td>
  1.1011 +          <td>)</td>
  1.1012 +          <td></td><td></td>
  1.1013 +        </tr>
  1.1014 +      </table>
  1.1015 +</div><div class="memdoc">
  1.1016 +
  1.1017 +<p>Returns the difference of two maps. </p>
  1.1018 +<p>The difference contains a copy of all elements of the first map for which the corresponding keys cannot be found in the second map.</p>
  1.1019 +<dl class="params"><dt>Parameters</dt><dd>
  1.1020 +  <table class="params">
  1.1021 +    <tr><td class="paramname">first</td><td>the first source map </td></tr>
  1.1022 +    <tr><td class="paramname">second</td><td>the second source map </td></tr>
  1.1023 +    <tr><td class="paramname">cpfnc</td><td>a function to copy the elements </td></tr>
  1.1024 +    <tr><td class="paramname">cpdata</td><td>additional data for the copy function </td></tr>
  1.1025 +  </table>
  1.1026 +  </dd>
  1.1027 +</dl>
  1.1028 +<dl class="section return"><dt>Returns</dt><dd>a new list containing the difference </dd></dl>
  1.1029 +
  1.1030 +</div>
  1.1031 +</div>
  1.1032 +<a id="ad0ba103494247d798ac3037c50fc8831"></a>
  1.1033 +<h2 class="memtitle"><span class="permalink"><a href="#ad0ba103494247d798ac3037c50fc8831">&#9670;&nbsp;</a></span>ucx_map_difference_a()</h2>
  1.1034 +
  1.1035 +<div class="memitem">
  1.1036 +<div class="memproto">
  1.1037 +      <table class="memname">
  1.1038 +        <tr>
  1.1039 +          <td class="memname"><a class="el" href="structUcxMap.html">UcxMap</a>* ucx_map_difference_a </td>
  1.1040 +          <td>(</td>
  1.1041 +          <td class="paramtype"><a class="el" href="structUcxAllocator.html">UcxAllocator</a> *&#160;</td>
  1.1042 +          <td class="paramname"><em>allocator</em>, </td>
  1.1043 +        </tr>
  1.1044 +        <tr>
  1.1045 +          <td class="paramkey"></td>
  1.1046 +          <td></td>
  1.1047 +          <td class="paramtype">const <a class="el" href="structUcxMap.html">UcxMap</a> *&#160;</td>
  1.1048 +          <td class="paramname"><em>first</em>, </td>
  1.1049 +        </tr>
  1.1050 +        <tr>
  1.1051 +          <td class="paramkey"></td>
  1.1052 +          <td></td>
  1.1053 +          <td class="paramtype">const <a class="el" href="structUcxMap.html">UcxMap</a> *&#160;</td>
  1.1054 +          <td class="paramname"><em>second</em>, </td>
  1.1055 +        </tr>
  1.1056 +        <tr>
  1.1057 +          <td class="paramkey"></td>
  1.1058 +          <td></td>
  1.1059 +          <td class="paramtype"><a class="el" href="ucx_8h.html#aab917a5fe0965673c73e8ebd0a1fc967">copy_func</a>&#160;</td>
  1.1060 +          <td class="paramname"><em>cpfnc</em>, </td>
  1.1061 +        </tr>
  1.1062 +        <tr>
  1.1063 +          <td class="paramkey"></td>
  1.1064 +          <td></td>
  1.1065 +          <td class="paramtype">void *&#160;</td>
  1.1066 +          <td class="paramname"><em>cpdata</em>&#160;</td>
  1.1067 +        </tr>
  1.1068 +        <tr>
  1.1069 +          <td></td>
  1.1070 +          <td>)</td>
  1.1071 +          <td></td><td></td>
  1.1072 +        </tr>
  1.1073 +      </table>
  1.1074 +</div><div class="memdoc">
  1.1075 +
  1.1076 +<p>Returns the difference of two maps. </p>
  1.1077 +<p>The difference contains a copy of all elements of the first map for which the corresponding keys cannot be found in the second map.</p>
  1.1078 +<dl class="params"><dt>Parameters</dt><dd>
  1.1079 +  <table class="params">
  1.1080 +    <tr><td class="paramname">allocator</td><td>the allocator that shall be used by the new map </td></tr>
  1.1081 +    <tr><td class="paramname">first</td><td>the first source map </td></tr>
  1.1082 +    <tr><td class="paramname">second</td><td>the second source map </td></tr>
  1.1083 +    <tr><td class="paramname">cpfnc</td><td>a function to copy the elements </td></tr>
  1.1084 +    <tr><td class="paramname">cpdata</td><td>additional data for the copy function </td></tr>
  1.1085 +  </table>
  1.1086 +  </dd>
  1.1087 +</dl>
  1.1088 +<dl class="section return"><dt>Returns</dt><dd>a new list containing the difference </dd></dl>
  1.1089 +
  1.1090 +</div>
  1.1091 +</div>
  1.1092 +<a id="abe3d9688e4224bf7bb962abf25ff8c2e"></a>
  1.1093 +<h2 class="memtitle"><span class="permalink"><a href="#abe3d9688e4224bf7bb962abf25ff8c2e">&#9670;&nbsp;</a></span>ucx_map_free()</h2>
  1.1094 +
  1.1095 +<div class="memitem">
  1.1096 +<div class="memproto">
  1.1097 +      <table class="memname">
  1.1098 +        <tr>
  1.1099 +          <td class="memname">void ucx_map_free </td>
  1.1100 +          <td>(</td>
  1.1101 +          <td class="paramtype"><a class="el" href="structUcxMap.html">UcxMap</a> *&#160;</td>
  1.1102 +          <td class="paramname"><em>map</em></td><td>)</td>
  1.1103 +          <td></td>
  1.1104 +        </tr>
  1.1105 +      </table>
  1.1106 +</div><div class="memdoc">
  1.1107 +
  1.1108 +<p>Frees a hash map. </p>
  1.1109 +<p><b>Note:</b> the contents are <b>not</b> freed, use <a class="el" href="map_8h.html#a750f3d9d83e2f3788a14c17a9d160618" title="Frees the contents of a hash map. ">ucx_map_free_content()</a> before calling this function to achieve that.</p>
  1.1110 +<dl class="params"><dt>Parameters</dt><dd>
  1.1111 +  <table class="params">
  1.1112 +    <tr><td class="paramname">map</td><td>the map to be freed </td></tr>
  1.1113 +  </table>
  1.1114 +  </dd>
  1.1115 +</dl>
  1.1116 +<dl class="section see"><dt>See also</dt><dd><a class="el" href="map_8h.html#a750f3d9d83e2f3788a14c17a9d160618" title="Frees the contents of a hash map. ">ucx_map_free_content()</a> </dd></dl>
  1.1117 +
  1.1118 +</div>
  1.1119 +</div>
  1.1120 +<a id="a750f3d9d83e2f3788a14c17a9d160618"></a>
  1.1121 +<h2 class="memtitle"><span class="permalink"><a href="#a750f3d9d83e2f3788a14c17a9d160618">&#9670;&nbsp;</a></span>ucx_map_free_content()</h2>
  1.1122 +
  1.1123 +<div class="memitem">
  1.1124 +<div class="memproto">
  1.1125 +      <table class="memname">
  1.1126 +        <tr>
  1.1127 +          <td class="memname">void ucx_map_free_content </td>
  1.1128 +          <td>(</td>
  1.1129 +          <td class="paramtype"><a class="el" href="structUcxMap.html">UcxMap</a> *&#160;</td>
  1.1130 +          <td class="paramname"><em>map</em>, </td>
  1.1131 +        </tr>
  1.1132 +        <tr>
  1.1133 +          <td class="paramkey"></td>
  1.1134 +          <td></td>
  1.1135 +          <td class="paramtype"><a class="el" href="ucx_8h.html#ad2b370c2809914c8b7fedab163c266b3">ucx_destructor</a>&#160;</td>
  1.1136 +          <td class="paramname"><em>destr</em>&#160;</td>
  1.1137 +        </tr>
  1.1138 +        <tr>
  1.1139 +          <td></td>
  1.1140 +          <td>)</td>
  1.1141 +          <td></td><td></td>
  1.1142 +        </tr>
  1.1143 +      </table>
  1.1144 +</div><div class="memdoc">
  1.1145 +
  1.1146 +<p>Frees the contents of a hash map. </p>
  1.1147 +<p>This is a convenience function that iterates over the map and passes all values to the specified destructor function.</p>
  1.1148 +<p>If no destructor is specified (<code>NULL</code>), the free() function of the map's own allocator is used.</p>
  1.1149 +<p>You must ensure, that it is valid to pass each value in the map to the same destructor function.</p>
  1.1150 +<p>You should free or clear the map afterwards, as the contents will be invalid.</p>
  1.1151 +<dl class="params"><dt>Parameters</dt><dd>
  1.1152 +  <table class="params">
  1.1153 +    <tr><td class="paramname">map</td><td>for which the contents shall be freed </td></tr>
  1.1154 +    <tr><td class="paramname">destr</td><td>optional pointer to a destructor function </td></tr>
  1.1155 +  </table>
  1.1156 +  </dd>
  1.1157 +</dl>
  1.1158 +<dl class="section see"><dt>See also</dt><dd><a class="el" href="map_8h.html#abe3d9688e4224bf7bb962abf25ff8c2e" title="Frees a hash map. ">ucx_map_free()</a> </dd>
  1.1159 +<dd>
  1.1160 +<a class="el" href="map_8h.html#a285e90e40681c6d9631c935dda0967f2" title="Clears a hash map. ">ucx_map_clear()</a> </dd></dl>
  1.1161 +
  1.1162 +</div>
  1.1163 +</div>
  1.1164 +<a id="ab61192c5af2e06ecb9ad73880d1c95a6"></a>
  1.1165 +<h2 class="memtitle"><span class="permalink"><a href="#ab61192c5af2e06ecb9ad73880d1c95a6">&#9670;&nbsp;</a></span>ucx_map_get()</h2>
  1.1166 +
  1.1167 +<div class="memitem">
  1.1168 +<div class="memproto">
  1.1169 +      <table class="memname">
  1.1170 +        <tr>
  1.1171 +          <td class="memname">void* ucx_map_get </td>
  1.1172 +          <td>(</td>
  1.1173 +          <td class="paramtype"><a class="el" href="structUcxMap.html">UcxMap</a> const *&#160;</td>
  1.1174 +          <td class="paramname"><em>map</em>, </td>
  1.1175 +        </tr>
  1.1176 +        <tr>
  1.1177 +          <td class="paramkey"></td>
  1.1178 +          <td></td>
  1.1179 +          <td class="paramtype"><a class="el" href="structUcxKey.html">UcxKey</a>&#160;</td>
  1.1180 +          <td class="paramname"><em>key</em>&#160;</td>
  1.1181 +        </tr>
  1.1182 +        <tr>
  1.1183 +          <td></td>
  1.1184 +          <td>)</td>
  1.1185 +          <td></td><td></td>
  1.1186 +        </tr>
  1.1187 +      </table>
  1.1188 +</div><div class="memdoc">
  1.1189 +
  1.1190 +<p>Retrieves a value by using a key. </p>
  1.1191 +<dl class="params"><dt>Parameters</dt><dd>
  1.1192 +  <table class="params">
  1.1193 +    <tr><td class="paramname">map</td><td>the map </td></tr>
  1.1194 +    <tr><td class="paramname">key</td><td>the key </td></tr>
  1.1195 +  </table>
  1.1196 +  </dd>
  1.1197 +</dl>
  1.1198 +<dl class="section return"><dt>Returns</dt><dd>the value </dd></dl>
  1.1199 +
  1.1200 +</div>
  1.1201 +</div>
  1.1202 +<a id="aa594d7a5afebc3bed6bb265348cf6b0d"></a>
  1.1203 +<h2 class="memtitle"><span class="permalink"><a href="#aa594d7a5afebc3bed6bb265348cf6b0d">&#9670;&nbsp;</a></span>ucx_map_intersection()</h2>
  1.1204 +
  1.1205 +<div class="memitem">
  1.1206 +<div class="memproto">
  1.1207 +      <table class="memname">
  1.1208 +        <tr>
  1.1209 +          <td class="memname"><a class="el" href="structUcxMap.html">UcxMap</a>* ucx_map_intersection </td>
  1.1210 +          <td>(</td>
  1.1211 +          <td class="paramtype">const <a class="el" href="structUcxMap.html">UcxMap</a> *&#160;</td>
  1.1212 +          <td class="paramname"><em>first</em>, </td>
  1.1213 +        </tr>
  1.1214 +        <tr>
  1.1215 +          <td class="paramkey"></td>
  1.1216 +          <td></td>
  1.1217 +          <td class="paramtype">const <a class="el" href="structUcxMap.html">UcxMap</a> *&#160;</td>
  1.1218 +          <td class="paramname"><em>second</em>, </td>
  1.1219 +        </tr>
  1.1220 +        <tr>
  1.1221 +          <td class="paramkey"></td>
  1.1222 +          <td></td>
  1.1223 +          <td class="paramtype"><a class="el" href="ucx_8h.html#aab917a5fe0965673c73e8ebd0a1fc967">copy_func</a>&#160;</td>
  1.1224 +          <td class="paramname"><em>cpfnc</em>, </td>
  1.1225 +        </tr>
  1.1226 +        <tr>
  1.1227 +          <td class="paramkey"></td>
  1.1228 +          <td></td>
  1.1229 +          <td class="paramtype">void *&#160;</td>
  1.1230 +          <td class="paramname"><em>cpdata</em>&#160;</td>
  1.1231 +        </tr>
  1.1232 +        <tr>
  1.1233 +          <td></td>
  1.1234 +          <td>)</td>
  1.1235 +          <td></td><td></td>
  1.1236 +        </tr>
  1.1237 +      </table>
  1.1238 +</div><div class="memdoc">
  1.1239 +
  1.1240 +<p>Returns the intersection of two maps. </p>
  1.1241 +<p>The intersection is defined as a copy of the first map with every element removed that has no valid key in the second map.</p>
  1.1242 +<dl class="params"><dt>Parameters</dt><dd>
  1.1243 +  <table class="params">
  1.1244 +    <tr><td class="paramname">first</td><td>the first source map </td></tr>
  1.1245 +    <tr><td class="paramname">second</td><td>the second source map </td></tr>
  1.1246 +    <tr><td class="paramname">cpfnc</td><td>a function to copy the elements </td></tr>
  1.1247 +    <tr><td class="paramname">cpdata</td><td>additional data for the copy function </td></tr>
  1.1248 +  </table>
  1.1249 +  </dd>
  1.1250 +</dl>
  1.1251 +<dl class="section return"><dt>Returns</dt><dd>a new map containing the intersection </dd></dl>
  1.1252 +
  1.1253 +</div>
  1.1254 +</div>
  1.1255 +<a id="a169e0470a20484dd76425fdf77e3651e"></a>
  1.1256 +<h2 class="memtitle"><span class="permalink"><a href="#a169e0470a20484dd76425fdf77e3651e">&#9670;&nbsp;</a></span>ucx_map_intersection_a()</h2>
  1.1257 +
  1.1258 +<div class="memitem">
  1.1259 +<div class="memproto">
  1.1260 +      <table class="memname">
  1.1261 +        <tr>
  1.1262 +          <td class="memname"><a class="el" href="structUcxMap.html">UcxMap</a>* ucx_map_intersection_a </td>
  1.1263 +          <td>(</td>
  1.1264 +          <td class="paramtype"><a class="el" href="structUcxAllocator.html">UcxAllocator</a> *&#160;</td>
  1.1265 +          <td class="paramname"><em>allocator</em>, </td>
  1.1266 +        </tr>
  1.1267 +        <tr>
  1.1268 +          <td class="paramkey"></td>
  1.1269 +          <td></td>
  1.1270 +          <td class="paramtype">const <a class="el" href="structUcxMap.html">UcxMap</a> *&#160;</td>
  1.1271 +          <td class="paramname"><em>first</em>, </td>
  1.1272 +        </tr>
  1.1273 +        <tr>
  1.1274 +          <td class="paramkey"></td>
  1.1275 +          <td></td>
  1.1276 +          <td class="paramtype">const <a class="el" href="structUcxMap.html">UcxMap</a> *&#160;</td>
  1.1277 +          <td class="paramname"><em>second</em>, </td>
  1.1278 +        </tr>
  1.1279 +        <tr>
  1.1280 +          <td class="paramkey"></td>
  1.1281 +          <td></td>
  1.1282 +          <td class="paramtype"><a class="el" href="ucx_8h.html#aab917a5fe0965673c73e8ebd0a1fc967">copy_func</a>&#160;</td>
  1.1283 +          <td class="paramname"><em>cpfnc</em>, </td>
  1.1284 +        </tr>
  1.1285 +        <tr>
  1.1286 +          <td class="paramkey"></td>
  1.1287 +          <td></td>
  1.1288 +          <td class="paramtype">void *&#160;</td>
  1.1289 +          <td class="paramname"><em>cpdata</em>&#160;</td>
  1.1290 +        </tr>
  1.1291 +        <tr>
  1.1292 +          <td></td>
  1.1293 +          <td>)</td>
  1.1294 +          <td></td><td></td>
  1.1295 +        </tr>
  1.1296 +      </table>
  1.1297 +</div><div class="memdoc">
  1.1298 +
  1.1299 +<p>Returns the intersection of two maps. </p>
  1.1300 +<p>The intersection is defined as a copy of the first map with every element removed that has no valid key in the second map.</p>
  1.1301 +<dl class="params"><dt>Parameters</dt><dd>
  1.1302 +  <table class="params">
  1.1303 +    <tr><td class="paramname">allocator</td><td>the allocator that shall be used by the new map </td></tr>
  1.1304 +    <tr><td class="paramname">first</td><td>the first source map </td></tr>
  1.1305 +    <tr><td class="paramname">second</td><td>the second source map </td></tr>
  1.1306 +    <tr><td class="paramname">cpfnc</td><td>a function to copy the elements </td></tr>
  1.1307 +    <tr><td class="paramname">cpdata</td><td>additional data for the copy function </td></tr>
  1.1308 +  </table>
  1.1309 +  </dd>
  1.1310 +</dl>
  1.1311 +<dl class="section return"><dt>Returns</dt><dd>a new map containing the intersection </dd></dl>
  1.1312 +
  1.1313 +</div>
  1.1314 +</div>
  1.1315 +<a id="aceb8675abf44860b4bbc301bbada5b91"></a>
  1.1316 +<h2 class="memtitle"><span class="permalink"><a href="#aceb8675abf44860b4bbc301bbada5b91">&#9670;&nbsp;</a></span>ucx_map_iter_next()</h2>
  1.1317 +
  1.1318 +<div class="memitem">
  1.1319 +<div class="memproto">
  1.1320 +      <table class="memname">
  1.1321 +        <tr>
  1.1322 +          <td class="memname">int ucx_map_iter_next </td>
  1.1323 +          <td>(</td>
  1.1324 +          <td class="paramtype"><a class="el" href="structUcxMapIterator.html">UcxMapIterator</a> *&#160;</td>
  1.1325 +          <td class="paramname"><em>iterator</em>, </td>
  1.1326 +        </tr>
  1.1327 +        <tr>
  1.1328 +          <td class="paramkey"></td>
  1.1329 +          <td></td>
  1.1330 +          <td class="paramtype"><a class="el" href="structUcxKey.html">UcxKey</a> *&#160;</td>
  1.1331 +          <td class="paramname"><em>key</em>, </td>
  1.1332 +        </tr>
  1.1333 +        <tr>
  1.1334 +          <td class="paramkey"></td>
  1.1335 +          <td></td>
  1.1336 +          <td class="paramtype">void **&#160;</td>
  1.1337 +          <td class="paramname"><em>value</em>&#160;</td>
  1.1338 +        </tr>
  1.1339 +        <tr>
  1.1340 +          <td></td>
  1.1341 +          <td>)</td>
  1.1342 +          <td></td><td></td>
  1.1343 +        </tr>
  1.1344 +      </table>
  1.1345 +</div><div class="memdoc">
  1.1346 +
  1.1347 +<p>Proceeds to the next element of the map (if any). </p>
  1.1348 +<p>Subsequent calls on the same iterator proceed to the next element and store the key/value-pair into the memory specified as arguments of this function.</p>
  1.1349 +<p>If no further elements are found, this function returns zero and leaves the last found key/value-pair in memory.</p>
  1.1350 +<dl class="params"><dt>Parameters</dt><dd>
  1.1351 +  <table class="params">
  1.1352 +    <tr><td class="paramname">iterator</td><td>the iterator to use </td></tr>
  1.1353 +    <tr><td class="paramname">key</td><td>a pointer to the memory where to store the key </td></tr>
  1.1354 +    <tr><td class="paramname">value</td><td>a pointer to the memory where to store the value </td></tr>
  1.1355 +  </table>
  1.1356 +  </dd>
  1.1357 +</dl>
  1.1358 +<dl class="section return"><dt>Returns</dt><dd>1, if another element was found, 0 if all elements has been processed </dd></dl>
  1.1359 +<dl class="section see"><dt>See also</dt><dd><a class="el" href="map_8h.html#a9150e9c64fdf4dfcc2cad106b91aa110" title="Creates an iterator for a map. ">ucx_map_iterator()</a> </dd></dl>
  1.1360 +
  1.1361 +</div>
  1.1362 +</div>
  1.1363 +<a id="a9150e9c64fdf4dfcc2cad106b91aa110"></a>
  1.1364 +<h2 class="memtitle"><span class="permalink"><a href="#a9150e9c64fdf4dfcc2cad106b91aa110">&#9670;&nbsp;</a></span>ucx_map_iterator()</h2>
  1.1365 +
  1.1366 +<div class="memitem">
  1.1367 +<div class="memproto">
  1.1368 +      <table class="memname">
  1.1369 +        <tr>
  1.1370 +          <td class="memname"><a class="el" href="structUcxMapIterator.html">UcxMapIterator</a> ucx_map_iterator </td>
  1.1371 +          <td>(</td>
  1.1372 +          <td class="paramtype"><a class="el" href="structUcxMap.html">UcxMap</a> const *&#160;</td>
  1.1373 +          <td class="paramname"><em>map</em></td><td>)</td>
  1.1374 +          <td></td>
  1.1375 +        </tr>
  1.1376 +      </table>
  1.1377 +</div><div class="memdoc">
  1.1378 +
  1.1379 +<p>Creates an iterator for a map. </p>
  1.1380 +<p><b>Note:</b> A <a class="el" href="structUcxMapIterator.html" title="Structure for an iterator over a UcxMap. ">UcxMapIterator</a> iterates over all elements in all element lists successively. Therefore the order highly depends on the key hashes and may vary under different map sizes. So generally you may <b>NOT</b> rely on the iteration order.</p>
  1.1381 +<p><b>Note:</b> The iterator is <b>NOT</b> initialized. You need to call <a class="el" href="map_8h.html#aceb8675abf44860b4bbc301bbada5b91" title="Proceeds to the next element of the map (if any). ">ucx_map_iter_next()</a> at least once before accessing any information. However, it is not recommended to access the fields of a <a class="el" href="structUcxMapIterator.html" title="Structure for an iterator over a UcxMap. ">UcxMapIterator</a> directly.</p>
  1.1382 +<dl class="params"><dt>Parameters</dt><dd>
  1.1383 +  <table class="params">
  1.1384 +    <tr><td class="paramname">map</td><td>the map to create the iterator for </td></tr>
  1.1385 +  </table>
  1.1386 +  </dd>
  1.1387 +</dl>
  1.1388 +<dl class="section return"><dt>Returns</dt><dd>an iterator initialized on the first element of the first element list </dd></dl>
  1.1389 +<dl class="section see"><dt>See also</dt><dd><a class="el" href="map_8h.html#aceb8675abf44860b4bbc301bbada5b91" title="Proceeds to the next element of the map (if any). ">ucx_map_iter_next()</a> </dd></dl>
  1.1390 +
  1.1391 +</div>
  1.1392 +</div>
  1.1393 +<a id="a79f31de8b93814493759dbc8b940cf0c"></a>
  1.1394 +<h2 class="memtitle"><span class="permalink"><a href="#a79f31de8b93814493759dbc8b940cf0c">&#9670;&nbsp;</a></span>ucx_map_new()</h2>
  1.1395 +
  1.1396 +<div class="memitem">
  1.1397 +<div class="memproto">
  1.1398 +      <table class="memname">
  1.1399 +        <tr>
  1.1400 +          <td class="memname"><a class="el" href="structUcxMap.html">UcxMap</a>* ucx_map_new </td>
  1.1401 +          <td>(</td>
  1.1402 +          <td class="paramtype">size_t&#160;</td>
  1.1403 +          <td class="paramname"><em>size</em></td><td>)</td>
  1.1404 +          <td></td>
  1.1405 +        </tr>
  1.1406 +      </table>
  1.1407 +</div><div class="memdoc">
  1.1408 +
  1.1409 +<p>Creates a new hash map with the specified size. </p>
  1.1410 +<dl class="params"><dt>Parameters</dt><dd>
  1.1411 +  <table class="params">
  1.1412 +    <tr><td class="paramname">size</td><td>the size of the hash map </td></tr>
  1.1413 +  </table>
  1.1414 +  </dd>
  1.1415 +</dl>
  1.1416 +<dl class="section return"><dt>Returns</dt><dd>a pointer to the new hash map </dd></dl>
  1.1417 +
  1.1418 +</div>
  1.1419 +</div>
  1.1420 +<a id="aed508a94c66cc15372503c64b70eb03e"></a>
  1.1421 +<h2 class="memtitle"><span class="permalink"><a href="#aed508a94c66cc15372503c64b70eb03e">&#9670;&nbsp;</a></span>ucx_map_new_a()</h2>
  1.1422 +
  1.1423 +<div class="memitem">
  1.1424 +<div class="memproto">
  1.1425 +      <table class="memname">
  1.1426 +        <tr>
  1.1427 +          <td class="memname"><a class="el" href="structUcxMap.html">UcxMap</a>* ucx_map_new_a </td>
  1.1428 +          <td>(</td>
  1.1429 +          <td class="paramtype"><a class="el" href="structUcxAllocator.html">UcxAllocator</a> *&#160;</td>
  1.1430 +          <td class="paramname"><em>allocator</em>, </td>
  1.1431 +        </tr>
  1.1432 +        <tr>
  1.1433 +          <td class="paramkey"></td>
  1.1434 +          <td></td>
  1.1435 +          <td class="paramtype">size_t&#160;</td>
  1.1436 +          <td class="paramname"><em>size</em>&#160;</td>
  1.1437 +        </tr>
  1.1438 +        <tr>
  1.1439 +          <td></td>
  1.1440 +          <td>)</td>
  1.1441 +          <td></td><td></td>
  1.1442 +        </tr>
  1.1443 +      </table>
  1.1444 +</div><div class="memdoc">
  1.1445 +
  1.1446 +<p>Creates a new hash map with the specified size using a <a class="el" href="structUcxAllocator.html" title="UCX allocator data structure containing memory management functions. ">UcxAllocator</a>. </p>
  1.1447 +<dl class="params"><dt>Parameters</dt><dd>
  1.1448 +  <table class="params">
  1.1449 +    <tr><td class="paramname">allocator</td><td>the allocator to use </td></tr>
  1.1450 +    <tr><td class="paramname">size</td><td>the size of the hash map </td></tr>
  1.1451 +  </table>
  1.1452 +  </dd>
  1.1453 +</dl>
  1.1454 +<dl class="section return"><dt>Returns</dt><dd>a pointer to the new hash map </dd></dl>
  1.1455 +
  1.1456 +</div>
  1.1457 +</div>
  1.1458 +<a id="ac04a08b604217070254d4c58f0e82498"></a>
  1.1459 +<h2 class="memtitle"><span class="permalink"><a href="#ac04a08b604217070254d4c58f0e82498">&#9670;&nbsp;</a></span>ucx_map_put()</h2>
  1.1460 +
  1.1461 +<div class="memitem">
  1.1462 +<div class="memproto">
  1.1463 +      <table class="memname">
  1.1464 +        <tr>
  1.1465 +          <td class="memname">int ucx_map_put </td>
  1.1466 +          <td>(</td>
  1.1467 +          <td class="paramtype"><a class="el" href="structUcxMap.html">UcxMap</a> *&#160;</td>
  1.1468 +          <td class="paramname"><em>map</em>, </td>
  1.1469 +        </tr>
  1.1470 +        <tr>
  1.1471 +          <td class="paramkey"></td>
  1.1472 +          <td></td>
  1.1473 +          <td class="paramtype"><a class="el" href="structUcxKey.html">UcxKey</a>&#160;</td>
  1.1474 +          <td class="paramname"><em>key</em>, </td>
  1.1475 +        </tr>
  1.1476 +        <tr>
  1.1477 +          <td class="paramkey"></td>
  1.1478 +          <td></td>
  1.1479 +          <td class="paramtype">void *&#160;</td>
  1.1480 +          <td class="paramname"><em>value</em>&#160;</td>
  1.1481 +        </tr>
  1.1482 +        <tr>
  1.1483 +          <td></td>
  1.1484 +          <td>)</td>
  1.1485 +          <td></td><td></td>
  1.1486 +        </tr>
  1.1487 +      </table>
  1.1488 +</div><div class="memdoc">
  1.1489 +
  1.1490 +<p>Puts a key/value-pair into the map. </p>
  1.1491 +<dl class="params"><dt>Parameters</dt><dd>
  1.1492 +  <table class="params">
  1.1493 +    <tr><td class="paramname">map</td><td>the map </td></tr>
  1.1494 +    <tr><td class="paramname">key</td><td>the key </td></tr>
  1.1495 +    <tr><td class="paramname">value</td><td>the value </td></tr>
  1.1496 +  </table>
  1.1497 +  </dd>
  1.1498 +</dl>
  1.1499 +<dl class="section return"><dt>Returns</dt><dd>0 on success, non-zero value on failure </dd></dl>
  1.1500 +
  1.1501 +</div>
  1.1502 +</div>
  1.1503 +<a id="a174bce9fad554dd92b8da354e0d32512"></a>
  1.1504 +<h2 class="memtitle"><span class="permalink"><a href="#a174bce9fad554dd92b8da354e0d32512">&#9670;&nbsp;</a></span>ucx_map_rehash()</h2>
  1.1505 +
  1.1506 +<div class="memitem">
  1.1507 +<div class="memproto">
  1.1508 +      <table class="memname">
  1.1509 +        <tr>
  1.1510 +          <td class="memname">int ucx_map_rehash </td>
  1.1511 +          <td>(</td>
  1.1512 +          <td class="paramtype"><a class="el" href="structUcxMap.html">UcxMap</a> *&#160;</td>
  1.1513 +          <td class="paramname"><em>map</em></td><td>)</td>
  1.1514 +          <td></td>
  1.1515 +        </tr>
  1.1516 +      </table>
  1.1517 +</div><div class="memdoc">
  1.1518 +
  1.1519 +<p>Increases size of the hash map, if necessary. </p>
  1.1520 +<p>The load value is 0.75*UcxMap.size. If the element count exceeds the load value, the map needs to be rehashed. Otherwise no action is performed and this function simply returns 0.</p>
  1.1521 +<p>The rehashing process ensures, that the <a class="el" href="structUcxMap.html#afe120846b26d99580a7ff1276464e838" title="The size of the map is the length of the element list array. ">UcxMap.size</a> is at least 2.5*UcxMap.count. So there is enough room for additional elements without the need of another soon rehashing.</p>
  1.1522 +<p>You can use this function to dramatically increase access performance.</p>
  1.1523 +<dl class="params"><dt>Parameters</dt><dd>
  1.1524 +  <table class="params">
  1.1525 +    <tr><td class="paramname">map</td><td>the map to rehash </td></tr>
  1.1526 +  </table>
  1.1527 +  </dd>
  1.1528 +</dl>
  1.1529 +<dl class="section return"><dt>Returns</dt><dd>1, if a memory allocation error occurred, 0 otherwise </dd></dl>
  1.1530 +
  1.1531 +</div>
  1.1532 +</div>
  1.1533 +<a id="a17248a4888eb8f9ae18be522d64632aa"></a>
  1.1534 +<h2 class="memtitle"><span class="permalink"><a href="#a17248a4888eb8f9ae18be522d64632aa">&#9670;&nbsp;</a></span>ucx_map_remove()</h2>
  1.1535 +
  1.1536 +<div class="memitem">
  1.1537 +<div class="memproto">
  1.1538 +      <table class="memname">
  1.1539 +        <tr>
  1.1540 +          <td class="memname">void* ucx_map_remove </td>
  1.1541 +          <td>(</td>
  1.1542 +          <td class="paramtype"><a class="el" href="structUcxMap.html">UcxMap</a> *&#160;</td>
  1.1543 +          <td class="paramname"><em>map</em>, </td>
  1.1544 +        </tr>
  1.1545 +        <tr>
  1.1546 +          <td class="paramkey"></td>
  1.1547 +          <td></td>
  1.1548 +          <td class="paramtype"><a class="el" href="structUcxKey.html">UcxKey</a>&#160;</td>
  1.1549 +          <td class="paramname"><em>key</em>&#160;</td>
  1.1550 +        </tr>
  1.1551 +        <tr>
  1.1552 +          <td></td>
  1.1553 +          <td>)</td>
  1.1554 +          <td></td><td></td>
  1.1555 +        </tr>
  1.1556 +      </table>
  1.1557 +</div><div class="memdoc">
  1.1558 +
  1.1559 +<p>Removes a key/value-pair from the map by using the key. </p>
  1.1560 +<dl class="params"><dt>Parameters</dt><dd>
  1.1561 +  <table class="params">
  1.1562 +    <tr><td class="paramname">map</td><td>the map </td></tr>
  1.1563 +    <tr><td class="paramname">key</td><td>the key </td></tr>
  1.1564 +  </table>
  1.1565 +  </dd>
  1.1566 +</dl>
  1.1567 +<dl class="section return"><dt>Returns</dt><dd>the removed value </dd></dl>
  1.1568 +
  1.1569 +</div>
  1.1570 +</div>
  1.1571 +<a id="a3f65978c481af7f637cad021d93522d5"></a>
  1.1572 +<h2 class="memtitle"><span class="permalink"><a href="#a3f65978c481af7f637cad021d93522d5">&#9670;&nbsp;</a></span>ucx_map_union()</h2>
  1.1573 +
  1.1574 +<div class="memitem">
  1.1575 +<div class="memproto">
  1.1576 +      <table class="memname">
  1.1577 +        <tr>
  1.1578 +          <td class="memname"><a class="el" href="structUcxMap.html">UcxMap</a>* ucx_map_union </td>
  1.1579 +          <td>(</td>
  1.1580 +          <td class="paramtype">const <a class="el" href="structUcxMap.html">UcxMap</a> *&#160;</td>
  1.1581 +          <td class="paramname"><em>first</em>, </td>
  1.1582 +        </tr>
  1.1583 +        <tr>
  1.1584 +          <td class="paramkey"></td>
  1.1585 +          <td></td>
  1.1586 +          <td class="paramtype">const <a class="el" href="structUcxMap.html">UcxMap</a> *&#160;</td>
  1.1587 +          <td class="paramname"><em>second</em>, </td>
  1.1588 +        </tr>
  1.1589 +        <tr>
  1.1590 +          <td class="paramkey"></td>
  1.1591 +          <td></td>
  1.1592 +          <td class="paramtype"><a class="el" href="ucx_8h.html#aab917a5fe0965673c73e8ebd0a1fc967">copy_func</a>&#160;</td>
  1.1593 +          <td class="paramname"><em>cpfnc</em>, </td>
  1.1594 +        </tr>
  1.1595 +        <tr>
  1.1596 +          <td class="paramkey"></td>
  1.1597 +          <td></td>
  1.1598 +          <td class="paramtype">void *&#160;</td>
  1.1599 +          <td class="paramname"><em>cpdata</em>&#160;</td>
  1.1600 +        </tr>
  1.1601 +        <tr>
  1.1602 +          <td></td>
  1.1603 +          <td>)</td>
  1.1604 +          <td></td><td></td>
  1.1605 +        </tr>
  1.1606 +      </table>
  1.1607 +</div><div class="memdoc">
  1.1608 +
  1.1609 +<p>Returns the union of two maps. </p>
  1.1610 +<p>The union is a fresh map which is filled by two successive calls of <a class="el" href="map_8h.html#adfeb2d61003fd2896bcfdc9a57f36425" title="Copies contents from a map to another map using a copy function. ">ucx_map_copy()</a> on the two input maps.</p>
  1.1611 +<dl class="params"><dt>Parameters</dt><dd>
  1.1612 +  <table class="params">
  1.1613 +    <tr><td class="paramname">first</td><td>the first source map </td></tr>
  1.1614 +    <tr><td class="paramname">second</td><td>the second source map </td></tr>
  1.1615 +    <tr><td class="paramname">cpfnc</td><td>a function to copy the elements </td></tr>
  1.1616 +    <tr><td class="paramname">cpdata</td><td>additional data for the copy function </td></tr>
  1.1617 +  </table>
  1.1618 +  </dd>
  1.1619 +</dl>
  1.1620 +<dl class="section return"><dt>Returns</dt><dd>a new map containing the union </dd></dl>
  1.1621 +
  1.1622 +</div>
  1.1623 +</div>
  1.1624 +<a id="ab6370c3fa8113fdad593ce4b0460c9c6"></a>
  1.1625 +<h2 class="memtitle"><span class="permalink"><a href="#ab6370c3fa8113fdad593ce4b0460c9c6">&#9670;&nbsp;</a></span>ucx_map_union_a()</h2>
  1.1626 +
  1.1627 +<div class="memitem">
  1.1628 +<div class="memproto">
  1.1629 +      <table class="memname">
  1.1630 +        <tr>
  1.1631 +          <td class="memname"><a class="el" href="structUcxMap.html">UcxMap</a>* ucx_map_union_a </td>
  1.1632 +          <td>(</td>
  1.1633 +          <td class="paramtype"><a class="el" href="structUcxAllocator.html">UcxAllocator</a> *&#160;</td>
  1.1634 +          <td class="paramname"><em>allocator</em>, </td>
  1.1635 +        </tr>
  1.1636 +        <tr>
  1.1637 +          <td class="paramkey"></td>
  1.1638 +          <td></td>
  1.1639 +          <td class="paramtype">const <a class="el" href="structUcxMap.html">UcxMap</a> *&#160;</td>
  1.1640 +          <td class="paramname"><em>first</em>, </td>
  1.1641 +        </tr>
  1.1642 +        <tr>
  1.1643 +          <td class="paramkey"></td>
  1.1644 +          <td></td>
  1.1645 +          <td class="paramtype">const <a class="el" href="structUcxMap.html">UcxMap</a> *&#160;</td>
  1.1646 +          <td class="paramname"><em>second</em>, </td>
  1.1647 +        </tr>
  1.1648 +        <tr>
  1.1649 +          <td class="paramkey"></td>
  1.1650 +          <td></td>
  1.1651 +          <td class="paramtype"><a class="el" href="ucx_8h.html#aab917a5fe0965673c73e8ebd0a1fc967">copy_func</a>&#160;</td>
  1.1652 +          <td class="paramname"><em>cpfnc</em>, </td>
  1.1653 +        </tr>
  1.1654 +        <tr>
  1.1655 +          <td class="paramkey"></td>
  1.1656 +          <td></td>
  1.1657 +          <td class="paramtype">void *&#160;</td>
  1.1658 +          <td class="paramname"><em>cpdata</em>&#160;</td>
  1.1659 +        </tr>
  1.1660 +        <tr>
  1.1661 +          <td></td>
  1.1662 +          <td>)</td>
  1.1663 +          <td></td><td></td>
  1.1664 +        </tr>
  1.1665 +      </table>
  1.1666 +</div><div class="memdoc">
  1.1667 +
  1.1668 +<p>Returns the union of two maps. </p>
  1.1669 +<p>The union is a fresh map which is filled by two successive calls of <a class="el" href="map_8h.html#adfeb2d61003fd2896bcfdc9a57f36425" title="Copies contents from a map to another map using a copy function. ">ucx_map_copy()</a> on the two input maps.</p>
  1.1670 +<dl class="params"><dt>Parameters</dt><dd>
  1.1671 +  <table class="params">
  1.1672 +    <tr><td class="paramname">allocator</td><td>the allocator that shall be used by the new map </td></tr>
  1.1673 +    <tr><td class="paramname">first</td><td>the first source map </td></tr>
  1.1674 +    <tr><td class="paramname">second</td><td>the second source map </td></tr>
  1.1675 +    <tr><td class="paramname">cpfnc</td><td>a function to copy the elements </td></tr>
  1.1676 +    <tr><td class="paramname">cpdata</td><td>additional data for the copy function </td></tr>
  1.1677 +  </table>
  1.1678 +  </dd>
  1.1679 +</dl>
  1.1680 +<dl class="section return"><dt>Returns</dt><dd>a new map containing the union </dd></dl>
  1.1681 +
  1.1682 +</div>
  1.1683 +</div>
  1.1684 +</div><!-- contents -->
  1.1685 +<!-- start footer part -->
  1.1686 +<hr class="footer"/><address class="footer"><small>
  1.1687 +Generated on Thu Dec 19 2019 19:58:24 for ucx by &#160;<a href="http://www.doxygen.org/index.html">
  1.1688 +<img class="footer" src="doxygen.png" alt="doxygen"/>
  1.1689 +</a> 1.8.13
  1.1690 +</small></address>
  1.1691 +</body>
  1.1692 +</html>

mercurial