18#include "comms/field/details/adapters.h"
19#include "comms/field/details/MembersVersionDependency.h"
30template <
typename... TOptions>
37 static constexpr bool HasInvalidByDefault =
false;
38 static constexpr bool HasVersionStorage =
false;
39 static constexpr bool HasSerOffset =
false;
40 static constexpr bool HasVersionsRange =
false;
41 static constexpr bool HasFixedLengthLimit =
false;
42 static constexpr bool HasFixedBitLengthLimit =
false;
43 static constexpr bool HasVarLengthLimits =
false;
44 static constexpr bool HasAvailableLengthLimit =
false;
45 static constexpr bool HasSequenceElemLengthForcing =
false;
46 static constexpr bool HasSequenceElemSerLengthFieldPrefix =
false;
47 static constexpr bool HasSequenceElemFixedSerLengthFieldPrefix =
false;
48 static constexpr bool HasSequenceSizeForcing =
false;
49 static constexpr bool HasSequenceLengthForcing =
false;
50 static constexpr bool HasSequenceFixedSize =
false;
51 static constexpr bool HasSequenceSizeFieldPrefix =
false;
52 static constexpr bool HasSequenceSerLengthFieldPrefix =
false;
53 static constexpr bool HasSequenceTrailingFieldSuffix =
false;
54 static constexpr bool HasSequenceTerminationFieldSuffix =
false;
55 static constexpr bool HasRemLengthMemberField =
false;
56 static constexpr bool HasDefaultValueInitialiser =
false;
57 static constexpr bool HasMultiRangeValidation =
false;
58 static constexpr bool HasCustomValidator =
false;
59 static constexpr bool HasFailOnInvalid =
false;
60 static constexpr bool HasIgnoreInvalid =
false;
61 static constexpr bool HasEmptySerialization =
false;
64 static constexpr bool HasCustomWrite =
false;
65 static constexpr bool HasSequenceFixedSizeUseFixedSizeStorage =
false;
66 static constexpr bool HasFixedSizeStorage =
false;
67 static constexpr bool HasCustomStorageType =
false;
68 static constexpr bool HasScalingRatio =
false;
69 static constexpr bool HasUnits =
false;
70 static constexpr bool HasOrigDataView =
false;
72 static constexpr bool HasFieldType =
false;
73 static constexpr bool HasMissingOnReadFail =
false;
74 static constexpr bool HasMissingOnInvalid =
false;
75 static constexpr bool HasVariantCustomResetOnDestruct =
false;
76 static constexpr bool HasVersionDependentMembersForced =
false;
78 using UnitsType = void;
80 using UnitsRatio = std::ratio<1, 1>;
89 static constexpr std::size_t
SequenceFixedSize = std::numeric_limits<std::size_t>::max();
90 static constexpr MembersVersionDependency ForcedMembersVersionDependency = MembersVersionDependency_NotSpecified;
92 template <
typename TField>
93 using AdaptInvalidByDefault = TField;
95 template <
typename TField>
96 using AdaptVersionStorage = TField;
98 template <
typename TField>
99 using AdaptSerOffset = TField;
101 template <
typename TField>
102 using AdaptVersionsRange = TField;
104 template <
typename TField>
105 using AdaptFixedLengthLimit = TField;
107 template <
typename TField>
108 using AdaptFixedBitLengthLimit = TField;
110 template <
typename TField>
111 using AdaptVarLengthLimits = TField;
113 template <
typename TField>
114 using AdaptAvailableLengthLimit = TField;
116 template <
typename TField>
117 using AdaptSequenceElemLengthForcing = TField;
119 template <
typename TField>
120 using AdaptSequenceElemSerLengthFieldPrefix = TField;
122 template <
typename TField>
123 using AdaptSequenceElemFixedSerLengthFieldPrefix = TField;
125 template <
typename TField>
126 using AdaptSequenceSizeForcing = TField;
128 template <
typename TField>
129 using AdaptSequenceLengthForcing = TField;
131 template <
typename TField>
132 using AdaptSequenceFixedSize = TField;
134 template <
typename TField>
135 using AdaptSequenceSizeFieldPrefix = TField;
137 template <
typename TField>
138 using AdaptSequenceSerLengthFieldPrefix = TField;
140 template <
typename TField>
141 using AdaptSequenceTrailingFieldSuffix = TField;
143 template <
typename TField>
144 using AdaptSequenceTerminationFieldSuffix = TField;
146 template <
typename TField>
147 using AdaptRemLengthMemberField = TField;
149 template <
typename TField>
150 using AdaptDefaultValueInitialiser = TField;
152 template <
typename TField>
153 using AdaptMultiRangeValidation = TField;
155 template <
typename TField>
156 using AdaptCustomValidator = TField;
158 template <
typename TField>
159 using AdaptFailOnInvalid = TField;
161 template <
typename TField>
162 using AdaptIgnoreInvalid = TField;
164 template <
typename TField>
165 using AdaptEmptySerialization = TField;
167 template <
typename TField>
168 using AdaptCustomRead = TField;
170 template <
typename TField>
171 using AdaptCustomRefresh = TField;
173 template <
typename TField>
174 using AdaptCustomWrite = TField;
176 template <
typename TField>
177 using AdaptFieldType = TField;
179 template <
typename TField>
180 using AdaptMissingOnReadFail = TField;
182 template <
typename TField>
183 using AdaptMissingOnInvalid = TField;
185 template <
typename TField>
186 using AdaptVariantResetOnDestruct =
188 std::is_same<typename TField::CommsTag, comms::field::tag::Variant>::value
190 comms::field::adapter::VariantResetOnDestruct<TField>,
195template <
typename... TOptions>
197 comms::option::def::HasCustomRead,
198 TOptions...> :
public OptionsParser<TOptions...>
203 template <
typename TField>
204 using AdaptCustomRead = comms::field::adapter::CustomReadWrap<TField>;
207template <std::intmax_t TOffset,
typename... TOptions>
209 comms::option::def::NumValueSerOffset<TOffset>,
210 TOptions...> :
public OptionsParser<TOptions...>
213 static constexpr bool HasSerOffset =
true;
214 static const std::intmax_t SerOffset = TOffset;
216 template <
typename TField>
217 using AdaptSerOffset = comms::field::adapter::SerOffset<SerOffset, TField>;
220template <std::size_t TLen,
bool TSignExtend,
typename... TOptions>
222 comms::option::def::FixedLength<TLen, TSignExtend>,
223 TOptions...> :
public OptionsParser<TOptions...>
226 static constexpr bool HasFixedLengthLimit =
true;
228 static constexpr bool FixedLengthSignExtend = TSignExtend;
230 template <
typename TField>
231 using AdaptFixedLengthLimit =
232 comms::field::adapter::FixedLength<
234 FixedLengthSignExtend,
239template <std::size_t TLen,
bool TSignExtend,
typename... TOptions>
241 comms::option::def::FixedBitLength<TLen, TSignExtend>,
242 TOptions...> :
public OptionsParser<TOptions...>
245 static constexpr bool HasFixedBitLengthLimit =
true;
247 static constexpr bool FixedBitLengthSignExtend = TSignExtend;
249 template <
typename TField>
250 using AdaptFixedBitLengthLimit =
251 comms::field::adapter::FixedBitLength<
253 FixedBitLengthSignExtend,
257template <std::size_t TMinLen, std::size_t TMaxLen,
typename... TOptions>
259 comms::option::def::VarLength<TMinLen, TMaxLen>,
260 TOptions...> :
public OptionsParser<TOptions...>
263 static constexpr bool HasVarLengthLimits =
true;
264 static constexpr std::size_t MinVarLength = TMinLen;
265 static constexpr std::size_t MaxVarLength = TMaxLen;
267 template <
typename TField>
268 using AdaptVarLengthLimits =
269 comms::field::adapter::VarLength<MinVarLength, MaxVarLength, TField>;
272template <
typename... TOptions>
274 comms::option::def::AvailableLengthLimit,
275 TOptions...> :
public OptionsParser<TOptions...>
278 static constexpr bool HasAvailableLengthLimit =
true;
280 template <
typename TField>
281 using AdaptAvailableLengthLimit =
282 comms::field::adapter::AvailableLength<TField>;
285template <
typename... TOptions>
287 comms::option::def::SequenceSizeForcingEnabled,
288 TOptions...> :
public OptionsParser<TOptions...>
291 static constexpr bool HasSequenceSizeForcing =
true;
293 template <
typename TField>
294 using AdaptSequenceSizeForcing = comms::field::adapter::SequenceSizeForcing<TField>;
297template <
typename... TOptions>
299 comms::option::def::SequenceLengthForcingEnabled,
300 TOptions...> :
public OptionsParser<TOptions...>
303 static constexpr bool HasSequenceLengthForcing =
true;
305 template <
typename TField>
306 using AdaptSequenceLengthForcing = comms::field::adapter::SequenceLengthForcing<TField>;
309template <
typename... TOptions>
311 comms::option::def::SequenceElemLengthForcingEnabled,
312 TOptions...> :
public OptionsParser<TOptions...>
315 static constexpr bool HasSequenceElemLengthForcing =
true;
317 template <
typename TField>
318 using AdaptSequenceElemLengthForcing = comms::field::adapter::SequenceElemLengthForcing<TField>;
321template <std::size_t TSize,
typename... TOptions>
323 comms::option::def::SequenceFixedSize<TSize>,
324 TOptions...> :
public OptionsParser<TOptions...>
327 static constexpr bool HasSequenceFixedSize =
true;
330 template <
typename TField>
331 using AdaptSequenceFixedSize = comms::field::adapter::SequenceFixedSize<SequenceFixedSize, TField>;
334template <
typename... TOptions>
336 comms::option::app::SequenceFixedSizeUseFixedSizeStorage,
337 TOptions...> :
public OptionsParser<TOptions...>
340 static constexpr bool HasSequenceFixedSizeUseFixedSizeStorage =
true;
343template <
typename TSizeField,
typename... TOptions>
345 comms::option::def::SequenceSizeFieldPrefix<TSizeField>,
346 TOptions...> :
public OptionsParser<TOptions...>
349 static constexpr bool HasSequenceSizeFieldPrefix =
true;
352 template <
typename TField>
353 using AdaptSequenceSizeFieldPrefix = comms::field::adapter::SequenceSizeFieldPrefix<SequenceSizeFieldPrefix, TField>;
358 comms::option::def::SequenceSerLengthFieldPrefix<TField, TReadErrorStatus>,
359 TOptions...> :
public OptionsParser<TOptions...>
362 static constexpr bool HasSequenceSerLengthFieldPrefix =
true;
364 static constexpr comms::ErrorStatus SequenceSerLengthFieldReadErrorStatus = TReadErrorStatus;
366 template <
typename TWrappedField>
367 using AdaptSequenceSerLengthFieldPrefix =
368 comms::field::adapter::SequenceSerLengthFieldPrefix<
370 SequenceSerLengthFieldReadErrorStatus,
377 comms::option::def::SequenceElemSerLengthFieldPrefix<TField, TReadErrorStatus>,
378 TOptions...> :
public OptionsParser<TOptions...>
381 static constexpr bool HasSequenceElemSerLengthFieldPrefix =
true;
383 static constexpr comms::ErrorStatus SequenceElemSerLengthFieldReadErrorStatus = TReadErrorStatus;
385 template <
typename TWrappedField>
386 using AdaptSequenceElemSerLengthFieldPrefix =
387 comms::field::adapter::SequenceElemSerLengthFieldPrefix<
389 SequenceElemSerLengthFieldReadErrorStatus,
396 comms::option::def::SequenceElemFixedSerLengthFieldPrefix<TField, TReadErrorStatus>,
397 TOptions...> :
public OptionsParser<TOptions...>
400 static constexpr bool HasSequenceElemFixedSerLengthFieldPrefix =
true;
402 static constexpr comms::ErrorStatus SequenceElemFixedSerLengthFieldReadErrorStatus = TReadErrorStatus;
404 template <
typename TWrappedField>
405 using AdaptSequenceElemFixedSerLengthFieldPrefix =
406 comms::field::adapter::SequenceElemFixedSerLengthFieldPrefix<
408 SequenceElemFixedSerLengthFieldReadErrorStatus,
413template <
typename TTrailField,
typename... TOptions>
415 comms::option::def::SequenceTrailingFieldSuffix<TTrailField>,
416 TOptions...> :
public OptionsParser<TOptions...>
419 static constexpr bool HasSequenceTrailingFieldSuffix =
true;
422 template <
typename TField>
423 using AdaptSequenceTrailingFieldSuffix = comms::field::adapter::SequenceTrailingFieldSuffix<SequenceTrailingFieldSuffix, TField>;
426template <
typename TTermField,
typename... TOptions>
428 comms::option::def::SequenceTerminationFieldSuffix<TTermField>,
429 TOptions...> :
public OptionsParser<TOptions...>
432 static constexpr bool HasSequenceTerminationFieldSuffix =
true;
435 template <
typename TField>
436 using AdaptSequenceTerminationFieldSuffix =
437 comms::field::adapter::SequenceTerminationFieldSuffix<SequenceTerminationFieldSuffix, TField>;
440template <
typename TInitialiser,
typename... TOptions>
442 comms::option::def::DefaultValueInitialiser<TInitialiser>,
443 TOptions...> :
public OptionsParser<TOptions...>
446 static constexpr bool HasDefaultValueInitialiser =
true;
449 template <
typename TField>
450 using AdaptDefaultValueInitialiser =
451 comms::field::adapter::DefaultValueInitialiser<DefaultValueInitialiser, TField>;
454template <
typename TValidator,
typename... TOptions>
456 comms::option::def::ContentsValidator<TValidator>,
457 TOptions...> :
public OptionsParser<TOptions...>
460 static constexpr bool HasCustomValidator =
true;
461 using CustomValidator = TValidator;
463 template <
typename TField>
464 using AdaptCustomValidator = comms::field::adapter::CustomValidator<CustomValidator, TField>;
467template <
typename... TOptions>
469 comms::option::def::HasCustomRefresh,
470 TOptions...> :
public OptionsParser<TOptions...>
475 template <
typename TField>
476 using AdaptCustomRefresh = comms::field::adapter::CustomRefreshWrap<TField>;
481 comms::option::def::FailOnInvalid<TStatus>,
482 TOptions...> :
public OptionsParser<TOptions...>
485 static constexpr bool HasFailOnInvalid =
true;
488 template <
typename TField>
489 using AdaptFailOnInvalid = comms::field::adapter::FailOnInvalid<FailOnInvalidStatus, TField>;
492template <
typename... TOptions>
494 comms::option::def::IgnoreInvalid,
495 TOptions...> :
public OptionsParser<TOptions...>
498 static constexpr bool HasIgnoreInvalid =
true;
500 template <
typename TField>
501 using AdaptIgnoreInvalid = comms::field::adapter::IgnoreInvalid<TField>;
504template <
typename... TOptions>
506 comms::option::def::InvalidByDefault,
507 TOptions...> :
public OptionsParser<TOptions...>
510 static constexpr bool HasInvalidByDefault =
true;
512 template <
typename TField>
513 using AdaptInvalidByDefault = comms::field::adapter::InvalidByDefault<TField>;
516template <std::size_t TSize,
typename... TOptions>
518 comms::option::app::FixedSizeStorage<TSize>,
519 TOptions...> :
public OptionsParser<TOptions...>
522 static constexpr bool HasFixedSizeStorage =
true;
526template <
typename TType,
typename... TOptions>
528 comms::option::app::CustomStorageType<TType>,
529 TOptions...> :
public OptionsParser<TOptions...>
532 static constexpr bool HasCustomStorageType =
true;
536template <std::intmax_t TNum, std::intmax_t TDenom,
typename... TOptions>
538 comms::option::def::ScalingRatio<TNum, TDenom>,
539 TOptions...> :
public OptionsParser<TOptions...>
542 static constexpr bool HasScalingRatio =
true;
546template <
typename TType,
typename TRatio,
typename... TOptions>
548 comms::option::def::Units<TType, TRatio>,
549 TOptions...> :
public OptionsParser<TOptions...>
552 static constexpr bool HasUnits =
true;
553 using UnitsType = TType;
554 using UnitsRatio = TRatio;
557template <
typename... TOptions>
559 comms::option::app::OrigDataView,
560 TOptions...> :
public OptionsParser<TOptions...>
563 static constexpr bool HasOrigDataView =
true;
566template <
typename... TOptions>
568 comms::option::def::EmptySerialization,
569 TOptions...> :
public OptionsParser<TOptions...>
572 static constexpr bool HasEmptySerialization =
true;
574 template <
typename TField>
575 using AdaptEmptySerialization = comms::field::adapter::EmptySerialization<TField>;
578template <
bool THasMultiRangeVal
idation>
579struct MultiRangeAssembler
581 template <
typename TBase,
typename T, T TMinValue, T TMaxValue>
585 std::integral_constant<T, TMinValue>,
586 std::integral_constant<T, TMaxValue>
592struct MultiRangeAssembler<true>
594 using FalseAssembler = MultiRangeAssembler<false>;
596 template <
typename TBase,
typename T, T TMinValue, T TMaxValue>
601 std::declval<typename TBase::MultiRangeValidationRanges>(),
602 std::declval<
typename FalseAssembler::template Type<TBase, T, TMinValue, TMaxValue> >()
609template <
typename TBase,
typename T, T TMinValue, T TMaxValue>
610using MultiRangeAssemblerT =
611 typename MultiRangeAssembler<TBase::HasMultiRangeValidation>::template Type<TBase, T, TMinValue, TMaxValue>;
613template <std::intmax_t TMinValue, std::intmax_t TMaxValue,
typename... TOptions>
615 comms::option::def::ValidNumValueRange<TMinValue, TMaxValue>,
616 TOptions...> :
public OptionsParser<TOptions...>
618 using BaseImpl = OptionsParser<TOptions...>;
620#ifdef COMMS_COMPILER_GCC47
621 static_assert(!BaseImpl::HasMultiRangeValidation,
622 "Sorry gcc-4.7 fails to compile valid C++11 code that allows multiple usage"
623 "of comms::option::def::ValidNumValueRange options. Either use it only once or"
624 "upgrade your compiler.");
626 using MultiRangeValidationRanges = MultiRangeAssemblerT<BaseImpl, std::intmax_t, TMinValue, TMaxValue>;
627 static constexpr bool HasMultiRangeValidation =
true;
629 template <
typename TField>
630 using AdaptMultiRangeValidation =
631 comms::field::adapter::NumValueMultiRangeValidator<MultiRangeValidationRanges, TField>;
634template <
typename... TOptions>
636 comms::option::def::ValidRangesClear,
637 TOptions...> :
public OptionsParser<TOptions...>
639 using BaseImpl = OptionsParser<TOptions...>;
641 using MultiRangeValidationRanges = void;
642 static constexpr bool HasMultiRangeValidation =
false;
644 template <
typename TField>
645 using AdaptMultiRangeValidation = TField;
649template <std::uintmax_t TMinValue, std::uintmax_t TMaxValue,
typename... TOptions>
651 comms::option::def::ValidBigUnsignedNumValueRange<TMinValue, TMaxValue>,
652 TOptions...> :
public OptionsParser<TOptions...>
654 using BaseImpl = OptionsParser<TOptions...>;
656#ifdef COMMS_COMPILER_GCC47
657 static_assert(!BaseImpl::HasMultiRangeValidation,
658 "Sorry gcc-4.7 fails to compile valid C++11 code that allows multiple usage"
659 "of comms::option::def::ValidNumValueRange options. Either use it only once or"
660 "upgrade your compiler.");
662 using MultiRangeValidationRanges = MultiRangeAssemblerT<BaseImpl, std::uintmax_t, TMinValue, TMaxValue>;
663 static constexpr bool HasMultiRangeValidation =
true;
665 template <
typename TField>
666 using AdaptMultiRangeValidation =
667 comms::field::adapter::NumValueMultiRangeValidator<MultiRangeValidationRanges, TField>;
670template <
typename... TOptions>
672 comms::option::def::HasCustomVersionUpdate,
673 TOptions...> :
public OptionsParser<TOptions...>
679template <std::uintmax_t TFrom, std::uintmax_t TUntil,
typename... TOptions>
681 comms::option::def::ExistsBetweenVersions<TFrom, TUntil>,
682 TOptions...> :
public OptionsParser<TOptions...>
685 static constexpr bool HasVersionsRange =
true;
686 static constexpr std::uintmax_t ExistsFromVersion = TFrom;
689 template <
typename TField>
690 using AdaptVersionsRange =
691 comms::field::adapter::ExistsBetweenVersions<ExistsFromVersion, ExistsUntilVersion, TField>;
694template <
typename... TOptions>
696 comms::option::def::VersionStorage,
697 TOptions...> :
public OptionsParser<TOptions...>
700 static constexpr bool HasVersionStorage =
true;
702 template <
typename TField>
703 using AdaptVersionStorage = comms::field::adapter::VersionStorage<TField>;
706template <std::size_t TIdx,
typename... TOptions>
708 comms::option::def::RemLengthMemberField<TIdx>,
709 TOptions...> :
public OptionsParser<TOptions...>
711 using BaseImpl = OptionsParser<TOptions...>;
712 static_assert(!BaseImpl::HasRemLengthMemberField,
713 "Option comms::def::option::RemLengthMemberField used multiple times");
715 static constexpr bool HasRemLengthMemberField =
true;
716 static constexpr std::size_t RemLengthMemberFieldIdx = TIdx;
718 template <
typename TField>
719 using AdaptRemLengthMemberField =
720 comms::field::adapter::RemLengthMemberField<RemLengthMemberFieldIdx, TField>;
723template <
typename... TOptions>
725 comms::option::def::HasCustomWrite,
726 TOptions...> :
public OptionsParser<TOptions...>
729 static constexpr bool HasCustomWrite =
true;
731 template <
typename TField>
732 using AdaptCustomWrite = comms::field::adapter::CustomWriteWrap<TField>;
735template <
typename TActField,
typename... TOptions>
737 comms::option::def::FieldType<TActField>,
738 TOptions...> :
public OptionsParser<TOptions...>
741 static constexpr bool HasFieldType =
true;
744 template <
typename TField>
745 using AdaptFieldType = comms::field::adapter::FieldType<TActField, TField>;
748template <
typename... TOptions>
750 comms::option::def::MissingOnReadFail,
751 TOptions...> :
public OptionsParser<TOptions...>
754 static constexpr bool HasMissingOnReadFail =
true;
756 template <
typename TField>
757 using AdaptMissingOnReadFail = comms::field::adapter::MissingOnReadFail<TField>;
760template <
typename... TOptions>
762 comms::option::def::MissingOnInvalid,
763 TOptions...> :
public OptionsParser<TOptions...>
766 static constexpr bool HasMissingOnInvalid =
true;
768 template <
typename TField>
769 using AdaptMissingOnInvalid = comms::field::adapter::MissingOnInvalid<TField>;
772template <
typename... TOptions>
774 comms::option::def::VariantHasCustomResetOnDestruct,
775 TOptions...> :
public OptionsParser<TOptions...>
778 static constexpr bool HasVariantCustomResetOnDestruct =
true;
780 template <
typename TField>
781 using AdaptVariantResetOnDestruct = TField;
784template <
bool TVersionDependent,
typename... TOptions>
786 comms::option::def::HasVersionDependentMembers<TVersionDependent>,
787 TOptions...> :
public OptionsParser<TOptions...>
790 static constexpr bool HasVersionDependentMembersForced =
true;
791 static constexpr MembersVersionDependency ForcedMembersVersionDependency =
792 TVersionDependent ? MembersVersionDependency_Dependent : MembersVersionDependency_Independent;
796template <
typename... TOptions>
798 comms::option::app::EmptyOption,
799 TOptions...> :
public OptionsParser<TOptions...>
803template <
typename... TTupleOptions,
typename... TOptions>
805 std::tuple<TTupleOptions...>,
806 TOptions...> :
public OptionsParser<TTupleOptions..., TOptions...>
Contains various compiler related definitions.
Contains definition of various tag classes.
ExistsBetweenVersions< 0, TVer > ExistsUntilVersion
Mark an comms::field::Optional field as existing only until specified version.
Definition options.h:1195
comms::option::def::SequenceTrailingFieldSuffix< TField > SequenceTrailingFieldSuffix
Same as comms::option::def::SequenceTrailingFieldSuffix.
Definition options.h:1531
comms::option::def::SequenceElemFixedSerLengthFieldPrefix< TField, TReadErrorStatus > SequenceElemFixedSerLengthFieldPrefix
Same as comms::option::def::SequenceElemFixedSerLengthFieldPrefix.
Definition options.h:1523
comms::option::def::SequenceTerminationFieldSuffix< TField > SequenceTerminationFieldSuffix
Same as comms::option::def::SequenceTerminationFieldSuffix.
Definition options.h:1527
comms::option::def::SequenceSerLengthFieldPrefix< TField, TReadErrorStatus > SequenceSerLengthFieldPrefix
Same as comms::option::def::SequenceSerLengthFieldPrefix.
Definition options.h:1513
comms::option::def::DefaultValueInitialiser< T > DefaultValueInitialiser
Same as comms::option::def::DefaultValueInitialiser.
Definition options.h:1548
comms::option::def::FixedLength< TLen, TSignExtend > FixedLength
Same as comms::option::def::FixedLength.
Definition options.h:1488
comms::option::def::SequenceFixedSize< TSize > SequenceFixedSize
Same as comms::option::def::SequenceFixedSize.
Definition options.h:1544
comms::option::def::HasCustomVersionUpdate HasCustomVersionUpdate
Same as comms::option::def::HasCustomVersionUpdate.
Definition options.h:1800
comms::option::def::HasCustomRead HasCustomRead
Same as comms::option::def::HasCustomRead.
Definition options.h:1780
comms::option::def::FieldType< TMsg > FieldType
Same as comms::option::def::FieldType.
Definition options.h:1463
comms::option::def::SequenceElemSerLengthFieldPrefix< TField, TReadErrorStatus > SequenceElemSerLengthFieldPrefix
Same as comms::option::def::SequenceElemSerLengthFieldPrefix.
Definition options.h:1518
comms::option::app::FixedSizeStorage< TSize > FixedSizeStorage
Same as comms::option::app::FixedSizeStorage.
Definition options.h:1887
comms::option::app::CustomStorageType< TType > CustomStorageType
Same as comms::option::app::CustomStorageType.
Definition options.h:1891
comms::option::def::HasCustomRefresh HasCustomRefresh
Same as comms::option::def::HasCustomRefresh.
Definition options.h:1783
comms::option::def::FixedBitLength< TLen, TSignExtend > FixedBitLength
Same as comms::option::def::FixedBitLength.
Definition options.h:1492
comms::option::def::SequenceSizeFieldPrefix< TField > SequenceSizeFieldPrefix
Same as comms::option::def::SequenceSizeFieldPrefix.
Definition options.h:1508
comms::option::def::ScalingRatio< TNum, TDenom > ScalingRatio
Same as comms::option::def::ScalingRatio.
Definition options.h:1504
Main namespace for all classes / functions of COMMS library.
ErrorStatus
Error statuses reported by the Communication module.
Definition ErrorStatus.h:17
Contains definition of all the options used by the COMMS library.
Replacement to std::conditional.
Definition type_traits.h:28
Replacement to some types from standard type_traits.