NDDSTransportSupport Class Reference
[Using Transport Plugins]

<<interface>> The utility class used to configure RTI Data Distribution Service pluggable transports. More...

List of all members.

Static Public Member Functions

static NDDS_Transport_Handle_t register_transport (DDSDomainParticipant *participant_in, NDDS_Transport_Plugin *transport_in, const DDS_StringSeq &aliases_in, const NDDS_Transport_Address_t &network_address_in)
 Register a transport plugin for use with a DDSDomainParticipant, assigning it a network_address.
static NDDS_Transport_Handle_t lookup_transport (DDSDomainParticipant *participant_in, DDS_StringSeq &aliases_out, NDDS_Transport_Address_t &network_address_out, NDDS_Transport_Plugin *transport_in)
 Look up a transport plugin within a DDSDomainParticipant.
static DDS_ReturnCode_t add_send_route (const NDDS_Transport_Handle_t &transport_handle_in, const NDDS_Transport_Address_t &address_range_in, DDS_Long address_range_bit_count_in)
 Add a route for outgoing messages.
static DDS_ReturnCode_t add_receive_route (const NDDS_Transport_Handle_t &transport_handle_in, const NDDS_Transport_Address_t &address_range_in, DDS_Long address_range_bit_count_in)
 Add a route for incoming messages.
static DDS_ReturnCode_t get_builtin_transport_property (DDSDomainParticipant *participant_in, DDS_TransportBuiltinKind builtin_transport_kind_in, struct NDDS_Transport_Property_t &builtin_transport_property_inout)
 Get the properties used to create a builtin transport plugin.
static DDS_ReturnCode_t set_builtin_transport_property (DDSDomainParticipant *participant_in, DDS_TransportBuiltinKind builtin_transport_kind_in, const struct NDDS_Transport_Property_t &builtin_transport_property_in)
 Set the properties used to create a builtin transport plugin.
static NDDS_Transport_Plugin * get_transport_plugin (DDSDomainParticipant *participant_in, const char *alias_in)
 Retrieve a transport plugin registered in a DDSDomainParticipant by its alias.


Detailed Description

<<interface>> The utility class used to configure RTI Data Distribution Service pluggable transports.

Member Function Documentation

static NDDS_Transport_Handle_t NDDSTransportSupport::register_transport ( DDSDomainParticipant participant_in,
NDDS_Transport_Plugin *  transport_in,
const DDS_StringSeq aliases_in,
const NDDS_Transport_Address_t network_address_in 
) [static]

Register a transport plugin for use with a DDSDomainParticipant, assigning it a network_address.

A transport plugin instance can be used by exactly one DDSDomainParticipant at a time.

When a DataWriter/DataReader is created, only those transports already registered to the corresponding DDSDomainParticipant are available to the DataWriter/DataReader.

Builtin transports can be automatically registered by RTI Data Distribution Service as a convenience to the user. See Built-in Transport Plugins for details on how to control the builtin transports that are automatically registered.

Precondition:
A disabled DDSDomainParticipant and a transport plugin that will be registered exclusively with it.
Parameters:
participant_in <<in>> A non-null, disabled DDSDomainParticipant.
transport_in <<in>> A non-null transport plugin that is currently not registered with another DDSDomainParticipant.
aliases_in <<in>> A non-null sequence of strings used as aliases to symbolically refer to the transport plugins. The transport plugin will be "available for use" by a DDSEntity in the DDSDomainParticipant if the transport alias list associated with the DDSEntity contains one of these transport aliases. An empty alias list represents a wildcard and matches all aliases. Alias names for the builtin transports are defined in TRANSPORT_BUILTIN.
network_address_in <<in>> The network address at which to register this transport plugin. The least significant transport_in.property.address_bit_count will be truncated. The remaining bits are the network address of the transport plugin. (see Transport Class Attributes).
Returns:
Upon success, a valid non-NIL transport handle, representing the association between the DDSDomainParticipant and the transport plugin; a NDDS_TRANSPORT_HANDLE_NIL upon failure.
Note that a transport plugin's class name is automatically registered as an implicit alias for the plugin. Thus, a class name can be used to refer to all the transport plugin instance of that class.

See also:
Transport Class Attributes

Transport Network Address

Locator Format

NDDS_DISCOVERY_PEERS

static NDDS_Transport_Handle_t NDDSTransportSupport::lookup_transport ( DDSDomainParticipant participant_in,
DDS_StringSeq aliases_out,
NDDS_Transport_Address_t network_address_out,
NDDS_Transport_Plugin *  transport_in 
) [static]

Look up a transport plugin within a DDSDomainParticipant.

The transport plugin should have already been registered with the DDSDomainParticipant.

Parameters:
participant_in <<in>> A non-null DDSDomainParticipant.
aliases_out <<inout>> A sequence of string where the aliases used to refer to the transport plugin symbolically will be returned. null if not interested.
network_address_out <<inout>> The network address at which to register the transport plugin will be returned here. null if not interested.
transport_in <<in>> A non-null transport plugin that is already registered with the DDSDomainParticipant.
Returns:
Upon success, a valid non-NIL transport handle, representating the association between the DDSDomainParticipant and the transport plugin; a NDDS_TRANSPORT_HANDLE_NIL upon failure.
See also:
Transport Class Attributes

