Source: ZettaScale Technology ( Erik Hendriks)
In the DDS 1.4 specification, the IDL file describing the builtin topics consists of two parts:
- A section with #define statements where certain datatypes may be customized by the different vendors.
- A section where these customized datatypes are actually embedded in the builtin topic declarations.
All builtin topics contain a key field of type BuiltinTopicKey_t that is defined in the following way:
This implies that vendors may specify part of the key (the array element type), but they may not specify it to be anything else than an array of three of those vendor specific datatypes.
Right now, different vendors have specified the BuiltinTopicKey_t in various different ways: some uses an array of 16 octets to directly reflect the RTPS GUID, but the official DDS spec does not allow for this.
For the DDS 1.4 specification, this has been files as a separate issue (see DDS15-206). For the Cxx PSM for DDS, this also needs to be addressed which is the purpose of this ticket. Right now, for the Cxx PSM specifies the dds::topic::BuiltinTopicKey as a vendor spefic instantiation of the dds::topic::TBuiltinTopicKey template in the following way:
It is clear from this description that although the size of the array is unspecified, it is still implied that the key is an array of int32_t. This conflicts with the original DDS specification that explicitly allows for the builtin topic key type to be customizable by the user.
Reported: DDS-PSM-Cxx 1.0b2 — Tue, 5 Dec 2017 19:29 GMT
Updated: Sun, 30 Sep 2018 23:28 GMT