RTI Connext Java API  Version 5.1.0
DataReaderProtocolQosPolicy Class Reference

Along with com.rti.dds.infrastructure.WireProtocolQosPolicy and com.rti.dds.infrastructure.DataWriterProtocolQosPolicy, this QoS policy configures the DDS on-the-network protocol (RTPS). More...

Inheritance diagram for DataReaderProtocolQosPolicy:
QosPolicy

Public Attributes

GUID_t virtual_guid
 The virtual GUID (Global Unique Identifier).
 
int rtps_object_id
 The RTPS Object ID.
 
boolean expects_inline_qos
 Specifies whether this DataReader expects inline QoS with every sample.
 
boolean disable_positive_acks
 Whether the reader sends positive acknowledgements to writers.
 
boolean propagate_dispose_of_unregistered_instances
 Indicates whether or not an instance can move to the com.rti.dds.subscription.InstanceStateKind.InstanceStateKind.NOT_ALIVE_DISPOSED_INSTANCE_STATE state without being in the com.rti.dds.subscription.InstanceStateKind.InstanceStateKind.ALIVE_INTANCE_STATE state.
 
final RtpsReliableReaderProtocol_t rtps_reliable_reader
 The reliable protocol defined in RTPS.
 
- Public Attributes inherited from QosPolicy
final QosPolicyId_t id
 The ID of this QoS policy.
 
final String policy_name
 The name of this QoS policy.
 

Additional Inherited Members

- Public Member Functions inherited from Struct
abstract boolean equals (Object obj)
 
abstract int hashCode ()
 
String toString ()
 
- 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

Along with com.rti.dds.infrastructure.WireProtocolQosPolicy and com.rti.dds.infrastructure.DataWriterProtocolQosPolicy, this QoS policy configures the DDS on-the-network protocol (RTPS).

DDS has a standard protocol for packet (user and meta data) exchange between applications using DDS for communications. This QoS policy and com.rti.dds.infrastructure.DataReaderProtocolQosPolicy give you control over configurable portions of the protocol, including the configuration of the reliable data delivery mechanism of the protocol on a per DataWriter or DataReader basis.

These configuration parameters control timing, timeouts, and give you the ability to tradeoff between speed of data loss detection and repair versus network and CPU bandwidth used to maintain reliability.

It is important to tune the reliability protocol (on a per com.rti.dds.publication.DataWriter and com.rti.dds.subscription.DataReader basis) to meet the requirements of the end-user application so that data can be sent between DataWriters and DataReaders in an efficient and optimal manner in the presence of data loss.

You can also use this QoS policy to control how RTI Connext responds to "slow" reliable DataReaders or ones that disconnect or are otherwise lost. See com.rti.dds.infrastructure.ReliabilityQosPolicy for more information on the per-DataReader/DataWriter reliability configuration. com.rti.dds.infrastructure.HistoryQosPolicy and com.rti.dds.infrastructure.ResourceLimitsQosPolicy also play an important role in the DDS reliable protocol.

This QoS policy is an extension to the DDS standard.

Entity:
com.rti.dds.subscription.DataReader
Properties:
RxO = N/A
Changeable = NO

Member Data Documentation

GUID_t virtual_guid

The virtual GUID (Global Unique Identifier).

The virtual GUID is used to uniquely identify different incarnations of the same com.rti.dds.subscription.DataReader.

The association between a com.rti.dds.subscription.DataReader and its persisted state is done using the virtual GUID.

[default] com.rti.dds.infrastructure.GUID_t.AUTO

int rtps_object_id

The RTPS Object ID.

This value is used to determine the RTPS object ID of a data reader according to the DDS-RTPS Interoperability Wire Protocol.

Only the last 3 bytes are used; the most significant byte is ignored.

If the default value is specified, RTI Connext will automatically assign the object ID based on a counter value (per participant) starting at 0x00800000. That value is incremented for each new data reader.

A rtps_object_id value in the interval [0x00800000,0x00ffffff] may collide with the automatic values assigned by RTI Connext. In those cases, the recomendation is not to use automatic object ID assigment.

[default] com.rti.dds.infrastructure.WireProtocolQosPolicy.RTPS_AUTO_ID

[range] [0,0x00ffffff]

boolean expects_inline_qos

Specifies whether this DataReader expects inline QoS with every sample.

In RTI Connext, a com.rti.dds.subscription.DataReader nominally relies on Discovery to propagate QoS on a matched com.rti.dds.publication.DataWriter. Alternatively, a com.rti.dds.subscription.DataReader may get information on a matched com.rti.dds.publication.DataWriter through QoS sent inline with a sample.

Asserting com.rti.dds.infrastructure.DataReaderProtocolQosPolicy.expects_inline_qos indicates to a matching com.rti.dds.publication.DataWriter that this com.rti.dds.subscription.DataReader expects to receive inline QoS with every sample. The complete set of inline QoS that a com.rti.dds.publication.DataWriter may send inline is specified by the Real-Time Publish-Subscribe (RTPS) Wire Interoperability Protocol.

Because RTI Connext com.rti.dds.publication.DataWriter and com.rti.dds.subscription.DataReader cache Discovery information, inline QoS are largely redundant and thus unecessary. Only for other stateless implementations whose com.rti.dds.subscription.DataReader does not cache Discovery information is inline QoS necessary.

Also note that inline QoS are additional wire-payload that consume additional bandwidth and serialization and deserialization time.

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

boolean disable_positive_acks

Whether the reader sends positive acknowledgements to writers.

If set to com.rti.dds.infrastructure.true, the reader does not send positive acknowledgments (ACKs) in response to Heartbeat messages. The reader will send negative acknowledgements (NACKs) when a Heartbeat advertises samples that it has not received.

Otherwise, if set to com.rti.dds.infrastructure.false (the default), the reader will send ACKs to writers that expect ACKs (com.rti.dds.infrastructure.DataWriterProtocolQosPolicy.disable_positive_acks = com.rti.dds.infrastructure.false) and it will not send ACKs to writers that disable ACKs (com.rti.dds.infrastructure.DataWriterProtocolQosPolicy.disable_positive_acks = com.rti.dds.infrastructure.true)

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

boolean propagate_dispose_of_unregistered_instances

Indicates whether or not an instance can move to the com.rti.dds.subscription.InstanceStateKind.InstanceStateKind.NOT_ALIVE_DISPOSED_INSTANCE_STATE state without being in the com.rti.dds.subscription.InstanceStateKind.InstanceStateKind.ALIVE_INTANCE_STATE state.

This field only applies to keyed readers.

When the field is set to com.rti.dds.infrastructure.true, the DataReader will receive dispose notifications even if the instance is not alive.

To guarantee the key availability through the usage of the API com.rti.ndds.example.FooDataReader.get_key_value, this option should be used in combination com.rti.dds.infrastructure.DataWriterProtocolQosPolicy.serialize_key_with_dispose on the DataWriter that should be set to com.rti.dds.infrastructure.true.

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

final RtpsReliableReaderProtocol_t rtps_reliable_reader
Initial value:
=
new RtpsReliableReaderProtocol_t()

The reliable protocol defined in RTPS.

[default] min_heartbeat_response_delay 0 seconds; max_heartbeat_response_delay 0.5 seconds


RTI Connext Java API Version 5.1.0 Copyright © Mon Feb 3 2014 Real-Time Innovations, Inc