Подклассы: POP3conN и SMTPconN имеют члена:
boost::asio::ip::tcp::socket socket_
Аналогично, POP3conS и SMTPconS имеют члена:
boost::asio::ssl::stream<boost::asio::ip::tcp::socket> socket_;
Первым аргументом всех конструкторов является указатель на io_service
. Некоторые как:
IPCON::IPCON(boost::asio::io_service* ioserv_, ...) { ... }
POP3conN::POP3conN(boost::asio::io_service* ioserv_, ....) {...}
Первое изменение : в абстрактный класс IPCON добавлен новый член:
boost::asio::io_context* iocontPtr_;
который инициализируется в конструкторе, заменяя старую ссылку на io_service
:
IPCON::IPCON(boost::asio::io_context* iocont_, ...) { ... }
В конструкторы подклассов была добавлена инициализация для такого члена:
POP3conN::POP3conN(boost::asio::io_context* iocont, ....) : IPCON(iocont) { ... }
Второе изменение : все случаи
boost::asio::io_service
Может быть заменено на
boost::asio::io_context
Проблемные выражения
void SMTPconN::run() { socket_.get_io_service().run(); }
void SMTPconN::reset() { socket_.get_io_service().reset(); }
теперь выглядит так:
void SMTPconN::run() { iocontPtr->run(); }
void SMTPconN::reset() { iocontPtr->reset(); }
Кажется, что функциональность старого io_service
была заменена новым io_context
.