<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <meta http-equiv="X-UA-Compatible" content="IE=9"/> <meta name="generator" content="Doxygen 1.8.6"/> <title>MDB: ID List Management</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="dynsections.js"></script> <link href="search/search.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="search/search.js"></script> <script type="text/javascript"> $(document).ready(function() { searchBox.OnSelectItem(0); }); </script> <link href="doxygen.css" rel="stylesheet" type="text/css" /> </head> <body> <div id="top"><!-- do not remove this div, it is closed by doxygen! --> <div id="titlearea"> <table cellspacing="0" cellpadding="0"> <tbody> <tr style="height: 56px;"> <td style="padding-left: 0.5em;"> <div id="projectname">MDB </div> </td> </tr> </tbody> </table> </div> <!-- end header part --> <!-- Generated by Doxygen 1.8.6 --> <script type="text/javascript"> var searchBox = new SearchBox("searchBox", "search",false,'Search'); </script> <div id="navrow1" class="tabs"> <ul class="tablist"> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li><a href="annotated.html"><span>Data Structures</span></a></li> <li><a href="files.html"><span>Files</span></a></li> <li> <div id="MSearchBox" class="MSearchBoxInactive"> <span class="left"> <img id="MSearchSelect" src="search/mag_sel.png" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()" alt=""/> <input type="text" id="MSearchField" value="Search" accesskey="S" onfocus="searchBox.OnSearchFieldFocus(true)" onblur="searchBox.OnSearchFieldFocus(false)" onkeyup="searchBox.OnSearchFieldChange(event)"/> </span><span class="right"> <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a> </span> </div> </li> </ul> </div> </div><!-- top --> <!-- window showing the filter options --> <div id="MSearchSelectWindow" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()" onkeydown="return searchBox.OnSearchSelectKey(event)"> <a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark"> </span>Pages</a></div> <!-- iframe showing the search results (closed by default) --> <div id="MSearchResultsWindow"> <iframe src="javascript:void(0)" frameborder="0" name="MSearchResults" id="MSearchResults"> </iframe> </div> <div class="header"> <div class="summary"> <a href="#nested-classes">Data Structures</a> | <a href="#define-members">Macros</a> | <a href="#typedef-members">Typedefs</a> | <a href="#func-members">Functions</a> </div> <div class="headertitle"> <div class="title">ID List Management<div class="ingroups"><a class="el" href="group__internal.html">MDB Internals</a></div></div> </div> </div><!--header--> <div class="contents"> <table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a> Data Structures</h2></td></tr> <tr class="memitem:structMDB__ID2"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="group__idls.html#structMDB__ID2">MDB_ID2</a></td></tr> <tr class="separator:structMDB__ID2"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a> Macros</h2></td></tr> <tr class="memitem:ga5913db46baa9f4c150fd306ed60c5df2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5913db46baa9f4c150fd306ed60c5df2"></a> #define </td><td class="memItemRight" valign="bottom"><b>MDB_IDL_LOGN</b>   16 /* DB_SIZE is 2^16, UM_SIZE is 2^17 */</td></tr> <tr class="separator:ga5913db46baa9f4c150fd306ed60c5df2"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gaa45bf227dabe81a33a3d010ec5837d53"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa45bf227dabe81a33a3d010ec5837d53"></a> #define </td><td class="memItemRight" valign="bottom"><b>MDB_IDL_DB_SIZE</b>   (1<<MDB_IDL_LOGN)</td></tr> <tr class="separator:gaa45bf227dabe81a33a3d010ec5837d53"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gaeba3deef11f846a3d92e00dc2e09403d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaeba3deef11f846a3d92e00dc2e09403d"></a> #define </td><td class="memItemRight" valign="bottom"><b>MDB_IDL_UM_SIZE</b>   (1<<(MDB_IDL_LOGN+1))</td></tr> <tr class="separator:gaeba3deef11f846a3d92e00dc2e09403d"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga4b58903bea2b843d866f5c8fd1a9aaf7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga4b58903bea2b843d866f5c8fd1a9aaf7"></a> #define </td><td class="memItemRight" valign="bottom"><b>MDB_IDL_DB_MAX</b>   (MDB_IDL_DB_SIZE-1)</td></tr> <tr class="separator:ga4b58903bea2b843d866f5c8fd1a9aaf7"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga329af3b2c499bf05f3f1f96f24645ab5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga329af3b2c499bf05f3f1f96f24645ab5"></a> #define </td><td class="memItemRight" valign="bottom"><b>MDB_IDL_UM_MAX</b>   (MDB_IDL_UM_SIZE-1)</td></tr> <tr class="separator:ga329af3b2c499bf05f3f1f96f24645ab5"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga27cf9b6582a14b526efacb0103479af2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga27cf9b6582a14b526efacb0103479af2"></a> #define </td><td class="memItemRight" valign="bottom"><b>MDB_IDL_SIZEOF</b>(ids)   (((ids)[0]+1) * sizeof(<a class="el" href="group__idls.html#gad3544b2a0d07ee195d91e92b0e46005e">MDB_ID</a>))</td></tr> <tr class="separator:ga27cf9b6582a14b526efacb0103479af2"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga08dc6b24beb65b6539b096451ab6265e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga08dc6b24beb65b6539b096451ab6265e"></a> #define </td><td class="memItemRight" valign="bottom"><b>MDB_IDL_IS_ZERO</b>(ids)   ( (ids)[0] == 0 )</td></tr> <tr class="separator:ga08dc6b24beb65b6539b096451ab6265e"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga4f2703b101329a054b96b1e7c81b7655"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga4f2703b101329a054b96b1e7c81b7655"></a> #define </td><td class="memItemRight" valign="bottom"><b>MDB_IDL_CPY</b>(dst, src)   (memcpy( dst, src, MDB_IDL_SIZEOF( src ) ))</td></tr> <tr class="separator:ga4f2703b101329a054b96b1e7c81b7655"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gacb321970daa0ed047684ebea71be70ac"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gacb321970daa0ed047684ebea71be70ac"></a> #define </td><td class="memItemRight" valign="bottom"><b>MDB_IDL_FIRST</b>(ids)   ( (ids)[1] )</td></tr> <tr class="separator:gacb321970daa0ed047684ebea71be70ac"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga1a88b649c8c88811b531dd0e4f336a06"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1a88b649c8c88811b531dd0e4f336a06"></a> #define </td><td class="memItemRight" valign="bottom"><b>MDB_IDL_LAST</b>(ids)   ( (ids)[(ids)[0]] )</td></tr> <tr class="separator:ga1a88b649c8c88811b531dd0e4f336a06"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gaf1e1ecbabeea10bcf19bd7ab616dcbc1"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__idls.html#gaf1e1ecbabeea10bcf19bd7ab616dcbc1">mdb_midl_xappend</a>(idl, id)</td></tr> <tr class="separator:gaf1e1ecbabeea10bcf19bd7ab616dcbc1"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gafb073915b50e7112cfed534aff6524cf"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gafb073915b50e7112cfed534aff6524cf"></a> #define </td><td class="memItemRight" valign="bottom"><b>CMP</b>(x, y)   ( (x) < (y) ? -1 : (x) > (y) )</td></tr> <tr class="separator:gafb073915b50e7112cfed534aff6524cf"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga09c78d2f8feb311dd9fc969a0bf84979"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga09c78d2f8feb311dd9fc969a0bf84979"></a> #define </td><td class="memItemRight" valign="bottom"><b>SMALL</b>   8</td></tr> <tr class="separator:ga09c78d2f8feb311dd9fc969a0bf84979"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga3ba85d6201d0518626404096ed0c08a9"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga3ba85d6201d0518626404096ed0c08a9"></a> #define </td><td class="memItemRight" valign="bottom"><b>MIDL_SWAP</b>(a, b)   { itmp=(a); (a)=(b); (b)=itmp; }</td></tr> <tr class="separator:ga3ba85d6201d0518626404096ed0c08a9"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a> Typedefs</h2></td></tr> <tr class="memitem:gad3544b2a0d07ee195d91e92b0e46005e"><td class="memItemLeft" align="right" valign="top">typedef size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__idls.html#gad3544b2a0d07ee195d91e92b0e46005e">MDB_ID</a></td></tr> <tr class="separator:gad3544b2a0d07ee195d91e92b0e46005e"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga238cc39c422225e05cb3897e641ca9e5"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="group__idls.html#gad3544b2a0d07ee195d91e92b0e46005e">MDB_ID</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__idls.html#ga238cc39c422225e05cb3897e641ca9e5">MDB_IDL</a></td></tr> <tr class="separator:ga238cc39c422225e05cb3897e641ca9e5"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gafcc5d61c06c726db2be5d088dbc68d51"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="group__idls.html#structMDB__ID2">MDB_ID2</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__idls.html#gafcc5d61c06c726db2be5d088dbc68d51">MDB_ID2L</a></td></tr> <tr class="separator:gafcc5d61c06c726db2be5d088dbc68d51"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> Functions</h2></td></tr> <tr class="memitem:ga9133d7b3849e2508c7bc690db039444d"><td class="memItemLeft" align="right" valign="top">unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="group__idls.html#ga9133d7b3849e2508c7bc690db039444d">mdb_midl_search</a> (<a class="el" href="group__idls.html#ga238cc39c422225e05cb3897e641ca9e5">MDB_IDL</a> ids, <a class="el" href="group__idls.html#gad3544b2a0d07ee195d91e92b0e46005e">MDB_ID</a> id)</td></tr> <tr class="separator:ga9133d7b3849e2508c7bc690db039444d"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gab239e78f44ae65ce84c1a63c99f14b19"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__idls.html#ga238cc39c422225e05cb3897e641ca9e5">MDB_IDL</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__idls.html#gab239e78f44ae65ce84c1a63c99f14b19">mdb_midl_alloc</a> (int num)</td></tr> <tr class="separator:gab239e78f44ae65ce84c1a63c99f14b19"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga16e7b3139783126c1e39b5d7f7fb625d"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__idls.html#ga16e7b3139783126c1e39b5d7f7fb625d">mdb_midl_free</a> (<a class="el" href="group__idls.html#ga238cc39c422225e05cb3897e641ca9e5">MDB_IDL</a> ids)</td></tr> <tr class="separator:ga16e7b3139783126c1e39b5d7f7fb625d"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga4f0b2b550d5af4a12a7cd35eff3b96b2"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__idls.html#ga4f0b2b550d5af4a12a7cd35eff3b96b2">mdb_midl_shrink</a> (<a class="el" href="group__idls.html#ga238cc39c422225e05cb3897e641ca9e5">MDB_IDL</a> *idp)</td></tr> <tr class="separator:ga4f0b2b550d5af4a12a7cd35eff3b96b2"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga27374e3827d673a748c843fffce1a48f"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__idls.html#ga27374e3827d673a748c843fffce1a48f">mdb_midl_need</a> (<a class="el" href="group__idls.html#ga238cc39c422225e05cb3897e641ca9e5">MDB_IDL</a> *idp, unsigned num)</td></tr> <tr class="separator:ga27374e3827d673a748c843fffce1a48f"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gaf1dc78a5648a20152672b6236f1879e9"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__idls.html#gaf1dc78a5648a20152672b6236f1879e9">mdb_midl_append</a> (<a class="el" href="group__idls.html#ga238cc39c422225e05cb3897e641ca9e5">MDB_IDL</a> *idp, <a class="el" href="group__idls.html#gad3544b2a0d07ee195d91e92b0e46005e">MDB_ID</a> id)</td></tr> <tr class="separator:gaf1dc78a5648a20152672b6236f1879e9"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga21493a9f98c90f59d81c7197866ec076"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__idls.html#ga21493a9f98c90f59d81c7197866ec076">mdb_midl_append_list</a> (<a class="el" href="group__idls.html#ga238cc39c422225e05cb3897e641ca9e5">MDB_IDL</a> *idp, <a class="el" href="group__idls.html#ga238cc39c422225e05cb3897e641ca9e5">MDB_IDL</a> app)</td></tr> <tr class="separator:ga21493a9f98c90f59d81c7197866ec076"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gaccadab9afb9667e28c4e750a1d0696f8"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__idls.html#gaccadab9afb9667e28c4e750a1d0696f8">mdb_midl_append_range</a> (<a class="el" href="group__idls.html#ga238cc39c422225e05cb3897e641ca9e5">MDB_IDL</a> *idp, <a class="el" href="group__idls.html#gad3544b2a0d07ee195d91e92b0e46005e">MDB_ID</a> id, unsigned n)</td></tr> <tr class="separator:gaccadab9afb9667e28c4e750a1d0696f8"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gac3fe60f3087a5fdba4908f53a62d16d5"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__idls.html#gac3fe60f3087a5fdba4908f53a62d16d5">mdb_midl_sort</a> (<a class="el" href="group__idls.html#ga238cc39c422225e05cb3897e641ca9e5">MDB_IDL</a> ids)</td></tr> <tr class="separator:gac3fe60f3087a5fdba4908f53a62d16d5"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga4fbf5726f08ac891bbea111b712ab424"><td class="memItemLeft" align="right" valign="top">unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="group__idls.html#ga4fbf5726f08ac891bbea111b712ab424">mdb_mid2l_search</a> (<a class="el" href="group__idls.html#gafcc5d61c06c726db2be5d088dbc68d51">MDB_ID2L</a> ids, <a class="el" href="group__idls.html#gad3544b2a0d07ee195d91e92b0e46005e">MDB_ID</a> id)</td></tr> <tr class="separator:ga4fbf5726f08ac891bbea111b712ab424"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga7cf657facd99bec0e29ea05bda96e4a5"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__idls.html#ga7cf657facd99bec0e29ea05bda96e4a5">mdb_mid2l_insert</a> (<a class="el" href="group__idls.html#gafcc5d61c06c726db2be5d088dbc68d51">MDB_ID2L</a> ids, <a class="el" href="group__idls.html#structMDB__ID2">MDB_ID2</a> *id)</td></tr> <tr class="separator:ga7cf657facd99bec0e29ea05bda96e4a5"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga54b5ab87ee3746dc4926d25d3887dfab"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__idls.html#ga54b5ab87ee3746dc4926d25d3887dfab">mdb_mid2l_append</a> (<a class="el" href="group__idls.html#gafcc5d61c06c726db2be5d088dbc68d51">MDB_ID2L</a> ids, <a class="el" href="group__idls.html#structMDB__ID2">MDB_ID2</a> *id)</td></tr> <tr class="separator:ga54b5ab87ee3746dc4926d25d3887dfab"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gaff1d934aedb1e24a62dd1fc6d04b3e6d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaff1d934aedb1e24a62dd1fc6d04b3e6d"></a> static int </td><td class="memItemRight" valign="bottom"><b>mdb_midl_grow</b> (<a class="el" href="group__idls.html#ga238cc39c422225e05cb3897e641ca9e5">MDB_IDL</a> *idp, int num)</td></tr> <tr class="separator:gaff1d934aedb1e24a62dd1fc6d04b3e6d"><td class="memSeparator" colspan="2"> </td></tr> </table> <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> <hr/><h2 class="groupheader">Data Structure Documentation</h2> <a name="structMDB__ID2" id="structMDB__ID2"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">struct MDB_ID2</td> </tr> </table> </div><div class="memdoc"> <div class="textblock"><p>An ID2 is an ID/pointer pair. </p> </div><table class="memberdecls"> <tr><td colspan="2"><h3>Data Fields</h3></td></tr> <tr class="memitem:a761ed12fed2327d04af6b9e841335833"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__idls.html#gad3544b2a0d07ee195d91e92b0e46005e">MDB_ID</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__idls.html#a761ed12fed2327d04af6b9e841335833">mid</a></td></tr> <tr class="separator:a761ed12fed2327d04af6b9e841335833"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:af23b32045b25744304bee13ac3ea8794"><td class="memItemLeft" align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__idls.html#af23b32045b25744304bee13ac3ea8794">mptr</a></td></tr> <tr class="separator:af23b32045b25744304bee13ac3ea8794"><td class="memSeparator" colspan="2"> </td></tr> </table> <h4 class="groupheader">Field Documentation</h4> <a class="anchor" id="a761ed12fed2327d04af6b9e841335833"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="group__idls.html#gad3544b2a0d07ee195d91e92b0e46005e">MDB_ID</a> MDB_ID2::mid</td> </tr> </table> </div><div class="memdoc"> <p>The ID </p> </div> </div> <a class="anchor" id="af23b32045b25744304bee13ac3ea8794"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void* MDB_ID2::mptr</td> </tr> </table> </div><div class="memdoc"> <p>The pointer </p> </div> </div> </div> </div> <h2 class="groupheader">Macro Definition Documentation</h2> <a class="anchor" id="gaf1e1ecbabeea10bcf19bd7ab616dcbc1"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define mdb_midl_xappend</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname">idl, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">id </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <b>Value:</b><div class="fragment"><div class="line"><span class="keywordflow">do</span> { <a class="code" href="group__idls.html#gad3544b2a0d07ee195d91e92b0e46005e">\</a></div> <div class="line"><a class="code" href="group__idls.html#gad3544b2a0d07ee195d91e92b0e46005e"> MDB_ID</a> *xidl = (idl), xlen = ++(xidl[0]); \</div> <div class="line"> xidl[xlen] = (id); \</div> <div class="line"> } <span class="keywordflow">while</span> (0)</div> <div class="ttc" id="group__idls_html_gad3544b2a0d07ee195d91e92b0e46005e"><div class="ttname"><a href="group__idls.html#gad3544b2a0d07ee195d91e92b0e46005e">MDB_ID</a></div><div class="ttdeci">size_t MDB_ID</div><div class="ttdef"><b>Definition:</b> midl.h:45</div></div> </div><!-- fragment --><p>Append ID to IDL. The IDL must be big enough. </p> </div> </div> <h2 class="groupheader">Typedef Documentation</h2> <a class="anchor" id="gad3544b2a0d07ee195d91e92b0e46005e"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef size_t <a class="el" href="group__idls.html#gad3544b2a0d07ee195d91e92b0e46005e">MDB_ID</a></td> </tr> </table> </div><div class="memdoc"> <p>A generic unsigned ID number. These were entryIDs in back-bdb. Preferably it should have the same size as a pointer. </p> </div> </div> <a class="anchor" id="ga238cc39c422225e05cb3897e641ca9e5"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef <a class="el" href="group__idls.html#gad3544b2a0d07ee195d91e92b0e46005e">MDB_ID</a>* <a class="el" href="group__idls.html#ga238cc39c422225e05cb3897e641ca9e5">MDB_IDL</a></td> </tr> </table> </div><div class="memdoc"> <p>An IDL is an ID List, a sorted array of IDs. The first element of the array is a counter for how many actual IDs are in the list. In the original back-bdb code, IDLs are sorted in ascending order. For libmdb IDLs are sorted in descending order. </p> </div> </div> <a class="anchor" id="gafcc5d61c06c726db2be5d088dbc68d51"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef <a class="el" href="group__idls.html#structMDB__ID2">MDB_ID2</a>* <a class="el" href="group__idls.html#gafcc5d61c06c726db2be5d088dbc68d51">MDB_ID2L</a></td> </tr> </table> </div><div class="memdoc"> <p>An ID2L is an ID2 List, a sorted array of ID2s. The first element's <b>mid</b> member is a count of how many actual elements are in the array. The <b>mptr</b> member of the first element is unused. The array is sorted in ascending order by <b>mid</b>. </p> </div> </div> <h2 class="groupheader">Function Documentation</h2> <a class="anchor" id="ga9133d7b3849e2508c7bc690db039444d"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">unsigned mdb_midl_search </td> <td>(</td> <td class="paramtype"><a class="el" href="group__idls.html#ga238cc39c422225e05cb3897e641ca9e5">MDB_IDL</a> </td> <td class="paramname"><em>ids</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="group__idls.html#gad3544b2a0d07ee195d91e92b0e46005e">MDB_ID</a> </td> <td class="paramname"><em>id</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Search for an ID in an IDL. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramdir">[in]</td><td class="paramname">ids</td><td>The IDL to search. </td></tr> <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>The ID to search for. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>The index of the first ID greater than or equal to <b>id</b>. </dd></dl> </div> </div> <a class="anchor" id="gab239e78f44ae65ce84c1a63c99f14b19"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="group__idls.html#ga238cc39c422225e05cb3897e641ca9e5">MDB_IDL</a> mdb_midl_alloc </td> <td>(</td> <td class="paramtype">int </td> <td class="paramname"><em>num</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Allocate an IDL. Allocates memory for an IDL of the given size. </p> <dl class="section return"><dt>Returns</dt><dd>IDL on success, NULL on failure. </dd></dl> </div> </div> <a class="anchor" id="ga16e7b3139783126c1e39b5d7f7fb625d"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void mdb_midl_free </td> <td>(</td> <td class="paramtype"><a class="el" href="group__idls.html#ga238cc39c422225e05cb3897e641ca9e5">MDB_IDL</a> </td> <td class="paramname"><em>ids</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Free an IDL. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramdir">[in]</td><td class="paramname">ids</td><td>The IDL to free. </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="ga4f0b2b550d5af4a12a7cd35eff3b96b2"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int mdb_midl_shrink </td> <td>(</td> <td class="paramtype"><a class="el" href="group__idls.html#ga238cc39c422225e05cb3897e641ca9e5">MDB_IDL</a> * </td> <td class="paramname"><em>idp</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Shrink an IDL. Return the IDL to the default size if it has grown larger. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramdir">[in,out]</td><td class="paramname">idp</td><td>Address of the IDL to shrink. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>0 on no change, non-zero if shrunk. </dd></dl> </div> </div> <a class="anchor" id="ga27374e3827d673a748c843fffce1a48f"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int mdb_midl_need </td> <td>(</td> <td class="paramtype"><a class="el" href="group__idls.html#ga238cc39c422225e05cb3897e641ca9e5">MDB_IDL</a> * </td> <td class="paramname"><em>idp</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned </td> <td class="paramname"><em>num</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Make room for num additional elements in an IDL. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramdir">[in,out]</td><td class="paramname">idp</td><td>Address of the IDL. </td></tr> <tr><td class="paramdir">[in]</td><td class="paramname">num</td><td>Number of elements to make room for. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>0 on success, ENOMEM on failure. </dd></dl> </div> </div> <a class="anchor" id="gaf1dc78a5648a20152672b6236f1879e9"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int mdb_midl_append </td> <td>(</td> <td class="paramtype"><a class="el" href="group__idls.html#ga238cc39c422225e05cb3897e641ca9e5">MDB_IDL</a> * </td> <td class="paramname"><em>idp</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="group__idls.html#gad3544b2a0d07ee195d91e92b0e46005e">MDB_ID</a> </td> <td class="paramname"><em>id</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Append an ID onto an IDL. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramdir">[in,out]</td><td class="paramname">idp</td><td>Address of the IDL to append to. </td></tr> <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>The ID to append. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>0 on success, ENOMEM if the IDL is too large. </dd></dl> </div> </div> <a class="anchor" id="ga21493a9f98c90f59d81c7197866ec076"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int mdb_midl_append_list </td> <td>(</td> <td class="paramtype"><a class="el" href="group__idls.html#ga238cc39c422225e05cb3897e641ca9e5">MDB_IDL</a> * </td> <td class="paramname"><em>idp</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="group__idls.html#ga238cc39c422225e05cb3897e641ca9e5">MDB_IDL</a> </td> <td class="paramname"><em>app</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Append an IDL onto an IDL. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramdir">[in,out]</td><td class="paramname">idp</td><td>Address of the IDL to append to. </td></tr> <tr><td class="paramdir">[in]</td><td class="paramname">app</td><td>The IDL to append. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>0 on success, ENOMEM if the IDL is too large. </dd></dl> </div> </div> <a class="anchor" id="gaccadab9afb9667e28c4e750a1d0696f8"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int mdb_midl_append_range </td> <td>(</td> <td class="paramtype"><a class="el" href="group__idls.html#ga238cc39c422225e05cb3897e641ca9e5">MDB_IDL</a> * </td> <td class="paramname"><em>idp</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="group__idls.html#gad3544b2a0d07ee195d91e92b0e46005e">MDB_ID</a> </td> <td class="paramname"><em>id</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned </td> <td class="paramname"><em>n</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Append an ID range onto an IDL. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramdir">[in,out]</td><td class="paramname">idp</td><td>Address of the IDL to append to. </td></tr> <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>The lowest ID to append. </td></tr> <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>Number of IDs to append. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>0 on success, ENOMEM if the IDL is too large. </dd></dl> </div> </div> <a class="anchor" id="gac3fe60f3087a5fdba4908f53a62d16d5"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void mdb_midl_sort </td> <td>(</td> <td class="paramtype"><a class="el" href="group__idls.html#ga238cc39c422225e05cb3897e641ca9e5">MDB_IDL</a> </td> <td class="paramname"><em>ids</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Sort an IDL. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramdir">[in,out]</td><td class="paramname">ids</td><td>The IDL to sort. </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="ga4fbf5726f08ac891bbea111b712ab424"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">unsigned mdb_mid2l_search </td> <td>(</td> <td class="paramtype"><a class="el" href="group__idls.html#gafcc5d61c06c726db2be5d088dbc68d51">MDB_ID2L</a> </td> <td class="paramname"><em>ids</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="group__idls.html#gad3544b2a0d07ee195d91e92b0e46005e">MDB_ID</a> </td> <td class="paramname"><em>id</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Search for an ID in an ID2L. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramdir">[in]</td><td class="paramname">ids</td><td>The ID2L to search. </td></tr> <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>The ID to search for. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>The index of the first ID2 whose <b>mid</b> member is greater than or equal to <b>id</b>. </dd></dl> </div> </div> <a class="anchor" id="ga7cf657facd99bec0e29ea05bda96e4a5"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int mdb_mid2l_insert </td> <td>(</td> <td class="paramtype"><a class="el" href="group__idls.html#gafcc5d61c06c726db2be5d088dbc68d51">MDB_ID2L</a> </td> <td class="paramname"><em>ids</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="group__idls.html#structMDB__ID2">MDB_ID2</a> * </td> <td class="paramname"><em>id</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Insert an ID2 into a ID2L. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramdir">[in,out]</td><td class="paramname">ids</td><td>The ID2L to insert into. </td></tr> <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>The ID2 to insert. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>0 on success, -1 if the ID was already present in the ID2L. </dd></dl> </div> </div> <a class="anchor" id="ga54b5ab87ee3746dc4926d25d3887dfab"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int mdb_mid2l_append </td> <td>(</td> <td class="paramtype"><a class="el" href="group__idls.html#gafcc5d61c06c726db2be5d088dbc68d51">MDB_ID2L</a> </td> <td class="paramname"><em>ids</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="group__idls.html#structMDB__ID2">MDB_ID2</a> * </td> <td class="paramname"><em>id</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Append an ID2 into a ID2L. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramdir">[in,out]</td><td class="paramname">ids</td><td>The ID2L to append into. </td></tr> <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>The ID2 to append. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>0 on success, -2 if the ID2L is too big. </dd></dl> </div> </div> </div><!-- contents --> <!-- start footer part --> <hr class="footer"/><address class="footer"><small> Generated on Fri Jul 18 2014 09:17:15 for MDB by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/> </a> 1.8.6 </small></address> </body> </html>