C/Migemo 1.4
stree.h
[詳解]
1// vim:set ts=8 sts=4 sw=4 tw=0 et:
2//
3// stree.h - Static version of mtree
4
5#pragma once
6
7#include <stdint.h>
8
9#include "charset.h"
10#include "mtree.h"
11
12#define STREE_HEAD_ID_V1 "MGS1"
13#define STREE_INVALID_NODE_ID 0xffffffff
14#define STREE_INVALID_WORD_IDX 0xffffffff
15
16typedef struct stree stree;
17
18typedef struct snode
19{
20 uint32_t code;
21 uint32_t start;
22 uint32_t end;
23 uint32_t word_idx;
25
26typedef struct stree_header
27{
28 uint8_t id[4];
29 uint32_t node_count;
30 uint32_t word_buf_size;
31 uint8_t charset;
33
43
44#ifdef __cplusplus
45extern "C" {
46#endif
47
48// Life cycle management
49void stree_destroy(stree *st);
51
52// Serialization
53stree *stree_load(const char *filename);
54int stree_save(stree *st, const char *filename);
55
56// Query
57snode *stree_query(stree *st, const unsigned char *query);
58
59#ifdef __cplusplus
60}
61#endif
#define CHARSET_PROC_CHAR2INT
Definition charset.h:21
int stree_save(stree *st, const char *filename)
Definition stree.c:213
stree * stree_from_mtree(mtree *mt)
Definition stree.c:143
stree * stree_load(const char *filename)
Definition stree.c:170
void stree_destroy(stree *st)
Definition stree.c:35
snode * stree_query(stree *st, const unsigned char *query)
Definition stree.c:265
Definition mtree.h:46
Definition stree.h:19
uint32_t word_idx
Definition stree.h:23
uint32_t code
Definition stree.h:20
uint32_t start
Definition stree.h:21
uint32_t end
Definition stree.h:22
Definition stree.h:27
uint8_t charset
Definition stree.h:31
uint32_t word_buf_size
Definition stree.h:30
uint32_t node_count
Definition stree.h:29
Definition stree.h:35
snode * nodes
Definition stree.h:38
uint8_t * word_buf
Definition stree.h:39
stree_header head
Definition stree.h:36
CHARSET_PROC_CHAR2INT char2int
Definition stree.h:41