| 107 | asio::write(s, asio::buffer(d.data(), d.size())); |
| 108 | } |
| 109 | std::size_t receive(std::span<std::byte> dst) override { |
| 110 | asio::error_code ec; |
| 111 | const std::size_t n = |
| 112 | s.read_some(asio::buffer(dst.data(), dst.size()), ec); |
| 113 | return ec ? 0 : n; |
| 114 | } |
| 115 | bool has_data() const override { |
| 116 | asio::error_code ec; |
| 117 | return s.available(ec) > 0 && !ec; |