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. The DomainParticipant 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 and DataWriter classes, as well as the PublisherListener and DataWriterListener interfaces.

  • Subscriber: It describes the classes used on the subscription side, including Subscriber and DataReader classes, as well as the SubscriberListener and DataReaderListener interfaces.

  • Topic: It describes the classes used to define communication topics and data types, including Topic and TopicDescription classes, as well as TypeSupport, and the TopicListener interface.