Transport Network Address

static DDS_ReturnCode_t NDDSTransportSupport::add_send_route ( const NDDS_Transport_Handle_t transport_handle_in,
const NDDS_Transport_Address_t address_range_in,
DDS_Long  address_range_bit_count_in 
) [static]

Add a route for outgoing messages.

This method can be used to narrow the range of addresses to which outgoing messages can be sent.

Precondition:
A disabled DDSDomainParticipant.
Parameters:
transport_handle_in <<in>> A valid non-NIL transport handle as a result of a call to NDDSTransportSupport::register_transport().
address_range_in <<in>> The outgoing address range for which to use this transport plugin.
address_range_bit_count_in <<in>> The number of most significant bits used to specify the address range.
Returns:
One of the Standard Return Codes, or DDS_RETCODE_PRECONDITION_NOT_MET.
See also:
Transport Send Route

static DDS_ReturnCode_t NDDSTransportSupport::add_receive_route ( const NDDS_Transport_Handle_t transport_handle_in,
const NDDS_Transport_Address_t address_range_in,
DDS_Long  address_range_bit_count_in 
) [static]

Add a route for incoming messages.

This method can be used to narrow the range of addresses at which to receive incoming messages.

Precondition:
A disabled DDSDomainParticipant.
Parameters:
transport_handle_in <<in>> A valid non-NIL transport handle as a result of a call to NDDSTransportSupport::register_transport().
address_range_in <<in>> The incoming address range for which to use this transport plugin.
address_range_bit_count_in <<in>> The number of most significant bits used to specify the address range.
Returns:
One of the Standard Return Codes, or DDS_RETCODE_PRECONDITION_NOT_MET.
See also:
Transport Receive Route

static DDS_ReturnCode_t NDDSTransportSupport::get_builtin_transport_property ( DDSDomainParticipant participant_in,
DDS_TransportBuiltinKind  builtin_transport_kind_in,
struct NDDS_Transport_Property_t builtin_transport_property_inout 
) [static]

Get the properties used to create a builtin transport plugin.

Retrieves the properties that will be used to create a builtin transport plugin.

Precondition:
The builtin_transport_property_inout parameter must be of the type specified by the builtin_transport_kind_in.
Parameters:
participant_in <<in>> A valid non-null DDSDomainParticipant
builtin_transport_kind_in <<in>> The builtin transport kind for which to retrieve the properties.
builtin_transport_property_inout <<inout>> The storage area where the retrieved property will be output. The specific type required by the builtin_transport_kind_in must be used.
Returns:
One of the Standard Return Codes, or DDS_RETCODE_PRECONDITION_NOT_MET.
See also:
NDDSTransportSupport::set_builtin_transport_property()

static DDS_ReturnCode_t NDDSTransportSupport::set_builtin_transport_property ( DDSDomainParticipant participant_in,
DDS_TransportBuiltinKind  builtin_transport_kind_in,
const struct NDDS_Transport_Property_t builtin_transport_property_in 
) [static]

Set the properties used to create a builtin transport plugin.

Specifies the properties that will be used to create a builtin transport plugin.

If the builtin transport is already registered when this operation is called, these property changes will not have any effect. Builtin transport properties should always be set before the transport is registered. See Built-in Transport Plugins for details on when a builtin transport is registered.

Precondition:
A disabled DDSDomainParticipant. The builtin_transport_property_inout parameter must be of the type specified by the builtin_transport_kind_in.
Parameters:
participant_in <<in>> A valid non-null DDSDomainParticipant that has not been enabled.
builtin_transport_kind_in <<in>> The builtin transport kind for which to specificy the properties.
builtin_transport_property_in <<inout>> The new transport property that will be used to the create the builtin transport plugin. The specific type required by the builtin_transport_kind_in must be used.
Returns:
One of the Standard Return Codes, or DDS_RETCODE_PRECONDITION_NOT_MET.
See also:
NDDSTransportSupport::get_builtin_transport_property()

static NDDS_Transport_Plugin* NDDSTransportSupport::get_transport_plugin ( DDSDomainParticipant participant_in,
const char *  alias_in 
) [static]

Retrieve a transport plugin registered in a DDSDomainParticipant by its alias.

This method can be used to get a pointer to a transport Plugin that has been registered into the DDSDomainParticipant.

Parameters:
participant_in <<in>> A non-null DDSDomainParticipant.
aliases_in <<in>> A non-null string used to symbolically refer to the transport plugins.
Returns:
Upon success, a valid non-null pointer to a registered plugin; a null pointer if a plugin with that alias is not registered/found in that participant.


RTI Data Distribution Service C++ API Version 4.5e Copyright © 23 Oct 2011 Real-Time Innovations, Inc