A C++ Template Library for Data-Centric Type Modeling for DDS-XTypes
This whitepaper describes a powerful C++ template library to allow users to describe their types in plain C++ and use those types directly for data-centric communication over DDS. The library transforms native C++ types into equivalent run-time TypeObject representation as specified in the DDS-XTypes standard. The library obviates the need to describe application-level data-types in external representations, such as IDL, XSD, XML, and DynamicData. The users of the library can use the full expressive power of native C++ to encapsulate the application-level data-types and use the same data-types for data distribution over DDS. The types may include all the standard template library containers (e.g., vector, list, map, unordered containers, etc.), raw pointers, smart pointers, and many more. The restrictions imposed by popular serialization/deserialization tools are eliminated. The application-level data are written directly using DDS.