LMMS
Loading...
Searching...
No Matches
tree.h
Go to the documentation of this file.
1/*
2 Copyright 2011-2014 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_TREE_H
18#define ZIX_TREE_H
19
20#include <stddef.h>
21
22#include "zix/common.h"
23
24#ifdef __cplusplus
25extern "C" {
26#endif
27
34
38typedef struct ZixTreeImpl ZixTree;
39
44
48ZIX_API ZixTree*
49zix_tree_new(bool allow_duplicates,
50 ZixComparator cmp,
51 void* cmp_data,
52 ZixDestroyFunc destroy);
53
57ZIX_API void
59
63ZIX_API size_t
64zix_tree_size(const ZixTree* t);
65
69ZIX_API ZixStatus
71
75ZIX_API ZixStatus
77
82ZIX_API ZixStatus
83zix_tree_find(const ZixTree* t, const void* e, ZixTreeIter** ti);
84
88ZIX_API void*
89zix_tree_get(const ZixTreeIter* ti);
90
94ZIX_API ZixTreeIter*
96
100ZIX_API ZixTreeIter*
102
106ZIX_API bool
108
112ZIX_API ZixTreeIter*
114
118ZIX_API ZixTreeIter*
120
124ZIX_API bool
126
130ZIX_API ZixTreeIter*
132
136ZIX_API ZixTreeIter*
138
143
144#ifdef __cplusplus
145} /* extern "C" */
146#endif
147
148#endif /* ZIX_TREE_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_CONST_API ZixTreeIter * zix_tree_end(ZixTree *t)
Definition tree.c:635
ZIX_PURE_API size_t zix_tree_size(const ZixTree *t)
Definition tree.c:107
ZIX_CONST_API bool zix_tree_iter_is_end(const ZixTreeIter *i)
Definition tree.c:671
ZIX_PURE_API ZixTreeIter * zix_tree_iter_prev(ZixTreeIter *i)
Definition tree.c:706
ZIX_PURE_API ZixTreeIter * zix_tree_rbegin(ZixTree *t)
Definition tree.c:650
struct ZixTreeImpl ZixTree
Definition tree.h:39
ZIX_API ZixStatus zix_tree_remove(ZixTree *t, ZixTreeIter *ti)
Definition tree.c:442
ZIX_CONST_API ZixTreeIter * zix_tree_rend(ZixTree *t)
Definition tree.c:655
ZixStatus
Definition common.h:81
ZIX_API ZixTree * zix_tree_new(bool allow_duplicates, ZixComparator cmp, void *cmp_data, ZixDestroyFunc destroy)
Definition tree.c:69
ZIX_PURE_API ZixTreeIter * zix_tree_begin(ZixTree *t)
Definition tree.c:629
ZIX_API void zix_tree_free(ZixTree *t)
Definition tree.c:98
ZIX_API ZixStatus zix_tree_insert(ZixTree *t, void *e, ZixTreeIter **ti)
Definition tree.c:345
ZIX_API ZixStatus zix_tree_find(const ZixTree *t, const void *e, ZixTreeIter **ti)
Definition tree.c:602
ZIX_CONST_API bool zix_tree_iter_is_rend(const ZixTreeIter *i)
Definition tree.c:677
struct ZixTreeNodeImpl ZixTreeIter
Definition tree.h:44
int(* ZixComparator)(const void *a, const void *b, const void *user_data)
Definition common.h:116
ZIX_PURE_API void * zix_tree_get(const ZixTreeIter *ti)
Definition tree.c:623
ZIX_PURE_API ZixTreeIter * zix_tree_iter_next(ZixTreeIter *i)
Definition tree.c:683
Definition tree.c:27
Definition tree.c:36