COMMS
Template library intended to help with implementation of communication protocols.
Classes | Namespaces | Typedefs
options.h File Reference

Contains definition of all the options used by the COMMS library. More...

#include <tuple>
#include <type_traits>
#include <limits>
#include <ratio>
#include <cstdint>
#include <cstddef>
#include "comms/traits.h"
#include "comms/ErrorStatus.h"
#include "comms/field/OptionalMode.h"
#include "comms/util/type_traits.h"

Go to the source code of this file.

Classes

struct  comms::option::app::CustomStorageType< TType >
 Set custom storage type for fields like comms::field::String or comms::field::ArrayList. More...
 
struct  comms::option::app::EmptyOption
 No-op option, doesn't have any effect. More...
 
struct  comms::option::app::FixedSizeStorage< TSize >
 Option that forces usage of embedded uninitialised data area instead of dynamic memory allocation. More...
 
struct  comms::option::app::ForceDispatch< T >
 Force a particular way to dispatch message object and/or type. More...
 
struct  comms::option::app::Handler< T >
 Option used to specify type of the message handler. More...
 
struct  comms::option::app::IdInfoInterface
 Option used to add getId() function into Message interface. More...
 
struct  comms::option::app::InPlaceAllocation
 Option that forces "in place" allocation with placement "new" for initialisation, instead of usage of dynamic memory allocation. More...
 
struct  comms::option::app::LengthInfoInterface
 Option used to add length() function into Message interface. More...
 
struct  comms::option::app::MsgFactory< TFactory >
 Force usage of the provide message factory. More...
 
struct  comms::option::app::MsgFactoryTempl< TFactory >
 Force usage of the provide message factory. More...
 
struct  comms::option::app::NameInterface
 Option used to add name() function into Message interface. More...
 
struct  comms::option::app::NoDispatchImpl
 Option used to inhibit default implementation of dispatchImpl() in comms::MessageBase. More...
 
struct  comms::option::app::NoLengthImpl
 Option that inhibits implementation of comms::MessageBase::lengthImpl() regardless of other availability conditions. More...
 
struct  comms::option::app::NoReadImpl
 Option that inhibits implementation of comms::MessageBase::readImpl() regardless of other availability conditions. More...
 
struct  comms::option::app::NoRefreshImpl
 Option that inhibits implementation of comms::MessageBase::refreshImpl() regardless of other availability conditions. More...
 
struct  comms::option::app::NoValidImpl
 Option that inhibits implementation of comms::MessageBase::validImpl() regardless of other availability conditions. More...
 
struct  comms::option::app::NoVirtualDestructor
 Force the destructor of comms::Message class to be non-virtual, even if there are other virtual functions defined. More...
 
struct  comms::option::app::NoWriteImpl
 Option that inhibits implementation of comms::MessageBase::writeImpl() regardless of other availability conditions. More...
 
struct  comms::option::app::OrigDataView
 Use "view" on original raw data instead of copying it. More...
 
struct  comms::option::app::ReadIterator< TIter >
 Option used to specify type of iterator used for reading. More...
 
struct  comms::option::app::RefreshInterface
 Option used to add refresh() function into Message interface. More...
 
struct  comms::option::app::SequenceFixedSizeUseFixedSizeStorage
 Option that forces usage of fixed size storage for sequences with fixed size. More...
 
struct  comms::option::app::SupportGenericMessage< TGenericMessage >
 Option used to allow comms::GenericMessage generation inside comms::MsgFactory and/or comms::protocol::MsgIdLayer classes. More...
 
struct  comms::option::app::ValidCheckInterface
 Option used to add valid() function into Message interface. More...
 
struct  comms::option::app::WriteIterator< TIter >
 Option used to specify type of iterator used for writing. More...
 
struct  comms::option::def::AssumeFieldsExistence
 Option that notifies comms::MessageBase about existence of access to fields. More...
 
struct  comms::option::def::AvailableLengthLimit
 Option used to specify that serialization length can be contolled by available data length. More...
 
struct  comms::option::def::ChecksumLayerVerifyBeforeRead
 Force comms::protocol::ChecksumLayer and comms::protocol::ChecksumPrefixLayer, to verify checksum prior to forwarding read to the wrapped layer(s). More...
 
struct  comms::option::def::ContentsValidator< T >
 Option that specifies custom validation class. More...
 
struct  comms::option::def::DefaultValueInitialiser< T >
 Option that specifies default initialisation class. More...
 
struct  comms::option::def::EmptySerialization
 Force field not to be serialized during read/write operations. More...
 
struct  comms::option::def::Endian< TEndian >
 Options to specify endian. More...
 
struct  comms::option::def::ExistsBetweenVersions< TFrom, TUntil >
 Mark an comms::field::Optional field as existing between specified versions. More...
 
struct  comms::option::def::ExtendingClass< T >
 Option to specify real extending class. More...
 
struct  comms::option::def::ExtraTransportFields< TFields >
 Option used to specify some extra fields from transport framing. More...
 
struct  comms::option::def::FailOnInvalid< TStatus >
 Option that forces field's read operation to fail if invalid value is received. More...
 
struct  comms::option::def::FieldType< TField >
 Option used to specify actual type of the field. More...
 
struct  comms::option::def::FixedBitLength< TLen, TSignExtend >
 Option used to specify number of bits that is used for field serialisation when a field is a member of comms::field::Bitfield. More...
 
struct  comms::option::def::FixedLength< TLen, TSignExtend >
 Option used to specify number of bytes that is used for field serialisation. More...
 
struct  comms::option::def::HasCustomRead
 Mark field class to have custom implementation of read functionality. More...
 
struct  comms::option::def::HasCustomRefresh
 Mark message / field class to have custom implementation of refresh functionality. More...
 
struct  comms::option::def::HasCustomVersionUpdate
 Mark message / field class to have custom implementation of version update functionality. More...
 
struct  comms::option::def::HasCustomWrite
 Mark field class to have custom implementation of read functionality. More...
 
