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> | 1.72 +<a href="#define-members">Macros</a> | 1.73 +<a href="#typedef-members">Typedefs</a> | 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 "<a class="el" href="ucx_8h_source.html">ucx.h</a>"</code><br /> 1.83 +<code>#include "<a class="el" href="string_8h_source.html">string.h</a>"</code><br /> 1.84 +<code>#include "<a class="el" href="allocator_8h_source.html">allocator.h</a>"</code><br /> 1.85 +<code>#include <stdio.h></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  </td><td class="memItemRight" valign="bottom"><a class="el" href="structUcxMap.html">UcxMap</a></td></tr> 1.92 +<tr class="memdesc:"><td class="mdescLeft"> </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"> </td></tr> 1.94 +<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structUcxKey.html">UcxKey</a></td></tr> 1.95 +<tr class="memdesc:"><td class="mdescLeft"> </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"> </td></tr> 1.97 +<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structUcxMapKey.html">UcxMapKey</a></td></tr> 1.98 +<tr class="memdesc:"><td class="mdescLeft"> </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"> </td></tr> 1.100 +<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structUcxMapElement.html">UcxMapElement</a></td></tr> 1.101 +<tr class="memdesc:"><td class="mdescLeft"> </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"> </td></tr> 1.103 +<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structUcxMapIterator.html">UcxMapIterator</a></td></tr> 1.104 +<tr class="memdesc:"><td class="mdescLeft"> </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"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="map_8h.html#a940896c4aa1b13e54c55c04c3efc186b">UCX_MAP_FOREACH</a>(key, value, iter)   for(<a class="el" href="structUcxKey.html">UcxKey</a> key;<a class="el" href="map_8h.html#aceb8675abf44860b4bbc301bbada5b91">ucx_map_iter_next</a>(&iter,&key, (void**)&value);)</td></tr> 1.110 +<tr class="memdesc:a940896c4aa1b13e54c55c04c3efc186b"><td class="mdescLeft"> </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"> </td></tr> 1.112 +<tr class="memitem:ac26a8615bfc8f47ee9eaceb47645f98e"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="map_8h.html#ac26a8615bfc8f47ee9eaceb47645f98e">ucx_map_sstr_put</a>(map, key, value)   <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"> </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"> </td></tr> 1.115 +<tr class="memitem:ad9356b01425b934ab237b52339ac0cc3"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="map_8h.html#ad9356b01425b934ab237b52339ac0cc3">ucx_map_cstr_put</a>(map, key, value)   <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"> </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"> </td></tr> 1.118 +<tr class="memitem:aaa30af79b4068c923895619e83f44367"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="map_8h.html#aaa30af79b4068c923895619e83f44367">ucx_map_int_put</a>(map, key, value)   <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, sizeof(key)), (void*)value)</td></tr> 1.119 +<tr class="memdesc:aaa30af79b4068c923895619e83f44367"><td class="mdescLeft"> </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"> </td></tr> 1.121 +<tr class="memitem:a14d385f6b7f371f0507861cabd2eab4e"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="map_8h.html#a14d385f6b7f371f0507861cabd2eab4e">ucx_map_sstr_get</a>(map, key)   <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"> </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"> </td></tr> 1.124 +<tr class="memitem:a64e1fb55498fa502dd2ed8ed69062cdd"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="map_8h.html#a64e1fb55498fa502dd2ed8ed69062cdd">ucx_map_cstr_get</a>(map, key)   <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"> </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"> </td></tr> 1.127 +<tr class="memitem:aa1681bd2178553cd092fd24c4d681d3c"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="map_8h.html#aa1681bd2178553cd092fd24c4d681d3c">ucx_map_int_get</a>(map, key)   <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, sizeof(int)))</td></tr> 1.128 +<tr class="memdesc:aa1681bd2178553cd092fd24c4d681d3c"><td class="mdescLeft"> </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"> </td></tr> 1.130 +<tr class="memitem:a48700ea86fadb9ea54d13010f9124df2"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="map_8h.html#a48700ea86fadb9ea54d13010f9124df2">ucx_map_sstr_remove</a>(map, key)   <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"> </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"> </td></tr> 1.133 +<tr class="memitem:a9c4405a5a75ecf64e2ef3d0c6501a9fe"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="map_8h.html#a9c4405a5a75ecf64e2ef3d0c6501a9fe">ucx_map_cstr_remove</a>(map, key)   <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"> </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"> </td></tr> 1.136 +<tr class="memitem:aa767958b5468737755c09f7185b1770c"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="map_8h.html#aa767958b5468737755c09f7185b1770c">ucx_map_int_remove</a>(map, key)   <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, sizeof(key)))</td></tr> 1.137 +<tr class="memdesc:aa767958b5468737755c09f7185b1770c"><td class="mdescLeft"> </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"> </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> </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"> </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"> </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> </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"> </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"> </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> </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"> </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"> </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> </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"> </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"> </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> * </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"> </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"> </td></tr> 1.160 +<tr class="memitem:aed508a94c66cc15372503c64b70eb03e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structUcxMap.html">UcxMap</a> * </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"> </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"> </td></tr> 1.163 +<tr class="memitem:abe3d9688e4224bf7bb962abf25ff8c2e"><td class="memItemLeft" align="right" valign="top">void </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"> </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"> </td></tr> 1.166 +<tr class="memitem:a750f3d9d83e2f3788a14c17a9d160618"><td class="memItemLeft" align="right" valign="top">void </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"> </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"> </td></tr> 1.169 +<tr class="memitem:a285e90e40681c6d9631c935dda0967f2"><td class="memItemLeft" align="right" valign="top">void </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"> </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"> </td></tr> 1.172 +<tr class="memitem:adfeb2d61003fd2896bcfdc9a57f36425"><td class="memItemLeft" align="right" valign="top">int </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"> </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"> </td></tr> 1.175 +<tr class="memitem:a62c6c30cbb0d824ba710f5030ff9a4e4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structUcxMap.html">UcxMap</a> * </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"> </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"> </td></tr> 1.178 +<tr class="memitem:a9aea9103703d5c168420bb6bf85549ea"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structUcxMap.html">UcxMap</a> * </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"> </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"> </td></tr> 1.181 +<tr class="memitem:a174bce9fad554dd92b8da354e0d32512"><td class="memItemLeft" align="right" valign="top">int </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"> </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"> </td></tr> 1.184 +<tr class="memitem:ac04a08b604217070254d4c58f0e82498"><td class="memItemLeft" align="right" valign="top">int </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"> </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"> </td></tr> 1.187 +<tr class="memitem:ab61192c5af2e06ecb9ad73880d1c95a6"><td class="memItemLeft" align="right" valign="top">void * </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"> </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"> </td></tr> 1.190 +<tr class="memitem:a17248a4888eb8f9ae18be522d64632aa"><td class="memItemLeft" align="right" valign="top">void * </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"> </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"> </td></tr> 1.193 +<tr class="memitem:a3e540bb46b8ee19789aed63fd8919200"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structUcxKey.html">UcxKey</a> </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"> </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"> </td></tr> 1.196 +<tr class="memitem:aea3be97254c05595d986ef6a9faae87b"><td class="memItemLeft" align="right" valign="top">int </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"> </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"> </td></tr> 1.199 +<tr class="memitem:a9150e9c64fdf4dfcc2cad106b91aa110"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structUcxMapIterator.html">UcxMapIterator</a> </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"> </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"> </td></tr> 1.202 +<tr class="memitem:aceb8675abf44860b4bbc301bbada5b91"><td class="memItemLeft" align="right" valign="top">int </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"> </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"> </td></tr> 1.205 +<tr class="memitem:a3f65978c481af7f637cad021d93522d5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structUcxMap.html">UcxMap</a> * </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"> </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"> </td></tr> 1.208 +<tr class="memitem:ab6370c3fa8113fdad593ce4b0460c9c6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structUcxMap.html">UcxMap</a> * </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"> </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"> </td></tr> 1.211 +<tr class="memitem:aa594d7a5afebc3bed6bb265348cf6b0d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structUcxMap.html">UcxMap</a> * </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"> </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"> </td></tr> 1.214 +<tr class="memitem:a169e0470a20484dd76425fdf77e3651e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structUcxMap.html">UcxMap</a> * </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"> </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"> </td></tr> 1.217 +<tr class="memitem:a774fcff87d1e58b6c5af77dd19a8c3dc"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structUcxMap.html">UcxMap</a> * </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"> </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"> </td></tr> 1.220 +<tr class="memitem:ad0ba103494247d798ac3037c50fc8831"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structUcxMap.html">UcxMap</a> * </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"> </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"> </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">◆ </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"> </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"> </td> 1.247 + <td class="paramname">key </td> 1.248 + </tr> 1.249 + <tr> 1.250 + <td></td> 1.251 + <td>)</td> 1.252 + <td></td><td>   <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">◆ </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"> </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"> </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"> </td> 1.292 + <td class="paramname">value </td> 1.293 + </tr> 1.294 + <tr> 1.295 + <td></td> 1.296 + <td>)</td> 1.297 + <td></td><td>   <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">◆ </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"> </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"> </td> 1.332 + <td class="paramname">key </td> 1.333 + </tr> 1.334 + <tr> 1.335 + <td></td> 1.336 + <td>)</td> 1.337 + <td></td><td>   <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">◆ </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"> </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"> </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"> </td> 1.377 + <td class="paramname">iter </td> 1.378 + </tr> 1.379 + <tr> 1.380 + <td></td> 1.381 + <td>)</td> 1.382 + <td></td><td>   for(<a class="el" href="structUcxKey.html">UcxKey</a> key;<a class="el" href="map_8h.html#aceb8675abf44860b4bbc301bbada5b91">ucx_map_iter_next</a>(&iter,&key, (void**)&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">◆ </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"> </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"> </td> 1.417 + <td class="paramname">key </td> 1.418 + </tr> 1.419 + <tr> 1.420 + <td></td> 1.421 + <td>)</td> 1.422 + <td></td><td>   <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, 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">◆ </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"> </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"> </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"> </td> 1.462 + <td class="paramname">value </td> 1.463 + </tr> 1.464 + <tr> 1.465 + <td></td> 1.466 + <td>)</td> 1.467 + <td></td><td>   <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, 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">◆ </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"> </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"> </td> 1.502 + <td class="paramname">key </td> 1.503 + </tr> 1.504 + <tr> 1.505 + <td></td> 1.506 + <td>)</td> 1.507 + <td></td><td>   <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, 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">◆ </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"> </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"> </td> 1.541 + <td class="paramname">key </td> 1.542 + </tr> 1.543 + <tr> 1.544 + <td></td> 1.545 + <td>)</td> 1.546 + <td></td><td>   <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">◆ </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"> </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"> </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"> </td> 1.586 + <td class="paramname">value </td> 1.587 + </tr> 1.588 + <tr> 1.589 + <td></td> 1.590 + <td>)</td> 1.591 + <td></td><td>   <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">◆ </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"> </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"> </td> 1.626 + <td class="paramname">key </td> 1.627 + </tr> 1.628 + <tr> 1.629 + <td></td> 1.630 + <td>)</td> 1.631 + <td></td><td>   <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">◆ </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">◆ </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">◆ </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">◆ </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">◆ </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 * </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 </td> 1.735 + <td class="paramname"><em>len</em> </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">◆ </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 * </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 </td> 1.773 + <td class="paramname"><em>len</em> </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">◆ </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> * </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">◆ </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 * </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> </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 * </td> 1.847 + <td class="paramname"><em>data</em> </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">◆ </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> * </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 * </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> </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 * </td> 1.900 + <td class="paramname"><em>data</em> </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">◆ </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 * </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> * </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> </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 * </td> 1.954 + <td class="paramname"><em>data</em> </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">◆ </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> * </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> * </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> </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 * </td> 1.1007 + <td class="paramname"><em>cpdata</em> </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">◆ </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> * </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> * </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> * </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> </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 * </td> 1.1066 + <td class="paramname"><em>cpdata</em> </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">◆ </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> * </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">◆ </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> * </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> </td> 1.1136 + <td class="paramname"><em>destr</em> </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">◆ </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 * </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> </td> 1.1180 + <td class="paramname"><em>key</em> </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">◆ </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> * </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> * </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> </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 * </td> 1.1230 + <td class="paramname"><em>cpdata</em> </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">◆ </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> * </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> * </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> * </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> </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 * </td> 1.1289 + <td class="paramname"><em>cpdata</em> </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">◆ </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> * </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> * </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 ** </td> 1.1337 + <td class="paramname"><em>value</em> </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">◆ </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 * </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">◆ </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 </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">◆ </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> * </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 </td> 1.1436 + <td class="paramname"><em>size</em> </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">◆ </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> * </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> </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 * </td> 1.1480 + <td class="paramname"><em>value</em> </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">◆ </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> * </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">◆ </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> * </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> </td> 1.1549 + <td class="paramname"><em>key</em> </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">◆ </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> * </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> * </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> </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 * </td> 1.1599 + <td class="paramname"><em>cpdata</em> </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">◆ </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> * </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> * </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> * </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> </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 * </td> 1.1658 + <td class="paramname"><em>cpdata</em> </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  <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>