hpx::components::component, hpx::components::component_base
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#
-
using instead = abstract_component_base<Component>#
-
namespace components