Remove some unused asio completion functions

This commit is contained in:
Eric Frias 2015-08-04 10:39:04 -04:00
parent 556f45fcbf
commit 87a2513981
2 changed files with 56 additions and 66 deletions

View file

@ -39,17 +39,8 @@ namespace asio {
std::shared_ptr<const char> _buffer; std::shared_ptr<const char> _buffer;
}; };
//void read_write_handler( const promise<size_t>::ptr& p,
// const boost::system::error_code& ec,
// size_t bytes_transferred );
void read_write_handler_ec( promise<size_t>* p,
boost::system::error_code* oec,
const boost::system::error_code& ec,
size_t bytes_transferred );
void error_handler( const promise<void>::ptr& p, void error_handler( const promise<void>::ptr& p,
const boost::system::error_code& ec ); const boost::system::error_code& ec );
void error_handler_ec( promise<boost::system::error_code>* p,
const boost::system::error_code& ec );
template<typename C> template<typename C>
struct non_blocking { struct non_blocking {
@ -57,14 +48,14 @@ namespace asio {
bool operator()( C& c, bool s ) { c.non_blocking(s); return true; } bool operator()( C& c, bool s ) { c.non_blocking(s); return true; }
}; };
#if WIN32 // windows stream handles do not support non blocking! #if WIN32 // windows stream handles do not support non blocking!
template<> template<>
struct non_blocking<boost::asio::windows::stream_handle> { struct non_blocking<boost::asio::windows::stream_handle> {
typedef boost::asio::windows::stream_handle C; typedef boost::asio::windows::stream_handle C;
bool operator()( C& ) { return false; } bool operator()( C& ) { return false; }
bool operator()( C&, bool ) { return false; } bool operator()( C&, bool ) { return false; }
}; };
#endif #endif
} }
/** /**
* @return the default boost::asio::io_service for use with fc::asio * @return the default boost::asio::io_service for use with fc::asio

View file

@ -10,11 +10,12 @@ namespace fc {
read_write_handler::read_write_handler(const promise<size_t>::ptr& completion_promise) : read_write_handler::read_write_handler(const promise<size_t>::ptr& completion_promise) :
_completion_promise(completion_promise) _completion_promise(completion_promise)
{ {
// assert(false); // to detect anywhere we're not passing in a shared buffer //assert(false); // to detect anywhere we're not passing in a shared buffer
} }
void read_write_handler::operator()(const boost::system::error_code& ec, size_t bytes_transferred) void read_write_handler::operator()(const boost::system::error_code& ec, size_t bytes_transferred)
{ {
// assert(false); // to detect anywhere we're not passing in a shared buffer //assert(false); // to detect anywhere we're not passing in a shared buffer
if( !ec ) if( !ec )
_completion_promise->set_value(bytes_transferred); _completion_promise->set_value(bytes_transferred);
else if( ec == boost::asio::error::eof ) else if( ec == boost::asio::error::eof )
@ -22,11 +23,13 @@ namespace fc {
else else
_completion_promise->set_exception( fc::exception_ptr( new fc::exception( FC_LOG_MESSAGE( error, "${message} ", ("message", boost::system::system_error(ec).what())) ) ) ); _completion_promise->set_exception( fc::exception_ptr( new fc::exception( FC_LOG_MESSAGE( error, "${message} ", ("message", boost::system::system_error(ec).what())) ) ) );
} }
read_write_handler_with_buffer::read_write_handler_with_buffer(const promise<size_t>::ptr& completion_promise, read_write_handler_with_buffer::read_write_handler_with_buffer(const promise<size_t>::ptr& completion_promise,
const std::shared_ptr<const char>& buffer) : const std::shared_ptr<const char>& buffer) :
_completion_promise(completion_promise), _completion_promise(completion_promise),
_buffer(buffer) _buffer(buffer)
{} {}
void read_write_handler_with_buffer::operator()(const boost::system::error_code& ec, size_t bytes_transferred) void read_write_handler_with_buffer::operator()(const boost::system::error_code& ec, size_t bytes_transferred)
{ {
if( !ec ) if( !ec )
@ -37,57 +40,53 @@ namespace fc {
_completion_promise->set_exception( fc::exception_ptr( new fc::exception( FC_LOG_MESSAGE( error, "${message} ", ("message", boost::system::system_error(ec).what())) ) ) ); _completion_promise->set_exception( fc::exception_ptr( new fc::exception( FC_LOG_MESSAGE( error, "${message} ", ("message", boost::system::system_error(ec).what())) ) ) );
} }
void read_write_handler_ec( promise<size_t>* p, boost::system::error_code* oec, const boost::system::error_code& ec, size_t bytes_transferred ) { void error_handler( const promise<void>::ptr& p,
p->set_value(bytes_transferred); const boost::system::error_code& ec )
*oec = ec; {
} if( !ec )
void error_handler( const promise<void>::ptr& p, p->set_value();
const boost::system::error_code& ec ) { else
if( !ec ) {
p->set_value(); if( ec == boost::asio::error::eof )
else {
{ p->set_exception( fc::exception_ptr( new fc::eof_exception(
if( ec == boost::asio::error::eof ) FC_LOG_MESSAGE( error, "${message} ", ("message", boost::system::system_error(ec).what())) ) ) );
{ }
p->set_exception( fc::exception_ptr( new fc::eof_exception( else
FC_LOG_MESSAGE( error, "${message} ", ("message", boost::system::system_error(ec).what())) ) ) ); {
} //elog( "${message} ", ("message", boost::system::system_error(ec).what()));
else p->set_exception( fc::exception_ptr( new fc::exception(
{ FC_LOG_MESSAGE( error, "${message} ", ("message", boost::system::system_error(ec).what())) ) ) );
//elog( "${message} ", ("message", boost::system::system_error(ec).what())); }
p->set_exception( fc::exception_ptr( new fc::exception(
FC_LOG_MESSAGE( error, "${message} ", ("message", boost::system::system_error(ec).what())) ) ) );
}
}
} }
}
void error_handler_ec( promise<boost::system::error_code>* p, template<typename EndpointType, typename IteratorType>
const boost::system::error_code& ec ) { void resolve_handler(const typename promise<std::vector<EndpointType> >::ptr& p,
p->set_value(ec); const boost::system::error_code& ec,
IteratorType itr)
{
if( !ec )
{
std::vector<EndpointType> eps;
while( itr != IteratorType() )
{
eps.push_back(*itr);
++itr;
}
p->set_value( eps );
} }
else
template<typename EndpointType, typename IteratorType> {
void resolve_handler( //elog( "%s", boost::system::system_error(ec).what() );
const typename promise<std::vector<EndpointType> >::ptr& p, //p->set_exception( fc::copy_exception( boost::system::system_error(ec) ) );
const boost::system::error_code& ec, p->set_exception(
IteratorType itr) { fc::exception_ptr( new fc::exception(
if( !ec ) { FC_LOG_MESSAGE( error, "process exited with: ${message} ",
std::vector<EndpointType> eps; ("message", boost::system::system_error(ec).what())) ) ) );
while( itr != IteratorType() ) {
eps.push_back(*itr);
++itr;
}
p->set_value( eps );
} else {
//elog( "%s", boost::system::system_error(ec).what() );
//p->set_exception( fc::copy_exception( boost::system::system_error(ec) ) );
p->set_exception(
fc::exception_ptr( new fc::exception(
FC_LOG_MESSAGE( error, "process exited with: ${message} ",
("message", boost::system::system_error(ec).what())) ) ) );
}
} }
} }
} // end namespace detail
struct default_io_service_scope struct default_io_service_scope
{ {