Dynamic and Extensible Topic Types (X-Types) adds powerful functionality to the existing DDS type system, including:
- The ability to extend and modify data types over time
- Further configuration options for data types like "optional" and "required"
- Standardized IDL and XML representation of data types
- New data types including bitmap
- Standardized API for Dynamic Data Types
The ability to modify and extend data types over time provides tremendous flexibility in the long-term maintenance of any system. X-types provides 3 datatype extension options.
Final: Data types won't change
The 'Final' extensibility kind is equivalent to the old DDS data type definitions: the data type is fixed. DataReaders and DataWriters will match only if their data types are the same in structure and order. This is a very efficient configuration for data types, using CDR encoding rules for data transmission.
Extensible/Appendable: Data types may grow over time by adding additional fields
The 'Extensible' or 'Appendable' extensibility kind allows for new fields to be added to the end of a data type. A DataReader and DataWriter can match with different data types, provided the only difference is additional fields at the end of the data type. This is still an efficient configuration of data types, with minimal overhead compared to Final data types.
Mutable: Data types may change over time by adding, removing, or re-ordering fields
The 'Mutable' extensibility kind allows the most flexibility in data type maturation over time. Fields may be added in any order, fields may be removed, and fields may change order. DataReaders and DataWriters will match common fields between their data types. This data type configuration provides the most flexibility.
Data Type Configuration
CoreDX DDS X-Types provides a number of new configuration options for data types, individual fields, and ability to insert code into the resulting generated C, C++, C#, or Java code. These configuration options are specified in the IDL or XML file using annotations. Annotations may be added before or after the entity they effect.
Backwards Compatibility of Data Types
Carefully constructed data types may use X-Types features and be backwards compatible with non-X-Types DDS applications. The CoreDX DDS data type compiler provides an optional flag to force backwards compatibility of the compiled data types, for those systems who have this requirement.
CoreDX DDS X-Types Programmer's Guide
Contact Twin Oaks Computing for a personalized tutorial or in person CoreDX DDS X-Types workshop
OMG DDS X-Types Standard