RTI Connext Java API  Version 5.0.0
Transport.Property_t Class Reference

Base structure that must be inherited by derived Transport Plugin classes. More...

Inheritance diagram for Transport.Property_t:
ShmemTransport.Property_t UDPv4Transport.Property_t UDPv6Transport.Property_t

Public Attributes

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 a 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.
 

Static Public Attributes

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.
 

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

Base structure that must be inherited by derived Transport Plugin classes.

This structure contains properties that must be set before registration of any transport plugin with RTI Connext. The RTI Connext core will configure itself to use the plugin based on the properties set within this structure.

A transport plugin may extend from this structure to add transport-specific properties.

WARNING: The transport properties of an instance of a Transport Plugin should be considered immutable after the plugin has been created. That means the values contained in the property structure stored as a part of the transport plugin itself should not be changed. If those values are modified, the results are undefined.

Member Data Documentation

final int NDDS_TRANSPORT_CLASSID_INVALID = -1
static

Invalid Transport Class ID.

Transport-Plugins implementations should set their class ID to a value different than this.

final int NDDS_TRANSPORT_CLASSID_RESERVED_RANGE = 1000
static

Transport-Plugin class IDs below this are reserved by RTI.

User-defined Transport-Plugins should use a class ID greater than this number.

final int NDDS_TRANSPORT_PROPERTY_BIT_BUFFER_ALWAYS_LOANED = 0x2
static

Specified zero-copy behavior of transport.

A Transport Plugin may commit to one of three behaviors for zero copy receives:

  1. Always does zero copy.
  2. Sometimes does zero copy, up to the transport discretion.
  3. Never does zero copy.

This bit should be set only if the Transport Plugin commits to always doing a zero copy receive, or more specifically, always loaning a buffer through its receive_rEA() call.

In that case, the NDDS core will not need to allocate storage for a message that it retrieves with the receive_rEA() call.

final int NDDS_TRANSPORT_PROPERTY_GATHER_SEND_BUFFER_COUNT_MIN = 3
static

Minimum number of gather-send buffers that must be supported by a Transport Plugin implementation.

For the NDDS_Transport_Property_t structure to be valid, the value of Transport.Property_t.gather_send_buffer_count_max must be greater than or equal to this value.

final int classid

The Transport-Plugin Class ID.

Assigned by the implementor of the transport plugin, Class ID's below NDDS_TRANSPORT_CLASSID_RESERVED_RANGE are reserved for RTI (Real-Time Innovations) usage.

User-defined transports should set an ID above this range.

The ID should be globally unique for each Transport-Plugin class. Transport-Plugin implementors should ensure that the class IDs do not conflict with each other amongst different Transport-Plugin classes.

Invariant
The classid is invariant for the lifecycle of a transport plugin.
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.

A transport plugin should define the range of addresses (starting from 0x0) that are meaningful to the plugin. It does this by setting the number of bits of an IPv6 address that will be used to designate an address in the network to which the transport plugin is connected.

For example, for an address range of 0-255, the address_bit_count should be set to 8. For the range of addresses used by IPv4 (4 bytes), it should be set to 32.

See Also
Transport Class Attributes
final int properties_bitmap

A bitmap that defines various properties of the transport to the RTI Connext core.

Currently, the only property supported is whether or not the transport plugin will always loan a buffer when RTI Connext tries to receive a message using the plugin. This is in support of a zero-copy interface.

See Also
NDDS_TRANSPORT_PROPERTY_BIT_BUFFER_ALWAYS_LOANED
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.

The transport plugin send() API supports a gather-send concept, where the send() call can take several discontiguous buffers, assemble and send them in a single message. This enables RTI Connext to send a message from parts obtained from different sources without first having to copy the parts into a single contiguous buffer.

However, most transports that support a gather-send concept have an upper limit on the number of buffers that can be gathered and sent. Setting this value will prevent RTI Connext from trying to gather too many buffers into a send call for the transport plugin.

RTI Connext requires all transport-plugin implementations to support a gather-send of least a minimum number of buffers. This minimum number is defined to be NDDS_TRANSPORT_PROPERTY_GATHER_SEND_BUFFER_COUNT_MIN.

If the underlying transport does not support a gather-send concept directly, then the transport plugin itself must copy the separate buffers passed into the send() call into a single buffer for sending or otherwise send each buffer individually. However this is done by the transport plugin, the receive_rEA() call of the destination application should assemble, if needed, all of the pieces of the message into a single buffer before the message is passed to the RTI Connext layer.

int message_size_max

The maximum size of a message in bytes that can be sent or received by the transport plugin.

If the maximum size of a message that can be sent by a transport plugin is user configurable, the transport plugin should provide a default value for this property. In any case, this value must be set before the transport plugin is registered, so that RTI Connext can properly use the plugin.

Note:

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.

The "white" list restricts reception to a particular set of interfaces for unicast UDP.

Multicast output will be sent and may be received over the interfaces in the list.

It is up to the transport plugin to interpret the list of strings passed in.

For example, the following are acceptable strings in IPv4 format: 192.168.1.1, 192.168.1.*, 192.168.*, 192.*, ether0

This property is not interpreted by the RTI Connext core; it is provided merely as a convenient and standardized way to specify the interfaces for the benefit of the transport plugin developer and user.

The caller (user) must manage the memory of the list. The memory may be freed after the com.rti.dds.domain.DomainParticipant is deleted.

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.

This "black" list is applied after the allow_interfaces_list and filters out the interfaces that should not be used.

The resulting list restricts reception to a particular set of interfaces for unicast UDP. Multicast output will be sent and may be received over the interfaces in the list.

It is up to the transport plugin to interpret the list of strings passed in.

For example, the following are acceptable strings in IPv4 format: 192.168.1.1, 192.168.1.*, 192.168.*, 192.*, ether0

This property is not interpreted by the RTI Connext core; it is provided merely as a convenient and standardized way to specify the interfaces for the benefit of the transport plugin developer and user.

The caller (user) must manage the memory of the list. The memory may be freed after the com.rti.dds.domain.DomainParticipant is deleted.

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.

This "white" list sub-selects from the allowed interfaces obtained after applying the allow_interfaces_list "white" list and the deny_interfaces_list "black" list.

After allow_multicast_interfaces_list, the deny_multicast_interfaces_list is applied. Multicast output will be sent and may be received over the interfaces in the resulting list.

If this list is empty, all the allowed interfaces will be potentially used for multicast. It is up to the transport plugin to interpret the list of strings passed in.

This property is not interpreted by the RTI Connext core; it is provided merely as a convenient and standardized way to specify the interfaces for the benefit of the transport plugin developer and user.

The caller (user) must manage the memory of the list. The memory may be freed after the com.rti.dds.domain.DomainParticipant is deleted.

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.

This "black" list is applied after allow_multicast_interfaces_list and filters out interfaces that should not be used for multicast.

Multicast output will be sent and may be received over the interfaces in the resulting list.

It is up to the transport plugin to interpret the list of strings passed in.

This property is not interpreted by the RTI Connext core; it is provided merely as a convenient and standardized way to specify the interfaces for the benefit of the transport plugin developer and user.

The caller (user) must manage the memory of the list. The memory may be freed after the com.rti.dds.domain.DomainParticipant is deleted.


RTI Connext Java API Version 5.0.0 Copyright © Thu Aug 30 2012 Real-Time Innovations, Inc