RTI Routing Service  Version 6.1.2
RTI Routing Service Adapter API

This module describes the Java Adapter API. More...

Classes

interface  Adapter
 Adapter interface (required). More...
 
interface  Connection
 Connection interface (required). More...
 
interface  DiscoveryConnection
 DiscoveryConnection interface (optional). More...
 
interface  Entity
 Entity interface (required). More...
 
interface  Session
 Session interface (optional). More...
 
interface  StreamReader
 StreamReader interface (optional). More...
 
interface  StreamReaderListener
 StreamReaderListener used to notify Routing Service that new data is available. More...
 
interface  StreamWriter
 StreamWriter interface (optional). More...
 

Detailed Description

This module describes the Java Adapter API.

Adapters are pluggable components that allow RTI Routing Service to consume and produce data for different data domains (e.g., Connext DDS, MQTT, Socket, etc.).

By default, Routing Service is distributed with a builtin DDS adapter. Any other adapter plugins must be provided as external components registered through the XML configuration or through the service API.

The following figure shows an overview of the Routing Service adapter.

RouterAdapterOverview.svg

Input adapters are used to collect data samples from different data domains, such as DDS or MQTT. The input samples are processed by the Routing Service engine and are passed along to output adapters through the Processor, applying any Transformation beforehand if present.

For additional details about Adapter configuration see the RTI Routing Service User's Manual.

Development Requirements

Linux/macOS Systems Windows Systems
JAR rtirsadapter.jar
^ dds.jar
Native Librarieslibrtirsjniadapter.so rtirsjniadapter.dll
^ librtirsinfrastructure.so rtirsinfrastructure.dll
^ libndds.so nddsc.dll
^ libnddscore.so nddscore.dll

Architecture

The Adapter architecture is shown in the class diagram below.

RouterAdapterClass.svg

The sequence diagram in this figure shows when the different adapter entities are created.

RouterAdapterEntityCreation.svg

Stream Discovery

A Route cannot forward data until the type representations (e.g., TypeCode) associated with the input and output streams are available.

If a Route refers to types that are not defined in the configuration file, RTI Routing Service has to discover their type representation (e.g., TypeCode) before creating the com.rti.routingservice.adapter.StreamReader and com.rti.routingservice.adapter.StreamWriter. The adapter discovery API is used to provide stream and type information in a data domain to Routing Service*.

The discovery API consists of the following methods:

These methods provide access to com.rti.routingservice.adapter.StreamReader used to discover streams in the data domain associated with a connection.

The input stream discovery com.rti.routingservice.adapter.StreamReader provides information about input streams. An input stream is a stream from which an input's com.rti.routingservice.adapter.StreamReader reads data. Notification of disposed scenarios, where an input stream disappears, are also made using the input stream discovery StreamReader.

In the builtin DDS adapter, the input stream discovery StreamReader is associated with the publication builtin DataReader of the DomainParticipant.

The output stream discovery com.rti.routingservice.adapter.StreamReader provides information about output streams. An output stream is a stream to which an output's com.rti.routingservice.adapter.StreamWriter can write data. Notification of disposed scenarios, where an output stream disappears, are also made using the output stream discovery StreamReader.

In the builtin DDS adapter, the output stream discovery StreamReader is associated with the subscription builtin DataReader of the DomainParticipant.

The samples provided by the stream discovery StreamReaders have the type com.rti.routingservice.infrastructure.StreamInfo.