/cvmfs/atlas.cern.ch/repo/sw/ASG/AnalysisBase/2.4.30/CxxUtils/CxxUtils/libcalg/hash-table.h File Reference
Hash table.
More...
Go to the source code of this file.
Detailed Description
Hash table.
A hash table stores a set of values which can be addressed by a key. Given the key, the corresponding value can be looked up quickly.
To create a hash table, use hash_table_new. To destroy a hash table, use hash_table_free.
To insert a value into a hash table, use hash_table_insert.
To remove a value from a hash table, use hash_table_remove.
To look up a value by its key, use hash_table_lookup.
To iterate over all values in a hash table, use hash_table_iterate to initialise a HashTableIterator structure. Each value can then be read in turn using hash_table_iter_next and hash_table_iter_has_more.
Define Documentation
#define HASH_TABLE_NULL ((void *) 0) |
Typedef Documentation
Internal structure representing an entry in a hash table.
Function used to compare two keys for equality.
- Returns:
- Non-zero if the two keys are equal, zero if the keys are not equal.
Hash function used to generate hash values for keys used in a hash table.
- Parameters:
-
| value | The value to generate a hash value for. |
- Returns:
- The hash value.
Structure used to iterate over a hash table.
Type of function used to free keys when entries are removed from a hash table.
Type of function used to free values when entries are removed from a hash table.
Function Documentation
void hash_table_free |
( |
HashTable * |
hash_table |
) |
|
Destroy a hash table.
- Parameters:
-
| hash_table | The hash table to destroy. |
Insert a value into a hash table, overwriting any existing entry using the same key.
- Parameters:
-
| hash_table | The hash table. |
| key | The key for the new value. |
| value | The value to insert. |
- Returns:
- Non-zero if the value was added successfully, or zero if it was not possible to allocate memory for the new entry.
Determine if there are more keys in the hash table to iterate over.
- Parameters:
-
| iterator | The hash table iterator. |
- Returns:
- Zero if there are no more values to iterate over, non-zero if there are more values to iterate over.
Using a hash table iterator, retrieve the next key.
- Parameters:
-
| iterator | The hash table iterator. |
- Returns:
- The next key from the hash table, or HASH_TABLE_NULL if there are no more keys to iterate over.
Initialise a HashTableIterator to iterate over a hash table.
- Parameters:
-
| hash_table | The hash table. |
| iter | Pointer to an iterator structure to initialise. |
Look up a value in a hash table by key.
- Parameters:
-
| hash_table | The hash table. |
| key | The key of the value to look up. |
- Returns:
- The value, or HASH_TABLE_NULL if there is no value with that key in the hash table.
Create a new hash table.
- Parameters:
-
| hash_func | Function used to generate hash keys for the keys used in the table. |
| equal_func | Function used to test keys used in the table for equality. |
- Returns:
- A new hash table structure, or NULL if it was not possible to allocate the new hash table.
int hash_table_num_entries |
( |
HashTable * |
hash_table |
) |
|
Retrieve the number of entries in a hash table.
- Parameters:
-
| hash_table | The hash table. |
- Returns:
- The number of entries in the hash table.
Register functions used to free the key and value when an entry is removed from a hash table.
- Parameters:
-
| hash_table | The hash table. |
| key_free_func | Function used to free keys. |
| value_free_func | Function used to free values. |
Remove a value from a hash table.
- Parameters:
-
| hash_table | The hash table. |
| key | The key of the value to remove. |
- Returns:
- Non-zero if a key was removed, or zero if the specified key was not found in the hash table.