#include "coro.h"
#include "job.h"
#include <atomic>
#include <array>
#include <memory>
#include <limits>
#include <optional>
Classes | |
struct | dpp::detail::when_any::arg_helper_s< T > |
Type trait helper to obtain the actual type that will be used by a when_any when a type is passed as a parameter. More... | |
struct | dpp::detail::when_any::arg_helper_s< dpp::event_router_t< T > > |
class | dpp::detail::event_router::awaitable< T > |
Awaitable object representing an event. More... | |
struct | dpp::when_any< Args >::awaiter |
Object returned by operator co_await(). More... | |
struct | dpp::detail::when_any::empty |
Empty result from void-returning awaitable. More... | |
class | dpp::event_router_t< T > |
Handles routing of an event to multiple listeners. More... | |
class | dpp::when_any< Args >::result |
Object returned by operator co_await() on resumption. More... | |
class | dpp::when_any< Args > |
Experimental class to co_await on a bunch of awaitable objects, resuming when the first one completes. On completion, returns a result object that contains the index of the awaitable that finished first. A user can call result::index() and result::get<N>() on the result object to get the result, similar to std::variant. More... | |
Namespaces | |
dpp | |
The main namespace for D++ functions. | |
dpp::detail | |
Implementation details for internal use only. | |
dpp::detail::event_router | |
Internal cogwheels for dpp::event_router_t. | |
dpp::detail::when_any | |
Internal cogwheels for dpp::when_any. | |
Typedefs | |
template<typename T > | |
using | dpp::detail::when_any::arg_helper = arg_helper_s< std::remove_cvref_t< T > > |
Helper struct with a method to convert an awaitable parameter to the actual value it will be stored as. More... | |
template<typename T > | |
using | dpp::detail::when_any::awaitable_type = typename arg_helper_s< T >::type |
Alias for the actual type that an awaitable will be stored as in a when_any. More... | |
template<typename T > | |
using | dpp::detail::when_any::storage_type = std::conditional_t< std::is_void_v< T >, empty, T > |
Actual type a result will be stores as in when_any. More... | |
Enumerations | |
enum | dpp::detail::when_any::await_state { dpp::detail::when_any::await_state::started, dpp::detail::when_any::await_state::waiting, dpp::detail::when_any::await_state::done, dpp::detail::when_any::await_state::dangling } |
Current state of a when_any object. More... | |
Functions | |
template<typename... Args> | |
dpp::when_any (Args...) -> when_any< detail::when_any::awaitable_type< Args >... > | |
Variables | |
template<typename T > | |
concept | dpp::detail::when_any::void_result = std::same_as<T, empty> |
Concept satisfied if a stored result is void. More... | |