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 
10 namespace core {
11 
23 
24  class TCPServer : public TCPSocket, public Command {
25 
26  public:
27 
36 
37  TCPServer(EPoll &ePoll, IPAddress address, std::string delimiter = " ", std::string text = "");
38 
42 
43  ~TCPServer();
44 
45  virtual void sessionErrorHandler(std::string errorString, std::stringstream &out);
46 
54 
55  virtual TCPSession * getSocketAccept(EPoll &epoll);
56 
60 
61  std::vector<TCPSession *> sessions;
62 
67 
69 
75 
77 
83 
85 
86  void removeFromSessionList(TCPSession *session);
87 
88  void output(std::stringstream &out);
89 
93 
94  void sendToAll(std::stringstream &out);
95 
100 
101  void sendToAll(std::stringstream &out, TCPSession &sender, SessionFilter filter);
102 
108 
109  void sendToAll(std::stringstream &out, TCPSession &sender);
110 
111  protected:
112 
122 
123  void onDataReceived(std::string data) override;
124 
131 
132  int processCommand(coreutils::ZString &request, TCPSession &session) override;
133 
134  private:
135 
136  TCPSession * accept();
137  std::mutex lock;
138 
139  };
140 
141 }
142 
143 #endif
core::SessionFilter
Definition: SessionFilter.h:10
core::TCPServer::blackList
IPAddressList * blackList
Definition: TCPServer.h:76
core::TCPSession
Definition: TCPSession.h:24
core::IPAddress
Definition: IPAddress.h:9
core::TCPServer::sessions
std::vector< TCPSession * > sessions
Definition: TCPServer.h:61
core::TCPServer::onDataReceived
void onDataReceived(std::string data) override
Definition: TCPServer.cpp:26
core::EPoll
Definition: EPoll.h:31
core::TCPServer::processCommand
int processCommand(coreutils::ZString &request, TCPSession &session) override
Definition: TCPServer.cpp:80
core::Command
Definition: Command.h:22
core::TCPSocket
Definition: TCPSocket.h:20
core::TCPServer::whiteList
IPAddressList * whiteList
Definition: TCPServer.h:84
core::CommandList
Definition: CommandList.h:18
core::IPAddressList
Definition: IPAddressList.h:9
core::TCPServer::TCPServer
TCPServer(EPoll &ePoll, IPAddress address, std::string delimiter=" ", std::string text="")
Definition: TCPServer.cpp:9
core::TCPServer::~TCPServer
~TCPServer()
Definition: TCPServer.cpp:21
core::TCPServer
Definition: TCPServer.h:24
core::TCPServer::commands
CommandList commands
Definition: TCPServer.h:68
core::TCPServer::output
void output(std::stringstream &out)
Output the consoles array to the console.
Definition: TCPServer.cpp:76
core::TCPServer::getSocketAccept
virtual TCPSession * getSocketAccept(EPoll &epoll)
Definition: TCPServer.cpp:72