RTI Connext C API Version 7.3.0
DDS_DynamicDataTypeSerializationProperty_t Struct Reference

Properties that govern how data of a certain type will be serialized on the network. More...

Data Fields

DDS_Boolean use_42e_compatible_alignment
 [No longer supported] Use RTI Connext 4.2e-compatible alignment for large primitive types. More...
 
DDS_UnsignedLong max_size_serialized
 [No longer supported] If you were previously using this property, use DDS_DynamicDataProperty_t::buffer_max_size instead. The maximum number of bytes that objects of a given type could consume when serialized on the network. More...
 
DDS_UnsignedLong min_size_serialized
 [No longer supported] If you were previously using this property, use DDS_DynamicDataProperty_t::buffer_initial_size instead. The minimum number of bytes that objects of a given type could consume when serialized on the network. More...
 
DDS_Boolean trim_to_size
 Controls the growth of the buffer in a DynamicData object. More...
 
DDS_Boolean skip_deserialization
 Enable skipping the deserialization of data on the DataReader side. More...
 

Detailed Description

Properties that govern how data of a certain type will be serialized on the network.

Field Documentation

◆ use_42e_compatible_alignment

DDS_Boolean DDS_DynamicDataTypeSerializationProperty_t::use_42e_compatible_alignment

[No longer supported] Use RTI Connext 4.2e-compatible alignment for large primitive types.

In RTI Connext 4.2e, the default alignment for large primitive types – DDS_LongLong, DDS_UnsignedLongLong, DDS_Double, and DDS_LongDouble – was not RTPS-compliant. This compatibility mode allows applications targeting post-4.2e versions of RTI Connext to interoperate with 4.2e-based applications, regardless of the data types they use.

If this flag is not set, all data will be serialized in an RTPS-compliant manner, which for the types listed above, will not be interoperable with RTI Connext 4.2e.

◆ max_size_serialized

DDS_UnsignedLong DDS_DynamicDataTypeSerializationProperty_t::max_size_serialized

[No longer supported] If you were previously using this property, use DDS_DynamicDataProperty_t::buffer_max_size instead. The maximum number of bytes that objects of a given type could consume when serialized on the network.

This value is used to set the sizes of certain internal middleware buffers.

The effective value of the maximum serialized size will be the value of this field or the size automatically inferred from the type's DDS_TypeCode, whichever is smaller.

◆ min_size_serialized

DDS_UnsignedLong DDS_DynamicDataTypeSerializationProperty_t::min_size_serialized

[No longer supported] If you were previously using this property, use DDS_DynamicDataProperty_t::buffer_initial_size instead. The minimum number of bytes that objects of a given type could consume when serialized on the network.

This value is used to set the sizes of certain internal middleware buffers.

Default: 0xFFFFFFFF, a sentinel that indicates that this value must be equal to the value specified in max_size_serialized.

◆ trim_to_size

DDS_Boolean DDS_DynamicDataTypeSerializationProperty_t::trim_to_size

Controls the growth of the buffer in a DynamicData object.

This property only applies to DynamicData samples that are obtained from the sample pool that is created by each DynamicData DataReader.

If set to 0 (default): The buffer will not be reallocated unless the deserialized size of the incoming sample is greater than the current buffer size.

If set to 1: The buffer of a DynamicData object obtained from the DDS sample pool will be freed and re-allocated for each sample to just fit the size of the deserialized data of the incoming sample. The newly allocated size will not be smaller than DDS_DynamicDataProperty_t::buffer_initial_size.

◆ skip_deserialization

DDS_Boolean DDS_DynamicDataTypeSerializationProperty_t::skip_deserialization

Enable skipping the deserialization of data on the DataReader side.

Setting this member to DDS_BOOLEAN_TRUE boosts the performance for use cases in which the application does not require accessing the value of the different members of the received DynamicData object. Those use cases include recording, replaying, and bridging. You can access the CDR buffer of a DynamicData object by calling the function DDS_DynamicData_get_cdr_buffer. This configuration option is only available in C, Traditional C++, Modern C++, and Python language bindings.

When this option is set to DDS_BOOLEAN_TRUE, many of the DynamicData APIs cannot be used to access or manipulate the received DynamicData object. See each functions's documentation for whether or not the function is supported for DynamicData objects in CDR format.

See also
DDS_DynamicData_is_cdr
DDS_DynamicData_get_cdr_buffer
DDS_DynamicData_set_cdr_buffer

[default] DDS_BOOLEAN_FALSE