Составной обработчик соединения должен соответствовать требованиям для обработчика. Значение<h
>составленного класса обработчика соединения должно корректно работать в выражении<h(ec,
i)
>, где<ec
>является значением типа<consterror_code
>и<i
>является значением типа<Iterator
>, используемого в соответствующей функции<connect()
>или async_connect().
Бесплатная функция в качестве составного обработчика соединений:
void connect_handler(
const boost::system::error_code& ec,
boost::asio::ip::tcp::resolver::iterator iterator)
{
...
}
Составной объект функции обработчика соединения:
struct connect_handler
{
...
template <typename Iterator>
void operator()(
const boost::system::error_code& ec,
Iterator iterator)
{
...
}
...
};
Функция нестатического члена класса, адаптированная к составному обработчику соединения с использованием<bind()
>:
void my_class::connect_handler(
const boost::system::error_code& ec,
boost::asio::ip::tcp::resolver::iterator iterator)
{
...
}
...
boost::asio::async_connect(...,
boost::bind(&my_class::connect_handler,
this, boost::asio::placeholders::error,
boost::asio::placeholders::iterator));