acl  3.5.3.0
acl_token_tree.h 文件参考
#include "acl_define.h"
#include "acl_vstring.h"
#include "acl_iterator.h"
+ acl_token_tree.h 的引用(Include)关系图:
+ 此图展示该文件直接或间接的被哪些文件引用了:

浏览源代码.

struct  ACL_TOKEN
 

宏定义

#define ACL_PRINT_CHAR(x)
 
#define ACL_TOKEN_F_NONE   0
 
#define ACL_TOKEN_F_STOP   (1 << 0)
 
#define ACL_TOKEN_F_PASS   (1 << 1)
 
#define ACL_TOKEN_F_DENY   (1 << 2)
 
#define ACL_TOKEN_F_UTF8   (1 << 3)
 
#define ACL_TOKEN_WIDTH   256
 
#define ACL_TOKEN_TREE_WORD_MATCH(acl_token_tree_in, word_in, acl_token_out)
 
#define ACL_TOKEN_TREE_MATCH(acl_token_tree_in, s_in, delim_in, delim_tab_in, acl_token_out)
 

类型定义

typedef struct ACL_TOKEN ACL_TOKEN
 

函数

ACL_API char * acl_token_delim_tab_new (const char *delim)
 
ACL_API void acl_token_delim_tab_free (char *delim_tab)
 
ACL_API ACL_TOKENacl_token_new (void)
 
ACL_API void acl_token_free (ACL_TOKEN *token)
 
ACL_API void acl_token_name (ACL_TOKEN *token, ACL_VSTRING *buf)
 
ACL_API const char * acl_token_name1 (ACL_TOKEN *token)
 
ACL_API ACL_TOKENacl_token_tree_add (ACL_TOKEN *tree, const char *word, unsigned int flag, const void *ctx)
 
ACL_API ACL_TOKENacl_token_tree_add_word_map (ACL_TOKEN *tree, const char *word, const char *word_map, unsigned int flag)
 
ACL_API ACL_TOKENacl_token_tree_word_match (ACL_TOKEN *tree, const char *word)
 
ACL_API void * acl_token_tree_word_remove (ACL_TOKEN *tree, const char *word)
 
ACL_API ACL_TOKENacl_token_tree_match (ACL_TOKEN *tree, const char **ptr, const char *delim, const char *delim_tab)
 
ACL_API void acl_token_tree_walk (ACL_TOKEN *tree, void(*walk_fn)(ACL_TOKEN *, void *), void *arg)
 
ACL_API void acl_token_tree_print (ACL_TOKEN *tree)
 
ACL_API ACL_TOKENacl_token_tree_create (const char *s)
 
ACL_API ACL_TOKENacl_token_tree_create2 (const char *s, const char *sep)
 
ACL_API void acl_token_tree_destroy (ACL_TOKEN *tree)
 
ACL_API void acl_token_tree_load_deny (const char *filepath, ACL_TOKEN *tree)
 
ACL_API void acl_token_tree_load_pass (const char *filepath, ACL_TOKEN *tree)
 

宏定义说明

◆ ACL_PRINT_CHAR

#define ACL_PRINT_CHAR (   x)
值:
((((x) >= 'a' && (x) <='z') \
|| ((x) >= 'A' && (x) <= 'Z') \
|| ((x) >= '0' && (x) <= '9') \
|| (x) == ';' || (x) == '!' \
|| (x) == ':' || (x) == ',' \
|| (x) == '.' || (x) == '@' \
|| (x) == '#' || (x) == '$' \
|| (x) == '%' || (x) == '^' \
|| (x) == '&' || (x) == '*' \
|| (x) == '(' || (x) == ')' \
|| (x) == '-' || (x) == '=' \
|| (x) == '|' || (x) == '\\' \
|| (x) == '[' || (x) == ']' \
|| (x) == '{' || (x) == '}' \
|| (x) == '\'' || (x) == '"') \
? (x) : '-')

在文件 acl_token_tree.h11 行定义.

◆ ACL_TOKEN_F_DENY

#define ACL_TOKEN_F_DENY   (1 << 2)

在文件 acl_token_tree.h37 行定义.

◆ ACL_TOKEN_F_NONE

#define ACL_TOKEN_F_NONE   0

在文件 acl_token_tree.h34 行定义.

◆ ACL_TOKEN_F_PASS

#define ACL_TOKEN_F_PASS   (1 << 1)

