RTI Connext Modern C++ API  Version 6.0.1
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
rti::flat::FinalAlignedArrayOffset< ElementOffset, N > Class Template Reference

Offset to an array of final elements. More...

#include <SequenceOffsets.hpp>

Inheritance diagram for rti::flat::FinalAlignedArrayOffset< ElementOffset, N >:
rti::flat::AbstractAlignedList< ElementOffset > rti::flat::OffsetBase

Public Member Functions

ElementOffset get_element (unsigned int i)
 Gets the Offset to an element.
- Public Member Functions inherited from rti::flat::AbstractAlignedList< ElementOffset >
iterator begin ()
 Gets an iterator to the first Offset.
iterator end ()
 Gets an iterator to the past-the-end element.
- Public Member Functions inherited from rti::flat::OffsetBase
bool is_null () const
 Indicates whether this Offset doesn't point to a valid element.
bool is_cpp_compatible () const
 Indicates whether rti::flat::plain_cast() is possible.
const unsigned char * get_buffer () const
 Gets this member's position in the buffer.
offset_t get_buffer_size () const
 Gets the size, in bytes, of this member in the buffer.

Additional Inherited Members

- Public Types inherited from rti::flat::AbstractAlignedList< ElementOffset >
typedef SequenceIterator
< ElementOffset, typename
ElementOffset::offset_kind > 
 The iterator type, SequenceIterator.

Detailed Description

template<typename ElementOffset, unsigned int N>
class rti::flat::FinalAlignedArrayOffset< ElementOffset, N >

Offset to an array of final elements.

Template Parameters
ElementOffsetA final struct Offset, such as MyFlatFinalOffset.
NThe array bound. For multidimensional arrays, N is the product of each dimension bound.

Represents an Offset to an array member and allows getting an Offset to each of its elements.

The following code shows how to use a FinalAlignedArrayOffset to initialize an array member with MyFlatMutableBuilder:

auto array_offset = builder.add_my_final_array();
for (MyFlatFinalOffset element_offset : array_offset) {
// ...
// Or access an element directly:
auto element_offset = array_offset.get_element(3);

A more efficient way to access a final array, provided it complies with the required preconditions, is through rti::flat::plain_cast().

FinalArrayOffset and FinalAlignedArrayOffset provide the same interface, but have different implementation details. FinalArrayOffset is used when the array member is part of a final type too, whereas FinalAlignedArrayOffset corresponds to an array inside a mutable type.

A FinalAlignedArrayOffset may meet the requirements to be cast to an array of the equivalent plain C++ element type (see rti::flat::plain_cast()).

See Also
MutableArrayOffset encapsulates arrays of variable-size elements

Member Function Documentation

template<typename ElementOffset , unsigned int N>
ElementOffset rti::flat::FinalAlignedArrayOffset< ElementOffset, N >::get_element ( unsigned int  i)

Gets the Offset to an element.

iThe zero-based index to the element
The Offset to the element in the i-th position
See Also
rti::flat::plain_cast() for a method to access all the elements at once

RTI Connext Modern C++ API Version 6.0.1 Copyright © Sat Nov 23 2019 Real-Time Innovations, Inc