YACLib
C++ library for concurrent tasks execution
Loading...
Searching...
No Matches
core.hpp File Reference
Include dependency graph for core.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  yaclib::detail::NoResultCore
 
class  yaclib::detail::Core< Ret, Arg, E, Func, Type, kAsync >
 
struct  yaclib::detail::Return< V, E, Func, 1 >
 
struct  yaclib::detail::Return< V, E, Func, 2 >
 
struct  yaclib::detail::Return< V, E, Func, 3 >
 
struct  yaclib::detail::Return< V, E, Func, 4 >
 
struct  yaclib::detail::Return< V, E, Func, 5 >
 

Namespaces

namespace  yaclib
 
namespace  yaclib::detail
 

Typedefs

template<CoreType Type, typename V , typename E >
using yaclib::detail::ResultCoreT = std::conditional_t< IsDetach(Type), NoResultCore, std::conditional_t< IsToShared(Type), SharedCore< V, E >, UniqueCore< V, E > > >
 

Enumerations

enum class  yaclib::detail::CoreType : unsigned char {
  yaclib::detail::None = 0 , yaclib::detail::Run = 1 << 0 , yaclib::detail::Detach = 1 << 1 , yaclib::detail::FromUnique = 1 << 2 ,
  yaclib::detail::FromShared = 1 << 3 , yaclib::detail::ToUnique = 1 << 4 , yaclib::detail::ToShared = 1 << 5 , yaclib::detail::Call = 1 << 6 ,
  yaclib::detail::Lazy = 1 << 7
}
 
enum class  yaclib::detail::AsyncType { yaclib::detail::None , yaclib::detail::Unique , yaclib::detail::Shared }
 

Functions

InlineCoreyaclib::detail::MakeDrop () noexcept
 
constexpr CoreType yaclib::detail::operator| (CoreType a, CoreType b)
 
constexpr CoreType yaclib::detail::operator& (CoreType a, CoreType b)
 
constexpr bool yaclib::detail::IsRun (CoreType type)
 
constexpr bool yaclib::detail::IsDetach (CoreType type)
 
constexpr bool yaclib::detail::IsFromUnique (CoreType type)
 
constexpr bool yaclib::detail::IsFromShared (CoreType type)
 
constexpr bool yaclib::detail::IsToShared (CoreType type)
 
constexpr bool yaclib::detail::IsToUnique (CoreType type)
 
constexpr bool yaclib::detail::IsCall (CoreType type)
 
constexpr bool yaclib::detail::IsLazy (CoreType type)
 
YACLIB_INLINE BaseCoreyaclib::detail::MoveToCaller (BaseCore *head) noexcept
 
template<typename V , typename E , typename Func >
constexpr char yaclib::detail::Tag () noexcept
 
template<CoreType CoreT, typename Arg , typename E , typename Func >
autoyaclib::detail::MakeCore (Func &&f)
 
template<CoreType CoreT, bool On, typename FromCorePtr , typename Func >
auto yaclib::detail::SetCallback (FromCorePtr &&core, IExecutor *executor, Func &&f)