COMMS
Template library intended to help with implementation of communication protocols.
Public Types | Public Member Functions | Static Public Member Functions | Static Protected Member Functions | Related Functions | List of all members
comms::field::ArrayList< TFieldBase, TElement, TOptions > Class Template Reference

#include "comms/field/ArrayList.h"

Detailed Description

template<typename TFieldBase, typename TElement, typename... TOptions>
class comms::field::ArrayList< TFieldBase, TElement, TOptions >

Field that represents a sequential collection of fields.

By default uses std::vector, for internal storage, unless comms::option::app::FixedSizeStorage option is used, which forces usage of comms::util::StaticVector instead.

Template Parameters
TFieldBaseBase class for this field, expected to be a variant of comms::Field.
TElementElement of the collection, can be either basic integral value (such as std::uint8_t) or any other field from comms::field namespace.
For example:
using RawDataSeqField =
MyFieldBase,
std::uint8_t
>;
using CollectionOfBundlesField =
MyFieldBase,
std::field::Bundle<
MyFieldBase,
std::tuple<
>
>
>;
Base class to all the field classes.
Definition: Field.h:33
Field that represents a sequential collection of fields.
Definition: ArrayList.h:192
Field that represent integral value.
Definition: IntValue.h:72
TOptionsZero or more options that modify/refine default behaviour of the field.
Supported options are:
Inheritance diagram for comms::field::ArrayList< TFieldBase, TElement, TOptions >:
comms::Field< TOptions >

Public Types

using CommsTag = typename BaseImpl::CommsTag
 Tag indicating type of the field.
 
using ElementType = typename BaseImpl::ElementType
 Type of the element.
 
using ElemFixedSerLengthFieldPrefix = typename ParsedOptions::SequenceElemFixedSerLengthFieldPrefix
 Type of element's fixed length field prefix specified via comms::option::def::SequenceElemFixedSerLengthFieldPrefix. More...
 
using ElemSerLengthFieldPrefix = typename ParsedOptions::SequenceElemSerLengthFieldPrefix
 Type of element's length field prefix specified via comms::option::def::SequenceElemSerLengthFieldPrefix. More...
 
using Endian = typename BaseImpl::Endian
 Endian used for serialisation.
 
using FieldBase = TFieldBase
 Base class provided in the first template parameter.
 
using FieldType = typename ParsedOptions::FieldType
 Type of actual extending field specified via comms::option::def::FieldType. More...
 
using ParsedOptions = details::OptionsParser< TOptions... >
 All the options provided to this class bundled into struct.
 
using SerLengthFieldPrefix = typename ParsedOptions::SequenceSerLengthFieldPrefix
 Type of length field prefix specified via comms::option::def::SequenceSerLengthFieldPrefix. More...
 
using SizeFieldPrefix = typename ParsedOptions::SequenceSizeFieldPrefix
 Type of size field prefix specified via comms::option::def::SequenceSizeFieldPrefix. More...
 
using TerminationFieldSuffix = typename ParsedOptions::SequenceTerminationFieldSuffix
 Type of termination field suffix specified via comms::option::def::SequenceTerminationFieldSuffix. More...
 
using TrailingFieldSuffix = typename ParsedOptions::SequenceTrailingFieldSuffix
 Type of trailing field suffix specified via comms::option::def::SequenceTrailingFieldSuffix. More...
 
using ValueType = typename BaseImpl::ValueType
 Type of underlying value. More...
 
using VersionType = typename BaseImpl::VersionType
 Version type.
 

Public Member Functions

 ArrayList ()=default
 Default constructor.
 
 ArrayList (ArrayList &&)=default
 Move constructor.
 
 ArrayList (const ArrayList &)=default
 Copy constructor.
 
 ArrayList (const ValueType &val)
 Value constructor.
 
 ArrayList (ValueType &&val)
 Value constructor.
 
 ~ArrayList () noexcept=default
 Destructor.
 
bool canWrite () const
 Check of whether the field has a consistent value for writing.
 
