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. |
References root.
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().