RTI Connext Modern C++ API Version 7.3.0
rti::flat::PrimitiveSequenceBuilder< T > Class Template Reference

Builds a sequence of primitive members. More...

#include <SequenceBuilders.hpp>

Inheritance diagram for rti::flat::PrimitiveSequenceBuilder< T >:
rti::flat::AbstractSequenceBuilder< detail::primitive_sequence_dheader_gen< T >::type > rti::flat::AbstractListBuilder< detail::primitive_sequence_dheader_gen< T >::type > rti::flat::AbstractBuilder

Public Member Functions

PrimitiveSequenceBuilderadd_next (T value)
 Adds the next element. More...
 
PrimitiveSequenceBuilderadd_n (const T *array, unsigned int count)
 Adds all the elements in an array. More...
 
PrimitiveSequenceBuilderadd_n (unsigned int count, T value)
 Adds a number of elements with the same value. More...
 
PrimitiveSequenceBuilderadd_n (unsigned int count)
 Adds a number of uninitialized elements. More...
 
Offset finish ()
 Finishes building the sequence. More...
 
- Public Member Functions inherited from rti::flat::AbstractSequenceBuilder< detail::primitive_sequence_dheader_gen< T >::type >
unsigned int element_count () const
 Returns the current number of elements that have been added. More...
 
- Public Member Functions inherited from rti::flat::AbstractBuilder
void discard ()
 Discards a member in process of being built. More...
 
bool is_nested () const
 Returns whether this is a member Builder. More...
 
bool is_valid () const
 Whether this Builder is valid. More...
 
rti::xcdr::length_t capacity () const
 Returns the total capacity in bytes. More...
 

Additional Inherited Members

- Protected Member Functions inherited from rti::flat::AbstractListBuilder< detail::primitive_sequence_dheader_gen< T >::type >
unsigned int element_count () const
 Returns the current number of elements that have been added. More...
 
- Protected Member Functions inherited from rti::flat::AbstractBuilder
virtual ~AbstractBuilder ()
 If this is a member Builder, it calls finish(). More...
 

Detailed Description

template<typename T>
class rti::flat::PrimitiveSequenceBuilder< T >

Builds a sequence of primitive members.

The elements can be added one by one with add_next() or all at once with add_n().

Member Function Documentation

◆ add_next()

template<typename T >
PrimitiveSequenceBuilder & rti::flat::PrimitiveSequenceBuilder< T >::add_next ( value)
inline

Adds the next element.

Parameters
valueThe primitive element to add

◆ add_n() [1/3]

template<typename T >
PrimitiveSequenceBuilder & rti::flat::PrimitiveSequenceBuilder< T >::add_n ( const T *  array,
unsigned int  count 
)
inline

Adds all the elements in an array.

Parameters
arrayThe array containing the values to add
countThe size of the array

◆ add_n() [2/3]

template<typename T >
PrimitiveSequenceBuilder & rti::flat::PrimitiveSequenceBuilder< T >::add_n ( unsigned int  count,
value 
)
inline

Adds a number of elements with the same value.

This overload initializes all the elements to a value.

Note
This operation is O(count). The other overloads, add_n(unsigned int) and add_n(const T*, unsigned int), are more efficient
Parameters
countThe number of elements to add
valueThe value to set for each element

◆ add_n() [3/3]

template<typename T >
PrimitiveSequenceBuilder & rti::flat::PrimitiveSequenceBuilder< T >::add_n ( unsigned int  count)
inline

Adds a number of uninitialized elements.

This operation is O(1), since it leaves the elements uninitialized. They can be initialized using the Offset returned by finish() and rti::flat::plain_cast(). For example:

MyFlatMutableBuilder builder = ...;
auto seq_builder = builder.build_my_primitive_seq();
seq_builder.add_n(1000);
auto seq_offset = seq_builder.finish();
int32_t *elements = rti::flat::plain_cast(seq_offset);
for (int i = 0; i < 1000; i++) {
elements[i] = ...;
}
Represents the Builder for an arbitrary user-defined mutable type.
Definition: Builder.hpp:206
rti::flat::PrimitiveSequenceBuilder< int32_t > build_my_primitive_seq()
Begins building a primitive-sequence member.
flat_type_traits< OffsetType >::plain_type * plain_cast(OffsetType &offset)
Casts into an equivalent plain C++ type.
Definition: FlatTypeTraits.hpp:220
Parameters
countThe number of elements to add

◆ finish()

template<typename T >
Offset rti::flat::PrimitiveSequenceBuilder< T >::finish ( )
inline

Finishes building the sequence.

Returns
An Offset to the member that has been built.
See also
discard()