Message bus code is placed in this namespace. More...
Classes | |
struct | acceptor |
Interface for message bus connection acceptors. More... | |
struct | acceptor_user |
Interface for classes that can use message bus connection acceptors. More... | |
class | actor |
Base class for message bus actors with fixed number of message handlers. More... | |
struct | bridge_topology_info |
Structure holding part of bridge connection topology information. More... | |
struct | connection |
Interface for message bus connections. More... | |
struct | connection_factory |
Interface for message bus connection and acceptor factories. More... | |
struct | connection_info |
Basic interface for retrieving message bus connection information. More... | |
class | connection_setup |
Class setting up connections based from configuration. More... | |
struct | connection_user |
Interface for classes that can use message bus connections. More... | |
class | context |
Class holding common message bus utility objects. More... | |
class | direct_acceptor |
Implementation of acceptor for direct connections. More... | |
class | direct_client_connection |
Implementation of client-side direct connection. More... | |
class | direct_connection_address |
Class acting as the "address" of a direct connection. More... | |
class | direct_connection_factory |
Implementation of connection_factory for direct connections. More... | |
class | direct_connection_info |
Implementation of the connection_info interface for direct connections. More... | |
class | direct_connection_state |
Common shared state for a direct connection. More... | |
class | direct_server_connection |
Implementation of server-side direct connection. More... | |
class | endpoint |
Message bus client endpoint that can send and receive messages. More... | |
struct | endpoint_info |
Message bus endpoint information. More... | |
struct | endpoint_topology_info |
Structure holding part of endpoint connection topology information. More... | |
class | friend_of_endpoint |
Base for classes that need access to enpoint internal functionality. More... | |
class | future |
Message bus future class. More... | |
class | loopback_connection |
Loopback implementation of connection. Used mainly for testing and development. More... | |
struct | message_handler_map |
Represents a mapping from a message type id to member function constant. More... | |
struct | message_info |
Structure storing information about a sigle message bus message. More... | |
class | message_storage |
Class storing message bus messages. More... | |
struct | message_view |
Combines message information and a non-owning view to message content. More... | |
class | node_connection |
Class providing information about connection between bus nodes. More... | |
class | node_connection_state |
Class manipulating information about connection between bus nodes. More... | |
class | node_connections |
Class providing information about connections from the perspective of a node. More... | |
class | pending_promises |
Class that makes new and tracks existing pending message bus promises. More... | |
class | posix_mqueue |
Class wrapping a POSIX message queue. More... | |
class | posix_mqueue_acceptor |
Implementation of acceptor on top of POSIX message queues. More... | |
class | posix_mqueue_connection |
Implementation of connection on top of POSIX message queues. More... | |
class | posix_mqueue_connection_factory |
Implementation of connection_factory for POSIX message queue connections. More... | |
class | posix_mqueue_connection_info |
Implementation of the connection_info interface for POSIX queue connection. More... | |
class | posix_mqueue_connector |
Implementation of connection on top of POSIX message queues. More... | |
class | promise |
Message bus promise class. More... | |
class | registry |
Class combining a local bus router and a set of endpoints. More... | |
class | remote_host |
Class providing information about a remote host of bus nodes. More... | |
class | remote_host_state |
Class manipulating information about a remote host of bus nodes. More... | |
class | remote_instance |
Class providing information about a remote instance running bus nodes. More... | |
class | remote_instance_state |
Class manipulating information about a remote instance running bus nodes. More... | |
class | remote_node |
Class providing information about a remote bus node. More... | |
struct | remote_node_changes |
Class providin and manipulating information about remote node changes. More... | |
class | remote_node_state |
Class manipulating information about a remote bus node. More... | |
class | remote_node_tracker |
Class tracking the state of remote message bus nodes. More... | |
class | router_address |
Class loading and managing message bus router address(es). More... | |
struct | router_topology_info |
Structure holding part of router connection topology information. More... | |
class | service_composition |
Helper mixin class for message bus services composed of several parts. More... | |
struct | service_interface |
Interface for message bus services. More... | |
struct | static_message_handler_map |
Represents a mapping from a message type id to member function constant. More... | |
class | static_subscriber |
Template for subscribers with predefined count of handled message types. More... | |
class | stored_message |
Combines message information and an owned message content buffer. More... | |
class | subscriber |
Template for subscribers with variable count of handled message types. More... | |
class | subscriber_base |
Base class for message bus subscribers. More... | |
Typedefs | |
template<connection_addr_kind Kind> | |
using | connection_addr_kind_tag = std::integral_constant< connection_addr_kind, Kind > |
Tag template alias for specifying connection address kind. | |
template<connection_protocol Proto> | |
using | connection_protocol_tag = std::integral_constant< connection_protocol, Proto > |
Tag template alias for specifying connection protocol kind. More... | |
using | stream_protocol_tag = connection_protocol_tag< connection_protocol::stream > |
Tag type for specifying stream connection protocols. More... | |
using | datagram_protocol_tag = connection_protocol_tag< connection_protocol::datagram > |
Tag type for specifying datagram connection protocols. More... | |
using | connection_kinds = bitfield< connection_kind > |
Alias for connection kind bitfield. | |
using | message_timestamp = std::chrono::steady_clock::time_point |
Alias for message timestamp type. More... | |
using | message_age = std::chrono::duration< float > |
Alias for message age type. More... | |
using | message_crypto_flags = bitfield< message_crypto_flag > |
Alias for message crypto flags bitfield. | |
using | ipv4_port = unsigned short int |
Alias for IPv4 port number value type. | |
using | default_serializer_backend = string_serializer_backend |
Alias for default serialization backend for bus messages. More... | |
using | default_deserializer_backend = string_deserializer_backend |
Alias for default deserialization backend for bus messages. More... | |
using | message_sequence_t = std::uint32_t |
Alias for message sequence number type. | |
using | verification_bits = bitfield< verification_bit > |
Alias for a bus message verification bitfield. | |
Functions | |
static constexpr auto | is_special_message (message_id msg_id) noexcept |
Indicates if the specified message id denotes a special message bus message. | |
static constexpr auto | broadcast_endpoint_id () noexcept -> identifier_t |
Returns the special broadcase message bus endpoint id. | |
static auto | parse_ipv4_addr (string_view addr_str) -> std::tuple< std::string, ipv4_port > |
Parses a IPv4 hostname:port pair,. | |
template<typename T > | |
auto | default_serialize_buffer_for (const T &inst) |
Returns a suitable buffer for the serialization of the specified object. | |
template<typename Backend > | |
auto | 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 | 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 | 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 | 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 | 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... | |
template<typename T > | |
auto | default_serialize (T &value, memory::block blk) -> serialization_result< memory::const_block > |
Uses the default backend to serialize a value into a memory block. More... | |
template<typename T > | |
auto | default_serialize_packed (T &value, memory::block blk, data_compressor compressor) -> serialization_result< memory::const_block > |
Uses backend and compressor to serialize and pack a value into a memory block. More... | |
auto | default_serialize_message_type (message_id msg_id, memory::block blk) |
Default-serializes the specified message id into a memory block. More... | |
template<typename T > | |
auto | default_deserialize (T &value, memory::const_block blk) -> deserialization_result< memory::const_block > |
Uses the default backend to deserialize a value from a memory block. More... | |
template<typename T > | |
auto | default_deserialize_packed (T &value, memory::const_block blk, data_compressor compressor) -> deserialization_result< memory::const_block > |
Uses backend and compressor to deserialize and unpack a value from a block. More... | |
auto | 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 | min_connection_data_size |
The minimum guaranteed block size that can be sent through bus connections. | |
Message bus code is placed in this namespace.
|
inline |
Uses the default backend to deserialize a value from a memory block.
Referenced by default_deserialize_message_type().
|
inline |
Uses backend and compressor to deserialize and unpack a value from a block.
|
inline |
Uses the default backend to serialize a value into a memory block.
Referenced by default_serialize_message_type().
|
inline |
Uses backend and compressor to serialize and pack a value into a memory block.