void clearReadElemCount ()
 Clear forcing of the number of elements that must be read in the next read() invocation. More...
 
void clearReadElemLengthForcing ()
 Clear forcing the serialisation length of the single element. More...
 
void clearReadLengthForcing ()
 Clear forcing of the available length in the next read() invocation. More...
 
void forceReadElemCount (std::size_t count)
 Force number of elements that must be read in the next read() invocation. More...
 
void forceReadElemLength (std::size_t count)
 Force serialisation length of a single element. More...
 
void forceReadLength (std::size_t count)
 Force available length for the next read() invocation. More...
 
const ValueTypegetValue () const
 Get value. More...
 
VersionType getVersion () const
 Get version of the field. More...
 
constexpr std::size_t length () const
 Get length of serialised data.
 
ArrayListoperator= (ArrayList &&)=default
 Move assignment.
 
ArrayListoperator= (const ArrayList &)=default
 Copy assignment.
 
template<typename TIter >
ErrorStatus read (TIter &iter, std::size_t len)
 Read field value from input data sequence. More...
 
template<typename TIter >
void readNoStatus (TIter &iter)
 Read field value from input data sequence without error check and status report. More...
 
bool refresh ()
 Refresh the field. More...
 
template<typename U >
void setValue (U &&val)
 Set value. More...
 
bool setVersion (VersionType version)
 Default implementation of version update. More...
 
auto terminationFieldSuffix () -> decltype(BaseImpl::terminationFieldSuffix())
 Access list termination field. More...
 
auto terminationFieldSuffix () const -> decltype(BaseImpl::terminationFieldSuffix())
 Access list termination field (const variant) More...
 
bool valid () const
 Check validity of the field value. More...
 
ValueTypevalue ()
 Get access to the value storage.
 
const ValueTypevalue () const
 Get access to the value storage.
 
template<typename TIter >
ErrorStatus write (TIter &iter, std::size_t len) const
 Write current field value to output data sequence. More...
 
template<typename TIter >
void writeNoStatus (TIter &iter) const
 Write current field value to output data sequence without error check and status report. More...
 

Static Public Member Functions

static constexpr bool canWrite ()
 Default check of whether the field has a consistent value for writing. More...
 
static constexpr bool fixedSize ()
 Compile time inquiry of fixed size provided via comms::option::def::SequenceFixedSize option. More...
 
static constexpr bool hasElemFixedSerLengthFieldPrefix ()
 Compile time inquiry of whether comms::option::def::SequenceElemFixedSerLengthFieldPrefix option has been used.
 
static constexpr bool hasElemSerLengthFieldPrefix ()
 Compile time inquiry of whether comms::option::def::SequenceElemSerLengthFieldPrefix option has been used.
 
static constexpr bool hasEmptySerialization ()
 Compile time inquiry of whether comms::option::def::EmptySerialization option has been used.
 
static constexpr bool hasFailOnInvalid ()
 Compile time inquiry of whether comms::option::def::FailOnInvalid option has been used.
 
static constexpr bool hasFieldType ()
 Compile time inquiry of whether comms::option::def::FieldType option has been used.
 
static constexpr bool hasFixedSize ()
 Compile time inquiry of whether comms::option::def::SequenceFixedSize option has been used.
 
static constexpr bool hasIgnoreInvalid ()
 Compile time inquiry of whether comms::option::def::IgnoreInvalid option has been used.
 
static constexpr bool hasNonDefaultRefresh ()
 Compile time check if this class has non-default refresh functionality.
 
static constexpr bool hasReadNoStatus ()
 Compile time check of whether the field has proper readNoStatus() member function.
 
static constexpr bool hasSerLengthFieldPrefix ()
 Compile time inquiry of whether comms::option::def::SequenceSerLengthFieldPrefix option has been used.
 
static constexpr bool hasSizeFieldPrefix ()
 Compile time inquiry of whether comms::option::def::SequenceSizeFieldPrefix option has been used.
 
