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  virtual ~TCPSession();
39 
40  Command *grab = NULL;
41 
42  virtual void output(std::stringstream &data);
43 
48 
49  void send();
50 
54 
55  void terminate();
56 
60 
61  TCPServer &server;
62 
66 
67  std::stringstream out;
68 
69  protected:
70 
74 
75  virtual void onRegistered() override;
76 
82  virtual void onDataReceived(coreutils::ZString &data) override;
83 
90 
91  virtual void onLineReceived(coreutils::ZString &line);
92 
99 
100  virtual void onBlockReceived(coreutils::ZString &block);
101 
107 
108  virtual void onConnected();
109 
119 
120  virtual void protocol(coreutils::ZString &data);
121 
127 
128  void setBlockSize(int size = 0);
129 
130  private:
131  char *lineBuffer = NULL;
132  int lineBufferSize = 0;
133  int lineLength = 0;
134  int blockLength = 0;
135  std::mutex mtx;
136  bool term = false;
137  int blockSize = 0;
138 
139  };
140 
141 }
142 
143 #endif
core::TCPSession::onBlockReceived
virtual void onBlockReceived(coreutils::ZString &block)
Definition: TCPSession.cpp:81
core::TCPSession::protocol
virtual void protocol(coreutils::ZString &data)
Definition: TCPSession.cpp:19
core::TCPSession::send
void send()
Definition: TCPSession.cpp:87
core::TCPSession
Definition: TCPSession.h:24
core::EPoll
Definition: EPoll.h:31
core::TCPSession::onDataReceived
virtual void onDataReceived(coreutils::ZString &data) override
Definition: TCPSession.cpp:38
core::TCPSession::out
std::stringstream out
Definition: TCPSession.h:67
core::TCPSession::terminate
void terminate()
Definition: TCPSession.cpp:93
core::TCPSession::onRegistered
virtual void onRegistered() override
Called after the socket has been registered with epoll processing.
Definition: TCPSession.cpp:27
core::TCPSession::onLineReceived
virtual void onLineReceived(coreutils::ZString &line)
Definition: TCPSession.cpp:74
core::TCPSession::setBlockSize
void setBlockSize(int size=0)
Definition: TCPSession.cpp:70
core::Command
Definition: Command.h:22
core::TCPSocket
Definition: TCPSocket.h:20
core::TCPSession::output
virtual void output(std::stringstream &data)
Definition: TCPSession.cpp:15
core::TCPSession::onConnected
virtual void onConnected()
Definition: TCPSession.cpp:36
core::TCPServer
Definition: TCPServer.h:25