Mercurial > hg > nginx
comparison src/core/ngx_radix_tree.h @ 2369:12e8e0045096 radix_with_skip
add radix tree skip node
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Wed, 03 Dec 2008 13:26:02 +0000 |
parents | 62be1c4edfba |
children |
comparison
equal
deleted
inserted
replaced
2368:62be1c4edfba | 2369:12e8e0045096 |
---|---|
17 typedef struct ngx_radix_node_s ngx_radix_node_t; | 17 typedef struct ngx_radix_node_s ngx_radix_node_t; |
18 | 18 |
19 struct ngx_radix_node_s { | 19 struct ngx_radix_node_s { |
20 ngx_radix_node_t *right; | 20 ngx_radix_node_t *right; |
21 ngx_radix_node_t *left; | 21 ngx_radix_node_t *left; |
22 ngx_uint_t skip; | 22 uintptr_t skip; |
23 uintptr_t value; | 23 uintptr_t value; |
24 }; | 24 }; |
25 | 25 |
26 | 26 |
27 typedef struct { | 27 typedef struct { |
28 ngx_radix_node_t *root; | 28 ngx_radix_node_t *root; |
29 ngx_pool_t *pool; | 29 ngx_pool_t *pool; |
30 ngx_radix_node_t *free; | 30 ngx_radix_node_t *free; |
31 char *start; | 31 char *start; |
32 size_t size; | 32 size_t size; |
33 ngx_uint_t count; | |
33 } ngx_radix_tree_t; | 34 } ngx_radix_tree_t; |
34 | 35 |
35 | 36 |
36 ngx_radix_tree_t *ngx_radix_tree_create(ngx_pool_t *pool, | 37 ngx_radix_tree_t *ngx_radix_tree_create(ngx_pool_t *pool, |
37 ngx_int_t preallocate); | 38 ngx_int_t preallocate); |
38 ngx_int_t ngx_radix32tree_insert(ngx_radix_tree_t *tree, | 39 ngx_int_t ngx_radix32tree_insert(ngx_radix_tree_t *tree, |
39 uint32_t key, uint32_t mask, uintptr_t value); | 40 uint32_t key, uint32_t mask, uintptr_t value); |
40 ngx_int_t ngx_radix32tree_delete(ngx_radix_tree_t *tree, | 41 ngx_int_t ngx_radix32tree_delete(ngx_radix_tree_t *tree, |
41 uint32_t key, uint32_t mask); | 42 uint32_t key, uint32_t mask); |
43 void ngx_radix32tree_compress(ngx_radix_tree_t *tree); | |
42 uintptr_t ngx_radix32tree_find(ngx_radix_tree_t *tree, uint32_t key); | 44 uintptr_t ngx_radix32tree_find(ngx_radix_tree_t *tree, uint32_t key); |
43 | 45 |
44 | 46 |
45 #endif /* _NGX_RADIX_TREE_H_INCLUDED_ */ | 47 #endif /* _NGX_RADIX_TREE_H_INCLUDED_ */ |