Anklang-0.3.0.dev712+gdc4e642f anklang-0.3.0.dev712+gdc4e642f
ASE — Anklang Sound Engine (C++)

« « « Anklang Documentation
Loading...
Searching...
No Matches
Classes | Public Types | Public Member Functions | Friends | List of all members
Ase::Loop::Promise< Result > Struct Template Reference
Inheritance diagram for Ase::Loop::Promise< Result >:
[legend]

Classes

struct  PromiseAwaiter
 Helper to capture shared_ptr<Promise> to allow co_await on temporary Promise instances. More...
 

Public Types

using StorageType = std::conditional_t< std::is_void_v< Result >, std::monostate, Result >
 
using StateVariant = std::variant< std::monostate, StorageType, std::exception_ptr >
 

Public Member Functions

PromiseAwaiter operator co_await () noexcept
 Keeps shared_ptr<Promise> alive during co_await.
 
template<typename T = Result>
requires (!std::is_void_v<T>)
void resolve (T &&value)
 Resolve Promise with value.
 
template<typename T = Result>
requires (std::is_void_v<T>)
void resolve ()
 Resolve Promise<void>
 
void reject (std::exception_ptr exc=nullptr)
 Reject promise with exception.
 
- Public Member Functions inherited from std::enable_shared_from_this< Promise< Result > >
enable_shared_from_this (T... args)
 
operator= (T... args)
 
shared_from_this (T... args)
 
weak_from_this (T... args)
 
~enable_shared_from_this (T... args)
 

Friends

class Loop
 

Detailed Description

template<typename Result>
struct Ase::Loop::Promise< Result >

Definition at line 364 of file loop.hh.

Member Typedef Documentation

◆ StateVariant

template<typename Result >
using Ase::Loop::Promise< Result >::StateVariant = std::variant<std::monostate, StorageType, std::exception_ptr>

Definition at line 368 of file loop.hh.

◆ StorageType

template<typename Result >
using Ase::Loop::Promise< Result >::StorageType = std::conditional_t<std::is_void_v<Result>, std::monostate, Result>

Definition at line 366 of file loop.hh.

Constructor & Destructor Documentation

◆ ~Promise()

template<typename Result >
Ase::Loop::Promise< Result >::~Promise ( )

Definition at line 428 of file loop.hh.

Member Function Documentation

◆ operator co_await()

template<typename Result >
PromiseAwaiter Ase::Loop::Promise< Result >::operator co_await ( )
noexcept

Keeps shared_ptr<Promise> alive during co_await.

Definition at line 403 of file loop.hh.

References std::enable_shared_from_this< Promise< Result > >::shared_from_this().

◆ reject()

template<typename Result >
void Ase::Loop::Promise< Result >::reject ( std::exception_ptr  exc = nullptr)

Reject promise with exception.

Definition at line 422 of file loop.hh.

References std::make_exception_ptr().

◆ resolve() [1/2]

template<typename Result >
template<typename T = Result>
requires (std::is_void_v<T>)
void Ase::Loop::Promise< Result >::resolve ( )

Resolve Promise<void>

Definition at line 416 of file loop.hh.

◆ resolve() [2/2]

template<typename Result >
template<typename T = Result>
requires (!std::is_void_v<T>)
void Ase::Loop::Promise< Result >::resolve ( T &&  value)

Resolve Promise with value.

Definition at line 410 of file loop.hh.

Friends And Related Symbol Documentation

◆ Loop

template<typename Result >
friend class Loop
friend

Definition at line 430 of file loop.hh.


The documentation for this struct was generated from the following file: