|
libcopp 2.3.2
|
#include <stackful_channel.h>


Public Types | |
| using | value_type = TVALUE |
| using | handle_delegate = stackful_channel_context_base::handle_delegate |
| using | handle_delegate_hash = stackful_channel_context_base::handle_delegate_hash |
Public Member Functions | |
| LIBCOPP_UTIL_FORCEINLINE | stackful_channel_context () noexcept(std::is_nothrow_constructible< future::future< value_type > >::value) |
| LIBCOPP_UTIL_FORCEINLINE | ~stackful_channel_context () noexcept(std::is_nothrow_destructible< future::future< value_type > >::value) |
| LIBCOPP_UTIL_FORCEINLINE bool | is_ready () const noexcept |
| LIBCOPP_UTIL_FORCEINLINE bool | is_pending () const noexcept |
| LIBCOPP_UTIL_FORCEINLINE void | reset_value () noexcept(noexcept(std::declval< future::future< TVALUE > >().reset_data())) |
| template<class U > | |
| LIBCOPP_UTIL_FORCEINLINE void | set_value (U &&in) noexcept(noexcept(std::declval< future::future< TVALUE > >().reset_data(std::forward< U >(in)))) |
| LIBCOPP_UTIL_FORCEINLINE const value_type * | get_value () const noexcept |
| LIBCOPP_UTIL_FORCEINLINE value_type * | get_value () noexcept |
| template<class TCONTEXT , class TERROR_TRANSFORM , class = nostd::enable_if_t<!std::is_base_of<coroutine_context, nostd::remove_cvref_t<TCONTEXT>>::value >> | |
| LIBCOPP_UTIL_FORCEINLINE value_type | inject_await (TCONTEXT *ctx, TERROR_TRANSFORM &&error_transform) noexcept(std::is_nothrow_copy_constructible< value_type >::value &&noexcept(error_transform(COPP_EC_ARGS_ERROR))) |
| template<class TERROR_TRANSFORM > | |
| LIBCOPP_UTIL_FORCEINLINE value_type | inject_await (coroutine_context *ctx, TERROR_TRANSFORM &&error_transform) noexcept(std::is_nothrow_copy_constructible< value_type >::value &&noexcept(error_transform(COPP_EC_ARGS_ERROR))) |
| LIBCOPP_COPP_API void | add_caller (handle_delegate handle) noexcept |
| LIBCOPP_COPP_API bool | remove_caller (handle_delegate handle) noexcept |
| LIBCOPP_COPP_API size_t | resume_callers () |
| LIBCOPP_COPP_API bool | has_multiple_callers () const noexcept |
Protected Member Functions | |
| LIBCOPP_COPP_API void | wake () |
Private Member Functions | |
| template<class TCONTEXT , class TERROR_TRANSFORM > | |
| value_type | internal_inject_await (TCONTEXT *ctx, TERROR_TRANSFORM &&error_transform) noexcept(std::is_nothrow_copy_constructible< value_type >::value &&noexcept(error_transform(COPP_EC_ARGS_ERROR))) |
Private Attributes | |
| future::future< TVALUE > | data_ |
| handle_delegate | unique_caller_ |
| std::unique_ptr< multi_caller_container > | multiple_callers_ |
Definition at line 273 of file stackful_channel.h.
| using stackful_channel_context< TVALUE >::handle_delegate = stackful_channel_context_base::handle_delegate |
Definition at line 276 of file stackful_channel.h.
| using stackful_channel_context< TVALUE >::handle_delegate_hash = stackful_channel_context_base::handle_delegate_hash |
Definition at line 277 of file stackful_channel.h.
| using stackful_channel_context< TVALUE >::value_type = TVALUE |
Definition at line 275 of file stackful_channel.h.
|
inlinenoexcept |
Definition at line 280 of file stackful_channel.h.
|
inlinenoexcept |
Definition at line 283 of file stackful_channel.h.
|
noexceptinherited |
Definition at line 41 of file stackful_channel.cpp.
References stackful_channel_context_base::multi_caller_container::add().
|
inlinenoexcept |
Definition at line 304 of file stackful_channel.h.
|
inlinenoexcept |
Definition at line 306 of file stackful_channel.h.
|
noexceptinherited |
Definition at line 157 of file stackful_channel.cpp.
References stackful_channel_handle_delegate::handle_data, stackful_channel_context_base::multiple_callers_, stackful_channel_handle_delegate::resume_handle, and stackful_channel_context_base::unique_caller_.
|
inlinenoexcept |
Definition at line 321 of file stackful_channel.h.
|
inlinenoexcept |
Definition at line 315 of file stackful_channel.h.
|
inlineprivatenoexcept |
Definition at line 338 of file stackful_channel.h.
References COPP_EC_ARGS_ERROR, COPP_EC_NOT_READY, COPP_EC_OPERATION_CANCLE, COPP_EC_SUCCESS, LIBCOPP_UTIL_LIKELY_CONDITION, and LIBCOPP_UTIL_UNLIKELY_CONDITION.
|
inlinenoexcept |
Definition at line 289 of file stackful_channel.h.
|
inlinenoexcept |
Definition at line 287 of file stackful_channel.h.
|
noexceptinherited |
Definition at line 84 of file stackful_channel.cpp.
|
inlinenoexcept |
Definition at line 291 of file stackful_channel.h.
|
inherited |
Definition at line 113 of file stackful_channel.cpp.
References stackful_channel_context_base::multi_caller_container::callers, stackful_channel_context_base::multiple_callers_, stackful_channel_handle_delegate::resume_handle, stackful_channel_context_base::multi_caller_container::swap(), and stackful_channel_context_base::unique_caller_.
|
inlinenoexcept |
Definition at line 296 of file stackful_channel.h.
|
protectedinherited |
Definition at line 178 of file stackful_channel.cpp.
Referenced by stackful_channel_context_base::~stackful_channel_context_base().
|
private |
Definition at line 371 of file stackful_channel.h.
|
privateinherited |
Definition at line 268 of file stackful_channel.h.
Referenced by stackful_channel_context_base::has_multiple_callers(), and stackful_channel_context_base::resume_callers().
|
privateinherited |
Definition at line 266 of file stackful_channel.h.
Referenced by stackful_channel_context_base::has_multiple_callers(), and stackful_channel_context_base::resume_callers().