Files
boost_beast/test/core/doc_snippets.cpp

66 lines
1.3 KiB
C++
Raw Normal View History

2017-06-07 18:18:50 -07:00
//
// Copyright (c) 2013-2017 Vinnie Falco (vinnie dot falco at gmail 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)
//
//[snippet_core_1a
#include <beast/core.hpp>
#include <boost/asio.hpp>
#include <iostream>
#include <thread>
//]
using namespace beast;
namespace doc_core_snippets {
void fxx()
{
//[snippet_core_1b
//
2017-06-07 16:30:49 -07:00
using namespace beast;
2017-06-07 18:18:50 -07:00
2017-06-07 16:30:49 -07:00
boost::asio::io_service ios;
boost::asio::io_service::work work{ios};
std::thread t{[&](){ ios.run(); }};
2017-06-07 18:18:50 -07:00
2017-06-07 16:30:49 -07:00
error_code ec;
boost::asio::ip::tcp::socket sock{ios};
2017-06-07 18:18:50 -07:00
//]
{
//[snippet_core_2
2017-06-12 05:01:24 -07:00
char const* const host = "www.example.com";
2017-06-07 18:18:50 -07:00
boost::asio::ip::tcp::resolver r{ios};
boost::asio::ip::tcp::socket stream{ios};
2017-06-19 07:28:20 -07:00
boost::asio::connect(stream, r.resolve({host, "http"}));
2017-06-07 18:18:50 -07:00
// At this point `stream` is a connected to a remote
// host and may be used to perform stream operations.
//]
}
} // fxx()
//[snippet_core_3
template<class SyncWriteStream>
void write_string(SyncWriteStream& stream, string_view s)
{
static_assert(is_sync_write_stream<SyncWriteStream>::value,
"SyncWriteStream requirements not met");
boost::asio::write(stream, boost::asio::const_buffers_1(s.data(), s.size()));
}
//]
} // doc_core_snippets