]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/boost/libs/asio/example/cpp03/services/daytime_client.cpp
update sources to v12.2.3
[ceph.git] / ceph / src / boost / libs / asio / example / cpp03 / services / daytime_client.cpp
index ff7459b3bd27f59dbe7df2b158dfe45f5343b1f5..204382a989e88866bd0ada3e63fb0722f0a33260 100644 (file)
@@ -2,7 +2,7 @@
 // daytime_client.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/bind.hpp>
 #include <iostream>
 #include "logger.hpp"
-#include "stream_socket_service.hpp"
 
-typedef boost::asio::basic_stream_socket<boost::asio::ip::tcp,
-    services::stream_socket_service<boost::asio::ip::tcp> > debug_stream_socket;
+using boost::asio::ip::tcp;
 
 char read_buffer[1024];
 
 void read_handler(const boost::system::error_code& e,
-    std::size_t bytes_transferred, debug_stream_socket* s)
+    std::size_t bytes_transferred, tcp::socket* s)
 {
   if (!e)
   {
@@ -30,19 +28,33 @@ void read_handler(const boost::system::error_code& e,
         boost::bind(read_handler, boost::asio::placeholders::error,
           boost::asio::placeholders::bytes_transferred, s));
   }
+  else
+  {
+    services::logger logger(s->get_executor().context(), "read_handler");
+
+    std::string msg = "Read error: ";
+    msg += e.message();
+    logger.log(msg);
+  }
 }
 
-void connect_handler(const boost::system::error_code& e, debug_stream_socket* s)
+void connect_handler(const boost::system::error_code& e, tcp::socket* s)
 {
+  services::logger logger(s->get_executor().context(), "connect_handler");
+
   if (!e)
   {
+    logger.log("Connection established");
+
     s->async_read_some(boost::asio::buffer(read_buffer),
         boost::bind(read_handler, boost::asio::placeholders::error,
           boost::asio::placeholders::bytes_transferred, s));
   }
   else
   {
-    std::cerr << e.message() << std::endl;
+    std::string msg = "Unable to establish connection: ";
+    msg += e.message();
+    logger.log(msg);
   }
 }
 
@@ -56,25 +68,25 @@ int main(int argc, char* argv[])
       return 1;
     }
 
-    boost::asio::io_service io_service;
+    boost::asio::io_context io_context;
 
     // Set the name of the file that all logger instances will use.
-    services::logger logger(io_service, "");
+    services::logger logger(io_context, "");
     logger.use_file("log.txt");
 
     // Resolve the address corresponding to the given host.
-    boost::asio::ip::tcp::resolver resolver(io_service);
-    boost::asio::ip::tcp::resolver::query query(argv[1], "daytime");
-    boost::asio::ip::tcp::resolver::iterator iterator = resolver.resolve(query);
+    tcp::resolver resolver(io_context);
+    tcp::resolver::results_type endpoints =
+      resolver.resolve(argv[1], "daytime");
 
     // Start an asynchronous connect.
-    debug_stream_socket socket(io_service);
-    boost::asio::async_connect(socket, iterator,
+    tcp::socket socket(io_context);
+    boost::asio::async_connect(socket, endpoints,
         boost::bind(connect_handler,
           boost::asio::placeholders::error, &socket));
 
-    // Run the io_service until all operations have finished.
-    io_service.run();
+    // Run the io_context until all operations have finished.
+    io_context.run();
   }
   catch (std::exception& e)
   {