components_base

The contents of this module can be included with the header hpx/modules/components_base.hpp. These headers may be used by user-code but are not guaranteed stable (neither header location nor contents). You are using these at your own risk. If you wish to use non-public functionality from a module we strongly suggest only including the module header hpx/modules/components_base.hpp, not the particular header in which the functionality you would like to use is defined. See Public API for a list of names that are part of the public HPX API.

Header hpx/components_base/get_lva.hpp

template<typename Component>
struct get_lva<Component, typename std::enable_if<!traits::is_managed_component<Component>::value>::type>
#include <get_lva.hpp>

Public Static Functions

static Component *call(naming::address_type lva)
template<typename Component>
struct get_lva<Component, typename std::enable_if<traits::is_managed_component<Component>::value && !std::is_const<Component>::value>::type>
#include <get_lva.hpp>

Public Static Functions

static Component *call(naming::address_type lva)
template<typename Component>
struct get_lva<Component, typename std::enable_if<traits::is_managed_component<Component>::value && std::is_const<Component>::value>::type>
#include <get_lva.hpp>

Public Static Functions

static Component *call(naming::address_type lva)
namespace hpx
template<typename Component, typename Enable = void>
struct get_lva
#include <get_lva.hpp>

The get_lva template is a helper structure allowing to convert a local virtual address as stored in a local address (returned from the function resolver_client::resolve) to the address of the component implementing the action.

The default implementation uses the template argument Component to deduce the type wrapping the component implementing the action. This is used to get the needed address.

Template Parameters
  • Component: This is the type of the component implementing the action to execute.

template<typename Component>
struct get_lva<Component, typename std::enable_if<!traits::is_managed_component<Component>::value>::type>
#include <get_lva.hpp>

Public Static Functions

static Component *call(naming::address_type lva)
template<typename Component>
struct get_lva<Component, typename std::enable_if<traits::is_managed_component<Component>::value && !std::is_const<Component>::value>::type>
#include <get_lva.hpp>

Public Static Functions

static Component *call(naming::address_type lva)
template<typename Component>
struct get_lva<Component, typename std::enable_if<traits::is_managed_component<Component>::value && std::is_const<Component>::value>::type>
#include <get_lva.hpp>

Public Static Functions

static Component *call(naming::address_type lva)

Header hpx/components_base/pinned_ptr.hpp

template<typename Component>
struct create_helper<Component, typename std::enable_if<traits::component_decorates_action<Component>::value>::type>

Public Static Functions

static pinned_ptr call(naming::address_type lva)
namespace hpx
namespace components
class pinned_ptr
#include <pinned_ptr.hpp>

Public Functions

pinned_ptr()
pinned_ptr(pinned_ptr const &rhs)
pinned_ptr(pinned_ptr &&rhs)
pinned_ptr &operator=(pinned_ptr const &rhs)
pinned_ptr &operator=(pinned_ptr &&rhs)

Public Static Functions

template<typename Component>
static pinned_ptr create(naming::address_type lva)

Private Functions

template<typename Component>
pinned_ptr(naming::address_type lva, id<Component>)

Private Members

std::unique_ptr<detail::pinned_ptr_base> data_
template<typename Component, typename Enable = void>
struct create_helper

Public Static Functions

static pinned_ptr call(naming::address_type)
template<typename Component>
struct create_helper<Component, typename std::enable_if<traits::component_decorates_action<Component>::value>::type>

Public Static Functions

static pinned_ptr call(naming::address_type lva)

Header hpx/components_base/traits/component_pin_support.hpp

namespace hpx
namespace traits
template<typename Component, typename Enable = void>
struct component_pin_support
#include <component_pin_support.hpp>

Public Static Functions

static constexpr void pin(Component *p)
static constexpr bool unpin(Component *p)
static constexpr std::uint32_t pin_count(Component *p)

Header hpx/components_base/traits/is_component.hpp

namespace hpx
namespace traits
template<typename Component>
struct is_fixed_component : public std::integral_constant<bool, std::is_base_of<traits::detail::fixed_component_tag, Component>::value>
#include <is_component.hpp>

Subclassed by hpx::traits::is_fixed_component< Component const >

template<typename Component>
struct is_managed_component : public std::integral_constant<bool, std::is_base_of<traits::detail::managed_component_tag, Component>::value>
#include <is_component.hpp>

Subclassed by hpx::traits::is_managed_component< Component const >