RTI Connext Java API  Version 5.3.1
 All Classes Namespaces Functions Variables Groups Pages
BuiltinTopicReaderResourceLimits_t Class Reference

Built-in topic reader's resource limits. More...

Inherits Struct.

Public Member Functions

 BuiltinTopicReaderResourceLimits_t ()
 Constructor with default initial and maximum values.
 
 BuiltinTopicReaderResourceLimits_t (int initial_samples, int max_samples, int initial_infos, int max_infos, int initial_outstanding_reads, int max_outstanding_reads, int max_samples_per_read, boolean disable_fragmentation_support, int max_fragmented_samples, int initial_fragmented_samples, int max_fragmented_samples_per_remote_writer, int max_fragments_per_sample, boolean dynamically_allocate_fragmented_samples)
 Constructor with the given initial and maximum values.
 
- Public Member Functions inherited from Struct
abstract boolean equals (Object obj)
 
abstract int hashCode ()
 
String toString ()
 

Public Attributes

int initial_samples
 Initial number of samples.
 
int max_samples
 Maximum number of samples.
 
int initial_infos
 Initial number of sample infos.
 
int max_infos
 Maximum number of sample infos.
 
boolean disable_fragmentation_support
 Determines whether the built-in topic com.rti.dds.subscription.DataReader can receive fragmented samples.
 
int max_fragmented_samples
 The maximum number of samples for which the built-in topic com.rti.dds.subscription.DataReader may store fragments at a given point in time.
 
int initial_fragmented_samples
 The initial number of samples for which a built-in topic com.rti.dds.subscription.DataReader may store fragments.
 
int max_fragmented_samples_per_remote_writer
 The maximum number of samples per remote writer for which a built-in topic com.rti.dds.subscription.DataReader may store fragments.
 
int max_fragments_per_sample
 Maximum number of fragments for a single sample.
 
boolean dynamically_allocate_fragmented_samples
 Determines whether the built-in topic com.rti.dds.subscription.DataReader pre-allocates storage for storing fragmented samples.
 

Additional Inherited Members

- Protected Member Functions inherited from Struct
 Struct ()
 
abstract void pull_from_nativeI (long native_status)
 
abstract void push_to_nativeI (long native_status)
 

Detailed Description

Built-in topic reader's resource limits.

Defines the resources that can be used for a built-in-topic data reader.

A built-in topic data reader subscribes reliably to built-in topics containing declarations of new entities or updates to existing entities in the domain. Keys are used to differentiate among entities of the same type. RTI Connext assigns a unique key to each entity in a domain.

Properties:
RxO = N/A
Changeable = NO
QoS:
com.rti.dds.infrastructure.DiscoveryConfigQosPolicy

Constructor & Destructor Documentation

Constructor with default initial and maximum values.

BuiltinTopicReaderResourceLimits_t ( int  initial_samples,
int  max_samples,
int  initial_infos,
int  max_infos,
int  initial_outstanding_reads,
int  max_outstanding_reads,
int  max_samples_per_read,
boolean  disable_fragmentation_support,
int  max_fragmented_samples,
int  initial_fragmented_samples,
int  max_fragmented_samples_per_remote_writer,
int  max_fragments_per_sample,
boolean  dynamically_allocate_fragmented_samples 
)

Constructor with the given initial and maximum values.

Member Data Documentation

int initial_samples

Initial number of samples.

This should be a value between 1 and initial number of instance of the built-in-topic reader, depending on how many instances are sending data concurrently.

[default] 64

[range] [1, 1 million], <= max_samples

int max_samples

Maximum number of samples.

This should be a value between 1 and max number of instance of the built-in-topic reader, depending on how many instances are sending data concurrently. Also, it should not be less than initial_samples.

[default] com.rti.dds.infrastructure.ResourceLimitsQosPolicy.LENGTH_UNLIMITED

[range] [1, 1 million] or com.rti.dds.infrastructure.ResourceLimitsQosPolicy.LENGTH_UNLIMITED, >= initial_samples

int initial_infos

Initial number of sample infos.

The initial number of info units that a built-in topic com.rti.dds.subscription.DataReader can have. Info units are used to store com.rti.dds.subscription.SampleInfo.

[default] 64

