Zth (libzth)
Loading...
Searching...
No Matches
zth::coro::generator_promise< T > Class Template Reference

#include <coro.h>

Inheritance diagram for zth::coro::generator_promise< T >:
zth::coro::promise< generator_promise< T... > > zth::coro::promise_base zth::RefCounted zth::UniqueID< promise_base > zth::NamedUniqueID< Named > zth::UniqueIDBase

Classes

struct  end_type
 
class  iterator
 

Public Types

using Mailbox_types = std::tuple< impl::generator_Mailbox_type< T >... >
 
using generator_type = generator< T... >
 
using first_yield_type = typename std::tuple_element_t< 0, std::tuple< T... > >
 
using base = promise< generator_promise< T... > >
 
- Public Types inherited from zth::coro::promise< generator_promise< T... > >
using promise_type = generator_promise< T... >
 
- Public Types inherited from zth::UniqueID< promise_base >
typedef NamedUniqueID base
 

Public Member Functions

 generator_promise ()
 
virtual ~generator_promise () noexcept override=default
 
template<typename U = first_yield_type>
auto const & mailbox () const noexcept
 
template<typename U = first_yield_type>
auto & mailbox () noexcept
 
bool completed () const noexcept
 
template<typename U = first_yield_type>
bool valid () const noexcept
 
template<typename U = first_yield_type>
decltype(auto) value ()
 
template<typename U = first_yield_type>
void generate ()
 
auto get_return_object () noexcept
 
std::coroutine_handle waiter () const noexcept
 
template<typename U >
std::coroutine_handle waiter () const noexcept
 
template<typename T_ >
decltype(auto) yield_value (T_ &&v) noexcept
 
decltype(auto) final_suspend () noexcept
 
void return_void () noexcept
 
void unhandled_exception () noexcept
 
template<typename U = first_yield_type>
iterator< U > begin ()
 
end_type end () noexcept
 
bool operator== (end_type) const noexcept
 
bool operator!= (end_type) const noexcept
 
template<typename U = first_yield_type>
generator_promiseoperator++ ()
 
template<typename U = first_yield_type>
decltype(auto) operator++ (int)
 
template<typename U = first_yield_type>
decltype(auto) operator* ()
 
template<typename U = first_yield_type>
decltype(auto) operator-> ()
 
- Public Member Functions inherited from zth::coro::promise< generator_promise< T... > >
virtual ~promise () noexcept override
 
auto typedHandle () noexcept
 
virtual std::coroutine_handle handle () noexcept final
 
decltype(auto) initial_suspend () noexcept
 
decltype(auto) final_suspend () noexcept
 
decltype(auto) await_transform (A &&a) noexcept
 
virtual bool running () const noexcept final
 
void run ()
 
