hpx/async_distributed/base_lco.hpp¶
See Public API for a list of names and headers that are part of the public HPX API.
-
template<>
structget_lva
<lcos::base_lco>¶ Public Static Functions
-
static constexpr lcos::base_lco *
call
(naming::address_type lva)¶
-
static constexpr lcos::base_lco *
-
template<>
structget_lva
<lcos::base_lco const>¶ Public Static Functions
-
static constexpr lcos::base_lco const *
call
(naming::address_type lva)
-
static constexpr lcos::base_lco const *
-
namespace
hpx
-
template<>
structget_lva
<lcos::base_lco> Public Static Functions
-
static constexpr lcos::base_lco *
call
(naming::address_type lva)
-
static constexpr lcos::base_lco *
-
template<>
structget_lva
<lcos::base_lco const> Public Static Functions
-
static constexpr lcos::base_lco const *
call
(naming::address_type lva)
-
static constexpr lcos::base_lco const *
-
namespace
lcos
-
class
base_lco
¶ - #include <base_lco.hpp>
The base_lco class is the common base class for all LCO’s implementing a simple set_event action
Subclassed by hpx::lcos::base_lco_with_value< Result, RemoteResult, ComponentTag >, hpx::lcos::base_lco_with_value< void, void, ComponentTag >
Public Types
-
typedef components::managed_component<base_lco>
wrapping_type
¶
Public Functions
-
virtual void
set_event
() = 0¶
-
virtual
~base_lco
()¶ Destructor, needs to be virtual to allow for clean destruction of derived objects
-
virtual void
finalize
()¶ finalize() will be called just before the instance gets destructed
-
void
set_event_nonvirt
()¶ The function set_event_nonvirt is called whenever a set_event_action is applied on a instance of a LCO. This function just forwards to the virtual function set_event, which is overloaded by the derived concrete LCO.
-
void
set_exception_nonvirt
(std::exception_ptr const &e)¶ The function set_exception is called whenever a set_exception_action is applied on a instance of a LCO. This function just forwards to the virtual function set_exception, which is overloaded by the derived concrete LCO.
- Parameters
e
: [in] The exception encapsulating the error to report to this LCO instance.
-
void
connect_nonvirt
(hpx::id_type const &id)¶ The function connect_nonvirt is called whenever a connect_action is applied on a instance of a LCO. This function just forwards to the virtual function connect, which is overloaded by the derived concrete LCO.
- Parameters
id
: [in] target id
-
void
disconnect_nonvirt
(hpx::id_type const &id) The function disconnect_nonvirt is called whenever a disconnect_action is applied on a instance of a LCO. This function just forwards to the virtual function disconnect, which is overloaded by the derived concrete LCO.
- Parameters
id
: [in] target id
-
HPX_DEFINE_COMPONENT_DIRECT_ACTION
(base_lco, set_event_nonvirt, set_event_action)¶ Each of the exposed functions needs to be encapsulated into an action type, allowing to generate all required boilerplate code for threads, serialization, etc.
The set_event_action may be used to unconditionally trigger any LCO instances, it carries no additional parameters. The set_exception_action may be used to transfer arbitrary error information from the remote site to the LCO instance specified as a continuation. This action carries 2 parameters:
- Parameters
std::exception_ptr
: [in] The exception encapsulating the error to report to this LCO instance.
-
set_exception_action
HPX_DEFINE_COMPONENT_DIRECT_ACTION
(base_lco, connect_nonvirt, connect_action)¶ The connect_action may be used to.
The set_exception_action may be used to
Public Static Functions
-
static components::component_type
get_component_type
()¶
-
static void
set_component_type
(components::component_type type)¶
-
typedef components::managed_component<base_lco>
-
class
-
template<>