GEL  0.99
util.h File Reference
#include <gel/common.h>
#include <gel/types.h>

Go to the source code of this file.

Data Structures

struct  item
 
struct  gel_hash_enum_t
 

Macros

#define gel_hash_key(en)   ((en)->item->key)
 
#define gel_hash_value(en)   ((en)->item->value)
 

Typedefs

typedef typedef__BEGIN_DECLS struct descripteur * gel_list_t
 
typedef struct hashage * gel_hash_t
 
typedef struct itemitem_t
 
typedef struct gel_hash_enum_t gel_hash_enum_t
 

Functions

gel_list_t gel_list_new (void)
 
void gel_list_first (gel_list_t desc)
 
int gel_list_end (gel_list_t desc)
 
void * gel_list_get (gel_list_t desc)
 
int gel_list_contains (gel_list_t desc, void *val)
 
int gel_list_add (gel_list_t desc, void *val)
 
int gel_list_remove (gel_list_t desc, void *val)
 
void gel_list_clear (gel_list_t desc)
 
void gel_list_delete (gel_list_t desc)
 
void gel_list_delete_items (gel_list_t desc, void(*free)(void *))
 
int gel_list_length (gel_list_t desc)
 
int gel_list_empty (gel_list_t a)
 
gel_hash_t gel_hash_new (int size)
 
int hash_put (gel_hash_t hash, char *key, void *value)
 
void * hash_get (gel_hash_t hash, char *key)
 
int hash_del (gel_hash_t hash, char *key)
 
void hash_free (gel_hash_t hash)
 
gel_enum_thash_enum (gel_hash_t h)
 
void hash_enum_free (gel_enum_t *en)
 
void * gel_hash_enum_init (gel_hash_enum_t *en, gel_hash_t htab)
 
void * gel_hash_enum_next (gel_hash_enum_t *en)
 
void gel_hash_enum_end (gel_hash_enum_t *en, gel_hash_t htab)
 

Macro Definition Documentation

◆ gel_hash_key

#define gel_hash_key (   en)    ((en)->item->key)

◆ gel_hash_value

#define gel_hash_value (   en)    ((en)->item->value)

Typedef Documentation

◆ gel_hash_enum_t

Type of fast enumerator on an hash table.

◆ gel_hash_t

typedef struct hashage* gel_hash_t

◆ gel_list_t

typedef typedef__BEGIN_DECLS struct descripteur* gel_list_t

◆ item_t

typedef struct item* item_t

Function Documentation

◆ gel_hash_enum_end()

void gel_hash_enum_end ( gel_hash_enum_t en,
gel_hash_t  htab 
)

Initialize the hash enumerator to point past the end of the enumeration.

Parameters
enEnumerator to initialize.
hashHash table.

◆ gel_hash_enum_init()

void* gel_hash_enum_init ( gel_hash_enum_t en,
gel_hash_t  htab 
)

Initialize an hash table enumerator.

Parameters
enEnumerator to initialize.
htabHash table to traverse.
Returns
First item value or null if the has table is empty.

◆ gel_hash_enum_next()

void* gel_hash_enum_next ( gel_hash_enum_t en)

Go to the next item in the hash table.

Parameters
enEnumerator.
Returns
Value of the next item or null if there is no item.

◆ gel_hash_new()

gel_hash_t gel_hash_new ( int  size)

Create an hash table.

Parameters
sizeSize of the hash table (prime numbers gives better results).
Returns
Create hash table or null.

◆ hash_del()

int hash_del ( gel_hash_t  hash,
char *  key 
)

Supprime un element de la table de hachage

Parameters
hashLa table de hachage
keyLa cle return Code d'erreur

◆ hash_enum()

gel_enum_t* hash_enum ( gel_hash_t  h)

Renvoie une enumeration a partir d'une table de hachage

Parameters
hUne table de hachage
Returns
Une enumeration de la table de hachage

◆ hash_enum_free()

void hash_enum_free ( gel_enum_t en)

Implementation de enum_free pour les tables de hachage Libere l'enumeration

Parameters
enUne enumeration

◆ hash_free()

void hash_free ( gel_hash_t  hash)

Libere une table de hachage

Parameters
hashLa table de hachage

◆ hash_get()

void* hash_get ( gel_hash_t  hash,
char *  key 
)

Recupere une valeur de la table de hachage

Parameters
keyLa cle
hashLa table de hachage
Returns
La valeur, ou NULL

◆ hash_put()

int hash_put ( gel_hash_t  hash,
char *  key,
void *  value 
)

Rentre un couple (cle,valeur) dans la table de hachage

Parameters
hashLa table de hachage
keyLa cle
valueLa valeur
Returns
Code d'erreur