mirror of
https://github.com/boostorg/asio.git
synced 2026-01-24 05:32:13 +00:00
Initial merge of Networking TS compatibility.
Merged from chriskohlhoff/asio master branch as of commit 4a4d28b0d24c53236e229bd1b5f378c9964b1ebb.
This commit is contained in:
@@ -9,7 +9,7 @@
|
||||
//
|
||||
|
||||
#include <boost/asio/deadline_timer.hpp>
|
||||
#include <boost/asio/io_service.hpp>
|
||||
#include <boost/asio/io_context.hpp>
|
||||
#include <boost/asio/ip/tcp.hpp>
|
||||
#include <boost/asio/spawn.hpp>
|
||||
#include <boost/asio/write.hpp>
|
||||
@@ -23,10 +23,10 @@ using boost::asio::ip::tcp;
|
||||
class session : public boost::enable_shared_from_this<session>
|
||||
{
|
||||
public:
|
||||
explicit session(boost::asio::io_service& io_service)
|
||||
: strand_(io_service),
|
||||
socket_(io_service),
|
||||
timer_(io_service)
|
||||
explicit session(boost::asio::io_context& io_context)
|
||||
: strand_(io_context),
|
||||
socket_(io_context),
|
||||
timer_(io_context)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -76,20 +76,20 @@ private:
|
||||
}
|
||||
}
|
||||
|
||||
boost::asio::io_service::strand strand_;
|
||||
boost::asio::io_context::strand strand_;
|
||||
tcp::socket socket_;
|
||||
boost::asio::deadline_timer timer_;
|
||||
};
|
||||
|
||||
void do_accept(boost::asio::io_service& io_service,
|
||||
void do_accept(boost::asio::io_context& io_context,
|
||||
unsigned short port, boost::asio::yield_context yield)
|
||||
{
|
||||
tcp::acceptor acceptor(io_service, tcp::endpoint(tcp::v4(), port));
|
||||
tcp::acceptor acceptor(io_context, tcp::endpoint(tcp::v4(), port));
|
||||
|
||||
for (;;)
|
||||
{
|
||||
boost::system::error_code ec;
|
||||
boost::shared_ptr<session> new_session(new session(io_service));
|
||||
boost::shared_ptr<session> new_session(new session(io_context));
|
||||
acceptor.async_accept(new_session->socket(), yield[ec]);
|
||||
if (!ec) new_session->go();
|
||||
}
|
||||
@@ -105,13 +105,13 @@ int main(int argc, char* argv[])
|
||||
return 1;
|
||||
}
|
||||
|
||||
boost::asio::io_service io_service;
|
||||
boost::asio::io_context io_context;
|
||||
|
||||
boost::asio::spawn(io_service,
|
||||
boost::asio::spawn(io_context,
|
||||
boost::bind(do_accept,
|
||||
boost::ref(io_service), atoi(argv[1]), _1));
|
||||
boost::ref(io_context), atoi(argv[1]), _1));
|
||||
|
||||
io_service.run();
|
||||
io_context.run();
|
||||
}
|
||||
catch (std::exception& e)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user