See Public API for a list of names and headers that are part of the public HPX API.

namespace hpx
namespace components


using instead = abstract_component_base<Component>#
template<typename Component = detail::this_type>
class abstract_component_base#
template<typename Component, typename Derived = detail::this_type>
class abstract_managed_component_base#
template<typename Component>
class component#
template<typename Component = detail::this_type>
class component_base#
template<typename Component>
class fixed_component#
template<typename Component>
class fixed_component_base#
template<typename Component, typename Derived>
class managed_component#
#include <managed_component_base.hpp>

The managed_component template is used as a indirection layer for components allowing to gracefully handle the access to non-existing components.

Additionally it provides memory management capabilities for the wrapping instances, and it integrates the memory management with the AGAS service. Every instance of a managed_component gets assigned a global id. The provided memory management allocates the managed_component instances from a special heap, ensuring fast allocation and avoids a full network round trip to the AGAS service for each of the allocated instances.

Template Parameters
  • Component – Component type

  • Derived – Most derived component type

template<typename Component, typename Wrapper, typename CtorPolicy, typename DtorPolicy>
class managed_component_base#
namespace components