|
Server : Apache/2.2.17 (Unix) mod_ssl/2.2.17 OpenSSL/0.9.8e-fips-rhel5 DAV/2 PHP/5.2.17 System : Linux localhost 2.6.18-419.el5 #1 SMP Fri Feb 24 22:47:42 UTC 2017 x86_64 User : nobody ( 99) PHP Version : 5.2.17 Disable Function : NONE Directory : /usr/share/devhelp/books/dbus/api/ |
Upload File : |
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>D-Bus: Hash table</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main Page</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><a href="pages.html"><span>Related Pages</span></a></li>
</ul></div>
<h1>Hash table<br>
<small>
[<a class="el" href="group__DBusInternals.html">D-Bus secret internal implementation details</a>]</small>
</h1><a class="el" href="structDBusHashTable.html">DBusHashTable</a> data structure.
<a href="#_details">More...</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Data Structures</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structDBusHashIter.html">DBusHashIter</a></td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Hash iterator object. <a href="structDBusHashIter.html#_details">More...</a><br></td></tr>
<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g956840f583977db6e1a1481c60cd3d78"></a><!-- doxytag: member="DBusHashTable::KeyCompareFunc" ref="g956840f583977db6e1a1481c60cd3d78" args="(const void *key_a, const void *key_b)" -->
typedef int(*) </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusHashTable.html#g956840f583977db6e1a1481c60cd3d78">KeyCompareFunc</a> (const void *key_a, const void *key_b)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Key comparison function. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ge11437504d2f1ec62272264214968988"></a><!-- doxytag: member="DBusHashTable::DBusHashTable" ref="ge11437504d2f1ec62272264214968988" args="" -->
typedef <a class="el" href="structDBusHashTable.html">DBusHashTable</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusHashTable.html#ge11437504d2f1ec62272264214968988">DBusHashTable</a></td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Public opaque hash table object. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ge8ee983d1bea5d9c49dab9714bc91a68"></a><!-- doxytag: member="DBusHashTable::DBusHashIter" ref="ge8ee983d1bea5d9c49dab9714bc91a68" args="" -->
typedef <a class="el" href="structDBusHashIter.html">DBusHashIter</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusHashTable.html#ge8ee983d1bea5d9c49dab9714bc91a68">DBusHashIter</a></td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Public opaque hash table iterator object. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g175dc6ab841ed32bb6acf6e4c0df36a8"></a><!-- doxytag: member="DBusHashTable::DBusPreallocatedHash" ref="g175dc6ab841ed32bb6acf6e4c0df36a8" args="" -->
typedef <a class="el" href="group__DBusHashTable.html#g175dc6ab841ed32bb6acf6e4c0df36a8">DBusPreallocatedHash</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusHashTable.html#g175dc6ab841ed32bb6acf6e4c0df36a8">DBusPreallocatedHash</a></td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">A preallocated hash entry. <br></td></tr>
<tr><td colspan="2"><br><h2>Enumerations</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">enum </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusHashTable.html#gb0ab9767ffa5b6720a13b3d741630852">DBusHashType</a> { <br>
<a class="el" href="group__DBusHashTable.html#ggb0ab9767ffa5b6720a13b3d741630852481fd0166d28da725b3e97f15192434e">DBUS_HASH_STRING</a>,
<a class="el" href="group__DBusHashTable.html#ggb0ab9767ffa5b6720a13b3d741630852c750b865c7994a3dd6d1028b7ae76877">DBUS_HASH_TWO_STRINGS</a>,
<a class="el" href="group__DBusHashTable.html#ggb0ab9767ffa5b6720a13b3d74163085226446bd9fbb15c6c381b35a810207141">DBUS_HASH_INT</a>,
<a class="el" href="group__DBusHashTable.html#ggb0ab9767ffa5b6720a13b3d74163085238604db762cd0ed315106a95a6b50c4d">DBUS_HASH_POINTER</a>,
<br>
<a class="el" href="group__DBusHashTable.html#ggb0ab9767ffa5b6720a13b3d741630852f9b5230298187cd6953dbcac824b2e4c">DBUS_HASH_ULONG</a>
<br>
}</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Indicates the type of a key in the hash table. <a href="group__DBusHashTable.html#gb0ab9767ffa5b6720a13b3d741630852">More...</a><br></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structDBusHashTable.html">DBusHashTable</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusHashTable.html#gc8e434348a354b9606d4c50c127a5eb4">_dbus_hash_table_new</a> (<a class="el" href="group__DBusHashTable.html#gb0ab9767ffa5b6720a13b3d741630852">DBusHashType</a> type, <a class="el" href="group__DBusMemory.html#g8792ec2b2b8626ca28022faf51ec415a">DBusFreeFunction</a> key_free_function, <a class="el" href="group__DBusMemory.html#g8792ec2b2b8626ca28022faf51ec415a">DBusFreeFunction</a> value_free_function)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Constructs a new hash table. <a href="#gc8e434348a354b9606d4c50c127a5eb4"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structDBusHashTable.html">DBusHashTable</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusHashTable.html#g4ad4622378885e5d911c26956e174a45">_dbus_hash_table_ref</a> (<a class="el" href="structDBusHashTable.html">DBusHashTable</a> *table)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Increments the reference count for a hash table. <a href="#g4ad4622378885e5d911c26956e174a45"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusHashTable.html#g96b777e00764b44e0f3216fd8478f5a9">_dbus_hash_table_unref</a> (<a class="el" href="structDBusHashTable.html">DBusHashTable</a> *table)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Decrements the reference count for a hash table, freeing the hash table if the count reaches zero. <a href="#g96b777e00764b44e0f3216fd8478f5a9"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusHashTable.html#gd169f3790ca67f8a0adafcdc88ef7188">_dbus_hash_table_remove_all</a> (<a class="el" href="structDBusHashTable.html">DBusHashTable</a> *table)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Removed all entries from a hash table. <a href="#gd169f3790ca67f8a0adafcdc88ef7188"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusHashTable.html#g1b0e6df8a8617ef0f8f25adfba3acc4c">_dbus_hash_iter_init</a> (<a class="el" href="structDBusHashTable.html">DBusHashTable</a> *table, <a class="el" href="structDBusHashIter.html">DBusHashIter</a> *iter)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Initializes a hash table iterator. <a href="#g1b0e6df8a8617ef0f8f25adfba3acc4c"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusHashTable.html#g723e61fcc91ca673e90ff872c07ea19c">_dbus_hash_iter_next</a> (<a class="el" href="structDBusHashIter.html">DBusHashIter</a> *iter)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Move the hash iterator forward one step, to the next hash entry. <a href="#g723e61fcc91ca673e90ff872c07ea19c"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusHashTable.html#g0ef12d773a546f070cff91cbf1e8d16e">_dbus_hash_iter_remove_entry</a> (<a class="el" href="structDBusHashIter.html">DBusHashIter</a> *iter)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Removes the current entry from the hash table. <a href="#g0ef12d773a546f070cff91cbf1e8d16e"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusHashTable.html#g34bf277ee37f919bd00516b5ae4e12b5">_dbus_hash_iter_get_value</a> (<a class="el" href="structDBusHashIter.html">DBusHashIter</a> *iter)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Gets the value of the current entry. <a href="#g34bf277ee37f919bd00516b5ae4e12b5"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusHashTable.html#g24193343c0948019d4a302fc18bfd5d9">_dbus_hash_iter_set_value</a> (<a class="el" href="structDBusHashIter.html">DBusHashIter</a> *iter, void *value)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the value of the current entry. <a href="#g24193343c0948019d4a302fc18bfd5d9"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusHashTable.html#g7a1b9fd35f9f7bdd86f9d71a6379053f">_dbus_hash_iter_get_int_key</a> (<a class="el" href="structDBusHashIter.html">DBusHashIter</a> *iter)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Gets the key for the current entry. <a href="#g7a1b9fd35f9f7bdd86f9d71a6379053f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned long </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusHashTable.html#g250914a3eab66ad3de0eb2dc11698931">_dbus_hash_iter_get_ulong_key</a> (<a class="el" href="structDBusHashIter.html">DBusHashIter</a> *iter)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Gets the key for the current entry. <a href="#g250914a3eab66ad3de0eb2dc11698931"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusHashTable.html#ga0cff082174b1ab0380902ce4ae43d08">_dbus_hash_iter_get_string_key</a> (<a class="el" href="structDBusHashIter.html">DBusHashIter</a> *iter)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Gets the key for the current entry. <a href="#ga0cff082174b1ab0380902ce4ae43d08"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusHashTable.html#gb156c35d6dd9ff6e408a835db28323fb">_dbus_hash_iter_lookup</a> (<a class="el" href="structDBusHashTable.html">DBusHashTable</a> *table, void *key, <a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> create_if_not_found, <a class="el" href="structDBusHashIter.html">DBusHashIter</a> *iter)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">A low-level but efficient interface for manipulating the hash table. <a href="#gb156c35d6dd9ff6e408a835db28323fb"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusHashTable.html#gd51eb3fe682721dd4f6a920ca87cb730">_dbus_hash_table_lookup_string</a> (<a class="el" href="structDBusHashTable.html">DBusHashTable</a> *table, const char *key)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Looks up the value for a given string in a hash table of type <a class="el" href="group__DBusHashTable.html#ggb0ab9767ffa5b6720a13b3d741630852481fd0166d28da725b3e97f15192434e">DBUS_HASH_STRING</a>. <a href="#gd51eb3fe682721dd4f6a920ca87cb730"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusHashTable.html#g36ff49c4c35599e6fcdadc7f6805c49e">_dbus_hash_table_lookup_int</a> (<a class="el" href="structDBusHashTable.html">DBusHashTable</a> *table, int key)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Looks up the value for a given integer in a hash table of type <a class="el" href="group__DBusHashTable.html#ggb0ab9767ffa5b6720a13b3d74163085226446bd9fbb15c6c381b35a810207141">DBUS_HASH_INT</a>. <a href="#g36ff49c4c35599e6fcdadc7f6805c49e"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusHashTable.html#g5d9caa38b663955ee0c4766f66e4e317">_dbus_hash_table_lookup_ulong</a> (<a class="el" href="structDBusHashTable.html">DBusHashTable</a> *table, unsigned long key)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Looks up the value for a given integer in a hash table of type <a class="el" href="group__DBusHashTable.html#ggb0ab9767ffa5b6720a13b3d741630852f9b5230298187cd6953dbcac824b2e4c">DBUS_HASH_ULONG</a>. <a href="#g5d9caa38b663955ee0c4766f66e4e317"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusHashTable.html#g388d50ce1a07bf0790b9f2ecdb08a396">_dbus_hash_table_remove_string</a> (<a class="el" href="structDBusHashTable.html">DBusHashTable</a> *table, const char *key)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Removes the hash entry for the given key. <a href="#g388d50ce1a07bf0790b9f2ecdb08a396"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusHashTable.html#gcdebe75bd692605a69dc73c15e0eefd0">_dbus_hash_table_remove_int</a> (<a class="el" href="structDBusHashTable.html">DBusHashTable</a> *table, int key)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Removes the hash entry for the given key. <a href="#gcdebe75bd692605a69dc73c15e0eefd0"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusHashTable.html#g2211f0b52ae08e195186b7d438913b11">_dbus_hash_table_remove_ulong</a> (<a class="el" href="structDBusHashTable.html">DBusHashTable</a> *table, unsigned long key)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Removes the hash entry for the given key. <a href="#g2211f0b52ae08e195186b7d438913b11"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusHashTable.html#g43e98a91a11952824c544330e19f6c22">_dbus_hash_table_insert_string</a> (<a class="el" href="structDBusHashTable.html">DBusHashTable</a> *table, char *key, void *value)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Creates a hash entry with the given key and value. <a href="#g43e98a91a11952824c544330e19f6c22"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusHashTable.html#gca20a83f3214db08fa34df2c49c8edd5">_dbus_hash_table_insert_int</a> (<a class="el" href="structDBusHashTable.html">DBusHashTable</a> *table, int key, void *value)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Creates a hash entry with the given key and value. <a href="#gca20a83f3214db08fa34df2c49c8edd5"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusHashTable.html#gf40df7d2c9b05a67ac8c80d9ed88175c">_dbus_hash_table_insert_ulong</a> (<a class="el" href="structDBusHashTable.html">DBusHashTable</a> *table, unsigned long key, void *value)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Creates a hash entry with the given key and value. <a href="#gf40df7d2c9b05a67ac8c80d9ed88175c"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusHashTable.html#g175dc6ab841ed32bb6acf6e4c0df36a8">DBusPreallocatedHash</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusHashTable.html#g7c2fed5599678e550af10eaa7fd5b1d1">_dbus_hash_table_preallocate_entry</a> (<a class="el" href="structDBusHashTable.html">DBusHashTable</a> *table)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Preallocate an opaque data blob that allows us to insert into the hash table at a later time without allocating any memory. <a href="#g7c2fed5599678e550af10eaa7fd5b1d1"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusHashTable.html#g159dfec03d53e6e2ff485fc83aed2552">_dbus_hash_table_free_preallocated_entry</a> (<a class="el" href="structDBusHashTable.html">DBusHashTable</a> *table, <a class="el" href="group__DBusHashTable.html#g175dc6ab841ed32bb6acf6e4c0df36a8">DBusPreallocatedHash</a> *preallocated)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Frees an opaque DBusPreallocatedHash that was *not* used in order to insert into the hash table. <a href="#g159dfec03d53e6e2ff485fc83aed2552"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusHashTable.html#g770a9b786a9594350165b7224bd173ee">_dbus_hash_table_insert_string_preallocated</a> (<a class="el" href="structDBusHashTable.html">DBusHashTable</a> *table, <a class="el" href="group__DBusHashTable.html#g175dc6ab841ed32bb6acf6e4c0df36a8">DBusPreallocatedHash</a> *preallocated, char *key, void *value)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Inserts a string-keyed entry into the hash table, using a preallocated data block from <a class="el" href="group__DBusHashTable.html#g7c2fed5599678e550af10eaa7fd5b1d1">_dbus_hash_table_preallocate_entry()</a>. <a href="#g770a9b786a9594350165b7224bd173ee"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusHashTable.html#gd48297fc27442c19a7c4bd4d1ef9ef77">_dbus_hash_table_get_n_entries</a> (<a class="el" href="structDBusHashTable.html">DBusHashTable</a> *table)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Gets the number of hash entries in a hash table. <a href="#gd48297fc27442c19a7c4bd4d1ef9ef77"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga8cddbb6fa49d8cd780ff79e64336265"></a><!-- doxytag: member="DBusHashTable::_dbus_hash_iter_get_two_strings_key" ref="ga8cddbb6fa49d8cd780ff79e64336265" args="(DBusHashIter *iter)" -->
const char * </td><td class="memItemRight" valign="bottom"><b>_dbus_hash_iter_get_two_strings_key</b> (<a class="el" href="structDBusHashIter.html">DBusHashIter</a> *iter)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g71c0f0de96e29aa33aa8b8a8c6b74e49"></a><!-- doxytag: member="DBusHashTable::_dbus_hash_table_lookup_two_strings" ref="g71c0f0de96e29aa33aa8b8a8c6b74e49" args="(DBusHashTable *table, const char *key)" -->
void * </td><td class="memItemRight" valign="bottom"><b>_dbus_hash_table_lookup_two_strings</b> (<a class="el" href="structDBusHashTable.html">DBusHashTable</a> *table, const char *key)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g3e325e03b4f2bb75b0a86c2d85088502"></a><!-- doxytag: member="DBusHashTable::_dbus_hash_table_lookup_pointer" ref="g3e325e03b4f2bb75b0a86c2d85088502" args="(DBusHashTable *table, void *key)" -->
void * </td><td class="memItemRight" valign="bottom"><b>_dbus_hash_table_lookup_pointer</b> (<a class="el" href="structDBusHashTable.html">DBusHashTable</a> *table, void *key)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g9f8b742611a038583b6414b0665a9da0"></a><!-- doxytag: member="DBusHashTable::_dbus_hash_table_remove_two_strings" ref="g9f8b742611a038583b6414b0665a9da0" args="(DBusHashTable *table, const char *key)" -->
<a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><b>_dbus_hash_table_remove_two_strings</b> (<a class="el" href="structDBusHashTable.html">DBusHashTable</a> *table, const char *key)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g0eaaac85c97f6dfa662ec7198e0a24cc"></a><!-- doxytag: member="DBusHashTable::_dbus_hash_table_remove_pointer" ref="g0eaaac85c97f6dfa662ec7198e0a24cc" args="(DBusHashTable *table, void *key)" -->
<a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><b>_dbus_hash_table_remove_pointer</b> (<a class="el" href="structDBusHashTable.html">DBusHashTable</a> *table, void *key)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g57f37dc42e11f689935e7a7c176bfc64"></a><!-- doxytag: member="DBusHashTable::_dbus_hash_table_insert_two_strings" ref="g57f37dc42e11f689935e7a7c176bfc64" args="(DBusHashTable *table, char *key, void *value)" -->
<a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><b>_dbus_hash_table_insert_two_strings</b> (<a class="el" href="structDBusHashTable.html">DBusHashTable</a> *table, char *key, void *value)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gb5d4b2b22c5bfef7f717c4e0b7d77f0a"></a><!-- doxytag: member="DBusHashTable::_dbus_hash_table_insert_pointer" ref="gb5d4b2b22c5bfef7f717c4e0b7d77f0a" args="(DBusHashTable *table, void *key, void *value)" -->
<a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><b>_dbus_hash_table_insert_pointer</b> (<a class="el" href="structDBusHashTable.html">DBusHashTable</a> *table, void *key, void *value)</td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
<a class="el" href="structDBusHashTable.html">DBusHashTable</a> data structure.
<p>
Types and functions related to <a class="el" href="structDBusHashTable.html">DBusHashTable</a>. <hr><h2>Enumeration Type Documentation</h2>
<a class="anchor" name="gb0ab9767ffa5b6720a13b3d741630852"></a><!-- doxytag: member="dbus-hash.h::DBusHashType" ref="gb0ab9767ffa5b6720a13b3d741630852" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group__DBusHashTable.html#gb0ab9767ffa5b6720a13b3d741630852">DBusHashType</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Indicates the type of a key in the hash table.
<p>
<dl compact><dt><b>Enumerator: </b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" name="ggb0ab9767ffa5b6720a13b3d741630852481fd0166d28da725b3e97f15192434e"></a><!-- doxytag: member="DBUS_HASH_STRING" ref="ggb0ab9767ffa5b6720a13b3d741630852481fd0166d28da725b3e97f15192434e" args="" -->DBUS_HASH_STRING</em> </td><td>
Hash keys are strings. </td></tr>
<tr><td valign="top"><em><a class="anchor" name="ggb0ab9767ffa5b6720a13b3d741630852c750b865c7994a3dd6d1028b7ae76877"></a><!-- doxytag: member="DBUS_HASH_TWO_STRINGS" ref="ggb0ab9767ffa5b6720a13b3d741630852c750b865c7994a3dd6d1028b7ae76877" args="" -->DBUS_HASH_TWO_STRINGS</em> </td><td>
Hash key is two strings in one memory block, i.e.
<p>
foo\0bar\0 </td></tr>
<tr><td valign="top"><em><a class="anchor" name="ggb0ab9767ffa5b6720a13b3d74163085226446bd9fbb15c6c381b35a810207141"></a><!-- doxytag: member="DBUS_HASH_INT" ref="ggb0ab9767ffa5b6720a13b3d74163085226446bd9fbb15c6c381b35a810207141" args="" -->DBUS_HASH_INT</em> </td><td>
Hash keys are integers. </td></tr>
<tr><td valign="top"><em><a class="anchor" name="ggb0ab9767ffa5b6720a13b3d74163085238604db762cd0ed315106a95a6b50c4d"></a><!-- doxytag: member="DBUS_HASH_POINTER" ref="ggb0ab9767ffa5b6720a13b3d74163085238604db762cd0ed315106a95a6b50c4d" args="" -->DBUS_HASH_POINTER</em> </td><td>
Hash keys are pointers. </td></tr>
<tr><td valign="top"><em><a class="anchor" name="ggb0ab9767ffa5b6720a13b3d741630852f9b5230298187cd6953dbcac824b2e4c"></a><!-- doxytag: member="DBUS_HASH_ULONG" ref="ggb0ab9767ffa5b6720a13b3d741630852f9b5230298187cd6953dbcac824b2e4c" args="" -->DBUS_HASH_ULONG</em> </td><td>
Hash keys are unsigned long. </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-hash_8h-source.html#l00058">58</a> of file <a class="el" href="dbus-hash_8h-source.html">dbus-hash.h</a>.
</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="g7a1b9fd35f9f7bdd86f9d71a6379053f"></a><!-- doxytag: member="dbus-hash.c::_dbus_hash_iter_get_int_key" ref="g7a1b9fd35f9f7bdd86f9d71a6379053f" args="(DBusHashIter *iter)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int _dbus_hash_iter_get_int_key </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusHashIter.html">DBusHashIter</a> * </td>
<td class="paramname"> <em>iter</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Gets the key for the current entry.
<p>
Only works for hash tables of type <a class="el" href="group__DBusHashTable.html#ggb0ab9767ffa5b6720a13b3d74163085226446bd9fbb15c6c381b35a810207141">DBUS_HASH_INT</a>.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>iter</em> </td><td>the hash table iterator. </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-hash_8c-source.html#l00672">672</a> of file <a class="el" href="dbus-hash_8c-source.html">dbus-hash.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-internals_8h-source.html#l00156">_DBUS_POINTER_TO_INT</a>, <a class="el" href="dbus-hash_8c-source.html#l00218">DBusRealHashIter::entry</a>, <a class="el" href="dbus-hash_8c-source.html#l00148">DBusHashEntry::key</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="dbus-hash_8c-source.html#l00213">DBusRealHashIter::table</a>.
</div>
</div><p>
<a class="anchor" name="ga0cff082174b1ab0380902ce4ae43d08"></a><!-- doxytag: member="dbus-hash.c::_dbus_hash_iter_get_string_key" ref="ga0cff082174b1ab0380902ce4ae43d08" args="(DBusHashIter *iter)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const char * _dbus_hash_iter_get_string_key </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusHashIter.html">DBusHashIter</a> * </td>
<td class="paramname"> <em>iter</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Gets the key for the current entry.
<p>
Only works for hash tables of type <a class="el" href="group__DBusHashTable.html#ggb0ab9767ffa5b6720a13b3d741630852481fd0166d28da725b3e97f15192434e">DBUS_HASH_STRING</a> <dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>iter</em> </td><td>the hash table iterator. </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-hash_8c-source.html#l00709">709</a> of file <a class="el" href="dbus-hash_8c-source.html">dbus-hash.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-hash_8c-source.html#l00218">DBusRealHashIter::entry</a>, <a class="el" href="dbus-hash_8c-source.html#l00148">DBusHashEntry::key</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="dbus-hash_8c-source.html#l00213">DBusRealHashIter::table</a>.
</div>
</div><p>
<a class="anchor" name="g250914a3eab66ad3de0eb2dc11698931"></a><!-- doxytag: member="dbus-hash.c::_dbus_hash_iter_get_ulong_key" ref="g250914a3eab66ad3de0eb2dc11698931" args="(DBusHashIter *iter)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">unsigned long _dbus_hash_iter_get_ulong_key </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusHashIter.html">DBusHashIter</a> * </td>
<td class="paramname"> <em>iter</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Gets the key for the current entry.
<p>
Only works for hash tables of type <a class="el" href="group__DBusHashTable.html#ggb0ab9767ffa5b6720a13b3d741630852f9b5230298187cd6953dbcac824b2e4c">DBUS_HASH_ULONG</a>.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>iter</em> </td><td>the hash table iterator. </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-hash_8c-source.html#l00691">691</a> of file <a class="el" href="dbus-hash_8c-source.html">dbus-hash.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-hash_8c-source.html#l00218">DBusRealHashIter::entry</a>, <a class="el" href="dbus-hash_8c-source.html#l00148">DBusHashEntry::key</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="dbus-hash_8c-source.html#l00213">DBusRealHashIter::table</a>.
</div>
</div><p>
<a class="anchor" name="g34bf277ee37f919bd00516b5ae4e12b5"></a><!-- doxytag: member="dbus-hash.c::_dbus_hash_iter_get_value" ref="g34bf277ee37f919bd00516b5ae4e12b5" args="(DBusHashIter *iter)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void * _dbus_hash_iter_get_value </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusHashIter.html">DBusHashIter</a> * </td>
<td class="paramname"> <em>iter</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Gets the value of the current entry.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>iter</em> </td><td>the hash table iterator. </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-hash_8c-source.html#l00626">626</a> of file <a class="el" href="dbus-hash_8c-source.html">dbus-hash.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-hash_8c-source.html#l00218">DBusRealHashIter::entry</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, <a class="el" href="dbus-hash_8c-source.html#l00213">DBusRealHashIter::table</a>, and <a class="el" href="dbus-hash_8c-source.html#l00149">DBusHashEntry::value</a>.
</div>
</div><p>
<a class="anchor" name="g1b0e6df8a8617ef0f8f25adfba3acc4c"></a><!-- doxytag: member="dbus-hash.c::_dbus_hash_iter_init" ref="g1b0e6df8a8617ef0f8f25adfba3acc4c" args="(DBusHashTable *table, DBusHashIter *iter)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void _dbus_hash_iter_init </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusHashTable.html">DBusHashTable</a> * </td>
<td class="paramname"> <em>table</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structDBusHashIter.html">DBusHashIter</a> * </td>
<td class="paramname"> <em>iter</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Initializes a hash table iterator.
<p>
To iterate over all entries in a hash table, use the following code (the printf assumes a hash from strings to strings obviously):<p>
<div class="fragment"><pre class="fragment"> <a class="code" href="structDBusHashIter.html">DBusHashIter</a> iter;
<a class="code" href="group__DBusHashTable.html#g1b0e6df8a8617ef0f8f25adfba3acc4c">_dbus_hash_iter_init</a> (table, &iter);
<span class="keywordflow">while</span> (<a class="code" href="group__DBusHashTable.html#g723e61fcc91ca673e90ff872c07ea19c">_dbus_hash_iter_next</a> (&iter))
{
printf (<span class="stringliteral">"The first key is %s and value is %s\n"</span>,
<a class="code" href="group__DBusHashTable.html#ga0cff082174b1ab0380902ce4ae43d08">_dbus_hash_iter_get_string_key</a> (&iter),
<a class="code" href="group__DBusHashTable.html#g34bf277ee37f919bd00516b5ae4e12b5">_dbus_hash_iter_get_value</a> (&iter));
}
</pre></div><p>
The iterator is initialized pointing "one before" the first hash entry. The first call to <a class="el" href="group__DBusHashTable.html#g723e61fcc91ca673e90ff872c07ea19c">_dbus_hash_iter_next()</a> moves it onto the first valid entry or returns <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> if the hash table is empty. Subsequent calls move to the next valid entry or return <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> if there are no more entries.<p>
Note that it is guaranteed to be safe to remove a hash entry during iteration, but it is not safe to add a hash entry.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>table</em> </td><td>the hash table to iterate over. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>iter</em> </td><td>the iterator to initialize. </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-hash_8c-source.html#l00530">530</a> of file <a class="el" href="dbus-hash_8c-source.html">dbus-hash.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-hash_8c-source.html#l00214">DBusRealHashIter::bucket</a>, <a class="el" href="dbus-hash_8c-source.html#l00218">DBusRealHashIter::entry</a>, <a class="el" href="dbus-hash_8c-source.html#l00181">n_entries</a>, <a class="el" href="dbus-hash_8c-source.html#l00221">DBusRealHashIter::n_entries_on_init</a>, <a class="el" href="dbus-hash_8c-source.html#l00220">DBusRealHashIter::next_bucket</a>, <a class="el" href="dbus-hash_8c-source.html#l00219">DBusRealHashIter::next_entry</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="dbus-hash_8c-source.html#l00213">DBusRealHashIter::table</a>.
<p>
Referenced by <a class="el" href="dbus-hash_8c-source.html#l00431">_dbus_hash_table_remove_all()</a>.
</div>
</div><p>
<a class="anchor" name="gb156c35d6dd9ff6e408a835db28323fb"></a><!-- doxytag: member="dbus-hash.c::_dbus_hash_iter_lookup" ref="gb156c35d6dd9ff6e408a835db28323fb" args="(DBusHashTable *table, void *key, dbus_bool_t create_if_not_found, DBusHashIter *iter)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_hash_iter_lookup </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusHashTable.html">DBusHashTable</a> * </td>
<td class="paramname"> <em>table</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void * </td>
<td class="paramname"> <em>key</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td>
<td class="paramname"> <em>create_if_not_found</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structDBusHashIter.html">DBusHashIter</a> * </td>
<td class="paramname"> <em>iter</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
A low-level but efficient interface for manipulating the hash table.
<p>
It's efficient because you can get, set, and optionally create the hash entry while only running the hash function one time.<p>
Note that while calling <a class="el" href="group__DBusHashTable.html#g723e61fcc91ca673e90ff872c07ea19c">_dbus_hash_iter_next()</a> on the iterator filled in by this function may work, it's completely undefined which entries are after this iter and which are before it. So it would be silly to iterate using this iterator.<p>
If the hash entry is created, its value will be initialized to all bits zero.<p>
<a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> may be returned due to memory allocation failure, or because create_if_not_found was <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> and the entry did not exist.<p>
If create_if_not_found is <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> and the entry is created, the hash table takes ownership of the key that's passed in.<p>
For a hash table of type <a class="el" href="group__DBusHashTable.html#ggb0ab9767ffa5b6720a13b3d74163085226446bd9fbb15c6c381b35a810207141">DBUS_HASH_INT</a>, cast the int key to the key parameter using <a class="el" href="group__DBusInternalsUtils.html#g05e902d8504a8a0e0b183fd2e20e329f">_DBUS_INT_TO_POINTER()</a>.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>table</em> </td><td>the hash table. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>key</em> </td><td>the hash key. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>create_if_not_found</em> </td><td>if <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>, create the entry if it didn't exist. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>iter</em> </td><td>the iterator to initialize. </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> if the hash entry now exists (and the iterator is thus valid). </dd></dl>
<p>
Definition at line <a class="el" href="dbus-hash_8c-source.html#l00773">773</a> of file <a class="el" href="dbus-hash_8c-source.html">dbus-hash.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-hash_8c-source.html#l00214">DBusRealHashIter::bucket</a>, <a class="el" href="dbus-hash_8c-source.html#l00170">buckets</a>, <a class="el" href="dbus-hash_8c-source.html#l00218">DBusRealHashIter::entry</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-hash_8c-source.html#l00200">find_function</a>, <a class="el" href="dbus-hash_8c-source.html#l00181">n_entries</a>, <a class="el" href="dbus-hash_8c-source.html#l00221">DBusRealHashIter::n_entries_on_init</a>, <a class="el" href="dbus-hash_8c-source.html#l00144">DBusHashEntry::next</a>, <a class="el" href="dbus-hash_8c-source.html#l00220">DBusRealHashIter::next_bucket</a>, <a class="el" href="dbus-hash_8c-source.html#l00219">DBusRealHashIter::next_entry</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, <a class="el" href="dbus-hash_8c-source.html#l00213">DBusRealHashIter::table</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
</div>
</div><p>
<a class="anchor" name="g723e61fcc91ca673e90ff872c07ea19c"></a><!-- doxytag: member="dbus-hash.c::_dbus_hash_iter_next" ref="g723e61fcc91ca673e90ff872c07ea19c" args="(DBusHashIter *iter)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_hash_iter_next </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusHashIter.html">DBusHashIter</a> * </td>
<td class="paramname"> <em>iter</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Move the hash iterator forward one step, to the next hash entry.
<p>
The documentation for <a class="el" href="group__DBusHashTable.html#g1b0e6df8a8617ef0f8f25adfba3acc4c">_dbus_hash_iter_init()</a> explains in more detail.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>iter</em> </td><td>the iterator to move forward. </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> if there are no more entries to move to. </dd></dl>
<p>
Definition at line <a class="el" href="dbus-hash_8c-source.html#l00556">556</a> of file <a class="el" href="dbus-hash_8c-source.html">dbus-hash.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-hash_8c-source.html#l00214">DBusRealHashIter::bucket</a>, <a class="el" href="dbus-hash_8c-source.html#l00170">buckets</a>, <a class="el" href="dbus-hash_8c-source.html#l00218">DBusRealHashIter::entry</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-hash_8c-source.html#l00178">n_buckets</a>, <a class="el" href="dbus-hash_8c-source.html#l00181">n_entries</a>, <a class="el" href="dbus-hash_8c-source.html#l00221">DBusRealHashIter::n_entries_on_init</a>, <a class="el" href="dbus-hash_8c-source.html#l00144">DBusHashEntry::next</a>, <a class="el" href="dbus-hash_8c-source.html#l00220">DBusRealHashIter::next_bucket</a>, <a class="el" href="dbus-hash_8c-source.html#l00219">DBusRealHashIter::next_entry</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, <a class="el" href="dbus-hash_8c-source.html#l00213">DBusRealHashIter::table</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
<p>
Referenced by <a class="el" href="dbus-hash_8c-source.html#l00431">_dbus_hash_table_remove_all()</a>.
</div>
</div><p>
<a class="anchor" name="g0ef12d773a546f070cff91cbf1e8d16e"></a><!-- doxytag: member="dbus-hash.c::_dbus_hash_iter_remove_entry" ref="g0ef12d773a546f070cff91cbf1e8d16e" args="(DBusHashIter *iter)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void _dbus_hash_iter_remove_entry </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusHashIter.html">DBusHashIter</a> * </td>
<td class="paramname"> <em>iter</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Removes the current entry from the hash table.
<p>
If a key_free_function or value_free_function was provided to <a class="el" href="group__DBusHashTable.html#gc8e434348a354b9606d4c50c127a5eb4">_dbus_hash_table_new()</a>, frees the key and/or value for this entry.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>iter</em> </td><td>the hash table iterator. </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-hash_8c-source.html#l00605">605</a> of file <a class="el" href="dbus-hash_8c-source.html">dbus-hash.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-hash_8c-source.html#l00214">DBusRealHashIter::bucket</a>, <a class="el" href="dbus-hash_8c-source.html#l00218">DBusRealHashIter::entry</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="dbus-hash_8c-source.html#l00213">DBusRealHashIter::table</a>.
<p>
Referenced by <a class="el" href="dbus-hash_8c-source.html#l00431">_dbus_hash_table_remove_all()</a>.
</div>
</div><p>
<a class="anchor" name="g24193343c0948019d4a302fc18bfd5d9"></a><!-- doxytag: member="dbus-hash.c::_dbus_hash_iter_set_value" ref="g24193343c0948019d4a302fc18bfd5d9" args="(DBusHashIter *iter, void *value)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void _dbus_hash_iter_set_value </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusHashIter.html">DBusHashIter</a> * </td>
<td class="paramname"> <em>iter</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void * </td>
<td class="paramname"> <em>value</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Sets the value of the current entry.
<p>
If the hash table has a value_free_function it will be used to free the previous value. The hash table will own the passed-in value (it will not be copied).<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>iter</em> </td><td>the hash table iterator. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>value</em> </td><td>the new value. </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-hash_8c-source.html#l00649">649</a> of file <a class="el" href="dbus-hash_8c-source.html">dbus-hash.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-hash_8c-source.html#l00218">DBusRealHashIter::entry</a>, <a class="el" href="dbus-hash_8c-source.html#l00203">free_value_function</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, <a class="el" href="dbus-hash_8c-source.html#l00213">DBusRealHashIter::table</a>, and <a class="el" href="dbus-hash_8c-source.html#l00149">DBusHashEntry::value</a>.
</div>
</div><p>
<a class="anchor" name="g159dfec03d53e6e2ff485fc83aed2552"></a><!-- doxytag: member="dbus-hash.c::_dbus_hash_table_free_preallocated_entry" ref="g159dfec03d53e6e2ff485fc83aed2552" args="(DBusHashTable *table, DBusPreallocatedHash *preallocated)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void _dbus_hash_table_free_preallocated_entry </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusHashTable.html">DBusHashTable</a> * </td>
<td class="paramname"> <em>table</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__DBusHashTable.html#g175dc6ab841ed32bb6acf6e4c0df36a8">DBusPreallocatedHash</a> * </td>
<td class="paramname"> <em>preallocated</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Frees an opaque DBusPreallocatedHash that was *not* used in order to insert into the hash table.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>table</em> </td><td>the hash table </td></tr>
<tr><td valign="top"></td><td valign="top"><em>preallocated</em> </td><td>the preallocated data </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-hash_8c-source.html#l01643">1643</a> of file <a class="el" href="dbus-hash_8c-source.html">dbus-hash.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-mempool_8c-source.html#l00336">_dbus_mem_pool_dealloc()</a>, <a class="el" href="dbus-hash_8c-source.html#l00205">entry_pool</a>, and <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.
</div>
</div><p>
<a class="anchor" name="gd48297fc27442c19a7c4bd4d1ef9ef77"></a><!-- doxytag: member="dbus-hash.c::_dbus_hash_table_get_n_entries" ref="gd48297fc27442c19a7c4bd4d1ef9ef77" args="(DBusHashTable *table)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int _dbus_hash_table_get_n_entries </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusHashTable.html">DBusHashTable</a> * </td>
<td class="paramname"> <em>table</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Gets the number of hash entries in a hash table.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>table</em> </td><td>the hash table. </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>the number of entries in the table. </dd></dl>
<p>
Definition at line <a class="el" href="dbus-hash_8c-source.html#l01701">1701</a> of file <a class="el" href="dbus-hash_8c-source.html">dbus-hash.c</a>.
<p>
References <a class="el" href="dbus-hash_8c-source.html#l00181">n_entries</a>.
</div>
</div><p>
<a class="anchor" name="gca20a83f3214db08fa34df2c49c8edd5"></a><!-- doxytag: member="dbus-hash.c::_dbus_hash_table_insert_int" ref="gca20a83f3214db08fa34df2c49c8edd5" args="(DBusHashTable *table, int key, void *value)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_hash_table_insert_int </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusHashTable.html">DBusHashTable</a> * </td>
<td class="paramname"> <em>table</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"> <em>key</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void * </td>
<td class="paramname"> <em>value</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Creates a hash entry with the given key and value.
<p>
The key and value are not copied; they are stored in the hash table by reference. If an entry with the given key already exists, the previous key and value are overwritten (and freed if the hash table has a key_free_function and/or value_free_function).<p>
Returns <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> if memory for the new hash entry can't be allocated.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>table</em> </td><td>the hash table. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>key</em> </td><td>the hash entry key. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>value</em> </td><td>the hash entry value. </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-hash_8c-source.html#l01508">1508</a> of file <a class="el" href="dbus-hash_8c-source.html">dbus-hash.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-internals_8h-source.html#l00157">_DBUS_INT_TO_POINTER</a>, <a class="el" href="group__DBusHashTable.html#ggb0ab9767ffa5b6720a13b3d74163085226446bd9fbb15c6c381b35a810207141">DBUS_HASH_INT</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-hash_8c-source.html#l00200">find_function</a>, <a class="el" href="dbus-hash_8c-source.html#l00202">free_key_function</a>, <a class="el" href="dbus-hash_8c-source.html#l00203">free_value_function</a>, <a class="el" href="dbus-hash_8c-source.html#l00148">DBusHashEntry::key</a>, <a class="el" href="dbus-hash_8c-source.html#l00197">key_type</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>, and <a class="el" href="dbus-hash_8c-source.html#l00149">DBusHashEntry::value</a>.
</div>
</div><p>
<a class="anchor" name="g43e98a91a11952824c544330e19f6c22"></a><!-- doxytag: member="dbus-hash.c::_dbus_hash_table_insert_string" ref="g43e98a91a11952824c544330e19f6c22" args="(DBusHashTable *table, char *key, void *value)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_hash_table_insert_string </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusHashTable.html">DBusHashTable</a> * </td>
<td class="paramname"> <em>table</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char * </td>
<td class="paramname"> <em>key</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void * </td>
<td class="paramname"> <em>value</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Creates a hash entry with the given key and value.
<p>
The key and value are not copied; they are stored in the hash table by reference. If an entry with the given key already exists, the previous key and value are overwritten (and freed if the hash table has a key_free_function and/or value_free_function).<p>
Returns <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> if memory for the new hash entry can't be allocated.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>table</em> </td><td>the hash table. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>key</em> </td><td>the hash entry key. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>value</em> </td><td>the hash entry value. </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-hash_8c-source.html#l01431">1431</a> of file <a class="el" href="dbus-hash_8c-source.html">dbus-hash.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-hash_8c-source.html#l01670">_dbus_hash_table_insert_string_preallocated()</a>, <a class="el" href="dbus-hash_8c-source.html#l01626">_dbus_hash_table_preallocate_entry()</a>, <a class="el" href="group__DBusHashTable.html#ggb0ab9767ffa5b6720a13b3d741630852481fd0166d28da725b3e97f15192434e">DBUS_HASH_STRING</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-hash_8c-source.html#l00197">key_type</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
<p>
Referenced by <a class="el" href="dbus-userdb_8c-source.html#l00127">_dbus_user_database_lookup()</a>, and <a class="el" href="dbus-userdb-util_8c-source.html#l00208">_dbus_user_database_lookup_group()</a>.
</div>
</div><p>
<a class="anchor" name="g770a9b786a9594350165b7224bd173ee"></a><!-- doxytag: member="dbus-hash.c::_dbus_hash_table_insert_string_preallocated" ref="g770a9b786a9594350165b7224bd173ee" args="(DBusHashTable *table, DBusPreallocatedHash *preallocated, char *key, void *value)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void _dbus_hash_table_insert_string_preallocated </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusHashTable.html">DBusHashTable</a> * </td>
<td class="paramname"> <em>table</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__DBusHashTable.html#g175dc6ab841ed32bb6acf6e4c0df36a8">DBusPreallocatedHash</a> * </td>
<td class="paramname"> <em>preallocated</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char * </td>
<td class="paramname"> <em>key</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void * </td>
<td class="paramname"> <em>value</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Inserts a string-keyed entry into the hash table, using a preallocated data block from <a class="el" href="group__DBusHashTable.html#g7c2fed5599678e550af10eaa7fd5b1d1">_dbus_hash_table_preallocate_entry()</a>.
<p>
This function cannot fail due to lack of memory. The DBusPreallocatedHash object is consumed and should not be reused or freed. Otherwise this function works just like <a class="el" href="group__DBusHashTable.html#g43e98a91a11952824c544330e19f6c22">_dbus_hash_table_insert_string()</a>.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>table</em> </td><td>the hash table </td></tr>
<tr><td valign="top"></td><td valign="top"><em>preallocated</em> </td><td>the preallocated data </td></tr>
<tr><td valign="top"></td><td valign="top"><em>key</em> </td><td>the hash key </td></tr>
<tr><td valign="top"></td><td valign="top"><em>value</em> </td><td>the value </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-hash_8c-source.html#l01670">1670</a> of file <a class="el" href="dbus-hash_8c-source.html">dbus-hash.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="group__DBusHashTable.html#ggb0ab9767ffa5b6720a13b3d741630852481fd0166d28da725b3e97f15192434e">DBUS_HASH_STRING</a>, <a class="el" href="dbus-hash_8c-source.html#l00200">find_function</a>, <a class="el" href="dbus-hash_8c-source.html#l00202">free_key_function</a>, <a class="el" href="dbus-hash_8c-source.html#l00203">free_value_function</a>, <a class="el" href="dbus-hash_8c-source.html#l00148">DBusHashEntry::key</a>, <a class="el" href="dbus-hash_8c-source.html#l00197">key_type</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>, and <a class="el" href="dbus-hash_8c-source.html#l00149">DBusHashEntry::value</a>.
<p>
Referenced by <a class="el" href="dbus-hash_8c-source.html#l01431">_dbus_hash_table_insert_string()</a>.
</div>
</div><p>
<a class="anchor" name="gf40df7d2c9b05a67ac8c80d9ed88175c"></a><!-- doxytag: member="dbus-hash.c::_dbus_hash_table_insert_ulong" ref="gf40df7d2c9b05a67ac8c80d9ed88175c" args="(DBusHashTable *table, unsigned long key, void *value)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_hash_table_insert_ulong </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusHashTable.html">DBusHashTable</a> * </td>
<td class="paramname"> <em>table</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned long </td>
<td class="paramname"> <em>key</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void * </td>
<td class="paramname"> <em>value</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Creates a hash entry with the given key and value.
<p>
The key and value are not copied; they are stored in the hash table by reference. If an entry with the given key already exists, the previous key and value are overwritten (and freed if the hash table has a key_free_function and/or value_free_function).<p>
Returns <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> if memory for the new hash entry can't be allocated.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>table</em> </td><td>the hash table. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>key</em> </td><td>the hash entry key. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>value</em> </td><td>the hash entry value. </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-hash_8c-source.html#l01593">1593</a> of file <a class="el" href="dbus-hash_8c-source.html">dbus-hash.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-hash_8h-source.html#l00064">DBUS_HASH_ULONG</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-hash_8c-source.html#l00200">find_function</a>, <a class="el" href="dbus-hash_8c-source.html#l00202">free_key_function</a>, <a class="el" href="dbus-hash_8c-source.html#l00203">free_value_function</a>, <a class="el" href="dbus-hash_8c-source.html#l00148">DBusHashEntry::key</a>, <a class="el" href="dbus-hash_8c-source.html#l00197">key_type</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>, and <a class="el" href="dbus-hash_8c-source.html#l00149">DBusHashEntry::value</a>.
<p>
Referenced by <a class="el" href="dbus-userdb_8c-source.html#l00127">_dbus_user_database_lookup()</a>, and <a class="el" href="dbus-userdb-util_8c-source.html#l00208">_dbus_user_database_lookup_group()</a>.
</div>
</div><p>
<a class="anchor" name="g36ff49c4c35599e6fcdadc7f6805c49e"></a><!-- doxytag: member="dbus-hash.c::_dbus_hash_table_lookup_int" ref="g36ff49c4c35599e6fcdadc7f6805c49e" args="(DBusHashTable *table, int key)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void * _dbus_hash_table_lookup_int </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusHashTable.html">DBusHashTable</a> * </td>
<td class="paramname"> <em>table</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"> <em>key</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Looks up the value for a given integer in a hash table of type <a class="el" href="group__DBusHashTable.html#ggb0ab9767ffa5b6720a13b3d74163085226446bd9fbb15c6c381b35a810207141">DBUS_HASH_INT</a>.
<p>
Returns NULL if the value is not present. (A not-present entry is indistinguishable from an entry with a value of NULL.) <dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>table</em> </td><td>the hash table. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>key</em> </td><td>the integer to look up. </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>the value of the hash entry. </dd></dl>
<p>
Definition at line <a class="el" href="dbus-hash_8c-source.html#l01202">1202</a> of file <a class="el" href="dbus-hash_8c-source.html">dbus-hash.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-internals_8h-source.html#l00157">_DBUS_INT_TO_POINTER</a>, <a class="el" href="group__DBusHashTable.html#ggb0ab9767ffa5b6720a13b3d74163085226446bd9fbb15c6c381b35a810207141">DBUS_HASH_INT</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-hash_8c-source.html#l00200">find_function</a>, <a class="el" href="dbus-hash_8c-source.html#l00197">key_type</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="dbus-hash_8c-source.html#l00149">DBusHashEntry::value</a>.
<p>
Referenced by <a class="el" href="dbus-connection_8c-source.html#l00447">_dbus_connection_queue_received_message_link()</a>, and <a class="el" href="dbus-connection_8c-source.html#l04220">dbus_connection_dispatch()</a>.
</div>
</div><p>
<a class="anchor" name="gd51eb3fe682721dd4f6a920ca87cb730"></a><!-- doxytag: member="dbus-hash.c::_dbus_hash_table_lookup_string" ref="gd51eb3fe682721dd4f6a920ca87cb730" args="(DBusHashTable *table, const char *key)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void * _dbus_hash_table_lookup_string </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusHashTable.html">DBusHashTable</a> * </td>
<td class="paramname"> <em>table</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"> <em>key</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Looks up the value for a given string in a hash table of type <a class="el" href="group__DBusHashTable.html#ggb0ab9767ffa5b6720a13b3d741630852481fd0166d28da725b3e97f15192434e">DBUS_HASH_STRING</a>.
<p>
Returns NULL if the value is not present. (A not-present entry is indistinguishable from an entry with a value of NULL.) <dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>table</em> </td><td>the hash table. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>key</em> </td><td>the string to look up. </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>the value of the hash entry. </dd></dl>
<p>
Definition at line <a class="el" href="dbus-hash_8c-source.html#l01150">1150</a> of file <a class="el" href="dbus-hash_8c-source.html">dbus-hash.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="group__DBusHashTable.html#ggb0ab9767ffa5b6720a13b3d741630852481fd0166d28da725b3e97f15192434e">DBUS_HASH_STRING</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-hash_8c-source.html#l00200">find_function</a>, <a class="el" href="dbus-hash_8c-source.html#l00197">key_type</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="dbus-hash_8c-source.html#l00149">DBusHashEntry::value</a>.
<p>
Referenced by <a class="el" href="dbus-userdb_8c-source.html#l00127">_dbus_user_database_lookup()</a>, and <a class="el" href="dbus-userdb-util_8c-source.html#l00208">_dbus_user_database_lookup_group()</a>.
</div>
</div><p>
<a class="anchor" name="g5d9caa38b663955ee0c4766f66e4e317"></a><!-- doxytag: member="dbus-hash.c::_dbus_hash_table_lookup_ulong" ref="g5d9caa38b663955ee0c4766f66e4e317" args="(DBusHashTable *table, unsigned long key)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void * _dbus_hash_table_lookup_ulong </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusHashTable.html">DBusHashTable</a> * </td>
<td class="paramname"> <em>table</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned long </td>
<td class="paramname"> <em>key</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Looks up the value for a given integer in a hash table of type <a class="el" href="group__DBusHashTable.html#ggb0ab9767ffa5b6720a13b3d741630852f9b5230298187cd6953dbcac824b2e4c">DBUS_HASH_ULONG</a>.
<p>
Returns NULL if the value is not present. (A not-present entry is indistinguishable from an entry with a value of NULL.) <dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>table</em> </td><td>the hash table. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>key</em> </td><td>the integer to look up. </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>the value of the hash entry. </dd></dl>
<p>
Definition at line <a class="el" href="dbus-hash_8c-source.html#l01255">1255</a> of file <a class="el" href="dbus-hash_8c-source.html">dbus-hash.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-hash_8h-source.html#l00064">DBUS_HASH_ULONG</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-hash_8c-source.html#l00200">find_function</a>, <a class="el" href="dbus-hash_8c-source.html#l00197">key_type</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="dbus-hash_8c-source.html#l00149">DBusHashEntry::value</a>.
<p>
Referenced by <a class="el" href="dbus-userdb_8c-source.html#l00127">_dbus_user_database_lookup()</a>, and <a class="el" href="dbus-userdb-util_8c-source.html#l00208">_dbus_user_database_lookup_group()</a>.
</div>
</div><p>
<a class="anchor" name="gc8e434348a354b9606d4c50c127a5eb4"></a><!-- doxytag: member="dbus-hash.c::_dbus_hash_table_new" ref="gc8e434348a354b9606d4c50c127a5eb4" args="(DBusHashType type, DBusFreeFunction key_free_function, DBusFreeFunction value_free_function)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structDBusHashTable.html">DBusHashTable</a> * _dbus_hash_table_new </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__DBusHashTable.html#gb0ab9767ffa5b6720a13b3d741630852">DBusHashType</a> </td>
<td class="paramname"> <em>type</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__DBusMemory.html#g8792ec2b2b8626ca28022faf51ec415a">DBusFreeFunction</a> </td>
<td class="paramname"> <em>key_free_function</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__DBusMemory.html#g8792ec2b2b8626ca28022faf51ec415a">DBusFreeFunction</a> </td>
<td class="paramname"> <em>value_free_function</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Constructs a new hash table.
<p>
Should be freed with <a class="el" href="group__DBusHashTable.html#g96b777e00764b44e0f3216fd8478f5a9">_dbus_hash_table_unref()</a>. If memory cannot be allocated for the hash table, returns <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>type</em> </td><td>the type of hash key to use. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>key_free_function</em> </td><td>function to free hash keys. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>value_free_function</em> </td><td>function to free hash values. </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>a new <a class="el" href="structDBusHashTable.html">DBusHashTable</a> or <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> if no memory. </dd></dl>
<p>
Definition at line <a class="el" href="dbus-hash_8c-source.html#l00292">292</a> of file <a class="el" href="dbus-hash_8c-source.html">dbus-hash.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-internals_8h-source.html#l00121">_dbus_assert_not_reached</a>, <a class="el" href="dbus-mempool_8c-source.html#l00136">_dbus_mem_pool_new()</a>, <a class="el" href="dbus-internals_8h-source.html#l00154">_DBUS_N_ELEMENTS</a>, <a class="el" href="dbus-hash_8c-source.html#l00170">buckets</a>, <a class="el" href="dbus-memory_8c-source.html#l00617">dbus_free()</a>, <a class="el" href="group__DBusHashTable.html#ggb0ab9767ffa5b6720a13b3d74163085226446bd9fbb15c6c381b35a810207141">DBUS_HASH_INT</a>, <a class="el" href="group__DBusHashTable.html#ggb0ab9767ffa5b6720a13b3d74163085238604db762cd0ed315106a95a6b50c4d">DBUS_HASH_POINTER</a>, <a class="el" href="group__DBusHashTable.html#ggb0ab9767ffa5b6720a13b3d741630852481fd0166d28da725b3e97f15192434e">DBUS_HASH_STRING</a>, <a class="el" href="group__DBusHashTable.html#ggb0ab9767ffa5b6720a13b3d741630852c750b865c7994a3dd6d1028b7ae76877">DBUS_HASH_TWO_STRINGS</a>, <a class="el" href="dbus-hash_8h-source.html#l00064">DBUS_HASH_ULONG</a>, <a class="el" href="dbus-memory_8h-source.html#l00047">dbus_new0</a>, <a class="el" href="dbus-hash_8c-source.html#l00129">DBUS_SMALL_HASH_TABLE</a>, <a class="el" href="dbus-hash_8c-source.html#l00190">down_shift</a>, <a class="el" href="dbus-hash_8c-source.html#l00205">entry_pool</a>, <a class="el" href="dbus-hash_8c-source.html#l00200">find_function</a>, <a class="el" href="dbus-hash_8c-source.html#l00202">free_key_function</a>, <a class="el" href="dbus-hash_8c-source.html#l00203">free_value_function</a>, <a class="el" href="dbus-hash_8c-source.html#l00184">hi_rebuild_size</a>, <a class="el" href="dbus-hash_8c-source.html#l00197">key_type</a>, <a class="el" href="dbus-hash_8c-source.html#l00187">lo_rebuild_size</a>, <a class="el" href="dbus-hash_8c-source.html#l00194">mask</a>, <a class="el" href="dbus-hash_8c-source.html#l00178">n_buckets</a>, <a class="el" href="dbus-hash_8c-source.html#l00181">n_entries</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, <a class="el" href="dbus-hash_8c-source.html#l00103">REBUILD_MULTIPLIER</a>, <a class="el" href="dbus-hash_8c-source.html#l00168">refcount</a>, <a class="el" href="dbus-hash_8c-source.html#l00175">static_buckets</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
<p>
Referenced by <a class="el" href="dbus-connection_8c-source.html#l01163">_dbus_connection_new_for_transport()</a>, and <a class="el" href="dbus-userdb_8c-source.html#l00530">_dbus_user_database_new()</a>.
</div>
</div><p>
<a class="anchor" name="g7c2fed5599678e550af10eaa7fd5b1d1"></a><!-- doxytag: member="dbus-hash.c::_dbus_hash_table_preallocate_entry" ref="g7c2fed5599678e550af10eaa7fd5b1d1" args="(DBusHashTable *table)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusHashTable.html#g175dc6ab841ed32bb6acf6e4c0df36a8">DBusPreallocatedHash</a> * _dbus_hash_table_preallocate_entry </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusHashTable.html">DBusHashTable</a> * </td>
<td class="paramname"> <em>table</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Preallocate an opaque data blob that allows us to insert into the hash table at a later time without allocating any memory.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>table</em> </td><td>the hash table </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>the preallocated data, or <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> if no memory </dd></dl>
<p>
Definition at line <a class="el" href="dbus-hash_8c-source.html#l01626">1626</a> of file <a class="el" href="dbus-hash_8c-source.html">dbus-hash.c</a>.
<p>
Referenced by <a class="el" href="dbus-hash_8c-source.html#l01431">_dbus_hash_table_insert_string()</a>.
</div>
</div><p>
<a class="anchor" name="g4ad4622378885e5d911c26956e174a45"></a><!-- doxytag: member="dbus-hash.c::_dbus_hash_table_ref" ref="g4ad4622378885e5d911c26956e174a45" args="(DBusHashTable *table)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structDBusHashTable.html">DBusHashTable</a> * _dbus_hash_table_ref </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusHashTable.html">DBusHashTable</a> * </td>
<td class="paramname"> <em>table</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Increments the reference count for a hash table.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>table</em> </td><td>the hash table to add a reference to. </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>the hash table. </dd></dl>
<p>
Definition at line <a class="el" href="dbus-hash_8c-source.html#l00360">360</a> of file <a class="el" href="dbus-hash_8c-source.html">dbus-hash.c</a>.
<p>
References <a class="el" href="dbus-hash_8c-source.html#l00168">refcount</a>.
</div>
</div><p>
<a class="anchor" name="gd169f3790ca67f8a0adafcdc88ef7188"></a><!-- doxytag: member="dbus-hash.c::_dbus_hash_table_remove_all" ref="gd169f3790ca67f8a0adafcdc88ef7188" args="(DBusHashTable *table)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void _dbus_hash_table_remove_all </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusHashTable.html">DBusHashTable</a> * </td>
<td class="paramname"> <em>table</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Removed all entries from a hash table.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>table</em> </td><td>the hash table to remove all entries from. </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-hash_8c-source.html#l00431">431</a> of file <a class="el" href="dbus-hash_8c-source.html">dbus-hash.c</a>.
<p>
References <a class="el" href="dbus-hash_8c-source.html#l00530">_dbus_hash_iter_init()</a>, <a class="el" href="dbus-hash_8c-source.html#l00556">_dbus_hash_iter_next()</a>, and <a class="el" href="dbus-hash_8c-source.html#l00605">_dbus_hash_iter_remove_entry()</a>.
<p>
Referenced by <a class="el" href="dbus-userdb_8c-source.html#l00573">_dbus_user_database_flush()</a>.
</div>
</div><p>
<a class="anchor" name="gcdebe75bd692605a69dc73c15e0eefd0"></a><!-- doxytag: member="dbus-hash.c::_dbus_hash_table_remove_int" ref="gcdebe75bd692605a69dc73c15e0eefd0" args="(DBusHashTable *table, int key)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_hash_table_remove_int </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusHashTable.html">DBusHashTable</a> * </td>
<td class="paramname"> <em>table</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"> <em>key</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Removes the hash entry for the given key.
<p>
If no hash entry for the key exists, does nothing.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>table</em> </td><td>the hash table. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>key</em> </td><td>the hash key. </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> if the entry existed </dd></dl>
<p>
Definition at line <a class="el" href="dbus-hash_8c-source.html#l01337">1337</a> of file <a class="el" href="dbus-hash_8c-source.html">dbus-hash.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-internals_8h-source.html#l00157">_DBUS_INT_TO_POINTER</a>, <a class="el" href="group__DBusHashTable.html#ggb0ab9767ffa5b6720a13b3d74163085226446bd9fbb15c6c381b35a810207141">DBUS_HASH_INT</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-hash_8c-source.html#l00200">find_function</a>, <a class="el" href="dbus-hash_8c-source.html#l00197">key_type</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
</div>
</div><p>
<a class="anchor" name="g388d50ce1a07bf0790b9f2ecdb08a396"></a><!-- doxytag: member="dbus-hash.c::_dbus_hash_table_remove_string" ref="g388d50ce1a07bf0790b9f2ecdb08a396" args="(DBusHashTable *table, const char *key)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_hash_table_remove_string </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusHashTable.html">DBusHashTable</a> * </td>
<td class="paramname"> <em>table</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"> <em>key</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Removes the hash entry for the given key.
<p>
If no hash entry for the key exists, does nothing.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>table</em> </td><td>the hash table. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>key</em> </td><td>the hash key. </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> if the entry existed </dd></dl>
<p>
Definition at line <a class="el" href="dbus-hash_8c-source.html#l01279">1279</a> of file <a class="el" href="dbus-hash_8c-source.html">dbus-hash.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="group__DBusHashTable.html#ggb0ab9767ffa5b6720a13b3d741630852481fd0166d28da725b3e97f15192434e">DBUS_HASH_STRING</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-hash_8c-source.html#l00200">find_function</a>, <a class="el" href="dbus-hash_8c-source.html#l00197">key_type</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
</div>
</div><p>
<a class="anchor" name="g2211f0b52ae08e195186b7d438913b11"></a><!-- doxytag: member="dbus-hash.c::_dbus_hash_table_remove_ulong" ref="g2211f0b52ae08e195186b7d438913b11" args="(DBusHashTable *table, unsigned long key)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_hash_table_remove_ulong </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusHashTable.html">DBusHashTable</a> * </td>
<td class="paramname"> <em>table</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned long </td>
<td class="paramname"> <em>key</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Removes the hash entry for the given key.
<p>
If no hash entry for the key exists, does nothing.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>table</em> </td><td>the hash table. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>key</em> </td><td>the hash key. </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> if the entry existed </dd></dl>
<p>
Definition at line <a class="el" href="dbus-hash_8c-source.html#l01396">1396</a> of file <a class="el" href="dbus-hash_8c-source.html">dbus-hash.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-hash_8h-source.html#l00064">DBUS_HASH_ULONG</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-hash_8c-source.html#l00200">find_function</a>, <a class="el" href="dbus-hash_8c-source.html#l00197">key_type</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
<p>
Referenced by <a class="el" href="dbus-userdb_8c-source.html#l00127">_dbus_user_database_lookup()</a>, and <a class="el" href="dbus-userdb-util_8c-source.html#l00208">_dbus_user_database_lookup_group()</a>.
</div>
</div><p>
<a class="anchor" name="g96b777e00764b44e0f3216fd8478f5a9"></a><!-- doxytag: member="dbus-hash.c::_dbus_hash_table_unref" ref="g96b777e00764b44e0f3216fd8478f5a9" args="(DBusHashTable *table)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void _dbus_hash_table_unref </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusHashTable.html">DBusHashTable</a> * </td>
<td class="paramname"> <em>table</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Decrements the reference count for a hash table, freeing the hash table if the count reaches zero.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>table</em> </td><td>the hash table to remove a reference from. </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-hash_8c-source.html#l00374">374</a> of file <a class="el" href="dbus-hash_8c-source.html">dbus-hash.c</a>.
<p>
References <a class="el" href="dbus-mempool_8c-source.html#l00183">_dbus_mem_pool_free()</a>, <a class="el" href="dbus-hash_8c-source.html#l00170">buckets</a>, <a class="el" href="dbus-memory_8c-source.html#l00617">dbus_free()</a>, <a class="el" href="dbus-hash_8c-source.html#l00205">entry_pool</a>, <a class="el" href="dbus-hash_8c-source.html#l00178">n_buckets</a>, <a class="el" href="dbus-hash_8c-source.html#l00144">DBusHashEntry::next</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, <a class="el" href="dbus-hash_8c-source.html#l00168">refcount</a>, and <a class="el" href="dbus-hash_8c-source.html#l00175">static_buckets</a>.
<p>
Referenced by <a class="el" href="dbus-connection_8c-source.html#l01163">_dbus_connection_new_for_transport()</a>, and <a class="el" href="dbus-userdb_8c-source.html#l00603">_dbus_user_database_unref()</a>.
</div>
</div><p>
<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 14 22:26:13 2009 for D-Bus by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.7 </small></address>
</body>
</html>