117#ifndef __TOMMYTRIEINP_H
118#define __TOMMYTRIEINP_H
133#define TOMMY_TRIE_INPLACE_BIT 32
140#define TOMMY_TRIE_INPLACE_TREE_MAX 4
145#define TOMMY_TRIE_INPLACE_TREE_BIT TOMMY_ILOG2(TOMMY_TRIE_INPLACE_TREE_MAX)
150#define TOMMY_TRIE_INPLACE_BUCKET_BIT ((TOMMY_TRIE_INPLACE_BIT % TOMMY_TRIE_INPLACE_TREE_BIT) + 3 * TOMMY_TRIE_INPLACE_TREE_BIT)
156#define TOMMY_TRIE_INPLACE_BUCKET_MAX (1 << TOMMY_TRIE_INPLACE_BUCKET_BIT)
239 return trie_inplace->
count;
Trie node.
Definition: tommytrieinp.h:162
void * data
Pointer to the data.
Definition: tommytrieinp.h:165
struct tommy_trie_inplace_node_struct * map[TOMMY_TRIE_INPLACE_TREE_MAX]
Branches of the node.
Definition: tommytrieinp.h:166
struct tommy_trie_inplace_node_struct * prev
Circular previous element.
Definition: tommytrieinp.h:164
tommy_key_t key
Used to store the key or the hash.
Definition: tommytrieinp.h:167
struct tommy_trie_inplace_node_struct * next
Next element.
Definition: tommytrieinp.h:163
Trie container type.
Definition: tommytrieinp.h:174
tommy_size_t count
Number of elements.
Definition: tommytrieinp.h:176
tommy_trie_inplace_node * bucket[TOMMY_TRIE_INPLACE_BUCKET_MAX]
First tree level.
Definition: tommytrieinp.h:175
void * tommy_trie_inplace_search(tommy_trie_inplace *trie_inplace, tommy_key_t key)
Searches an element in the trie.
Definition: tommytrieinp.h:217
TOMMY_API tommy_trie_inplace_node * tommy_trie_inplace_bucket(tommy_trie_inplace *trie_inplace, tommy_key_t key)
Gets the bucket of the specified key.
TOMMY_API void tommy_trie_inplace_insert(tommy_trie_inplace *trie_inplace, tommy_trie_inplace_node *node, void *data, tommy_key_t key)
Inserts an element in the trie.
TOMMY_API tommy_size_t tommy_trie_inplace_memory_usage(tommy_trie_inplace *trie_inplace)
Gets the size of allocated memory.
struct tommy_trie_inplace_struct tommy_trie_inplace
Trie container type.
tommy_size_t tommy_trie_inplace_count(tommy_trie_inplace *trie_inplace)
Gets the number of elements.
Definition: tommytrieinp.h:237
TOMMY_API void tommy_trie_inplace_init(tommy_trie_inplace *trie_inplace)
Initializes the trie.
TOMMY_API void * tommy_trie_inplace_remove_existing(tommy_trie_inplace *trie_inplace, tommy_trie_inplace_node *node)
Removes an element from the trie.
#define TOMMY_TRIE_INPLACE_TREE_MAX
Number of branches on each node.
Definition: tommytrieinp.h:140
struct tommy_trie_inplace_node_struct tommy_trie_inplace_node
Trie node.
TOMMY_API void * tommy_trie_inplace_remove(tommy_trie_inplace *trie_inplace, tommy_key_t key)
Searches and removes the first element with the specified key.
uint64_t tommy_size_t
Generic size_t type.
Definition: tommytypes.h:60
tommy_size_t tommy_key_t
Type used in indexed data structures to store the key of an object.
Definition: tommytypes.h:188