RTI Connext Java API
Version 5.1.0
|
Subclass of com.rti.ndds.transport.Transport.Property_t allowing specification of parameters that are specific to the shared-memory transport. More...
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) |
Subclass of com.rti.ndds.transport.Transport.Property_t allowing specification of parameters that are specific to the shared-memory transport.
Property_t | ( | ) |
Create an empty ShmemTransport property with default values
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
.
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.