// server.cpp
// ~~~~~~~~~~
//
-// Copyright (c) 2003-2016 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com)
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
#include <boost/shared_ptr.hpp>
#include <boost/enable_shared_from_this.hpp>
#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/ip/udp.hpp>
#include <boost/asio/read_until.hpp>
public boost::enable_shared_from_this<tcp_session>
{
public:
- tcp_session(boost::asio::io_service& io_service, channel& ch)
+ tcp_session(boost::asio::io_context& io_context, channel& ch)
: channel_(ch),
- socket_(io_service),
- input_deadline_(io_service),
- non_empty_output_queue_(io_service),
- output_deadline_(io_service)
+ socket_(io_context),
+ input_deadline_(io_context),
+ non_empty_output_queue_(io_context),
+ output_deadline_(io_context)
{
input_deadline_.expires_at(boost::posix_time::pos_infin);
output_deadline_.expires_at(boost::posix_time::pos_infin);
: public subscriber
{
public:
- udp_broadcaster(boost::asio::io_service& io_service,
+ udp_broadcaster(boost::asio::io_context& io_context,
const udp::endpoint& broadcast_endpoint)
- : socket_(io_service)
+ : socket_(io_context)
{
socket_.connect(broadcast_endpoint);
}
class server
{
public:
- server(boost::asio::io_service& io_service,
+ server(boost::asio::io_context& io_context,
const tcp::endpoint& listen_endpoint,
const udp::endpoint& broadcast_endpoint)
- : io_service_(io_service),
- acceptor_(io_service, listen_endpoint)
+ : io_context_(io_context),
+ acceptor_(io_context, listen_endpoint)
{
- subscriber_ptr bc(new udp_broadcaster(io_service_, broadcast_endpoint));
+ subscriber_ptr bc(new udp_broadcaster(io_context_, broadcast_endpoint));
channel_.join(bc);
start_accept();
void start_accept()
{
- tcp_session_ptr new_session(new tcp_session(io_service_, channel_));
+ tcp_session_ptr new_session(new tcp_session(io_context_, channel_));
acceptor_.async_accept(new_session->socket(),
boost::bind(&server::handle_accept, this, new_session, _1));
}
private:
- boost::asio::io_service& io_service_;
+ boost::asio::io_context& io_context_;
tcp::acceptor acceptor_;
channel channel_;
};
return 1;
}
- boost::asio::io_service io_service;
+ boost::asio::io_context io_context;
tcp::endpoint listen_endpoint(tcp::v4(), atoi(argv[1]));
udp::endpoint broadcast_endpoint(
- boost::asio::ip::address::from_string(argv[2]), atoi(argv[3]));
+ boost::asio::ip::make_address(argv[2]), atoi(argv[3]));
- server s(io_service, listen_endpoint, broadcast_endpoint);
+ server s(io_context, listen_endpoint, broadcast_endpoint);
- io_service.run();
+ io_context.run();
}
catch (std::exception& e)
{