Go to the documentation of this file.
9 #ifndef EAGINE_MESSAGE_BUS_TYPES_HPP
10 #define EAGINE_MESSAGE_BUS_TYPES_HPP
12 #include "../identifier_t.hpp"
13 #include "../reflect/map_data_members.hpp"
14 #include "../types.hpp"
40 template <
typename Selector>
43 using S = router_topology_info;
44 return make_data_member_mapping<
50 {
"router_id", &S::router_id},
51 {
"remote_id", &S::remote_id},
52 {
"instance_id", &S::instance_id},
53 {
"connect_kind", &S::connect_kind});
69 template <
typename Selector>
72 using S = bridge_topology_info;
73 return make_data_member_mapping<
78 {
"bridge_id", &S::bridge_id},
79 {
"opposite_id", &S::opposite_id},
80 {
"instance_id", &S::instance_id});
93 template <
typename Selector>
96 using S = endpoint_topology_info;
97 return make_data_member_mapping<S, identifier_t, process_instance_id_t>(
98 {
"endpoint_id", &S::endpoint_id}, {
"instance_id", &S::instance_id});
118 auto tie() const noexcept {
124 operator!=(
const endpoint_info& l,
const endpoint_info& r) noexcept
126 return l.tie() != r.tie();
130 template <
typename Selector>
132 data_member_mapping(type_identity<endpoint_info>, Selector) noexcept {
134 return make_data_member_mapping<
141 {
"app_name", &S::app_name},
142 {
"display_name", &S::display_name},
143 {
"description", &S::description},
144 {
"is_router_node", &S::is_router_node},
145 {
"is_bridge_node", &S::is_bridge_node});
150 #endif // EAGINE_MESSAGE_BUS_TYPES_HPP
process_instance_id_t instance_id
The endpoint process instance id.
Definition: types.hpp:90
identifier_t router_id
The router message bus id.
Definition: types.hpp:28
identifier_t opposite_id
The remote node message bus id.
Definition: types.hpp:63
bool is_router_node
Indicates if the endpoint is a router control node.
Definition: types.hpp:113
Structure holding part of router connection topology information.
Definition: types.hpp:26
identifier_t remote_id
The remote node message bus id.
Definition: types.hpp:31
std::uint32_t process_instance_id_t
Unique process identifier type (does not necessarily match to OS PID).
Definition: identifier_t.hpp:22
@ endpoint_info
The endpoint information has appeared or changed.
std::string app_name
The application name.
Definition: types.hpp:104
process_instance_id_t instance_id
The router process instance id.
Definition: types.hpp:34
std::uint32_t message_sequence_t
Alias for message sequence number type.
Definition: types.hpp:22
bool is_bridge_node
Indicates if the endpoint is a bridge control node.
Definition: types.hpp:116
Message bus endpoint information.
Definition: types.hpp:102
Message bus code is placed in this namespace.
Definition: eagine.hpp:58
identifier_t endpoint_id
The endpoint message bus id.
Definition: types.hpp:87
connection_kind
Message bus connection kind bits enumeration.
Definition: connection_kind.hpp:21
Structure holding part of endpoint connection topology information.
Definition: types.hpp:85
std::string description
User-readable description of the endpoint.
Definition: types.hpp:110
connection_kind connect_kind
The connection kind.
Definition: types.hpp:37
Structure holding part of bridge connection topology information.
Definition: types.hpp:58
std::string display_name
User-readable display name of the endpoint.
Definition: types.hpp:107
std::uint64_t identifier_t
The underlying integer type for eagine::identifier.
Definition: identifier_t.hpp:19
Template type used mostly for function type-tag dispatching.
Definition: type_identity.hpp:19
process_instance_id_t instance_id
The bridge process instance id.
Definition: types.hpp:66
identifier_t bridge_id
The bridge message bus id.
Definition: types.hpp:60