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  virtual void outputAlias(std::stringstream &out);
93 
94  protected:
98 
99  virtual void onRegistered() override;
100 
106  virtual void onDataReceived(coreutils::ZString &data) override;
107 
114 
115  virtual void onLineReceived(coreutils::ZString &line);
116 
123 
124  virtual void onBlockReceived(coreutils::ZString &block);
125 
131 
132  virtual void onConnected();
133 
143 
144  virtual void protocol(coreutils::ZString &data);
145 
151 
152  void setBlockSize(int size = 0);
153 
154  private:
155  char *lineBuffer = NULL;
156  int lineBufferSize = 0;
157  int lineLength = 0;
158  int blockLength = 0;
159  std::mutex mtx;
160  bool term = false;
161  int blockSize = 0;
162  };
163 
164 }
165 
166 #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:119
char uuid[37]
Definition: TCPSession.h:76
void terminate()
Definition: TCPSession.cpp:125
virtual void onLineReceived(coreutils::ZString &line)
Definition: TCPSession.cpp:104
virtual void output(std::stringstream &data)
Definition: TCPSession.cpp:25
void setBlockSize(int size=0)
Definition: TCPSession.cpp:99
virtual void onConnected()
Definition: TCPSession.cpp:59
virtual void protocol(coreutils::ZString &data)
Definition: TCPSession.cpp:30
virtual void onBlockReceived(coreutils::ZString &block)
Definition: TCPSession.cpp:112
std::stringstream out
Definition: TCPSession.h:68
virtual void onRegistered() override
Called after the socket has been registered with epoll processing.
Definition: TCPSession.cpp:49
virtual void onDataReceived(coreutils::ZString &data) override
Definition: TCPSession.cpp:61
Definition: TCPSocket.h:20