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: