Wireshark 4.5.0
The Wireshark network protocol analyzer
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
wmem_tree.h
Go to the documentation of this file.
1
13#ifndef __WMEM_TREE_H__
14#define __WMEM_TREE_H__
15
16#include "wmem_core.h"
17
18#ifdef __cplusplus
19extern "C" {
20#endif /* __cplusplus */
21
36struct _wmem_tree_t;
37typedef struct _wmem_tree_t wmem_tree_t;
38
41WS_DLL_PUBLIC
44
57WS_DLL_PUBLIC
60
62WS_DLL_PUBLIC
63void
64wmem_tree_destroy(wmem_tree_t *tree, bool free_keys, bool free_values);
65
67WS_DLL_PUBLIC
68bool
70
72WS_DLL_PUBLIC
73unsigned
75
87WS_DLL_PUBLIC
88void
89wmem_tree_insert32(wmem_tree_t *tree, uint32_t key, void *data);
90
94WS_DLL_PUBLIC
95bool
96wmem_tree_contains32(wmem_tree_t *tree, uint32_t key);
97
101WS_DLL_PUBLIC
102void *
103wmem_tree_lookup32(wmem_tree_t *tree, uint32_t key);
104
109WS_DLL_PUBLIC
110void *
111wmem_tree_lookup32_le(wmem_tree_t *tree, uint32_t key);
112
118WS_DLL_PUBLIC
119void *
120wmem_tree_lookup32_le_full(wmem_tree_t *tree, uint32_t key, uint32_t *orig_key);
121
126WS_DLL_PUBLIC
127void *
128wmem_tree_lookup32_ge(wmem_tree_t *tree, uint32_t key);
129
135WS_DLL_PUBLIC
136void *
137wmem_tree_lookup32_ge_full(wmem_tree_t *tree, uint32_t key, uint32_t *orig_key);
138
144WS_DLL_PUBLIC
145void *
146wmem_tree_remove32(wmem_tree_t *tree, uint32_t key);
147
149#define WMEM_TREE_STRING_NOCASE 0x00000001
157WS_DLL_PUBLIC
158void
159wmem_tree_insert_string(wmem_tree_t *tree, const char* key, void *data,
160 uint32_t flags);
161
165WS_DLL_PUBLIC
166void *
167wmem_tree_lookup_string(wmem_tree_t* tree, const char* key, uint32_t flags);
168
172WS_DLL_PUBLIC
173void *
174wmem_tree_remove_string(wmem_tree_t* tree, const char* key, uint32_t flags);
175
176typedef struct _wmem_tree_key_t {
177 uint32_t length;
178 uint32_t *key;
180
216WS_DLL_PUBLIC
217void
219
223WS_DLL_PUBLIC
224void *
226
237WS_DLL_PUBLIC
238void *
240
245typedef bool (*wmem_foreach_func)(const void *key, void *value, void *userdata);
246
247
249typedef void (*wmem_printer_func)(const void *data);
250
251
257WS_DLL_PUBLIC
258bool
260 void *user_data);
261
262
263/* Accepts callbacks to print the key and/or data (both printers can be null) */
264WS_DLL_PUBLIC
265void
266wmem_print_tree(wmem_tree_t *tree, wmem_printer_func key_printer, wmem_printer_func data_printer);
267
271#ifdef __cplusplus
272}
273#endif /* __cplusplus */
274
275#endif /* __WMEM_TREE_H__ */
276
277/*
278 * Editor modelines - https://www.wireshark.org/tools/modelines.html
279 *
280 * Local variables:
281 * c-basic-offset: 4
282 * tab-width: 8
283 * indent-tabs-mode: nil
284 * End:
285 *
286 * vi: set shiftwidth=4 tabstop=8 expandtab:
287 * :indentSize=4:tabSize=8:noTabs=true:
288 */
WS_DLL_PUBLIC wmem_tree_t * wmem_tree_new_autoreset(wmem_allocator_t *metadata_scope, wmem_allocator_t *data_scope)
Definition wmem_tree.c:399
WS_DLL_PUBLIC void wmem_tree_insert_string(wmem_tree_t *tree, const char *key, void *data, uint32_t flags)
Definition wmem_tree.c:919
WS_DLL_PUBLIC bool wmem_tree_is_empty(wmem_tree_t *tree)
Definition wmem_tree.c:459
WS_DLL_PUBLIC void * wmem_tree_lookup32_le_full(wmem_tree_t *tree, uint32_t key, uint32_t *orig_key)
Definition wmem_tree.c:800
WS_DLL_PUBLIC void wmem_tree_insert32(wmem_tree_t *tree, uint32_t key, void *data)
Definition wmem_tree.c:660
void(* wmem_printer_func)(const void *data)
Definition wmem_tree.h:249
WS_DLL_PUBLIC void * wmem_tree_lookup32_ge(wmem_tree_t *tree, uint32_t key)
Definition wmem_tree.c:878
WS_DLL_PUBLIC void * wmem_tree_lookup32(wmem_tree_t *tree, uint32_t key)
Definition wmem_tree.c:713
WS_DLL_PUBLIC void * wmem_tree_lookup32_array(wmem_tree_t *tree, wmem_tree_key_t *key)
Definition wmem_tree.c:1027
WS_DLL_PUBLIC bool wmem_tree_contains32(wmem_tree_t *tree, uint32_t key)
Definition wmem_tree.c:665
WS_DLL_PUBLIC void * wmem_tree_lookup_string(wmem_tree_t *tree, const char *key, uint32_t flags)
Definition wmem_tree.c:936
WS_DLL_PUBLIC unsigned wmem_tree_count(wmem_tree_t *tree)
Definition wmem_tree.c:473
WS_DLL_PUBLIC wmem_tree_t * wmem_tree_new(wmem_allocator_t *allocator)
Definition wmem_tree.c:360
WS_DLL_PUBLIC void * wmem_tree_lookup32_le(wmem_tree_t *tree, uint32_t key)
Definition wmem_tree.c:789
WS_DLL_PUBLIC void wmem_tree_insert32_array(wmem_tree_t *tree, wmem_tree_key_t *key, void *data)
Definition wmem_tree.c:967
WS_DLL_PUBLIC void * wmem_tree_lookup32_ge_full(wmem_tree_t *tree, uint32_t key, uint32_t *orig_key)
Definition wmem_tree.c:889
WS_DLL_PUBLIC void * wmem_tree_remove_string(wmem_tree_t *tree, const char *key, uint32_t flags)
Definition wmem_tree.c:950
WS_DLL_PUBLIC bool wmem_tree_foreach(wmem_tree_t *tree, wmem_foreach_func callback, void *user_data)
Definition wmem_tree.c:1076
WS_DLL_PUBLIC void wmem_tree_destroy(wmem_tree_t *tree, bool free_keys, bool free_values)
Definition wmem_tree.c:446
WS_DLL_PUBLIC void * wmem_tree_lookup32_array_le(wmem_tree_t *tree, wmem_tree_key_t *key)
Definition wmem_tree.c:1033
bool(* wmem_foreach_func)(const void *key, void *value, void *userdata)
Definition wmem_tree.h:245
WS_DLL_PUBLIC void * wmem_tree_remove32(wmem_tree_t *tree, uint32_t key)
Definition wmem_tree.c:901
Definition wmem_allocator.h:27
Definition wmem_tree.h:176
uint32_t length
Definition wmem_tree.h:177
Definition wmem_tree-int.h:48