struct  comms::option::def::HasDoGetId
 Option that notifies comms::MessageBase about existence of doGetId() member function in derived class. More...
 
struct  comms::option::def::HasName
 Mark message class as providing its name information. More...
 
struct  comms::option::def::HasVersionDependentMembers< TVersionDependent >
 Mark complex fields like comms::field::Bundle or comms::field::Variant that their members are or are not version dependent. More...
 
struct  comms::option::def::IgnoreInvalid
 Option that forces field's read operation to ignore read data if invalid value is received. More...
 
struct  comms::option::def::InvalidByDefault
 Make the field's contents to be invalid by default. More...
 
struct  comms::option::def::MissingOnInvalid
 Mark an comms::field::Optional field as missing if its contents are invalid (member field has invalid value). More...
 
struct  comms::option::def::MissingOnReadFail
 Mark an comms::field::Optional field as missing if its read operation fails. More...
 
struct  comms::option::def::MsgIdType< T >
 Option used to specify type of the ID. More...
 
struct  comms::option::def::MsgType< TMsg >
 Option used to specify actual type of the message. More...
 
struct  comms::option::def::NoIdImpl
 Option used to specify that message doesn't have valid ID. More...
 
struct  comms::option::def::NumValueSerOffset< TOffset >
 Option to specify numeric value serialisation offset. More...
 
struct  comms::option::def::ProtocolLayerDisallowReadUntilDataSplit
 Disallow usage of ProtocolLayerForceReadUntilDataSplit option in earlier (outer wrapping) layers. More...
 
struct  comms::option::def::ProtocolLayerForceReadUntilDataSplit
 Option to force comms::protocol::ProtocolLayerBase class to split read operation "until" and "from" data (payload) layer. More...
 
struct  comms::option::def::ProtocolLayerSuppressReadUntilDataSplitForcing
 Option to forcefully disable passing the ProtocolLayerForceReadUntilDataSplit option to the layer definition. More...
 
struct  comms::option::def::PseudoValue
 Option for comms::protocol::TransportValueLayer to mark that the handled field is a "pseudo" one, i.e. is not serialised. More...
 
struct  comms::option::def::RemLengthMemberField< TIdx >
 Option to specify index of member field containing remaining length in bytes. More...
 
struct  comms::option::def::ScalingRatio< TNum, TDenom >
 Option to specify scaling ratio. More...
 
struct  comms::option::def::SequenceElemFixedSerLengthFieldPrefix< TField, TReadErrorStatus >
 Option that forces first element only of comms::field::ArrayList to be prefixed with its serialisation length. More...
 
struct  comms::option::def::SequenceElemLengthForcingEnabled
 Option to enable external forcing of the collection element serialisation length. More...
 
struct  comms::option::def::SequenceElemSerLengthFieldPrefix< TField, TReadErrorStatus >
 Option that forces every element of comms::field::ArrayList to be prefixed with its serialisation length. More...
 
struct  comms::option::def::SequenceFixedSize< TSize >
 Option used to define exact number of elements in the collection field. More...
 
struct  comms::option::def::SequenceLengthForcingEnabled
 Option to enable external forcing of the collection's serialisation length duting "read" operation. More...
 
struct  comms::option::def::SequenceSerLengthFieldPrefix< TField, TReadErrorStatus >
 Option that modifies the default behaviour of collection fields to prepend the serialised data with number of bytes information. More...
 
struct  comms::option::def::SequenceSizeFieldPrefix< TField >
 Option that modifies the default behaviour of collection fields to prepend the serialised data with number of elements information. More...
 
struct  comms::option::def::SequenceSizeForcingEnabled
 Option to enable external forcing of the collection's elements count. More...
 
struct  comms::option::def::SequenceTerminationFieldSuffix< TField >
 Option that forces termination of the sequence when predefined value is encountered. More...
 
struct  comms::option::def::SequenceTrailingFieldSuffix< TField >
 Option that forces collection fields to append provides suffix every time it is serialised. More...
 
struct  comms::option::def::StaticNumIdImpl< TId >
 Option used to specify numeric ID of the message. More...
 
struct  comms::option::def::Units< TType, TRatio >
 Options to specify units of the field. More...
 
struct  comms::option::def::ValidBigUnsignedNumValueRange< TMinValue, TMaxValue >
 Provide range of valid unsigned numeric values. More...
 
struct  comms::option::def::ValidNumValueRange< TMinValue, TMaxValue >
 Provide range of valid numeric values. More...
 
struct  comms::option::def::ValidRangesClear
 Clear accumulated ranges of valid values. More...
 
struct  comms::option::def::VariantHasCustomResetOnDestruct
 Avoid invocation of built-in reset() member function on destruction of the comms::field::Variant field. More...
 
struct  comms::option::def::VarLength< TMin, TMax >
 Option used to specify that field may have variable serialisation length. More...
 
struct  comms::option::def::VersionInExtraTransportFields< TIdx >
 Option used to specify index of the version field inside extra transport fields tuple provided with comms::option::def::ExtraTransportFields option. More...
 
struct  comms::option::def::VersionStorage
 Add storage of version information inside private data members. More...
 
struct  comms::option::def::VersionType< T >
 Provide type to be used for versioning. More...
 

Namespaces

 comms
 Main namespace for all classes / functions of COMMS library.
 
 comms::option
 Namespace that contains all the options used to define protocol as well as customize application specific configuration.
 
 comms::option::app
 Namespace that contains all the options used for application specific customization.
 
 comms::option::def
 Namespace that contains all the options used to define protocol.
 

Typedefs

using comms::option::AssumeFieldsExistence = comms::option::def::AssumeFieldsExistence
 Same as comms::option::def::AssumeFieldsExistence.
 
using comms::option::def::BigEndian = Endian< comms::traits::endian::Big >
 Alias option to Endian specifying Big endian.
 
using comms::option::BigEndian = comms::option::def::BigEndian
 Same as comms::option::def::BigEndian.
 
template<std::uintmax_t TMask, std::uintmax_t TValue = 0U>
using comms::option::def::BitmaskReservedBits = ContentsValidator< details::BitmaskReservedBitsValidator< TMask, TValue > >
 Alias to ContentsValidator, it defines validator class that checks that reserved bits of the field have expected values. More...
 
template<std::uintmax_t TMask, std::uintmax_t TValue = 0U>
using comms::option::BitmaskReservedBits = comms::option::def::BitmaskReservedBits< TMask, TValue >
 Same as comms::option::def::BitmaskReservedBits.
 
using comms::option::ChecksumLayerVerifyBeforeRead = comms::option::def::ChecksumLayerVerifyBeforeRead
 Same as comms::option::def::ChecksumLayerVerifyBeforeRead.
 
template<typename TType >
using comms::option::CustomStorageType = comms::option::app::CustomStorageType< TType >
 Same as comms::option::app::CustomStorageType.
 
template<std::uintmax_t TVal>
using comms::option::def::DefaultBigUnsignedNumValue = DefaultValueInitialiser< details::DefaultNumValueInitialiser< std::uintmax_t, TVal > >
 Alias to DefaultValueInitialiser, it defines initialiser class that assigns big unsigned numeric value provided as the template argument to this option. More...
 
template<std::uintmax_t TVal>
using comms::option::DefaultBigUnsignedNumValue = comms::option::def::DefaultBigUnsignedNumValue< TVal >
 Same as comms::option::def::DefaultBigUnsignedNumValue.
 
template<std::intmax_t TVal>
using comms::option::def::DefaultNumValue = DefaultValueInitialiser< details::DefaultNumValueInitialiser< std::intmax_t, TVal > >
 Alias to DefaultValueInitialiser, it defines initialiser class that assigns numeric value provided as the template argument to this option. More...
 
template<std::intmax_t TVal>
using comms::option::DefaultNumValue = comms::option::def::DefaultNumValue< TVal >
 Same as comms::option::def::DefaultNumValue.
 
template<comms::field::OptionalMode TVal>
using comms::option::def::DefaultOptionalMode = DefaultValueInitialiser< details::DefaultOptModeInitialiser< TVal > >
 Alias to DefaultValueInitialiser, it sets default mode to field::Optional field. More...
 
template<comms::field::OptionalMode TVal>
using comms::option::DefaultOptionalMode = comms::option::def::DefaultOptionalMode< TVal >
 Same as comms::option::def::DefaultOptionalMode.
 
template<typename T >
using comms::option::DefaultValueInitialiser = comms::option::def::DefaultValueInitialiser< T >
 Same as comms::option::def::DefaultValueInitialiser.
 
template<std::size_t TIdx>
using comms::option::def::DefaultVariantIndex = DefaultValueInitialiser< details::DefaultVariantIndexInitialiser< TIdx > >
 Alias to DefaultValueInitialiser, it initalises comms::field::Variant field to contain valid default value of the specified member. More...
 
template<std::size_t TIdx>
using comms::option::DefaultVariantIndex = comms::option::def::DefaultVariantIndex< TIdx >
 Same as comms::option::def::DefaultVariantIndex.
 
using comms::option::EmptyOption = comms::option::app::EmptyOption
 Same as comms::option::app::EmptyOption.
 
using comms::option::def::EmptySerialisation = EmptySerialization
 Same as EmptySerialization. More...
 
using comms::option::EmptySerialisation = comms::option::def::EmptySerialisation
 Same as comms::option::def::EmptySerialisation.
 
using comms::option::EmptySerialization = comms::option::def::EmptySerialization
 Same as comms::option::def::EmptySerialization.
 
template<typename TEndian >
using comms::option::Endian = comms::option::def::Endian< TEndian >
 Same as comms::option::def::Endian.
 
template<std::uintmax_t TFrom, std::uintmax_t TUntil>
using comms::option::ExistsBetweenVersions = comms::option::def::ExistsBetweenVersions< TFrom, TUntil >
 Same as comms::option::def::ExistsBetweenVersions.
 
using comms::option::def::ExistsByDefault = DefaultOptionalMode< comms::field::OptionalMode::Exists >
 Alias to DefaultOptionalMode. More...
 
using comms::option::ExistsByDefault = comms::option::def::ExistsByDefault
 Same as comms::option::def::ExistsByDefault.
 
template<std::uintmax_t TVer>
using comms::option::def::ExistsSinceVersion = ExistsBetweenVersions< TVer, std::numeric_limits< std::uintmax_t >::max()>
 Mark an comms::field::Optional field as existing starting from specified version. More...
 
template<std::uintmax_t TVer>
using comms::option::ExistsSinceVersion = comms::option::def::ExistsSinceVersion< TVer >
 Same as comms::option::def::ExistsSinceVersion.
 
template<std::uintmax_t TVer>
using comms::option::def::ExistsUntilVersion = ExistsBetweenVersions< 0, TVer >
 Mark an comms::field::Optional field as existing only until specified version. More...
 
template<std::uintmax_t TVer>
using comms::option::ExistsUntilVersion = comms::option::def::ExistsUntilVersion< TVer >
 Same as comms::option::def::ExistsUntilVersion.
 
template<typename T >
using comms::option::ExtendingClass = comms::option::def::ExtendingClass< T >
 Same as comms::option::def::ExtendingClass.
 
template<typename TFields >
using comms::option::ExtraTransportFields = comms::option::def::ExtraTransportFields< TFields >
 Same as comms::option::def::ExtraTransportFields.
 
template<comms::ErrorStatus TStatus = comms::ErrorStatus::InvalidMsgData>
using comms::option::FailOnInvalid = comms::option::def::FailOnInvalid< TStatus >
 Same as comms::option::def::FailOnInvalid.
 
template<typename TFields >
using comms::option::FieldsImpl = comms::option::def::FieldsImpl< TFields >
 Same as comms::option::def::FieldsImpl.
 
template<typename TMsg >
using comms::option::FieldType = comms::option::def::FieldType< TMsg >
 Same as comms::option::def::FieldType.
 
