RTI Connext Java API  Version 5.1.0
ShmemTransport.Property_t Class Reference

Subclass of com.rti.ndds.transport.Transport.Property_t allowing specification of parameters that are specific to the shared-memory transport. More...

Inheritance diagram for ShmemTransport.Property_t:
Transport.Property_t

Public Member Functions

 Property_t ()
 

Public Attributes

int received_message_count_max
 Number of messages that can be buffered in the receive queue.
 
int receive_buffer_size
 The total number of bytes that can be buffered in the receive queue.
 
- Public Attributes inherited from Transport.Property_t
final int classid
 The Transport-Plugin Class ID.
 
final int address_bit_count
 Number of bits in a 16-byte address that are used by the transport. Should be between 0 and 128.
 
final int properties_bitmap
 A bitmap that defines various properties of the transport to the RTI Connext core.
 
int gather_send_buffer_count_max
 Specifies the maximum number of buffers that RTI Connext can pass to the send() method of a transport plugin.
 
int message_size_max
 The maximum size of an RTPS message in bytes that can be sent or received by the transport plugin.
 
final StringSeq allow_interfaces_list
 A list of strings, each identifying a range of interface addresses or an interface name. If the list is non-empty (i.e., allow_interfaces_list_length > 0), allow the use of only these interfaces. If the list is empty, allow the use of all interfaces.
 
final StringSeq deny_interfaces_list
 A list of strings, each identifying a range of interface addresses or an interface name. If the list is non-empty (i.e., deny_interfaces_list_length > 0), deny the use of these interfaces.
 
final StringSeq allow_multicast_interfaces_list
 A list of strings, each identifying a range of interface addresses or an interface name. If the list is non-empty (i.e., allow_multicast_interfaces_list_length > 0), allow the use of multicast only on these interfaces; otherwise allow the use of all the allowed interfaces.
 
final StringSeq deny_multicast_interfaces_list
 A list of strings, each identifying a range of interface addresses or an interface name. If the list is non-empty (i.e., deny_multicast_interfaces_list_length > 0), deny the use of those interfaces for multicast.
 

Additional Inherited Members

- Static Public Attributes inherited from Transport.Property_t
static final int NDDS_TRANSPORT_CLASSID_INVALID = -1
 Invalid Transport Class ID.
 
static final int NDDS_TRANSPORT_CLASSID_RESERVED_RANGE = 1000
 Transport-Plugin class IDs below this are reserved by RTI.
 
static final int NDDS_TRANSPORT_PROPERTY_BIT_BUFFER_ALWAYS_LOANED = 0x2
 Specified zero-copy behavior of transport.
 
static final int NDDS_TRANSPORT_PROPERTY_GATHER_SEND_BUFFER_COUNT_MIN = 3
 Minimum number of gather-send buffers that must be supported by a Transport Plugin implementation.
 
- 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

Subclass of com.rti.ndds.transport.Transport.Property_t allowing specification of parameters that are specific to the shared-memory transport.

See Also
com.rti.ndds.transport.TransportSupport.set_builtin_transport_property()

Constructor & Destructor Documentation

Create an empty ShmemTransport property with default values

Member Data Documentation

int received_message_count_max

Number of messages that can be buffered in the receive queue.

This does not guarantee that the Transport-Plugin will actually be able to buffer received_message_count_max messages of the maximum size set in com.rti.ndds.transport.Transport.Property_t.message_size_max. The total number of bytes that can be buffered for a transport plug-in is actually controlled by receive_buffer_size.

See Also
NDDS_Transport_Property_t, NDDS_TRANSPORT_SHMEM_RECEIVED_MESSAGE_COUNT_MAX_DEFAULT
int receive_buffer_size

The total number of bytes that can be buffered in the receive queue.

This number controls how much memory is allocated by the plugin for the receive queue. The actual number of bytes allocated is:

where fixedOverhead is some small number of bytes used by the queue data structure. The following rules are noted:

  • receive_buffer_size < message_size_max * received_message_count_max, then the transport plugin will not be able to store received_message_count_max messages of size message_size_max.
  • receive_buffer_size > message_size_max * received_message_count_max, then there will be memory allocated that cannot be used by the plugin and thus wasted.

To optimize memory usage, the user is allowed to specify a size for the receive queue to be less than that required to hold the maximum number of messages which are all of the maximum size.

In most situations, the average message size may be far less than the maximum message size. So for example, if the maximum message size is 64 K bytes, and the user configures the plugin to buffer at least 10 messages, then 640 K bytes of memory would be needed if all messages were 64 K bytes. Should this be desired, then receive_buffer_size should be set to 640 K bytes.

However, if the average message size is only 10 K bytes, then the user could set the receive_buffer_size to 100 K bytes. This allows the user to optimize the memory usage of the plugin for the average case and yet allow the plugin to handle the extreme case.

NOTE, the queue will always be able to hold 1 message of message_size_max bytes, no matter what the value of receive_buffer_size is.

See Also
NDDS_TRANSPORT_SHMEM_RECEIVE_BUFFER_SIZE_DEFAULT

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