]>
Commit | Line | Data |
---|---|---|
b32b8144 | 1 | // |
92f5a8d4 | 2 | // Copyright (c) 2016-2019 Vinnie Falco (vinnie dot falco at gmail dot com) |
b32b8144 FG |
3 | // |
4 | // Distributed under the Boost Software License, Version 1.0. (See accompanying | |
5 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) | |
6 | // | |
7 | // Official repository: https://github.com/boostorg/beast | |
8 | // | |
9 | ||
10 | #ifndef BOOST_BEAST_READ_SIZE_HELPER_HPP | |
11 | #define BOOST_BEAST_READ_SIZE_HELPER_HPP | |
12 | ||
13 | #include <boost/beast/core/detail/config.hpp> | |
b32b8144 FG |
14 | #include <boost/throw_exception.hpp> |
15 | ||
16 | namespace boost { | |
17 | namespace beast { | |
18 | ||
19 | /** Returns a natural read size. | |
20 | ||
21 | This function inspects the capacity, size, and maximum | |
22 | size of the dynamic buffer. Then it computes a natural | |
23 | read size given the passed-in upper limit. It favors | |
24 | a read size that does not require a reallocation, subject | |
25 | to a reasonable minimum to avoid tiny reads. | |
26 | ||
27 | @param buffer The dynamic buffer to inspect. | |
28 | ||
29 | @param max_size An upper limit on the returned value. | |
30 | ||
31 | @note If the buffer is already at its maximum size, zero | |
32 | is returned. | |
33 | */ | |
34 | template<class DynamicBuffer> | |
35 | std::size_t | |
36 | read_size(DynamicBuffer& buffer, std::size_t max_size); | |
37 | ||
38 | /** Returns a natural read size or throw if the buffer is full. | |
39 | ||
40 | This function inspects the capacity, size, and maximum | |
41 | size of the dynamic buffer. Then it computes a natural | |
42 | read size given the passed-in upper limit. It favors | |
43 | a read size that does not require a reallocation, subject | |
44 | to a reasonable minimum to avoid tiny reads. | |
45 | ||
46 | @param buffer The dynamic buffer to inspect. | |
47 | ||
48 | @param max_size An upper limit on the returned value. | |
49 | ||
50 | @throws std::length_error if `max_size > 0` and the buffer | |
51 | is full. | |
52 | */ | |
53 | template<class DynamicBuffer> | |
54 | std::size_t | |
55 | read_size_or_throw(DynamicBuffer& buffer, | |
56 | std::size_t max_size); | |
57 | ||
58 | } // beast | |
59 | } // boost | |
60 | ||
92f5a8d4 | 61 | #include <boost/beast/core/impl/read_size.hpp> |
b32b8144 FG |
62 | |
63 | #endif |