template<std::size_t TLen, bool TSignExtend = true>
using comms::option::FixedBitLength = comms::option::def::FixedBitLength< TLen, TSignExtend >
 Same as comms::option::def::FixedBitLength.
 
template<std::size_t TLen, bool TSignExtend = true>
using comms::option::FixedLength = comms::option::def::FixedLength< TLen, TSignExtend >
 Same as comms::option::def::FixedLength.
 
template<std::size_t TSize>
using comms::option::FixedSizeStorage = comms::option::app::FixedSizeStorage< TSize >
 Same as comms::option::app::FixedSizeStorage.
 
template<typename T >
using comms::option::ForceDispatch = comms::option::app::ForceDispatch< T >
 Same as comms::option::app::ForceDispatch.
 
using comms::option::app::ForceDispatchLinearSwitch = ForceDispatch< comms::traits::dispatch::LinearSwitch >
 Force generation of linear switch statmenets for dispatch logic of message object and/or message object type.
 
using comms::option::ForceDispatchLinearSwitch = comms::option::app::ForceDispatchLinearSwitch
 Same as comms::option::app::ForceDispatchLinearSwitch.
 
using comms::option::app::ForceDispatchPolymorphic = ForceDispatch< comms::traits::dispatch::Polymorphic >
 Force generation of v-tables and polymorphic dispatch logic for message object and/or message object type.
 
using comms::option::ForceDispatchPolymorphic = comms::option::app::ForceDispatchPolymorphic
 Same as comms::option::app::ForceDispatchPolymorphic.
 
using comms::option::app::ForceDispatchStaticBinSearch = ForceDispatch< comms::traits::dispatch::StaticBinSearch >
 Force generation of static binary search dispatch logic for message object and/or message object type.
 
using comms::option::ForceDispatchStaticBinSearch = comms::option::app::ForceDispatchStaticBinSearch
 Same as comms::option::app::ForceDispatchStaticBinSearch.
 
template<typename T >
using comms::option::Handler = comms::option::app::Handler< T >
 Same as comms::option::app::Handler.
 
using comms::option::HasCustomRead = comms::option::def::HasCustomRead
 Same as comms::option::def::HasCustomRead.
 
using comms::option::HasCustomRefresh = comms::option::def::HasCustomRefresh
 Same as comms::option::def::HasCustomRefresh.
 
using comms::option::HasCustomVersionUpdate = comms::option::def::HasCustomVersionUpdate
 Same as comms::option::def::HasCustomVersionUpdate.
 
using comms::option::HasDoGetId = comms::option::def::HasDoGetId
 Same as comms::option::def::HasDoGetId.
 
using comms::option::def::HasDoRefresh = HasCustomRefresh
 Option that notifies comms::MessageBase about existence of custom refresh functionality in derived class. More...
 
using comms::option::HasDoRefresh = comms::option::def::HasDoRefresh
 Same as comms::option::def::HasDoRefresh. More...
 
using comms::option::HasName = comms::option::def::HasName
 Same as comms::option::def::HasName.
 
using comms::option::IdInfoInterface = comms::option::app::IdInfoInterface
 Same as comms::option::app::IdInfoInterface.
 
using comms::option::IgnoreInvalid = comms::option::def::IgnoreInvalid
 Same as comms::option::def::IgnoreInvalid.
 
using comms::option::InPlaceAllocation = comms::option::app::InPlaceAllocation
 Same as comms::option::app::InPlaceAllocation.
 
using comms::option::InvalidByDefault = comms::option::def::InvalidByDefault
 Same as comms::option::def::InvalidByDefault.
 
using comms::option::LengthInfoInterface = comms::option::app::LengthInfoInterface
 Same as comms::option::app::LengthInfoInterface.
 
using comms::option::def::LittleEndian = Endian< comms::traits::endian::Little >
 Alias option to Endian specifying Little endian.
 
using comms::option::LittleEndian = comms::option::def::LittleEndian
 Same as comms::option::def::LittleEndian.
 
using comms::option::def::MissingByDefault = DefaultOptionalMode< comms::field::OptionalMode::Missing >
 Alias to DefaultOptionalMode. More...
 
using comms::option::MissingByDefault = comms::option::def::MissingByDefault
 Same as comms::option::def::MissingByDefault.
 
template<typename T >
using comms::option::MsgIdType = comms::option::def::MsgIdType< T >
 Same as comms::option::def::MsgIdType.
 
template<typename TMsg >
using comms::option::MsgType = comms::option::def::MsgType< TMsg >
 Same as comms::option::def::MsgType.
 
using comms::option::NameInterface = comms::option::app::NameInterface
 Same as comms::option::app::NameInterface.
 
using comms::option::NoDispatchImpl = comms::option::app::NoDispatchImpl
 Same as comms::option::app::NoDispatchImpl.
 
using comms::option::NoIdImpl = comms::option::def::NoIdImpl
 Same as comms::option::def::NoIdImpl.
 
using comms::option::NoLengthImpl = comms::option::app::NoLengthImpl
 Same as comms::option::app::NoLengthImpl.
 
using comms::option::NoReadImpl = comms::option::app::NoReadImpl
 Same as comms::option::app::NoReadImpl.
 
using comms::option::NoRefreshImpl = comms::option::app::NoRefreshImpl
 Same as comms::option::app::NoRefreshImpl.
 
using comms::option::NoValidImpl = comms::option::app::NoValidImpl
 Same as comms::option::app::NoValidImpl.
 
using comms::option::NoVirtualDestructor = comms::option::app::NoVirtualDestructor
 Same as comms::option::app::NoVirtualDestructor.
 
using comms::option::NoWriteImpl = comms::option::app::NoWriteImpl
 Same as comms::option::app::NoWriteImpl.
 
template<std::intmax_t TOffset>
using comms::option::NumValueSerOffset = comms::option::def::NumValueSerOffset< TOffset >
 Same as comms::option::def::NumValueSerOffset.
 
using comms::option::def::OptionalExistsByDefault = ExistsByDefault
 Alias to DefaultOptionalMode<comms::field::OptinalMode::Exists>
 
