summaryrefslogtreecommitdiff
path: root/boost/beast/core/buffers_cat.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'boost/beast/core/buffers_cat.hpp')
-rw-r--r--boost/beast/core/buffers_cat.hpp58
1 files changed, 25 insertions, 33 deletions
diff --git a/boost/beast/core/buffers_cat.hpp b/boost/beast/core/buffers_cat.hpp
index 1d711b3b30..532ea32eef 100644
--- a/boost/beast/core/buffers_cat.hpp
+++ b/boost/beast/core/buffers_cat.hpp
@@ -1,5 +1,5 @@
//
-// Copyright (c) 2016-2017 Vinnie Falco (vinnie dot falco at gmail dot com)
+// 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)
@@ -11,66 +11,59 @@
#define BOOST_BEAST_BUFFERS_CAT_HPP
#include <boost/beast/core/detail/config.hpp>
+#include <boost/beast/core/buffer_traits.hpp>
+#include <boost/beast/core/detail/tuple.hpp>
#include <boost/beast/core/detail/type_traits.hpp>
-#include <tuple>
namespace boost {
namespace beast {
/** A buffer sequence representing a concatenation of buffer sequences.
- @see @ref buffers_cat
+ @see buffers_cat
*/
template<class... Buffers>
class buffers_cat_view
{
- std::tuple<Buffers...> bn_;
+ detail::tuple<Buffers...> bn_;
public:
/** The type of buffer returned when dereferencing an iterator.
- If every buffer sequence in the view is a @b MutableBufferSequence,
- then `value_type` will be `boost::asio::mutable_buffer`.
- Otherwise, `value_type` will be `boost::asio::const_buffer`.
+ If every buffer sequence in the view is a <em>MutableBufferSequence</em>,
+ then `value_type` will be `net::mutable_buffer`.
+ Otherwise, `value_type` will be `net::const_buffer`.
*/
#if BOOST_BEAST_DOXYGEN
- using value_type = implementation_defined;
+ using value_type = __see_below__;
#else
- using value_type = typename
- detail::common_buffers_type<Buffers...>::type;
+ using value_type = buffers_type<Buffers...>;
#endif
/// The type of iterator used by the concatenated sequence
class const_iterator;
- /// Constructor
- buffers_cat_view(buffers_cat_view&&) = default;
-
- /// Assignment
- buffers_cat_view& operator=(buffers_cat_view&&) = default;
+ /// Copy Constructor
+ buffers_cat_view(buffers_cat_view const&) = default;
- /// Assignment
+ /// Copy Assignment
buffers_cat_view& operator=(buffers_cat_view const&) = default;
/** Constructor
@param buffers The list of buffer sequences to concatenate.
- Copies of the arguments will be made; however, the ownership
- of memory is not transferred.
+ Copies of the arguments will be maintained for the lifetime
+ of the concatenated sequence; however, the ownership of the
+ memory buffers themselves is not transferred.
*/
explicit
buffers_cat_view(Buffers const&... buffers);
- //-----
-
- /// Required for @b BufferSequence
- buffers_cat_view(buffers_cat_view const&) = default;
-
- /// Required for @b BufferSequence
+ /// Returns an iterator to the first buffer in the sequence
const_iterator
begin() const;
- /// Required for @b BufferSequence
+ /// Returns an iterator to one past the last buffer in the sequence
const_iterator
end() const;
};
@@ -88,11 +81,11 @@ public:
@return A new buffer sequence that represents the concatenation of
the input buffer sequences. This buffer sequence will be a
- @b MutableBufferSequence if each of the passed buffer sequences is
- also a @b MutableBufferSequence; otherwise the returned buffer
- sequence will be a @b ConstBufferSequence.
+ <em>MutableBufferSequence</em> if each of the passed buffer sequences is
+ also a <em>MutableBufferSequence</em>; otherwise the returned buffer
+ sequence will be a <em>ConstBufferSequence</em>.
- @see @ref buffers_cat_view
+ @see buffers_cat_view
*/
#if BOOST_BEAST_DOXYGEN
template<class... BufferSequence>
@@ -100,20 +93,19 @@ buffers_cat_view<BufferSequence...>
buffers_cat(BufferSequence const&... buffers)
#else
template<class B1, class B2, class... Bn>
-inline
buffers_cat_view<B1, B2, Bn...>
buffers_cat(B1 const& b1, B2 const& b2, Bn const&... bn)
#endif
{
static_assert(
- detail::is_all_const_buffer_sequence<B1, B2, Bn...>::value,
- "BufferSequence requirements not met");
+ is_const_buffer_sequence<B1, B2, Bn...>::value,
+ "BufferSequence type requirements not met");
return buffers_cat_view<B1, B2, Bn...>{b1, b2, bn...};
}
} // beast
} // boost
-#include <boost/beast/core/impl/buffers_cat.ipp>
+#include <boost/beast/core/impl/buffers_cat.hpp>
#endif