[range] [1, 1 million] <= max_infos

int max_infos

Maximum number of sample infos.

The maximum number of info units that a built-in topic com.rti.dds.subscription.DataReader can use to store com.rti.dds.subscription.SampleInfo.

[default] com.rti.dds.infrastructure.ResourceLimitsQosPolicy.LENGTH_UNLIMITED

[range] [1, 1 million] or com.rti.dds.infrastructure.ResourceLimitsQosPolicy.LENGTH_UNLIMITED, >= initial_infos

boolean disable_fragmentation_support

Determines whether the built-in topic com.rti.dds.subscription.DataReader can receive fragmented samples.

When fragmentation support is not needed, disabling fragmentation support will save some memory resources.

[default] com.rti.dds.infrastructure.false

int max_fragmented_samples

The maximum number of samples for which the built-in topic com.rti.dds.subscription.DataReader may store fragments at a given point in time.

At any given time, a built-in topic com.rti.dds.subscription.DataReader may store fragments for up to max_fragmented_samples samples while waiting for the remaining fragments. These samples need not have consecutive sequence numbers and may have been sent by different built-in topic com.rti.dds.publication.DataWriter instances.

Once all fragments of a sample have been received, the sample is treated as a regular sample and becomes subject to standard QoS settings such as com.rti.dds.infrastructure.BuiltinTopicReaderResourceLimits_t.max_samples.

The middleware will drop fragments if the max_fragmented_samples limit has been reached. For best-effort communication, the middleware will accept a fragment for a new sample, but drop the oldest fragmented sample from the same remote writer. For reliable communication, the middleware will drop fragments for any new samples until all fragments for at least one older sample from that writer have been received.

Only applies if com.rti.dds.infrastructure.BuiltinTopicReaderResourceLimits_t.disable_fragmentation_support is com.rti.dds.infrastructure.false.

[default] 1024

[range] [1, 1 million]

int initial_fragmented_samples

The initial number of samples for which a built-in topic com.rti.dds.subscription.DataReader may store fragments.

Only applies if com.rti.dds.infrastructure.BuiltinTopicReaderResourceLimits_t.disable_fragmentation_support is com.rti.dds.infrastructure.false.

[default] 4

[range] [1,1024], <= max_fragmented_samples

int max_fragmented_samples_per_remote_writer

The maximum number of samples per remote writer for which a built-in topic com.rti.dds.subscription.DataReader may store fragments.

Logical limit so a single remote writer cannot consume all available resources.

Only applies if com.rti.dds.infrastructure.BuiltinTopicReaderResourceLimits_t.disable_fragmentation_support is com.rti.dds.infrastructure.false.

[default] 256

[range] [1, 1 million], <= max_fragmented_samples

int max_fragments_per_sample
boolean dynamically_allocate_fragmented_samples

Determines whether the built-in topic com.rti.dds.subscription.DataReader pre-allocates storage for storing fragmented samples.

By default, the middleware does not allocate memory upfront, but instead allocates memory from the heap upon receiving the first fragment of a new sample. The amount of memory allocated equals the amount of memory needed to store all fragments in the sample. Once all fragments of a sample have been received, the sample is deserialized and stored in the regular receive queue. At that time, the dynamically allocated memory is freed again.

This QoS setting is useful for large, but variable-sized data types where upfront memory allocation for multiple samples based on the maximum possible sample size may be expensive. The main disadvantage of not pre-allocating memory is that one can no longer guarantee the middleware will have sufficient resources at run-time.

If dynamically_allocate_fragmented_samples is set to com.rti.dds.infrastructure.false, the middleware will allocate memory upfront for storing fragments for up to com.rti.dds.infrastructure.DataReaderResourceLimitsQosPolicy.initial_fragmented_samples samples. This memory may grow up to com.rti.dds.infrastructure.DataReaderResourceLimitsQosPolicy.max_fragmented_samples if needed.

Only applies if com.rti.dds.infrastructure.DataReaderResourceLimitsQosPolicy.disable_fragmentation_support is com.rti.dds.infrastructure.false.

[default] com.rti.dds.infrastructure.true


RTI Connext Java API Version 5.3.1 Copyright © Mon Feb 19 2018 Real-Time Innovations, Inc