CMGDK r49-rc2
|
#include "my_base.h"
组合类型 | |
struct | st_tree_element |
struct | st_tree |
宏定义 | |
#define | MAX_TREE_HEIGHT 64 |
#define | ELEMENT_KEY(tree, element) |
#define | tree_set_pointer(element, ptr) *((uchar **) (element+1))=((uchar*) (ptr)) |
#define | TREE_NO_DUPS 1 |
#define | ELEMENT_CHILD(element, offs) (*(TREE_ELEMENT**)((char*)element + offs)) |
#define | is_tree_inited(tree) ((tree)->root != 0) |
#define | reset_free_element(tree) (tree)->free= 0 |
#define | TREE_ELEMENT_EXTRA_SIZE (sizeof(TREE_ELEMENT) + sizeof(void*)) |
类型定义 | |
typedef uint32 | element_count |
typedef int(* | tree_walk_action )(void *, element_count, void *) |
typedef void(* | tree_element_free )(void *, TREE_FREE, void *) |
typedef struct st_tree_element | TREE_ELEMENT |
typedef struct st_tree | TREE |
枚举 | |
enum | TREE_WALK { left_root_right, right_root_left } |
enum | TREE_FREE { free_init, free_free, free_end } |
函数 | |
void | init_tree (TREE *tree, ulong default_alloc_size, ulong memory_limit, int size, qsort_cmp2 compare, my_bool with_delete, tree_element_free free_element, void *custom_arg) |
void | delete_tree (TREE *) |
void | reset_tree (TREE *) |
TREE_ELEMENT * | tree_insert (TREE *tree, void *key, uint key_size, void *custom_arg) |
void * | tree_search (TREE *tree, void *key, void *custom_arg) |
int | tree_walk (TREE *tree, tree_walk_action action, void *argument, TREE_WALK visit) |
int | tree_delete (TREE *tree, void *key, uint key_size, void *custom_arg) |
void * | tree_search_key (TREE *tree, const void *key, TREE_ELEMENT **parents, TREE_ELEMENT ***last_pos, enum ha_rkey_function flag, void *custom_arg) |
void * | tree_search_edge (TREE *tree, TREE_ELEMENT **parents, TREE_ELEMENT ***last_pos, int child_offs) |
void * | tree_search_next (TREE *tree, TREE_ELEMENT ***last_pos, int l_offs, int r_offs) |
ha_rows | tree_record_pos (TREE *tree, const void *key, enum ha_rkey_function search_flag, void *custom_arg) |
#define ELEMENT_CHILD | ( | element, | |
offs | |||
) | (*(TREE_ELEMENT**)((char*)element + offs)) |
#define ELEMENT_KEY | ( | tree, | |
element | |||
) |
(tree->offset_to_key ? (void*)((uchar*) element+tree->offset_to_key) :\ *((void**) (element+1)))
#define is_tree_inited | ( | tree | ) | ((tree)->root != 0) |
#define MAX_TREE_HEIGHT 64 |
#define reset_free_element | ( | tree | ) | (tree)->free= 0 |
#define TREE_ELEMENT_EXTRA_SIZE (sizeof(TREE_ELEMENT) + sizeof(void*)) |
#define TREE_NO_DUPS 1 |
typedef uint32 element_count |
typedef struct st_tree_element TREE_ELEMENT |
typedef void(* tree_element_free)(void *, TREE_FREE, void *) |
typedef int(* tree_walk_action)(void *, element_count, void *) |
enum TREE_FREE |
enum TREE_WALK |
void delete_tree | ( | TREE * | ) |
void init_tree | ( | TREE * | tree, |
ulong | default_alloc_size, | ||
ulong | memory_limit, | ||
int | size, | ||
qsort_cmp2 | compare, | ||
my_bool | with_delete, | ||
tree_element_free | free_element, | ||
void * | custom_arg | ||
) |
void reset_tree | ( | TREE * | ) |
TREE_ELEMENT* tree_insert | ( | TREE * | tree, |
void * | key, | ||
uint | key_size, | ||
void * | custom_arg | ||
) |
ha_rows tree_record_pos | ( | TREE * | tree, |
const void * | key, | ||
enum ha_rkey_function | search_flag, | ||
void * | custom_arg | ||
) |
void* tree_search | ( | TREE * | tree, |
void * | key, | ||
void * | custom_arg | ||
) |
void* tree_search_edge | ( | TREE * | tree, |
TREE_ELEMENT ** | parents, | ||
TREE_ELEMENT *** | last_pos, | ||
int | child_offs | ||
) |
void* tree_search_key | ( | TREE * | tree, |
const void * | key, | ||
TREE_ELEMENT ** | parents, | ||
TREE_ELEMENT *** | last_pos, | ||
enum ha_rkey_function | flag, | ||
void * | custom_arg | ||
) |
void* tree_search_next | ( | TREE * | tree, |
TREE_ELEMENT *** | last_pos, | ||
int | l_offs, | ||
int | r_offs | ||
) |
int tree_walk | ( | TREE * | tree, |
tree_walk_action | action, | ||
void * | argument, | ||
TREE_WALK | visit | ||
) |