My Project
TCPSession.h
1 #ifndef __Session_h__
2 # define __Session_h__
3 
4 #include "TCPSocket.h"
5 #include "SessionFilter.h"
6 
7 namespace core {
8 
9  class Command;
10  class TCPServer;
11 
23 
24  class TCPSession : public TCPSocket {
25 
26  public:
27 
31 
32  TCPSession(EPoll &ePoll, TCPServer &server, std::string text = "");
33 
37 
38  ~TCPSession();
39 
40  Command *grab = NULL;
41 
42  virtual void output(std::stringstream &data);
43 
47 
48  std::stringstream out;
49 
54 
55  void send();
56 
61 
62  void sendToAll();
63 
69 
70  void sendToAll(SessionFilter filter);
71 
75 
76  void terminate();
77 
81 
82  TCPServer &server;
83 
84  protected:
85 
89 
90  virtual void onRegistered() override;
91 
97 
98  virtual void onDataReceived(char *data, int len) override;
99 
106 
107  virtual void onLineReceived(std::string line);
108 
115 
116  virtual void onBlockReceived(std::string block);
117 
123 
124  virtual void onConnected();
125 
135 
136  virtual void protocol(std::string data);
137 
143 
144  void setBlockSize(int size = 0);
145 
146  private:
147  char *lineBuffer = NULL;
148  int lineBufferSize = 0;
149  int lineLength = 0;
150  int blockLength = 0;
151  std::mutex mtx;
152  bool term = false;
153  int blockSize = 0;
154 
155  };
156 
157 }
158 
159 #endif
core::TCPSession::send
void send()
Definition: TCPSession.cpp:98
core::SessionFilter
Definition: SessionFilter.h:10
core::TCPSession::onBlockReceived
virtual void onBlockReceived(std::string block)
Definition: TCPSession.cpp:77
core::TCPSession
Definition: TCPSession.h:24
core::TCPSession::protocol
virtual void protocol(std::string data)
Definition: TCPSession.cpp:18
core::TCPSession::onDataReceived
virtual void onDataReceived(char *data, int len) override
Definition: TCPSession.cpp:34
core::EPoll
Definition: EPoll.h:31
core::TCPSession::sendToAll
void sendToAll()
Definition: TCPSession.cpp:83
core::TCPSession::onLineReceived
virtual void onLineReceived(std::string line)
Definition: TCPSession.cpp:70
core::TCPSession::out
std::stringstream out
Definition: TCPSession.h:48
core::TCPSession::terminate
void terminate()
Definition: TCPSession.cpp:104
core::TCPSession::onRegistered
virtual void onRegistered() override
Called after the socket has been registered with epoll processing.
Definition: TCPSession.cpp:24
core::TCPSession::setBlockSize
void setBlockSize(int size=0)
Definition: TCPSession.cpp:66
core::Command
Definition: Command.h:22
core::TCPSocket
Definition: TCPSocket.h:20
core::TCPSession::output
virtual void output(std::stringstream &data)
Definition: TCPSession.cpp:14
core::TCPSession::onConnected
virtual void onConnected()
Definition: TCPSession.cpp:32
core::TCPServer
Definition: TCPServer.h:24