// // 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_READ_SIZE_HELPER_HPP #define BOOST_BEAST_READ_SIZE_HELPER_HPP #include #include namespace boost { namespace beast { /** Returns a natural read size. This function inspects the capacity, size, and maximum size of the dynamic buffer. Then it computes a natural read size given the passed-in upper limit. It favors a read size that does not require a reallocation, subject to a reasonable minimum to avoid tiny reads. @param buffer The dynamic buffer to inspect. @param max_size An upper limit on the returned value. @note If the buffer is already at its maximum size, zero is returned. */ template std::size_t read_size(DynamicBuffer& buffer, std::size_t max_size); /** Returns a natural read size or throw if the buffer is full. This function inspects the capacity, size, and maximum size of the dynamic buffer. Then it computes a natural read size given the passed-in upper limit. It favors a read size that does not require a reallocation, subject to a reasonable minimum to avoid tiny reads. @param buffer The dynamic buffer to inspect. @param max_size An upper limit on the returned value. @throws std::length_error if `max_size > 0` and the buffer is full. */ template std::size_t read_size_or_throw(DynamicBuffer& buffer, std::size_t max_size); } // beast } // boost #include #endif