My Project
programmer's documentation
Loading...
Searching...
No Matches
Functions
mei_hash_table.c File Reference

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

#include <stdio.h>
#include <string.h>
#include <math.h>
#include "bft_mem.h"
#include "bft_error.h"
#include "mei_hash_table.h"
Include dependency graph for mei_hash_table.c:

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.
 
struct itemmei_hash_table_find (hash_table_t *const htable, const char *const 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_lookup (hash_table_t *const htable, const char *const key)
 Find a record in a hash table.
 
void mei_hash_table_free (hash_table_t *const htable)
 Destroy a hash table.
 
void mei_hash_table_init (hash_table_t *const htable)
 Initialize the hash table with default symbols.
 
void mei_hash_table_item_print (struct item *item)
 Dump function of a single record.
 
void mei_hash_table_dump (hash_table_t *const htable)
 Dump of table contents for debuging purpose.
 

Detailed Description

Hash table, intended to provide a symbol table.

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