1 /*******************************************************************************
2 
3     Bindings for Elastic Binary Trees library's operations on pointer nodes.
4 
5     This module contains the D binding of the library functions of ebpttree.h.
6     Please consult the original header documentation for details.
7 
8     You need to have the library installed and link with -lebtree.
9 
10     Copyright:
11         Copyright (c) 2009-2016 dunnhumby Germany GmbH.
12         All rights reserved.
13 
14     License:
15         Boost Software License Version 1.0. See LICENSE_BOOST.txt for details.
16         Alternatively, this file may be distributed under the terms of the Tango
17         3-Clause BSD License (see LICENSE_BSD.txt for details).
18 
19         Bear in mind this module provides bindings to an external library that
20         has its own license, which might be more restrictive. Please check the
21         external library license to see which conditions apply for linking.
22 
23 *******************************************************************************/
24 
25 module ocean.util.container.ebtree.c.ebpttree;
26 
27 import ocean.util.container.ebtree.c.ebtree;
28 import ocean.util.container.ebtree.c.eb32tree;
29 import ocean.util.container.ebtree.c.eb64tree;
30 
31 /// See original's library documentation for details.
32 struct ebpt_node
33 {
34     eb_node node;
35     void* key;
36 }
37 
38 extern (C):
39 
40 
41 /// See original's library documentation for details.
42 ebpt_node* ebpt_first(eb_root *root);
43 
44 /// See original's library documentation for details.
45 ebpt_node* ebpt_last(eb_root* root);
46 
47 /// See original's library documentation for details.
48 ebpt_node* ebpt_next(ebpt_node* ebpt);
49 
50 /// See original's library documentation for details.
51 ebpt_node* ebpt_prev(ebpt_node* ebpt);
52 
53 /// See original's library documentation for details.
54 ebpt_node* ebpt_next_unique(ebpt_node* ebpt);
55 
56 /// See original's library documentation for details.
57 ebpt_node* ebpt_prev_unique(ebpt_node* ebpt);
58 
59 /// See original's library documentation for details.
60 void ebpt_delete(ebpt_node* ebpt);
61 
62 /// See original's library documentation for details.
63 ebpt_node* ebpt_lookup(eb_root* root, void* x);
64 
65 /// See original's library documentation for details.
66 ebpt_node* ebpt_lookup_le(eb_root* root, void* x);
67 
68 /// See original's library documentation for details.
69 ebpt_node* ebpt_lookup_ge(eb_root* root, void* x);
70 
71 /// See original's library documentation for details.
72 ebpt_node* ebpt_insert(eb_root* root, ebpt_node* neww);
73 
74 
75 /// See original's library documentation for details.
76 void ebpt_delete(ebpt_node* ebpt);
77 
78 /// See original's library documentation for details.
79 ebpt_node* ebpt_lookup(eb_root* root, void* x);
80 
81 /// See original's library documentation for details.
82 ebpt_node* ebpt_insert(eb_root* root, ebpt_node* neww);