LCOV - code coverage report
Current view: top level - libs/url/src/static_url.cpp (source / functions) Coverage Total Hit
Test: coverage_filtered.info Lines: 100.0 % 22 22
Test Date: 2024-08-20 16:05:53 Functions: 100.0 % 4 4

            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           18 :     : static_url_base(buf, cap)
      38              : {
      39           37 :     copy(parse_uri_reference(s
      40           19 :         ).value(BOOST_URL_POS));
      41           18 : }
      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 2.1