static constexpr bool hasTerminationFieldSuffix ()
 Compile time inquiry of whether comms::option::def::SequenceTerminationFieldSuffix option has been used.
 
static constexpr bool hasTrailingFieldSuffix ()
 Compile time inquiry of whether comms::option::def::SequenceTrailingFieldSuffix option has been used.
 
static constexpr bool hasVarLength ()
 Default check of whether the field has variable length definition via comms::option::def::VarLength option. More...
 
static constexpr bool hasWriteNoStatus ()
 Compile time check of whether the field has proper writeNoStatus() member function.
 
static constexpr bool isVersionDependent ()
 Compile time check if this class is version dependent.
 
static constexpr std::size_t maxLength ()
 Get maximal length that is required to serialise field of this type.
 
static constexpr std::size_t minLength ()
 Get minimal length that is required to serialise field of this type.
 
static constexpr bool valid ()
 Default validity check. More...
 

Static Protected Member Functions

template<typename T , typename TIter >
static T readData (TIter &iter)
 Read data from input buffer. More...
 
template<typename T , std::size_t TSize, typename TIter >
static T readData (TIter &iter)
 Read partial data from input buffer. More...
 
template<typename T , typename TIter >
static void writeData (T value, TIter &iter)
 Write data into the output buffer. More...
 
template<std::size_t TSize, typename T , typename TIter >
static void writeData (T value, TIter &iter)
 Write partial data into the output buffer. More...
 

Related Functions

(Note that these are not member functions.)

template<typename T >
constexpr bool isArrayList ()
 Compile time check function of whether a provided type is any variant of comms::field::ArrayList. More...
 
template<typename TFieldBase , typename TElement , typename... TOptions>
bool operator!= (const ArrayList< TFieldBase, TElement, TOptions... > &field1, const ArrayList< TFieldBase, TElement, TOptions... > &field2) noexcept
 Non-equality comparison operator. More...
 
template<typename TFieldBase , typename TElement , typename... TOptions>
bool operator< (const ArrayList< TFieldBase, TElement, TOptions... > &field1, const ArrayList< TFieldBase, TElement, TOptions... > &field2) noexcept
 Equivalence comparison operator. More...
 
template<typename TFieldBase , typename TElement , typename... TOptions>
bool operator== (const ArrayList< TFieldBase, TElement, TOptions... > &field1, const ArrayList< TFieldBase, TElement, TOptions... > &field2) noexcept
 Equality comparison operator. More...
 
template<typename TFieldBase , typename TElement , typename... TOptions>
ArrayList< TFieldBase, TElement, TOptions... > & toFieldBase (ArrayList< TFieldBase, TElement, TOptions... > &field)
 Upcast type of the field definition to its parent comms::field::ArrayList type in order to have access to its internal types.
 
template<typename TFieldBase , typename TElement , typename... TOptions>
const ArrayList< TFieldBase, TElement, TOptions... > & toFieldBase (const ArrayList< TFieldBase, TElement, TOptions... > &field)
 Upcast type of the field definition to its parent comms::field::ArrayList type in order to have access to its internal types.
 

Member Typedef Documentation

◆ ElemFixedSerLengthFieldPrefix

template<typename TFieldBase , typename TElement , typename... TOptions>
using comms::field::ArrayList< TFieldBase, TElement, TOptions >::ElemFixedSerLengthFieldPrefix = typename ParsedOptions::SequenceElemFixedSerLengthFieldPrefix

Type of element's fixed length field prefix specified via comms::option::def::SequenceElemFixedSerLengthFieldPrefix.

void if comms::option::def::SequenceElemFixedSerLengthFieldPrefix is not used.

◆ ElemSerLengthFieldPrefix

template<typename TFieldBase , typename TElement , typename... TOptions>
using comms::field::ArrayList< TFieldBase, TElement, TOptions >::ElemSerLengthFieldPrefix = typename ParsedOptions::SequenceElemSerLengthFieldPrefix

