tetengo 1.8.2
A multipurpose library set
Loading...
Searching...
No Matches
trie.h
Go to the documentation of this file.
1
7#if !defined(TETENGO_TRIE_TRIE_H)
8#define TETENGO_TRIE_TRIE_H
9
10#include <stdbool.h>
11#include <stddef.h>
12
13
14#if defined(__cplusplus)
15extern "C" {
16#endif
17
18#if !defined(DOCUMENTATION)
19#if !defined(TYPEDEF_TETENGO_TRIE_STORAGE_T)
20#define TYPEDEF_TETENGO_TRIE_STORAGE_T
21typedef struct tetengo_trie_storage_tag tetengo_trie_storage_t;
22#endif
23#if !defined(TYPEDEF_TETENGO_TRIE_TRIE_T)
24#define TYPEDEF_TETENGO_TRIE_TRIE_T
25typedef struct tetengo_trie_trie_tag tetengo_trie_trie_t;
26#endif
27#if !defined(TYPEDEF_TETENGO_TRIE_TRIEITERATOR_T)
28#define TYPEDEF_TETENGO_TRIE_TRIEITERATOR_T
29typedef struct tetengo_trie_trieIterator_tag tetengo_trie_trieIterator_t;
30#endif
31#endif
32
33
38{
40 const char* key;
41
43 const void* p_value;
45
52typedef void (*tetengo_trie_trie_addingObserver_t)(const char* serialized_key, void* p_context);
53
57void tetengo_trie_trie_nullAddingObserver(const char*, void*);
58
64typedef void (*tetengo_trie_trie_doneObserver_t)(void* p_context);
65
70
77
92tetengo_trie_trie_t* tetengo_trie_trie_create(
93 const tetengo_trie_trieElement_t* p_elements,
94 size_t element_count,
95 size_t element_value_size,
97 void* p_adding_observer_context,
99 void* p_done_observer_context,
100 size_t double_array_density_factor);
101
112tetengo_trie_trie_t* tetengo_trie_trie_createWithStorage(tetengo_trie_storage_t* p_storage);
113
119void tetengo_trie_trie_destroy(const tetengo_trie_trie_t* p_trie);
120
129bool tetengo_trie_trie_empty(const tetengo_trie_trie_t* p_trie);
130
138size_t tetengo_trie_trie_size(const tetengo_trie_trie_t* p_trie);
139
149bool tetengo_trie_trie_contains(const tetengo_trie_trie_t* p_trie, const char* key);
150
159const void* tetengo_trie_trie_find(const tetengo_trie_trie_t* p_trie, const char* key);
160
168tetengo_trie_trieIterator_t* tetengo_trie_trie_createIterator(const tetengo_trie_trie_t* p_trie);
169
175void tetengo_trie_trie_destroyIterator(const tetengo_trie_trieIterator_t* p_iterator);
176
185const tetengo_trie_trie_t* tetengo_trie_trie_subtrie(const tetengo_trie_trie_t* p_trie, const char* key_prefix);
186
194const tetengo_trie_storage_t* tetengo_trie_trie_getStorage(const tetengo_trie_trie_t* p_trie);
195
196
197#if defined(__cplusplus)
198}
199#endif
200
201
202#endif
An element type.
Definition trie.h:38
const void * p_value
Definition trie.h:43
const char * key
Definition trie.h:40
void tetengo_trie_trie_nullAddingObserver(const char *, void *)
A null adding observer.
void(* tetengo_trie_trie_addingObserver_t)(const char *serialized_key, void *p_context)
An observer type called when a key is adding.
Definition trie.h:52
tetengo_trie_trie_t * tetengo_trie_trie_create(const tetengo_trie_trieElement_t *p_elements, size_t element_count, size_t element_value_size, tetengo_trie_trie_addingObserver_t adding_observer, void *p_adding_observer_context, tetengo_trie_trie_doneObserver_t done_observer, void *p_done_observer_context, size_t double_array_density_factor)
Creates a trie.
const tetengo_trie_storage_t * tetengo_trie_trie_getStorage(const tetengo_trie_trie_t *p_trie)
Returns the pointer to the storage.
void tetengo_trie_trie_nullDoneObserver(void *)
A null done observer.
void tetengo_trie_trie_destroy(const tetengo_trie_trie_t *p_trie)
Destroys a trie.
bool tetengo_trie_trie_empty(const tetengo_trie_trie_t *p_trie)
Returns true when the trie is empty.
size_t tetengo_trie_trie_size(const tetengo_trie_trie_t *p_trie)
Returns the size of the trie.
void tetengo_trie_trie_destroyIterator(const tetengo_trie_trieIterator_t *p_iterator)
Destroys an iterator.
bool tetengo_trie_trie_contains(const tetengo_trie_trie_t *p_trie, const char *key)
Returns true when the trie contains the given key.
size_t tetengo_trie_trie_defaultDoubleArrayDensityFactor(void)
Returns the default double array density factor.
tetengo_trie_trieIterator_t * tetengo_trie_trie_createIterator(const tetengo_trie_trie_t *p_trie)
Creates an iterator.
tetengo_trie_trie_t * tetengo_trie_trie_createWithStorage(tetengo_trie_storage_t *p_storage)
Creates a trie.
struct tetengo_trie_trieElement_tag tetengo_trie_trieElement_t
An element type.
void(* tetengo_trie_trie_doneObserver_t)(void *p_context)
An observer type called when the building is done.
Definition trie.h:64
const void * tetengo_trie_trie_find(const tetengo_trie_trie_t *p_trie, const char *key)
Finds the value object correspoinding the given key.
const tetengo_trie_trie_t * tetengo_trie_trie_subtrie(const tetengo_trie_trie_t *p_trie, const char *key_prefix)
Creates a subtrie.