tetengo 1.8.2
A multipurpose library set
Loading...
Searching...
No Matches
storage.h
Go to the documentation of this file.
1
7#if !defined(TETENGO_TRIE_STORAGE_H)
8#define TETENGO_TRIE_STORAGE_H
9
10#include <stdbool.h>
11#include <stddef.h>
12#include <stdint.h>
13#if defined(_WIN32)
14#include <wchar.h>
15#endif
16
17
18#if defined(__cplusplus)
19extern "C" {
20#endif
21
22#if !defined(DOCUMENTATION)
23#if !defined(TYPEDEF_TETENGO_TRIE_STORAGE_T)
24#define TYPEDEF_TETENGO_TRIE_STORAGE_T
25typedef struct tetengo_trie_storage_tag tetengo_trie_storage_t;
26#endif
27#if !defined(TYPEDEF_TETENGO_TRIE_TRIE_T)
28#define TYPEDEF_TETENGO_TRIE_TRIE_T
29typedef struct tetengo_trie_trie_tag tetengo_trie_trie_t;
30#endif
31#endif
32
33
37#if defined(_WIN32)
38typedef wchar_t path_character_type;
39#else
41#endif
42
49
57tetengo_trie_storage_t* tetengo_trie_storage_createStorage(const tetengo_trie_trie_t* p_trie);
58
67
76
87tetengo_trie_storage_t* tetengo_trie_storage_createMmapStorage(const path_character_type* path, size_t content_offset);
88
94void tetengo_trie_storage_destroy(const tetengo_trie_storage_t* p_storage);
95
103size_t tetengo_trie_storage_baseCheckSize(const tetengo_trie_storage_t* p_storage);
104
113int32_t tetengo_trie_storage_baseAt(const tetengo_trie_storage_t* p_storage, size_t base_check_index);
114
125bool tetengo_trie_storage_setBaseAt(tetengo_trie_storage_t* p_storage, size_t base_check_index, int32_t base);
126
135uint8_t tetengo_trie_storage_checkAt(const tetengo_trie_storage_t* p_storage, size_t base_check_index);
136
147bool tetengo_trie_storage_setCheckAt(tetengo_trie_storage_t* p_storage, size_t base_check_index, uint8_t check);
148
156size_t tetengo_trie_storage_valueCount(const tetengo_trie_storage_t* p_storage);
157
166const void* tetengo_trie_storage_valueAt(const tetengo_trie_storage_t* p_storage, size_t value_index);
167
180 tetengo_trie_storage_t* p_storage,
181 size_t value_index,
182 const void* p_value,
183 size_t value_size);
184
192double tetengo_trie_storage_fillingRate(const tetengo_trie_storage_t* p_storage);
193
205 const tetengo_trie_storage_t* p_storage,
206 const path_character_type* path,
207 size_t fixed_value_size);
208
216tetengo_trie_storage_t* tetengo_trie_storage_clone(const tetengo_trie_storage_t* p_storage);
217
218
219#if defined(__cplusplus)
220}
221#endif
222
223
224#endif
tetengo_trie_storage_t * tetengo_trie_storage_createSharedStorage(const path_character_type *path)
Creates a shared storage.
tetengo_trie_storage_t * tetengo_trie_storage_createMemoryStorage(const path_character_type *path)
Creates a memory storage.
uint8_t tetengo_trie_storage_checkAt(const tetengo_trie_storage_t *p_storage, size_t base_check_index)
Returns the check value.
size_t tetengo_trie_storage_baseCheckSize(const tetengo_trie_storage_t *p_storage)
Returns the base-check size.
tetengo_trie_storage_t * tetengo_trie_storage_createMmapStorage(const path_character_type *path, size_t content_offset)
Creates an mmap storage.
bool tetengo_trie_storage_setCheckAt(tetengo_trie_storage_t *p_storage, size_t base_check_index, uint8_t check)
Sets a check value.
void tetengo_trie_storage_destroy(const tetengo_trie_storage_t *p_storage)
Destroys a storage.
size_t tetengo_trie_storage_valueCount(const tetengo_trie_storage_t *p_storage)
Returns the value count.
double tetengo_trie_storage_fillingRate(const tetengo_trie_storage_t *p_storage)
Returns the filling rate.
bool tetengo_trie_storage_setBaseAt(tetengo_trie_storage_t *p_storage, size_t base_check_index, int32_t base)
Sets a base value.
tetengo_trie_storage_t * tetengo_trie_storage_clone(const tetengo_trie_storage_t *p_storage)
Clones a storage.
uint8_t tetengo_trie_storage_vacantCheckValue()
Returns the check value for a vacant element.
tetengo_trie_storage_t * tetengo_trie_storage_createStorage(const tetengo_trie_trie_t *p_trie)
Creates a storage.
int32_t tetengo_trie_storage_baseAt(const tetengo_trie_storage_t *p_storage, size_t base_check_index)
Returns the base value.
char path_character_type
A path character type.
Definition storage.h:40
bool tetengo_trie_storage_serialize(const tetengo_trie_storage_t *p_storage, const path_character_type *path, size_t fixed_value_size)
Serializes the storage.
bool tetengo_trie_storage_addValueAt(tetengo_trie_storage_t *p_storage, size_t value_index, const void *p_value, size_t value_size)
Adds a value object.
const void * tetengo_trie_storage_valueAt(const tetengo_trie_storage_t *p_storage, size_t value_index)
Returns the value object.