加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
Acceptor.h 806 Bytes
一键复制 编辑 原始数据 按行查看 历史
#pragma once
#include "noncopyable.h"
#include "Socket.h"
#include "Channel.h"
#include "InetAddress.h"
#include <functional>
class EventLoop;
class Acceptor : noncopyable{
public:
using NewConnectionCallback = std::function<void(int sockfd,const InetAddress&)>;
Acceptor(EventLoop* loop,const InetAddress& listenAddr, bool reusePort);
~Acceptor();
void setNewConnectionCallback(const NewConnectionCallback& cb){
newConnectionCallback_ = cb;
}
bool listenning() const { return listenning_; }
void listen();
private:
void handleRead();
EventLoop* loop_; //Accepto用的就是用户定义的那个baseLoop,也称作mainLoop
Socket acceptSocket_;
Channel acceptChannel_;
NewConnectionCallback newConnectionCallback_;
bool listenning_;
};
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化