YACLib
C++ library for concurrent tasks execution
Loading...
Searching...
No Matches
yaclib::SharedFutureBase< V, T > Class Template Reference

#include <shared_future.hpp>

Inheritance diagram for yaclib::SharedFutureBase< V, T >:
[legend]
Collaboration diagram for yaclib::SharedFutureBase< V, T >:
[legend]

Public Types

using Result = typename T::template Result< V >
 
using Handle = detail::SharedHandle
 
using Core = detail::SharedCore< V, T >
 

Public Member Functions

 SharedFutureBase ()=default
 
bool Valid () const noexcept
 
bool Ready () const noexcept
 
Result Get () &&noexcept
 
void Get () const &&=delete
 
const ResultGet () const &noexcept
 
Result Touch () &&noexcept
 
void Touch () const &&=delete
 
const ResultTouch () const &noexcept
 
template<typename Func >
auto Then (IExecutor &e, Func &&f) const
 
void Detach () &&noexcept
 
template<typename Func >
void SubscribeInline (Func &&f) const
 
template<typename Func >
void Subscribe (IExecutor &e, Func &&f) const
 
detail::SharedCorePtr< V, T > & GetCore () noexcept
 
const detail::SharedCorePtr< V, T > & GetCore () const noexcept
 
detail::SharedHandle GetHandle () const noexcept
 

Protected Member Functions

 SharedFutureBase (detail::SharedCorePtr< V, T > core) noexcept
 

Protected Attributes

detail::SharedCorePtr< V, T > _core
 

Detailed Description

template<typename V, typename T>
class yaclib::SharedFutureBase< V, T >

Definition at line 14 of file shared_future.hpp.

Member Typedef Documentation

◆ Core

template<typename V , typename T >
using yaclib::SharedFutureBase< V, T >::Core = detail::SharedCore<V, T>

Definition at line 107 of file shared_future.hpp.

◆ Handle

Definition at line 106 of file shared_future.hpp.

◆ Result

template<typename V , typename T >
using yaclib::SharedFutureBase< V, T >::Result = typename T::template Result<V>

Definition at line 23 of file shared_future.hpp.

Constructor & Destructor Documentation

◆ SharedFutureBase() [1/2]

template<typename V , typename T >
yaclib::SharedFutureBase< V, T >::SharedFutureBase ( )
default

◆ SharedFutureBase() [2/2]

template<typename V , typename T >
yaclib::SharedFutureBase< V, T >::SharedFutureBase ( detail::SharedCorePtr< V, T >  core)
inlineexplicitprotectednoexcept

Definition at line 114 of file shared_future.hpp.

Member Function Documentation

◆ Detach()

template<typename V , typename T >
void yaclib::SharedFutureBase< V, T >::Detach ( ) &&
inlinenoexcept

Definition at line 80 of file shared_future.hpp.

References yaclib::SharedFutureBase< V, T >::_core.

◆ Get() [1/3]

◆ Get() [2/3]

template<typename V , typename T >
void yaclib::SharedFutureBase< V, T >::Get ( ) const &&
delete

◆ Get() [3/3]

template<typename V , typename T >
const Result & yaclib::SharedFutureBase< V, T >::Get ( ) const &
inlinenoexcept

◆ GetCore() [1/2]

template<typename V , typename T >
const detail::SharedCorePtr< V, T > & yaclib::SharedFutureBase< V, T >::GetCore ( ) const
inlinenoexcept

Definition at line 102 of file shared_future.hpp.

References yaclib::SharedFutureBase< V, T >::_core.

◆ GetCore() [2/2]

template<typename V , typename T >
detail::SharedCorePtr< V, T > & yaclib::SharedFutureBase< V, T >::GetCore ( )
inlinenoexcept

Definition at line 98 of file shared_future.hpp.

References yaclib::SharedFutureBase< V, T >::_core.

Referenced by yaclib::Split().

◆ GetHandle()

template<typename V , typename T >
detail::SharedHandle yaclib::SharedFutureBase< V, T >::GetHandle ( ) const
inlinenoexcept

Definition at line 109 of file shared_future.hpp.

References yaclib::SharedFutureBase< V, T >::_core.

◆ Ready()

◆ Subscribe()

template<typename V , typename T >
template<typename Func >
void yaclib::SharedFutureBase< V, T >::Subscribe ( IExecutor e,
Func &&  f 
) const
inline

◆ SubscribeInline()

template<typename V , typename T >
template<typename Func >
void yaclib::SharedFutureBase< V, T >::SubscribeInline ( Func &&  f) const
inline

◆ Then()

template<typename V , typename T >
template<typename Func >
auto yaclib::SharedFutureBase< V, T >::Then ( IExecutor e,
Func &&  f 
) const
inline

◆ Touch() [1/3]

◆ Touch() [2/3]

template<typename V , typename T >
void yaclib::SharedFutureBase< V, T >::Touch ( ) const &&
delete

◆ Touch() [3/3]

◆ Valid()

Member Data Documentation

◆ _core


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