Source: Real-Time Innovations ( Gerardo Pardo-Castellote)
The specification is not explicit about which Types may be used for a DDS Topic.
By convention most DDS implementations have supported structures. However it is not clear if unions are allowed. And even less so if collections, strings, or primitives can be used.
Annex E: Built-in Types defines as builtin the types: String, KeyedString, Bytes, and KeyedBytes.
The DDS specification also does not say anything explicitly. However the fact that it talks about the type-specific code for a type "Foo" namely "FooSupport" "FooDatWriter", etc. may be taken to imply that this must be constructed types that are given a name. e.g. "Foo" by the user. And not primitive types.
It would be better if the XTYPES spec was explicit about this.
Reported: DDS-XTypes 1.2 — Tue, 9 Jan 2018 12:58 GMT
Disposition: Resolved — DDS-XTypes 1.3
Specify that only Aggregated Types (structure and union types) may be used as a DDS Topic Type
Aggregated Types are the only ones that have members and allow the possibility of specifying a Key. For this reason the are the only ones suitable for being Topic-Types.
Specify this restriction following section 7.6.1 'Topic Model'.
Updated: Tue, 8 Oct 2019 17:55 GMT