In order to provide flexibility and portability, two different DDS APIs are provided:
A classic, factory-based API for DDS that employs controlled memory allocations.
A modern C++, object-oriented API for DDS that ensures zero memory allocations.
Both APIs uses the same underlying DDS implementation, which is based in the concepts defined by the OMG’s DDS Specification:
For reference, the current implementation is compliant with OMG DDS specification v1.4 and OMG DDSI-RTPS specification v2.5.
Classic DDS API
The classic DDS API is a factory-based API that provides a controlled memory allocation via PreallocMemoryConfig and related QoS policies, as explained in Memory management section (see DDS Layer). A example of use of this API can be seen in the Getting Started section as well as in:
Static DDS API
The static DDS API is a modern C++, object-oriented API that ensures zero memory allocation by providing a sightly different API from that of the Classic DDS API (see DDS Layer for more information). The usage of this API is documented in: