- 
                            Key: DDSIRTP22-7
- 
                            Legacy Issue Number: 16956
- 
                            Status: closed
- 
                            Source: Object Computing, Inc. - OCI ( Mr. Adam Mitz)
- 
                            Summary:IDL is defined by OMG’s own document formal/2011-11-01 in section 7. As another OMG specification (and most importantly, for clarity and precision), the current pseudo-IDL throughout the RTPS document must be changed to be actual compliant IDL. Compliant IDL does not use anonymous types: newly-constructed types appear in their own typedefs. { OctetArray3 entityKey; octet entityKind; };
 Section: 9.2.2
 Page: 149
 Change: replace IDL with
 typedef octet OctetArray3[3];
 struct EntityId_t
 
 Section: 9.3.1.1
 Page: 150
 Change: replace IDL with
 typedef octet GuidPrefix_t[12];
 
 Section: 9.3.1.2
 Page: 150
 Change: replace IDL with
 typedef octet OctetArray3[3];
 struct EntityId_t { OctetArray3 entityKey; octet entityKind; }; Section: 9.3.1.5 { GuidPrefix_t guidPrefix; EntityId_t entityId; }
 Page: 153
 Change: replace IDL with
 struct GUID_t; Section: 9.3.2, Table 9.4 row “Time_t” { long seconds; unsigned long fraction; }
 Page: 153
 Change: replace IDL with
 struct Time_t; Section: 9.3.2, Table 9.4 row “VendorId_t” { OctetArray2 vendorId; }
 Page: 153
 Change: replace IDL with
 typedef octet OctetArray2[2];
 struct VendorId_t; Section: 9.3.2, Tables 9.4 and 9.5 
 Page: 154-159
 Change: For ALL table entries with a struct move struct's identifier to directly follow the keyword "struct" (SequenceNumber_t, FragmentNumber_t, Locator_t, Count_t, ProtocolVersion_t, KeyHash_t, StatusInfo_t, ParameterId_t, ContentFilterProperty_t, ContentFilterInfo_t, OriginalWriterInfo_t, LocatorUDPv4_t) and in cases where "typedef" is used to introduce a struct, remove it (ProtocolVersion_t, ContentFilterProperty_t, ContentFilterInfo_t)
 Section: 9.3.2, Table 9.4
 Page: 155-157
 Change: Use of anonymous types is deprecated (applies to Locator_t::address, KeyHash_t::value, StatusInfo_t::value, all fields in ContentFilterProperty_t except for filterExpression). Replace the anonymous type with a typedef.
 Section: 9.3.2, Table 9.4
 Page: 157
 Change: Array bounds for FilterSignature_t must be at the end of the typedef
 Section: 9.4.2.6
 Page: 161
 Change: IDL syntax error due to use of anonymous types and the struct’s identifier must directly follow the keyword “struct”; also use unsigned long for bitmap
 Section: 9.4.2.8
 Page: 163
 Change: IDL syntax error due to use of anonymous types and the struct’s identifier must directly follow the keyword “struct”; also use unsigned long for bitmap
 Section: 9.4.2.11
 Page: 165
 Change: Use an unsigned short for “length” and mark this as "pseudo" IDL as there is no way to represent a sequence with a 2-byte length field or an array with runtime-determined bounds
 Section: 9.4.5.1
 Page: 168
 Change: struct’s identifier must directly follow the keyword “struct”
 Section: 9.6.2.1
 Page: 180
 Change: IDL syntax error due to use of anonymous types
 Section: 9.6.2.2
 Page: 181
 Change: IDL syntax error, the keyword "struct" is not used to identify types of fields. Also, IDL does not allow differences only in case so "WriterProxy writerProxy;" is ill-formed.
 Section: 10.1.1.1
 Page: 193
 Change: IDL syntax error, array bounds for Identifier must be at the end of the typedef, and the typedef keyword is missing.
- 
                            Reported: DDSI-RTPS 2.0 — Tue, 27 Dec 2011 05:00 GMT
- 
                            Disposition: Resolved — DDSI-RTPS 2.2
- 
                            Disposition Summary:In addition to making the IDL compliant, the reference to formal/2011-11-01 should 
 added to the normative section.
- 
                            Updated: Fri, 6 Mar 2015 20:58 GMT
DDSIRTP22 — Use compliant OMG IDL syntax
- Key: DDSIRTP22-7
- OMG Task Force: Data Distribution Interoperability 2.2 RTF