|
void | set_state (io_operation_state *state) noexcept |
|
virtual void | read_finished (lock_guard &g, io_operation_state_type) override |
| Called when an i/o has finished, and its state can now be destroyed.
|
|
virtual void | write_or_barrier_finished (lock_guard &g, io_operation_state_type) override |
| Called when an i/o has finished, and its state can now be destroyed.
|
|
virtual void | read_initiated (lock_guard &, io_operation_state_type) |
| Called when an i/o has been initiated, and is now being processed asynchronously.
|
|
virtual bool | read_completed (lock_guard &, io_operation_state_type, io_result< buffers_type > &&) |
| Called when an i/o has completed, and its result is available. Return true if you consume the result.
|
|
virtual void | write_initiated (lock_guard &, io_operation_state_type) |
| Called when an i/o has been initiated, and is now being processed asynchronously.
|
|
virtual bool | write_completed (lock_guard &, io_operation_state_type, io_result< const_buffers_type > &&) |
| Called when an i/o has completed, and its result is available. Return true if you consume the result.
|
|
virtual void | barrier_initiated (lock_guard &, io_operation_state_type) |
| Called when an i/o has been initiated, and is now being processed asynchronously.
|
|
virtual bool | barrier_completed (lock_guard &, io_operation_state_type, io_result< const_buffers_type > &&) |
| Called when an i/o has completed, and its result is available. Return true if you consume the result.
|
|
template<class T>
struct llfio_v2_xxx::byte_io_multiplexer::awaitable< T >
A convenience coroutine awaitable type returned by .co_read()
, .co_write()
and .co_barrier()
. Blocks execution if no i/o multiplexer has been set on this handle!
Upon first .await_ready()
, the awaitable initiates the i/o. If the i/o completes immediately, the awaitable is immediately ready and no coroutine suspension occurs.
If the i/o does not complete immediately, the coroutine is suspended. To cause resumption of execution, you will need to pump the associated i/o multiplexer for completions using byte_io_multiplexer::check_for_any_completed_io()
.