hpx/async_distributed/base_lco.hpp
hpx/async_distributed/base_lco.hpp#
See Public API for a list of names and headers that are part of the public HPX API.
-
namespace hpx
- template<> base_lco >
- template<> 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) HPX_DEFINE_COMPONENT_DIRECT_ACTION(base_lco
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) HPX_DEFINE_COMPONENT_DIRECT_ACTION(base_lco
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() noexcept#
-
static void set_component_type(components::component_type type)#
-
typedef components::managed_component<base_lco> wrapping_type#
-
class base_lco#