libdebian-installer
tree.h
1 /*
2  * tree.h
3  *
4  * Copyright (C) 2006 Bastian Blank <waldi@debian.org>
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; either version 2 of the License, or
9  * (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program. If not, see <http://www.gnu.org/licenses/>.
18  */
19 
20 #ifndef DEBIAN_INSTALLER__TREE_H
21 #define DEBIAN_INSTALLER__TREE_H
22 
23 #include <debian-installer/types.h>
24 
25 typedef struct di_tree di_tree;
26 
41 
59 
68 void di_tree_destroy (di_tree *tree);
69 
83 void di_tree_insert (di_tree *tree, void *key, void *value);
84 
93 void *di_tree_lookup (di_tree *tree, const void *key);
94 
107 void di_tree_foreach (di_tree *tree, di_hfunc *func, void *user_data);
108 
117 
119 #endif
di_tree_node::key
void * key
Definition: tree.c:55
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)
Definition: tree.c:69
di_destroy_notify
void di_destroy_notify(void *data)
Definition: types.h:50
di_tree_node::right
di_tree_node * right
Definition: tree.c:58
di_tree_node::value
void * value
Definition: tree.c:56
di_tree_foreach
void di_tree_foreach(di_tree *tree, di_hfunc *func, void *user_data)
Definition: tree.c:270
di_tree_destroy
void di_tree_destroy(di_tree *tree)
Definition: tree.c:96
di_new
#define di_new(struct_type, n_structs)
Definition: mem.h:73
di_tree_node
Node of a tree.
Definition: tree.c:54
di_tree::value_destroy_func
di_destroy_notify * value_destroy_func
Definition: tree.c:46
di_ksize_t
uint32_t di_ksize_t
Definition: types.h:78
di_free
void di_free(void *mem)
Definition: mem.c:60
di_tree
Tree.
Definition: tree.c:41
di_tree_lookup
void * di_tree_lookup(di_tree *tree, const void *key)
Definition: tree.c:297
di_tree_insert
void di_tree_insert(di_tree *tree, void *key, void *value)
Definition: tree.c:250
di_tree_new
di_tree * di_tree_new(di_compare_func key_compare_func)
Definition: tree.c:64
di_error
#define di_error(format...)
Definition: log.h:55
di_tree::key_compare_func
di_compare_func * key_compare_func
Definition: tree.c:44
di_compare_func
int di_compare_func(const void *key1, const void *key2)
Definition: types.h:38
di_tree::nnodes
size_t nnodes
Definition: tree.c:42
di_tree::key_destroy_func
di_destroy_notify * key_destroy_func
Definition: tree.c:45
di_tree_node::left
di_tree_node * left
Definition: tree.c:57
di_tree_size
di_ksize_t di_tree_size(di_tree *tree)
Definition: tree.c:275
di_tree::root
di_tree_node * root
Definition: tree.c:43