using comms::option::OptionalExistsByDefault = comms::option::def::OptionalMissingByDefault
 Same as comms::option::def::OptionalMissingByDefault.
 
using comms::option::def::OptionalMissingByDefault = MissingByDefault
 Alias to DefaultOptionalMode<comms::field::OptinalMode::Missing>
 
using comms::option::OptionalMissingByDefault = comms::option::def::OptionalMissingByDefault
 Same as comms::option::def::OptionalMissingByDefault.
 
using comms::option::OrigDataView = comms::option::app::OrigDataView
 Same as comms::option::app::OrigDataView.
 
using comms::option::ProtocolLayerDisallowReadUntilDataSplit = comms::option::def::ProtocolLayerDisallowReadUntilDataSplit
 Same as comms::option::def::ProtocolLayerDisallowReadUntilDataSplit.
 
using comms::option::ProtocolLayerForceReadUntilDataSplit = comms::option::def::ProtocolLayerForceReadUntilDataSplit
 Same as comms::option::def::ProtocolLayerForceReadUntilDataSplit.
 
using comms::option::PseudoValue = comms::option::def::PseudoValue
 Same as comms::option::def::PseudoValue.
 
template<typename TIter >
using comms::option::ReadIterator = comms::option::app::ReadIterator< TIter >
 Same as comms::option::app::ReadIterator.
 
using comms::option::RefreshInterface = comms::option::app::RefreshInterface
 Same as comms::option::app::RefreshInterface.
 
template<std::size_t TIdx>
using comms::option::RemLengthMemberField = comms::option::def::RemLengthMemberField< TIdx >
 Same as comms::option::def::RemLengthMemberField.
 
template<std::intmax_t TNum, std::intmax_t TDenom>
using comms::option::ScalingRatio = comms::option::def::ScalingRatio< TNum, TDenom >
 Same as comms::option::def::ScalingRatio.
 
template<typename TField , comms::ErrorStatus TReadErrorStatus = comms::ErrorStatus::InvalidMsgData>
using comms::option::SequenceElemFixedSerLengthFieldPrefix = comms::option::def::SequenceElemFixedSerLengthFieldPrefix< TField, TReadErrorStatus >
 Same as comms::option::def::SequenceElemFixedSerLengthFieldPrefix.
 
using comms::option::SequenceElemLengthForcingEnabled = comms::option::def::SequenceElemLengthForcingEnabled
 Same as comms::option::def::SequenceElemLengthForcingEnabled.
 
template<typename TField , comms::ErrorStatus TReadErrorStatus = comms::ErrorStatus::InvalidMsgData>
using comms::option::SequenceElemSerLengthFieldPrefix = comms::option::def::SequenceElemSerLengthFieldPrefix< TField, TReadErrorStatus >
 Same as comms::option::def::SequenceElemSerLengthFieldPrefix.
 
template<std::size_t TSize>
using comms::option::SequenceFixedSize = comms::option::def::SequenceFixedSize< TSize >
 Same as comms::option::def::SequenceFixedSize.
 
using comms::option::SequenceFixedSizeUseFixedSizeStorage = comms::option::app::SequenceFixedSizeUseFixedSizeStorage
 Same as comms::option::app::SequenceFixedSizeUseFixedSizeStorage.
 
using comms::option::SequenceLengthForcingEnabled = comms::option::def::SequenceLengthForcingEnabled
 Same as comms::option::def::SequenceLengthForcingEnabled.
 
template<typename TField , comms::ErrorStatus TReadErrorStatus = comms::ErrorStatus::InvalidMsgData>
using comms::option::SequenceSerLengthFieldPrefix = comms::option::def::SequenceSerLengthFieldPrefix< TField, TReadErrorStatus >
 Same as comms::option::def::SequenceSerLengthFieldPrefix.
 
template<typename TField >
using comms::option::SequenceSizeFieldPrefix = comms::option::def::SequenceSizeFieldPrefix< TField >
 Same as comms::option::def::SequenceSizeFieldPrefix.
 
using comms::option::SequenceSizeForcingEnabled = comms::option::def::SequenceSizeForcingEnabled
 Same as comms::option::def::SequenceSizeForcingEnabled.
 
template<typename TField >
using comms::option::SequenceTerminationFieldSuffix = comms::option::def::SequenceTerminationFieldSuffix< TField >
 Same as comms::option::def::SequenceTerminationFieldSuffix.
 
template<typename TField >
using comms::option::SequenceTrailingFieldSuffix = comms::option::def::SequenceTrailingFieldSuffix< TField >
 Same as comms::option::def::SequenceTrailingFieldSuffix.
 
template<std::intmax_t TId>
using comms::option::StaticNumIdImpl = comms::option::def::StaticNumIdImpl< TId >
 Same as comms::option::def::StaticNumIdImpl.
 
template<typename TGenericMessage >
using comms::option::SupportGenericMessage = comms::option::app::SupportGenericMessage< TGenericMessage >
 Same as comms::option::app::SupportGenericMessage.
 
template<typename TType , typename TRatio >
using comms::option::Units = comms::option::def::Units< TType, TRatio >
 Same as comms::option::def::Units.
 
using comms::option::def::UnitsAmps = Units< comms::traits::units::Current, comms::traits::units::AmpsRatio >
 Alias option, specifying field value units are "amps".
 
using comms::option::UnitsAmps = comms::option::def::UnitsAmps
 Same as comms::option::def::UnitsAmps.
 
using comms::option::def::UnitsBytes = Units< comms::traits::units::Memory, comms::traits::units::BytesRatio >
 Alias option, specifying field value units are "bytes".
 
using comms::option::UnitsBytes = comms::option::def::UnitsBytes
 Same as comms::option::def::UnitsBytes.
 
using comms::option::def::UnitsCentimeters = Units< comms::traits::units::Distance, comms::traits::units::CentimetersRatio >
 Alias option, specifying field value units are "centimeters".
 
using comms::option::UnitsCentimeters = comms::option::def::UnitsCentimeters
 Same as comms::option::def::UnitsCentimeters.
 
