XCDR2 serialization of sequences of non-primitive elements
Source: Real-Time Innovations ( Gerardo Pardo-Castellote)
When serializing a sequences of non-primitive elements, the XTYPES spec requires serializing a DHEADER ahead of serializing the number of elements and each element. This is rule (12)
Arrays of non-primitive elements also serializing the DHEADER but not the number of elements. This is rule (9)
I think it would make sense to modify or at least relax these rules.
At a minimum arrays and sequeces of enumerated types and bitmask types should not have a DHEADER as it does not add information beyond what is available knowing the number of elements and size of each element. That it, they should behave as primitives (basically they are integers).
Additionally it may be better to not have the DHEADER at all for sequences and arrays. Or at least for sequences or arrays whose elements are final.
Basically the "extensibility" of the sequence is already handled by having the number of elements and having a DHEADER adds nothing and makes types that contain sequences of FINAL incompatible with XCDR1. This is a side-effect that we did not want or anticipate. Otherwise types that are constructed from only FINAL types would be compatible between XCDR1 and XCDR2 (except for 8-byte aligned types).
Reported: DDS-XTypes 1.3b1 — Wed, 4 May 2022 22:43 GMT
Updated: Wed, 6 Dec 2023 17:26 GMT