17#include "net/communicator.h"
18#include "common/lang/string.h"
39 virtual RC
init(
int fd, unique_ptr<Session>
session,
const string &
addr)
override;
94 RC write_tuple_result(
SqlResult *sql_result, vector<char> &packet,
int &affected_rows,
bool &need_disconnect);
95 RC write_chunk_result(
SqlResult *sql_result, vector<char> &packet,
int &affected_rows,
bool &need_disconnect);
所有的包都继承自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:75
int fd() const
关联的文件描述符
Definition: communicator.h:80
与客户端通讯
Definition: mysql_communicator.h:32
RC write_state(SessionEvent *event, bool &need_disconnect)
有些情况下不需要给客户端返回一行行的记录结果,而是返回执行是否成功即可,比如create table等
Definition: mysql_communicator.cpp:694
RC send_column_definition(SqlResult *sql_result, bool &need_disconnect)
返回客户端列描述信息
Definition: mysql_communicator.cpp:819
virtual RC write_result(SessionEvent *event, bool &need_disconnect) override
将处理结果返回给客户端
Definition: mysql_communicator.cpp:734
RC send_result_rows(SessionEvent *event, SqlResult *sql_result, bool no_column_def, bool &need_disconnect)
返回客户端行数据
Definition: mysql_communicator.cpp:940
RC handle_version_comment(bool &need_disconnect)
根据实际测试,客户端在连接上来时,会发起一个 version_comment的查询
Definition: mysql_communicator.cpp:594
virtual RC read_event(SessionEvent *&event) override
有新的消息到达时,接收消息
Definition: mysql_communicator.cpp:613
RC send_packet(const BasePacket &packet)
发送数据包到客户端
Definition: mysql_communicator.cpp:791
uint32_t client_capabilities_flag_
有时需要根据握手包中capabilities字段值的不同,而发送或接收不同的包
Definition: mysql_communicator.h:102
bool authed_
握手阶段(鉴权),需要做一些特殊处理,所以加个字段单独标记
Definition: mysql_communicator.h:99
int8_t sequence_id_
在一次通讯过程中(一个任务的请求与处理),每个包(packet)都有一个sequence id 这个sequence id是递增的
Definition: mysql_communicator.h:106
表示一个SQL请求
Definition: session_event.h:29
SQL执行结果
Definition: sql_result.h:32
virtual RC init(int fd, unique_ptr< Session > session, const string &addr) override
连接刚开始建立时,进行一些初始化
Definition: mysql_communicator.cpp:567