mrs_lib
Various reusable classes, functions and utilities for use in MRS projects
Loading...
Searching...
No Matches
mrs_lib::coro::EventAwaitable Class Reference

Event awaitable that can be awaited by coroutines, resuming them once triggered. More...

#include <event.hpp>

Public Member Functions

 EventAwaitable (internal::LowLevelEventAwaitable internal_awaitable)
 Create EventAwaitable from a low level awaitable.
auto wait () &&-> internal::ImmediateAwaitable< internal::LowLevelEventAwaitable::Awaiter >
 Wait for the event to trigger / cancel.

Friends

internal::LowLevelEventAwaitable internal::get_low_level_event_awaitable (EventAwaitable event_awaitable)

Detailed Description

Event awaitable that can be awaited by coroutines, resuming them once triggered.

This is the read part of a onedirectional oneshot communication channel. To create the pair, use mrs_lib::coro::make_event.

See also
mrs_lib::coro::make_event
mrs_lib::coro::Event

Constructor & Destructor Documentation

◆ EventAwaitable()

mrs_lib::coro::EventAwaitable::EventAwaitable ( internal::LowLevelEventAwaitable internal_awaitable)
explicit

Create EventAwaitable from a low level awaitable.

This function should not be used in user code. Instead, use mrs_lib::coro::make_event.

Member Function Documentation

◆ wait()

auto mrs_lib::coro::EventAwaitable::wait ( ) &&->internal::ImmediateAwaitable< internal::LowLevelEventAwaitable::Awaiter >

Wait for the event to trigger / cancel.

Result of this function must be awaited.

Note
Every event can only be awaited once. To help enforce that behavior, this method is rvalue qualified. As a result, this must be awaited as rvalue (eg. using co_await std::move(awaiter).wait()).

The documentation for this class was generated from the following files:
  • /home/runner/work/mrs_lib/mrs_lib/include/mrs_lib/coro/event.hpp
  • /home/runner/work/mrs_lib/mrs_lib/src/coro/event.cpp