GCC Code Coverage Report


Directory: libs/http_proto/
File: boost/http_proto/message_base.hpp
Date: 2024-01-12 19:51:55
Exec Total Coverage
Lines: 9 9 100.0%
Functions: 3 3 100.0%
Branches: 0 0 -%

Line Branch Exec Source
1 //
2 // Copyright (c) 2021 Vinnie Falco (vinnie.falco@gmail.com)
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/cppalliance/http_proto
8 //
9
10 #ifndef BOOST_HTTP_PROTO_MESSAGE_BASE_HPP
11 #define BOOST_HTTP_PROTO_MESSAGE_BASE_HPP
12
13 #include <boost/http_proto/detail/config.hpp>
14 #include <boost/http_proto/fields_base.hpp>
15 #include <boost/http_proto/message_view_base.hpp>
16 #include <boost/core/detail/string_view.hpp>
17
18 namespace boost {
19 namespace http_proto {
20
21 /** Provides message metadata for requests and responses
22 */
23 class BOOST_SYMBOL_VISIBLE
24 message_base
25 : public fields_base
26 , public message_view_base
27 {
28 friend class request;
29 friend class response;
30
31 explicit
32 42 message_base(
33 detail::kind k) noexcept
34 : fields_view_base(
35 &this->fields_base::h_)
36 42 , fields_base(k)
37 {
38 42 }
39
40 258 message_base(
41 detail::kind k,
42 core::string_view s)
43 : fields_view_base(
44 &this->fields_base::h_)
45 258 , fields_base(k, s)
46 {
47 258 }
48
49 explicit
50 2 message_base(
51 detail::header const& ph) noexcept
52 : fields_view_base(
53 &this->fields_base::h_)
54 2 , fields_base(ph)
55 {
56 2 }
57
58 public:
59 //--------------------------------------------
60 //
61 // Metadata
62 //
63 //--------------------------------------------
64
65 /** Set the payload size
66 */
67 BOOST_HTTP_PROTO_DECL
68 void
69 set_payload_size(
70 std::uint64_t n);
71
72 /** Set the Content-Length to the specified value
73 */
74 BOOST_HTTP_PROTO_DECL
75 void
76 set_content_length(
77 std::uint64_t n);
78
79 /** Set whether the payload is chunked.
80 */
81 BOOST_HTTP_PROTO_DECL
82 void
83 set_chunked(bool value);
84
85 /** Set whether the connection should stay open.
86
87 Even when keep-alive is set to true, the
88 semantics of the other header fields may
89 require the connection to be closed. For
90 example when there is no content length
91 specified in a response.
92 */
93 BOOST_HTTP_PROTO_DECL
94 void
95 set_keep_alive(bool value);
96
97 private:
98 char* set_prefix_impl(std::size_t);
99 };
100
101 } // http_proto
102 } // boost
103
104 #endif
105