Clementine
Classes | Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Protected Types | Protected Member Functions | Static Protected Member Functions | List of all members
asio::execution::detail::any_executor_base Class Reference
Inheritance diagram for asio::execution::detail::any_executor_base:
Inheritance graph
[legend]
Collaboration diagram for asio::execution::detail::any_executor_base:
Collaboration graph
[legend]

Classes

struct  object_fns
 
struct  prop_fns
 
struct  target_fns
 
struct  unspecified_bool_type_t
 

Public Types

typedef void(* unspecified_bool_type) (unspecified_bool_type_t)
 
typedef aligned_storage< sizeof(asio::detail::shared_ptr< void >), alignment_of< asio::detail::shared_ptr< void > >::value >::type object_type
 

Public Member Functions

template<ASIO_EXECUTION_EXECUTOR Executor>
 any_executor_base (Executor ex, false_type)
 
template<ASIO_EXECUTION_EXECUTOR Executor>
 any_executor_base (Executor other, true_type)
 
 any_executor_base (const any_executor_base &other) ASIO_NOEXCEPT
 
any_executor_baseoperator= (const any_executor_base &other) ASIO_NOEXCEPT
 
any_executor_baseoperator= (nullptr_t) ASIO_NOEXCEPT
 
void swap (any_executor_base &other) ASIO_NOEXCEPT
 
template<typename F >
void execute (ASIO_MOVE_ARG(F) f) const
 
template<typename Executor >
Executor * target ()
 
template<typename Executor >
const Executor * target () const
 
const std::type_info & target_type () const
 
 operator unspecified_bool_type () const ASIO_NOEXCEPT
 
bool operator! () const ASIO_NOEXCEPT
 

Static Public Member Functions

static void unspecified_bool_true (unspecified_bool_type_t)
 

Public Attributes

object_type object_
 
const object_fnsobject_fns_
 
void * target_
 
const target_fnstarget_fns_
 

Protected Types

typedef asio::detail::executor_function function
 
typedef asio::detail::executor_function_view function_view
 

Protected Member Functions

bool equality_helper (const any_executor_base &other) const ASIO_NOEXCEPT
 
template<typename Ex >
Ex & object ()
 
template<typename Ex >
const Ex & object () const
 

Static Protected Member Functions

static void destroy_void (any_executor_base &)
 
static void copy_void (any_executor_base &ex1, const any_executor_base &)
 
static void move_void (any_executor_base &ex1, any_executor_base &)
 
static const void * target_void (const any_executor_base &)
 
template<typename Obj >
static const object_fnsobject_fns_table (typename enable_if< is_same< Obj, void >::value >::type *=0)
 
static void destroy_shared (any_executor_base &ex)
 
static void copy_shared (any_executor_base &ex1, const any_executor_base &ex2)
 
static void move_shared (any_executor_base &ex1, any_executor_base &ex2)
 
static const void * target_shared (const any_executor_base &ex)
 
template<typename Obj >
static const object_fnsobject_fns_table (typename enable_if< is_same< Obj, asio::detail::shared_ptr< void > >::value >::type *=0)
 
template<typename Obj >
static void destroy_object (any_executor_base &ex)
 
template<typename Obj >
static void copy_object (any_executor_base &ex1, const any_executor_base &ex2)
 
template<typename Obj >
static void move_object (any_executor_base &ex1, any_executor_base &ex2)
 
template<typename Obj >
static const void * target_object (const any_executor_base &ex)
 
template<typename Obj >
static const object_fnsobject_fns_table (typename enable_if< !is_same< Obj, void >::value &&!is_same< Obj, asio::detail::shared_ptr< void > >::value >::type *=0)
 
static const std::type_info & target_type_void ()
 
static bool equal_void (const any_executor_base &, const any_executor_base &)
 
static void execute_void (const any_executor_base &, ASIO_MOVE_ARG(function))
 
static void blocking_execute_void (const any_executor_base &, function_view)
 
template<typename Ex >
static const target_fnstarget_fns_table (typename enable_if< is_same< Ex, void >::value >::type *=0)
 
template<typename Ex >
static const std::type_info & target_type_ex ()
 
template<typename Ex >
static bool equal_ex (const any_executor_base &ex1, const any_executor_base &ex2)
 
template<typename Ex >
static void execute_ex (const any_executor_base &ex, ASIO_MOVE_ARG(function) f)
 
