|
- #ifndef TLHASH_H
- #define TLHASH_H
- #include <stddef.h>
- typedef struct el {
- void *key, *value;
- size_t key_length;
- struct el *next;
- } tlhash_element_t;
-
- typedef struct {
- size_t n_buckets, size;
- tlhash_element_t **buckets;
- } tlhash_t;
-
- int tlhash_init ( tlhash_t *tab, size_t n_buckets );
- int tlhash_finalize ( tlhash_t *tab );
- int tlhash_insert ( tlhash_t *tab, void *key, size_t keylen, void *val );
- int tlhash_lookup ( tlhash_t *tab, void *key, size_t keylen, void **val );
- int tlhash_remove ( tlhash_t *tab, void *key, size_t key_length );
- size_t tlhash_size ( tlhash_t *tab );
- void tlhash_keys ( tlhash_t *tab, void **keys );
- void tlhash_values ( tlhash_t *tab, void **values );
-
- #define TLHASH_SUCCESS 0 /* Success */
- #define TLHASH_ENOMEM 1 /* No memory available */
- #define TLHASH_ENOENT 2 /* No such table entry */
- #define TLHASH_EEXIST 3 /* Table entry already exists */
- #endif
|