Skip to content

Latest commit

 

History

History
44 lines (34 loc) · 3.17 KB

xtypes_relnotes.md

File metadata and controls

44 lines (34 loc) · 3.17 KB

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 mutable for 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 PublicationBuiltinTopicData or SubscriptionBuiltinTopicData with an incomplete set of dependent types (i.e. number of entries in dependent_typeids is less than dependent_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_construct annotation (7.2.2.7) with a parameter other than DISCARD (the default) is not supported.
  • The C deserializer does not support explicit defaults for members of an aggregated type (default annotation)
  • 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 supported
  • Default extensibility is final rather than appendable to 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 verbatim annotations (7.3.2.5.1.1) are not included in complete type objects
  • IDL type representation
    • Pragma declarations other than keylist are not supported
    • Alternative Annotation Syntax (7.3.1.2.3) is not supported
    • verbatim annotation (7.3.2.5.1.1) is not supported
    • ignore_literal_names annotation (7.3.1.2.1.11) is not supported
    • non_serialized annotation (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 @final types 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