From c9ee717862cbb6ef76681c7af10c15d56766adb0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=AC=8A=E5=B0=91?= Date: Sun, 14 Jun 2026 13:07:58 +0800 Subject: [PATCH] fix: replace deprecated asio API. --- examples/asio/autoecho.cpp | 5 ++--- examples/asio/ps/publisher.cpp | 5 ++--- examples/asio/ps/subscriber.cpp | 5 ++--- examples/asio/round_robin.hpp | 14 +++++++------- 4 files changed, 13 insertions(+), 16 deletions(-) diff --git a/examples/asio/autoecho.cpp b/examples/asio/autoecho.cpp index ace251b1..27dd0592 100644 --- a/examples/asio/autoecho.cpp +++ b/examples/asio/autoecho.cpp @@ -183,10 +183,9 @@ void client( std::shared_ptr< boost::asio::io_context > const& io_ctx, tcp::acce print( tag(), ": echo-client started"); for (unsigned count = 0; count < iterations; ++count) { tcp::resolver resolver( * io_ctx); - tcp::resolver::query query( tcp::v4(), "127.0.0.1", "9999"); - tcp::resolver::iterator iterator = resolver.resolve( query); + tcp::resolver::results_type results = resolver.resolve( tcp::v4(), "127.0.0.1", "9999"); tcp::socket s( * io_ctx); - boost::asio::connect( s, iterator); + boost::asio::connect( s, results); for (unsigned msg = 0; msg < 1; ++msg) { std::ostringstream msgbuf; msgbuf << "from " << fiber_names.lookup() << " " << count << "." << msg; diff --git a/examples/asio/ps/publisher.cpp b/examples/asio/ps/publisher.cpp index 245e56cc..2e95a505 100644 --- a/examples/asio/ps/publisher.cpp +++ b/examples/asio/ps/publisher.cpp @@ -28,10 +28,9 @@ int main( int argc, char* argv[]) { } boost::asio::io_context io_context; tcp::resolver resolver( io_context); - tcp::resolver::query query( tcp::v4(), argv[1], "9997"); - tcp::resolver::iterator iterator = resolver.resolve(query); + tcp::resolver::results_type results = resolver.resolve( tcp::v4(), argv[1], "9997"); tcp::socket s( io_context); - boost::asio::connect( s, iterator); + boost::asio::connect( s, results); char msg[max_length]; std::string queue( argv[2]); std::memset( msg, '\0', max_length); diff --git a/examples/asio/ps/subscriber.cpp b/examples/asio/ps/subscriber.cpp index 83b5e8b3..3b4d847f 100644 --- a/examples/asio/ps/subscriber.cpp +++ b/examples/asio/ps/subscriber.cpp @@ -28,10 +28,9 @@ int main( int argc, char* argv[]) { } boost::asio::io_context io_context; tcp::resolver resolver( io_context); - tcp::resolver::query query( tcp::v4(), argv[1], "9998"); - tcp::resolver::iterator iterator = resolver.resolve( query); + tcp::resolver::results_type results = resolver.resolve( tcp::v4(), argv[1], "9998"); tcp::socket s( io_context); - boost::asio::connect( s, iterator); + boost::asio::connect( s, results); char msg[max_length]; std::string queue( argv[2]); std::memset( msg, '\0', max_length); diff --git a/examples/asio/round_robin.hpp b/examples/asio/round_robin.hpp index 02b3fbdb..537a5012 100644 --- a/examples/asio/round_robin.hpp +++ b/examples/asio/round_robin.hpp @@ -49,11 +49,11 @@ public: struct service : public boost::asio::io_context::service { static boost::asio::io_context::id id; - std::unique_ptr< boost::asio::io_context::work > work_; + boost::asio::executor_work_guard< boost::asio::io_context::executor_type > work_; - service( boost::asio::io_context & io_ctx) : - boost::asio::io_context::service( io_ctx), - work_{ new boost::asio::io_context::work( io_ctx) } { + service( boost::asio::execution_context & ctx) : + boost::asio::io_context::service( static_cast< boost::asio::io_context & >( ctx) ), + work_{ boost::asio::make_work_guard( static_cast< boost::asio::io_context & >( ctx) ) } { } virtual ~service() {} @@ -61,7 +61,7 @@ public: service( service const&) = delete; service & operator=( service const&) = delete; - void shutdown_service() override final { + void shutdown() { work_.reset(); } }; @@ -71,10 +71,10 @@ public: round_robin( std::shared_ptr< boost::asio::io_context > const& io_ctx) : io_ctx_( io_ctx), suspend_timer_( * io_ctx_) { - // We use add_service() very deliberately. This will throw + // We use make_service() very deliberately. This will throw // service_already_exists if you pass the same io_context instance to // more than one round_robin instance. - boost::asio::add_service( * io_ctx_, new service( * io_ctx_) ); + boost::asio::make_service< service >( static_cast< boost::asio::execution_context & >( * io_ctx_) ); boost::asio::post( * io_ctx_, [this]() mutable { //] //[asio_rr_service_lambda