LCOV - code coverage report
Current view: top level - libs/url/src - static_url.cpp (source / functions) Hit Total Coverage
Test: coverage_filtered.info Lines: 22 22 100.0 %
Date: 2024-04-08 19:38:36 Functions: 4 4 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/boostorg/url
       8             : //
       9             : 
      10             : 
      11             : #include <boost/url/detail/config.hpp>
      12             : #include <boost/url/parse.hpp>
      13             : #include <boost/url/static_url.hpp>
      14             : #include <boost/url/url_view.hpp>
      15             : #include <boost/url/detail/except.hpp>
      16             : #include <boost/assert.hpp>
      17             : 
      18             : namespace boost {
      19             : namespace urls {
      20             : 
      21          33 : static_url_base::
      22             : static_url_base(
      23             :     char* buf,
      24          33 :     std::size_t cap) noexcept
      25             : {
      26          33 :     s_ = buf;
      27          33 :     cap_ = cap;
      28          33 :     s_[0] = '\0';
      29          33 :     impl_.cs_ = s_;
      30          33 : }
      31             : 
      32          18 : static_url_base::
      33             : static_url_base(
      34             :     char* buf,
      35             :     std::size_t cap,
      36          18 :     core::string_view s)
      37          20 :     : static_url_base(buf, cap)
      38             : {
      39          37 :     copy(parse_uri_reference(s
      40          19 :         ).value(BOOST_URL_POS));
      41          16 : }
      42             : 
      43             : void
      44           1 : static_url_base::
      45             : clear_impl() noexcept
      46             : {
      47           1 :     impl_ = {from::url};
      48           1 :     s_[0] = '\0';
      49           1 :     impl_.cs_ = s_;
      50           1 : }
      51             : 
      52             : void
      53          41 : static_url_base::
      54             : reserve_impl(
      55             :     std::size_t n,
      56             :     op_t&)
      57             : {
      58          41 :     if(n <= cap_)
      59          37 :         return;
      60           4 :     detail::throw_length_error();
      61             : }
      62             : 
      63             : //----------------------------------------------------------
      64             : 
      65             : // LCOV_EXCL_START
      66             : void
      67             : static_url_base::
      68             : cleanup(op_t&)
      69             : {
      70             :     /*
      71             :      * The cleanup function is a blank
      72             :      * override as it's unreachable
      73             :      * for static_url_base.
      74             :      *
      75             :      * `u.cleanup()` is called by `op_t` when
      76             :      * the `op_t::old` string is being replaced.
      77             :      * This never happens for `static_url_base`
      78             :      * because it always uses the same buffer.
      79             :      *
      80             :      * `url::reserve_impl` is the only function
      81             :      * that sets the `op_t::old` string but
      82             :      * `static_url_base::reserve_impl` does
      83             :      * not touch `op_t::old`.
      84             :      */
      85             : }
      86             : // LCOV_EXCL_STOP
      87             : 
      88             : } // urls
      89             : } // boost
      90             : 

Generated by: LCOV version 1.15