Type of element's length field prefix specified via comms::option::def::SequenceElemSerLengthFieldPrefix.

void if comms::option::def::SequenceElemSerLengthFieldPrefix is not used.

◆ FieldType

template<typename TFieldBase , typename TElement , typename... TOptions>
using comms::field::ArrayList< TFieldBase, TElement, TOptions >::FieldType = typename ParsedOptions::FieldType

Type of actual extending field specified via comms::option::def::FieldType.

void if comms::option::def::FieldType hasn't been applied.

◆ SerLengthFieldPrefix

template<typename TFieldBase , typename TElement , typename... TOptions>
using comms::field::ArrayList< TFieldBase, TElement, TOptions >::SerLengthFieldPrefix = typename ParsedOptions::SequenceSerLengthFieldPrefix

Type of length field prefix specified via comms::option::def::SequenceSerLengthFieldPrefix.

void if comms::option::def::SequenceSerLengthFieldPrefix is not used.

◆ SizeFieldPrefix

template<typename TFieldBase , typename TElement , typename... TOptions>
using comms::field::ArrayList< TFieldBase, TElement, TOptions >::SizeFieldPrefix = typename ParsedOptions::SequenceSizeFieldPrefix

Type of size field prefix specified via comms::option::def::SequenceSizeFieldPrefix.

void if comms::option::def::SequenceSizeFieldPrefix is not used.

◆ TerminationFieldSuffix

template<typename TFieldBase , typename TElement , typename... TOptions>
using comms::field::ArrayList< TFieldBase, TElement, TOptions >::TerminationFieldSuffix = typename ParsedOptions::SequenceTerminationFieldSuffix

Type of termination field suffix specified via comms::option::def::SequenceTerminationFieldSuffix.

void if comms::option::def::SequenceTerminationFieldSuffix is not used.

◆ TrailingFieldSuffix

template<typename TFieldBase , typename TElement , typename... TOptions>
using comms::field::ArrayList< TFieldBase, TElement, TOptions >::TrailingFieldSuffix = typename ParsedOptions::SequenceTrailingFieldSuffix

Type of trailing field suffix specified via comms::option::def::SequenceTrailingFieldSuffix.

void if comms::option::def::SequenceTrailingFieldSuffix is not used.

◆ ValueType

template<typename TFieldBase , typename TElement , typename... TOptions>
using comms::field::ArrayList< TFieldBase, TElement, TOptions >::ValueType = typename BaseImpl::ValueType

Type of underlying value.

If comms::option::app::FixedSizeStorage option is NOT used, the ValueType is std::vector<TElement>, otherwise it becomes comms::util::StaticVector<TElement, TSize>, where TSize is a size provided to comms::option::app::FixedSizeStorage option.

Member Function Documentation

◆ canWrite()

template<typename... TOptions>
static constexpr bool comms::Field< TOptions >::canWrite ( )
staticconstexprinherited

Default check of whether the field has a consistent value for writing.

Returns
Always true.

◆ clearReadElemCount()

template<typename TFieldBase , typename TElement , typename... TOptions>
void comms::field::ArrayList< TFieldBase, TElement, TOptions >::clearReadElemCount ( )

Clear forcing of the number of elements that must be read in the next read() invocation.

Exists only if comms::option::def::SequenceSizeForcingEnabled option has been used.

◆ clearReadElemLengthForcing()

template<typename TFieldBase , typename TElement , typename... TOptions>
void comms::field::ArrayList< TFieldBase, TElement, TOptions >::clearReadElemLengthForcing ( )

Clear forcing the serialisation length of the single element.

Exists only if comms::option::def::SequenceElemLengthForcingEnabled option has been used.

◆ clearReadLengthForcing()

template<typename TFieldBase , typename TElement , typename... TOptions>
void comms::field::ArrayList< TFieldBase, TElement, TOptions >::clearReadLengthForcing ( )

Clear forcing of the available length in the next read() invocation.

Exists only if comms::option::def::SequenceLengthForcingEnabled option has been used.

