LMMS
Loading...
Searching...
No Matches
btree.h
Go to the documentation of this file.
1/*
2 Copyright 2011-2016 David Robillard <http://drobilla.net>
3
4 Permission to use, copy, modify, and/or distribute this software for any
5 purpose with or without fee is hereby granted, provided that the above
6 copyright notice and this permission notice appear in all copies.
7
8 THIS SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9 WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10 MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
11 ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12 WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
13 ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
14 OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
15*/
16
17#ifndef ZIX_BTREE_H
18#define ZIX_BTREE_H
19
20#include <stddef.h>
21
22#include "zix/common.h"
23
24#ifdef __cplusplus
25extern "C" {
26#else
27# include <stdbool.h>
28#endif
29
36
40typedef struct ZixBTreeImpl ZixBTree;
41
46
54
58ZIX_API ZixBTree*
60 void* cmp_data,
61 ZixDestroyFunc destroy);
62
66ZIX_API void
68
72ZIX_API size_t
74
78ZIX_API ZixStatus
80
94ZIX_API ZixStatus
95zix_btree_remove(ZixBTree* t, const void* e, void** out, ZixBTreeIter** next);
96
101ZIX_API ZixStatus
102zix_btree_find(const ZixBTree* t, const void* e, ZixBTreeIter** ti);
103
111ZIX_API ZixStatus
112zix_btree_lower_bound(const ZixBTree* t, const void* e, ZixBTreeIter** ti);
113
117ZIX_API void*
118zix_btree_get(const ZixBTreeIter* ti);
119
125ZIX_API ZixBTreeIter*
127
131ZIX_API bool
133
137ZIX_API void
139
143ZIX_API void
145
150
151#ifdef __cplusplus
152} /* extern "C" */
153#endif
154
155#endif /* ZIX_BTREE_H */
* e
Definition inflate.c:1404
struct huft * t
Definition inflate.c:943
register unsigned i
Definition inflate.c:1575
void(* ZixDestroyFunc)(void *ptr)
Definition common.h:128
ZIX_PURE_API size_t zix_btree_size(const ZixBTree *t)
Definition btree.c:200
ZIX_API ZixBTree * zix_btree_new(ZixComparator cmp, const void *cmp_data, ZixDestroyFunc destroy)
Definition btree.c:144
ZIX_API void zix_btree_iter_increment(ZixBTreeIter *i)
Definition btree.c:892
ZIX_API ZixStatus zix_btree_lower_bound(const ZixBTree *t, const void *e, ZixBTreeIter **ti)
Definition btree.c:752
struct ZixBTreeImpl ZixBTree
Definition btree.h:39
ZIX_PURE_API ZixBTreeIter * zix_btree_begin(const ZixBTree *t)
Definition btree.c:819
ZIX_PURE_API bool zix_btree_iter_is_end(const ZixBTreeIter *i)
Definition btree.c:867
ZIX_API void zix_btree_free(ZixBTree *t)
Definition btree.c:191
struct ZixBTreeIterImpl ZixBTreeIter
Definition btree.h:52
ZIX_API ZixStatus zix_btree_remove(ZixBTree *t, const void *e, void **out, ZixBTreeIter **next)
Definition btree.c:597
ZixStatus
Definition common.h:81
ZIX_PURE_API void * zix_btree_get(const ZixBTreeIter *ti)
Definition btree.c:810
struct ZixBTreeNodeImpl ZixBTreeNode
Definition btree.h:44
ZIX_API ZixStatus zix_btree_find(const ZixBTree *t, const void *e, ZixBTreeIter **ti)
Definition btree.c:719
ZIX_API ZixStatus zix_btree_insert(ZixBTree *t, void *e)
Definition btree.c:345
int(* ZixComparator)(const void *a, const void *b, const void *user_data)
Definition common.h:116
ZIX_API void zix_btree_iter_free(ZixBTreeIter *i)
Definition btree.c:933
float out
Definition lilv_test.c:1461
Definition btree.c:35
Definition btree.c:70
Definition btree.c:44