DDS_DataWriterResourceLimitsQosPolicy Struct Reference
[DATA_WRITER_RESOURCE_LIMITS]

Various settings that configure how a DDSDataWriter allocates and uses physical memory for internal resources. More...

List of all members.

Public Attributes

DDS_Long initial_concurrent_blocking_threads
 The initial number of threads that are allowed to concurrently block on write call on the same DDSDataWriter.
DDS_Long max_concurrent_blocking_threads
 The maximum number of threads that are allowed to concurrently block on write call on the same DDSDataWriter.
DDS_Long max_remote_reader_filters
 The maximum number of remote readers for which the writer will perform content-based filtering.
DDS_Long initial_batches
 Represents the initial number of batches a DDSDataWriter will manage.
DDS_Long max_batches
 Represents the maximum number of batches a DDSDataWriter will manage.
DDS_Long cookie_max_length
 Represents the maximum length in bytes of a DDS_Cookie_t.
DDS_DataWriterResourceLimitsInstanceReplacementKind instance_replacement
 Sets the kinds of instances allowed to be replaced when instance resource limits are reached.
DDS_Boolean replace_empty_instances
 Whether or not to replace empty instances during instance replacement.
DDS_Boolean autoregister_instances
 Whether or not to automatically register new instances.
DDS_Long initial_virtual_writers
 The initial number of virtual writers supported by a DDSDataWriter.
DDS_Long max_virtual_writers
 The maximum number of virtual writers supported by a DDSDataWriter.


Detailed Description

Various settings that configure how a DDSDataWriter allocates and uses physical memory for internal resources.

DataWriters must allocate internal structures to handle the simultaneously blocking of threads trying to call FooDataWriter::write on the same DDSDataWriter, for the storage used to batch small samples, and for content-based filters specified by DataReaders.

Most of these internal structures start at an initial size and, by default, will be grown as needed by dynamically allocating additional memory. You may set fixed, maximum sizes for these internal structures if you want to bound the amount of memory that can be used by a DDSDataWriter. By setting the initial size to the maximum size, you will prevent RTI Data Distribution Service from dynamically allocating any memory after the creation of the DDSDataWriter.

This QoS policy is an extension to the DDS standard.

Entity:
DDSDataWriter
Properties:
RxO = N/A
Changeable = NO

Member Data Documentation

The initial number of threads that are allowed to concurrently block on write call on the same DDSDataWriter.

This value only applies if DDS_HistoryQosPolicy has its kind set to DDS_KEEP_ALL_HISTORY_QOS and DDS_ReliabilityQosPolicy::max_blocking_time is > 0.

[default] 1

[range] [1, 10000], <= max_concurrent_blocking_threads

The maximum number of threads that are allowed to concurrently block on write call on the same DDSDataWriter.

This value only applies if DDS_HistoryQosPolicy has its kind set to DDS_KEEP_ALL_HISTORY_QOS and DDS_ReliabilityQosPolicy::max_blocking_time is > 0.

[default] DDS_LENGTH_UNLIMITED

[range] [1, 10000] or DDS_LENGTH_UNLIMITED, >= initial_concurrent_blocking_threads

The maximum number of remote readers for which the writer will perform content-based filtering.

[default] 32

[range] [0, 32]

Represents the initial number of batches a DDSDataWriter will manage.

[default] 8

[range] [1,100 million]

See also:
DDS_BatchQosPolicy

Represents the maximum number of batches a DDSDataWriter will manage.

[default] DDS_LENGTH_UNLIMITED

When batching is enabled, the maximum number of samples that a DDSDataWriter can store is limited by this value and DDS_ResourceLimitsQosPolicy::max_samples.

[range] [1,100 million] or DDS_LENGTH_UNLIMITED >= DDS_RtpsReliableWriterProtocol_t::heartbeats_per_max_samples if batching is enabled

See also:
DDS_BatchQosPolicy

Represents the maximum length in bytes of a DDS_Cookie_t.

[default] DDS_LENGTH_UNLIMITED

Sets the maximum allowed byte-sequence length of a DDS_Cookie_t used when writing with parameters

[range] [1,100 million] or DDS_LENGTH_UNLIMITED

See also:
FooDataWriter::write_w_params, FooDataWriter::dispose_w_params, FooDataWriter::register_instance_w_params, FooDataWriter::unregister_instance_w_params

Sets the kinds of instances allowed to be replaced when instance resource limits are reached.

When a DDSDataWriter's number of active instances is greater than DDS_ResourceLimitsQosPolicy::max_instances, it will try to make room by replacing an existing instance. This field specifies the kinds of instances allowed to be replaced.

If a replaceable instance is not available, either an out-of-resources exception will be returned, or the writer may block if the instance reclamation was done when writing.

[default] DDS_UNREGISTERED_INSTANCE_REPLACEMENT

See also:
DDS_DataWriterResourceLimitsInstanceReplacementKind

Whether or not to replace empty instances during instance replacement.

When a DDSDataWriter has more active instances than allowed by DDS_ResourceLimitsQosPolicy::max_instances, it tries to make room by replacing an existing instance. This field configures whether empty instances (i.e. instances with no samples) may be replaced. If set DDS_BOOLEAN_TRUE, then a DDSDataWriter will first try reclaiming empty instances, before trying to replace whatever is specified by DDS_DataWriterResourceLimitsQosPolicy::instance_replacement.

[default] DDS_BOOLEAN_FALSE

See also:
DDS_DataWriterResourceLimitsInstanceReplacementKind

Whether or not to automatically register new instances.

[default] DDS_BOOLEAN_TRUE

When set to true, it is possible to write with a non-NIL handle of an instance that is not registered: the write operation will succeed and the instance will be registered. Otherwise, that write operation would fail.

See also:
FooDataWriter::write

The initial number of virtual writers supported by a DDSDataWriter.

[default] 1

[range] [1, 1000000], or DDS_LENGTH_UNLIMITED

The maximum number of virtual writers supported by a DDSDataWriter.

Sets the maximum number of unique virtual writers supported by a DDSDataWriter, where virtual writers are added when samples are written with the virtual writer GUID.

This field is specially relevant in the configuration of Persistence Service DataWriters since these DataWriters will publish samples on behalf of multiple virtual writers.

[default] DDS_LENGTH_UNLIMITED

[range] [1, 1000000], or DDS_LENGTH_UNLIMITED


RTI Data Distribution Service C++ API Version 4.5e Copyright © 23 Oct 2011 Real-Time Innovations, Inc