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

A coroutine generator producing a sequence of values. More...

#include <coro.h>

Public Types

using promise_type = generator_promise< T... >
 
using Mailbox_types = typename promise_type::Mailbox_types
 

Public Member Functions

 generator (std::coroutine_handle< promise_type > h) noexcept
 
 generator (zth::SharedPointer< promise_type > const &p) noexcept
 
 generator (zth::SharedPointer< promise_type > &&p) noexcept
 
 generator (promise_type *p=nullptr) noexcept
 
promise_typepromise () const noexcept
 
char const * id_str () const noexcept
 
void setName (string name) noexcept
 
bool completed () const noexcept
 
template<typename U = typename promise_type::first_yield_type>
auto & mailbox () const
 
template<typename U >
decltype(auto) as () const
 
template<typename U = typename promise_type::first_yield_type>
bool valid () const noexcept
 
template<typename U = typename promise_type::first_yield_type>
decltype(auto) value ()
 
template<typename U = typename promise_type::first_yield_type>
void generate ()
 
void run ()
 
decltype(auto) fiber (char const *name=nullptr)
 
decltype(auto) begin ()
 
promise_type::end_type end ()
 

Detailed Description

template<typename... T>
requires (sizeof...(T) >= 1, (!std::is_void_v<T> && ...))
class zth::coro::generator< T >

A coroutine generator producing a sequence of values.

Template Parameters
TThe yield types of the generator. At least one type must be specified, and void is not allowed.
Examples
7_coro.cpp, and sock_factory.cpp.

Definition at line 904 of file coro.h.

Member Typedef Documentation

◆ Mailbox_types

template<typename... T>
using zth::coro::generator< T >::Mailbox_types = typename promise_type::Mailbox_types

Definition at line 907 of file coro.h.

◆ promise_type

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

Definition at line 906 of file coro.h.

Constructor & Destructor Documentation

◆ generator() [1/4]

template<typename... T>
zth::coro::generator< T >::generator ( std::coroutine_handle< promise_type h)
inlineexplicitnoexcept

Definition at line 909 of file coro.h.

◆ generator() [2/4]

template<typename... T>
zth::coro::generator< T >::generator ( zth::SharedPointer< promise_type > const &  p)
inlineexplicitnoexcept

Definition at line 913 of file coro.h.

◆ generator() [3/4]

template<typename... T>
zth::coro::generator< T >::generator ( zth::SharedPointer< promise_type > &&  p)
inlineexplicitnoexcept

Definition at line 917 of file coro.h.

◆ generator() [4/4]

template<typename... T>
zth::coro::generator< T >::generator ( promise_type p = nullptr)
inlineexplicitnoexcept

Definition at line 921 of file coro.h.

Member Function Documentation

◆ as()

template<typename... T>
template<typename U >
decltype(auto) zth::coro::generator< T >::as ( ) const
inline
Examples
sock_factory.cpp.

Definition at line 960 of file coro.h.

◆ begin()

template<typename... T>
decltype(auto) zth::coro::generator< T >::begin ( )
inline

Definition at line 1028 of file coro.h.

◆ completed()

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

Definition at line 943 of file coro.h.

◆ end()

template<typename... T>
promise_type::end_type zth::coro::generator< T >::end ( )
inline

Definition at line 1037 of file coro.h.

◆ fiber()

template<typename... T>
decltype(auto) zth::coro::generator< T >::fiber ( char const *  name = nullptr)
inline
Examples
sock_factory.cpp.

Definition at line 1010 of file coro.h.

◆ generate()

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

Definition at line 983 of file coro.h.

◆ id_str()

template<typename... T>
char const * zth::coro::generator< T >::id_str ( ) const
inlinenoexcept

Definition at line 930 of file coro.h.

◆ mailbox()

template<typename... T>
template<typename U = typename promise_type::first_yield_type>
auto & zth::coro::generator< T >::mailbox ( ) const
inline

Definition at line 950 of file coro.h.

◆ promise()

template<typename... T>
promise_type * zth::coro::generator< T >::promise ( ) const
inlinenoexcept

Definition at line 925 of file coro.h.

◆ run()

template<typename... T>
void zth::coro::generator< T >::run ( )
inline
Examples
7_coro.cpp.

Definition at line 992 of file coro.h.

◆ setName()

template<typename... T>
void zth::coro::generator< T >::setName ( string  name)
inlinenoexcept

Definition at line 936 of file coro.h.

◆ valid()

template<typename... T>
template<typename U = typename promise_type::first_yield_type>
bool zth::coro::generator< T >::valid ( ) const
inlinenoexcept
Examples
sock_factory.cpp.

Definition at line 966 of file coro.h.

◆ value()

template<typename... T>
template<typename U = typename promise_type::first_yield_type>
decltype(auto) zth::coro::generator< T >::value ( )
inline
Examples
sock_factory.cpp.

Definition at line 973 of file coro.h.


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