Groonga 3.0.9 Source Code Document
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
ngx_radix_tree.h
Go to the documentation of this file.
1 
2 /*
3  * Copyright (C) Igor Sysoev
4  * Copyright (C) Nginx, Inc.
5  */
6 
7 
8 #ifndef _NGX_RADIX_TREE_H_INCLUDED_
9 #define _NGX_RADIX_TREE_H_INCLUDED_
10 
11 
12 #include <ngx_config.h>
13 #include <ngx_core.h>
14 
15 
16 #define NGX_RADIX_NO_VALUE (uintptr_t) -1
17 
19 
24  uintptr_t value;
25 };
26 
27 
28 typedef struct {
32  char *start;
33  size_t size;
35 
36 
38  ngx_int_t preallocate);
39 
41  uint32_t key, uint32_t mask, uintptr_t value);
43  uint32_t key, uint32_t mask);
44 uintptr_t ngx_radix32tree_find(ngx_radix_tree_t *tree, uint32_t key);
45 
46 #if (NGX_HAVE_INET6)
47 ngx_int_t ngx_radix128tree_insert(ngx_radix_tree_t *tree,
48  u_char *key, u_char *mask, uintptr_t value);
49 ngx_int_t ngx_radix128tree_delete(ngx_radix_tree_t *tree,
50  u_char *key, u_char *mask);
51 uintptr_t ngx_radix128tree_find(ngx_radix_tree_t *tree, u_char *key);
52 #endif
53 
54 
55 #endif /* _NGX_RADIX_TREE_H_INCLUDED_ */