LCOV - code coverage report
Current view: top level - http_proto/detail - array_of_buffers.hpp (source / functions) Hit Total Coverage
Test: coverage_filtered.info Lines: 1 1 100.0 %
Date: 2023-02-02 18:17:21 Functions: 1 1 100.0 %

          Line data    Source code
       1             : //
       2             : // Copyright (c) 2019 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_DETAIL_ARRAY_OF_BUFFERS_HPP
      11             : #define BOOST_HTTP_PROTO_DETAIL_ARRAY_OF_BUFFERS_HPP
      12             : 
      13             : #include <boost/http_proto/buffer.hpp>
      14             : 
      15             : namespace boost {
      16             : namespace http_proto {
      17             : namespace detail {
      18             : 
      19             : template<bool isConst>
      20             : class array_of_buffers
      21             : {
      22             : public:
      23             :     using value_type = typename
      24             :         std::conditional<isConst,
      25             :             const_buffer,
      26             :             mutable_buffer>::type;
      27             :     using iterator = value_type*;
      28             :     using const_iterator = iterator;
      29             : 
      30          22 :     array_of_buffers() = default;
      31             :     array_of_buffers(
      32             :         array_of_buffers const&) = default;
      33             :     array_of_buffers& operator=(
      34             :         array_of_buffers const&) = default;
      35             : 
      36             :     array_of_buffers(
      37             :         value_type* p,
      38             :         std::size_t n) noexcept;
      39             : 
      40             :     bool empty() const noexcept;
      41             :     value_type* data() const noexcept;
      42             :     std::size_t size() const noexcept;
      43             :     value_type& operator[](std::size_t) const noexcept;
      44             :     void consume(std::size_t n);
      45             : 
      46             :     iterator begin() const noexcept;
      47             :     iterator end() const noexcept;
      48             : 
      49             : private:
      50             :     value_type* p_ = nullptr;
      51             :     std::size_t n_ = 0;
      52             : };
      53             : 
      54             : using array_of_const_buffers =
      55             :     array_of_buffers<true>;
      56             : 
      57             : using array_of_mutable_buffers =
      58             :     array_of_buffers<true>;
      59             : 
      60             : } // detail
      61             : } // http_proto
      62             : } // boost
      63             : 
      64             : #include <boost/http_proto/detail/impl/array_of_buffers.hpp>
      65             : 
      66             : #endif

Generated by: LCOV version 1.15