RTI Connext Traditional C++ API  Version 7.0.0
DDS_DataRepresentationQosPolicy Struct Reference

This QoS policy contains a list of representation identifiers and compression settings used by DDSDataWriter and DDSDataReader entities to negotiate which data representation and compression settings to use. More...

Public Attributes

struct DDS_DataRepresentationIdSeq value
 Sequence of representation identifiers. More...
 
struct DDS_CompressionSettings_t compression_settings
 <<extension>> Structure that contains the compression settings. More...
 

Detailed Description

This QoS policy contains a list of representation identifiers and compression settings used by DDSDataWriter and DDSDataReader entities to negotiate which data representation and compression settings to use.

Entity:
DDSTopic, DDSDataReader, DDSDataWriter
Status:
DDS_OFFERED_INCOMPATIBLE_QOS_STATUS, DDS_REQUESTED_INCOMPATIBLE_QOS_STATUS
Properties:
RxO = YES
Changeable = UNTIL ENABLE
See also
DATA_REPRESENTATION

This policy has request-offer semantics for both representation and compression. For representation, a DDSDataWriter may only offer a single representation. Attempting to put multiple representations in a DDSDataWriter will result in DDS_RETCODE_INCONSISTENT_POLICY. A DDSDataWriter will use its offered policy to communicate with its matched DDSDataReader entities. A DDSDataReader requests one or more representations. If a DDSDataWriter offers a representation that is contained within the sequence of the DDSDataReader, the offer satisfies the request and the policies are compatible. Otherwise, they are incompatible.

When representations are specified in the DDS_TopicQos, DDSPublisher::copy_from_topic_qos copies the first element of the sequence, and DDSSubscriber::copy_from_topic_qos copies the whole sequence.

For Compression, only the DDS_CompressionSettings_t::compression_ids is propagated and a DDSDataWriter may only offer a single compression id. Attempting to put multiple compression_ids in a DDSDataWriter will result in DDS_RETCODE_INCONSISTENT_POLICY.

A DDSDataWriter will use its offered compression algorithm to compress data that it sends to its matched DDSDataReader entities. A DDSDataReader requests zero or more compression algorithms. If a DDSDataWriter offers a representation that is contained within the algorithms requested by the DDSDataReader, the offer satisfies the request and the policies are compatible. Otherwise, they are incompatible.

When compression IDs are specified in the DDS_TopicQos, DDSPublisher::copy_from_topic_qos copies a single compression ID (see DDS_CompressionSettings_t::compression_ids), and DDSSubscriber::copy_from_topic_qos copies all of the compression_ids.

Member Data Documentation

◆ value

struct DDS_DataRepresentationIdSeq DDS_DataRepresentationQosPolicy::value

Sequence of representation identifiers.

[default] For DDSTopic, DDSDataWriter, and DDSDataReader, a list with one element: DDS_AUTO_DATA_REPRESENTATION.

Note
An empty sequence is equivalent to a list with one element: DDS_XCDR_DATA_REPRESENTATION.

◆ compression_settings

struct DDS_CompressionSettings_t DDS_DataRepresentationQosPolicy::compression_settings

<<extension>> Structure that contains the compression settings.

compression_ids:
[default] The value depends on the entity
DDSDataWriter and DDSTopic are set to DDS_COMPRESSION_ID_MASK_NONE
DDSDataReader DDS_COMPRESSION_ID_MASK_ALL

writer_compression_level:
[default] The value depends on the entity
DDSDataWriter and DDSTopic are set to DDS_COMPRESSION_LEVEL_DEFAULT
DDSDataReader NOT SUPPORTED

writer_compression_threshold:
[default] The value depends on the entity
DDSDataWriter and DDSTopic are set to DDS_COMPRESSION_THRESHOLD_DEFAULT
DDSDataReader NOT SUPPORTED

See also
DDS_CompressionSettings_t