LCOV - code coverage report
Current view: top level - include/boost/http/detail - file_posix.hpp (source / functions) Coverage Total Hit
Test: coverage_remapped.info Lines: 100.0 % 5 5
Test Date: 2026-06-13 19:44:58 Functions: 100.0 % 3 3

           TLA  Line data    Source code
       1                 : //
       2                 : // Copyright (c) 2022 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                 : #ifndef BOOST_HTTP_DETAIL_FILE_POSIX_HPP
      11                 : #define BOOST_HTTP_DETAIL_FILE_POSIX_HPP
      12                 : 
      13                 : #include <boost/http/detail/config.hpp>
      14                 : 
      15                 : #if ! defined(BOOST_HTTP_NO_POSIX_FILE)
      16                 : # if ! defined(__APPLE__) && ! defined(__linux__) && ! defined(__FreeBSD__) && ! defined(__NetBSD__)
      17                 : #  define BOOST_HTTP_NO_POSIX_FILE
      18                 : # endif
      19                 : #endif
      20                 : 
      21                 : #if ! defined(BOOST_HTTP_USE_POSIX_FILE)
      22                 : # if ! defined(BOOST_HTTP_NO_POSIX_FILE)
      23                 : #  define BOOST_HTTP_USE_POSIX_FILE 1
      24                 : # else
      25                 : #  define BOOST_HTTP_USE_POSIX_FILE 0
      26                 : # endif
      27                 : #endif
      28                 : 
      29                 : #if BOOST_HTTP_USE_POSIX_FILE
      30                 : 
      31                 : #include <boost/http/error.hpp>
      32                 : #include <boost/http/file_mode.hpp>
      33                 : #include <boost/system/error_code.hpp>
      34                 : #include <cstdint>
      35                 : 
      36                 : namespace boost {
      37                 : namespace http {
      38                 : namespace detail {
      39                 : 
      40                 : // Implementation of File for POSIX systems.
      41                 : class file_posix
      42                 : {
      43                 :     int fd_ = -1;
      44                 : 
      45                 :     BOOST_HTTP_DECL
      46                 :     static
      47                 :     int
      48                 :     native_close(int& fd);
      49                 : 
      50                 : public:
      51                 :     using native_handle_type = int;
      52                 : 
      53                 :     BOOST_HTTP_DECL
      54                 :     ~file_posix();
      55                 : 
      56 HIT           1 :     file_posix() = default;
      57                 : 
      58                 :     BOOST_HTTP_DECL
      59                 :     file_posix(file_posix&& other) noexcept;
      60                 : 
      61                 :     BOOST_HTTP_DECL
      62                 :     file_posix&
      63                 :     operator=(file_posix&& other) noexcept;
      64                 : 
      65                 :     native_handle_type
      66               4 :     native_handle() const
      67                 :     {
      68               4 :         return fd_;
      69                 :     }
      70                 : 
      71                 :     BOOST_HTTP_DECL
      72                 :     void
      73                 :     native_handle(native_handle_type fd);
      74                 : 
      75                 :     bool
      76              20 :     is_open() const
      77                 :     {
      78              20 :         return fd_ != -1;
      79                 :     }
      80                 : 
      81                 :     BOOST_HTTP_DECL
      82                 :     void
      83                 :     close(system::error_code& ec);
      84                 : 
      85                 :     BOOST_HTTP_DECL
      86                 :     void
      87                 :     open(char const* path, file_mode mode, system::error_code& ec);
      88                 : 
      89                 :     BOOST_HTTP_DECL
      90                 :     std::uint64_t
      91                 :     size(system::error_code& ec) const;
      92                 : 
      93                 :     BOOST_HTTP_DECL
      94                 :     std::uint64_t
      95                 :     pos(system::error_code& ec) const;
      96                 : 
      97                 :     BOOST_HTTP_DECL
      98                 :     void
      99                 :     seek(std::uint64_t offset, system::error_code& ec);
     100                 : 
     101                 :     BOOST_HTTP_DECL
     102                 :     std::size_t
     103                 :     read(void* buffer, std::size_t n, system::error_code& ec);
     104                 : 
     105                 :     BOOST_HTTP_DECL
     106                 :     std::size_t
     107                 :     write(void const* buffer, std::size_t n, system::error_code& ec);
     108                 : };
     109                 : 
     110                 : } // detail
     111                 : } // http
     112                 : } // boost
     113                 : 
     114                 : #endif
     115                 : 
     116                 : #endif
        

Generated by: LCOV version 2.3