1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-05-02 16:49:41 +02:00
audacity/lib-src/redland/librdf/rdf_avltree_internal.h
2010-01-24 09:19:39 +00:00

62 lines
2.3 KiB
C

#ifndef LIBRDF_AVLTREE_H
#define LIBRDF_AVLTREE_H
#ifndef LIBRDF_OBJC_FRAMEWORK
#include <rdf_uri.h>
#else
#include <Redland/rdf_uri.h>
#endif
#ifdef __cplusplus
extern "C" {
#endif
#define LIBRDF_AVLTREE_ENOMEM -1
#define LIBRDF_AVLTREE_EXISTS 1
typedef struct librdf_avltree_s librdf_avltree;
typedef int (*librdf_avltree_data_compare_function)(const void* data1, const void* data2);
typedef void (*librdf_avltree_data_free_function)(void* data);
typedef int (*librdf_avltree_visit_function)(int depth, void* data, void *user_data);
typedef void (*librdf_avltree_data_print_function)(FILE* handle, const void* data);
/* constructor / destructor */
librdf_avltree* librdf_new_avltree(librdf_avltree_data_compare_function compare_fn, librdf_avltree_data_free_function free_fn/*, unsigned int flags*/);
void librdf_free_avltree(librdf_avltree* tree);
/* methods */
int librdf_avltree_add(librdf_avltree* tree, void* p_user);
void* librdf_avltree_remove(librdf_avltree* tree, void* p_data);
int librdf_avltree_delete(librdf_avltree* tree, void* p_user);
void* librdf_avltree_search(librdf_avltree* tree, const void* p_user);
int librdf_avltree_visit(librdf_avltree* tree, librdf_avltree_visit_function visit_fn, void* user_data);
int librdf_avltree_size(librdf_avltree* tree);
void librdf_avltree_set_print_handler(librdf_avltree* tree, librdf_avltree_data_print_function print_fn);
void librdf_avltree_print(librdf_world* world, librdf_avltree* tree, FILE* stream,
librdf_avltree_data_print_function print_fn);
#ifdef LIBRDF_DEBUG
int librdf_avltree_dump(librdf_avltree* tree, FILE* stream,
librdf_avltree_data_print_function print_fn);
void librdf_avltree_check(librdf_avltree* tree);
#endif
#if 0
int librdf_avltree_cursor_first(librdf_avltree* tree);
int librdf_avltree_cursor_last(librdf_avltree* tree);
int librdf_avltree_cursor_prev(librdf_avltree* tree);
int librdf_avltree_cursor_next(librdf_avltree* tree);
void* librdf_avltree_cursor_get(librdf_avltree* tree);
#endif
librdf_iterator* librdf_avltree_get_iterator_start(librdf_world* world,
librdf_avltree* tree, void* range,
librdf_avltree_data_free_function range_free_fn);
#ifdef __cplusplus
}
#endif
#endif