- Public Member Functions inherited from zth::coro::promise_base
 ZTH_MALLOC_ATTR ((malloc, alloc_size(1))) static void *operator new(std
 
virtual ~promise_base () noexcept override=default
 
std::coroutine_handle continuation () noexcept
 
bool has_continuation () const noexcept
 
void set_continuation (std::coroutine_handle<> cont={}) noexcept
 
- Public Member Functions inherited from zth::RefCounted
 RefCounted () noexcept
 
virtual ~RefCounted () noexcept
 
void used () noexcept
 
bool unused () noexcept
 
size_t refs () const noexcept
 
- Public Member Functions inherited from zth::UniqueID< promise_base >
 UniqueID (UniqueID const &)=delete
 
 UniqueID (UniqueID &&u) noexcept
 
 UniqueID (string const &name)
 
 UniqueID (string &&name)
 
 UniqueID (char const *name=nullptr)
 
UniqueIDoperator= (UniqueID const &)=delete
 
UniqueIDoperator= (UniqueID &&u) noexcept
 
virtual ~UniqueID () noexcept override=default
 
void const * normptr () const noexcept
 
uint64_t id () const noexcept
 
- Public Member Functions inherited from zth::NamedUniqueID< Named >
virtual ~NamedUniqueID () noexcept override=default
 
string const & name () const noexcept
 
void setName (string const &name)
 
void setName (char const *name)
 
void setName (string &&name)
 
virtual char const * id_str () const noexcept override
 

Additional Inherited Members

- Static Public Member Functions inherited from zth::coro::promise_base
static ZTH_MALLOC_INLINE void operator delete (void *ptr, std::size_t n) noexcept
 
- Static Public Member Functions inherited from zth::UniqueID< promise_base >
static uint64_t getID () noexcept
 
- Protected Member Functions inherited from zth::coro::promise< generator_promise< T... > >
 promise (cow_string const &name)
 
void running (bool set) noexcept
 
promise_type const & self () const noexcept
 
promise_typeself () noexcept
 
- Protected Member Functions inherited from zth::coro::promise_base
 promise_base (cow_string const &name)
 
- Protected Member Functions inherited from zth::UniqueID< promise_base >
virtual uint64_t id_ () const noexcept final
 
- Protected Member Functions inherited from zth::NamedUniqueID< Named >
 NamedUniqueID (char const *name=nullptr)
 
 NamedUniqueID (string const &name)
 
 NamedUniqueID (string &&name)
 
- Protected Member Functions inherited from zth::UniqueIDBase
virtual ~UniqueIDBase () noexcept=default
 

Detailed Description

template<typename... T>
class zth::coro::generator_promise< T >

Definition at line 1135 of file coro.h.

Member Typedef Documentation

◆ base

template<typename... T>
using zth::coro::generator_promise< T >::base = promise<generator_promise<T...> >

Definition at line 1140 of file coro.h.

◆ first_yield_type

template<typename... T>
using zth::coro::generator_promise< T >::first_yield_type = typename std::tuple_element_t<0, std::tuple<T...> >

Definition at line 1139 of file coro.h.

◆ generator_type

template<typename... T>
using zth::coro::generator_promise< T >::generator_type = generator<T...>

Definition at line 1138 of file coro.h.

◆ Mailbox_types

template<typename... T>
using zth::coro::generator_promise< T >::Mailbox_types = std::tuple<impl::generator_Mailbox_type<T>...>

Definition at line 1137 of file coro.h.

Constructor & Destructor Documentation

◆ generator_promise()

template<typename... T>
zth::coro::generator_promise< T >::generator_promise ( )
inline

Definition at line 1146 of file coro.h.

◆ ~generator_promise()

template<typename... T>
virtual zth::coro::generator_promise< T >::~generator_promise ( )
overridevirtualdefaultnoexcept

Member Function Documentation

◆ begin()

template<typename... T>
template<typename U = first_yield_type>
iterator< U > zth::coro::generator_promise< T >::begin ( )
inline

Definition at line 1353 of file coro.h.

◆ completed()

template<typename... T>
bool zth::coro::generator_promise< T >::completed ( ) const
inlinenoexcept

Definition at line 1165 of file coro.h.

◆ end()

template<typename... T>
end_type zth::coro::generator_promise< T >::end ( )
inlinenoexcept

Definition at line 1360 of file coro.h.

◆ final_suspend()

template<typename... T>
decltype(auto) zth::coro::generator_promise< T >::final_suspend ( )
inlinenoexcept

Definition at line 1263 of file coro.h.

◆ generate()

template<typename... T>
template<typename U = first_yield_type>
void zth::coro::generator_promise< T >::generate ( )
inline

Definition at line 1186 of file coro.h.

◆ get_return_object()

template<typename... T>
auto zth::coro::generator_promise< T >::get_return_object ( )
inlinenoexcept

Definition at line 1207 of file coro.h.

◆ mailbox() [1/2]

template<typename... T>
template<typename U = first_yield_type>
auto const & zth::coro::generator_promise< T >::mailbox ( ) const
inlinenoexcept

Definition at line 1154 of file coro.h.

◆ mailbox() [2/2]

template<typename... T>
template<typename U = first_yield_type>
auto & zth::coro::generator_promise< T >::mailbox ( )
inlinenoexcept

Definition at line 1160 of file coro.h.

◆ operator!=()

template<typename... T>
bool zth::coro::generator_promise< T >::operator!= ( end_type  ) const
inlinenoexcept

Definition at line 1370 of file coro.h.

◆ operator*()

template<typename... T>
template<typename U = first_yield_type>
decltype(auto) zth::coro::generator_promise< T >::operator* ( )
inline

Definition at line 1391 of file coro.h.

◆ operator++() [1/2]

template<typename... T>
template<typename U = first_yield_type>
generator_promise & zth::coro::generator_promise< T >::operator++ ( )
inline

Definition at line 1376 of file coro.h.

◆ operator++() [2/2]

template<typename... T>
template<typename U = first_yield_type>
decltype(auto) zth::coro::generator_promise< T >::operator++ ( int  )
inline

Definition at line 1383 of file coro.h.

◆ operator->()

template<typename... T>
template<typename U = first_yield_type>
decltype(auto) zth::coro::generator_promise< T >::operator-> ( )
inline

Definition at line 1398 of file coro.h.

◆ operator==()

template<typename... T>
bool zth::coro::generator_promise< T >::operator== ( end_type  ) const
inlinenoexcept

Definition at line 1365 of file coro.h.

◆ return_void()

template<typename... T>
void zth::coro::generator_promise< T >::return_void ( )
inlinenoexcept

Definition at line 1292 of file coro.h.

◆ unhandled_exception()

template<typename... T>
void zth::coro::generator_promise< T >::unhandled_exception ( )
inlinenoexcept

Definition at line 1298 of file coro.h.

◆ valid()

template<typename... T>
template<typename U = first_yield_type>
bool zth::coro::generator_promise< T >::valid ( ) const
inlinenoexcept

Definition at line 1171 of file coro.h.

◆ value()

template<typename... T>
template<typename U = first_yield_type>
decltype(auto) zth::coro::generator_promise< T >::value ( )
inline

Definition at line 1177 of file coro.h.

◆ waiter() [1/2]

template<typename... T>
std::coroutine_handle zth::coro::generator_promise< T >::waiter ( ) const
inlinenoexcept

Definition at line 1213 of file coro.h.

◆ waiter() [2/2]

template<typename... T>
template<typename U >
std::coroutine_handle zth::coro::generator_promise< T >::waiter ( ) const
inlinenoexcept

Definition at line 1225 of file coro.h.

◆ yield_value()

template<typename... T>
template<typename T_ >
decltype(auto) zth::coro::generator_promise< T >::yield_value ( T_ &&  v)
inlinenoexcept

Definition at line 1231 of file coro.h.


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