3. DDS Layer
eProsima Fast DDS exposes two different APIs to interact with the communication service at different levels. The main API is the Data Distribution Service (DDS) Data-Centric Publish-Subscribe (DCPS) Platform Independent Model (PIM) API, or DDS DCPS PIM for short, which is defined by the Data Distribution Service (DDS) version 1.4 specification, to which Fast DDS complies. This section is devoted to explain the main characteristics and modes-of-use of this API under Fast DDS, providing an in depth explanation of the five modules into which it is divided:
Core: It defines the abstract classes and interfaces that are refined by the other modules. It also provides the Quality of Service (QoS) definitions, as well as support for the notification-based interaction style with the middleware.
Domain: It contains the
DomainParticipant
class that acts as an entry-point of the Service, as well as a factory for many of the classes. TheDomainParticipant
also acts as a container for the other objects that make up the Service.Publisher: It describes the classes used on the publication side, including
Publisher
andDataWriter
classes, as well as thePublisherListener
andDataWriterListener
interfaces.Subscriber: It describes the classes used on the subscription side, including
Subscriber
andDataReader
classes, as well as theSubscriberListener
andDataReaderListener
interfaces.Topic: It describes the classes used to define communication topics and data types, including
Topic
andTopicDescription
classes, as well asTypeSupport
, and theTopicListener
interface.
- 3.1. Core
- 3.2. Domain
- 3.3. Publisher
- 3.4. Subscriber
- 3.5. Topic
- 3.5.1. Topics, keys and instances
- 3.5.2. TopicDescription
- 3.5.3. Topic
- 3.5.4. ContentFilteredTopic
- 3.5.5. TopicListener
- 3.5.6. Definition of data types
- 3.5.7. Creating a Topic
- 3.5.8. Filtering data on a Topic
- 3.5.9. The default SQL-like filter
- 3.5.10. Using custom filters
- 3.5.11. Where is filtering applied: writer vs reader side
- 3.5.12. Fast DDS-Gen for data types source code generation