|
- <!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"/>
- <title>json-c: linkhash.h File 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">json-c
-  <span id="projectnumber">0.11</span>
- </div>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- <!-- end header part -->
- <!-- Generated by Doxygen 1.8.2 -->
- <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="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
- </div><!-- top -->
- <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">linkhash.h File Reference</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:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structlh__entry.html">lh_entry</a></td></tr>
- <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structlh__table.html">lh_table</a></td></tr>
- <tr class="separator:"><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:a032f1bd115df254dda325437203ce5fb"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#a032f1bd115df254dda325437203ce5fb">LH_PRIME</a>   0x9e370001UL</td></tr>
- <tr class="separator:a032f1bd115df254dda325437203ce5fb"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a66b61772c29d85eb52b697e0b0dc0aaf"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#a66b61772c29d85eb52b697e0b0dc0aaf">LH_LOAD_FACTOR</a>   0.66</td></tr>
- <tr class="separator:a66b61772c29d85eb52b697e0b0dc0aaf"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a93fad7f8ae44575dc89c9567859972d2"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#a93fad7f8ae44575dc89c9567859972d2">LH_EMPTY</a>   (void*)-1</td></tr>
- <tr class="separator:a93fad7f8ae44575dc89c9567859972d2"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ac69428f2de0a6fb080b6fb373d506aa7"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#ac69428f2de0a6fb080b6fb373d506aa7">LH_FREED</a>   (void*)-2</td></tr>
- <tr class="separator:ac69428f2de0a6fb080b6fb373d506aa7"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ad7dd67da915065dce2c6f44cb03e2d82"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#ad7dd67da915065dce2c6f44cb03e2d82">lh_foreach</a>(table, entry)   for(entry = table->head; entry; entry = entry->next)</td></tr>
- <tr class="separator:ad7dd67da915065dce2c6f44cb03e2d82"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:abcbb0df08b4976d0649b826b6bacfca1"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#abcbb0df08b4976d0649b826b6bacfca1">lh_foreach_safe</a>(table, entry, tmp)   for(entry = table->head; entry && ((tmp = entry->next) || 1); entry = tmp)</td></tr>
- <tr class="separator:abcbb0df08b4976d0649b826b6bacfca1"><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:a671553d0ee3c2a123190ba0f8ed2b635"><td class="memItemLeft" align="right" valign="top">typedef void( </td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#a671553d0ee3c2a123190ba0f8ed2b635">lh_entry_free_fn</a> )(struct <a class="el" href="structlh__entry.html">lh_entry</a> *e)</td></tr>
- <tr class="separator:a671553d0ee3c2a123190ba0f8ed2b635"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a38bae27995dcfb6ee3fb109a9be229b2"><td class="memItemLeft" align="right" valign="top">typedef unsigned long( </td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#a38bae27995dcfb6ee3fb109a9be229b2">lh_hash_fn</a> )(const void *k)</td></tr>
- <tr class="separator:a38bae27995dcfb6ee3fb109a9be229b2"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a91fd85fc81b0c7c83c62f00e84729091"><td class="memItemLeft" align="right" valign="top">typedef int( </td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#a91fd85fc81b0c7c83c62f00e84729091">lh_equal_fn</a> )(const void *k1, const void *k2)</td></tr>
- <tr class="separator:a91fd85fc81b0c7c83c62f00e84729091"><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:a2e560f0d3e5a20f6b0bfa4049737db23"><td class="memItemLeft" align="right" valign="top">unsigned long </td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#a2e560f0d3e5a20f6b0bfa4049737db23">lh_ptr_hash</a> (const void *k)</td></tr>
- <tr class="separator:a2e560f0d3e5a20f6b0bfa4049737db23"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a6ce3cb97560072c40f5caeaba85f756a"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#a6ce3cb97560072c40f5caeaba85f756a">lh_ptr_equal</a> (const void *k1, const void *k2)</td></tr>
- <tr class="separator:a6ce3cb97560072c40f5caeaba85f756a"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a1fcf495b9c4ce169630cb31f638b8435"><td class="memItemLeft" align="right" valign="top">unsigned long </td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#a1fcf495b9c4ce169630cb31f638b8435">lh_char_hash</a> (const void *k)</td></tr>
- <tr class="separator:a1fcf495b9c4ce169630cb31f638b8435"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ae4e9f21fb1a556c7a50c6b7ea61f2079"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#ae4e9f21fb1a556c7a50c6b7ea61f2079">lh_char_equal</a> (const void *k1, const void *k2)</td></tr>
- <tr class="separator:ae4e9f21fb1a556c7a50c6b7ea61f2079"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ac3ba464ac43c083397b1f1d34f2ddf55"><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structlh__table.html">lh_table</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#ac3ba464ac43c083397b1f1d34f2ddf55">lh_table_new</a> (int size, const char *name, <a class="el" href="linkhash_8h.html#a671553d0ee3c2a123190ba0f8ed2b635">lh_entry_free_fn</a> *free_fn, <a class="el" href="linkhash_8h.html#a38bae27995dcfb6ee3fb109a9be229b2">lh_hash_fn</a> *hash_fn, <a class="el" href="linkhash_8h.html#a91fd85fc81b0c7c83c62f00e84729091">lh_equal_fn</a> *equal_fn)</td></tr>
- <tr class="separator:ac3ba464ac43c083397b1f1d34f2ddf55"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a0aaf11e11ee5b0925279a52eab04bc38"><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structlh__table.html">lh_table</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#a0aaf11e11ee5b0925279a52eab04bc38">lh_kchar_table_new</a> (int size, const char *name, <a class="el" href="linkhash_8h.html#a671553d0ee3c2a123190ba0f8ed2b635">lh_entry_free_fn</a> *free_fn)</td></tr>
- <tr class="separator:a0aaf11e11ee5b0925279a52eab04bc38"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a705513954267a16cc1d40a284a7c441e"><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structlh__table.html">lh_table</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#a705513954267a16cc1d40a284a7c441e">lh_kptr_table_new</a> (int size, const char *name, <a class="el" href="linkhash_8h.html#a671553d0ee3c2a123190ba0f8ed2b635">lh_entry_free_fn</a> *free_fn)</td></tr>
- <tr class="separator:a705513954267a16cc1d40a284a7c441e"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a81653acf740cf8c9fe672e6cd16df0cf"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#a81653acf740cf8c9fe672e6cd16df0cf">lh_table_free</a> (struct <a class="el" href="structlh__table.html">lh_table</a> *t)</td></tr>
- <tr class="separator:a81653acf740cf8c9fe672e6cd16df0cf"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a22b897763cc34a98c21c7fe82d151004"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#a22b897763cc34a98c21c7fe82d151004">lh_table_insert</a> (struct <a class="el" href="structlh__table.html">lh_table</a> *t, void *k, const void *v)</td></tr>
- <tr class="separator:a22b897763cc34a98c21c7fe82d151004"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ad3b6ca2d967a6c3021ee6c39e014a918"><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structlh__entry.html">lh_entry</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#ad3b6ca2d967a6c3021ee6c39e014a918">lh_table_lookup_entry</a> (struct <a class="el" href="structlh__table.html">lh_table</a> *t, const void *k)</td></tr>
- <tr class="separator:ad3b6ca2d967a6c3021ee6c39e014a918"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a49c27f18a174eaf126d1b7953df13cb1"><td class="memItemLeft" align="right" valign="top">const void * </td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#a49c27f18a174eaf126d1b7953df13cb1">lh_table_lookup</a> (struct <a class="el" href="structlh__table.html">lh_table</a> *t, const void *k)</td></tr>
- <tr class="separator:a49c27f18a174eaf126d1b7953df13cb1"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a81c270bb0dd9d5c8a3e7ae20bc4d67f3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="json__object_8h.html#a81f02022906fafc71eb9197049f07f73">json_bool</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#a81c270bb0dd9d5c8a3e7ae20bc4d67f3">lh_table_lookup_ex</a> (struct <a class="el" href="structlh__table.html">lh_table</a> *t, const void *k, void **v)</td></tr>
- <tr class="separator:a81c270bb0dd9d5c8a3e7ae20bc4d67f3"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ae5885a71c3457190fb1dc2d6e20dde3b"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#ae5885a71c3457190fb1dc2d6e20dde3b">lh_table_delete_entry</a> (struct <a class="el" href="structlh__table.html">lh_table</a> *t, struct <a class="el" href="structlh__entry.html">lh_entry</a> *e)</td></tr>
- <tr class="separator:ae5885a71c3457190fb1dc2d6e20dde3b"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a2fed2c78f70d229edb2d00775ffe593c"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#a2fed2c78f70d229edb2d00775ffe593c">lh_table_delete</a> (struct <a class="el" href="structlh__table.html">lh_table</a> *t, const void *k)</td></tr>
- <tr class="separator:a2fed2c78f70d229edb2d00775ffe593c"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ac9ba631c91fe80fb905f04c7cd526f2b"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#ac9ba631c91fe80fb905f04c7cd526f2b">lh_table_length</a> (struct <a class="el" href="structlh__table.html">lh_table</a> *t)</td></tr>
- <tr class="separator:ac9ba631c91fe80fb905f04c7cd526f2b"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a1294160fa0e80cee04cd745a401f43a4"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#a1294160fa0e80cee04cd745a401f43a4">lh_abort</a> (const char *msg,...)</td></tr>
- <tr class="separator:a1294160fa0e80cee04cd745a401f43a4"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a5322eccf3394af7dc1ebb22af8f8c562"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#a5322eccf3394af7dc1ebb22af8f8c562">lh_table_resize</a> (struct <a class="el" href="structlh__table.html">lh_table</a> *t, int new_size)</td></tr>
- <tr class="separator:a5322eccf3394af7dc1ebb22af8f8c562"><td class="memSeparator" colspan="2"> </td></tr>
- </table>
- <h2 class="groupheader">Macro Definition Documentation</h2>
- <a class="anchor" id="a93fad7f8ae44575dc89c9567859972d2"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define LH_EMPTY   (void*)-1</td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>sentinel pointer value for empty slots </p>
-
- </div>
- </div>
- <a class="anchor" id="ad7dd67da915065dce2c6f44cb03e2d82"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define lh_foreach</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">table, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">entry </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td>   for(entry = table->head; entry; entry = entry->next)</td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Convenience list iterator. </p>
-
- </div>
- </div>
- <a class="anchor" id="abcbb0df08b4976d0649b826b6bacfca1"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define lh_foreach_safe</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">table, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">entry, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">tmp </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td>   for(entry = table->head; entry && ((tmp = entry->next) || 1); entry = tmp)</td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>lh_foreach_safe allows calling of deletion routine while iterating. </p>
-
- </div>
- </div>
- <a class="anchor" id="ac69428f2de0a6fb080b6fb373d506aa7"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define LH_FREED   (void*)-2</td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>sentinel pointer value for freed slots </p>
-
- </div>
- </div>
- <a class="anchor" id="a66b61772c29d85eb52b697e0b0dc0aaf"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define LH_LOAD_FACTOR   0.66</td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>The fraction of filled hash buckets until an insert will cause the table to be resized. This can range from just above 0 up to 1.0. </p>
-
- </div>
- </div>
- <a class="anchor" id="a032f1bd115df254dda325437203ce5fb"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define LH_PRIME   0x9e370001UL</td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>golden prime used in hash functions </p>
-
- </div>
- </div>
- <h2 class="groupheader">Typedef Documentation</h2>
- <a class="anchor" id="a671553d0ee3c2a123190ba0f8ed2b635"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef void( lh_entry_free_fn)(struct <a class="el" href="structlh__entry.html">lh_entry</a> *e)</td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>callback function prototypes </p>
-
- </div>
- </div>
- <a class="anchor" id="a91fd85fc81b0c7c83c62f00e84729091"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef int( lh_equal_fn)(const void *k1, const void *k2)</td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>callback function prototypes </p>
-
- </div>
- </div>
- <a class="anchor" id="a38bae27995dcfb6ee3fb109a9be229b2"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef unsigned long( lh_hash_fn)(const void *k)</td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>callback function prototypes </p>
-
- </div>
- </div>
- <h2 class="groupheader">Function Documentation</h2>
- <a class="anchor" id="a1294160fa0e80cee04cd745a401f43a4"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void lh_abort </td>
- <td>(</td>
- <td class="paramtype">const char * </td>
- <td class="paramname"><em>msg</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname"><em>...</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </div><div class="memdoc">
-
- </div>
- </div>
- <a class="anchor" id="ae4e9f21fb1a556c7a50c6b7ea61f2079"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">int lh_char_equal </td>
- <td>(</td>
- <td class="paramtype">const void * </td>
- <td class="paramname"><em>k1</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const void * </td>
- <td class="paramname"><em>k2</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </div><div class="memdoc">
-
- </div>
- </div>
- <a class="anchor" id="a1fcf495b9c4ce169630cb31f638b8435"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">unsigned long lh_char_hash </td>
- <td>(</td>
- <td class="paramtype">const void * </td>
- <td class="paramname"><em>k</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </div><div class="memdoc">
-
- </div>
- </div>
- <a class="anchor" id="a0aaf11e11ee5b0925279a52eab04bc38"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">struct <a class="el" href="structlh__table.html">lh_table</a>* lh_kchar_table_new </td>
- <td>(</td>
- <td class="paramtype">int </td>
- <td class="paramname"><em>size</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const char * </td>
- <td class="paramname"><em>name</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="linkhash_8h.html#a671553d0ee3c2a123190ba0f8ed2b635">lh_entry_free_fn</a> * </td>
- <td class="paramname"><em>free_fn</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">read</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Convenience function to create a new linkhash table with char keys. </p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">size</td><td>initial table size. </td></tr>
- <tr><td class="paramname">name</td><td>table name. </td></tr>
- <tr><td class="paramname">free_fn</td><td>callback function used to free memory for entries. </td></tr>
- </table>
- </dd>
- </dl>
- <dl class="section return"><dt>Returns</dt><dd>a pointer onto the linkhash table. </dd></dl>
-
- </div>
- </div>
- <a class="anchor" id="a705513954267a16cc1d40a284a7c441e"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">struct <a class="el" href="structlh__table.html">lh_table</a>* lh_kptr_table_new </td>
- <td>(</td>
- <td class="paramtype">int </td>
- <td class="paramname"><em>size</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const char * </td>
- <td class="paramname"><em>name</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="linkhash_8h.html#a671553d0ee3c2a123190ba0f8ed2b635">lh_entry_free_fn</a> * </td>
- <td class="paramname"><em>free_fn</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">read</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Convenience function to create a new linkhash table with ptr keys. </p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">size</td><td>initial table size. </td></tr>
- <tr><td class="paramname">name</td><td>table name. </td></tr>
- <tr><td class="paramname">free_fn</td><td>callback function used to free memory for entries. </td></tr>
- </table>
- </dd>
- </dl>
- <dl class="section return"><dt>Returns</dt><dd>a pointer onto the linkhash table. </dd></dl>
-
- </div>
- </div>
- <a class="anchor" id="a6ce3cb97560072c40f5caeaba85f756a"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">int lh_ptr_equal </td>
- <td>(</td>
- <td class="paramtype">const void * </td>
- <td class="paramname"><em>k1</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const void * </td>
- <td class="paramname"><em>k2</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </div><div class="memdoc">
-
- </div>
- </div>
- <a class="anchor" id="a2e560f0d3e5a20f6b0bfa4049737db23"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">unsigned long lh_ptr_hash </td>
- <td>(</td>
- <td class="paramtype">const void * </td>
- <td class="paramname"><em>k</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Pre-defined hash and equality functions </p>
-
- </div>
- </div>
- <a class="anchor" id="a2fed2c78f70d229edb2d00775ffe593c"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">int lh_table_delete </td>
- <td>(</td>
- <td class="paramtype">struct <a class="el" href="structlh__table.html">lh_table</a> * </td>
- <td class="paramname"><em>t</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const void * </td>
- <td class="paramname"><em>k</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Delete a record from the table. If a callback free function is provided then it is called for the for the item being deleted. </p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">t</td><td>the table to delete from. </td></tr>
- <tr><td class="paramname">k</td><td>a pointer to the key to delete. </td></tr>
- </table>
- </dd>
- </dl>
- <dl class="section return"><dt>Returns</dt><dd>0 if the item was deleted. </dd>
- <dd>
- -1 if it was not found. </dd></dl>
-
- </div>
- </div>
- <a class="anchor" id="ae5885a71c3457190fb1dc2d6e20dde3b"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">int lh_table_delete_entry </td>
- <td>(</td>
- <td class="paramtype">struct <a class="el" href="structlh__table.html">lh_table</a> * </td>
- <td class="paramname"><em>t</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">struct <a class="el" href="structlh__entry.html">lh_entry</a> * </td>
- <td class="paramname"><em>e</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Delete a record from the table. If a callback free function is provided then it is called for the for the item being deleted. </p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">t</td><td>the table to delete from. </td></tr>
- <tr><td class="paramname">e</td><td>a pointer to the entry to delete. </td></tr>
- </table>
- </dd>
- </dl>
- <dl class="section return"><dt>Returns</dt><dd>0 if the item was deleted. </dd>
- <dd>
- -1 if it was not found. </dd></dl>
-
- </div>
- </div>
- <a class="anchor" id="a81653acf740cf8c9fe672e6cd16df0cf"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void lh_table_free </td>
- <td>(</td>
- <td class="paramtype">struct <a class="el" href="structlh__table.html">lh_table</a> * </td>
- <td class="paramname"><em>t</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Free a linkhash table. If a callback free function is provided then it is called for all entries in the table. </p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">t</td><td>table to free. </td></tr>
- </table>
- </dd>
- </dl>
-
- </div>
- </div>
- <a class="anchor" id="a22b897763cc34a98c21c7fe82d151004"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">int lh_table_insert </td>
- <td>(</td>
- <td class="paramtype">struct <a class="el" href="structlh__table.html">lh_table</a> * </td>
- <td class="paramname"><em>t</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">void * </td>
- <td class="paramname"><em>k</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const void * </td>
- <td class="paramname"><em>v</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Insert a record into the table. </p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">t</td><td>the table to insert into. </td></tr>
- <tr><td class="paramname">k</td><td>a pointer to the key to insert. </td></tr>
- <tr><td class="paramname">v</td><td>a pointer to the value to insert. </td></tr>
- </table>
- </dd>
- </dl>
-
- </div>
- </div>
- <a class="anchor" id="ac9ba631c91fe80fb905f04c7cd526f2b"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">int lh_table_length </td>
- <td>(</td>
- <td class="paramtype">struct <a class="el" href="structlh__table.html">lh_table</a> * </td>
- <td class="paramname"><em>t</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </div><div class="memdoc">
-
- </div>
- </div>
- <a class="anchor" id="a49c27f18a174eaf126d1b7953df13cb1"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">const void* lh_table_lookup </td>
- <td>(</td>
- <td class="paramtype">struct <a class="el" href="structlh__table.html">lh_table</a> * </td>
- <td class="paramname"><em>t</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const void * </td>
- <td class="paramname"><em>k</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Lookup a record into the table </p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">t</td><td>the table to lookup </td></tr>
- <tr><td class="paramname">k</td><td>a pointer to the key to lookup </td></tr>
- </table>
- </dd>
- </dl>
- <dl class="section return"><dt>Returns</dt><dd>a pointer to the found value or NULL if it does not exist. </dd></dl>
- <dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000002">Deprecated:</a></b></dt><dd>Use lh_table_lookup_ex instead. </dd></dl>
-
- </div>
- </div>
- <a class="anchor" id="ad3b6ca2d967a6c3021ee6c39e014a918"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">struct <a class="el" href="structlh__entry.html">lh_entry</a>* lh_table_lookup_entry </td>
- <td>(</td>
- <td class="paramtype">struct <a class="el" href="structlh__table.html">lh_table</a> * </td>
- <td class="paramname"><em>t</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const void * </td>
- <td class="paramname"><em>k</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">read</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Lookup a record into the table. </p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">t</td><td>the table to lookup </td></tr>
- <tr><td class="paramname">k</td><td>a pointer to the key to lookup </td></tr>
- </table>
- </dd>
- </dl>
- <dl class="section return"><dt>Returns</dt><dd>a pointer to the record structure of the value or NULL if it does not exist. </dd></dl>
-
- </div>
- </div>
- <a class="anchor" id="a81c270bb0dd9d5c8a3e7ae20bc4d67f3"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="json__object_8h.html#a81f02022906fafc71eb9197049f07f73">json_bool</a> lh_table_lookup_ex </td>
- <td>(</td>
- <td class="paramtype">struct <a class="el" href="structlh__table.html">lh_table</a> * </td>
- <td class="paramname"><em>t</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const void * </td>
- <td class="paramname"><em>k</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">void ** </td>
- <td class="paramname"><em>v</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Lookup a record in the table </p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">t</td><td>the table to lookup </td></tr>
- <tr><td class="paramname">k</td><td>a pointer to the key to lookup </td></tr>
- <tr><td class="paramname">v</td><td>a pointer to a where to store the found value (set to NULL if it doesn't exist). </td></tr>
- </table>
- </dd>
- </dl>
- <dl class="section return"><dt>Returns</dt><dd>whether or not the key was found </dd></dl>
-
- </div>
- </div>
- <a class="anchor" id="ac3ba464ac43c083397b1f1d34f2ddf55"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">struct <a class="el" href="structlh__table.html">lh_table</a>* lh_table_new </td>
- <td>(</td>
- <td class="paramtype">int </td>
- <td class="paramname"><em>size</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const char * </td>
- <td class="paramname"><em>name</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="linkhash_8h.html#a671553d0ee3c2a123190ba0f8ed2b635">lh_entry_free_fn</a> * </td>
- <td class="paramname"><em>free_fn</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="linkhash_8h.html#a38bae27995dcfb6ee3fb109a9be229b2">lh_hash_fn</a> * </td>
- <td class="paramname"><em>hash_fn</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="linkhash_8h.html#a91fd85fc81b0c7c83c62f00e84729091">lh_equal_fn</a> * </td>
- <td class="paramname"><em>equal_fn</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">read</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Create a new linkhash table. </p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">size</td><td>initial table size. The table is automatically resized although this incurs a performance penalty. </td></tr>
- <tr><td class="paramname">name</td><td>the table name. </td></tr>
- <tr><td class="paramname">free_fn</td><td>callback function used to free memory for entries when lh_table_free or lh_table_delete is called. If NULL is provided, then memory for keys and values must be freed by the caller. </td></tr>
- <tr><td class="paramname">hash_fn</td><td>function used to hash keys. 2 standard ones are defined: lh_ptr_hash and lh_char_hash for hashing pointer values and C strings respectively. </td></tr>
- <tr><td class="paramname">equal_fn</td><td>comparison function to compare keys. 2 standard ones defined: lh_ptr_hash and lh_char_hash for comparing pointer values and C strings respectively. </td></tr>
- </table>
- </dd>
- </dl>
- <dl class="section return"><dt>Returns</dt><dd>a pointer onto the linkhash table. </dd></dl>
-
- </div>
- </div>
- <a class="anchor" id="a5322eccf3394af7dc1ebb22af8f8c562"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void lh_table_resize </td>
- <td>(</td>
- <td class="paramtype">struct <a class="el" href="structlh__table.html">lh_table</a> * </td>
- <td class="paramname"><em>t</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">int </td>
- <td class="paramname"><em>new_size</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </div><div class="memdoc">
-
- </div>
- </div>
- </div><!-- contents -->
- <!-- start footer part -->
- <hr class="footer"/><address class="footer"><small>
- Generated on Sun Mar 31 2013 02:28:33 for json-c by  <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/>
- </a> 1.8.2
- </small></address>
- </body>
- </html>
|