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

用于命令行模式的通讯器 更多...

#include <cli_communicator.h>

类 CliCommunicator 继承关系图:
PlainCommunicator Communicator

Public 成员函数

RC init (int fd, Session *session, const std::string &addr) override
 接收到一个新的连接时,进行初始化 更多...
 
RC read_event (SessionEvent *&event) override
 监听到有新的数据到达,调用此函数进行接收消息 如果需要创建新的任务来处理,那么就创建一个SessionEvent 对象并通过event参数返回。 更多...
 
RC write_result (SessionEvent *event, bool &need_disconnect) override
 在任务处理完成后,通过此接口将结果返回给客户端 更多...
 
- Public 成员函数 继承自 PlainCommunicator
RC read_event (SessionEvent *&event) override
 监听到有新的数据到达,调用此函数进行接收消息 如果需要创建新的任务来处理,那么就创建一个SessionEvent 对象并通过event参数返回。 更多...
 
RC write_result (SessionEvent *event, bool &need_disconnect) override
 在任务处理完成后,通过此接口将结果返回给客户端 更多...
 
- Public 成员函数 继承自 Communicator
virtual RC init (int fd, Session *session, const std::string &addr)
 接收到一个新的连接时,进行初始化 更多...
 
virtual RC read_event (SessionEvent *&event)=0
 监听到有新的数据到达,调用此函数进行接收消息 如果需要创建新的任务来处理,那么就创建一个SessionEvent 对象并通过event参数返回。 更多...
 
virtual RC write_result (SessionEvent *event, bool &need_disconnect)=0
 在任务处理完成后,通过此接口将结果返回给客户端 更多...
 
Sessionsession () const
 关联的会话信息
 
struct event & read_event ()
 libevent使用的数据,参考server.cpp
 
const char * addr () const
 对端地址 如果是unix socket,可能没有意义
 

Private 属性

int write_fd_ = -1
 与使用远程通讯模式不同,如果读数据使用标准输入,那么输出应该是标准输出
 

额外继承的成员函数

- Protected 属性 继承自 PlainCommunicator
std::vector< char > send_message_delimiter_
 发送消息分隔符
 
std::vector< char > debug_message_prefix_
 调试信息前缀
 
- Protected 属性 继承自 Communicator
Sessionsession_ = nullptr
 
struct event read_event_
 
std::string addr_
 
BufferedWriterwriter_ = nullptr
 
int fd_ = -1
 

详细描述

用于命令行模式的通讯器

直接通过终端/标准输入输出进行通讯。从这里的实现来看,是不需要libevent的一些实现的, 因此communicator需要重构,或者需要重构server中的各个通讯启动模式。

成员函数说明

◆ init()

RC CliCommunicator::init ( int  fd,
Session session,
const std::string &  addr 
)
overridevirtual

接收到一个新的连接时,进行初始化

重载 Communicator .

◆ read_event()

RC CliCommunicator::read_event ( SessionEvent *&  event)
overridevirtual

监听到有新的数据到达,调用此函数进行接收消息 如果需要创建新的任务来处理,那么就创建一个SessionEvent 对象并通过event参数返回。

实现了 Communicator.

◆ write_result()

RC CliCommunicator::write_result ( SessionEvent event,
bool &  need_disconnect 
)
overridevirtual

在任务处理完成后,通过此接口将结果返回给客户端

参数
event任务数据,包括处理的结果
need_disconnect是否需要断开连接
返回
处理结果。即使返回不是SUCCESS,也不能直接断开连接,需要通过need_disconnect来判断 是否需要断开连接

实现了 Communicator.


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