include/boost/corosio/detail/op_base.hpp

100.0% Lines (25/25) 98.9% List of functions (184/186) 58.3% Branches (42/72)
op_base.hpp
f(x) Functions (186)
Function Calls Lines Branches Blocks
boost::corosio::detail::bytes_op_base<boost::corosio::io_read_stream::read_some_awaitable<boost::capy::detail::slice_of<boost::capy::mutable_buffer>>>::bytes_op_base(boost::corosio::detail::bytes_op_base<boost::corosio::io_read_stream::read_some_awaitable<boost::capy::detail::slice_of<boost::capy::mutable_buffer>>>&&) :36 33x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_read_stream::read_some_awaitable<boost::capy::detail::slice_of<boost::capy::mutable_buffer>>>::~bytes_op_base() :36 66x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_read_stream::read_some_awaitable<boost::capy::detail::slice_of<std::__1::array<boost::capy::mutable_buffer, 2ul>>>>::bytes_op_base(boost::corosio::detail::bytes_op_base<boost::corosio::io_read_stream::read_some_awaitable<boost::capy::detail::slice_of<std::__1::array<boost::capy::mutable_buffer, 2ul>>>>&&) :36 1x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_read_stream::read_some_awaitable<boost::capy::detail::slice_of<std::__1::array<boost::capy::mutable_buffer, 2ul>>>>::~bytes_op_base() :36 2x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_read_stream::read_some_awaitable<boost::capy::mutable_buffer>>::bytes_op_base(boost::corosio::detail::bytes_op_base<boost::corosio::io_read_stream::read_some_awaitable<boost::capy::mutable_buffer>>&&) :36 738460x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_read_stream::read_some_awaitable<boost::capy::mutable_buffer>>::~bytes_op_base() :36 1476902x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_read_stream::read_some_awaitable<std::__1::array<boost::capy::mutable_buffer, 2ul>>>::bytes_op_base(boost::corosio::detail::bytes_op_base<boost::corosio::io_read_stream::read_some_awaitable<std::__1::array<boost::capy::mutable_buffer, 2ul>>>&&) :36 3x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_read_stream::read_some_awaitable<std::__1::array<boost::capy::mutable_buffer, 2ul>>>::~bytes_op_base() :36 6x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_read_stream::read_some_awaitable<std::__1::array<boost::capy::mutable_buffer, 3ul>>>::bytes_op_base(boost::corosio::detail::bytes_op_base<boost::corosio::io_read_stream::read_some_awaitable<std::__1::array<boost::capy::mutable_buffer, 3ul>>>&&) :36 4x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_read_stream::read_some_awaitable<std::__1::array<boost::capy::mutable_buffer, 3ul>>>::~bytes_op_base() :36 8x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_read_stream::read_some_awaitable<std::__1::span<boost::capy::mutable_buffer const, 18446744073709551615ul>>>::bytes_op_base(boost::corosio::detail::bytes_op_base<boost::corosio::io_read_stream::read_some_awaitable<std::__1::span<boost::capy::mutable_buffer const, 18446744073709551615ul>>>&&) :36 0 100.0% 0.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_read_stream::read_some_awaitable<std::__1::span<boost::capy::mutable_buffer const, 18446744073709551615ul>>>::~bytes_op_base() :36 22398x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_write_stream::write_some_awaitable<boost::capy::const_buffer>>::bytes_op_base(boost::corosio::detail::bytes_op_base<boost::corosio::io_write_stream::write_some_awaitable<boost::capy::const_buffer>>&&) :36 738493x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_write_stream::write_some_awaitable<boost::capy::const_buffer>>::~bytes_op_base() :36 1476987x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_write_stream::write_some_awaitable<boost::capy::detail::slice_of<boost::capy::const_buffer>>>::bytes_op_base(boost::corosio::detail::bytes_op_base<boost::corosio::io_write_stream::write_some_awaitable<boost::capy::detail::slice_of<boost::capy::const_buffer>>>&&) :36 35x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_write_stream::write_some_awaitable<boost::capy::detail::slice_of<boost::capy::const_buffer>>>::~bytes_op_base() :36 70x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_write_stream::write_some_awaitable<boost::capy::detail::slice_of<boost::capy::detail::slice_of<std::__1::array<boost::capy::const_buffer, 2ul>>>>>::bytes_op_base(boost::corosio::detail::bytes_op_base<boost::corosio::io_write_stream::write_some_awaitable<boost::capy::detail::slice_of<boost::capy::detail::slice_of<std::__1::array<boost::capy::const_buffer, 2ul>>>>>&&) :36 2x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_write_stream::write_some_awaitable<boost::capy::detail::slice_of<boost::capy::detail::slice_of<std::__1::array<boost::capy::const_buffer, 2ul>>>>>::~bytes_op_base() :36 4x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_write_stream::write_some_awaitable<boost::capy::detail::slice_of<boost::capy::mutable_buffer>>>::bytes_op_base(boost::corosio::detail::bytes_op_base<boost::corosio::io_write_stream::write_some_awaitable<boost::capy::detail::slice_of<boost::capy::mutable_buffer>>>&&) :36 3x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_write_stream::write_some_awaitable<boost::capy::detail::slice_of<boost::capy::mutable_buffer>>>::~bytes_op_base() :36 6x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_write_stream::write_some_awaitable<std::__1::array<boost::capy::const_buffer, 2ul>>>::bytes_op_base(boost::corosio::detail::bytes_op_base<boost::corosio::io_write_stream::write_some_awaitable<std::__1::array<boost::capy::const_buffer, 2ul>>>&&) :36 1x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_write_stream::write_some_awaitable<std::__1::array<boost::capy::const_buffer, 2ul>>>::~bytes_op_base() :36 2x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_write_stream::write_some_awaitable<std::__1::array<boost::capy::const_buffer, 3ul>>>::bytes_op_base(boost::corosio::detail::bytes_op_base<boost::corosio::io_write_stream::write_some_awaitable<std::__1::array<boost::capy::const_buffer, 3ul>>>&&) :36 4x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_write_stream::write_some_awaitable<std::__1::array<boost::capy::const_buffer, 3ul>>>::~bytes_op_base() :36 8x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_write_stream::write_some_awaitable<std::__1::span<boost::capy::const_buffer const, 18446744073709551615ul>>>::bytes_op_base(boost::corosio::detail::bytes_op_base<boost::corosio::io_write_stream::write_some_awaitable<std::__1::span<boost::capy::const_buffer const, 18446744073709551615ul>>>&&) :36 0 100.0% 0.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_write_stream::write_some_awaitable<std::__1::span<boost::capy::const_buffer const, 18446744073709551615ul>>>::~bytes_op_base() :36 146288x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_write_stream::write_some_awaitable<std::__1::vector<boost::capy::const_buffer, std::__1::allocator<boost::capy::const_buffer>>>>::bytes_op_base(boost::corosio::detail::bytes_op_base<boost::corosio::io_write_stream::write_some_awaitable<std::__1::vector<boost::capy::const_buffer, std::__1::allocator<boost::capy::const_buffer>>>>&&) :36 1x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_write_stream::write_some_awaitable<std::__1::vector<boost::capy::const_buffer, std::__1::allocator<boost::capy::const_buffer>>>>::~bytes_op_base() :36 2x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::local_datagram_socket::recv_awaitable>::bytes_op_base(boost::corosio::detail::bytes_op_base<boost::corosio::local_datagram_socket::recv_awaitable>&&) :36 66x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::local_datagram_socket::recv_awaitable>::~bytes_op_base() :36 95x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::local_datagram_socket::recv_from_awaitable>::bytes_op_base(boost::corosio::detail::bytes_op_base<boost::corosio::local_datagram_socket::recv_from_awaitable>&&) :36 40x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::local_datagram_socket::recv_from_awaitable>::~bytes_op_base() :36 60x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::local_datagram_socket::send_awaitable>::bytes_op_base(boost::corosio::detail::bytes_op_base<boost::corosio::local_datagram_socket::send_awaitable>&&) :36 58x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::local_datagram_socket::send_awaitable>::~bytes_op_base() :36 87x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::local_datagram_socket::send_to_awaitable>::bytes_op_base(boost::corosio::detail::bytes_op_base<boost::corosio::local_datagram_socket::send_to_awaitable>&&) :36 44x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::local_datagram_socket::send_to_awaitable>::~bytes_op_base() :36 66x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::udp_socket::recv_awaitable>::bytes_op_base(boost::corosio::detail::bytes_op_base<boost::corosio::udp_socket::recv_awaitable>&&) :36 28x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::udp_socket::recv_awaitable>::~bytes_op_base() :36 42x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::udp_socket::recv_from_awaitable>::bytes_op_base(boost::corosio::detail::bytes_op_base<boost::corosio::udp_socket::recv_from_awaitable>&&) :36 138x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::udp_socket::recv_from_awaitable>::~bytes_op_base() :36 203x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::udp_socket::send_awaitable>::bytes_op_base(boost::corosio::detail::bytes_op_base<boost::corosio::udp_socket::send_awaitable>&&) :36 28x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::udp_socket::send_awaitable>::~bytes_op_base() :36 42x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::udp_socket::send_to_awaitable>::bytes_op_base(boost::corosio::detail::bytes_op_base<boost::corosio::udp_socket::send_to_awaitable>&&) :36 110x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::udp_socket::send_to_awaitable>::~bytes_op_base() :36 165x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_read_stream::read_some_awaitable<boost::capy::detail::slice_of<boost::capy::mutable_buffer>>>::bytes_op_base() :39 33x 0.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_read_stream::read_some_awaitable<boost::capy::detail::slice_of<std::__1::array<boost::capy::mutable_buffer, 2ul>>>>::bytes_op_base() :39 1x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_read_stream::read_some_awaitable<boost::capy::mutable_buffer>>::bytes_op_base() :39 738458x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_read_stream::read_some_awaitable<std::__1::array<boost::capy::mutable_buffer, 2ul>>>::bytes_op_base() :39 3x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_read_stream::read_some_awaitable<std::__1::array<boost::capy::mutable_buffer, 3ul>>>::bytes_op_base() :39 4x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_read_stream::read_some_awaitable<std::__1::span<boost::capy::mutable_buffer const, 18446744073709551615ul>>>::bytes_op_base() :39 22398x 0.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_write_stream::write_some_awaitable<boost::capy::const_buffer>>::bytes_op_base() :39 738494x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_write_stream::write_some_awaitable<boost::capy::detail::slice_of<boost::capy::const_buffer>>>::bytes_op_base() :39 35x 0.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_write_stream::write_some_awaitable<boost::capy::detail::slice_of<boost::capy::detail::slice_of<std::__1::array<boost::capy::const_buffer, 2ul>>>>>::bytes_op_base() :39 2x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_write_stream::write_some_awaitable<boost::capy::detail::slice_of<boost::capy::mutable_buffer>>>::bytes_op_base() :39 3x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_write_stream::write_some_awaitable<std::__1::array<boost::capy::const_buffer, 2ul>>>::bytes_op_base() :39 1x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_write_stream::write_some_awaitable<std::__1::array<boost::capy::const_buffer, 3ul>>>::bytes_op_base() :39 4x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_write_stream::write_some_awaitable<std::__1::span<boost::capy::const_buffer const, 18446744073709551615ul>>>::bytes_op_base() :39 146288x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_write_stream::write_some_awaitable<std::__1::vector<boost::capy::const_buffer, std::__1::allocator<boost::capy::const_buffer>>>>::bytes_op_base() :39 1x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::local_datagram_socket::recv_awaitable>::bytes_op_base() :39 33x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::local_datagram_socket::recv_from_awaitable>::bytes_op_base() :39 20x 0.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::local_datagram_socket::send_awaitable>::bytes_op_base() :39 29x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::local_datagram_socket::send_to_awaitable>::bytes_op_base() :39 22x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::udp_socket::recv_awaitable>::bytes_op_base() :39 14x 0.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::udp_socket::recv_from_awaitable>::bytes_op_base() :39 69x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::udp_socket::send_awaitable>::bytes_op_base() :39 14x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::udp_socket::send_to_awaitable>::bytes_op_base() :39 55x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_read_stream::read_some_awaitable<boost::capy::detail::slice_of<boost::capy::mutable_buffer>>>::await_ready() const :46 33x 0.0% 0.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_read_stream::read_some_awaitable<boost::capy::detail::slice_of<std::__1::array<boost::capy::mutable_buffer, 2ul>>>>::await_ready() const :46 1x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_read_stream::read_some_awaitable<boost::capy::mutable_buffer>>::await_ready() const :46 738458x 100.0% 50.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_read_stream::read_some_awaitable<std::__1::array<boost::capy::mutable_buffer, 2ul>>>::await_ready() const :46 3x 100.0% 10.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_read_stream::read_some_awaitable<std::__1::array<boost::capy::mutable_buffer, 3ul>>>::await_ready() const :46 4x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_read_stream::read_some_awaitable<std::__1::span<boost::capy::mutable_buffer const, 18446744073709551615ul>>>::await_ready() const :46 22398x 0.0% 0.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_write_stream::write_some_awaitable<boost::capy::const_buffer>>::await_ready() const :46 738494x 100.0% 33.3% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_write_stream::write_some_awaitable<boost::capy::detail::slice_of<boost::capy::const_buffer>>>::await_ready() const :46 35x 0.0% 0.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_write_stream::write_some_awaitable<boost::capy::detail::slice_of<boost::capy::detail::slice_of<std::__1::array<boost::capy::const_buffer, 2ul>>>>>::await_ready() const :46 2x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_write_stream::write_some_awaitable<boost::capy::detail::slice_of<boost::capy::mutable_buffer>>>::await_ready() const :46 3x 100.0% 20.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_write_stream::write_some_awaitable<std::__1::array<boost::capy::const_buffer, 2ul>>>::await_ready() const :46 1x 100.0% 25.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_write_stream::write_some_awaitable<std::__1::array<boost::capy::const_buffer, 3ul>>>::await_ready() const :46 4x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_write_stream::write_some_awaitable<std::__1::span<boost::capy::const_buffer const, 18446744073709551615ul>>>::await_ready() const :46 146288x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_write_stream::write_some_awaitable<std::__1::vector<boost::capy::const_buffer, std::__1::allocator<boost::capy::const_buffer>>>>::await_ready() const :46 1x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::local_datagram_socket::recv_awaitable>::await_ready() const :46 33x 100.0% 33.3% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::local_datagram_socket::recv_from_awaitable>::await_ready() const :46 20x 0.0% 0.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::local_datagram_socket::send_awaitable>::await_ready() const :46 29x 100.0% 10.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::local_datagram_socket::send_to_awaitable>::await_ready() const :46 22x 100.0% 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::udp_socket::recv_awaitable>::await_ready() const :46 14x 0.0% 0.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::udp_socket::recv_from_awaitable>::await_ready() const :46 69x 100.0% 25.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::udp_socket::send_awaitable>::await_ready() const :46 14x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::udp_socket::send_to_awaitable>::await_ready() const :46 55x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_read_stream::read_some_awaitable<boost::capy::detail::slice_of<boost::capy::mutable_buffer>>>::await_resume() const :53 33x 0.0% 0.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_read_stream::read_some_awaitable<boost::capy::detail::slice_of<std::__1::array<boost::capy::mutable_buffer, 2ul>>>>::await_resume() const :53 1x 100.0% 75.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_read_stream::read_some_awaitable<boost::capy::mutable_buffer>>::await_resume() const :53 738450x 100.0% 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_read_stream::read_some_awaitable<std::__1::array<boost::capy::mutable_buffer, 2ul>>>::await_resume() const :53 3x 80.0% 10.0% 75.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_read_stream::read_some_awaitable<std::__1::array<boost::capy::mutable_buffer, 3ul>>>::await_resume() const :53 4x 100.0% 75.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_read_stream::read_some_awaitable<std::__1::span<boost::capy::mutable_buffer const, 18446744073709551615ul>>>::await_resume() const :53 22398x 0.0% 0.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_write_stream::write_some_awaitable<boost::capy::const_buffer>>::await_resume() const :53 738494x 100.0% 66.7% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_write_stream::write_some_awaitable<boost::capy::detail::slice_of<boost::capy::const_buffer>>>::await_resume() const :53 35x 0.0% 0.0% 75.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_write_stream::write_some_awaitable<boost::capy::detail::slice_of<boost::capy::detail::slice_of<std::__1::array<boost::capy::const_buffer, 2ul>>>>>::await_resume() const :53 2x 100.0% 75.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_write_stream::write_some_awaitable<boost::capy::detail::slice_of<boost::capy::mutable_buffer>>>::await_resume() const :53 3x 80.0% 20.0% 75.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_write_stream::write_some_awaitable<std::__1::array<boost::capy::const_buffer, 2ul>>>::await_resume() const :53 1x 80.0% 25.0% 75.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_write_stream::write_some_awaitable<std::__1::array<boost::capy::const_buffer, 3ul>>>::await_resume() const :53 4x 100.0% 75.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_write_stream::write_some_awaitable<std::__1::span<boost::capy::const_buffer const, 18446744073709551615ul>>>::await_resume() const :53 146288x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_write_stream::write_some_awaitable<std::__1::vector<boost::capy::const_buffer, std::__1::allocator<boost::capy::const_buffer>>>>::await_resume() const :53 1x 100.0% 75.0% boost::corosio::detail::bytes_op_base<boost::corosio::local_datagram_socket::recv_awaitable>::await_resume() const :53 31x 80.0% 33.3% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::local_datagram_socket::recv_from_awaitable>::await_resume() const :53 20x 0.0% 0.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::local_datagram_socket::send_awaitable>::await_resume() const :53 29x 80.0% 10.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::local_datagram_socket::send_to_awaitable>::await_resume() const :53 22x 100.0% 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::udp_socket::recv_awaitable>::await_resume() const :53 14x 0.0% 0.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::udp_socket::recv_from_awaitable>::await_resume() const :53 67x 100.0% 37.5% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::udp_socket::send_awaitable>::await_resume() const :53 14x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::udp_socket::send_to_awaitable>::await_resume() const :53 55x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_read_stream::read_some_awaitable<boost::capy::detail::slice_of<boost::capy::mutable_buffer>>>::await_suspend(std::__1::coroutine_handle<void>, boost::capy::io_env const*) :60 33x 0.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_read_stream::read_some_awaitable<boost::capy::detail::slice_of<std::__1::array<boost::capy::mutable_buffer, 2ul>>>>::await_suspend(std::__1::coroutine_handle<void>, boost::capy::io_env const*) :60 1x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_read_stream::read_some_awaitable<boost::capy::mutable_buffer>>::await_suspend(std::__1::coroutine_handle<void>, boost::capy::io_env const*) :60 738458x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_read_stream::read_some_awaitable<std::__1::array<boost::capy::mutable_buffer, 2ul>>>::await_suspend(std::__1::coroutine_handle<void>, boost::capy::io_env const*) :60 3x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_read_stream::read_some_awaitable<std::__1::array<boost::capy::mutable_buffer, 3ul>>>::await_suspend(std::__1::coroutine_handle<void>, boost::capy::io_env const*) :60 4x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_read_stream::read_some_awaitable<std::__1::span<boost::capy::mutable_buffer const, 18446744073709551615ul>>>::await_suspend(std::__1::coroutine_handle<void>, boost::capy::io_env const*) :60 22398x 0.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_write_stream::write_some_awaitable<boost::capy::const_buffer>>::await_suspend(std::__1::coroutine_handle<void>, boost::capy::io_env const*) :60 738494x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_write_stream::write_some_awaitable<boost::capy::detail::slice_of<boost::capy::const_buffer>>>::await_suspend(std::__1::coroutine_handle<void>, boost::capy::io_env const*) :60 35x 0.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_write_stream::write_some_awaitable<boost::capy::detail::slice_of<boost::capy::detail::slice_of<std::__1::array<boost::capy::const_buffer, 2ul>>>>>::await_suspend(std::__1::coroutine_handle<void>, boost::capy::io_env const*) :60 2x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_write_stream::write_some_awaitable<boost::capy::detail::slice_of<boost::capy::mutable_buffer>>>::await_suspend(std::__1::coroutine_handle<void>, boost::capy::io_env const*) :60 3x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_write_stream::write_some_awaitable<std::__1::array<boost::capy::const_buffer, 2ul>>>::await_suspend(std::__1::coroutine_handle<void>, boost::capy::io_env const*) :60 1x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_write_stream::write_some_awaitable<std::__1::array<boost::capy::const_buffer, 3ul>>>::await_suspend(std::__1::coroutine_handle<void>, boost::capy::io_env const*) :60 4x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_write_stream::write_some_awaitable<std::__1::span<boost::capy::const_buffer const, 18446744073709551615ul>>>::await_suspend(std::__1::coroutine_handle<void>, boost::capy::io_env const*) :60 146288x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_write_stream::write_some_awaitable<std::__1::vector<boost::capy::const_buffer, std::__1::allocator<boost::capy::const_buffer>>>>::await_suspend(std::__1::coroutine_handle<void>, boost::capy::io_env const*) :60 1x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::local_datagram_socket::recv_awaitable>::await_suspend(std::__1::coroutine_handle<void>, boost::capy::io_env const*) :60 31x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::local_datagram_socket::recv_from_awaitable>::await_suspend(std::__1::coroutine_handle<void>, boost::capy::io_env const*) :60 18x 0.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::local_datagram_socket::send_awaitable>::await_suspend(std::__1::coroutine_handle<void>, boost::capy::io_env const*) :60 27x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::local_datagram_socket::send_to_awaitable>::await_suspend(std::__1::coroutine_handle<void>, boost::capy::io_env const*) :60 20x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::udp_socket::recv_awaitable>::await_suspend(std::__1::coroutine_handle<void>, boost::capy::io_env const*) :60 12x 0.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::udp_socket::recv_from_awaitable>::await_suspend(std::__1::coroutine_handle<void>, boost::capy::io_env const*) :60 67x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::udp_socket::send_awaitable>::await_suspend(std::__1::coroutine_handle<void>, boost::capy::io_env const*) :60 12x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::udp_socket::send_to_awaitable>::await_suspend(std::__1::coroutine_handle<void>, boost::capy::io_env const*) :60 53x 100.0% 100.0% boost::corosio::detail::void_op_base<boost::corosio::local_datagram_socket::wait_awaitable>::void_op_base(boost::corosio::detail::void_op_base<boost::corosio::local_datagram_socket::wait_awaitable>&&) :81 12x 100.0% 100.0% boost::corosio::detail::void_op_base<boost::corosio::local_datagram_socket::wait_awaitable>::~void_op_base() :81 24x 100.0% 100.0% boost::corosio::detail::void_op_base<boost::corosio::local_stream_acceptor::wait_awaitable>::void_op_base(boost::corosio::detail::void_op_base<boost::corosio::local_stream_acceptor::wait_awaitable>&&) :81 8x 100.0% 100.0% boost::corosio::detail::void_op_base<boost::corosio::local_stream_acceptor::wait_awaitable>::~void_op_base() :81 16x 100.0% 100.0% boost::corosio::detail::void_op_base<boost::corosio::local_stream_socket::connect_awaitable>::void_op_base(boost::corosio::detail::void_op_base<boost::corosio::local_stream_socket::connect_awaitable>&&) :81 21x 100.0% 100.0% boost::corosio::detail::void_op_base<boost::corosio::local_stream_socket::connect_awaitable>::~void_op_base() :81 42x 100.0% 100.0% boost::corosio::detail::void_op_base<boost::corosio::local_stream_socket::wait_awaitable>::void_op_base(boost::corosio::detail::void_op_base<boost::corosio::local_stream_socket::wait_awaitable>&&) :81 12x 100.0% 100.0% boost::corosio::detail::void_op_base<boost::corosio::local_stream_socket::wait_awaitable>::~void_op_base() :81 24x 100.0% 100.0% boost::corosio::detail::void_op_base<boost::corosio::tcp_acceptor::wait_awaitable>::void_op_base(boost::corosio::detail::void_op_base<boost::corosio::tcp_acceptor::wait_awaitable>&&) :81 19x 100.0% 100.0% boost::corosio::detail::void_op_base<boost::corosio::tcp_acceptor::wait_awaitable>::~void_op_base() :81 38x 100.0% 100.0% boost::corosio::detail::void_op_base<boost::corosio::tcp_socket::connect_awaitable>::void_op_base(boost::corosio::detail::void_op_base<boost::corosio::tcp_socket::connect_awaitable>&&) :81 7527x 100.0% 100.0% boost::corosio::detail::void_op_base<boost::corosio::tcp_socket::connect_awaitable>::~void_op_base() :81 15053x 100.0% 100.0% boost::corosio::detail::void_op_base<boost::corosio::tcp_socket::wait_awaitable>::void_op_base(boost::corosio::detail::void_op_base<boost::corosio::tcp_socket::wait_awaitable>&&) :81 38x 100.0% 100.0% boost::corosio::detail::void_op_base<boost::corosio::tcp_socket::wait_awaitable>::~void_op_base() :81 75x 100.0% 100.0% boost::corosio::detail::void_op_base<boost::corosio::udp_socket::connect_awaitable>::void_op_base(boost::corosio::detail::void_op_base<boost::corosio::udp_socket::connect_awaitable>&&) :81 26x 100.0% 100.0% boost::corosio::detail::void_op_base<boost::corosio::udp_socket::connect_awaitable>::~void_op_base() :81 52x 100.0% 100.0% boost::corosio::detail::void_op_base<boost::corosio::udp_socket::wait_awaitable>::void_op_base(boost::corosio::detail::void_op_base<boost::corosio::udp_socket::wait_awaitable>&&) :81 22x 100.0% 100.0% boost::corosio::detail::void_op_base<boost::corosio::udp_socket::wait_awaitable>::~void_op_base() :81 44x 100.0% 100.0% boost::corosio::detail::void_op_base<boost::corosio::local_datagram_socket::wait_awaitable>::void_op_base() :84 12x 100.0% 100.0% boost::corosio::detail::void_op_base<boost::corosio::local_stream_acceptor::wait_awaitable>::void_op_base() :84 8x 100.0% 100.0% boost::corosio::detail::void_op_base<boost::corosio::local_stream_socket::connect_awaitable>::void_op_base() :84 21x 100.0% 100.0% boost::corosio::detail::void_op_base<boost::corosio::local_stream_socket::wait_awaitable>::void_op_base() :84 12x 100.0% 100.0% boost::corosio::detail::void_op_base<boost::corosio::tcp_acceptor::wait_awaitable>::void_op_base() :84 19x 100.0% 100.0% boost::corosio::detail::void_op_base<boost::corosio::tcp_socket::connect_awaitable>::void_op_base() :84 7526x 100.0% 100.0% boost::corosio::detail::void_op_base<boost::corosio::tcp_socket::wait_awaitable>::void_op_base() :84 37x 100.0% 100.0% boost::corosio::detail::void_op_base<boost::corosio::udp_socket::connect_awaitable>::void_op_base() :84 26x 0.0% 100.0% boost::corosio::detail::void_op_base<boost::corosio::udp_socket::wait_awaitable>::void_op_base() :84 22x 100.0% 100.0% boost::corosio::detail::void_op_base<boost::corosio::local_datagram_socket::wait_awaitable>::await_ready() const :90 12x 100.0% 25.0% 100.0% boost::corosio::detail::void_op_base<boost::corosio::local_stream_acceptor::wait_awaitable>::await_ready() const :90 8x 100.0% 66.7% 100.0% boost::corosio::detail::void_op_base<boost::corosio::local_stream_socket::connect_awaitable>::await_ready() const :90 21x 100.0% 50.0% 100.0% boost::corosio::detail::void_op_base<boost::corosio::local_stream_socket::wait_awaitable>::await_ready() const :90 12x 100.0% 100.0% boost::corosio::detail::void_op_base<boost::corosio::tcp_acceptor::wait_awaitable>::await_ready() const :90 19x 100.0% 33.3% 100.0% boost::corosio::detail::void_op_base<boost::corosio::tcp_socket::connect_awaitable>::await_ready() const :90 7526x 100.0% 50.0% 100.0% boost::corosio::detail::void_op_base<boost::corosio::tcp_socket::wait_awaitable>::await_ready() const :90 37x 100.0% 100.0% boost::corosio::detail::void_op_base<boost::corosio::udp_socket::connect_awaitable>::await_ready() const :90 26x 0.0% 0.0% 100.0% boost::corosio::detail::void_op_base<boost::corosio::udp_socket::wait_awaitable>::await_ready() const :90 22x 100.0% 100.0% boost::corosio::detail::void_op_base<boost::corosio::local_datagram_socket::wait_awaitable>::await_resume() const :97 12x 100.0% 37.5% 100.0% boost::corosio::detail::void_op_base<boost::corosio::local_stream_acceptor::wait_awaitable>::await_resume() const :97 8x 100.0% 83.3% 75.0% boost::corosio::detail::void_op_base<boost::corosio::local_stream_socket::connect_awaitable>::await_resume() const :97 21x 80.0% 50.0% 100.0% boost::corosio::detail::void_op_base<boost::corosio::local_stream_socket::wait_awaitable>::await_resume() const :97 12x 100.0% 100.0% boost::corosio::detail::void_op_base<boost::corosio::tcp_acceptor::wait_awaitable>::await_resume() const :97 19x 100.0% 50.0% 100.0% boost::corosio::detail::void_op_base<boost::corosio::tcp_socket::connect_awaitable>::await_resume() const :97 7526x 100.0% 100.0% 100.0% boost::corosio::detail::void_op_base<boost::corosio::tcp_socket::wait_awaitable>::await_resume() const :97 37x 100.0% 100.0% boost::corosio::detail::void_op_base<boost::corosio::udp_socket::connect_awaitable>::await_resume() const :97 26x 0.0% 0.0% 100.0% boost::corosio::detail::void_op_base<boost::corosio::udp_socket::wait_awaitable>::await_resume() const :97 22x 100.0% 100.0% boost::corosio::detail::void_op_base<boost::corosio::local_datagram_socket::wait_awaitable>::await_suspend(std::__1::coroutine_handle<void>, boost::capy::io_env const*) :104 12x 100.0% 100.0% boost::corosio::detail::void_op_base<boost::corosio::local_stream_acceptor::wait_awaitable>::await_suspend(std::__1::coroutine_handle<void>, boost::capy::io_env const*) :104 6x 100.0% 100.0% boost::corosio::detail::void_op_base<boost::corosio::local_stream_socket::connect_awaitable>::await_suspend(std::__1::coroutine_handle<void>, boost::capy::io_env const*) :104 21x 100.0% 100.0% boost::corosio::detail::void_op_base<boost::corosio::local_stream_socket::wait_awaitable>::await_suspend(std::__1::coroutine_handle<void>, boost::capy::io_env const*) :104 12x 100.0% 100.0% boost::corosio::detail::void_op_base<boost::corosio::tcp_acceptor::wait_awaitable>::await_suspend(std::__1::coroutine_handle<void>, boost::capy::io_env const*) :104 17x 100.0% 100.0% boost::corosio::detail::void_op_base<boost::corosio::tcp_socket::connect_awaitable>::await_suspend(std::__1::coroutine_handle<void>, boost::capy::io_env const*) :104 7526x 100.0% 100.0% boost::corosio::detail::void_op_base<boost::corosio::tcp_socket::wait_awaitable>::await_suspend(std::__1::coroutine_handle<void>, boost::capy::io_env const*) :104 37x 100.0% 100.0% boost::corosio::detail::void_op_base<boost::corosio::udp_socket::connect_awaitable>::await_suspend(std::__1::coroutine_handle<void>, boost::capy::io_env const*) :104 26x 0.0% 100.0% boost::corosio::detail::void_op_base<boost::corosio::udp_socket::wait_awaitable>::await_suspend(std::__1::coroutine_handle<void>, boost::capy::io_env const*) :104 22x 100.0% 100.0%
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 #ifndef BOOST_COROSIO_DETAIL_OP_BASE_HPP
11 #define BOOST_COROSIO_DETAIL_OP_BASE_HPP
12
13 #include <boost/capy/io_result.hpp>
14 #include <boost/capy/ex/executor_ref.hpp>
15 #include <boost/capy/ex/io_env.hpp>
16
17 #include <coroutine>
18 #include <cstddef>
19 #include <stop_token>
20 #include <system_error>
21
22 namespace boost::corosio::detail {
23
24 /* CRTP base for awaitables that return io_result<std::size_t>.
25
26 Derived classes must provide:
27
28 std::coroutine_handle<> dispatch(
29 std::coroutine_handle<> h,
30 capy::executor_ref ex) const;
31
32 which forwards to the backend implementation method, passing
33 token_, &ec_, and &bytes_ as the cancellation/output parameters.
34 */
35 template<class Derived>
36 class bytes_op_base
37 {
38 friend Derived;
39 3291962x bytes_op_base() = default;
40
41 public:
42 std::stop_token token_;
43 mutable std::error_code ec_;
44 1645981x mutable std::size_t bytes_ = 0;
45
46 1645981x bool await_ready() const noexcept
47 {
48 // A pre-set ec_ means the initiator failed before dispatch
49 // (e.g. a closed object); complete immediately with that error.
50
16/20
✓ Branch 0 taken 2 times.
✓ Branch 1 taken 760874 times.
✓ Branch 2 taken 2 times.
✓ Branch 3 taken 884799 times.
✓ Branch 4 taken 2 times.
✓ Branch 5 taken 86 times.
✓ Branch 6 taken 2 times.
✓ Branch 7 taken 105 times.
✓ Branch 8 taken 2 times.
✓ Branch 9 taken 36 times.
✓ Branch 10 taken 2 times.
✓ Branch 11 taken 29 times.
✓ Branch 12 taken 2 times.
✓ Branch 13 taken 17 times.
✓ Branch 14 taken 2 times.
✓ Branch 15 taken 19 times.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
1645981x return static_cast<bool>(ec_) || token_.stop_requested();
51 }
52
53 1645969x [[nodiscard]] capy::io_result<std::size_t> await_resume() const noexcept
54 {
55
16/20
✓ Branch 0 taken 983 times.
✓ Branch 1 taken 759885 times.
✓ Branch 2 taken 9 times.
✓ Branch 3 taken 884792 times.
✓ Branch 4 taken 7 times.
✓ Branch 5 taken 79 times.
✓ Branch 6 taken 3 times.
✓ Branch 7 taken 104 times.
✓ Branch 8 taken 4 times.
✓ Branch 9 taken 32 times.
✓ Branch 10 taken 2 times.
✓ Branch 11 taken 29 times.
✓ Branch 12 taken 4 times.
✓ Branch 13 taken 15 times.
✓ Branch 14 taken 2 times.
✓ Branch 15 taken 19 times.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
1645969x if (token_.stop_requested())
56 1014x return {make_error_code(std::errc::operation_canceled), 0};
57 1644955x return {ec_, bytes_};
58 1645969x }
59
60 1645965x auto await_suspend(std::coroutine_handle<> h, capy::io_env const* env)
61 -> std::coroutine_handle<>
62 {
63 1645965x token_ = env->stop_token;
64 1645965x return static_cast<Derived const*>(this)->dispatch(
65 1645965x h, env->executor);
66 }
67 };
68
69 /* CRTP base for awaitables that return io_result<>.
70
71 Derived classes must provide:
72
73 std::coroutine_handle<> dispatch(
74 std::coroutine_handle<> h,
75 capy::executor_ref ex) const;
76
77 which forwards to the backend implementation method, passing
78 token_ and &ec_ as the cancellation/output parameters.
79 */
80 template<class Derived>
81 class void_op_base
82 {
83 friend Derived;
84 7683x void_op_base() = default;
85
86 public:
87 std::stop_token token_;
88 mutable std::error_code ec_;
89
90 7683x bool await_ready() const noexcept
91 {
92 // A pre-set ec_ means the initiator failed before dispatch
93 // (e.g. auto-open); complete immediately with that error.
94
4/16
✗ Branch 0 not taken.
✓ Branch 1 taken 7573 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 71 times.
✓ Branch 4 taken 4 times.
✓ Branch 5 taken 35 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
7683x return static_cast<bool>(ec_) || token_.stop_requested();
95 }
96
97 7683x [[nodiscard]] capy::io_result<> await_resume() const noexcept
98 {
99
6/16
✓ Branch 0 taken 7 times.
✓ Branch 1 taken 7566 times.
✓ Branch 2 taken 17 times.
✓ Branch 3 taken 54 times.
✓ Branch 4 taken 8 times.
✓ Branch 5 taken 31 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
7683x if (token_.stop_requested())
100 32x return {make_error_code(std::errc::operation_canceled)};
101 7651x return {ec_};
102 7683x }
103
104 7679x auto await_suspend(std::coroutine_handle<> h, capy::io_env const* env)
105 -> std::coroutine_handle<>
106 {
107 7679x token_ = env->stop_token;
108 7679x return static_cast<Derived const*>(this)->dispatch(
109 7679x h, env->executor);
110 }
111 };
112
113 } // namespace boost::corosio::detail
114
115 #endif // BOOST_COROSIO_DETAIL_OP_BASE_HPP
116