RTI Connext .NET API (legacy)  Version 6.1.1
DDS::CompressionSettings_t Struct Reference

<<extension>> Settings related to compressing user data. More...

#include <managed_infrastructure.h>

Public Attributes

System::UInt32 compression_ids
 <<extension>> Mask that represents the compression algorithms enabled. More...
 
System::UInt32 writer_compression_level
 <<extension>> The level of compression to use when compressing data. More...
 
System::Int32 writer_compression_threshold
 <<extension>> The threshold, in bytes, above which a serialized sample will be eligible to be compressed. More...
 

Static Public Attributes

static System::UInt32 COMPRESSION_ID_ZLIB = DDS_COMPRESSION_ID_ZLIB
 <<extension>> Corresponds to the ID of the compression algorithm ZLIB. This is the only built-in compression algorithm that is supported when batching is enabled. More...
 
static System::UInt32 COMPRESSION_ID_BZIP2 = DDS_COMPRESSION_ID_BZIP2
 <<extension>> Corresponds to the ID of the compression algorithm BZIP2. More...
 
static System::UInt32 COMPRESSION_ID_LZ4 = DDS_COMPRESSION_ID_LZ4
 <<extension>> Corresponds to the ID of the compression algorithm LZ4. More...
 
static System::UInt32 COMPRESSION_ID_MASK_NONE = DDS_COMPRESSION_ID_MASK_NONE
 <<extension>> System::Int32 used to disable user-data compression for an endpoint. More...
 
static System::UInt32 COMPRESSION_ID_MASK_ALL = DDS_COMPRESSION_ID_MASK_ALL
 <<extension>> System::Int32 mask with all the suported built-in compression algorithms enabled. More...
 
static System::UInt32 COMPRESSION_ID_MASK_PUBLICATION_DEFAULT = DDS_COMPRESSION_ID_MASK_PUBLICATION_DEFAULT
 <<extension>> System::Int32 mask with the default value for publication. More...
 
static System::UInt32 COMPRESSION_ID_MASK_SUBSCRIPTION_DEFAULT = DDS_COMPRESSION_ID_MASK_SUBSCRIPTION_DEFAULT
 <<extension>> System::Int32 mask with the default value for subscription. More...
 
static System::UInt32 COMPRESSION_LEVEL_DEFAULT = DDS_COMPRESSION_LEVEL_DEFAULT
 <<extension>> Default level of compression. More...
 
static System::UInt32 COMPRESSION_LEVEL_BEST_COMPRESSION = DDS_COMPRESSION_LEVEL_BEST_COMPRESSION
 <<extension>> The best compression ratio possible for a compression algorithm. More...
 
static System::UInt32 COMPRESSION_LEVEL_BEST_SPEED = DDS_COMPRESSION_LEVEL_BEST_SPEED
 <<extension>> The best compression speed possible for a compression algorithm. More...
 

Detailed Description

<<extension>> Settings related to compressing user data.

QoS:
DDS::DataRepresentationQosPolicy

Member Data Documentation

◆ compression_ids

System::UInt32 DDS::CompressionSettings_t::compression_ids

<<extension>> Mask that represents the compression algorithms enabled.

A bitmap that represents the compression algorithm IDs (System::Int32) that are supported by the endpoint. The DDS::DataWriter creation will fail if more than one algorithm is provided.

If a DDS::DataWriter inherits multiple compression IDs from a DDS::Topic, only the least significant bit enabled will be inherited. This forces the following order of preference: DDS::CompressionSettings_t::COMPRESSION_ID_ZLIB, DDS::CompressionSettings_t::COMPRESSION_ID_BZIP2, DDS::CompressionSettings_t::COMPRESSION_ID_LZ4.

Interactions with Security and Batching: Currently, the only algorithm that is supported when compression and batching are enabled on the same DDS::DataWriter is DDS::CompressionSettings_t::COMPRESSION_ID_ZLIB.

The combination of compression, batching and data protection is not supported. Please consider using RTPS protection instead of data protection if compression and batching are required. The reason behind this restriction is that when using batching, compression is applied to the entire batch, while data protection is applied to each of the batch samples individually. Compressing already encrypted data results in an expansion of the data instead of a reduction of it because encrypted data does not lend itself to compression. Therefore this combination is not supported and will result in a DataWriter creation error.

Note: When DDS::DataWriterProtocolQosPolicy::serialize_key_with_dispose is enabled and a dispose message is sent, the serialized key is not compressed.

[default] For DDS::Topic, DDS::DataWriter a System::Int32 mask set to DDS::CompressionSettings_t::COMPRESSION_ID_MASK_NONE

[default] For DDS::DataReader a System::Int32 mask set to DDS::CompressionSettings_t::COMPRESSION_ID_MASK_ALL.

