My Project
TCPServer.h
1 #ifndef __TCPServer_h__
2 #define __TCPServer_h__
3 
4 #include "Socket.h"
5 #include "TCPSocket.h"
6 #include "IPAddressList.h"
7 #include "Command.h"
8 #include "CommandList.h"
9 #include "SubscriptionManager.h"
10 
11 namespace core {
12 
24 
25  class TCPServer : public TCPSocket, public Command {
26 
27  public:
28 
37 
38  TCPServer(EPoll &ePoll, IPAddress address, std::string delimiter = " ", int depth = 10, std::string text = "");
39 
43 
44  virtual ~TCPServer();
45 
46  virtual void sessionErrorHandler(std::string errorString, std::stringstream &out);
47 
55 
56  virtual TCPSession * getSocketAccept(EPoll &epoll);
57 
61 
62  std::vector<TCPSession *> sessions;
63 
68 
70 
76 
78 
84 
86 
87  void removeFromSessionList(TCPSession *session);
88 
89  void output(std::stringstream &out);
90 
94 
95  void sendToAll(std::stringstream &out);
96 
101 
102  void sendToAll(std::stringstream &out, TCPSession &sender, SessionFilter filter);
103 
109 
110  void sendToAll(std::stringstream &out, TCPSession &sender);
111 
115 
117 
118  protected:
119 
129 
130  void onDataReceived(std::string data) override;
131 
138 
139  int processCommand(coreutils::ZString &request, TCPSession &session) override;
140 
141  private:
142 
143  TCPSession * accept();
144  std::mutex lock;
145 
146  };
147 
148 }
149 
150 #endif
core::TCPServer::subscriptions
SubscriptionManager subscriptions
Definition: TCPServer.h:116
core::SessionFilter
Definition: SessionFilter.h:10
core::TCPServer::blackList
IPAddressList * blackList
Definition: TCPServer.h:77
core::TCPSession
Definition: TCPSession.h:24
core::IPAddress
Definition: IPAddress.h:9
core::TCPServer::sessions
std::vector< TCPSession * > sessions
Definition: TCPServer.h:62
core::TCPServer::onDataReceived
void onDataReceived(std::string data) override
Definition: TCPServer.cpp:36
core::EPoll
Definition: EPoll.h:31
core::SubscriptionManager
Definition: SubscriptionManager.h:13
core::TCPServer::processCommand
int processCommand(coreutils::ZString &request, TCPSession &session) override
Definition: TCPServer.cpp:90
core::TCPServer::TCPServer
TCPServer(EPoll &ePoll, IPAddress address, std::string delimiter=" ", int depth=10, std::string text="")
Definition: TCPServer.cpp:9
core::Command
Definition: Command.h:22
core::TCPSocket
Definition: TCPSocket.h:20
core::TCPServer::whiteList
IPAddressList * whiteList
Definition: TCPServer.h:85
core::CommandList
Definition: CommandList.h:18
core::IPAddressList
Definition: IPAddressList.h:9
core::TCPServer::~TCPServer
virtual ~TCPServer()
Definition: TCPServer.cpp:31
core::TCPServer
Definition: TCPServer.h:25
core::TCPServer::commands
CommandList commands
Definition: TCPServer.h:69
core::TCPServer::output
void output(std::stringstream &out)
Output the consoles array to the console.
Definition: TCPServer.cpp:86
core::TCPServer::getSocketAccept
virtual TCPSession * getSocketAccept(EPoll &epoll)
Definition: TCPServer.cpp:82