MiniOB 1
MiniOB is one mini database, helping developers to learn how database works.
载入中...
搜索中...
未找到
Public 成员函数 | Protected 成员函数 | Protected 属性 | 友元 | 所有成员列表
IndexNodeHandler类 参考

IndexNode 仅作为数据在内存或磁盘中的表示IndexNodeHandler 负责对IndexNode做各种操作。 作为一个类来说,虚函数会影响“结构体”真实的内存布局,所以将数据存储与操作分开 更多...

#include <bplus_tree.h>

类 IndexNodeHandler 继承关系图:
InternalIndexNodeHandler LeafIndexNodeHandler

Public 成员函数

 IndexNodeHandler (BplusTreeMiniTransaction &mtr, const IndexFileHeader &header, Frame *frame)
 
void init_empty (bool leaf)
 初始化一个新的页面 更多...
 
bool is_leaf () const
 是否叶子节点
 
virtual int key_size () const
 存储的键值大小
 
virtual int value_size () const
 存储的值的大小。内部节点和叶子节点是不一样的,但是这里返回的是叶子节点存储的大小 更多...
 
virtual int item_size () const
 存储的键值对的大小。值是指叶子节点中存放的数据 更多...
 
void increase_size (int n)
 
int size () const
 
int max_size () const
 
int min_size () const
 
RC set_parent_page_num (PageNum page_num)
 
PageNum parent_page_num () const
 
PageNum page_num () const
 
bool is_safe (BplusTreeOperationType op, bool is_root_node)
 判断对指定的操作,是否安全的 更多...
 
bool validate () const
 验证当前节点是否有问题
 
Frameframe () const
 
RC recover_insert_items (int index, const char *items, int num)
 
RC recover_remove_items (int index, int num)
 

Protected 成员函数

virtual char * __item_at (int index) const
 获取指定元素的开始内存位置 更多...
 
char * __key_at (int index) const
 
char * __value_at (int index) const
 

Protected 属性

BplusTreeMiniTransactionmtr_
 
const IndexFileHeaderheader_
 
Frameframe_ = nullptr
 
IndexNodenode_ = nullptr
 

友元

string to_string (const IndexNodeHandler &handler)
 

详细描述

IndexNode 仅作为数据在内存或磁盘中的表示

IndexNodeHandler 负责对IndexNode做各种操作。 作为一个类来说,虚函数会影响“结构体”真实的内存布局,所以将数据存储与操作分开

成员函数说明

◆ __item_at()

virtual char * IndexNodeHandler::__item_at ( int  index) const
inlineprotectedvirtual

获取指定元素的开始内存位置

注解
这并不是一个纯虚函数,是为了可以直接使用 IndexNodeHandler 类。 但是使用这个类时,注意不能使用与这个函数相关的函数。

LeafIndexNodeHandler , 以及 InternalIndexNodeHandler 重载.

◆ init_empty()

void IndexNodeHandler::init_empty ( bool  leaf)

初始化一个新的页面

参数
leaf是否叶子节点

◆ is_safe()

bool IndexNodeHandler::is_safe ( BplusTreeOperationType  op,
bool  is_root_node 
)

判断对指定的操作,是否安全的

安全是指在操作执行后,节点不需要调整,比如分裂、合并或重新分配

参数
op将要执行的操作
is_root_node是否根节点

检查一个节点经过插入或删除操作后是否需要分裂或合并操作

返回
true 需要分裂或合并; false 不需要分裂或合并

◆ item_size()

int IndexNodeHandler::item_size ( ) const
virtual

存储的键值对的大小。值是指叶子节点中存放的数据

InternalIndexNodeHandler 重载.

◆ value_size()

int IndexNodeHandler::value_size ( ) const
virtual

存储的值的大小。内部节点和叶子节点是不一样的,但是这里返回的是叶子节点存储的大小

InternalIndexNodeHandler 重载.


该类的文档由以下文件生成: