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 
70  char uuid[37];
71 
72  void *alias;
73 
74  protected:
78 
79  virtual void onRegistered() override;
80 
86  virtual void onDataReceived(coreutils::ZString &data) override;
87 
94 
95  virtual void onLineReceived(coreutils::ZString &line);
96 
103 
104  virtual void onBlockReceived(coreutils::ZString &block);
105 
111 
112  virtual void onConnected();
113 
123 
124  virtual void protocol(coreutils::ZString &data);
125 
131 
132  void setBlockSize(int size = 0);
133 
134  private:
135  char *lineBuffer = NULL;
136  int lineBufferSize = 0;
137  int lineLength = 0;
138  int blockLength = 0;
139  std::mutex mtx;
140  bool term = false;
141  int blockSize = 0;
142  };
143 
144 }
145 
146 #endif
Definition: Command.h:22
Definition: EPoll.h:31
Definition: TCPServer.h:28
Definition: TCPSession.h:26
void send()
Definition: TCPSession.cpp:111
void terminate()
Definition: TCPSession.cpp:118
virtual void onLineReceived(coreutils::ZString &line)
Definition: TCPSession.cpp:96
virtual void output(std::stringstream &data)
Definition: TCPSession.cpp:25
void setBlockSize(int size=0)
Definition: TCPSession.cpp:91
virtual void onConnected()
Definition: TCPSession.cpp:51
virtual void protocol(coreutils::ZString &data)
Definition: TCPSession.cpp:30
virtual void onBlockReceived(coreutils::ZString &block)
Definition: TCPSession.cpp:104
std::stringstream out
Definition: TCPSession.h:68
virtual void onRegistered() override
Called after the socket has been registered with epoll processing.
Definition: TCPSession.cpp:41
virtual void onDataReceived(coreutils::ZString &data) override
Definition: TCPSession.cpp:53
Definition: TCPSocket.h:20