|  |  |  | Raptor RDF Syntax Library Manual |  | 
|---|---|---|---|---|
| Top | Description | ||||
typedef raptor_avltree; enum raptor_avltree_bitflags; raptor_avltree * raptor_new_avltree (raptor_data_compare_handler compare_handler,raptor_data_free_handler free_handler,unsigned int flags); void raptor_free_avltree (raptor_avltree *tree); int raptor_avltree_add (raptor_avltree *tree,void *p_data); int raptor_avltree_delete (raptor_avltree *tree,void *p_data); int raptor_avltree_print (raptor_avltree *tree,FILE *stream); void * raptor_avltree_remove (raptor_avltree *tree,void *p_data); void * raptor_avltree_search (raptor_avltree *tree,const void *p_data); void raptor_avltree_set_print_handler (raptor_avltree *tree,raptor_data_print_handler print_handler); int raptor_avltree_size (raptor_avltree *tree); int raptor_avltree_visit (raptor_avltree *tree,raptor_avltree_visit_handler visit_handler,void *user_data); typedef raptor_avltree_iterator; raptor_avltree_iterator * raptor_new_avltree_iterator (raptor_avltree *tree,void *range,raptor_data_free_handler range_free_handler,int direction); void raptor_free_avltree_iterator (raptor_avltree_iterator *iterator); void * raptor_avltree_iterator_get (raptor_avltree_iterator *iterator); int raptor_avltree_iterator_is_end (raptor_avltree_iterator *iterator); int raptor_avltree_iterator_next (raptor_avltree_iterator *iterator); int (*raptor_avltree_visit_handler) (int depth,void *data,void *user_data);
typedef enum {
 RAPTOR_AVLTREE_FLAG_REPLACE_DUPLICATES = 1
} raptor_avltree_bitflags;
Bit flags for AVL Tree class constructor raptor_new_avltree()
| If set raptor_avltree_add()will replace any duplicate items. If not set,raptor_avltree_add()will not replace them and will return status >0 when adding a duplicate. (Default is not set) | 
raptor_avltree * raptor_new_avltree (raptor_data_compare_handler compare_handler,raptor_data_free_handler free_handler,unsigned int flags);
AVL Tree Constructor
| 
 | item comparison handler for ordering | 
| 
 | item free handler (or NULL) | 
| 
 | AVLTree flags - bitmask of raptor_avltree_bitflags flags. | 
| Returns : | new AVL Tree or NULL on failure | 
void                raptor_free_avltree                 (raptor_avltree *tree);
AVL Tree destructor
| 
 | AVLTree object | 
int raptor_avltree_add (raptor_avltree *tree,void *p_data);
add an item to an AVL Tree
The item added becomes owned by the AVL Tree, and will be freed by
the free_handler argument given to raptor_new_avltree().
| 
 | AVL Tree object | 
| 
 | pointer to data item | 
| Returns : | 0 on success, >0 if equivalent item exists (and the old element remains in the tree), <0 on failure | 
int raptor_avltree_delete (raptor_avltree *tree,void *p_data);
Remove an item from an AVL Tree and free it
| 
 | AVL Tree object | 
| 
 | pointer to data item | 
| Returns : | non-0 on failure | 
int raptor_avltree_print (raptor_avltree *tree,FILE *stream);
Print the items in the tree in order to a stream (for debugging)
| 
 | AVL Tree | 
| 
 | stream to print to | 
| Returns : | non-0 on failure | 
void * raptor_avltree_remove (raptor_avltree *tree,void *p_data);
Remove an item from an AVL Tree and return it
The item removed is no longer owned by the AVL Tree and is owned by the caller.
| 
 | AVL Tree object | 
| 
 | pointer to data item | 
| Returns : | object or NULL on failure or if not found | 
void * raptor_avltree_search (raptor_avltree *tree,const void *p_data);
Find an item in an AVL Tree
| 
 | AVL Tree object | 
| 
 | pointer to data item | 
| Returns : | shared pointer to item (still owned by AVL Tree) or NULL on failure or if not found | 
void raptor_avltree_set_print_handler (raptor_avltree *tree,raptor_data_print_handler print_handler);
Set the handler for printing an item in a tree
| 
 | AVL Tree object | 
| 
 | print function | 
int                 raptor_avltree_size                 (raptor_avltree *tree);
Get the number of items in the AVL Tree
| 
 | AVL Tree object | 
| Returns : | number of items in tree | 
int raptor_avltree_visit (raptor_avltree *tree,raptor_avltree_visit_handler visit_handler,void *user_data);
Perform an in-order visit of the items in the AVL Tree
| 
 | AVL Tree object | 
| 
 | visit function to call at each item | 
| 
 | user data pointer fo visit function | 
| Returns : | non-0 if traversal was terminated early by visit_handler | 
typedef struct raptor_avltree_iterator_s raptor_avltree_iterator;
AVL Tree Iterator as created by raptor_new_avltree_iterator()
raptor_avltree_iterator * raptor_new_avltree_iterator (raptor_avltree *tree,void *range,raptor_data_free_handler range_free_handler,int direction);
Get an in-order iterator for the start of a range, or the entire contents
If range is NULL, the entire tree is walked in order. If range specifies a range (i.e. the tree comparison function will 'match' (return 0 for) range and /several/ nodes), the iterator will be placed at the leftmost child matching range, and raptor_avltree_iterator_next will iterate over all nodes (and only nodes) that match range.
| 
 | raptor_avltree object | 
| 
 | range | 
| 
 | function to free rangeobject | 
| 
 | <0 to go 'backwards' otherwise 'forwards' | 
| Returns : | a new raptor_avltree_iterator object or NULL on failure | 
void                raptor_free_avltree_iterator        (raptor_avltree_iterator *iterator);
AVL Tree Iterator destructor
| 
 | AVL Tree iterator object | 
void *              raptor_avltree_iterator_get         (raptor_avltree_iterator *iterator);
Get current iteration object
| 
 | AVL Tree iterator object | 
| Returns : | object or NULL if iteration is finished | 
int                 raptor_avltree_iterator_is_end      (raptor_avltree_iterator *iterator);
Test if an iteration is finished
| 
 | AVL Tree iterator object | 
| Returns : | non-0 if iteration is finished | 
int                 raptor_avltree_iterator_next        (raptor_avltree_iterator *iterator);
Move iteration to next/prev object
| 
 | AVL Tree iterator object | 
| Returns : | non-0 if iteration is finished | 
int (*raptor_avltree_visit_handler) (int depth,void *data,void *user_data);
AVL Tree visitor function as given to raptor_avltree_visit()
| 
 | depth of object in tree | 
| 
 | data object being visited | 
| 
 | user data arg to raptor_avltree_visit() | 
| Returns : | non-0 to terminate visit early. |