My Project
EPoll.h
1 #ifndef __EPoll_h__
2 #define __EPoll_h__
3 
4 #include "Log.h"
5 #include "Socket.h"
6 #include "Thread.h"
7 #include "TCPSession.h"
8 #include "Command.h"
9 
10 namespace core {
11 
30 
31  class EPoll : public Command {
32 
33  public:
34 
35  volatile long long eventId = 0;
36 
40 
41  EPoll();
42 
46 
47  ~EPoll();
48 
55 
56  bool start(int numberOfThreads, int maxSockets);
57 
63 
64  bool stop();
65 
70 
71  bool isStopping();
72 
76 
77  int getDescriptor();
78 
82 
83  int maxSockets;
84 
88 
89  void eventReceived(struct epoll_event event);
90 
97 
98  int processCommand(coreutils::ZString &request, TCPSession &session) override;
99 
100  private:
101 
102  int epfd;
103  int numberOfThreads;
104  std::vector<Thread> threads;
105  volatile bool terminateThreads;
106 
107  };
108 
109 }
110 
111 #endif
112 
Definition: Command.h:22
Definition: EPoll.h:31
bool stop()
Stop and shut down the BMAEPoll processing.
Definition: EPoll.cpp:46
int getDescriptor()
Return the descriptor for the ePoll socket.
Definition: EPoll.cpp:70
int processCommand(coreutils::ZString &request, TCPSession &session) override
Output the threads array to the console.
Definition: EPoll.cpp:74
EPoll()
Definition: EPoll.cpp:9
bool isStopping()
Returns a true if the stop command has been requested.
Definition: EPoll.cpp:66
void eventReceived(struct epoll_event event)
Dispatch event to appropriate socket.
~EPoll()
Definition: EPoll.cpp:18
bool start(int numberOfThreads, int maxSockets)
Start the BMAEPoll processing.
Definition: EPoll.cpp:20
int maxSockets
The maximum number of socket allowed.
Definition: EPoll.h:83
Definition: TCPSession.h:26