17#include "common/sys/rc.h"
18#include "common/lang/string.h"
19#include "common/lang/memory.h"
21struct ConnectionContext;
75 const char *
addr()
const {
return addr_.c_str(); }
80 int fd()
const {
return fd_; }
83 unique_ptr<Session> session_;
支持以缓存模式写入数据到文件/socket
Definition: buffered_writer.h:26
通讯协议工厂
Definition: communicator.h:105
负责与客户端通讯
Definition: communicator.h:42
Session * session() const
关联的会话信息
Definition: communicator.h:69
const char * addr() const
对端地址 如果是unix socket,可能没有意义
Definition: communicator.h:75
virtual RC read_event(SessionEvent *&event)=0
监听到有新的数据到达,调用此函数进行接收消息 如果需要创建新的任务来处理,那么就创建一个SessionEvent 对象并通过event参数返回。
virtual RC init(int fd, unique_ptr< Session > session, const string &addr)
接收到一个新的连接时,进行初始化
Definition: communicator.cpp:24
virtual RC write_result(SessionEvent *event, bool &need_disconnect)=0
在任务处理完成后,通过此接口将结果返回给客户端
int fd() const
关联的文件描述符
Definition: communicator.h:80
表示一个SQL请求
Definition: session_event.h:29
表示会话
Definition: session.h:29
CommunicateProtocol
当前支持的通讯协议
Definition: communicator.h:94
@ MYSQL
mysql通讯协议。具体实现参考 MysqlCommunicator
@ CLI
与客户端进行交互的协议。CLI 不应该是一种协议,只是一种通讯的方式而已