LCOV - code coverage report
Current view: top level - libs/http/src/detail - filter.cpp (source / functions) Coverage Total Hit
Test: coverage_filtered.info Lines: 0.0 % 26 0
Test Date: 2026-02-02 17:02:49 Functions: 0.0 % 1 0

            Line data    Source code
       1              : //
       2              : // Copyright (c) 2023 Vinnie Falco (vinnie.falco@gmail.com)
       3              : // Copyright (c) 2024 Mohammad Nejati
       4              : //
       5              : // Distributed under the Boost Software License, Version 1.0. (See accompanying
       6              : // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       7              : //
       8              : // Official repository: https://github.com/cppalliance/http
       9              : //
      10              : 
      11              : #include "src/detail/filter.hpp"
      12              : 
      13              : #include <boost/capy/buffers/front.hpp>
      14              : 
      15              : namespace boost {
      16              : namespace http {
      17              : namespace detail {
      18              : 
      19              : auto
      20            0 : filter::
      21              : process(
      22              :     capy::slice_of<
      23              :         boost::span<const capy::mutable_buffer>> out,
      24              :     capy::const_buffer_pair in,
      25              :     bool more) -> results
      26              : {
      27            0 :     results rv;
      28            0 :     bool p_more = true;
      29              :     for(;;)
      30              :     {
      31            0 :         if(!more && p_more && in[1].size() == 0)
      32              :         {
      33            0 :             if(capy::buffer_size(out) < min_out_buffer())
      34              :             {
      35            0 :                 rv.out_short = true;
      36            0 :                 return rv;
      37              :             }
      38            0 :             p_more = false;
      39              :         }
      40              : 
      41            0 :         auto ob = capy::front(out);
      42            0 :         auto ib = capy::front(in);
      43            0 :         auto rs = do_process(ob, ib, p_more);
      44              : 
      45            0 :         rv.in_bytes  += rs.in_bytes;
      46            0 :         rv.out_bytes += rs.out_bytes;
      47              : 
      48            0 :         if(rs.ec)
      49              :         {
      50            0 :             rv.ec = rs.ec;
      51            0 :             return rv;
      52              :         }
      53              : 
      54            0 :         if(rs.finished)
      55              :         {
      56            0 :             rv.finished = true;
      57            0 :             return rv;
      58              :         }
      59              : 
      60            0 :         capy::remove_prefix(out, rs.out_bytes);
      61            0 :         capy::remove_prefix(in, rs.in_bytes);
      62              : 
      63            0 :         if(capy::buffer_empty(out))
      64            0 :             return rv;
      65              : 
      66            0 :         if(capy::buffer_empty(in) && rs.out_bytes < ob.size())
      67            0 :             return rv;
      68            0 :     }
      69              : }
      70              : 
      71              : } // detail
      72              : } // http
      73              : } // boost
        

Generated by: LCOV version 2.3