libcoro
1.0
Coroutine support library for C++20
|
The collector is a reversed generator. The coroutine consumes values and then returns a result. More...
#include <collector.h>
Public Member Functions | |
collector ()=default | |
construct uninitalized collector - you can initialize it later by assignment More... | |
collector (collector &&other) | |
move More... | |
template<typename A > | |
collector (collector< Collectible, Result, A > &&other) | |
convert from different allocator More... | |
collector & | operator= (collector &&other) |
assign by move More... | |
template<typename ... Args> | |
future< bool > | operator() (Args &&... args) |
call collected and push next collectible item More... | |
![]() | |
future (std::in_place_t, Args &&... args) | |
Construct future already resolved with a value. More... | |
future (Fn &&fn) | |
Construct future which is evaluated inside of lambda function. More... | |
future (deferred_tag, Fn &&fn) | |
Construct future with deferred evaluation. More... | |
requires (std::constructible_from< value_store_type, Args ... > &&avoid_same_kind< future, Args... >) future(Args &&... args) | |
Construct future already resolved with a value. More... | |
~future () | |
dtor More... | |
future & | operator<< (Fn &&fn) |
Store result future in already declared value. More... | |
promise_t | get_promise () |
Retrieve promise and begin evaluation. More... | |
prepared_coro | start () |
Start deferred execution. More... | |
bool | set_callback (Fn &&fn) |
Sets callback which is called once future is resolved (in future) More... | |
bool | unset_callback () |
unset callback More... | |
bool | then (Fn &&fn) |
Sets function which is called once future is resolved (always) More... | |
bool | operator>> (Fn &&fn) |
Sets function which is called once future is resolved (always) More... | |
wait_awaiter | wait () noexcept |
Perform synchronous wait on resolution. More... | |
ret_value | get () |
Retrieves value, performs synchronous wait. More... | |
operator cast_ret_value () | |
Retrieves value, performs synchronous wait. More... | |
bool | is_pending () const |
Determines pending status. More... | |
bool | is_in_progress () const |
Determine in progress status. More... | |
bool | is_deferred () const |
Determine deferred status. More... | |
bool | is_awaited () const |
Determine whether an awaiter is set. More... | |
bool | await_ready () const noexcept |
co_await support, returns true, if value is ready (resolved) More... | |
std::coroutine_handle | await_suspend (std::coroutine_handle<> h) noexcept |
co_await support, called with suspended coroutine More... | |
bool | has_value () const |
Determines, whether future has a value. More... | |
bool | has_exception () const |
Determines, whether future has exception. More... | |
canceled_awaiter | operator! () |
awaitable for canceled operation More... | |
promise< X >::notify | forward_to (promise< X > &prom) &noexcept |
Forward value, possibly convert it, to different promise. More... | |
promise< X >::notify | forward_to (promise< X > &prom) &&noexcept |
Forward value, possibly convert it, to different promise. More... | |
promise< X >::notify | convert_to (promise< X > &prom, Fn &&convert) noexcept |
Forward value, possibly convert it, to different promise. More... | |
Additional Inherited Members | |
![]() | |
using | cast_ret_value = std::conditional_t< std::is_void_v< Result >, bool, std::add_rvalue_reference_t< Result > > |
type which is used for cast operator () More... | |
using | ret_value = std::conditional_t< std::is_void_v< Result >, void, std::add_rvalue_reference_t< Result > > |
type which is used as return value of get() and await_resume() More... | |
![]() | |
bool | startDeferredEvaluation (ResumeFn &&resume_fn) noexcept |
Starts evaluation of deferred future. More... | |
void | setDeferredEvaluation (Fn &&fn) |
Initializes deferred evaluation. More... | |
void | attach (future *x) |
Attach future to internal linked list. More... | |
future * | detach () |
Detach linked list from the future. More... | |
The collector is a reversed generator. The coroutine consumes values and then returns a result.
The values are awaited by co_yield nullptr
(or co_yield <anything>). The value itself is ignored. Return value of co_yield is next collectible item;
Collectible | Items to collect |
Result | Type of return value |
Alloc | optional allocator |
Definition at line 44 of file collector.h.