My Project
TCPSession.h
1 #ifndef __Session_h__
2 #define __Session_h__
3 
4 #include "SessionFilter.h"
5 #include "TCPSocket.h"
6 
7 namespace core
8 {
9 
10  class Command;
11  class TCPServer;
12 
24 
25  class TCPSession : public TCPSocket
26  {
27 
28  public:
32 
33  TCPSession(EPoll &ePoll, TCPServer &server, std::string text = "");
34 
38 
39  virtual ~TCPSession();
40 
41  Command *grab = NULL;
42 
43  virtual void output(std::stringstream &data);
44 
49 
50  void send();
51 
55 
56  void terminate();
57 
61 
62  TCPServer &server;
63 
67 
68  std::stringstream out;
69 
75 
76  char uuid[37];
77 
83 
84  void *alias;
85 
89 
90  virtual bool compareAlias(void *alias);
91 
92  protected:
96 
97  virtual void onRegistered() override;
98 
104  virtual void onDataReceived(coreutils::ZString &data) override;
105 
112 
113  virtual void onLineReceived(coreutils::ZString &line);
114 
121 
122  virtual void onBlockReceived(coreutils::ZString &block);
123 
129 
130  virtual void onConnected();
131 
141 
142  virtual void protocol(coreutils::ZString &data);
143 
149 
150  void setBlockSize(int size = 0);
151 
152  private:
153  char *lineBuffer = NULL;
154  int lineBufferSize = 0;
155  int lineLength = 0;
156  int blockLength = 0;
157  std::mutex mtx;
158  bool term = false;
159  int blockSize = 0;
160  };
161 
162 }
163 
164 #endif
Definition: Command.h:22
Definition: EPoll.h:31
Definition: TCPServer.h:28
Definition: TCPSession.h:26
void * alias
Definition: TCPSession.h:84
void send()
Definition: TCPSession.cpp:115
char uuid[37]
Definition: TCPSession.h:76
void terminate()
Definition: TCPSession.cpp:121
virtual void onLineReceived(coreutils::ZString &line)
Definition: TCPSession.cpp:100
virtual void output(std::stringstream &data)
Definition: TCPSession.cpp:25
void setBlockSize(int size=0)
Definition: TCPSession.cpp:95
virtual void onConnected()
Definition: TCPSession.cpp:55
virtual void protocol(coreutils::ZString &data)
Definition: TCPSession.cpp:30
virtual void onBlockReceived(coreutils::ZString &block)
Definition: TCPSession.cpp:108
std::stringstream out
Definition: TCPSession.h:68
virtual void onRegistered() override
Called after the socket has been registered with epoll processing.
Definition: TCPSession.cpp:45
virtual void onDataReceived(coreutils::ZString &data) override
Definition: TCPSession.cpp:57
Definition: TCPSocket.h:20