My Project
programmer's documentation
Loading...
Searching...
No Matches
Data Structures | Typedefs | Enumerations | Functions
mei_hash_table.h File Reference

Hash table, intended to provide a symbol table. More...

Go to the source code of this file.

Data Structures

union  data_t
 Type definition for data of each element contained in the hash table. More...
 
struct  item
 Type definition for each record of the hash table. More...
 
struct  hash_table_t
 Structure defining a hash table. More...
 

Typedefs

typedef double(* func1_t) (double)
 Type definition for a pointer to a function of one argument.
 
typedef double(* func2_t) (double, double)
 Type definition for pointer to a function of two arguments.
 
typedef double(* func3_t) (double, double, double)
 Type definition for pointer to a function of three arguments.
 
typedef double(* func4_t) (double, double, double, double)
 Type definition for pointer to a function of for arguments.
 

Enumerations

enum  mei_flag_t {
  CONSTANT , ID , FUNC1 , FUNC2 ,
  FUNC3 , FUNC4 , OPR
}
 List of the different type of symbol. More...
 

Functions

void mei_hash_table_create (hash_table_t *const htable, const int modulo)
 Initialize the hash table to the size (modulo) asked for. Allocates space for the correct number of pointers and sets them to NULL.
 
void mei_hash_table_init (hash_table_t *htable)
 Initialize the hash table with default symbols.
 
void mei_hash_table_free (hash_table_t *htable)
 Destroy a hash table.
 
struct itemmei_hash_table_lookup (hash_table_t *htable, const char *key)
 Find a record in a hash table.
 
void mei_hash_table_insert (hash_table_t *const htable, const char *const key, const mei_flag_t type, const double value, const func1_t f1, const func2_t f2)
 Insert a record in a hash table.
 
struct itemmei_hash_table_find (hash_table_t *htable, const char *key)
 Find a record in a hash table.
 
void mei_hash_table_dump (hash_table_t *htable)
 Dump of table contents for debuging purpose.
 
void mei_hash_table_item_print (struct item *item)
 Dump function of a single record.
 

Detailed Description

Hash table, intended to provide a symbol table.

A hash table consists of an array of container. Each container holds a copy of the key, a pointer to the data associated with the key, and a pointer to the next container that associated with this one, if there was one.

Typedef Documentation

◆ func1_t

typedef double(* func1_t) (double)

Type definition for a pointer to a function of one argument.

◆ func2_t

typedef double(* func2_t) (double, double)

Type definition for pointer to a function of two arguments.

◆ func3_t

typedef double(* func3_t) (double, double, double)

Type definition for pointer to a function of three arguments.

◆ func4_t

typedef double(* func4_t) (double, double, double, double)

Type definition for pointer to a function of for arguments.

Enumeration Type Documentation

◆ mei_flag_t

enum mei_flag_t

List of the different type of symbol.

Enumerator
CONSTANT 
ID 
FUNC1 
FUNC2 
FUNC3 
FUNC4 
OPR 

Function Documentation

◆ mei_hash_table_create()

void mei_hash_table_create ( hash_table_t *const  htable,
const int  modulo 
)

Initialize the hash table to the size (modulo) asked for. Allocates space for the correct number of pointers and sets them to NULL.

Parameters
[in]htablehash table
[in]modulosize of the hash table

◆ mei_hash_table_dump()

void mei_hash_table_dump ( hash_table_t *const  htable)

Dump of table contents for debuging purpose.

Parameters
[in]htablehash table

◆ mei_hash_table_find()

struct item * mei_hash_table_find ( hash_table_t *const  htable,
const char *const  key 
)

Find a record in a hash table.

Parameters
[in]htablehash table
[in]keykey
Returns
a pointer containing the record

◆ mei_hash_table_free()

void mei_hash_table_free ( hash_table_t *const  htable)

Destroy a hash table.

Parameters
[in]htablehash table

◆ mei_hash_table_init()

void mei_hash_table_init ( hash_table_t *const  htable)

Initialize the hash table with default symbols.

Parameters
[in]htablehash table

◆ mei_hash_table_insert()

void mei_hash_table_insert ( hash_table_t *const  htable,
const char *const  key,
const mei_flag_t  type,
const double  value,
const func1_t  f1,
const func2_t  f2 
)

Insert a record in a hash table.

Parameters
[in]htablehash table
[in]keykey associated to the record
[in]typeflag associated to the record
[in]valuestore a value if the record if a real
[in]f1pointer on a one argument function
[in]f2pointer on a two argument function

◆ mei_hash_table_item_print()

void mei_hash_table_item_print ( struct item item)

Dump function of a single record.

Parameters
[in]itemrecord

◆ mei_hash_table_lookup()

struct item * mei_hash_table_lookup ( hash_table_t *const  htable,
const char *const  key 
)

Find a record in a hash table.

Parameters
[in]htablehash table
[in]keykey
Returns
a pointer containing the record