<!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.5"/> <title>GNU CommonC++: ost::MapTable Class Reference</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="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">GNU CommonC++ </div> </td> </tr> </tbody> </table> </div> <!-- end header part --> <!-- Generated by Doxygen 1.8.5 --> <div id="navrow1" class="tabs"> <ul class="tablist"> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="namespaces.html"><span>Namespaces</span></a></li> <li class="current"><a href="annotated.html"><span>Classes</span></a></li> <li><a href="files.html"><span>Files</span></a></li> <li><a href="examples.html"><span>Examples</span></a></li> </ul> </div> <div id="navrow2" class="tabs2"> <ul class="tablist"> <li><a href="annotated.html"><span>Class List</span></a></li> <li><a href="classes.html"><span>Class Index</span></a></li> <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li> <li><a href="functions.html"><span>Class Members</span></a></li> </ul> </div> <div id="nav-path" class="navpath"> <ul> <li class="navelem"><a class="el" href="namespaceost.html">ost</a></li><li class="navelem"><a class="el" href="classost_1_1_map_table.html">MapTable</a></li> </ul> </div> </div><!-- top --> <div class="header"> <div class="summary"> <a href="#pub-methods">Public Member Functions</a> | <a href="#pro-methods">Protected Member Functions</a> | <a href="#pro-attribs">Protected Attributes</a> | <a href="#friends">Friends</a> | <a href="classost_1_1_map_table-members.html">List of all members</a> </div> <div class="headertitle"> <div class="title">ost::MapTable Class Reference</div> </div> </div><!--header--> <div class="contents"> <p>A map table allows for entities to be mapped (hash index) onto it. <a href="classost_1_1_map_table.html#details">More...</a></p> <p><code>#include <<a class="el" href="object_8h_source.html">object.h</a>></code></p> <div class="dynheader"> Inheritance diagram for ost::MapTable:</div> <div class="dyncontent"> <div class="center"> <img src="classost_1_1_map_table.png" usemap="#ost::MapTable_map" alt=""/> <map id="ost::MapTable_map" name="ost::MapTable_map"> <area href="classost_1_1_mutex.html" title="The Mutex class is used to protect a section of code so that at any given time only a single thread c..." alt="ost::Mutex" shape="rect" coords="0,0,90,24"/> </map> </div></div> <table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a> Public Member Functions</h2></td></tr> <tr class="memitem:a5cb1baf9cbdcb47b429a07215d6f2131"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_map_table.html#a5cb1baf9cbdcb47b429a07215d6f2131">MapTable</a> (unsigned size)</td></tr> <tr class="memdesc:a5cb1baf9cbdcb47b429a07215d6f2131"><td class="mdescLeft"> </td><td class="mdescRight">Create a map table with a specified number of slots. <a href="#a5cb1baf9cbdcb47b429a07215d6f2131">More...</a><br/></td></tr> <tr class="separator:a5cb1baf9cbdcb47b429a07215d6f2131"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a41b85b01b85eb7a6471b79685705fa29"><td class="memItemLeft" align="right" valign="top">virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_map_table.html#a41b85b01b85eb7a6471b79685705fa29">~MapTable</a> ()</td></tr> <tr class="memdesc:a41b85b01b85eb7a6471b79685705fa29"><td class="mdescLeft"> </td><td class="mdescRight">Destroy the table, calls cleanup. <a href="#a41b85b01b85eb7a6471b79685705fa29">More...</a><br/></td></tr> <tr class="separator:a41b85b01b85eb7a6471b79685705fa29"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a07c9740944b2fd846fa23585b75e3d9d"><td class="memItemLeft" align="right" valign="top">virtual unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_map_table.html#a07c9740944b2fd846fa23585b75e3d9d">getIndex</a> (const char *id)</td></tr> <tr class="memdesc:a07c9740944b2fd846fa23585b75e3d9d"><td class="mdescLeft"> </td><td class="mdescRight">Get index value from id string. <a href="#a07c9740944b2fd846fa23585b75e3d9d">More...</a><br/></td></tr> <tr class="separator:a07c9740944b2fd846fa23585b75e3d9d"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aa8b1c538691c04ebe20bcbd37f93df6d"><td class="memItemLeft" align="right" valign="top">unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_map_table.html#aa8b1c538691c04ebe20bcbd37f93df6d">getRange</a> (void)</td></tr> <tr class="memdesc:aa8b1c538691c04ebe20bcbd37f93df6d"><td class="mdescLeft"> </td><td class="mdescRight">Return range of this table. <a href="#aa8b1c538691c04ebe20bcbd37f93df6d">More...</a><br/></td></tr> <tr class="separator:aa8b1c538691c04ebe20bcbd37f93df6d"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a9cb0c62a29b659058fbbafef603204dd"><td class="memItemLeft" align="right" valign="top">unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_map_table.html#a9cb0c62a29b659058fbbafef603204dd">getSize</a> (void)</td></tr> <tr class="memdesc:a9cb0c62a29b659058fbbafef603204dd"><td class="mdescLeft"> </td><td class="mdescRight">Return the number of object stored in this table. <a href="#a9cb0c62a29b659058fbbafef603204dd">More...</a><br/></td></tr> <tr class="separator:a9cb0c62a29b659058fbbafef603204dd"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a1bdbde637f2fb0480b1ceb8ead4bccdb"><td class="memItemLeft" align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_map_table.html#a1bdbde637f2fb0480b1ceb8ead4bccdb">getObject</a> (const char *id)</td></tr> <tr class="memdesc:a1bdbde637f2fb0480b1ceb8ead4bccdb"><td class="mdescLeft"> </td><td class="mdescRight">Lookup an object by id key. <a href="#a1bdbde637f2fb0480b1ceb8ead4bccdb">More...</a><br/></td></tr> <tr class="separator:a1bdbde637f2fb0480b1ceb8ead4bccdb"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a2ae4402514b29270220847071d2a40a6"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_map_table.html#a2ae4402514b29270220847071d2a40a6">addObject</a> (<a class="el" href="classost_1_1_map_object.html">MapObject</a> &obj)</td></tr> <tr class="memdesc:a2ae4402514b29270220847071d2a40a6"><td class="mdescLeft"> </td><td class="mdescRight">Map an object to our table. <a href="#a2ae4402514b29270220847071d2a40a6">More...</a><br/></td></tr> <tr class="separator:a2ae4402514b29270220847071d2a40a6"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a7e3014a9f52b283878fab8f5803508dc"><td class="memItemLeft" align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_map_table.html#a7e3014a9f52b283878fab8f5803508dc">getFirst</a> ()</td></tr> <tr class="memdesc:a7e3014a9f52b283878fab8f5803508dc"><td class="mdescLeft"> </td><td class="mdescRight">Get the first element into table, it is returned as void * for easy re-cast. <a href="#a7e3014a9f52b283878fab8f5803508dc">More...</a><br/></td></tr> <tr class="separator:a7e3014a9f52b283878fab8f5803508dc"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aa20d872102265b9473988c82edb55d51"><td class="memItemLeft" align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_map_table.html#aa20d872102265b9473988c82edb55d51">getLast</a> ()</td></tr> <tr class="memdesc:aa20d872102265b9473988c82edb55d51"><td class="mdescLeft"> </td><td class="mdescRight">Get the last element into table, it is returned as void * for easy re-cast. <a href="#aa20d872102265b9473988c82edb55d51">More...</a><br/></td></tr> <tr class="separator:aa20d872102265b9473988c82edb55d51"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ade3e0591711bdf8b9fe36f10eac697c3"><td class="memItemLeft" align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_map_table.html#ade3e0591711bdf8b9fe36f10eac697c3">getEnd</a> ()</td></tr> <tr class="memdesc:ade3e0591711bdf8b9fe36f10eac697c3"><td class="mdescLeft"> </td><td class="mdescRight">Get table's end, useful for cycle control; it is returned as void * for easy re-cast. <a href="#ade3e0591711bdf8b9fe36f10eac697c3">More...</a><br/></td></tr> <tr class="separator:ade3e0591711bdf8b9fe36f10eac697c3"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:af2e352093e48831f567e3b0b91f4d9bb"><td class="memItemLeft" align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_map_table.html#af2e352093e48831f567e3b0b91f4d9bb">getFree</a> (void)</td></tr> <tr class="memdesc:af2e352093e48831f567e3b0b91f4d9bb"><td class="mdescLeft"> </td><td class="mdescRight">Get next object from managed free list. <a href="#af2e352093e48831f567e3b0b91f4d9bb">More...</a><br/></td></tr> <tr class="separator:af2e352093e48831f567e3b0b91f4d9bb"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ae025e47a6545e0a2c5192de300924764"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_map_table.html#ae025e47a6545e0a2c5192de300924764">addFree</a> (<a class="el" href="classost_1_1_map_object.html">MapObject</a> *obj)</td></tr> <tr class="memdesc:ae025e47a6545e0a2c5192de300924764"><td class="mdescLeft"> </td><td class="mdescRight">Add an object to the managed free list. <a href="#ae025e47a6545e0a2c5192de300924764">More...</a><br/></td></tr> <tr class="separator:ae025e47a6545e0a2c5192de300924764"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a5cade237b6cbe186b00ad50f6561443d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classost_1_1_map_table.html">MapTable</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_map_table.html#a5cade237b6cbe186b00ad50f6561443d">operator+=</a> (<a class="el" href="classost_1_1_map_object.html">MapObject</a> &obj)</td></tr> <tr class="memdesc:a5cade237b6cbe186b00ad50f6561443d"><td class="mdescLeft"> </td><td class="mdescRight">An operator to map an object to the table. <a href="#a5cade237b6cbe186b00ad50f6561443d">More...</a><br/></td></tr> <tr class="separator:a5cade237b6cbe186b00ad50f6561443d"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ae6e0b700fc9cb734df0c301bbc36ab7f"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classost_1_1_map_table.html">MapTable</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_map_table.html#ae6e0b700fc9cb734df0c301bbc36ab7f">operator-=</a> (<a class="el" href="classost_1_1_map_object.html">MapObject</a> &obj)</td></tr> <tr class="memdesc:ae6e0b700fc9cb734df0c301bbc36ab7f"><td class="mdescLeft"> </td><td class="mdescRight">This operator is virtual in case it must also add the object to a managed free list. <a href="#ae6e0b700fc9cb734df0c301bbc36ab7f">More...</a><br/></td></tr> <tr class="separator:ae6e0b700fc9cb734df0c301bbc36ab7f"><td class="memSeparator" colspan="2"> </td></tr> <tr class="inherit_header pub_methods_classost_1_1_mutex"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classost_1_1_mutex')"><img src="closed.png" alt="-"/> Public Member Functions inherited from <a class="el" href="classost_1_1_mutex.html">ost::Mutex</a></td></tr> <tr class="memitem:a22e6ce5d9d8d209dac70e39310459202 inherit pub_methods_classost_1_1_mutex"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_mutex.html#a22e6ce5d9d8d209dac70e39310459202">Mutex</a> (const char *name=NULL)</td></tr> <tr class="memdesc:a22e6ce5d9d8d209dac70e39310459202 inherit pub_methods_classost_1_1_mutex"><td class="mdescLeft"> </td><td class="mdescRight">The mutex is always initialized as a recursive entity. <a href="#a22e6ce5d9d8d209dac70e39310459202">More...</a><br/></td></tr> <tr class="separator:a22e6ce5d9d8d209dac70e39310459202 inherit pub_methods_classost_1_1_mutex"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a5ccc1c2e7278d8adc47fd728706c33a8 inherit pub_methods_classost_1_1_mutex"><td class="memItemLeft" align="right" valign="top">virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_mutex.html#a5ccc1c2e7278d8adc47fd728706c33a8">~Mutex</a> ()</td></tr> <tr class="memdesc:a5ccc1c2e7278d8adc47fd728706c33a8 inherit pub_methods_classost_1_1_mutex"><td class="mdescLeft"> </td><td class="mdescRight">Destroying the mutex removes any system resources associated with it. <a href="#a5ccc1c2e7278d8adc47fd728706c33a8">More...</a><br/></td></tr> <tr class="separator:a5ccc1c2e7278d8adc47fd728706c33a8 inherit pub_methods_classost_1_1_mutex"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:abed8b05b63f9cdd2c9ca1f92081b1a8a inherit pub_methods_classost_1_1_mutex"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_mutex.html#abed8b05b63f9cdd2c9ca1f92081b1a8a">nameMutex</a> (const char *name)</td></tr> <tr class="memdesc:abed8b05b63f9cdd2c9ca1f92081b1a8a inherit pub_methods_classost_1_1_mutex"><td class="mdescLeft"> </td><td class="mdescRight">Enable setting of mutex name for deadlock debug. <a href="#abed8b05b63f9cdd2c9ca1f92081b1a8a">More...</a><br/></td></tr> <tr class="separator:abed8b05b63f9cdd2c9ca1f92081b1a8a inherit pub_methods_classost_1_1_mutex"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:adc1471d0c2114e5c49e1fe7152448378 inherit pub_methods_classost_1_1_mutex"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_mutex.html#adc1471d0c2114e5c49e1fe7152448378">enterMutex</a> (void)</td></tr> <tr class="memdesc:adc1471d0c2114e5c49e1fe7152448378 inherit pub_methods_classost_1_1_mutex"><td class="mdescLeft"> </td><td class="mdescRight">Entering a <a class="el" href="classost_1_1_mutex.html" title="The Mutex class is used to protect a section of code so that at any given time only a single thread c...">Mutex</a> locks the mutex for the current thread. <a href="#adc1471d0c2114e5c49e1fe7152448378">More...</a><br/></td></tr> <tr class="separator:adc1471d0c2114e5c49e1fe7152448378 inherit pub_methods_classost_1_1_mutex"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aecb516325583e432bf2bf7e4b565f6f6 inherit pub_methods_classost_1_1_mutex"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_mutex.html#aecb516325583e432bf2bf7e4b565f6f6">enter</a> (void)</td></tr> <tr class="memdesc:aecb516325583e432bf2bf7e4b565f6f6 inherit pub_methods_classost_1_1_mutex"><td class="mdescLeft"> </td><td class="mdescRight">Future abi will use enter/leave/test members. <a href="#aecb516325583e432bf2bf7e4b565f6f6">More...</a><br/></td></tr> <tr class="separator:aecb516325583e432bf2bf7e4b565f6f6 inherit pub_methods_classost_1_1_mutex"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ab6aaecac9c95d31a5862014d7f1afe73 inherit pub_methods_classost_1_1_mutex"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_mutex.html#ab6aaecac9c95d31a5862014d7f1afe73">leave</a> (void)</td></tr> <tr class="memdesc:ab6aaecac9c95d31a5862014d7f1afe73 inherit pub_methods_classost_1_1_mutex"><td class="mdescLeft"> </td><td class="mdescRight">Future abi will use enter/leave/test members. <a href="#ab6aaecac9c95d31a5862014d7f1afe73">More...</a><br/></td></tr> <tr class="separator:ab6aaecac9c95d31a5862014d7f1afe73 inherit pub_methods_classost_1_1_mutex"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ac1ff5454b2c9b55790c4bf33f751704c inherit pub_methods_classost_1_1_mutex"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_mutex.html#ac1ff5454b2c9b55790c4bf33f751704c">test</a> (void)</td></tr> <tr class="memdesc:ac1ff5454b2c9b55790c4bf33f751704c inherit pub_methods_classost_1_1_mutex"><td class="mdescLeft"> </td><td class="mdescRight">Future abi will use enter/leave/test members. <a href="#ac1ff5454b2c9b55790c4bf33f751704c">More...</a><br/></td></tr> <tr class="separator:ac1ff5454b2c9b55790c4bf33f751704c inherit pub_methods_classost_1_1_mutex"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aa46b490ac92017ef89980b0020bff8c0 inherit pub_methods_classost_1_1_mutex"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_mutex.html#aa46b490ac92017ef89980b0020bff8c0">tryEnterMutex</a> (void)</td></tr> <tr class="memdesc:aa46b490ac92017ef89980b0020bff8c0 inherit pub_methods_classost_1_1_mutex"><td class="mdescLeft"> </td><td class="mdescRight">Tries to lock the mutex for the current thread. <a href="#aa46b490ac92017ef89980b0020bff8c0">More...</a><br/></td></tr> <tr class="separator:aa46b490ac92017ef89980b0020bff8c0 inherit pub_methods_classost_1_1_mutex"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a403208d275c4c7b8087a40259b0cb0f3 inherit pub_methods_classost_1_1_mutex"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_mutex.html#a403208d275c4c7b8087a40259b0cb0f3">leaveMutex</a> (void)</td></tr> <tr class="memdesc:a403208d275c4c7b8087a40259b0cb0f3 inherit pub_methods_classost_1_1_mutex"><td class="mdescLeft"> </td><td class="mdescRight">Leaving a mutex frees that mutex for use by another thread. <a href="#a403208d275c4c7b8087a40259b0cb0f3">More...</a><br/></td></tr> <tr class="separator:a403208d275c4c7b8087a40259b0cb0f3 inherit pub_methods_classost_1_1_mutex"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a> Protected Member Functions</h2></td></tr> <tr class="memitem:a4603e784aa64184f4590b1b33eea6c60"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_map_table.html#a4603e784aa64184f4590b1b33eea6c60">cleanup</a> (void)</td></tr> <tr class="separator:a4603e784aa64184f4590b1b33eea6c60"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a> Protected Attributes</h2></td></tr> <tr class="memitem:ae45620bcf37da41ab3089710e4dbfd32"><td class="memItemLeft" align="right" valign="top">unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_map_table.html#ae45620bcf37da41ab3089710e4dbfd32">range</a></td></tr> <tr class="separator:ae45620bcf37da41ab3089710e4dbfd32"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aa22711b1f0ea9ccdc78bb1c1b45d3af2"><td class="memItemLeft" align="right" valign="top">unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_map_table.html#aa22711b1f0ea9ccdc78bb1c1b45d3af2">count</a></td></tr> <tr class="separator:aa22711b1f0ea9ccdc78bb1c1b45d3af2"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aa5ec0ac04b3d1b1d4e8af79f759bd87b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classost_1_1_map_object.html">MapObject</a> ** </td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_map_table.html#aa5ec0ac04b3d1b1d4e8af79f759bd87b">map</a></td></tr> <tr class="separator:aa5ec0ac04b3d1b1d4e8af79f759bd87b"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a> Friends</h2></td></tr> <tr class="memitem:ad3a0f850a471fb5553eb77ee29b0af44"><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_map_table.html#ad3a0f850a471fb5553eb77ee29b0af44">MapObject</a></td></tr> <tr class="separator:ad3a0f850a471fb5553eb77ee29b0af44"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a28cd428384a9c342d8e5fdadf7139dc0"><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_map_table.html#a28cd428384a9c342d8e5fdadf7139dc0">MapIndex</a></td></tr> <tr class="separator:a28cd428384a9c342d8e5fdadf7139dc0"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a> Additional Inherited Members</h2></td></tr> <tr class="inherit_header pub_static_methods_classost_1_1_mutex"><td colspan="2" onclick="javascript:toggleInherit('pub_static_methods_classost_1_1_mutex')"><img src="closed.png" alt="-"/> Static Public Member Functions inherited from <a class="el" href="classost_1_1_mutex.html">ost::Mutex</a></td></tr> <tr class="memitem:a83b66f786e344b5192a3993d319aa735 inherit pub_static_methods_classost_1_1_mutex"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_mutex.html#a83b66f786e344b5192a3993d319aa735">setDebug</a> (bool mode)</td></tr> <tr class="memdesc:a83b66f786e344b5192a3993d319aa735 inherit pub_static_methods_classost_1_1_mutex"><td class="mdescLeft"> </td><td class="mdescRight">Enable or disable deadlock debugging. <a href="#a83b66f786e344b5192a3993d319aa735">More...</a><br/></td></tr> <tr class="separator:a83b66f786e344b5192a3993d319aa735 inherit pub_static_methods_classost_1_1_mutex"><td class="memSeparator" colspan="2"> </td></tr> </table> <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> <div class="textblock"><p>A map table allows for entities to be mapped (hash index) onto it. </p> <p>Unlike with <a class="el" href="classost_1_1_assoc.html" title="This class is used to associate (object) pointers with named strings. ">Assoc</a>, This form of map table also allows objects to be removed from the table. This table also includes a mutex lock for thread safety. A free list is also optionally maintained for reusable maps.</p> <dl class="section author"><dt>Author</dt><dd>David Sugar <a href="#" onclick="location.href='mai'+'lto:'+'dyf'+'et'+'@gn'+'ut'+'ele'+'ph'+'ony'+'.o'+'rg'; return false;">dyfet<span style="display: none;">.nosp@m.</span>@gnu<span style="display: none;">.nosp@m.</span>telep<span style="display: none;">.nosp@m.</span>hony<span style="display: none;">.nosp@m.</span>.org</a> Table to hold hash indexed objects. </dd></dl> </div><h2 class="groupheader">Constructor & Destructor Documentation</h2> <a class="anchor" id="a5cb1baf9cbdcb47b429a07215d6f2131"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">ost::MapTable::MapTable </td> <td>(</td> <td class="paramtype">unsigned </td> <td class="paramname"><em>size</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Create a map table with a specified number of slots. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">number</td><td>of slots. </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="a41b85b01b85eb7a6471b79685705fa29"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">virtual ost::MapTable::~MapTable </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">virtual</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Destroy the table, calls cleanup. </p> </div> </div> <h2 class="groupheader">Member Function Documentation</h2> <a class="anchor" id="ae025e47a6545e0a2c5192de300924764"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void ost::MapTable::addFree </td> <td>(</td> <td class="paramtype"><a class="el" href="classost_1_1_map_object.html">MapObject</a> * </td> <td class="paramname"><em>obj</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Add an object to the managed free list. </p> <p>Some <a class="el" href="classost_1_1_map_object.html" title="The MapObject is a base class which can be used to make a derived class operate on a MapTable...">MapObject</a>'s may override delete operator to detach and do this.</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">object</td><td>to add. </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="a2ae4402514b29270220847071d2a40a6"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void ost::MapTable::addObject </td> <td>(</td> <td class="paramtype"><a class="el" href="classost_1_1_map_object.html">MapObject</a> & </td> <td class="paramname"><em>obj</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Map an object to our table. </p> <p>If it is in another table already, it is removed there first.</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">object</td><td>to map. </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="a4603e784aa64184f4590b1b33eea6c60"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">void ost::MapTable::cleanup </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">protected</span></span> </td> </tr> </table> </div><div class="memdoc"> </div> </div> <a class="anchor" id="ade3e0591711bdf8b9fe36f10eac697c3"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">void* ost::MapTable::getEnd </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Get table's end, useful for cycle control; it is returned as void * for easy re-cast. </p> <dl class="section return"><dt>Returns</dt><dd>pointer to found object or NULL. </dd></dl> </div> </div> <a class="anchor" id="a7e3014a9f52b283878fab8f5803508dc"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void* ost::MapTable::getFirst </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Get the first element into table, it is returned as void * for easy re-cast. </p> <dl class="section return"><dt>Returns</dt><dd>pointer to found object or NULL. </dd></dl> </div> </div> <a class="anchor" id="af2e352093e48831f567e3b0b91f4d9bb"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void* ost::MapTable::getFree </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Get next object from managed free list. </p> <p>This returns as a void so it can be recast into the actual type being used in derived <a class="el" href="classost_1_1_map_object.html" title="The MapObject is a base class which can be used to make a derived class operate on a MapTable...">MapObject</a>'s. A derived version of <a class="el" href="classost_1_1_map_table.html" title="A map table allows for entities to be mapped (hash index) onto it. ">MapTable</a> may well offer an explicit type version of this. Some derived <a class="el" href="classost_1_1_map_object.html" title="The MapObject is a base class which can be used to make a derived class operate on a MapTable...">MapObject</a>'s may override new to use managed list.</p> <dl class="section return"><dt>Returns</dt><dd>next object on free list. </dd></dl> </div> </div> <a class="anchor" id="a07c9740944b2fd846fa23585b75e3d9d"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">virtual unsigned ost::MapTable::getIndex </td> <td>(</td> <td class="paramtype">const char * </td> <td class="paramname"><em>id</em></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">virtual</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Get index value from id string. </p> <p>This function can be changed as needed to provide better collision avoidence for specific tables.</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">id</td><td>string </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>index slot in table. </dd></dl> </div> </div> <a class="anchor" id="aa20d872102265b9473988c82edb55d51"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void* ost::MapTable::getLast </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Get the last element into table, it is returned as void * for easy re-cast. </p> <dl class="section return"><dt>Returns</dt><dd>pointer to found object or NULL. </dd></dl> </div> </div> <a class="anchor" id="a1bdbde637f2fb0480b1ceb8ead4bccdb"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void* ost::MapTable::getObject </td> <td>(</td> <td class="paramtype">const char * </td> <td class="paramname"><em>id</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Lookup an object by id key. </p> <p>It is returned as void * for easy re-cast.</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">key</td><td>to find. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>pointer to found object or NULL. </dd></dl> </div> </div> <a class="anchor" id="aa8b1c538691c04ebe20bcbd37f93df6d"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">unsigned ost::MapTable::getRange </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Return range of this table. </p> <dl class="section return"><dt>Returns</dt><dd>table range. </dd></dl> </div> </div> <a class="anchor" id="a9cb0c62a29b659058fbbafef603204dd"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">unsigned ost::MapTable::getSize </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Return the number of object stored in this table. </p> <dl class="section return"><dt>Returns</dt><dd>table size. </dd></dl> </div> </div> <a class="anchor" id="a5cade237b6cbe186b00ad50f6561443d"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classost_1_1_map_table.html">MapTable</a>& ost::MapTable::operator+= </td> <td>(</td> <td class="paramtype"><a class="el" href="classost_1_1_map_object.html">MapObject</a> & </td> <td class="paramname"><em>obj</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>An operator to map an object to the table. </p> <dl class="section return"><dt>Returns</dt><dd>table being used. </dd></dl> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">object</td><td>being mapped. </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="ae6e0b700fc9cb734df0c301bbc36ab7f"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">virtual <a class="el" href="classost_1_1_map_table.html">MapTable</a>& ost::MapTable::operator-= </td> <td>(</td> <td class="paramtype"><a class="el" href="classost_1_1_map_object.html">MapObject</a> & </td> <td class="paramname"><em>obj</em></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">virtual</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>This operator is virtual in case it must also add the object to a managed free list. </p> <dl class="section return"><dt>Returns</dt><dd>current table. </dd></dl> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">object</td><td>entity to remove. </td></tr> </table> </dd> </dl> </div> </div> <h2 class="groupheader">Friends And Related Function Documentation</h2> <a class="anchor" id="a28cd428384a9c342d8e5fdadf7139dc0"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">friend class <a class="el" href="classost_1_1_map_index.html">MapIndex</a></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">friend</span></span> </td> </tr> </table> </div><div class="memdoc"> </div> </div> <a class="anchor" id="ad3a0f850a471fb5553eb77ee29b0af44"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">friend class <a class="el" href="classost_1_1_map_object.html">MapObject</a></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">friend</span></span> </td> </tr> </table> </div><div class="memdoc"> </div> </div> <h2 class="groupheader">Member Data Documentation</h2> <a class="anchor" id="aa22711b1f0ea9ccdc78bb1c1b45d3af2"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">unsigned ost::MapTable::count</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">protected</span></span> </td> </tr> </table> </div><div class="memdoc"> </div> </div> <a class="anchor" id="aa5ec0ac04b3d1b1d4e8af79f759bd87b"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classost_1_1_map_object.html">MapObject</a>** ost::MapTable::map</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">protected</span></span> </td> </tr> </table> </div><div class="memdoc"> </div> </div> <a class="anchor" id="ae45620bcf37da41ab3089710e4dbfd32"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">unsigned ost::MapTable::range</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">protected</span></span> </td> </tr> </table> </div><div class="memdoc"> </div> </div> <hr/>The documentation for this class was generated from the following file:<ul> <li><a class="el" href="object_8h_source.html">object.h</a></li> </ul> </div><!-- contents --> <!-- start footer part --> <hr class="footer"/><address class="footer"><small> Generated on Thu Oct 17 2013 23:24:57 for GNU CommonC++ by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/> </a> 1.8.5 </small></address> </body> </html>