diff options
| author | Dennis Brentjes <d.brentjes@gmail.com> | 2016-08-30 16:36:14 +0200 |
|---|---|---|
| committer | Dennis Brentjes <d.brentjes@gmail.com> | 2016-08-30 16:36:14 +0200 |
| commit | fff831ff736e90fa6175fcb6f3000408218957e7 (patch) | |
| tree | f48320f1e6ff04a11c38741e9f233634452941d5 /network-handler/client.cpp | |
| parent | 5bac5321fa5ab128cee2f0b8c549945bd6a1ccfc (diff) | |
| download | cmix-fff831ff736e90fa6175fcb6f3000408218957e7.tar.gz cmix-fff831ff736e90fa6175fcb6f3000408218957e7.tar.bz2 cmix-fff831ff736e90fa6175fcb6f3000408218957e7.zip | |
Replaced Client based implementation to composition instead of inheritance.
Diffstat (limited to 'network-handler/client.cpp')
| -rw-r--r-- | network-handler/client.cpp | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/network-handler/client.cpp b/network-handler/client.cpp index 19b6f34..3098185 100644 --- a/network-handler/client.cpp +++ b/network-handler/client.cpp @@ -13,26 +13,26 @@ Client::Client(tcp::socket &&socket) , buffer() {} -void Client::handle_receive(const error_code &ec, size_t read_bytes) +void Client::handle_receive(MessageHandler message_handler, const error_code &ec, size_t read_bytes) { buffer.commit(read_bytes); std::istream is(&buffer); if(!ec) { std::vector<uint8_t> data(std::istream_iterator<uint8_t>(is), {}); - handle_message(data); - receive(); + message_handler(data); + receive(message_handler); } else { done(); } } -void Client::receive() { +void Client::receive(MessageHandler message_handler) { using namespace boost::asio::placeholders; socket.async_receive( buffer.prepare(512), - boost::bind(&Client::handle_receive, this, error(), bytes_transferred()) + boost::bind(&Client::handle_receive, this, message_handler, error(), bytes_transferred()) ); } |
