9#include "plugin_base.h"
11namespace rotor::plugin {
22 using plugin_base_t::plugin_base_t;
27 const std::type_index &
identity() const noexcept override;
30 void deactivate() noexcept override;
56 virtual
void on_unsubscription(message::unsubscription_t &) noexcept;
62 virtual
void on_unsubscription_external(message::unsubscription_external_t &) noexcept;
66 bool handle_shutdown(message::shutdown_request_t *message) noexcept override;
69 template <typename T> auto &access() noexcept;
72 void unsubscribe() noexcept;
77 bool ready_to_shutdown() noexcept;
intrusive_ptr_t< address_t > address_ptr_t
intrusive pointer for address
Definition address.hpp:57
intrusive_ptr_t< handler_base_t > handler_ptr_t
intrusive pointer for handler
Definition forward.hpp:26
intrusive_ptr_t< subscription_info_t > subscription_info_ptr_t
intrusive pointer for subscription_info_t
Definition subscription_point.h:127
universal primitive of concurrent computation
Definition actor_base.h:47
manages all actor subscriptions (i.e. from plugins or actor itself).
Definition lifetime.h:21
const std::type_index & identity() const noexcept override
returns pointer, which uniquely identifiess plugin type
static const std::type_index class_identity
Definition lifetime.h:25
base class for all actor plugins
Definition plugin_base.h:23
list of subscription_info_ptr_t with possibility to find via subscription_point_t
Definition subscription_point.h:132
pair of handler_base_t linked to particular address_t
Definition subscription_point.h:50
Holds and classifies message handlers on behalf of supervisor.
Definition subscription.h:30