template<typename Ex >
static void blocking_execute_ex (const any_executor_base &ex, function_view f)
 
template<typename Ex >
static const target_fnstarget_fns_table (bool is_always_blocking, typename enable_if< !is_same< Ex, void >::value >::type *=0)
 
static void query_fn_void (void *, const void *, const void *)
 
template<typename Ex , class Prop >
static void query_fn_non_void (void *, const void *ex, const void *prop, typename enable_if< asio::can_query< const Ex &, const Prop &>::value &&is_same< typename Prop::polymorphic_query_result_type, void >::value >::type *)
 
template<typename Ex , class Prop >
static void query_fn_non_void (void *, const void *, const void *, typename enable_if< !asio::can_query< const Ex &, const Prop &>::value &&is_same< typename Prop::polymorphic_query_result_type, void >::value >::type *)
 
template<typename Ex , class Prop >
static void query_fn_non_void (void *result, const void *ex, const void *prop, typename enable_if< asio::can_query< const Ex &, const Prop &>::value &&!is_same< typename Prop::polymorphic_query_result_type, void >::value &&is_reference< typename Prop::polymorphic_query_result_type >::value >::type *)
 
template<typename Ex , class Prop >
static void query_fn_non_void (void *, const void *, const void *, typename enable_if< !asio::can_query< const Ex &, const Prop &>::value &&!is_same< typename Prop::polymorphic_query_result_type, void >::value &&is_reference< typename Prop::polymorphic_query_result_type >::value >::type *)
 
template<typename Ex , class Prop >
static void query_fn_non_void (void *result, const void *ex, const void *prop, typename enable_if< asio::can_query< const Ex &, const Prop &>::value &&!is_same< typename Prop::polymorphic_query_result_type, void >::value &&is_scalar< typename Prop::polymorphic_query_result_type >::value >::type *)
 
template<typename Ex , class Prop >
static void query_fn_non_void (void *result, const void *, const void *, typename enable_if< !asio::can_query< const Ex &, const Prop &>::value &&!is_same< typename Prop::polymorphic_query_result_type, void >::value &&is_scalar< typename Prop::polymorphic_query_result_type >::value >::type *)
 
template<typename Ex , class Prop >
static void query_fn_non_void (void *result, const void *ex, const void *prop, typename enable_if< asio::can_query< const Ex &, const Prop &>::value &&!is_same< typename Prop::polymorphic_query_result_type, void >::value &&!is_reference< typename Prop::polymorphic_query_result_type >::value &&!is_scalar< typename Prop::polymorphic_query_result_type >::value >::type *)
 
template<typename Ex , class Prop >
static void query_fn_non_void (void *result, const void *, const void *,...)
 
template<typename Ex , class Prop >
static void query_fn_impl (void *result, const void *ex, const void *prop, typename enable_if< is_same< Ex, void >::value >::type *)
 
template<typename Ex , class Prop >
static void query_fn_impl (void *result, const void *ex, const void *prop, typename enable_if< !is_same< Ex, void >::value >::type *)
 
template<typename Ex , class Prop >
static void query_fn (void *result, const void *ex, const void *prop)
 
template<typename Poly , typename Ex , class Prop >
static Poly require_fn_impl (const void *, const void *, typename enable_if< is_same< Ex, void >::value >::type *)
 
template<typename Poly , typename Ex , class Prop >
static Poly require_fn_impl (const void *ex, const void *prop, typename enable_if< !is_same< Ex, void >::value &&Prop::is_requirable >::type *)
 
template<typename Poly , typename Ex , class Prop >
static Poly require_fn_impl (const void *, const void *,...)
 
template<typename Poly , typename Ex , class Prop >
static Poly require_fn (const void *ex, const void *prop)
 
template<typename Poly , typename Ex , class Prop >
static Poly prefer_fn_impl (const void *, const void *, typename enable_if< is_same< Ex, void >::value >::type *)
 
template<typename Poly , typename Ex , class Prop >
static Poly prefer_fn_impl (const void *ex, const void *prop, typename enable_if< !is_same< Ex, void >::value &&Prop::is_preferable >::type *)
 
template<typename Poly , typename Ex , class Prop >
static Poly prefer_fn_impl (const void *, const void *,...)
 
template<typename Poly , typename Ex , class Prop >
static Poly prefer_fn (const void *ex, const void *prop)
 

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