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

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

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

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

Parameters
htthe hashtable where to indicate.

Definition at line 66 of file Hash_Table.h.

Here is the caller graph for this function: