rotor
Event loop friendly C++ actor micro-framework
 
Loading...
Searching...
No Matches
foreigners_support.h
1#pragma once
2
3//
4// Copyright (c) 2019-2023 Ivan Baidakou (basiliscos) (the dot dmol at gmail dot com)
5//
6// Distributed under the MIT Software License
7//
8
9#include "plugin_base.h"
10
11namespace rotor::plugin {
12
17struct ROTOR_API foreigners_support_plugin_t : public plugin_base_t {
18 using plugin_base_t::plugin_base_t;
19
21 static const std::type_index class_identity;
22
23 const std::type_index &identity() const noexcept override;
24
25 void activate(actor_base_t *actor) noexcept override;
26 void deactivate() noexcept override;
27
29 virtual void on_call(message::handler_call_t &message) noexcept;
30
32 virtual void on_unsubscription(message::commit_unsubscription_t &message) noexcept;
33
35 virtual void on_subscription_external(message::external_subscription_t &message) noexcept;
36
37 private:
38 subscription_container_t foreign_points;
39};
40
41} // namespace rotor::plugin
universal primitive of concurrent computation
Definition actor_base.h:47
allows non-local actors to subscribe on the local addresses of a supervisor.
Definition foreigners_support.h:17
static const std::type_index class_identity
Definition foreigners_support.h:21
const std::type_index & identity() const noexcept override
returns pointer, which uniquely identifiess plugin type
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