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 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(TCPSession *session);
89 
90  protected:
91 
101 
102  void onDataReceived(std::string data) override;
103 
110 
111  int processCommand(coreutils::ZString command, TCPSession *session, std::stringstream &data) override;
112 
117 
118  void sendToAll(std::stringstream &out, TCPSession *sender, SessionFilter &filter);
119 
125 
126  void sendToAll(std::stringstream &out, TCPSession *sender);
127 
128  private:
129 
130  TCPSession * accept();
131  std::mutex lock;
132 
133  };
134 
135 }
136 
137 #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::sendToAll
void sendToAll(std::stringstream &out, TCPSession *sender, SessionFilter &filter)
Definition: TCPServer.cpp:88
core::TCPServer::sessions
std::vector< TCPSession * > sessions
Definition: TCPServer.h:61
core::TCPServer::onDataReceived
void onDataReceived(std::string data) override
Definition: TCPServer.cpp:25
core::TCPServer::TCPServer
TCPServer(EPoll &ePoll, IPAddress address, std::string text="")
Definition: TCPServer.cpp:9
core::EPoll
Definition: EPoll.h:31
core::TCPServer::processCommand
int processCommand(coreutils::ZString command, TCPSession *session, std::stringstream &data) override
Definition: TCPServer.cpp:71
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()
Definition: TCPServer.cpp:20
core::TCPServer
Definition: TCPServer.h:24
core::TCPServer::commands
CommandList commands
Definition: TCPServer.h:68
core::TCPServer::getSocketAccept
virtual TCPSession * getSocketAccept(EPoll &epoll)
Definition: TCPServer.cpp:61
core::TCPServer::output
void output(TCPSession *session)
Output the consoles array to the console.
Definition: TCPServer.cpp:65