Cyclone XTypes support
Release 0.9
Type System
The following data types are not supported: map, bitset, wide-strings, char16, float128
For the C language binding, additionally the following types are not supported as part of a type’s key: union, sequence
Union types:
Using bitmask type as discriminator is not supported
Inheritance (7.2.2.4.5) is not supported
Extensibility
mutablefor unions is not supported
The Dynamic Language Binding (7.5.2) is not supported (7.6.6, DynamicData and DynamicType API). Note: the Python API supports dynamic types without requiring a separate API.
The built-in TypeLookup service (7.6.3.3) has no support for requesting type dependencies (service operation
getTypeDependencies, section 7.6.3.3.4.1) and replying to a request of this type.Because of this, handling
PublicationBuiltinTopicDataorSubscriptionBuiltinTopicDatawith an incomplete set of dependent types (i.e. number of entries independent_typeidsis less thandependent_typeid_count) may result in a failure to match a reader with a writer.
In case a union has a default case, the C (de)serializer requires that the default case comes last because of a limitation of the IDL compiler.
Using the
try_constructannotation (7.2.2.7) with a parameter other thanDISCARD(the default) is not supported.The C deserializer does not support explicit defaults for members of an aggregated type (
defaultannotation)External (7.3.1.2.1.4) collections element types not supported (e.g.
sequence<@external b>)Using
default_literal(7.3.1.2.1.10) to set the default for enumerated types is not supportedDefault extensibility is
finalrather thanappendableto maintain backwards compatibility with DDS implementations that do not support XTypes (including Cyclone DDS versions prior to 0.9.0). The IDL compiler has command-line option to select a different default.
Type Representation
Type Object type representation
Recursive types are not supported (Strongly Connected Components, 7.3.4.9)
User-defined annotations (7.3.1.2.4) and
verbatimannotations (7.3.2.5.1.1) are not included in complete type objects
IDL type representation
Pragma declarations other than
keylistare not supportedAlternative Annotation Syntax (7.3.1.2.3) is not supported
verbatimannotation (7.3.2.5.1.1) is not supportedignore_literal_namesannotation (7.3.1.2.1.11) is not supportednon_serializedannotation (7.3.1.2.1.14) is not supported
XML (7.3.2) and XSD (7.3.3) type representation not supported
Data Representation
Default data representation is XCDR1 for
@finaltypes without optional members to maintain backwards compatibility with DDS implementations that do not support XTypes (including Cyclone DDS versions prior to 0.9.0).All other types require XCDR2: following 7.6.3.1.1 there is no need to support XCDR1 for interoperating with DDS implementations (ignoring those that only support XTypes 1.0 or 1.1, but not 1.2 or later).
The C serializer does not support PL-CDR version 1 nor optional members in PLAIN-CDR version 1.
XML data representation (7.4.4) is not supported