MiniOB 1
MiniOB is one mini database, helping developers to learn how database works.
|
负责与客户端通讯 更多...
#include <communicator.h>
Public 成员函数 | |
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 |
在任务处理完成后,通过此接口将结果返回给客户端 更多... | |
Session * | session () const |
关联的会话信息 | |
struct event & | read_event () |
libevent使用的数据,参考server.cpp | |
const char * | addr () const |
对端地址 如果是unix socket,可能没有意义 | |
Protected 属性 | |
Session * | session_ = nullptr |
struct event | read_event_ |
std::string | addr_ |
BufferedWriter * | writer_ = nullptr |
int | fd_ = -1 |
负责与客户端通讯
在listener接收到一个新的连接(参考 server.cpp::accept), 就创建一个Communicator对象。 并调用init进行初始化。 在server中监听到某个连接有新的消息,就通过Communicator::read_event接收消息。
|
virtual |
接收到一个新的连接时,进行初始化
被 CliCommunicator , 以及 MysqlCommunicator 重载.
|
pure virtual |
监听到有新的数据到达,调用此函数进行接收消息 如果需要创建新的任务来处理,那么就创建一个SessionEvent 对象并通过event参数返回。
在 CliCommunicator, MysqlCommunicator , 以及 PlainCommunicator 内被实现.
|
pure virtual |
在任务处理完成后,通过此接口将结果返回给客户端
event | 任务数据,包括处理的结果 |
need_disconnect | 是否需要断开连接 |
在 CliCommunicator, MysqlCommunicator , 以及 PlainCommunicator 内被实现.