20#include "MessageImplOptionsParser.h"
28template <
typename TMessage,
typename... TOptions>
29class MessageImplBuilder
31 using ParsedOptions = MessageImplOptionsParser<TOptions...>;
33 static_assert(ParsedOptions::HasFieldsImpl,
"Option comms::option::def::FieldsImpl must be used");
36 typename ParsedOptions::template BuildFieldsImpl<TMessage>;
38 using FailOnInvalidBase =
39 typename ParsedOptions::template BuildFailOnInvalidImpl<FieldsBase>;
42 typename ParsedOptions::template BuildVersionImpl<FailOnInvalidBase>;
44 using FieldsReadImplBase =
45 typename ParsedOptions::template BuildReadImpl<VersionBase>;
47 using FieldsWriteImplBase =
48 typename ParsedOptions::template BuildWriteImpl<FieldsReadImplBase>;
50 using FieldsValidBase =
51 typename ParsedOptions::template BuildValidImpl<FieldsWriteImplBase>;
53 using FieldsLengthBase =
54 typename ParsedOptions::template BuildLengthImpl<FieldsValidBase>;
57 typename ParsedOptions::template BuildRefreshImpl<FieldsLengthBase>;
60 typename ParsedOptions::template BuildDispatchImpl<RefreshBase>;
62 using StaticNumIdBase =
63 typename ParsedOptions::template BuildStaticMsgId<DispatchBase>;
65 using PolymorphicStaticNumIdBase =
66 typename ParsedOptions::template BuildMsgIdImpl<StaticNumIdBase>;
69 typename ParsedOptions::template BuildNameImpl<PolymorphicStaticNumIdBase>;
72 using Options = ParsedOptions;
73 using Type = NameBase;
76template <
typename TMessage,
typename... TOptions>
77using MessageImplBuilderT =
78 typename MessageImplBuilder<TMessage, TOptions...>::Type;
This file contains classes required for generic custom assertion functionality.
Contains various compiler related definitions.
This file contain definition of error statuses used by comms module.
Contains various tuple type manipulation classes and functions.
Contains functions for raw data access / (de)serialization.
Main namespace for all classes / functions of COMMS library.
Replacement to some types from standard type_traits.