]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/boost/boost/beast/core/buffers_adapter.hpp
import new upstream nautilus stable release 14.2.8
[ceph.git] / ceph / src / boost / boost / beast / core / buffers_adapter.hpp
index 826183ed068512f4f4f6b13207cf92f62d7be0a3..6c584bb295a5f80a9ecfdff289e2633ef7103c88 100644 (file)
@@ -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)
 #define BOOST_BEAST_BUFFERS_ADAPTER_HPP
 
 #include <boost/beast/core/detail/config.hpp>
-#include <boost/beast/core/type_traits.hpp>
-#include <boost/asio/buffer.hpp>
-#include <type_traits>
 
-namespace boost {
-namespace beast {
+#ifdef BOOST_BEAST_ALLOW_DEPRECATED
 
-/** Adapts a @b MutableBufferSequence into a @b DynamicBuffer.
+#include <boost/beast/core/buffers_adaptor.hpp>
 
-    This class wraps a @b MutableBufferSequence to meet the requirements
-    of @b DynamicBuffer. Upon construction the input and output sequences are
-    empty. A copy of the mutable buffer sequence object is stored; however,
-    ownership of the underlying memory is not transferred. The caller is
-    responsible for making sure that referenced memory remains valid
-    for the duration of any operations.
-
-    The size of the mutable buffer sequence determines the maximum
-    number of bytes which may be prepared and committed.
+namespace boost {
+namespace beast {
 
-    @tparam MutableBufferSequence The type of mutable buffer sequence to wrap.
-*/
 template<class MutableBufferSequence>
-class buffers_adapter
-{
-    static_assert(boost::asio::is_mutable_buffer_sequence<MutableBufferSequence>::value,
-        "MutableBufferSequence requirements not met");
-
-    using iter_type = typename
-        detail::buffer_sequence_iterator<
-            MutableBufferSequence>::type;
-
-    MutableBufferSequence bs_;
-    iter_type begin_;
-    iter_type out_;
-    iter_type end_;
-    std::size_t max_size_;
-    std::size_t in_pos_ = 0;    // offset in *begin_
-    std::size_t in_size_ = 0;   // size of input sequence
-    std::size_t out_pos_ = 0;   // offset in *out_
-    std::size_t out_end_ = 0;   // output end offset
-
-    template<class Deduced>
-    buffers_adapter(Deduced&& other,
-        std::size_t nbegin, std::size_t nout,
-            std::size_t nend)
-        : bs_(std::forward<Deduced>(other).bs_)
-        , begin_(std::next(bs_.begin(), nbegin))
-        , out_(std::next(bs_.begin(), nout))
-        , end_(std::next(bs_.begin(), nend))
-        , max_size_(other.max_size_)
-        , in_pos_(other.in_pos_)
-        , in_size_(other.in_size_)
-        , out_pos_(other.out_pos_)
-        , out_end_(other.out_end_)
-    {
-    }
+using buffers_adapter = buffers_adaptor<MutableBufferSequence>;
 
-public:
-#if BOOST_BEAST_DOXYGEN
-    /// The type used to represent the input sequence as a list of buffers.
-    using const_buffers_type = implementation_defined;
-
-    /// The type used to represent the output sequence as a list of buffers.
-    using mutable_buffers_type = implementation_defined;
+} // beast
+} // boost
 
 #else
-    class const_buffers_type;
 
-    class mutable_buffers_type;
+// The new filename is <boost/beast/core/buffers_adaptor.hpp>
+#error The file <boost/beast/core/buffers_adapter.hpp> is deprecated, define BOOST_BEAST_ALLOW_DEPRECATED to disable this error
 
 #endif
 
-    /// Move constructor.
-    buffers_adapter(buffers_adapter&& other);
-
-    /// Copy constructor.
-    buffers_adapter(buffers_adapter const& other);
-
-    /// Move assignment.
-    buffers_adapter& operator=(buffers_adapter&& other);
-
-    /// Copy assignment.
-    buffers_adapter& operator=(buffers_adapter const&);
-
-    /** Construct a buffers adapter.
-
-        @param buffers The mutable buffer sequence to wrap. A copy of
-        the object will be made, but ownership of the memory is not
-        transferred.
-    */
-    explicit
-    buffers_adapter(MutableBufferSequence const& buffers);
-
-    /// Returns the largest size output sequence possible.
-    std::size_t
-    max_size() const
-    {
-        return max_size_;
-    }
-
-    /// Get the size of the input sequence.
-    std::size_t
-    size() const
-    {
-        return in_size_;
-    }
-    
-    /// Returns the maximum sum of the sizes of the input sequence and output sequence the buffer can hold without requiring reallocation.
-    std::size_t
-    capacity() const
-    {
-        return max_size_;
-    }
-
-    /** Get a list of buffers that represents the output sequence, with the given size.
-
-        @throws std::length_error if the size would exceed the limit
-        imposed by the underlying mutable buffer sequence.
-
-        @note Buffers representing the input sequence acquired prior to
-        this call remain valid.
-    */
-    mutable_buffers_type
-    prepare(std::size_t n);
-
-    /** Move bytes from the output sequence to the input sequence.
-
-        @note Buffers representing the input sequence acquired prior to
-        this call remain valid.
-    */
-    void
-    commit(std::size_t n);
-
-    /** Get a list of buffers that represents the input sequence.
-
-        @note These buffers remain valid across subsequent calls to `prepare`.
-    */
-    const_buffers_type
-    data() const;
-
-    /// Remove bytes from the input sequence.
-    void
-    consume(std::size_t n);
-};
-
-} // beast
-} // boost
-
-#include <boost/beast/core/impl/buffers_adapter.ipp>
-
 #endif