diff options
author | Igor Sysoev <igor@sysoev.ru> | 2004-05-25 15:28:46 +0000 |
---|---|---|
committer | Igor Sysoev <igor@sysoev.ru> | 2004-05-25 15:28:46 +0000 |
commit | 822834e2274e6b2946ee758981ba0c261cedc69e (patch) | |
tree | e23bc338faf7188d8ec8fea941d812fa312af20f /src/core/ngx_radix_tree.h | |
parent | 01b5eab38147e84a1cde453059279c5ad7ad2293 (diff) | |
download | nginx-822834e2274e6b2946ee758981ba0c261cedc69e.tar.gz nginx-822834e2274e6b2946ee758981ba0c261cedc69e.zip |
nginx-0.0.3-2004-05-25-19:28:46 import
Diffstat (limited to 'src/core/ngx_radix_tree.h')
-rw-r--r-- | src/core/ngx_radix_tree.h | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/src/core/ngx_radix_tree.h b/src/core/ngx_radix_tree.h new file mode 100644 index 000000000..6fe574b50 --- /dev/null +++ b/src/core/ngx_radix_tree.h @@ -0,0 +1,34 @@ +#ifndef _NGX_RADIX_TREE_H_INCLUDED_ +#define _NGX_RADIX_TREE_H_INCLUDED_ + + +#include <ngx_config.h> +#include <ngx_core.h> + + +typedef struct ngx_radix_node_s ngx_radix_node_t; + +struct ngx_radix_node_s { + uintptr_t value; + ngx_radix_node_t *right; + ngx_radix_node_t *left; +}; + + +typedef struct { + ngx_radix_node_t *root; + ngx_pool_t *pool; + char *free; + size_t size; +} ngx_radix_tree_t; + + +ngx_radix_tree_t *ngx_radix_tree_create(ngx_pool_t *pool); +ngx_int_t ngx_radix32tree_insert(ngx_radix_tree_t *tree, + uint32_t key, uint32_t mask, uintptr_t value); +void ngx_radix32tree_delete(ngx_radix_tree_t *tree, + uint32_t key, uint32_t mask); +uintptr_t ngx_radix32tree_find(ngx_radix_tree_t *tree, uint32_t key); + + +#endif /* _NGX_RADIX_TREE_H_INCLUDED_ */ |