src/corosio/src/local_endpoint.cpp

100.0% Lines (15/15) 100.0% List of functions (2/2) 100.0% Branches (8/8)
local_endpoint.cpp
f(x) Functions (2)
Line Branch TLA Hits Source Code
1 //
2 // Copyright (c) 2026 Michael Vandeberg
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/corosio
8 //
9
10 #include <boost/corosio/local_endpoint.hpp>
11 #include <boost/corosio/detail/except.hpp>
12
13 #include <cstring>
14 #include <ostream>
15 #include <system_error>
16
17 namespace boost::corosio {
18
19 120x local_endpoint::local_endpoint(std::string_view path)
20 {
21
2/2
✓ Branch 3 → 4 taken 3 times.
✓ Branch 3 → 6 taken 117 times.
120x if (path.size() > max_path_length)
22 3x detail::throw_system_error(
23 3x std::make_error_code(std::errc::filename_too_long),
24 "local_endpoint");
25 117x std::memcpy(path_, path.data(), path.size());
26 117x len_ = static_cast<std::uint8_t>(path.size());
27 117x }
28
29 std::ostream&
30 3x operator<<(std::ostream& os, local_endpoint const& ep)
31 {
32
2/2
✓ Branch 3 → 4 taken 1 time.
✓ Branch 3 → 5 taken 2 times.
3x if (ep.empty())
33 1x return os;
34
2/2
✓ Branch 6 → 7 taken 1 time.
✓ Branch 6 → 12 taken 1 time.
2x if (ep.is_abstract())
35 {
36 // Skip the leading null byte; print the rest as the name
37 os << "[abstract:"
38 1x << std::string_view(ep.path_ + 1, ep.len_ - 1)
39
2/2
✓ Branch 9 → 10 taken 1 time.
✓ Branch 10 → 11 taken 1 time.
1x << ']';
40 }
41 else
42 {
43 1x os << ep.path();
44 }
45 2x return os;
46 }
47
48 } // namespace boost::corosio
49