◆ fixedSize()

template<typename TFieldBase , typename TElement , typename... TOptions>
static constexpr bool comms::field::ArrayList< TFieldBase, TElement, TOptions >::fixedSize ( )
staticconstexpr

Compile time inquiry of fixed size provided via comms::option::def::SequenceFixedSize option.

If the comms::option::def::SequenceFixedSize option hasn't been used std::numeric_limits<std::size_t>::max() is returned.

◆ forceReadElemCount()

template<typename TFieldBase , typename TElement , typename... TOptions>
void comms::field::ArrayList< TFieldBase, TElement, TOptions >::forceReadElemCount ( std::size_t  count)

Force number of elements that must be read in the next read() invocation.

Exists only if comms::option::def::SequenceSizeForcingEnabled option has been used.

Parameters
[in]countNumber of elements to read during following read operation.

◆ forceReadElemLength()

template<typename TFieldBase , typename TElement , typename... TOptions>
void comms::field::ArrayList< TFieldBase, TElement, TOptions >::forceReadElemLength ( std::size_t  count)

Force serialisation length of a single element.

The function can be used to force a serialisation length of a single element within the ArrayList. Exists only if comms::option::def::SequenceElemLengthForcingEnabled option has been used.

Parameters
[in]countNumber of elements to read during following read operation.

◆ forceReadLength()

template<typename TFieldBase , typename TElement , typename... TOptions>
void comms::field::ArrayList< TFieldBase, TElement, TOptions >::forceReadLength ( std::size_t  count)

Force available length for the next read() invocation.

Exists only if comms::option::def::SequenceLengthForcingEnabled option has been used.

Parameters
[in]countNumber of elements to read during following read operation.

◆ getValue()

template<typename TFieldBase , typename TElement , typename... TOptions>
const ValueType& comms::field::ArrayList< TFieldBase, TElement, TOptions >::getValue ( ) const

Get value.

Implemented by calling value(), but can be overriden in the derived class

◆ getVersion()

template<typename TFieldBase , typename TElement , typename... TOptions>
VersionType comms::field::ArrayList< TFieldBase, TElement, TOptions >::getVersion ( ) const

Get version of the field.

Exists only if comms::option::def::VersionStorage option has been provided.

◆ hasVarLength()

template<typename... TOptions>
static constexpr bool comms::Field< TOptions >::hasVarLength ( )
staticconstexprinherited

Default check of whether the field has variable length definition via comms::option::def::VarLength option.

Returns
Always false.

◆ read()

template<typename TFieldBase , typename TElement , typename... TOptions>
template<typename TIter >
ErrorStatus comms::field::ArrayList< TFieldBase, TElement, TOptions >::read ( TIter &  iter,
std::size_t  len 
)

Read field value from input data sequence.

By default, the read operation will try to consume all the data available, unless size limiting option (such as comms::option::def::SequenceSizeFieldPrefix, comms::option::def::SequenceFixedSize, comms::option::def::SequenceSizeForcingEnabled, comms::option::def::SequenceLengthForcingEnabled) is used.

Parameters
[in,out]iterIterator to read the data.
[in]lenNumber of bytes available for reading.
Returns
Status of read operation.
Postcondition
Iterator is advanced.

◆ readData() [1/2]

template<typename... TOptions>
template<typename T , typename TIter >
static T comms::Field< TOptions >::readData ( TIter &  iter)
staticprotectedinherited

Read data from input buffer.

Use this function to read data from the intput buffer maintained by the caller. The endianness of the data will be as specified in options of the class.

Template Parameters
TReturn type
TIterType of input iterator
Parameters
[in,out]iterInput iterator.
Returns
The integral type value.
Precondition
TSize <= sizeof(T)
The iterator must be valid and can be successfully dereferenced and incremented at least sizeof(T) times.
Postcondition
The iterator is advanced.
Note
Thread safety: Safe for distinct stream buffers, unsafe otherwise.

◆ readData() [2/2]