using comms::option::def::UnitsCentimetersPerSecond = Units< comms::traits::units::Speed, comms::traits::units::CentimetersPerSecondRatio >
 Alias option, specifying field value units are "centimeters per second".
 
using comms::option::UnitsCentimetersPerSecond = comms::option::def::UnitsCentimetersPerSecond
 Same as comms::option::def::UnitsCentimetersPerSecond.
 
using comms::option::def::UnitsDays = Units< comms::traits::units::Time, comms::traits::units::DaysRatio >
 Alias option, specifying field value units are "days".
 
using comms::option::UnitsDays = comms::option::def::UnitsDays
 Same as comms::option::def::UnitsDays.
 
using comms::option::def::UnitsDegrees = Units< comms::traits::units::Angle, comms::traits::units::DegreesRatio >
 Alias option, specifying field value units are "degrees".
 
using comms::option::UnitsDegrees = comms::option::def::UnitsDegrees
 Same as comms::option::def::UnitsDegrees.
 
using comms::option::def::UnitsGigabytes = Units< comms::traits::units::Memory, comms::traits::units::GigabytesRatio >
 Alias option, specifying field value units are "gigabytes".
 
using comms::option::UnitsGigabytes = comms::option::def::UnitsGigabytes
 Same as comms::option::def::UnitsGigabytes.
 
using comms::option::def::UnitsGigahertz = Units< comms::traits::units::Frequency, comms::traits::units::GigaHzRatio >
 Alias option, specifying field value units are "gigahertz".
 
using comms::option::UnitsGigahertz = comms::option::def::UnitsGigahertz
 Same as comms::option::def::UnitsGigahertz.
 
using comms::option::def::UnitsHertz = Units< comms::traits::units::Frequency, comms::traits::units::HzRatio >
 Alias option, specifying field value units are "hertz".
 
using comms::option::UnitsHertz = comms::option::def::UnitsHertz
 Same as comms::option::def::UnitsHertz.
 
using comms::option::def::UnitsHours = Units< comms::traits::units::Time, comms::traits::units::HoursRatio >
 Alias option, specifying field value units are "hours".
 
using comms::option::UnitsHours = comms::option::def::UnitsHours
 Same as comms::option::def::UnitsHours.
 
using comms::option::def::UnitsKiloamps = Units< comms::traits::units::Current, comms::traits::units::KiloampsRatio >
 Alias option, specifying field value units are "kiloamps".
 
using comms::option::UnitsKiloamps = comms::option::def::UnitsKiloamps
 Same as comms::option::def::UnitsKiloamps.
 
using comms::option::def::UnitsKilobytes = Units< comms::traits::units::Memory, comms::traits::units::KilobytesRatio >
 Alias option, specifying field value units are "kilobytes".
 
using comms::option::UnitsKilobytes = comms::option::def::UnitsKilobytes
 Same as comms::option::def::UnitsKilobytes.
 
using comms::option::def::UnitsKilohertz = Units< comms::traits::units::Frequency, comms::traits::units::KiloHzRatio >
 Alias option, specifying field value units are "kilohertz".
 
using comms::option::UnitsKilohertz = comms::option::def::UnitsKilohertz
 Same as comms::option::def::UnitsKilohertz.
 
using comms::option::def::UnitsKilometers = Units< comms::traits::units::Distance, comms::traits::units::KilometersRatio >
 Alias option, specifying field value units are "kilometers".
 
using comms::option::UnitsKilometers = comms::option::def::UnitsKilometers
 Same as comms::option::def::UnitsKilometers.
 
using comms::option::def::UnitsKilometersPerHour = Units< comms::traits::units::Speed, comms::traits::units::KilometersPerHourRatio >
 Alias option, specifying field value units are "kilometers per hour".
 
using comms::option::UnitsKilometersPerHour = comms::option::def::UnitsKilometersPerHour
 Same as comms::option::def::UnitsKilometersPerHour.
 
using comms::option::def::UnitsKilometersPerSecond = Units< comms::traits::units::Speed, comms::traits::units::KilometersPerSecondRatio >
 Alias option, specifying field value units are "kilometers per second".
 
using comms::option::UnitsKilometersPerSecond = comms::option::def::UnitsKilometersPerSecond
 Same as comms::option::def::UnitsKilometersPerSecond.
 
using comms::option::def::UnitsKilovolts = Units< comms::traits::units::Voltage, comms::traits::units::KilovoltsRatio >
 Alias option, specifying field value units are "kilovolts".
 
using comms::option::UnitsKilovolts = comms::option::def::UnitsKilovolts
 Same as comms::option::def::UnitsKilovolts.
 
using comms::option::def::UnitsMegabytes = Units< comms::traits::units::Memory, comms::traits::units::MegabytesRatio >
 Alias option, specifying field value units are "megabytes".
 
using comms::option::UnitsMegabytes = comms::option::def::UnitsMegabytes
 Same as comms::option::def::UnitsMegabytes.
 
using comms::option::def::UnitsMegahertz = Units< comms::traits::units::Frequency, comms::traits::units::MegaHzRatio >
 Alias option, specifying field value units are "megahertz".
 
using comms::option::UnitsMegahertz = comms::option::def::UnitsMegahertz
 Same as comms::option::def::UnitsMegahertz.
 
using comms::option::def::UnitsMeters = Units< comms::traits::units::Distance, comms::traits::units::MetersRatio >
 Alias option, specifying field value units are "meters".
 
using comms::option::UnitsMeters = comms::option::def::UnitsMeters
 Same as comms::option::def::UnitsMeters.
 
using comms::option::def::UnitsMetersPerSecond = Units< comms::traits::units::Speed, comms::traits::units::MetersPerSecondRatio >
 Alias option, specifying field value units are "meters per second".
 
using comms::option::UnitsMetersPerSecond = comms::option::def::UnitsMetersPerSecond
 Same as comms::option::def::UnitsMetersPerSecond.
 
