/[LeafOK_CVS]/lbbs/include/trie_dict.h
ViewVC logotype

Annotation of /lbbs/include/trie_dict.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.4 - (hide annotations)
Sun May 25 06:45:42 2025 UTC (9 months, 3 weeks ago) by sysadm
Branch: MAIN
Changes since 1.3: +6 -0 lines
Content type: text/x-chdr
Move trie_dict to SHM

1 sysadm 1.1 /***************************************************************************
2     trie_dict.h - description
3     -------------------
4     Copyright : (C) 2004-2025 by Leaflet
5     Email : leaflet@leafok.com
6     ***************************************************************************/
7    
8     /***************************************************************************
9     * *
10     * This program is free software; you can redistribute it and/or modify *
11     * it under the terms of the GNU General Public License as published by *
12     * the Free Software Foundation; either version 3 of the License, or *
13     * (at your option) any later version. *
14     * *
15     ***************************************************************************/
16    
17     #ifndef _TRIE_DICT_H_
18     #define _TRIE_DICT_H_
19    
20     #include <stdint.h>
21    
22 sysadm 1.3 #define TRIE_CHILDREN 256
23 sysadm 1.2 #define TRIE_MAX_KEY_LEN 1023
24 sysadm 1.1
25     struct trie_node_t
26     {
27     int64_t values[TRIE_CHILDREN];
28     int8_t flags[TRIE_CHILDREN];
29     struct trie_node_t *p_nodes[TRIE_CHILDREN];
30     };
31     typedef struct trie_node_t TRIE_NODE;
32    
33 sysadm 1.2 typedef void (*trie_dict_traverse_cb)(const char *, int64_t);
34    
35 sysadm 1.4 extern int trie_dict_init(const char *filename);
36     extern void trie_dict_cleanup(void);
37    
38     extern int set_trie_dict_shm_readonly(void);
39     extern int detach_trie_dict_shm(void);
40    
41 sysadm 1.1 extern TRIE_NODE *trie_dict_create(void);
42     extern void trie_dict_destroy(TRIE_NODE *p_dict);
43    
44     extern int trie_dict_set(TRIE_NODE *p_dict, const char *key, int64_t value);
45     extern int trie_dict_get(TRIE_NODE *p_dict, const char *key, int64_t *p_value);
46     extern int trie_dict_del(TRIE_NODE *p_dict, const char *key);
47    
48 sysadm 1.2 extern void trie_dict_traverse(TRIE_NODE *p_dict, trie_dict_traverse_cb cb);
49    
50 sysadm 1.1 #endif //_TRIE_DICT_H_

webmaster@leafok.com
ViewVC Help
Powered by ViewVC 1.3.0-beta1