From 05ebefffbfed7e0e08f1fd5858822adf8bd22a66 Mon Sep 17 00:00:00 2001 From: Sergey Popov Date: Tue, 21 Jun 2011 15:13:04 +0000 Subject: [PATCH] Finished implementing network_asio::connection::transfer --- src/network_asio.cpp | 12 ++++++------ src/network_asio.hpp | 3 ++- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/network_asio.cpp b/src/network_asio.cpp index fd1a3486e57..4316338a727 100644 --- a/src/network_asio.cpp +++ b/src/network_asio.cpp @@ -14,6 +14,7 @@ */ #include +#include #include #include #include @@ -89,7 +90,7 @@ void connection::handle_handshake( done_ = true; } -void connection::transfer(const config& request, config& /*response*/) +void connection::transfer(const config& request, config& response) { io_service_.reset(); done_ = false; @@ -102,7 +103,7 @@ void connection::transfer(const config& request, config& /*response*/) boost::asio::async_write(socket_, write_buf_, boost::bind(&connection::handle_write, this, _1, _2)); boost::asio::async_read(socket_, read_buf_, boost::bind(&connection::is_read_complete, this, _1, _2), - boost::bind(&connection::handle_read, this, _1, _2)); + boost::bind(&connection::handle_read, this, _1, _2, boost::ref(response))); } void connection::handle_write( @@ -142,7 +143,8 @@ std::size_t connection::is_read_complete( void connection::handle_read( const boost::system::error_code& ec, - std::size_t bytes_transferred + std::size_t bytes_transferred, + config& response ) { std::cout << "Read " << bytes_transferred << " bytes.\n"; @@ -151,9 +153,7 @@ void connection::handle_read( if(ec && ec != boost::asio::error::eof) throw error(ec); std::istream is(&read_buf_); - config cfg; - read_gz(cfg, is); - std::cout << cfg; + read_gz(response, is); } } diff --git a/src/network_asio.hpp b/src/network_asio.hpp index de2b6824e48..84a57c1323e 100644 --- a/src/network_asio.hpp +++ b/src/network_asio.hpp @@ -72,7 +72,8 @@ class connection ); void handle_read( const boost::system::error_code& ec, - std::size_t bytes_transferred + std::size_t bytes_transferred, + config& response ); boost::optional bytes_to_read_; std::size_t bytes_read_;