GameServer
TCPConnection.h
[詳解]
1 #ifndef __TCPCONNECTION_H__
2 #define __TCPCONNECTION_H__
3 
4 #include "MemoryBuffer.h"
5 
10 {
11 
12 public:
13 
14  // コンストラクタ
15  TCPConnection(const shared_ptr<tcp::socket> &pInSocket);
16 
17  // デストラクタ
18  virtual ~TCPConnection() = 0;
19 
20  // 接続されているか?
21  bool IsConnected() const { return bIsConnected; }
22 
23 protected:
24 
25  // 受信バッファ.
27 
28  // 接続されているか?
30 
31  // ソケットを取得.
32  tcp::socket *GetSocket() { return pSocket.get(); }
33 
34 
35  // 受信開始.
36  void AsyncRecv();
37 
38  // データを受信した。
39  virtual void OnRecvData(size_t Size) {}
40 
41  // 切断された。
42  virtual void OnDisconnected() {}
43 
44  // 送信.
45  void AsyncSend(const u8 *pBuffer, int Size);
46 
47 private:
48 
49  enum
50  {
51  RecvDataSize = 1024,
52  };
53 
54  // Socket
55  shared_ptr<tcp::socket> pSocket;
56 
57  // 受信データ
58  array<u8, RecvDataSize> RecvData;
59 
60  // 送信した。
61  void OnSend(const boost::system::error_code &ErrorCode, size_t Size, shared_ptr<asio::streambuf> SendBuffer);
62 
63  // 受信した。
64  void OnRecv(const boost::system::error_code &ErrorCode, size_t Size);
65 
66 };
67 
68 #endif // #ifndef __TCPCONNECTION_H__
unsigned char u8
Definition: TypeDefs.h:6
virtual void OnDisconnected()
Definition: TCPConnection.h:42
Definition: MemoryBuffer.h:7
tcp::socket * GetSocket()
Definition: TCPConnection.h:32
void AsyncSend(const u8 *pBuffer, int Size)
Definition: TCPConnection.cpp:45
virtual ~TCPConnection()=0
Definition: TCPConnection.cpp:12
virtual void OnRecvData(size_t Size)
Definition: TCPConnection.h:39
MemoryBuffer RecvBuffer
Definition: TCPConnection.h:26
void AsyncRecv()
Definition: TCPConnection.cpp:18
Definition: TCPConnection.h:9
TCPConnection(const shared_ptr< tcp::socket > &pInSocket)
Definition: TCPConnection.cpp:5
bool IsConnected() const
Definition: TCPConnection.h:21
bool bIsConnected
Definition: TCPConnection.h:29