1 Star 1 Fork 0

guanzhanyi/webServer

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
tcp_connection.h 1.35 KB
一键复制 编辑 原始数据 按行查看 历史
guanzhanyi 提交于 2021-05-11 13:17 . 成功运行
#pragma once
/*
*/
#include <string>
#include <memory>
#include <functional>
#include "eventloop.h"
#include "channel.h"
#include "log.h"
enum ConnectionState{
H_CONNECTED=0,
H_DISCONNECTING,
H_DISCONNECTED
};
class TcpConnection{
public:
TcpConnection(EventLoop *p, int fd);
~TcpConnection(){
close(m_connfd);
}
EventLoop* getLoop();
void handleClose();
void set_event(uint32_t);
void register_event();
std::string& getInbuffer(){
return m_inBuffer;
}
void setOutbuffer(const std::string &str){
m_outBuffer=str;
}
void clearAndError(){
record()<<"m_error change to true";
m_error=true;
m_inBuffer.clear();
m_outBuffer.clear();
}
std::shared_ptr<Channel> getChannel(){
return m_channel_ptr;
}
public:
void handleRead();
void handleWrite();
void handleError();
void handleConn();
void setCall(std::function<int()>&& func){
m_callback=func;
}
void setSeperate(std::function<void()>&& func){
m_seperate=func;
}
private:
EventLoop *m_loop;
int m_connfd;
std::shared_ptr<Channel> m_channel_ptr;
std::string m_inBuffer;
std::string m_outBuffer;
ConnectionState m_conn_state;
bool m_error;
std::function<int()> m_callback;
//?
std::function<void()> m_seperate;
};
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/guanzhanyi/web-server.git
git@gitee.com:guanzhanyi/web-server.git
guanzhanyi
web-server
webServer
master

搜索帮助