/[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.5 - (hide annotations)
Sun May 25 08:10:48 2025 UTC (9 months, 3 weeks ago) by sysadm
Branch: MAIN
Changes since 1.4: +4 -1 lines
Content type: text/x-chdr
Refine trie_dict

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.5 #define TRIE_NODE_PER_POOL 2000
25 sysadm 1.1
26     struct trie_node_t
27     {
28     int64_t values[TRIE_CHILDREN];
29     int8_t flags[TRIE_CHILDREN];
30     struct trie_node_t *p_nodes[TRIE_CHILDREN];
31     };
32     typedef struct trie_node_t TRIE_NODE;
33    
34 sysadm 1.2 typedef void (*trie_dict_traverse_cb)(const char *, int64_t);
35    
36 sysadm 1.5 extern int trie_dict_init(const char *filename, int node_count_limit);
37 sysadm 1.4 extern void trie_dict_cleanup(void);
38    
39     extern int set_trie_dict_shm_readonly(void);
40     extern int detach_trie_dict_shm(void);
41    
42 sysadm 1.1 extern TRIE_NODE *trie_dict_create(void);
43     extern void trie_dict_destroy(TRIE_NODE *p_dict);
44    
45     extern int trie_dict_set(TRIE_NODE *p_dict, const char *key, int64_t value);
46     extern int trie_dict_get(TRIE_NODE *p_dict, const char *key, int64_t *p_value);
47     extern int trie_dict_del(TRIE_NODE *p_dict, const char *key);
48    
49 sysadm 1.2 extern void trie_dict_traverse(TRIE_NODE *p_dict, trie_dict_traverse_cb cb);
50    
51 sysadm 1.5 extern int trie_dict_used_nodes(void);
52    
53 sysadm 1.1 #endif //_TRIE_DICT_H_

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