Groonga 3.0.9 Source Code Document
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Data Structures | Macros | Typedefs | Functions
ngx_rbtree.h File Reference
#include <ngx_config.h>
#include <ngx_core.h>
Include dependency graph for ngx_rbtree.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  ngx_rbtree_node_s
struct  ngx_rbtree_s

Macros

#define ngx_rbtree_init(tree, s, i)
#define ngx_rbt_red(node)   ((node)->color = 1)
#define ngx_rbt_black(node)   ((node)->color = 0)
#define ngx_rbt_is_red(node)   ((node)->color)
#define ngx_rbt_is_black(node)   (!ngx_rbt_is_red(node))
#define ngx_rbt_copy_color(n1, n2)   (n1->color = n2->color)
#define ngx_rbtree_sentinel_init(node)   ngx_rbt_black(node)

Typedefs

typedef ngx_uint_t ngx_rbtree_key_t
typedef ngx_int_t ngx_rbtree_key_int_t
typedef struct ngx_rbtree_node_s ngx_rbtree_node_t
typedef struct ngx_rbtree_s ngx_rbtree_t
typedef void(* ngx_rbtree_insert_pt )(ngx_rbtree_node_t *root, ngx_rbtree_node_t *node, ngx_rbtree_node_t *sentinel)

Functions

void ngx_rbtree_insert (ngx_thread_volatile ngx_rbtree_t *tree, ngx_rbtree_node_t *node)
void ngx_rbtree_delete (ngx_thread_volatile ngx_rbtree_t *tree, ngx_rbtree_node_t *node)
void ngx_rbtree_insert_value (ngx_rbtree_node_t *root, ngx_rbtree_node_t *node, ngx_rbtree_node_t *sentinel)
void ngx_rbtree_insert_timer_value (ngx_rbtree_node_t *root, ngx_rbtree_node_t *node, ngx_rbtree_node_t *sentinel)

Macro Definition Documentation

#define ngx_rbt_black (   node)    ((node)->color = 0)

Definition at line 62 of file ngx_rbtree.h.

#define ngx_rbt_copy_color (   n1,
  n2 
)    (n1->color = n2->color)

Definition at line 65 of file ngx_rbtree.h.

#define ngx_rbt_is_black (   node)    (!ngx_rbt_is_red(node))

Definition at line 64 of file ngx_rbtree.h.

#define ngx_rbt_is_red (   node)    ((node)->color)

Definition at line 63 of file ngx_rbtree.h.

#define ngx_rbt_red (   node)    ((node)->color = 1)

Definition at line 61 of file ngx_rbtree.h.

#define ngx_rbtree_init (   tree,
  s,
 
)
Value:
(tree)->root = s; \
(tree)->sentinel = s; \
(tree)->insert = i

Definition at line 44 of file ngx_rbtree.h.

#define ngx_rbtree_sentinel_init (   node)    ngx_rbt_black(node)

Definition at line 70 of file ngx_rbtree.h.

Typedef Documentation

typedef void(* ngx_rbtree_insert_pt)(ngx_rbtree_node_t *root, ngx_rbtree_node_t *node, ngx_rbtree_node_t *sentinel)

Definition at line 34 of file ngx_rbtree.h.

Definition at line 17 of file ngx_rbtree.h.

Definition at line 16 of file ngx_rbtree.h.

Definition at line 20 of file ngx_rbtree.h.

typedef struct ngx_rbtree_s ngx_rbtree_t

Definition at line 32 of file ngx_rbtree.h.

Function Documentation

void ngx_rbtree_delete ( ngx_thread_volatile ngx_rbtree_t tree,
ngx_rbtree_node_t node 
)

Definition at line 158 of file ngx_rbtree.c.

Here is the caller graph for this function:

void ngx_rbtree_insert ( ngx_thread_volatile ngx_rbtree_t tree,
ngx_rbtree_node_t node 
)

Definition at line 25 of file ngx_rbtree.c.

Here is the caller graph for this function:

void ngx_rbtree_insert_timer_value ( ngx_rbtree_node_t root,
ngx_rbtree_node_t node,
ngx_rbtree_node_t sentinel 
)

Definition at line 123 of file ngx_rbtree.c.

Here is the caller graph for this function:

void ngx_rbtree_insert_value ( ngx_rbtree_node_t root,
ngx_rbtree_node_t node,
ngx_rbtree_node_t sentinel 
)

Definition at line 98 of file ngx_rbtree.c.

Here is the caller graph for this function: