libkazv
Kazv::ContextBase< T, Action, Deps > Class Template Reference

#include <context.hpp>

Inheritance diagram for Kazv::ContextBase< T, Action, Deps >:
Collaboration diagram for Kazv::ContextBase< T, Action, Deps >:

Public Types

using RetType = T
 
using PromiseInterfaceT = SingleTypePromiseInterface< RetType >
 
using PromiseT = SingleTypePromise< RetType >
 

Public Member Functions

template<class Func >
 ContextBase (Func &&dispatcher, PromiseInterfaceT ph, Deps deps)
 
template<class AnotherAction , class AnotherDeps , std::enable_if_t< std::is_convertible_v< Action, AnotherAction > &&std::is_convertible_v< AnotherDeps, Deps >, int > = 0>
 ContextBase (const ContextBase< RetType, AnotherAction, AnotherDeps > &that)
 
template<class AnotherAction , class AnotherDeps , class Conv , std::enable_if_t< std::is_convertible_v< std::invoke_result_t< Conv, Action >, AnotherAction > &&std::is_convertible_v< AnotherDeps, Deps >, int > = 0>
 ContextBase (const ContextBase< RetType, AnotherAction, AnotherDeps > &that, Conv &&conv)
 
PromiseT dispatch (Action a) const
 
decltype(auto) deps ()
 
template<class Func >
PromiseT createPromise (Func func) const
 
template<class Func >
PromiseT createWaitingPromise (Func func) const
 
PromiseT createResolvedPromise (RetType v) const
 
PromiseInterfaceT promiseInterface () const
 

Friends

template<class R2 , class A2 , typename D2 >
class ContextBase
 

Member Typedef Documentation

◆ PromiseInterfaceT

template<class T , class Action , class Deps = lager::deps<>>
using Kazv::ContextBase< T, Action, Deps >::PromiseInterfaceT = SingleTypePromiseInterface<RetType>

◆ PromiseT

template<class T , class Action , class Deps = lager::deps<>>
using Kazv::ContextBase< T, Action, Deps >::PromiseT = SingleTypePromise<RetType>

◆ RetType

template<class T , class Action , class Deps = lager::deps<>>
using Kazv::ContextBase< T, Action, Deps >::RetType = T

Constructor & Destructor Documentation

◆ ContextBase() [1/3]

template<class T , class Action , class Deps = lager::deps<>>
template<class Func >
Kazv::ContextBase< T, Action, Deps >::ContextBase ( Func &&  dispatcher,
PromiseInterfaceT  ph,
Deps  deps 
)
inline

◆ ContextBase() [2/3]

template<class T , class Action , class Deps = lager::deps<>>
template<class AnotherAction , class AnotherDeps , std::enable_if_t< std::is_convertible_v< Action, AnotherAction > &&std::is_convertible_v< AnotherDeps, Deps >, int > = 0>
Kazv::ContextBase< T, Action, Deps >::ContextBase ( const ContextBase< RetType, AnotherAction, AnotherDeps > &  that)
inline

◆ ContextBase() [3/3]

template<class T , class Action , class Deps = lager::deps<>>
template<class AnotherAction , class AnotherDeps , class Conv , std::enable_if_t< std::is_convertible_v< std::invoke_result_t< Conv, Action >, AnotherAction > &&std::is_convertible_v< AnotherDeps, Deps >, int > = 0>
Kazv::ContextBase< T, Action, Deps >::ContextBase ( const ContextBase< RetType, AnotherAction, AnotherDeps > &  that,
Conv &&  conv 
)
inline

Member Function Documentation

◆ createPromise()

template<class T , class Action , class Deps = lager::deps<>>
template<class Func >
PromiseT Kazv::ContextBase< T, Action, Deps >::createPromise ( Func  func) const
inline

◆ createResolvedPromise()

template<class T , class Action , class Deps = lager::deps<>>
PromiseT Kazv::ContextBase< T, Action, Deps >::createResolvedPromise ( RetType  v) const
inline

◆ createWaitingPromise()

template<class T , class Action , class Deps = lager::deps<>>
template<class Func >
PromiseT Kazv::ContextBase< T, Action, Deps >::createWaitingPromise ( Func  func) const
inline

◆ deps()

template<class T , class Action , class Deps = lager::deps<>>
decltype(auto) Kazv::ContextBase< T, Action, Deps >::deps ( )
inline

◆ dispatch()

template<class T , class Action , class Deps = lager::deps<>>
PromiseT Kazv::ContextBase< T, Action, Deps >::dispatch ( Action  a) const
inline

◆ promiseInterface()

template<class T , class Action , class Deps = lager::deps<>>
PromiseInterfaceT Kazv::ContextBase< T, Action, Deps >::promiseInterface ( ) const
inline

Friends And Related Function Documentation

◆ ContextBase

template<class T , class Action , class Deps = lager::deps<>>
template<class R2 , class A2 , typename D2 >
friend class ContextBase
friend

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