template<typename... TOptions>
template<typename T , std::size_t TSize, typename TIter >
static T comms::Field< TOptions >::readData ( TIter &  iter)
staticprotectedinherited

Read partial data from input buffer.

Use this function to read data from the intput buffer maintained by the caller. The endianness of the data will be as specified in options of the class.

Template Parameters
TReturn type
TSizenumber of bytes to read
TIterType of input iterator
Parameters
[in,out]iterInput iterator.
Returns
The integral type value.
Precondition
TSize <= sizeof(T)
The iterator must be valid and can be successfully dereferenced and incremented at least TSize times.
Postcondition
The internal pointer of the stream buffer is advanced.
Note
Thread safety: Safe for distinct stream buffers, unsafe otherwise.

◆ readNoStatus()

template<typename TFieldBase , typename TElement , typename... TOptions>
template<typename TIter >
void comms::field::ArrayList< TFieldBase, TElement, TOptions >::readNoStatus ( TIter &  iter)

Read field value from input data sequence without error check and status report.

Similar to read(), but doesn't perform any correctness checks and doesn't report any failures.

Parameters
[in,out]iterIterator to read the data.
Postcondition
Iterator is advanced.

◆ refresh()

template<typename TFieldBase , typename TElement , typename... TOptions>
bool comms::field::ArrayList< TFieldBase, TElement, TOptions >::refresh ( )

Refresh the field.

Calls refresh() on all the elements (if they are fields and not raw bytes).

Returns true if any of the elements has been updated, false otherwise.

◆ setValue()

template<typename TFieldBase , typename TElement , typename... TOptions>
template<typename U >
void comms::field::ArrayList< TFieldBase, TElement, TOptions >::setValue ( U &&  val)

Set value.

Implemented as re-assigning to value(), but can be overriden in the derived class.

◆ setVersion()

template<typename TFieldBase , typename TElement , typename... TOptions>
bool comms::field::ArrayList< TFieldBase, TElement, TOptions >::setVersion ( VersionType  version)

Default implementation of version update.

Returns
true in case the field contents have changed, false otherwise

◆ terminationFieldSuffix() [1/2]

template<typename TFieldBase , typename TElement , typename... TOptions>
auto comms::field::ArrayList< TFieldBase, TElement, TOptions >::terminationFieldSuffix ( ) -> decltype(BaseImpl::terminationFieldSuffix())

Access list termination field.

Exists only if comms::option::def::SequenceTerminationFieldSuffix option has been used. The function can be used to access the termination field value after the read and/or before the write operations.

Precondition
hasTerminationFieldSuffix() returns true.

◆ terminationFieldSuffix() [2/2]

template<typename TFieldBase , typename TElement , typename... TOptions>
auto comms::field::ArrayList< TFieldBase, TElement, TOptions >::terminationFieldSuffix ( ) const -> decltype(BaseImpl::terminationFieldSuffix())

Access list termination field (const variant)

Exists only if comms::option::def::SequenceTerminationFieldSuffix option has been used. The function can be used to access the termination field value after the read and/or before the write operations.

Precondition
hasTerminationFieldSuffix() returns true.

◆ valid() [1/2]

template<typename... TOptions>
static constexpr bool comms::Field< TOptions >::valid ( )
staticconstexprinherited

Default validity check.

Always returns true, can be overriden by the derived class

Returns
Always true

◆ valid() [2/2]

template<typename TFieldBase , typename TElement , typename... TOptions>
bool comms::field::ArrayList< TFieldBase, TElement, TOptions >::valid ( ) const

Check validity of the field value.

The collection is valid if all the elements are valid.

Returns
true in case the field's value is valid, false otherwise.

◆ write()

template<typename TFieldBase , typename TElement , typename... TOptions>
template<typename TIter >
ErrorStatus comms::field::ArrayList< TFieldBase, TElement, TOptions >::write ( TIter &  iter,
std::size_t  len 
) const

Write current field value to output data sequence.

