MiniOB 1
MiniOB is one mini database, helping developers to learn how database works.
载入中...
搜索中...
未找到
Public 成员函数 | 静态 Public 成员函数 | Private 成员函数 | 所有成员列表
LogHandler类 参考abstract

对外提供服务的CLog模块 更多...

#include <log_handler.h>

类 LogHandler 继承关系图:
DiskLogHandler VacuousLogHandler

Public 成员函数

virtual RC init (const char *path)=0
 初始化日志模块 更多...
 
virtual RC start ()=0
 启动日志模块 更多...
 
virtual RC stop ()=0
 停止日志模块 更多...
 
virtual RC await_termination ()=0
 等待日志模块停止 更多...
 
virtual RC replay (LogReplayer &replayer, LSN start_lsn)=0
 回放日志 更多...
 
virtual RC iterate (function< RC(LogEntry &)> consumer, LSN start_lsn)=0
 迭代日志 更多...
 
virtual RC append (LSN &lsn, LogModule::Id module, span< const char > data)
 写入一条日志 更多...
 
virtual RC append (LSN &lsn, LogModule::Id module, vector< char > &&data)
 
virtual RC wait_lsn (LSN lsn)=0
 等待某个LSN的日志被刷新到磁盘 更多...
 
virtual LSN current_lsn () const =0
 

静态 Public 成员函数

static RC create (const char *name, LogHandler *&handler)
 

Private 成员函数

virtual RC _append (LSN &lsn, LogModule module, vector< char > &&data)=0
 写入一条日志 更多...
 

详细描述

对外提供服务的CLog模块

该模块负责日志的写入、读取、回放等功能。 会在后台开启一个线程,一直尝试刷新内存中的日志到磁盘。 所有的CLog日志文件都存放在指定的目录下,每个日志文件按照日志条数来划分。

成员函数说明

◆ _append()

virtual RC LogHandler::_append ( LSN &  lsn,
LogModule  module,
vector< char > &&  data 
)
privatepure virtual

写入一条日志

子类应该重现实现这个函数

VacuousLogHandler , 以及 DiskLogHandler 内被实现.

◆ append()

RC LogHandler::append ( LSN &  lsn,
LogModule::Id  module,
span< const char >  data 
)
virtual

写入一条日志

参数
lsn返回的LSN
module日志模块
data日志数据
注解
子类不应该重新实现这个函数

◆ await_termination()

virtual RC LogHandler::await_termination ( )
pure virtual

等待日志模块停止

DiskLogHandler , 以及 VacuousLogHandler 内被实现.

◆ current_lsn()

virtual LSN LogHandler::current_lsn ( ) const
pure virtual

DiskLogHandler 内被实现.

◆ init()

virtual RC LogHandler::init ( const char *  path)
pure virtual

初始化日志模块

参数
path日志文件存放的目录

DiskLogHandler , 以及 VacuousLogHandler 内被实现.

◆ iterate()

virtual RC LogHandler::iterate ( function< RC(LogEntry &)>  consumer,
LSN  start_lsn 
)
pure virtual

迭代日志

参数
consumer消费者
start_lsn从哪个LSN开始迭代

DiskLogHandler , 以及 VacuousLogHandler 内被实现.

◆ replay()

virtual RC LogHandler::replay ( LogReplayer replayer,
LSN  start_lsn 
)
pure virtual

回放日志

参数
replayer日志回放器
start_lsn从哪个LSN开始回放

DiskLogHandler , 以及 VacuousLogHandler 内被实现.

◆ start()

virtual RC LogHandler::start ( )
pure virtual

启动日志模块

DiskLogHandler , 以及 VacuousLogHandler 内被实现.

◆ stop()

virtual RC LogHandler::stop ( )
pure virtual

停止日志模块

DiskLogHandler , 以及 VacuousLogHandler 内被实现.

◆ wait_lsn()

virtual RC LogHandler::wait_lsn ( LSN  lsn)
pure virtual

等待某个LSN的日志被刷新到磁盘

参数
lsn日志的LSN

DiskLogHandler , 以及 VacuousLogHandler 内被实现.


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