My Project
TCPServer.h
1 #ifndef __TCPServer_h__
2 #define __TCPServer_h__
3 
4 #include "Command.h"
5 #include "CommandList.h"
6 #include "IPAddressList.h"
7 #include "Socket.h"
8 #include "SubscriptionManager.h"
9 #include "TCPSession.h"
10 #include "TCPSocket.h"
11 
12 namespace core
13 {
14 
26 
27  class TCPServer : public TCPSocket, public Command
28  {
29 
30  public:
39 
40  TCPServer(EPoll &ePoll, IPAddress address, std::string delimiter = " ", int depth = 10, std::string text = "");
41 
45 
46  virtual ~TCPServer();
47 
48  virtual void sessionErrorHandler(std::string errorString, std::stringstream &out);
49  virtual bool compareAlias(void *alias, void *compare);
57 
58  virtual TCPSession *getSocketAccept(EPoll &epoll);
59 
63 
64  std::vector<TCPSession *> sessions;
65 
70 
72 
78 
80 
86 
88 
89  void removeFromSessionList(TCPSession *session);
90 
91  void output(std::stringstream &out);
92 
96 
97  void sendToAll(std::stringstream &out);
98 
103 
104  void sendToAll(std::stringstream &out, TCPSession &sender, SessionFilter filter);
105 
111 
112  void sendToAll(std::stringstream &out, TCPSession &sender);
113 
117 
119 
124 
125  TCPSession *getSessionByAlias(void *alias);
126 
127  protected:
137 
138  void onDataReceived(std::string data) override;
139 
146 
147  int processCommand(coreutils::ZString &request, TCPSession &session) override;
148 
149  private:
150  TCPSession *accept();
151  std::mutex lock;
152  };
154 
155 }
156 
157 #endif
Definition: CommandList.h:18
Definition: Command.h:22
Definition: EPoll.h:31
Definition: IPAddressList.h:9
Definition: IPAddress.h:9
Definition: SessionFilter.h:13
Definition: SubscriptionManager.h:14
Definition: TCPServer.h:28
void onDataReceived(std::string data) override
Definition: TCPServer.cpp:39
SubscriptionManager subscriptions
Definition: TCPServer.h:118
void output(std::stringstream &out)
Output the consoles array to the console.
Definition: TCPServer.cpp:99
int processCommand(coreutils::ZString &request, TCPSession &session) override
Definition: TCPServer.cpp:104
virtual ~TCPServer()
Definition: TCPServer.cpp:33
IPAddressList * blackList
Definition: TCPServer.h:79
virtual TCPSession * getSocketAccept(EPoll &epoll)
Definition: TCPServer.cpp:94
TCPSession * getSessionByAlias(void *alias)
Definition: TCPServer.cpp:140
IPAddressList * whiteList
Definition: TCPServer.h:87
TCPServer(EPoll &ePoll, IPAddress address, std::string delimiter=" ", int depth=10, std::string text="")
Definition: TCPServer.cpp:10
std::vector< TCPSession * > sessions
Definition: TCPServer.h:64
CommandList commands
Definition: TCPServer.h:71
Definition: TCPSession.h:26
Definition: TCPSocket.h:20