By default, the write operation will write all the elements the field contains. If comms::option::def::SequenceFixedSize option is used, the number of elements, that is going to be written, is exactly as the option specifies. If underlying vector storage doesn't contain enough data, the default constructed elements will be appended to the written sequence until the required amount of elements is reached.

Parameters
[in,out]iterIterator to write the data.
[in]lenMaximal number of bytes that can be written.
Returns
Status of write operation.
Postcondition
Iterator is advanced.

◆ writeData() [1/2]

template<typename... TOptions>
template<typename T , typename TIter >
static void comms::Field< TOptions >::writeData ( value,
TIter &  iter 
)
staticprotectedinherited

Write data into the output buffer.

Use this function to write data to the the buffer maintained by the caller. The endianness of the data will be as specified in the options provided to the class.

Template Parameters
TType of the value to write. Must be integral.
Typeof output iterator
Parameters
[in]valueIntegral type value to be written.
[in,out]iterOutput iterator.
Precondition
The iterator must be valid and can be successfully dereferenced and incremented at least sizeof(T) times.
Postcondition
The iterator is advanced.
Note
Thread safety: Safe for distinct buffers, unsafe otherwise.

◆ writeData() [2/2]

template<typename... TOptions>
template<std::size_t TSize, typename T , typename TIter >
static void comms::Field< TOptions >::writeData ( value,
TIter &  iter 
)
staticprotectedinherited

Write partial data into the output buffer.

Use this function to write partial data to the buffer maintained by the caller. The endianness of the data will be as specified the class options.

Template Parameters
TSizeLength of the value in bytes known in compile time.
TType of the value to write. Must be integral.
TIterType of output iterator
Parameters
[in]valueIntegral type value to be written.
[in,out]iterOutput iterator.
Precondition
TSize <= sizeof(T)
The iterator must be valid and can be successfully dereferenced and incremented at least TSize times.
Postcondition
The iterator is advanced.
Note
Thread safety: Safe for distinct buffers, unsafe otherwise.

◆ writeNoStatus()

template<typename TFieldBase , typename TElement , typename... TOptions>
template<typename TIter >
void comms::field::ArrayList< TFieldBase, TElement, TOptions >::writeNoStatus ( TIter &  iter) const

Write current field value to output data sequence without error check and status report.

Similar to write(), but doesn't perform any correctness checks and doesn't report any failures.

Parameters
[in,out]iterIterator to write the data.
Postcondition
Iterator is advanced.

Friends And Related Function Documentation

◆ isArrayList()

template<typename T >
constexpr bool isArrayList ( )
related

Compile time check function of whether a provided type is any variant of comms::field::ArrayList.

Template Parameters
TAny type.
Returns
true in case provided type is any variant of ArrayList

◆ operator!=()

template<typename TFieldBase , typename TElement , typename... TOptions>
bool operator!= ( const ArrayList< TFieldBase, TElement, TOptions... > &  field1,
const ArrayList< TFieldBase, TElement, TOptions... > &  field2 
)
related

Non-equality comparison operator.

Parameters
[in]field1First field.
[in]field2Second field.
Returns
true in case fields are NOT equal, false otherwise.

◆ operator<()

template<typename TFieldBase , typename TElement , typename... TOptions>
bool operator< ( const ArrayList< TFieldBase, TElement, TOptions... > &  field1,
const ArrayList< TFieldBase, TElement, TOptions... > &  field2 
)
related

Equivalence comparison operator.

Performs lexicographical compare of two array fields.

Parameters
[in]field1First field.
[in]field2Second field.
Returns
true in case first field is less than second field.

◆ operator==()

template<typename TFieldBase , typename TElement , typename... TOptions>
bool operator== ( const ArrayList< TFieldBase, TElement, TOptions... > &  field1,
const ArrayList< TFieldBase, TElement, TOptions... > &  field2 
)
related

Equality comparison operator.

Parameters
[in]field1First field.
[in]field2Second field.
Returns
true in case fields are equal, false otherwise.

The documentation for this class was generated from the following file: