Classes | |
| struct | eagine::msgbus::acceptor |
| Interface for message bus connection acceptors. More... | |
| struct | eagine::msgbus::acceptor_user |
| Interface for classes that can use message bus connection acceptors. More... | |
| class | eagine::msgbus::actor< N, Subscriber > |
| Base class for message bus actors with fixed number of message handlers. More... | |
| struct | eagine::msgbus::connection_factory |
| Interface for message bus connection and acceptor factories. More... | |
| class | eagine::msgbus::connection_setup |
| Class setting up connections based from configuration. More... | |
| struct | eagine::msgbus::connection_info |
| Basic interface for retrieving message bus connection information. More... | |
| struct | eagine::msgbus::connection |
| Interface for message bus connections. More... | |
| struct | eagine::msgbus::connection_user |
| Interface for classes that can use message bus connections. More... | |
| class | eagine::msgbus::context |
| Class holding common message bus utility objects. More... | |
| class | eagine::msgbus::direct_connection_state |
| Common shared state for a direct connection. More... | |
| class | eagine::msgbus::direct_connection_address |
| Class acting as the "address" of a direct connection. More... | |
| class | eagine::msgbus::direct_connection_info< Base > |
| Implementation of the connection_info interface for direct connections. More... | |
| class | eagine::msgbus::direct_client_connection |
| Implementation of client-side direct connection. More... | |
| class | eagine::msgbus::direct_server_connection |
| Implementation of server-side direct connection. More... | |
| class | eagine::msgbus::direct_acceptor |
| Implementation of acceptor for direct connections. More... | |
| class | eagine::msgbus::direct_connection_factory |
| Implementation of connection_factory for direct connections. More... | |
| class | eagine::msgbus::endpoint |
| Message bus client endpoint that can send and receive messages. More... | |
| class | eagine::msgbus::friend_of_endpoint |
| Base for classes that need access to enpoint internal functionality. More... | |
| class | eagine::msgbus::promise< T > |
| Message bus promise class. More... | |
| class | eagine::msgbus::future< T > |
| Message bus future class. More... | |
| class | eagine::msgbus::pending_promises< T > |
| Class that makes new and tracks existing pending message bus promises. More... | |
| struct | eagine::msgbus::message_handler_map< MemFuncConst > |
| Represents a mapping from a message type id to member function constant. More... | |
| struct | eagine::msgbus::static_message_handler_map< MessageId, MemFuncConst > |
| Represents a mapping from a message type id to member function constant. More... | |
| class | eagine::msgbus::loopback_connection |
| Loopback implementation of connection. Used mainly for testing and development. More... | |
| struct | eagine::msgbus::message_info |
| Structure storing information about a sigle message bus message. More... | |
| struct | eagine::msgbus::message_view |
| Combines message information and a non-owning view to message content. More... | |
| class | eagine::msgbus::stored_message |
| Combines message information and an owned message content buffer. More... | |
| class | eagine::msgbus::message_storage |
| Class storing message bus messages. More... | |
| class | eagine::msgbus::posix_mqueue |
| Class wrapping a POSIX message queue. More... | |
| class | eagine::msgbus::posix_mqueue_connection_info< Base > |
| Implementation of the connection_info interface for POSIX queue connection. More... | |
| class | eagine::msgbus::posix_mqueue_connection |
| Implementation of connection on top of POSIX message queues. More... | |
| class | eagine::msgbus::posix_mqueue_connector |
| Implementation of connection on top of POSIX message queues. More... | |
| class | eagine::msgbus::posix_mqueue_acceptor |
| Implementation of acceptor on top of POSIX message queues. More... | |
| class | eagine::msgbus::posix_mqueue_connection_factory |
| Implementation of connection_factory for POSIX message queue connections. More... | |
| class | eagine::msgbus::registry |
| Class combining a local bus router and a set of endpoints. More... | |
| struct | eagine::msgbus::remote_node_changes |
| Class providin and manipulating information about remote node changes. More... | |
| class | eagine::msgbus::remote_node_tracker |
| Class tracking the state of remote message bus nodes. More... | |
| class | eagine::msgbus::remote_host |
| Class providing information about a remote host of bus nodes. More... | |
| class | eagine::msgbus::remote_host_state |
| Class manipulating information about a remote host of bus nodes. More... | |
| class | eagine::msgbus::remote_instance |
| Class providing information about a remote instance running bus nodes. More... | |
| class | eagine::msgbus::remote_instance_state |
| Class manipulating information about a remote instance running bus nodes. More... | |
| class | eagine::msgbus::remote_node |
| Class providing information about a remote bus node. More... | |
| class | eagine::msgbus::remote_node_state |
| Class manipulating information about a remote bus node. More... | |
| class | eagine::msgbus::node_connection |
| Class providing information about connection between bus nodes. More... | |
| class | eagine::msgbus::node_connection_state |
| Class manipulating information about connection between bus nodes. More... | |
| class | eagine::msgbus::node_connections |
| Class providing information about connections from the perspective of a node. More... | |
| class | eagine::msgbus::router_address |
| Class loading and managing message bus router address(es). More... | |
| class | eagine::msgbus::service_composition< Base > |
| Helper mixin class for message bus services composed of several parts. More... | |
| struct | eagine::msgbus::service_interface |
| Interface for message bus services. More... | |
| class | eagine::msgbus::subscriber_base |
| Base class for message bus subscribers. More... | |
| class | eagine::msgbus::static_subscriber< N > |
| Template for subscribers with predefined count of handled message types. More... | |
| class | eagine::msgbus::subscriber |
| Template for subscribers with variable count of handled message types. More... | |
| struct | eagine::msgbus::router_topology_info |
| Structure holding part of router connection topology information. More... | |
| struct | eagine::msgbus::bridge_topology_info |
| Structure holding part of bridge connection topology information. More... | |
| struct | eagine::msgbus::endpoint_topology_info |
| Structure holding part of endpoint connection topology information. More... | |
Macros | |
| #define | EAGINE_MSG_MAP(CLASS_ID, METHOD_ID, CLASS, METHOD) |
| Constructs an instance of static message handler map. More... | |
Typedefs | |
| template<connection_addr_kind Kind> | |
| using | eagine::msgbus::connection_addr_kind_tag = std::integral_constant< connection_addr_kind, Kind > |
| Tag template alias for specifying connection address kind. | |
| template<connection_protocol Proto> | |
| using | eagine::msgbus::connection_protocol_tag = std::integral_constant< connection_protocol, Proto > |
| Tag template alias for specifying connection protocol kind. More... | |
| using | eagine::msgbus::stream_protocol_tag = connection_protocol_tag< connection_protocol::stream > |
| Tag type for specifying stream connection protocols. More... | |
| using | eagine::msgbus::datagram_protocol_tag = connection_protocol_tag< connection_protocol::datagram > |
| Tag type for specifying datagram connection protocols. More... | |
| using | eagine::msgbus::connection_kinds = bitfield< connection_kind > |
| Alias for connection kind bitfield. | |
| using | eagine::msgbus::message_timestamp = std::chrono::steady_clock::time_point |
| Alias for message timestamp type. More... | |
| using | eagine::msgbus::message_age = std::chrono::duration< float > |
| Alias for message age type. More... | |
| using | eagine::msgbus::message_crypto_flags = bitfield< message_crypto_flag > |
| Alias for message crypto flags bitfield. | |
| using | eagine::msgbus::ipv4_port = unsigned short int |
| Alias for IPv4 port number value type. | |
| using | eagine::msgbus::default_serializer_backend = string_serializer_backend |
| Alias for default serialization backend for bus messages. More... | |
| using | eagine::msgbus::default_deserializer_backend = string_deserializer_backend |
| Alias for default deserialization backend for bus messages. More... | |
| using | eagine::msgbus::message_sequence_t = std::uint32_t |
| Alias for message sequence number type. | |
| using | eagine::msgbus::verification_bits = bitfield< verification_bit > |
| Alias for a bus message verification bitfield. | |
Functions | |
| static constexpr auto | eagine::msgbus::is_special_message (message_id msg_id) noexcept |
| Indicates if the specified message id denotes a special message bus message. | |
| static constexpr auto | eagine::msgbus::broadcast_endpoint_id () noexcept -> identifier_t |
| Returns the special broadcase message bus endpoint id. | |
| static auto | eagine::msgbus::parse_ipv4_addr (string_view addr_str) -> std::tuple< std::string, ipv4_port > |
| Parses a IPv4 hostname:port pair,. | |
| template<typename T > | |
| auto | eagine::msgbus::default_serialize_buffer_for (const T &inst) |
| Returns a suitable buffer for the serialization of the specified object. | |
| template<typename Backend > | |
| auto | eagine::msgbus::serialize_message_header (message_id msg_id, const message_view &msg, Backend &backend) -> std::enable_if_t< std::is_base_of_v< serializer_backend, Backend >, serialization_errors > |
| Serializes a bus message header with the specified serializer backend. More... | |
| template<typename Backend > | |
| auto | eagine::msgbus::serialize_message (message_id msg_id, const message_view &msg, Backend &backend) -> std::enable_if_t< std::is_base_of_v< serializer_backend, Backend >, serialization_errors > |
| Serializes a bus message with the specified serializer backend. More... | |
| template<typename Backend > | |
| auto | eagine::msgbus::deserialize_message_header (identifier &class_id, identifier &method_id, stored_message &msg, Backend &backend) -> std::enable_if_t< std::is_base_of_v< deserializer_backend, Backend >, deserialization_errors > |
| Deserializes a bus message header with the specified deserializer backend. More... | |
| template<typename Backend > | |
| auto | eagine::msgbus::deserialize_message (identifier &class_id, identifier &method_id, stored_message &msg, Backend &backend) -> std::enable_if_t< std::is_base_of_v< deserializer_backend, Backend >, deserialization_errors > |
| Deserializes a bus message with the specified deserializer backend. More... | |
| template<typename Backend > | |
| auto | eagine::msgbus::deserialize_message (message_id &msg_id, stored_message &msg, Backend &backend) -> std::enable_if_t< std::is_base_of_v< deserializer_backend, Backend >, deserialization_errors > |
| Deserializes a bus message with the specified deserializer backend. More... | |
| auto | eagine::msgbus::default_serialize_message_type (message_id msg_id, memory::block blk) |
| Default-serializes the specified message id into a memory block. More... | |
| auto | eagine::msgbus::default_deserialize_message_type (message_id &msg_id, memory::const_block blk) |
| Default-deserializes the specified message id from a memory block. More... | |
Variables | |
| constexpr const span_size_t | eagine::msgbus::min_connection_data_size |
| The minimum guaranteed block size that can be sent through bus connections. | |
| #define EAGINE_MSG_MAP | ( | CLASS_ID, | |
| METHOD_ID, | |||
| CLASS, | |||
| METHOD | |||
| ) |
Constructs an instance of static message handler map.
| using eagine::msgbus::connection_protocol_tag = typedef std::integral_constant<connection_protocol, Proto> |
Tag template alias for specifying connection protocol kind.
| using eagine::msgbus::datagram_protocol_tag = typedef connection_protocol_tag<connection_protocol::datagram> |
Tag type for specifying datagram connection protocols.
Alias for default deserialization backend for bus messages.
| using eagine::msgbus::default_serializer_backend = typedef string_serializer_backend |
Alias for default serialization backend for bus messages.
| using eagine::msgbus::message_age = typedef std::chrono::duration<float> |
Alias for message age type.
| using eagine::msgbus::message_timestamp = typedef std::chrono::steady_clock::time_point |
Alias for message timestamp type.
| using eagine::msgbus::stream_protocol_tag = typedef connection_protocol_tag<connection_protocol::stream> |
Tag type for specifying stream connection protocols.
|
strong |
Message bus connection address kind enumeration.
| Enumerator | |
|---|---|
| none | No public address. |
| filepath | Filesystem path. |
| ipv4 | PIv4 address. |
|
strong |
Message bus connection kind bits enumeration.
|
strong |
Message bus connection protocol.
| Enumerator | |
|---|---|
| stream | Reliable stream protocol. |
| datagram | Datagram protocol. |
| message | Message protocol. |
|
strong |
Message cryptography-related flag bits enumeration.
| Enumerator | |
|---|---|
| asymmetric | Assymetric cipher is used (symmetric otherwise). |
| signed_header | The message header is signed. |
| signed_content | The message content is signed. |
|
strong |
|
strong |
|
strong |
Enumeration of changes tracked about remote message bus nodes.
| Enumerator | |
|---|---|
| kind | The node kind has appeared or changed.
|
| host_id | The host identifier has appeared or changed. |
| host_info | The host information has appeared or changed. |
| build_info | The build information has appeared or changed. |
| endpoint_info | The endpoint information has appeared or changed. |
| methods_added | New remotly callable methods have been added. |
| methods_removed | New remotly callable methods have been removed. |
| started_responding | Node started responding to pings. |
| stopped_responding | Node stopped responding to pings. |
| hardware_config | The hardware configuration information has appeared or changed. |
| sensor_values | New sensor values have appeared or changed. |
| connection_info | The bus connection information has appeared or changed. |
| instance_id | The endpoint instance id has changed. |
|
strong |
Bus message verification bits enumeration,.
|
inline |
Default-deserializes the specified message id from a memory block.
|
inline |
Default-serializes the specified message id into a memory block.
| auto eagine::msgbus::deserialize_message | ( | identifier & | class_id, |
| identifier & | method_id, | ||
| stored_message & | msg, | ||
| Backend & | backend | ||
| ) | -> std::enable_if_t< std::is_base_of_v<deserializer_backend, Backend>, deserialization_errors> |
Deserializes a bus message with the specified deserializer backend.
Referenced by eagine::msgbus::deserialize_message().
| auto eagine::msgbus::deserialize_message | ( | message_id & | msg_id, |
| stored_message & | msg, | ||
| Backend & | backend | ||
| ) | -> std::enable_if_t< std::is_base_of_v<deserializer_backend, Backend>, deserialization_errors> |
Deserializes a bus message with the specified deserializer backend.
| auto eagine::msgbus::deserialize_message_header | ( | identifier & | class_id, |
| identifier & | method_id, | ||
| stored_message & | msg, | ||
| Backend & | backend | ||
| ) | -> std::enable_if_t< std::is_base_of_v<deserializer_backend, Backend>, deserialization_errors> |
Deserializes a bus message header with the specified deserializer backend.
Referenced by eagine::msgbus::deserialize_message().
| auto eagine::msgbus::serialize_message | ( | message_id | msg_id, |
| const message_view & | msg, | ||
| Backend & | backend | ||
| ) | -> std::enable_if_t< std::is_base_of_v<serializer_backend, Backend>, serialization_errors> |
Serializes a bus message with the specified serializer backend.
Referenced by eagine::msgbus::posix_mqueue_connection::send().
| auto eagine::msgbus::serialize_message_header | ( | message_id | msg_id, |
| const message_view & | msg, | ||
| Backend & | backend | ||
| ) | -> std::enable_if_t< std::is_base_of_v<serializer_backend, Backend>, serialization_errors> |
Serializes a bus message header with the specified serializer backend.
Referenced by eagine::msgbus::serialize_message().