LCOV - code coverage report
Current view: top level - src - config.cpp (source / functions) Coverage Total Hit Missed
Test: coverage_remapped.info Lines: 95.7 % 23 22 1
Test Date: 2026-06-13 19:44:58 Functions: 100.0 % 3 3

           TLA  Line data    Source code
       1                 : //
       2                 : // Copyright (c) 2026 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
       8                 : //
       9                 : 
      10                 : #include <boost/http/config.hpp>
      11                 : #include <boost/http/detail/except.hpp>
      12                 : #include <boost/http/detail/header.hpp>
      13                 : 
      14                 : #include <cstdint>
      15                 : #include <memory>
      16                 : 
      17                 : namespace boost {
      18                 : namespace http {
      19                 : 
      20                 : std::size_t
      21 HIT       83738 : parser_config_impl::
      22                 : max_overread() const noexcept
      23                 : {
      24           83738 :     return headers.max_size + min_buffer;
      25                 : }
      26                 : 
      27                 : std::shared_ptr<parser_config_impl const>
      28             115 : make_parser_config(parser_config cfg)
      29                 : {
      30             115 :     if(cfg.max_prepare < 1)
      31 MIS           0 :         detail::throw_invalid_argument();
      32                 : 
      33 HIT         115 :     auto impl = std::make_shared<parser_config_impl>(std::move(cfg));
      34                 : 
      35                 :     /*
      36                 :         | fb |     cb0     |     cb1     | T | f |
      37                 : 
      38                 :         fb  flat_dynamic_buffer         headers.max_size
      39                 :         cb0 circular_buffer     min_buffer
      40                 :         cb1 circular_buffer     min_buffer
      41                 :         f   table               max_table_space
      42                 :     */
      43                 : 
      44             115 :     std::size_t space_needed = 0;
      45                 : 
      46             115 :     space_needed += impl->headers.valid_space_needed();
      47                 : 
      48                 :     // cb0_, cb1_
      49             115 :     space_needed += impl->min_buffer + impl->min_buffer;
      50                 : 
      51                 :     // round up to alignof(detail::header::entry)
      52             115 :     auto const al = alignof(detail::header::entry);
      53             115 :     space_needed = al * ((space_needed + al - 1) / al);
      54                 : 
      55             115 :     impl->space_needed = space_needed;
      56             115 :     impl->max_codec = 0;  // not currently used for parser
      57                 : 
      58             230 :     return impl;
      59             115 : }
      60                 : 
      61                 : std::shared_ptr<serializer_config_impl const>
      62               2 : make_serializer_config(serializer_config cfg)
      63                 : {
      64               2 :     auto impl = std::make_shared<serializer_config_impl>();
      65               2 :     static_cast<serializer_config&>(*impl) = std::move(cfg);
      66                 : 
      67               2 :     std::size_t space_needed = 0;
      68               2 :     space_needed += impl->payload_buffer;
      69                 : 
      70               2 :     impl->space_needed = space_needed;
      71                 : 
      72               4 :     return impl;
      73               2 : }
      74                 : 
      75                 : } // http
      76                 : } // boost
        

Generated by: LCOV version 2.3