using comms::option::def::UnitsMicroamps = Units< comms::traits::units::Current, comms::traits::units::MicroampsRatio >
 Alias option, specifying field value units are "microamps".
 
using comms::option::UnitsMicroamps = comms::option::def::UnitsMicroamps
 Same as comms::option::def::UnitsMicroamps.
 
using comms::option::def::UnitsMicrometers = Units< comms::traits::units::Distance, comms::traits::units::MicrometersRatio >
 Alias option, specifying field value units are "micrometers".
 
using comms::option::UnitsMicrometers = comms::option::def::UnitsMicrometers
 Same as comms::option::def::UnitsMicrometers.
 
using comms::option::def::UnitsMicrometersPerSecond = Units< comms::traits::units::Speed, comms::traits::units::MicrometersPerSecondRatio >
 Alias option, specifying field value units are "micrometers per second".
 
using comms::option::UnitsMicrometersPerSecond = comms::option::def::UnitsMicrometersPerSecond
 Same as comms::option::def::UnitsMicrometersPerSecond.
 
using comms::option::def::UnitsMicroseconds = Units< comms::traits::units::Time, comms::traits::units::MicrosecondsRatio >
 Alias option, specifying field value units are "microseconds".
 
using comms::option::UnitsMicroseconds = comms::option::def::UnitsMicroseconds
 Same as comms::option::def::UnitsMicroseconds.
 
using comms::option::def::UnitsMicrovolts = Units< comms::traits::units::Voltage, comms::traits::units::MicrovoltsRatio >
 Alias option, specifying field value units are "microvolts".
 
using comms::option::UnitsMicrovolts = comms::option::def::UnitsMicrovolts
 Same as comms::option::def::UnitsMicrovolts.
 
using comms::option::def::UnitsMilliamps = Units< comms::traits::units::Current, comms::traits::units::MilliampsRatio >
 Alias option, specifying field value units are "milliamps".
 
using comms::option::UnitsMilliamps = comms::option::def::UnitsMilliamps
 Same as comms::option::def::UnitsMilliamps.
 
using comms::option::def::UnitsMillimeters = Units< comms::traits::units::Distance, comms::traits::units::MillimetersRatio >
 Alias option, specifying field value units are "millimeters".
 
using comms::option::UnitsMillimeters = comms::option::def::UnitsMillimeters
 Same as comms::option::def::UnitsMillimeters.
 
using comms::option::def::UnitsMillimetersPerSecond = Units< comms::traits::units::Speed, comms::traits::units::MillimetersPerSecondRatio >
 Alias option, specifying field value units are "millimeters per second".
 
using comms::option::UnitsMillimetersPerSecond = comms::option::def::UnitsMillimetersPerSecond
 Same as comms::option::def::UnitsMillimetersPerSecond.
 
using comms::option::def::UnitsMilliseconds = Units< comms::traits::units::Time, comms::traits::units::MillisecondsRatio >
 Alias option, specifying field value units are "milliseconds".
 
using comms::option::UnitsMilliseconds = comms::option::def::UnitsMilliseconds
 Same as comms::option::def::UnitsMilliseconds.
 
using comms::option::def::UnitsMillivolts = Units< comms::traits::units::Voltage, comms::traits::units::MillivoltsRatio >
 Alias option, specifying field value units are "millivolts".
 
using comms::option::UnitsMillivolts = comms::option::def::UnitsMillivolts
 Same as comms::option::def::UnitsMillivolts.
 
using comms::option::def::UnitsMinutes = Units< comms::traits::units::Time, comms::traits::units::MinutesRatio >
 Alias option, specifying field value units are "minutes".
 
using comms::option::UnitsMinutes = comms::option::def::UnitsMinutes
 Same as comms::option::def::UnitsMinutes.
 
using comms::option::def::UnitsNanoamps = Units< comms::traits::units::Current, comms::traits::units::NanoampsRatio >
 Alias option, specifying field value units are "nanoamps".
 
using comms::option::UnitsNanoamps = comms::option::def::UnitsNanoamps
 Same as comms::option::def::UnitsNanoamps.
 
using comms::option::def::UnitsNanometers = Units< comms::traits::units::Distance, comms::traits::units::NanometersRatio >
 Alias option, specifying field value units are "nanometers".
 
using comms::option::UnitsNanometers = comms::option::def::UnitsNanometers
 Same as comms::option::def::UnitsNanometers.
 
using comms::option::def::UnitsNanometersPerSecond = Units< comms::traits::units::Speed, comms::traits::units::NanometersPerSecondRatio >
 Alias option, specifying field value units are "nanometers per second".
 
using comms::option::UnitsNanometersPerSecond = comms::option::def::UnitsNanometersPerSecond
 Same as comms::option::def::UnitsNanometersPerSecond.
 
using comms::option::def::UnitsNanoseconds = Units< comms::traits::units::Time, comms::traits::units::NanosecondsRatio >
 Alias option, specifying field value units are "nanoseconds".
 
using comms::option::UnitsNanoseconds = comms::option::def::UnitsNanoseconds
 Same as comms::option::def::UnitsNanoseconds.
 
using comms::option::def::UnitsNanovolts = Units< comms::traits::units::Voltage, comms::traits::units::NanovoltsRatio >
 Alias option, specifying field value units are "nanovolts".
 
using comms::option::UnitsNanovolts = comms::option::def::UnitsNanovolts
 Same as comms::option::def::UnitsNanovolts.
 
using comms::option::def::UnitsRadians = Units< comms::traits::units::Angle, comms::traits::units::RadiansRatio >
 Alias option, specifying field value units are "radians".
 
using comms::option::UnitsRadians = comms::option::def::UnitsRadians
 Same as comms::option::def::UnitsRadians.
 
using comms::option::def::UnitsSeconds = Units< comms::traits::units::Time, comms::traits::units::SecondsRatio >
 Alias option, specifying field value units are "seconds".
 
using comms::option::UnitsSeconds = comms::option::def::UnitsSeconds
 Same as comms::option::def::UnitsSeconds.
 
