forked from fishfishfishh/FishWebServer
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCallBacks.h
34 lines (29 loc) · 1.1 KB
/
CallBacks.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#pragma once
#include <functional>
#include <memory>
#include <arpa/inet.h>
#include <boost/circular_buffer.hpp>
#include <unordered_set>
#include <fcntl.h>
class TcpConnection;
class EventNode;
namespace sockets{
int setnonblocking(int fd);
void update(int operation, int socketfd,int epollfd);
int createSocketfd(int type);
int accept(int fd,sockaddr_in&);
void bind(int socketfd, sockaddr_in&);
void listen(int socketfd);
//将内核事件表注册读事件,ET = 0/LT = 1模式,选择开启EPOLLONESHOT
void addfd(int epollfd, int fd, bool one_shot = false, bool flag = false);
void socketpair(int domain, int type, int protocol, int ptr[2]);
void addsig(int sig, void(handler)(int), bool restart = true);
void sig_handler(int sig);
}
typedef std::shared_ptr<EventNode> NodePtr;
typedef std::weak_ptr<EventNode> WeakNodePtr;
typedef std::shared_ptr<TcpConnection> TcpConnectionPtr;
typedef std::function<void(TcpConnectionPtr)> handleEventCallBack;
typedef std::weak_ptr<TcpConnection> WeakTcpConnectionPtr;
typedef std::unordered_set<NodePtr> Bucket;
typedef boost::circular_buffer<Bucket> timeWheel;