Multi-ApplicationOnlineProfiling
2.1
|
Hash Table implementation. More...
Modules | |
Accessors | |
Accessors functions (push, get, etc.) | |
Init/Release | |
Initialization and release functions. | |
Internals | |
Internal Hash_Table functions. | |
Walkers | |
Functions that executes functions on elements. | |
Data Structures | |
struct | Hash_Table_Internal |
This is the structure used to store the clusters (items that have the same hash) More... | |
struct | Hash_Table |
This is the main hask table structure. More... | |
Functions | |
static void | Hash_Table_use_lock (struct Hash_Table *ht) |
Indicates that the hashtable must use a lock for operations (get/push) More... | |
Hash Table implementation.
A hash table is an association table (key=>value) that uses a hash of key as index. If two keys have the same hash (clustering), the element is stored at the same index within a structure (chained list, table, etc.).
This Hash_Table is an implementation based on Chained List for clusters and CRC64 for hash.
The insertion of an element does the following :
The retreive of an element does the following :
In order to limit dynamic allocation (which takes time), this implementation stores the few first elements of a cluster within a static array (see Hash_Table::coll_avoid).
|
inlinestatic |
Indicates that the hashtable must use a lock for operations (get/push)
ht | the hashtable where to indicate. |
Definition at line 66 of file Hash_Table.h.