X-Git-Url: http://git.samba.org/samba.git/?p=ira%2Fwip.git;a=blobdiff_plain;f=source3%2Finclude%2Fadt_tree.h;h=3acda8edb89301ef77ed5a575f3ee5564004bd2a;hp=b1bf7ad85dc4db749045e5c9520360ed7ba69d67;hb=80fcd764213afc430f4b4cefec4e251e668bd0ba;hpb=06ae9ac5d98a752d8ca17686a4a3b1786fbe520d diff --git a/source3/include/adt_tree.h b/source3/include/adt_tree.h index b1bf7ad85dc..3acda8edb89 100644 --- a/source3/include/adt_tree.h +++ b/source3/include/adt_tree.h @@ -1,11 +1,11 @@ /* * Unix SMB/CIFS implementation. * Generic Abstract Data Types - * Copyright (C) Gerald Carter 2002. + * Copyright (C) Gerald Carter 2002-2005. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or + * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, @@ -14,13 +14,14 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + * along with this program; if not, see . */ #ifndef ADT_TREE_H #define ADT_TREE_H +/* data structure used to build the tree */ + typedef struct _tree_node { struct _tree_node *parent; struct _tree_node **children; @@ -31,8 +32,30 @@ typedef struct _tree_node { typedef struct _tree_root { TREE_NODE *root; + + /* not used currently (is it needed?) */ int (*compare)(void* x, void *y); - void (*free)(void *p); } SORTED_TREE; +/* + * API + */ + +/* create a new tree, talloc_free() to throw it away */ + +SORTED_TREE* pathtree_init( void *data_p, int (cmp_fn)(void*, void*) ); + +/* add a new path component */ + +WERROR pathtree_add( SORTED_TREE *tree, const char *path, void *data_p ); + +/* search path */ + +void* pathtree_find( SORTED_TREE *tree, char *key ); + +/* debug (print) functions */ + +void pathtree_print_keys( SORTED_TREE *tree, int debug ); + + #endif