|
libdebian-installer
|
Data Structures | |
| struct | di_tree |
| Tree. More... | |
| struct | di_tree_node |
| Node of a tree. More... | |
Functions | |
| di_tree * | di_tree_new (di_compare_func key_compare_func) |
| di_tree * | di_tree_new_full (di_compare_func key_compare_func, di_destroy_notify key_destroy_func, di_destroy_notify value_destroy_func) |
| void | di_tree_destroy (di_tree *tree) |
| void | di_tree_insert (di_tree *tree, void *key, void *value) |
| void * | di_tree_lookup (di_tree *tree, const void *key) |
| void | di_tree_foreach (di_tree *tree, di_hfunc *func, void *user_data) |
| di_ksize_t | di_tree_size (di_tree *tree) |
| void di_tree_destroy | ( | di_tree * | tree | ) |
Destroys the di_tree. If keys and/or values are dynamically allocated, you should either free them first or create the di_tree using di_tree_new_full. In the latter case the destroy functions you supplied will be called on all keys and values before destroying the di_hash_table.
| tree | a di_tree. |
| void di_tree_foreach | ( | di_tree * | tree, |
| di_hfunc * | func, | ||
| void * | user_data | ||
| ) |
Calls the given function for each of the key/value pairs in the di_tree. The function is passed the key and value of each pair, and the given user_data parameter.
| tree | a di_tree. |
| func | the function to call for each key/value pair. |
| user_data | user data to pass to the function. |
| void di_tree_insert | ( | di_tree * | tree, |
| void * | key, | ||
| void * | value | ||
| ) |
Inserts a new key and value into a di_tree.
If the key already exists in the di_tree its current value is replaced with the new value. If you supplied a value_destroy_func when creating the di_tree, the old value is freed using that function. If you supplied a key_destroy_func when creating the di_tree, the passed key is freed using that function.
| tree | a di_tree. |
| key | a key to insert. |
| value | the value to associate with the key. |
| void * di_tree_lookup | ( | di_tree * | tree, |
| const void * | key | ||
| ) |
| di_tree * di_tree_new | ( | di_compare_func | key_compare_func | ) |
Creates a new di_tree.
| key_compare_func | a function to compare two keys. This is used when looking up keys in the di_tree. |
References di_tree_new_full().
| di_tree * di_tree_new_full | ( | di_compare_func | key_compare_func, |
| di_destroy_notify | key_destroy_func, | ||
| di_destroy_notify | value_destroy_func | ||
| ) |
Creates a new di_tree like di_tree_new and allows to specify functions to free the memory allocated for the key and value that get called when removing the entry from the di_tree
| key_compare_func | a function to check two keys for equality. This is used when looking up keys in the di_tree. |
| key_destroy_func | a function to free the memory allocated for the key used when removing the entry from the di_tree or NULL if you don't want to supply such a function. |
| value_destroy_func | a function to free the memory allocated for the value used when removing the entry from the di_tree or NULL if you don't want to supply such a function. |
References di_new, key_compare_func, key_destroy_func, nnodes, root, and value_destroy_func.
Referenced by di_tree_new().