◆ writer_compression_level

System::UInt32 DDS::CompressionSettings_t::writer_compression_level

<<extension>> The level of compression to use when compressing data.

Compression algorithms typically allow you to choose a level with which to compress the data. Each level has trade-offs between the resulting compression ratio and the speed of compression.

[range] [0, 10]

The value 1 represents the fastest compression time and the lowest compression ratio. The value 10 represents the slowest compression time but the highest compression ratio.

A value of 0 disables compression.

[default] DDS::CompressionSettings_t::COMPRESSION_LEVEL_BEST_COMPRESSION

Note
Only available for a DDS::DataWriter and DDS::Topic.

◆ writer_compression_threshold

System::Int32 DDS::CompressionSettings_t::writer_compression_threshold

<<extension>> The threshold, in bytes, above which a serialized sample will be eligible to be compressed.

Any sample with a serialized size greater than or equal to the threshold will be eligible to be compressed. All samples with an eligible serialized size will be compressed. Only if the compressed size is smaller than the serialized size will the sample be stored and sent compressed on the wire.

For batching we check the maximum serialized size of the batch, calculated as serialized_sample_max_size * DDS::BatchQosPolicy::max_samples

[range] [0, 2147483647] or DDS::ResourceLimitsQosPolicy::LENGTH_UNLIMITED

Setting the threshold to DDS::ResourceLimitsQosPolicy::LENGTH_UNLIMITED disables the compression.

[default] DDS::CompressionSettings_t::COMPRESSION_THRESHOLD_DEFAULT (8192)

Note
Only available for a DDS::DataWriter and DDS::Topic.

◆ COMPRESSION_ID_ZLIB

System::UInt32 DDS::CompressionSettings_t::COMPRESSION_ID_ZLIB = DDS_COMPRESSION_ID_ZLIB
static

<<extension>> Corresponds to the ID of the compression algorithm ZLIB. This is the only built-in compression algorithm that is supported when batching is enabled.

◆ COMPRESSION_ID_BZIP2

System::UInt32 DDS::CompressionSettings_t::COMPRESSION_ID_BZIP2 = DDS_COMPRESSION_ID_BZIP2
static

<<extension>> Corresponds to the ID of the compression algorithm BZIP2.

◆ COMPRESSION_ID_LZ4

System::UInt32 DDS::CompressionSettings_t::COMPRESSION_ID_LZ4 = DDS_COMPRESSION_ID_LZ4
static

<<extension>> Corresponds to the ID of the compression algorithm LZ4.

◆ COMPRESSION_ID_MASK_NONE

System::UInt32 DDS::CompressionSettings_t::COMPRESSION_ID_MASK_NONE = DDS_COMPRESSION_ID_MASK_NONE
static

<<extension>> System::Int32 used to disable user-data compression for an endpoint.

◆ COMPRESSION_ID_MASK_ALL

System::UInt32 DDS::CompressionSettings_t::COMPRESSION_ID_MASK_ALL = DDS_COMPRESSION_ID_MASK_ALL
static

<<extension>> System::Int32 mask with all the suported built-in compression algorithms enabled.

◆ COMPRESSION_ID_MASK_PUBLICATION_DEFAULT

System::UInt32 DDS::CompressionSettings_t::COMPRESSION_ID_MASK_PUBLICATION_DEFAULT = DDS_COMPRESSION_ID_MASK_PUBLICATION_DEFAULT
static

◆ COMPRESSION_ID_MASK_SUBSCRIPTION_DEFAULT

System::UInt32 DDS::CompressionSettings_t::COMPRESSION_ID_MASK_SUBSCRIPTION_DEFAULT = DDS_COMPRESSION_ID_MASK_SUBSCRIPTION_DEFAULT
static

◆ COMPRESSION_LEVEL_DEFAULT

System::UInt32 DDS::CompressionSettings_t::COMPRESSION_LEVEL_DEFAULT = DDS_COMPRESSION_LEVEL_DEFAULT
static

◆ COMPRESSION_LEVEL_BEST_COMPRESSION

System::UInt32 DDS::CompressionSettings_t::COMPRESSION_LEVEL_BEST_COMPRESSION = DDS_COMPRESSION_LEVEL_BEST_COMPRESSION
static

<<extension>> The best compression ratio possible for a compression algorithm.

See also
DDS::CompressionSettings_t::writer_compression_level

◆ COMPRESSION_LEVEL_BEST_SPEED

System::UInt32 DDS::CompressionSettings_t::COMPRESSION_LEVEL_BEST_SPEED = DDS_COMPRESSION_LEVEL_BEST_SPEED
static

<<extension>> The best compression speed possible for a compression algorithm.

See also
DDS::CompressionSettings_t::writer_compression_level