Multi-ApplicationOnlineProfiling  2.1
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Hash Table

Hash Table implementation. More...


 Accessors functions (push, get, etc.)
 Initialization and release functions.
 Internal Hash_Table functions.
 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...


static void Hash_Table_use_lock (struct Hash_Table *ht)
 Indicates that the hashtable must use a lock for operations (get/push) More...

Detailed Description

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).

Function Documentation

static void Hash_Table_use_lock ( struct Hash_Table ht)

Indicates that the hashtable must use a lock for operations (get/push)

htthe hashtable where to indicate.

Definition at line 66 of file Hash_Table.h.

Here is the caller graph for this function: