equal
deleted
inserted
replaced
1 #ifndef NETWORK_TCP_HH |
1 #ifndef NETWORK_TCP_HH |
2 #define NETWORK_TCP_HH |
2 #define NETWORK_TCP_HH |
3 |
3 |
4 #include "NetworkSocket.hh" |
4 #include "NetworkSocket.hh" |
5 #include "NetworkAddress.hh" |
5 #include "NetworkAddress.hh" |
|
6 #include "NetworkPacket.hh" |
|
7 #include "Error.hh" |
6 |
8 |
7 const size_t NETWORK_TCP_CHUNK_SIZE = 1024; |
9 const size_t NETWORK_TCP_CHUNK_SIZE = 1024; |
8 const size_t NETWORK_TCP_INITIAL_IN_BUF = 4096; |
10 const size_t NETWORK_TCP_INITIAL_IN_BUF = 4096; |
9 const size_t NETWORK_TCP_INITIAL_OUT_BUF = 0; |
11 const size_t NETWORK_TCP_INITIAL_OUT_BUF = 0; |
10 |
12 |
11 class NetworkDisconnectError : public exception { |
13 class NetworkDisconnectError : public Error { |
12 |
14 public: |
|
15 NetworkDisconnectError (const std::string &message) : Error(message) { } |
13 }; |
16 }; |
14 |
17 |
15 class NetworkBuffer { |
18 class NetworkBuffer { |
16 private: |
19 private: |
17 char *buf; |
20 char *buf; |
19 |
22 |
20 NetworkSocket &socket; |
23 NetworkSocket &socket; |
21 |
24 |
22 public: |
25 public: |
23 NetworkBuffer (NetworkSocket &socket, size_t size_hint); |
26 NetworkBuffer (NetworkSocket &socket, size_t size_hint); |
24 |
27 |
25 private: |
28 private: |
26 NetworkBuffer (const NetworkBuffer ©) { }; |
29 NetworkBuffer (const NetworkBuffer ©); |
27 ~NetworkBuffer (void); |
30 ~NetworkBuffer (void); |
28 NetworkBuffer& operator= (const NetworkBuffer ©) { }; |
31 NetworkBuffer& operator= (const NetworkBuffer ©); |
29 |
32 |
30 void resize (size_t suffix_size); |
33 void resize (size_t suffix_size); |
31 void trim (size_t prefix_size); |
34 void trim (size_t prefix_size); |
32 |
35 |
33 public: |
36 public: |
56 private: |
59 private: |
57 void on_read (void); |
60 void on_read (void); |
58 void on_write (void); |
61 void on_write (void); |
59 void on_disconnected (void); |
62 void on_disconnected (void); |
60 |
63 |
61 CL_Signal_v1<const NetworkPacket&> _sig_packet; |
64 CL_Signal_v1<const NetworkPacket &> _sig_packet; |
62 CL_Signal_v0 _sig_disconnect; |
65 CL_Signal_v0 _sig_disconnect; |
63 |
66 |
64 public: |
67 public: |
65 NetworkAddress getRemoteAddress (void) { return socket.get_dest_address(); } |
68 NetworkAddress getRemoteAddress (void) { return socket.get_dest_address(); } |
66 |
69 |