17#include "net/communicator.h"
所有的包都继承自BasePacket
Definition: mysql_communicator.cpp:299
负责与客户端通讯
Definition: communicator.h:42
Session * session() const
关联的会话信息
Definition: communicator.h:69
const char * addr() const
对端地址 如果是unix socket,可能没有意义
Definition: communicator.h:86
struct event & read_event()
libevent使用的数据,参考server.cpp
Definition: communicator.h:77
与客户端通讯
Definition: mysql_communicator.h:31
RC write_state(SessionEvent *event, bool &need_disconnect)
有些情况下不需要给客户端返回一行行的记录结果,而是返回执行是否成功即可,比如create table等
Definition: mysql_communicator.cpp:697
RC send_column_definition(SqlResult *sql_result, bool &need_disconnect)
返回客户端列描述信息
Definition: mysql_communicator.cpp:821
virtual RC write_result(SessionEvent *event, bool &need_disconnect) override
将处理结果返回给客户端
Definition: mysql_communicator.cpp:737
RC handle_version_comment(bool &need_disconnect)
根据实际测试,客户端在连接上来时,会发起一个 version_comment的查询
Definition: mysql_communicator.cpp:601
RC send_result_rows(SqlResult *sql_result, bool no_column_def, bool &need_disconnect)
返回客户端行数据
Definition: mysql_communicator.cpp:941
RC send_packet(const BasePacket &packet)
发送数据包到客户端
Definition: mysql_communicator.cpp:794
uint32_t client_capabilities_flag_
有时需要根据握手包中capabilities字段值的不同,而发送或接收不同的包
Definition: mysql_communicator.h:97
bool authed_
握手阶段(鉴权),需要做一些特殊处理,所以加个字段单独标记
Definition: mysql_communicator.h:94
int8_t sequence_id_
在一次通讯过程中(一个任务的请求与处理),每个包(packet)都有一个sequence id 这个sequence id是递增的
Definition: mysql_communicator.h:101
表示一个SQL请求
Definition: session_event.h:32
表示会话
Definition: session.h:28
SQL执行结果
Definition: sql_result.h:33
virtual RC init(int fd, Session *session, const std::string &addr) override
连接刚开始建立时,进行一些初始化
Definition: mysql_communicator.cpp:574