在文件 acl_token_tree.h36 行定义.

◆ ACL_TOKEN_F_STOP

#define ACL_TOKEN_F_STOP   (1 << 0)

在文件 acl_token_tree.h35 行定义.

◆ ACL_TOKEN_F_UTF8

#define ACL_TOKEN_F_UTF8   (1 << 3)

在文件 acl_token_tree.h38 行定义.

◆ ACL_TOKEN_TREE_MATCH

#define ACL_TOKEN_TREE_MATCH (   acl_token_tree_in,
  s_in,
  delim_in,
  delim_tab_in,
  acl_token_out 
)

在文件 acl_token_tree.h66 行定义.

◆ ACL_TOKEN_TREE_WORD_MATCH

#define ACL_TOKEN_TREE_WORD_MATCH (   acl_token_tree_in,
  word_in,
  acl_token_out 
)
值:
{ \
const unsigned char *_ptr = (const unsigned char*) word_in; \
ACL_TOKEN *_token_iter = acl_token_tree_in, *_token = NULL; \
while (*_ptr) { \
_token = _token_iter->tokens[*_ptr]; \
if (_token == NULL) \
break; \
_token_iter = _token; \
_ptr++; \
} \
if (_token && (_token->flag & ACL_TOKEN_F_STOP)) \
acl_token_out = _token; \
else \
acl_token_out = NULL; \
}
#define ACL_TOKEN_F_STOP

在文件 acl_token_tree.h49 行定义.

◆ ACL_TOKEN_WIDTH

#define ACL_TOKEN_WIDTH   256

在文件 acl_token_tree.h40 行定义.

类型定义说明

◆ ACL_TOKEN

typedef struct ACL_TOKEN ACL_TOKEN

在文件 acl_token_tree.h29 行定义.

函数说明

◆ acl_token_delim_tab_free()

ACL_API void acl_token_delim_tab_free ( char *  delim_tab)

◆ acl_token_delim_tab_new()

ACL_API char* acl_token_delim_tab_new ( const char *  delim)

◆ acl_token_free()

ACL_API void acl_token_free ( ACL_TOKEN token)

◆ acl_token_name()

ACL_API void acl_token_name ( ACL_TOKEN token,
ACL_VSTRING buf 
)

◆ acl_token_name1()

ACL_API const char* acl_token_name1 ( ACL_TOKEN token)

◆ acl_token_new()

ACL_API ACL_TOKEN* acl_token_new ( void  )

◆ acl_token_tree_add()

ACL_API ACL_TOKEN* acl_token_tree_add ( ACL_TOKEN tree,
const char *  word,
unsigned int  flag,
const void *  ctx 
)

◆ acl_token_tree_add_word_map()

ACL_API ACL_TOKEN* acl_token_tree_add_word_map ( ACL_TOKEN tree,
const char *  word,
const char *  word_map,
unsigned int  flag 
)

◆ acl_token_tree_create()

ACL_API ACL_TOKEN* acl_token_tree_create ( const char *  s)

◆ acl_token_tree_create2()

ACL_API ACL_TOKEN* acl_token_tree_create2 ( const char *  s,
const char *  sep 
)

◆ acl_token_tree_destroy()

ACL_API void acl_token_tree_destroy ( ACL_TOKEN tree)

◆ acl_token_tree_load_deny()

ACL_API void acl_token_tree_load_deny ( const char *  filepath,
ACL_TOKEN tree 
)

◆ acl_token_tree_load_pass()

ACL_API void acl_token_tree_load_pass ( const char *  filepath,
ACL_TOKEN tree 
)

◆ acl_token_tree_match()

ACL_API ACL_TOKEN* acl_token_tree_match ( ACL_TOKEN tree,
const char **  ptr,
const char *  delim,
const char *  delim_tab 
)

◆ acl_token_tree_print()

ACL_API void acl_token_tree_print ( ACL_TOKEN tree)

◆ acl_token_tree_walk()

ACL_API void acl_token_tree_walk ( ACL_TOKEN tree,
void(*)(ACL_TOKEN *, void *)  walk_fn,
void *  arg 
)

◆ acl_token_tree_word_match()

ACL_API ACL_TOKEN* acl_token_tree_word_match ( ACL_TOKEN tree,
const char *  word 
)

◆ acl_token_tree_word_remove()

ACL_API void* acl_token_tree_word_remove ( ACL_TOKEN tree,
const char *  word 
)