YACLib
C++ library for concurrent tasks execution
Loading...
Searching...
No Matches
yaclib::detail::PromiseCore< V, E, Func > Class Template Reference

#include <promise_core.hpp>

Inheritance diagram for yaclib::detail::PromiseCore< V, E, Func >:
[legend]
Collaboration diagram for yaclib::detail::PromiseCore< V, E, Func >:
[legend]

Public Types

using Base = ResultCore< V, E >
 
- Public Types inherited from yaclib::detail::BaseCore
enum  State : std::uintptr_t { kEmpty = std::uintptr_t{0} , kResult = std::numeric_limits<std::uintptr_t>::max() }
 
template<bool SymmetricTransfer>
using Transfer = InlineCore *
 

Public Member Functions

 PromiseCore (Func &&f)
 
- Public Member Functions inherited from yaclib::detail::ResultCore< V, E >
InlineCoreHere (InlineCore &caller) noexcept override
 
 ResultCore () noexcept
 
template<typename... Args>
 ResultCore (Args &&... args) noexcept(std::is_nothrow_constructible_v< Result< V, E >, Args &&... >)
 
 ~ResultCore () noexcept override
 
template<typename... Args>
void Store (Args &&... args) noexcept(std::is_nothrow_constructible_v< Result< V, E >, Args &&... >)
 
Result< V, E > & Get () noexcept
 
- Public Member Functions inherited from yaclib::detail::BaseCore
void StoreCallback (InlineCore &callback) noexcept
 
bool Empty () const noexcept
 
bool SetCallback (InlineCore &callback) noexcept
 
bool Reset () noexcept
 
void CallInline (InlineCore &callback) noexcept
 
template<bool SymmetricTransfer>
Transfer< SymmetricTransferSetInline (InlineCore &callback) noexcept
 
template<bool SymmetricTransfer>
Transfer< SymmetricTransferSetResult () noexcept
 
void MoveExecutorTo (BaseCore &callback) noexcept
 
- Public Member Functions inherited from yaclib::IRef
virtual void IncRef () noexcept
 Increments reference counter.
 
virtual void DecRef () noexcept
 Decrements reference counter.
 
virtual ~IRef () noexcept=default
 

Additional Inherited Members

- Public Attributes inherited from yaclib::detail::ResultCore< V, E >
union { 
 
   Result< V, E >   _result 
 
   Callback   _self 
 
};  
 
- Public Attributes inherited from yaclib::detail::BaseCore
IExecutorPtr _executor {NoRefTag{}, &MakeInline()}
 
- Public Attributes inherited from yaclib::detail::Node
Nodenext = nullptr
 
- Protected Types inherited from yaclib::detail::FuncCore< Func >
using Storage = std::decay_t< Func >
 
using Invoke = std::conditional_t< std::is_function_v< std::remove_reference_t< Func > >, Storage, Func >
 
- Protected Member Functions inherited from yaclib::detail::BaseCore
 BaseCore (State callback) noexcept
 
- Protected Member Functions inherited from yaclib::detail::FuncCore< Func >
 FuncCore (Func &&f)
 
- Protected Attributes inherited from yaclib::detail::BaseCore
yaclib_std::atomic_uintptr_t _callback
 
- Protected Attributes inherited from yaclib::detail::FuncCore< Func >
YACLIB_NO_UNIQUE_ADDRESS State _func
 

Detailed Description

template<typename V, typename E, typename Func>
class yaclib::detail::PromiseCore< V, E, Func >

Definition at line 13 of file promise_core.hpp.

Member Typedef Documentation

◆ Base

Definition at line 19 of file promise_core.hpp.

Constructor & Destructor Documentation

◆ PromiseCore()

template<typename V , typename E , typename Func >
yaclib::detail::PromiseCore< V, E, Func >::PromiseCore ( Func &&  f)
inlineexplicit

Definition at line 21 of file promise_core.hpp.


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