RTI Connext Java API  Version 5.1.0
ReceiverPoolQosPolicy Class Reference

Configures threads used by RTI Connext to receive and process data from transports (for example, UDP sockets). More...

Inheritance diagram for ReceiverPoolQosPolicy:
QosPolicy

Public Attributes

final ThreadSettings_t thread
 Receiver pool thread(s).
 
int buffer_size
 The receive buffer size.
 
int buffer_alignment
 The receive buffer alignment.
 
- 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.
 

Static Public Attributes

static final int LENGTH_AUTO
 A special value indicating that the actual value will be automatically resolved.
 

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

Configures threads used by RTI Connext to receive and process data from transports (for example, UDP sockets).

This QoS policy is an extension to the DDS standard.

Entity:
com.rti.dds.domain.DomainParticipant
Properties:
RxO = N/A
Changeable = NO
See Also
Controlling CPU Core Affinity for RTI Threads

Usage

This QoS policy sets the thread properties such as priority level and stack size for the threads used by the middleware to receive and process data from transports.

RTI uses a separate receive thread per port per transport plug-in. To force RTI Connext to use a separate thread to process the data for a com.rti.dds.subscription.DataReader, set a unique port for the com.rti.dds.infrastructure.TransportUnicastQosPolicy or com.rti.dds.infrastructure.TransportMulticastQosPolicy for the com.rti.dds.subscription.DataReader.

This QoS policy also sets the size of the buffer used to store packets received from a transport. This buffer size will limit the largest single packet of data that a com.rti.dds.domain.DomainParticipant will accept from a transport. Users will often set this size to the largest packet that any of the transports used by their application will deliver. For many applications, the value 65,536 (64 K) is a good choice; this value is the largest packet that can be sent/received via UDP.

Member Data Documentation

final ThreadSettings_t thread

Receiver pool thread(s).

There is at least one receive thread, possibly more.

[default] priority above normal.
The actual value depends on your architecture:

For Windows: 2
For Linux: OS default priority
For a complete list of platform specific values, please refer to Platform Notes.

[default] The actual value depends on your architecture:

For Windows: OS default stack size
For Linux: OS default stack size
For a complete list of platform specific values, please refer to Platform Notes.

[default] mask com.rti.dds.infrastructure.ThreadSettingsKind.THREAD_SETTINGS_FLOATING_POINT | com.rti.dds.infrastructure.ThreadSettingsKind.THREAD_SETTINGS_STDIO

int buffer_size

The receive buffer size.

The receive buffer is used by the receive thread to store the raw data that arrives over the transport.

In many applications, users will change the configuration of the built-in transport com.rti.ndds.transport.Transport.Property_t.message_size_max to increase the size of the largest data packet that can be sent or received through the transport. Typically, users will change the UDPv4 transport plugin's com.rti.ndds.transport.Transport.Property_t.message_size_max to 65536 (64 K), which is the largest packet that can be sent/received via UDP.

If you change buffer_size from its default value of LENGTH_AUTO, it should be set to be the same value as the maximum com.rti.ndds.transport.Transport.Property_t.message_size_max across all of the transports being used that are not doing zero-copy (described below).

If your application only uses transports that support zero-copy, buffer_size does not need to be greater than com.rti.ndds.transport.Transport.Property_t.message_size_max.

Transports that support zero-copy do not copy their data into the buffer provided by the receive thread. Instead, they provide the receive thread data in a buffer allocated by the transport itself. The built-in transports that support zero-copy are the SHMEM transport, and the UDPv4 transport on VxWorks platforms.

buffer_size may be deprecated in the future.

[default] com.rti.dds.infrastructure.ReceiverPoolQosPolicy.LENGTH_AUTO

[range] [1, 1 GB] or com.rti.dds.infrastructure.ReceiverPoolQosPolicy.LENGTH_AUTO

int buffer_alignment

The receive buffer alignment.

Most users will not need to change this alignment.

[default] 16

[range] [1,1024] Value must be a power of 2.


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