CommRaT 2.0.0
C++20 Real-Time Messaging Framework
Loading...
Searching...
No Matches
system_registry.hpp
Go to the documentation of this file.
1#pragma once
2
3#include "../message_id.hpp"
4#include "../message_registry.hpp"
6
7// Forward declaration for Module (breaks circular dependency)
8namespace commrat {
9 template<typename Registry, typename OutputDataT, typename InputModeT, typename... CommandTypes>
10 class Module;
11
12 template<typename Registry>
13 class RegistryMailbox;
14}
15
16namespace commrat {
17
18// ============================================================================
19// System Message Registry
20// ============================================================================
21
33>;
34
35// ============================================================================
36// Registry Builder - Creates Registry with Convenience Aliases
37// ============================================================================
38
57template<typename... UserMessageDefs>
58class Registry {
59public:
60 // The actual MessageRegistry type
66 UserMessageDefs...
67 >;
68
69 // Convenience aliases that users get automatically
70 template<typename OutputDataT, typename InputModeT, typename... CommandTypes>
71 using Module = commrat::Module<Type, OutputDataT, InputModeT, CommandTypes...>;
72
74};
75
76// ============================================================================
77// Backward Compatibility Alias
78// ============================================================================
79
85template<typename... UserMessageDefs>
87 // System messages (always included)
92 // User messages
93 UserMessageDefs...
94>;
95
96} // namespace commrat
Compile-time message type registry using MessageDefinition templates.
Timestamp Management Architecture.
Mailbox that takes a MessageRegistry and exposes payload-only interface.
Build a complete registry with automatic Module and Mailbox aliases.
MessageRegistry< SubscribeRequest, SubscribeReply, UnsubscribeRequest, UnsubscribeReply, UserMessageDefs... > Type
CommRaT - Modern C++ Real-Time Communication Framework.
MessageDefinition< UnsubscribeReplyPayload, MessagePrefix::System, SystemSubPrefix::Subscription, 0x0004 > UnsubscribeReply
MessageDefinition< UnsubscribeRequestPayload, MessagePrefix::System, SystemSubPrefix::Subscription, 0x0003 > UnsubscribeRequest
MessageDefinition< SubscribeRequestPayload, MessagePrefix::System, SystemSubPrefix::Subscription, 0x0001 > SubscribeRequest
MessageDefinition< SubscribeReplyPayload, MessagePrefix::System, SystemSubPrefix::Subscription, 0x0002 > SubscribeReply
Message definition with compile-time ID assignment.