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, typename Mutex = hpx::spinlock>
struct abstract_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<>
using decorates_action = void

Public Functions

virtual ~abstract_base_migration_support()
virtual void pin() = 0
virtual bool unpin() = 0
virtual std::uint32_t pin_count() const = 0
virtual void mark_as_migrated() = 0
virtual hpx::future<void> mark_as_migrated(hpx::id_type const &to_migrate) = 0
virtual void on_migrated() = 0

Public Static Functions

template<typename F>
static threads::thread_function_type decorate_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)

Private Types

template<>
using base_type = BaseComponent
template<>
using this_component_type = typename base_type::this_component_type
template<typename Derived, typename Base>
struct abstract_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<>
using base_type = migration_support<Derived>
template<>
using abstract_base_type = Base
template<>
using wrapping_type = typename base_type::wrapping_type
template<>
using wrapped_type = typename base_type::wrapped_type
template<>
using type_holder = Derived
template<>
using base_type_holder = Base

Public Functions

abstract_migration_support()
template<typename T, typename ...Ts, typename Enable = 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()
hpx::future<void> mark_as_migrated(hpx::id_type const &to_migrate)
void mark_as_migrated()
std::uint32_t pin_count() const
void pin()
bool unpin()
void on_migrated()