RTI Connext DDS Micro C API  Version 3.0.1
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups
Subscription Module

Contains the DDS_Subscriber, and DDS_DataReader classes, and more generally, all that is needed on the subscription side. More...


 DDS_Subscriber entity and associated elements
 DDS_DataReader entity and associated elements
 Data Sample
 DDS_SampleInfo, DDS_SampleStateKind, DDS_ViewStateKind, DDS_InstanceStateKind and associated elements

Detailed Description

Contains the DDS_Subscriber, and DDS_DataReader classes, and more generally, all that is needed on the subscription side.

Defines the DDS subscription package.

This diagram defines the elements that are defined in the DDS specification, and their relationships to each other. Not all entities and functions shown in the diagram are supported by RTI Connext DDS Micro. Please read the information on the individual types to determine whether a function is supported.

Access to data samples

Data is made available to the application by the following operations on DDS_DataReader objects: ::DDS_DataReader_read_next_sample_untyped, ::DDS_DataReader_take_next_sample_untyped

The general semantics of the read() operation is that the application only gets access to the corresponding data (i.e. a precise instance value); the data remains the responsibility of RTI Connext DDS Micro and can be read again.

The semantics of the take() operations is that the application takes full responsibility for the data; that data will no longer be available locally to RTI Connext DDS Micro. Consequently, it is possible to access the same information multiple times only if all previous accesses were read() operations, not take().

Each of these operations returns a collection of Data values and associated DDS_SampleInfo objects. Each data value represents an atom of data information (i.e., a value for one instance). This collection may contain samples related to the same or different instances (identified by the key). Multiple samples can refer to the same instance if the settings of the HISTORY QoS allow for it.

To return the memory back to the middleware, every read() or take() that retrieves a sequence of samples must be followed with a call to FooDataReader_return_loan.

See also:
Interpretation of the SampleInfo

Data access patterns

The application accesses data by means of the operations read or take on the DDS_DataReader. These operations return an ordered collection of DataSamples consisting of a DDS_SampleInfo part and a Data part.

The way RTI Connext DDS Micro builds the collection depends on QoS policies set on the DDS_DataReader and DDS_Subscriber, as well as the source_timestamp of the samples, and the parameters passed to the read() / take() operations, namely:

The read() and take() operations are non-blocking and just deliver what is currently available that matches the specified states.

Once the data samples are available to the data readers, they can be read or taken by the application. The basic rule is that the application may do this in any order it wishes. This approach is very flexible and allows the application ultimate control.

RTI Connext DDS Micro C API Version 3.0.1 Copyright © Thu Oct 24 2019 Real-Time Innovations, Inc