diff options
Diffstat (limited to 'boost/beast/core/impl/static_buffer.hpp')
-rw-r--r-- | boost/beast/core/impl/static_buffer.hpp | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/boost/beast/core/impl/static_buffer.hpp b/boost/beast/core/impl/static_buffer.hpp new file mode 100644 index 0000000000..dee13bfbe5 --- /dev/null +++ b/boost/beast/core/impl/static_buffer.hpp @@ -0,0 +1,50 @@ +// +// 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_IMPL_STATIC_BUFFER_HPP +#define BOOST_BEAST_IMPL_STATIC_BUFFER_HPP + +#include <boost/beast/core/detail/type_traits.hpp> +#include <boost/asio/buffer.hpp> +#include <boost/throw_exception.hpp> +#include <algorithm> +#include <cstring> +#include <iterator> +#include <stdexcept> + +namespace boost { +namespace beast { + +template<std::size_t N> +static_buffer<N>:: +static_buffer(static_buffer const& other) noexcept + : static_buffer_base(buf_, N) +{ + this->commit(net::buffer_copy( + this->prepare(other.size()), other.data())); +} + +template<std::size_t N> +auto +static_buffer<N>:: +operator=(static_buffer const& other) noexcept -> + static_buffer<N>& +{ + if(this == &other) + return *this; + this->consume(this->size()); + this->commit(net::buffer_copy( + this->prepare(other.size()), other.data())); + return *this; +} + +} // beast +} // boost + +#endif |