|
Libecoli 0.11.3
Extensible COmmand LIne library
|
Simple hash table API (string keys). More...
Typedefs | |
| typedef void(* | ec_dict_elt_free_t) (void *) |
Functions | |
| struct ec_dict * | ec_dict (void) |
| void * | ec_dict_get (const struct ec_dict *dict, const char *key) |
| bool | ec_dict_has_key (const struct ec_dict *dict, const char *key) |
| int | ec_dict_del (struct ec_dict *dict, const char *key) |
| int | ec_dict_set (struct ec_dict *dict, const char *key, void *val, ec_dict_elt_free_t free_cb) |
| void | ec_dict_free (struct ec_dict *dict) |
| size_t | ec_dict_len (const struct ec_dict *dict) |
| struct ec_dict * | ec_dict_dup (const struct ec_dict *dict) |
| void | ec_dict_dump (FILE *out, const struct ec_dict *dict) |
| struct ec_dict_elt_ref * | ec_dict_iter (const struct ec_dict *dict) |
| struct ec_dict_elt_ref * | ec_dict_iter_next (struct ec_dict_elt_ref *iter) |
| const char * | ec_dict_iter_get_key (const struct ec_dict_elt_ref *iter) |
| void * | ec_dict_iter_get_val (const struct ec_dict_elt_ref *iter) |
Simple hash table API (string keys).
This file provides functions to store objects in hash tables, using strings as keys.
| typedef void(* ec_dict_elt_free_t) (void *) |
| struct ec_dict * ec_dict | ( | void | ) |
Create a hash table.
| void * ec_dict_get | ( | const struct ec_dict * | dict, |
| const char * | key ) |
Get a value from the hash table.
| dict | The hash table. |
| key | The key string. Must not be NULL. |
| bool ec_dict_has_key | ( | const struct ec_dict * | dict, |
| const char * | key ) |
Check if the hash table contains this key.
| dict | The hash table. |
| key | The key string. Must not be NULL. |
| int ec_dict_del | ( | struct ec_dict * | dict, |
| const char * | key ) |
Delete an object from the hash table.
| dict | The hash table. |
| key | The key string. Must not be NULL. |
| int ec_dict_set | ( | struct ec_dict * | dict, |
| const char * | key, | ||
| void * | val, | ||
| ec_dict_elt_free_t | free_cb ) |
Add/replace an object in the hash table.
| dict | The hash table. |
| key | The key string. Must not be NULL. |
| val | The pointer to be saved in the hash table. |
| free_cb | An optional pointer to a destructor function called when an object is destroyed (ec_dict_del() or ec_dict_free()). |
| void ec_dict_free | ( | struct ec_dict * | dict | ) |
Free a hash table and all its objects.
| dict | The hash table. |
| size_t ec_dict_len | ( | const struct ec_dict * | dict | ) |
Get the length of a hash table.
| dict | The hash table. |
Duplicate a hash table.
A reference counter is shared between the clones of hash tables so that the objects are freed only when the last reference is destroyed.
| dict | The hash table. |
| void ec_dict_dump | ( | FILE * | out, |
| const struct ec_dict * | dict ) |
Dump a hash table.
| out | The stream where the dump is sent. |
| dict | The hash table. |
| struct ec_dict_elt_ref * ec_dict_iter | ( | const struct ec_dict * | dict | ) |
Iterate the elements in the hash table.
The typical usage is as below:
| dict | The hash table. |
| struct ec_dict_elt_ref * ec_dict_iter_next | ( | struct ec_dict_elt_ref * | iter | ) |
Make the iterator point to the next element in the hash table.
| iter | The hash table iterator. |
| const char * ec_dict_iter_get_key | ( | const struct ec_dict_elt_ref * | iter | ) |
Get a pointer to the key of the current element.
| iter | The hash table iterator. |
| void * ec_dict_iter_get_val | ( | const struct ec_dict_elt_ref * | iter | ) |
Get the value of the current element.
| iter | The hash table iterator. |