hpx::components::component, hpx::components::component_base#

Defined in header hpx/components.hpp.

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

namespace hpx
namespace components

Typedefs

using instead = abstract_component_base<Component>#
template<typename Component = void>
class abstract_component_base#
template<typename Component, typename Derived = void>
class abstract_managed_component_base#
template<typename Component>
class component#
#include <components_base_fwd.hpp>

The component class wraps around a given component type, adding additional type aliases and constructors. It inherits from the specified component type.

template<typename Component = void>
class component_base#
#include <components_base_fwd.hpp>

component_base serves as a base class for components. It provides common functionality needed by components, such as address and ID retrieval. The template parameter Component specifies the derived component type.

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 an 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#