equal
deleted
inserted
replaced
10 |
10 |
11 const size_t NETWORK_TCP_CHUNK_SIZE = 1024; |
11 const size_t NETWORK_TCP_CHUNK_SIZE = 1024; |
12 const size_t NETWORK_TCP_INITIAL_IN_BUF = 4096; |
12 const size_t NETWORK_TCP_INITIAL_IN_BUF = 4096; |
13 const size_t NETWORK_TCP_INITIAL_OUT_BUF = 0; |
13 const size_t NETWORK_TCP_INITIAL_OUT_BUF = 0; |
14 |
14 |
15 class NetworkDisconnectError : public Error { |
|
16 public: |
|
17 NetworkDisconnectError (const std::string &message) : Error(message) { } |
|
18 }; |
|
19 |
|
20 class NetworkBufferError : public Error { |
15 class NetworkBufferError : public Error { |
21 public: |
16 public: |
22 NetworkBufferError (const std::string &message) : Error(message) { } |
17 NetworkBufferError (const std::string &message) : Error(message) { } |
23 }; |
18 }; |
24 |
19 |
25 class NetworkBuffer { |
20 class NetworkBuffer { |
26 private: |
21 private: |
27 NetworkSocket &socket; |
22 NetworkSocket socket; |
28 |
23 |
29 char *buf; |
24 char *buf; |
30 size_t size, offset; |
25 size_t size, offset; |
31 |
26 |
32 public: |
27 public: |
41 void trim (size_t prefix_size); |
36 void trim (size_t prefix_size); |
42 |
37 |
43 public: |
38 public: |
44 void push_write (char *buf_ptr, size_t buf_size); |
39 void push_write (char *buf_ptr, size_t buf_size); |
45 void flush_write (void); |
40 void flush_write (void); |
46 template <typename PrefixType> void write_prefix (char *buf, PrefixType prefix); |
41 void write_prefix (char *buf, uint16_t prefix); |
|
42 void write_prefix (char *buf, uint32_t prefix); |
47 |
43 |
48 bool try_read (size_t item_size); |
44 bool try_read (size_t item_size); |
49 bool peek_prefix (uint16_t &ref); |
45 bool peek_prefix (uint16_t &ref); |
50 bool peek_prefix (uint32_t &ref); |
46 bool peek_prefix (uint32_t &ref); |
51 template <typename PrefixType> PrefixType read_prefix (char *buf_ptr, size_t buf_max); |
47 template <typename PrefixType> PrefixType read_prefix (char *buf_ptr, size_t buf_max); |