hpx/components_base/server/abstract_migration_support.hpp¶
See Public API for a list of names and headers that are part of the public HPX API.
-
namespace
hpx
-
namespace
components
-
template<typename
BaseComponent
, typenameMutex
= hpx::spinlock>
structabstract_base_migration_support
: public BaseComponent¶ - #include <abstract_migration_support.hpp>
This hook has to be inserted into the derivation chain of any abstract_component_base for it to support migration.
Public Types
-
template<>
usingdecorates_action
= void¶
Public Functions
-
virtual
~abstract_base_migration_support
()¶
-
virtual void
pin
() = 0¶
-
virtual bool
unpin
() = 0¶
-
virtual void
mark_as_migrated
() = 0¶
-
virtual void
on_migrated
() = 0¶
Public Static Functions
-
template<typename
F
>
static threads::thread_function_typedecorate_action
(naming::address_type lva, F &&f)¶
Protected Functions
-
threads::thread_result_type
thread_function
(threads::thread_function_type &&f, components::pinned_ptr, threads::thread_restart_state state)¶
-
template<>
-
template<typename
Derived
, typenameBase
>
structabstract_migration_support
: public hpx::components::migration_support<Derived>, public Base¶ - #include <abstract_migration_support.hpp>
This hook has to be inserted into the derivation chain of any component for it to support migration.
Public Types
-
template<>
usingbase_type
= migration_support<Derived>¶
-
template<>
usingabstract_base_type
= Base¶
-
template<>
usingtype_holder
= Derived¶
-
template<>
usingbase_type_holder
= Base¶
Public Functions
-
abstract_migration_support
()¶
-
template<typename
T
, typename ...Ts
, typenameEnable
= std::enable_if_t<!std::is_same_v<std::decay_t<T>, abstract_migration_support>>>abstract_migration_support
(T &&t, Ts&&... ts)¶
-
~abstract_migration_support
()¶
-
constexpr void
finalize
()¶
-
void
mark_as_migrated
()¶
-
void
pin
()¶
-
bool
unpin
()¶
-
void
on_migrated
()¶
-
template<>
-
template<typename
-
namespace