GEL  0.99
util.c File Reference
#include <stdlib.h>
#include <string.h>
#include <gel/util.h>
#include "gel_types_private.h"
#include "gel_mem.h"

Functions

void hash_enum_free (gel_enum_t *en)
 
void hash_initpos (gel_enum_t *en)
 
void * hash_nextkey (gel_enum_t *en)
 
gel_enum_thash_enum (gel_hash_t h)
 
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_hash_t gel_hash_new (int size)
 
int gel_list_empty (gel_list_t a)
 
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)
 
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_func)(void *))
 
int gel_list_length (gel_list_t desc)
 
int gel_list_remove (gel_list_t desc, void *val)
 
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)
 

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_initpos()

void hash_initpos ( gel_enum_t en)

Implementation de enum_initpos pour les tables de hachage Remet � zero la position

Parameters
enUne enumeration

◆ hash_nextkey()

void* hash_nextkey ( gel_enum_t en)

Impl�mentation de enum_next pour les tables de hachage Renvoie le prochain element, et avance

Parameters
enUne enumeration
Returns
Le prochain element

◆ 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