base implementation for messages delivery plugin More...
#include <delivery.h>
Public Member Functions | |
virtual size_t | process () noexcept=0 |
main messages dispatcher interface | |
void | activate (actor_base_t *actor) noexcept override |
invoked by actor upon initialization. | |
plugin_base_t ()=default | |
default plugin ctor | |
plugin_base_t (const plugin_base_t &)=delete | |
copy ctor is not allowed | |
Public Member Functions inherited from rotor::plugin::plugin_base_t | |
plugin_base_t ()=default | |
default plugin ctor | |
plugin_base_t (const plugin_base_t &)=delete | |
copy ctor is not allowed | |
virtual const std::type_index & | identity () const noexcept=0 |
returns pointer, which uniquely identifiess plugin type | |
virtual void | deactivate () noexcept |
deactivates plugin from an actor | |
virtual bool | handle_init (message::init_request_t *message) noexcept |
polls plugin, whether it is done with initialization | |
virtual bool | handle_shutdown (message::shutdown_request_t *message) noexcept |
polls plugin, whether it is done with shutdown | |
virtual void | handle_start (message::start_trigger_t *message) noexcept |
polls plugin, whether it is done with start | |
virtual bool | handle_subscription (message::subscription_t &message) noexcept |
polls plugin, whether it is done with subscription | |
virtual bool | handle_unsubscription (const subscription_point_t &point, bool external) noexcept |
polls plugin, whether it is done with unsubscription | |
virtual bool | forget_subscription (const subscription_point_t &point) noexcept |
remove subscription point from internal storage | |
virtual void | forget_subscription (const subscription_info_ptr_t &info) noexcept |
commits unsubscription via supervisor | |
template<typename Plugin , typename Fn > | |
void | with_casted (Fn &&fn, config_phase_t desired_phase=config_phase_t::INITIALIZING) noexcept |
invokes the callback if plugin type and phase mach | |
reaction_underlying_t | get_reaction () const noexcept |
returns the current set of plugin reactions | |
void | reaction_on (reaction_t value) noexcept |
turns on the specified reaction of the plugin | |
void | reaction_off (reaction_t value) noexcept |
turns off the specified reaction of the plugin | |
template<typename T > | |
auto & | access () noexcept |
generic non-public fields accessor | |
Protected Attributes | |
messages_queue_t * | queue = nullptr |
non-owning raw pointer of supervisor's messages queue | |
address_t * | address = nullptr |
non-owning raw pointer to supervisor's main address | |
subscription_t * | subscription_map |
non-owning raw pointer to supervisor's subscriptions map | |
const message_stringifier_t * | stringifier |
non-owning raw pointer to system's stringifier | |
Protected Attributes inherited from rotor::plugin::plugin_base_t | |
actor_base_t * | actor |
non-owning actor pointer | |
Additional Inherited Members | |
Public Types inherited from rotor::plugin::plugin_base_t | |
enum | reaction_t : unsigned { INIT = 0b00000001 , SHUTDOWN = 0b00000010 , SUBSCRIPTION = 0b00000100 , START = 0b00001000 } |
possible plugin's reactions on actor lifetime events | |
using | reaction_underlying_t = std::underlying_type_t< reaction_t > |
the underlying type of reaction_t | |
Static Public Attributes inherited from rotor::plugin::plugin_base_t | |
static constexpr reaction_underlying_t | REACTION_MASK = 0b00001111 |
the bit mask for all reactions enabled | |
Protected Member Functions inherited from rotor::plugin::plugin_base_t | |
template<typename Handler > | |
subscription_info_ptr_t | subscribe (Handler &&handler, const address_ptr_t &address) noexcept |
subscribes plugin to the custom plugin handler on the specified address | |
template<typename Handler > | |
subscription_info_ptr_t | subscribe (Handler &&handler) noexcept |
subscribes plugin to the custom plugin handler on the main actor address | |
extended_error_ptr_t | make_error (const std::error_code &ec, const extended_error_ptr_t &next={}, const message_ptr_t &request={}) noexcept |
makes an error within the context of actor | |
base implementation for messages delivery plugin
|
overridevirtualnoexcept |
invoked by actor upon initialization.
It it responsible for setting up reactions and further installation, e.g. messages subscriptions and may calling back actor's configuration (which can be postponed).
Before the activate is invoked, the plugin is in PREINIT
phase, after the activate is called, the plugin is in INITIALIZING
phase. This might be useful for early/late (double) plugin configuration in actor.
Reimplemented from rotor::plugin::plugin_base_t.
|
pure virtualnoexcept |
main messages dispatcher interface
Implemented in rotor::plugin::delivery_plugin_t< LocalDelivery >, rotor::plugin::delivery_plugin_t< LocalDelivery >, and rotor::plugin::delivery_plugin_t< LocalDelivery >.