using comms::option::def::UnitsTerabytes = Units< comms::traits::units::Memory, comms::traits::units::TerabytesRatio >
 Alias option, specifying field value units are "terabytes".
 
using comms::option::UnitsTerabytes = comms::option::def::UnitsTerabytes
 Same as comms::option::def::UnitsTerabytes.
 
using comms::option::def::UnitsVolts = Units< comms::traits::units::Voltage, comms::traits::units::VoltsRatio >
 Alias option, specifying field value units are "volts".
 
using comms::option::UnitsVolts = comms::option::def::UnitsVolts
 Same as comms::option::def::UnitsVolts.
 
using comms::option::def::UnitsWeeks = Units< comms::traits::units::Time, comms::traits::units::WeeksRatio >
 Alias option, specifying field value units are "weeks".
 
using comms::option::UnitsWeeks = comms::option::def::UnitsWeeks
 Same as comms::option::def::UnitsWeeks.
 
template<std::uintmax_t TValue>
using comms::option::def::ValidBigUnsignedNumValue = ValidBigUnsignedNumValueRange< TValue, TValue >
 Alias to ValidBigUnsignedNumValueRange. More...
 
template<std::uintmax_t TValue>
using comms::option::ValidBigUnsignedNumValue = comms::option::def::ValidBigUnsignedNumValue< TValue >
 Same as comms::option::def::ValidBigUnsignedNumValue.
 
template<std::uintmax_t TValue>
using comms::option::def::ValidBigUnsignedNumValueOverride = ValidBigUnsignedNumValueRangeOverride< TValue, TValue >
 Alias to ValidBigUnsignedNumValueRangeOverride. More...
 
template<std::uintmax_t TValue>
using comms::option::ValidBigUnsignedNumValueOverride = comms::option::def::ValidBigUnsignedNumValueOverride< TValue >
 Same as comms::option::def::ValidBigUnsignedNumValueOverride. More...
 
template<std::uintmax_t TMinValue, std::uintmax_t TMaxValue>
using comms::option::ValidBigUnsignedNumValueRange = comms::option::def::ValidBigUnsignedNumValueRange< TMinValue, TMaxValue >
 Same as comms::option::def::ValidBigUnsignedNumValueRange.
 
template<std::uintmax_t TMinValue, std::uintmax_t TMaxValue>
using comms::option::def::ValidBigUnsignedNumValueRangeOverride = std::tuple< ValidBigUnsignedNumValueRange< TMinValue, TMaxValue >, ValidRangesClear >
 Similar to ValidBigUnsignedNumValueRange, but overrides (nullifies) all previously set valid values ranges. More...
 
template<std::uintmax_t TMinValue, std::uintmax_t TMaxValue>
using comms::option::ValidBigUnsignedNumValueRangeOverride = comms::option::def::ValidBigUnsignedNumValueRangeOverride< TMinValue, TMaxValue >
 Same as comms::option::def::ValidBigUnsignedNumValueRangeOverride. More...
 
using comms::option::ValidCheckInterface = comms::option::app::ValidCheckInterface
 Same as comms::option::app::ValidCheckInterface.
 
template<std::intmax_t TValue>
using comms::option::def::ValidNumValue = ValidNumValueRange< TValue, TValue >
 Alias to ValidNumValueRange. More...
 
template<std::intmax_t TValue>
using comms::option::ValidNumValue = comms::option::def::ValidNumValue< TValue >
 Same as comms::option::def::ValidNumValue.
 
template<std::intmax_t TValue>
using comms::option::def::ValidNumValueOverride = ValidNumValueRangeOverride< TValue, TValue >
 Alias to ValidNumValueRangeOverride. More...
 
template<std::intmax_t TValue>
using comms::option::ValidNumValueOverride = comms::option::def::ValidNumValueOverride< TValue >
 Same as comms::option::def::ValidNumValueOverride. More...
 
template<std::intmax_t TMinValue, std::intmax_t TMaxValue>
using comms::option::ValidNumValueRange = comms::option::def::ValidNumValueRange< TMinValue, TMaxValue >
 Same as comms::option::def::ValidNumValueRange.
 
template<std::intmax_t TMinValue, std::intmax_t TMaxValue>
using comms::option::def::ValidNumValueRangeOverride = std::tuple< ValidNumValueRange< TMinValue, TMaxValue >, ValidRangesClear >
 Similar to ValidNumValueRange, but overrides (nullifies) all previously set valid values ranges. More...
 
template<std::intmax_t TMinValue, std::intmax_t TMaxValue>
using comms::option::ValidNumValueRangeOverride = comms::option::def::ValidNumValueRangeOverride< TMinValue, TMaxValue >
 Same as comms::option::def::ValidNumValueRangeOverride. More...
 
using comms::option::ValidRangesClear = comms::option::def::ValidRangesClear
 Same as comms::option::def::ValidRangesClear.
 
template<std::size_t TMin, std::size_t TMax>
using comms::option::VarLength = comms::option::def::VarLength< TMin, TMax >
 Same as comms::option::def::VarLength.
 
template<std::size_t TIdx>
using comms::option::VersionInExtraTransportFields = comms::option::def::VersionInExtraTransportFields< TIdx >
 Same as comms::option::def::VersionInExtraTransportFields.
 
using comms::option::VersionStorage = comms::option::def::VersionStorage
 Same as comms::option::def::VersionStorage.
 
template<typename T >
using comms::option::VersionType = comms::option::def::VersionType< T >
 Same as comms::option::def::VersionType.
 
template<typename TIter >
using comms::option::WriteIterator = comms::option::app::WriteIterator< TIter >
 Same as comms::option::app::WriteIterator.
 
using comms::option::def::ZeroFieldsImpl = FieldsImpl< std::tuple<> >
 Alias to FieldsImpl<std::tuple<> >
 
using comms::option::ZeroFieldsImpl = comms::option::def::ZeroFieldsImpl
 Same as comms::option::def::ZeroFieldsImpl.
 

Detailed Description

Contains definition of all the options used by the COMMS library.