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

#include <result_core.hpp>

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

Public Types

using Value = V
 
using Trait = T
 
using Result = typename T::template Result< V >
 
- 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() }
 

Public Member Functions

 ResultCore () noexcept
 
template<typename... Args>
 ResultCore (std::in_place_t, Args &&... args)
 
 ~ResultCore () noexcept override
 
template<typename... Args>
void Store (Args &&... args)
 
ResultGet () noexcept
 
template<bool Condition>
decltype(autoMoveOrConst ()
 
virtual Result Retire ()=0
 
- Public Member Functions inherited from yaclib::detail::BaseCore
bool Empty () const noexcept
 
template<bool Shared>
void TransferExecutorTo (BaseCore &callback) noexcept
 
- Public Member Functions inherited from yaclib::detail::InlineCore
virtual InlineCoreHere (InlineCore &caller) noexcept=0
 
- Public Member Functions inherited from yaclib::Job
virtual void Drop () noexcept
 
- Public Member Functions inherited from yaclib::IFunc
virtual void Call () noexcept
 
- Public Member Functions inherited from yaclib::IRef
virtual void IncRef () noexcept
 Increments reference counter.
 
virtual void DecRef () noexcept
 Decrements reference counter.
 
virtual std::size_t GetRef () noexcept
 
virtual ~IRef () noexcept=default
 

Public Attributes

union { 
 
   Result   _result 
 
   Callback   _self 
 
};  
 
- Public Attributes inherited from yaclib::detail::BaseCore
IExecutorPtr _executor {NoRefTag{}, &MakeInline()}
 
- Public Attributes inherited from yaclib::detail::Node
Nodenext = nullptr
 

Protected Member Functions

template<bool SymmetricTransfer, bool Shared>
YACLIB_INLINE auto Impl (InlineCore &caller) noexcept
 
- Protected Member Functions inherited from yaclib::detail::BaseCore
 BaseCore (State state) noexcept
 
void StoreCallbackImpl (InlineCore &callback) noexcept
 
template<bool Shared>
bool SetCallbackImpl (InlineCore &callback) noexcept
 
bool ResetImpl () noexcept
 
template<bool SymmetricTransfer, bool Shared>
Transfer< SymmetricTransferSetInlineImpl (InlineCore &callback) noexcept
 
template<bool SymmetricTransfer, bool Shared>
Transfer< SymmetricTransferSetResultImpl () noexcept
 

Additional Inherited Members

- Protected Attributes inherited from yaclib::detail::BaseCore
yaclib_std::atomic_uintptr_t _callback
 

Detailed Description

template<typename V, typename T>
class yaclib::detail::ResultCore< V, T >

Definition at line 17 of file result_core.hpp.

Member Typedef Documentation

◆ Result

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

Definition at line 21 of file result_core.hpp.

◆ Trait

template<typename V , typename T >
using yaclib::detail::ResultCore< V, T >::Trait = T

Definition at line 20 of file result_core.hpp.

◆ Value

template<typename V , typename T >
using yaclib::detail::ResultCore< V, T >::Value = V

Definition at line 19 of file result_core.hpp.

Constructor & Destructor Documentation

◆ ResultCore() [1/2]

template<typename V , typename T >
yaclib::detail::ResultCore< V, T >::ResultCore ( )
inlinenoexcept

Definition at line 23 of file result_core.hpp.

References yaclib::detail::BaseCore::kEmpty.

◆ ResultCore() [2/2]

template<typename V , typename T >
template<typename... Args>
yaclib::detail::ResultCore< V, T >::ResultCore ( std::in_place_t  ,
Args &&...  args 
)
inlineexplicit

◆ ~ResultCore()

Member Function Documentation

◆ Get()

◆ Impl()

template<typename V , typename T >
template<bool SymmetricTransfer, bool Shared>
YACLIB_INLINE auto yaclib::detail::ResultCore< V, T >::Impl ( InlineCore caller)
inlineprotectednoexcept

◆ MoveOrConst()

template<typename V , typename T >
template<bool Condition>
decltype(auto) yaclib::detail::ResultCore< V, T >::MoveOrConst ( )
inline

◆ Retire()

◆ Store()

Member Data Documentation

◆ [union]

union { ... } yaclib::detail::ResultCore< V, T >

◆ _result

◆ _self

template<typename V , typename T >
Callback yaclib::detail::ResultCore< V, T >::_self

Definition at line 62 of file result_core.hpp.


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