include/boost/corosio/detail/op_base.hpp

100.0% Lines (25/25) 100.0% List of functions (148/148) 47.1% Branches (48/102)
op_base.hpp
f(x) Functions (148)
Function Calls Lines Branches Blocks
boost::corosio::detail::bytes_op_base<boost::corosio::io_read_stream::read_some_awaitable<boost::capy::detail::slice_impl<boost::capy::mutable_buffer>::data_view>>::bytes_op_base(boost::corosio::detail::bytes_op_base<boost::corosio::io_read_stream::read_some_awaitable<boost::capy::detail::slice_impl<boost::capy::mutable_buffer>::data_view>>&&) :36 13x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_read_stream::read_some_awaitable<boost::capy::detail::slice_impl<boost::capy::mutable_buffer>::data_view>>::~bytes_op_base() :36 26x 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 751174x 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 1502341x 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() :36 18671x 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 751760x 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 1503521x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_write_stream::write_some_awaitable<boost::capy::detail::slice_impl<boost::capy::const_buffer>::data_view>>::bytes_op_base(boost::corosio::detail::bytes_op_base<boost::corosio::io_write_stream::write_some_awaitable<boost::capy::detail::slice_impl<boost::capy::const_buffer>::data_view>>&&) :36 14x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_write_stream::write_some_awaitable<boost::capy::detail::slice_impl<boost::capy::const_buffer>::data_view>>::~bytes_op_base() :36 28x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_write_stream::write_some_awaitable<boost::capy::detail::slice_impl<boost::capy::mutable_buffer>::data_view>>::bytes_op_base(boost::corosio::detail::bytes_op_base<boost::corosio::io_write_stream::write_some_awaitable<boost::capy::detail::slice_impl<boost::capy::mutable_buffer>::data_view>>&&) :36 2x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_write_stream::write_some_awaitable<boost::capy::detail::slice_impl<boost::capy::mutable_buffer>::data_view>>::~bytes_op_base() :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(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() :36 111783x 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 26x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::local_datagram_socket::recv_awaitable>::~bytes_op_base() :36 48x 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 16x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::local_datagram_socket::recv_from_awaitable>::~bytes_op_base() :36 32x 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 26x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::local_datagram_socket::send_awaitable>::~bytes_op_base() :36 52x 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 18x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::local_datagram_socket::send_to_awaitable>::~bytes_op_base() :36 36x 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 12x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::udp_socket::recv_awaitable>::~bytes_op_base() :36 24x 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 42x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::udp_socket::recv_from_awaitable>::~bytes_op_base() :36 80x 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 12x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::udp_socket::send_awaitable>::~bytes_op_base() :36 24x 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 32x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::udp_socket::send_to_awaitable>::~bytes_op_base() :36 64x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_read_stream::read_some_awaitable<boost::capy::detail::slice_impl<boost::capy::mutable_buffer>::data_view>>::bytes_op_base() :39 13x 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 751175x 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 18671x 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() :39 751761x 0.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_write_stream::write_some_awaitable<boost::capy::detail::slice_impl<boost::capy::const_buffer>::data_view>>::bytes_op_base() :39 14x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_write_stream::write_some_awaitable<boost::capy::detail::slice_impl<boost::capy::mutable_buffer>::data_view>>::bytes_op_base() :39 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() :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 111783x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::local_datagram_socket::recv_awaitable>::bytes_op_base() :39 26x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::local_datagram_socket::recv_from_awaitable>::bytes_op_base() :39 16x 0.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::local_datagram_socket::send_awaitable>::bytes_op_base() :39 26x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::local_datagram_socket::send_to_awaitable>::bytes_op_base() :39 18x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::udp_socket::recv_awaitable>::bytes_op_base() :39 12x 0.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::udp_socket::recv_from_awaitable>::bytes_op_base() :39 42x 0.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::udp_socket::send_awaitable>::bytes_op_base() :39 12x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::udp_socket::send_to_awaitable>::bytes_op_base() :39 32x 0.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_read_stream::read_some_awaitable<boost::capy::detail::slice_impl<boost::capy::mutable_buffer>::data_view>>::await_ready() const :46 13x 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 751175x 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_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 18671x 100.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 751761x 0.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_write_stream::write_some_awaitable<boost::capy::detail::slice_impl<boost::capy::const_buffer>::data_view>>::await_ready() const :46 14x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_write_stream::write_some_awaitable<boost::capy::detail::slice_impl<boost::capy::mutable_buffer>::data_view>>::await_ready() const :46 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>>>::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 111783x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::local_datagram_socket::recv_awaitable>::await_ready() const :46 26x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::local_datagram_socket::recv_from_awaitable>::await_ready() const :46 16x 0.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::local_datagram_socket::send_awaitable>::await_ready() const :46 26x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::local_datagram_socket::send_to_awaitable>::await_ready() const :46 18x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::udp_socket::recv_awaitable>::await_ready() const :46 12x 0.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::udp_socket::recv_from_awaitable>::await_ready() const :46 42x 0.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::udp_socket::send_awaitable>::await_ready() const :46 12x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::udp_socket::send_to_awaitable>::await_ready() const :46 32x 0.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_read_stream::read_some_awaitable<boost::capy::detail::slice_impl<boost::capy::mutable_buffer>::data_view>>::await_resume() const :51 13x 100.0% 57.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_read_stream::read_some_awaitable<boost::capy::mutable_buffer>>::await_resume() const :51 751171x 100.0% 44.4% 85.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 :51 4x 100.0% 57.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 :51 18671x 100.0% 85.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_write_stream::write_some_awaitable<boost::capy::const_buffer>>::await_resume() const :51 751761x 0.0% 0.0% 85.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_write_stream::write_some_awaitable<boost::capy::detail::slice_impl<boost::capy::const_buffer>::data_view>>::await_resume() const :51 14x 100.0% 57.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_write_stream::write_some_awaitable<boost::capy::detail::slice_impl<boost::capy::mutable_buffer>::data_view>>::await_resume() const :51 2x 80.0% 13.3% 57.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 :51 4x 100.0% 57.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 :51 111783x 100.0% 85.0% boost::corosio::detail::bytes_op_base<boost::corosio::local_datagram_socket::recv_awaitable>::await_resume() const :51 24x 100.0% 33.3% 85.0% boost::corosio::detail::bytes_op_base<boost::corosio::local_datagram_socket::recv_from_awaitable>::await_resume() const :51 16x 0.0% 0.0% 85.0% boost::corosio::detail::bytes_op_base<boost::corosio::local_datagram_socket::send_awaitable>::await_resume() const :51 26x 80.0% 6.7% 85.0% boost::corosio::detail::bytes_op_base<boost::corosio::local_datagram_socket::send_to_awaitable>::await_resume() const :51 18x 100.0% 66.7% 85.0% boost::corosio::detail::bytes_op_base<boost::corosio::udp_socket::recv_awaitable>::await_resume() const :51 12x 0.0% 0.0% 85.0% boost::corosio::detail::bytes_op_base<boost::corosio::udp_socket::recv_from_awaitable>::await_resume() const :51 40x 0.0% 0.0% 85.0% boost::corosio::detail::bytes_op_base<boost::corosio::udp_socket::send_awaitable>::await_resume() const :51 12x 100.0% 85.0% boost::corosio::detail::bytes_op_base<boost::corosio::udp_socket::send_to_awaitable>::await_resume() const :51 32x 0.0% 0.0% 85.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_read_stream::read_some_awaitable<boost::capy::detail::slice_impl<boost::capy::mutable_buffer>::data_view>>::await_suspend(std::__1::coroutine_handle<void>, boost::capy::io_env const*) :58 13x 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*) :58 751175x 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*) :58 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*) :58 18671x 100.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*) :58 751761x 0.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_write_stream::write_some_awaitable<boost::capy::detail::slice_impl<boost::capy::const_buffer>::data_view>>::await_suspend(std::__1::coroutine_handle<void>, boost::capy::io_env const*) :58 14x 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_write_stream::write_some_awaitable<boost::capy::detail::slice_impl<boost::capy::mutable_buffer>::data_view>>::await_suspend(std::__1::coroutine_handle<void>, boost::capy::io_env const*) :58 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>>>::await_suspend(std::__1::coroutine_handle<void>, boost::capy::io_env const*) :58 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*) :58 111783x 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*) :58 26x 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*) :58 16x 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*) :58 26x 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*) :58 18x 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*) :58 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*) :58 42x 0.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*) :58 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*) :58 32x 0.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>&&) :79 10x 100.0% 100.0% boost::corosio::detail::void_op_base<boost::corosio::local_datagram_socket::wait_awaitable>::~void_op_base() :79 20x 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>&&) :79 14x 100.0% 100.0% boost::corosio::detail::void_op_base<boost::corosio::local_stream_socket::connect_awaitable>::~void_op_base() :79 28x 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>&&) :79 8x 100.0% 100.0% boost::corosio::detail::void_op_base<boost::corosio::local_stream_socket::wait_awaitable>::~void_op_base() :79 16x 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>&&) :79 8x 100.0% 100.0% boost::corosio::detail::void_op_base<boost::corosio::tcp_acceptor::wait_awaitable>::~void_op_base() :79 16x 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>&&) :79 6600x 100.0% 100.0% boost::corosio::detail::void_op_base<boost::corosio::tcp_socket::connect_awaitable>::~void_op_base() :79 13200x 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>&&) :79 18x 100.0% 100.0% boost::corosio::detail::void_op_base<boost::corosio::tcp_socket::wait_awaitable>::~void_op_base() :79 36x 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>&&) :79 26x 100.0% 100.0% boost::corosio::detail::void_op_base<boost::corosio::udp_socket::connect_awaitable>::~void_op_base() :79 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>&&) :79 16x 100.0% 100.0% boost::corosio::detail::void_op_base<boost::corosio::udp_socket::wait_awaitable>::~void_op_base() :79 32x 100.0% 100.0% boost::corosio::detail::void_op_base<boost::corosio::local_datagram_socket::wait_awaitable>::void_op_base() :82 10x 100.0% 100.0% boost::corosio::detail::void_op_base<boost::corosio::local_stream_socket::connect_awaitable>::void_op_base() :82 14x 100.0% 100.0% boost::corosio::detail::void_op_base<boost::corosio::local_stream_socket::wait_awaitable>::void_op_base() :82 8x 100.0% 100.0% boost::corosio::detail::void_op_base<boost::corosio::tcp_acceptor::wait_awaitable>::void_op_base() :82 8x 0.0% 100.0% boost::corosio::detail::void_op_base<boost::corosio::tcp_socket::connect_awaitable>::void_op_base() :82 6600x 100.0% 100.0% boost::corosio::detail::void_op_base<boost::corosio::tcp_socket::wait_awaitable>::void_op_base() :82 18x 100.0% 100.0% boost::corosio::detail::void_op_base<boost::corosio::udp_socket::connect_awaitable>::void_op_base() :82 26x 0.0% 100.0% boost::corosio::detail::void_op_base<boost::corosio::udp_socket::wait_awaitable>::void_op_base() :82 16x 0.0% 100.0% boost::corosio::detail::void_op_base<boost::corosio::local_datagram_socket::wait_awaitable>::await_ready() const :88 10x 100.0% 100.0% boost::corosio::detail::void_op_base<boost::corosio::local_stream_socket::connect_awaitable>::await_ready() const :88 14x 100.0% 100.0% boost::corosio::detail::void_op_base<boost::corosio::local_stream_socket::wait_awaitable>::await_ready() const :88 8x 100.0% 100.0% boost::corosio::detail::void_op_base<boost::corosio::tcp_acceptor::wait_awaitable>::await_ready() const :88 8x 100.0% 100.0% boost::corosio::detail::void_op_base<boost::corosio::tcp_socket::connect_awaitable>::await_ready() const :88 6600x 100.0% 100.0% boost::corosio::detail::void_op_base<boost::corosio::tcp_socket::wait_awaitable>::await_ready() const :88 18x 100.0% 100.0% boost::corosio::detail::void_op_base<boost::corosio::udp_socket::connect_awaitable>::await_ready() const :88 26x 0.0% 100.0% boost::corosio::detail::void_op_base<boost::corosio::udp_socket::wait_awaitable>::await_ready() const :88 16x 0.0% 100.0% boost::corosio::detail::void_op_base<boost::corosio::local_datagram_socket::wait_awaitable>::await_resume() const :93 10x 100.0% 38.1% 85.0% boost::corosio::detail::void_op_base<boost::corosio::local_stream_socket::connect_awaitable>::await_resume() const :93 14x 100.0% 66.7% 85.0% boost::corosio::detail::void_op_base<boost::corosio::local_stream_socket::wait_awaitable>::await_resume() const :93 8x 100.0% 85.0% boost::corosio::detail::void_op_base<boost::corosio::tcp_acceptor::wait_awaitable>::await_resume() const :93 8x 100.0% 85.0% boost::corosio::detail::void_op_base<boost::corosio::tcp_socket::connect_awaitable>::await_resume() const :93 6600x 100.0% 66.7% 85.0% boost::corosio::detail::void_op_base<boost::corosio::tcp_socket::wait_awaitable>::await_resume() const :93 18x 100.0% 85.0% boost::corosio::detail::void_op_base<boost::corosio::udp_socket::connect_awaitable>::await_resume() const :93 26x 0.0% 0.0% 85.0% boost::corosio::detail::void_op_base<boost::corosio::udp_socket::wait_awaitable>::await_resume() const :93 16x 0.0% 0.0% 85.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*) :100 10x 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*) :100 14x 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*) :100 8x 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*) :100 8x 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*) :100 6600x 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*) :100 18x 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*) :100 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*) :100 16x 0.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 3267222x bytes_op_base() = default;
40
41 public:
42 std::stop_token token_;
43 mutable std::error_code ec_;
44 1633611x mutable std::size_t bytes_ = 0;
45
46 1633611x bool await_ready() const noexcept
47 {
48 1633611x return token_.stop_requested();
49 }
50
51 1633603x capy::io_result<std::size_t> await_resume() const noexcept
52 {
53
16/20
✓ Branch 0 taken 501 times.
✓ Branch 1 taken 769957 times.
✓ Branch 2 taken 135 times.
✓ Branch 3 taken 862831 times.
✓ Branch 4 taken 6 times.
✓ Branch 5 taken 38 times.
✓ Branch 6 taken 2 times.
✓ Branch 7 taken 47 times.
✓ Branch 8 taken 4 times.
✓ Branch 9 taken 22 times.
✓ Branch 10 taken 2 times.
✓ Branch 11 taken 24 times.
✓ Branch 12 taken 4 times.
✓ Branch 13 taken 12 times.
✓ Branch 14 taken 2 times.
✓ Branch 15 taken 16 times.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
1633603x if (token_.stop_requested())
54
8/20
✓ Branch 0 taken 501 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 135 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 6 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 4 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 11 not taken.
✓ Branch 12 taken 4 times.
✗ Branch 13 not taken.
✓ Branch 14 taken 2 times.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
656x return {make_error_code(std::errc::operation_canceled), 0};
55
8/20
✓ Branch 0 taken 769957 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 862831 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 38 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 47 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 22 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 24 times.
✗ Branch 11 not taken.
✓ Branch 12 taken 12 times.
✗ Branch 13 not taken.
✓ Branch 14 taken 16 times.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
1632947x return {ec_, bytes_};
56 1633603x }
57
58 1633611x auto await_suspend(std::coroutine_handle<> h, capy::io_env const* env)
59 -> std::coroutine_handle<>
60 {
61 1633611x token_ = env->stop_token;
62 1633611x return static_cast<Derived const*>(this)->dispatch(
63 1633611x h, env->executor);
64 }
65 };
66
67 /* CRTP base for awaitables that return io_result<>.
68
69 Derived classes must provide:
70
71 std::coroutine_handle<> dispatch(
72 std::coroutine_handle<> h,
73 capy::executor_ref ex) const;
74
75 which forwards to the backend implementation method, passing
76 token_ and &ec_ as the cancellation/output parameters.
77 */
78 template<class Derived>
79 class void_op_base
80 {
81 friend Derived;
82 6700x void_op_base() = default;
83
84 public:
85 std::stop_token token_;
86 mutable std::error_code ec_;
87
88 6700x bool await_ready() const noexcept
89 {
90 6700x return token_.stop_requested();
91 }
92
93 6700x capy::io_result<> await_resume() const noexcept
94 {
95
8/14
✓ Branch 0 taken 6 times.
✓ Branch 1 taken 6634 times.
✓ Branch 2 taken 12 times.
✓ Branch 3 taken 22 times.
✓ Branch 4 taken 8 times.
✓ Branch 5 taken 10 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 2 times.
✓ Branch 9 taken 6 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
6700x if (token_.stop_requested())
96
4/14
✓ Branch 0 taken 6 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 12 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 8 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 2 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
28x return {make_error_code(std::errc::operation_canceled)};
97
4/14
✓ Branch 0 taken 6634 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 22 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 10 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 6 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
6672x return {ec_};
98 6700x }
99
100 6700x auto await_suspend(std::coroutine_handle<> h, capy::io_env const* env)
101 -> std::coroutine_handle<>
102 {
103 6700x token_ = env->stop_token;
104 6700x return static_cast<Derived const*>(this)->dispatch(
105 6700x h, env->executor);
106 }
107 };
108
109 } // namespace boost::corosio::detail
110
111 #endif // BOOST_COROSIO_DETAIL_OP_BASE_HPP
112