diff options
Diffstat (limited to 'network-handler/client.cpp')
| -rw-r--r-- | network-handler/client.cpp | 41 |
1 files changed, 0 insertions, 41 deletions
diff --git a/network-handler/client.cpp b/network-handler/client.cpp deleted file mode 100644 index 3098185..0000000 --- a/network-handler/client.cpp +++ /dev/null @@ -1,41 +0,0 @@ -#include "client.hpp" - -#include <boost/asio/placeholders.hpp> -#include <boost/bind.hpp> - -#include <iostream> - -using namespace boost::asio::ip; -using namespace boost::system; - -Client::Client(tcp::socket &&socket) -: socket(std::move(socket)) -, buffer() -{} - -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), {}); - message_handler(data); - receive(message_handler); - } else { - done(); - } -} - -void Client::receive(MessageHandler message_handler) { - using namespace boost::asio::placeholders; - - socket.async_receive( - buffer.prepare(512), - boost::bind(&Client::handle_receive, this, message_handler, error(), bytes_transferred()) - ); -} - -void Client::on_done(Client::OnDoneFT f) { - done = f; -} |
