forked from qdaxb/httpserver
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathepollpoller.h
More file actions
41 lines (39 loc) · 935 Bytes
/
epollpoller.h
File metadata and controls
41 lines (39 loc) · 935 Bytes
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
35
36
37
38
39
40
#ifndef _EPOLLPOLLER_H_
#define _EPOLLPOLLER_H_
#include "ipoller.h"
#include "common.h"
#include <sys/epoll.h>
#include <queue>
struct ServerConf;
class ConnectionManager;
class Event;
class ResponseBuilderRegistry;
class HttpConnection;
using namespace std;
class EPollPoller:public IPoller{
public:
virtual int poll();
virtual int handleEvent();
//virtual Event *nextEvent();
//virtual int releaseEvent(Event *event);
virtual int init(ServerConf &conf);
virtual int start();
virtual int stop();
private:
int epollFd;
int socketFd;
struct epoll_event *events;
int currentIndex;
int handleAccept(Event *event);
int handleWrite(HttpConnection *conn);
int handleRead(HttpConnection *conn);
int hasNextEvent();
ConnectionManager* connectionManager;
int count;
int eventCount;
Event *event;
queue<HttpConnection*> connQueue;
ServerContext context;
ResponseBuilderRegistry *rbr;
};
#endif