1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- //
- // Copyright (c) 2016-2019 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)
- //
- // Official repository: https://github.com/boostorg/beast
- //
- #ifndef BOOST_BEAST_BUFFERS_TO_STRING_HPP
- #define BOOST_BEAST_BUFFERS_TO_STRING_HPP
- #include <boost/beast/core/detail/config.hpp>
- #include <boost/beast/core/buffer_traits.hpp>
- #include <boost/beast/core/buffers_range.hpp>
- #include <boost/asio/buffer.hpp>
- #include <string>
- namespace boost {
- namespace beast {
- /** Return a string representing the contents of a buffer sequence.
- This function returns a string representing an entire buffer
- sequence. Nulls and unprintable characters in the buffer
- sequence are inserted to the resulting string as-is. No
- character conversions are performed.
- @param buffers The buffer sequence to convert
- @par Example
- This function writes a buffer sequence converted to a string
- to `std::cout`.
- @code
- template<class ConstBufferSequence>
- void print(ConstBufferSequence const& buffers)
- {
- std::cout << buffers_to_string(buffers) << std::endl;
- }
- @endcode
- */
- template<class ConstBufferSequence>
- std::string
- buffers_to_string(ConstBufferSequence const& buffers)
- {
- static_assert(
- net::is_const_buffer_sequence<ConstBufferSequence>::value,
- "ConstBufferSequence type requirements not met");
- std::string result;
- result.reserve(buffer_bytes(buffers));
- for(auto const buffer : buffers_range_ref(buffers))
- result.append(static_cast<char const*>(
- buffer.data()), buffer.size());
- return result;
- }
- } // beast
- } // boost
- #endif
|