18.12. XTypes Frequently Asked Questions

What are XTypes?


Extensible and Dynamic Topic Types for DDS specification. This specification defines the following concepts: DDS supported type system; type representation, including IDL and TypeObject representation representations; data representation over the wire; language binding; DDS builtin mechanism to automatically discover remote data types. For more information, refer to XTypes


How does the remote data type discovery mechanism work?


The remote data type discovery mechanism is based on the exchange of the data type information optimized in order to reduce the required bandwidth. For more information, refer to Remote Data Types Discovery.


What prerequisites are required for the remote data type discovery feature to work?


The local data types must be registered into the ITypeObjectRegistry. TypeInformation should be received with the DomainParticipant’s endpoint discovery information. A DomainParticipant that does not inform about its TypeInformation would not trigger the remote data type discovery mechanism. For more information, refer to Remote Data Types Discovery.


What is the purpose of the Dynamic Language Binding API?


The Dynamic Language Binding API allows to define data types at runtime instead of having the types predefined as it is required by the Plain Language Binding. For further information, refer to Dynamic Language Binding.


How can complex data types be managed?


Dynamic Language Binding provides two possible approaches for managing complex data types: DynamicData::get_complex_value and DynamicData::set_complex_value; DynamicData::loan_value, which allows to loan a reference to a DynamicData to work with preventing the data copy. For further information, refer to Dynamic Language Binding.


What is serialization?


Serialization is a crucial process in data distribution services, as it converts complex data structures into a format that can be easily transmitted and reconstructed across different platforms and programming environments. For further information, refer to Serialization Utilities.


What are the formats supported for the serialization?


A Dynamic Type can be serialized to its IDL representation and to JSON (primitives, strings, enumerations, bitmasks, sequences, arrays, maps, structures, unions, bitsets). For further information, refer to Serialization Utilities.