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.
Section: 9.2.2
Page: 149
Change: replace IDL with
typedef octet OctetArray3[3];
struct EntityId_t
{
OctetArray3 entityKey;
octet entityKind;
};
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
Page: 153
Change: replace IDL with
struct GUID_t
{
GuidPrefix_t guidPrefix;
EntityId_t entityId;
}
;
Section: 9.3.2, Table 9.4 row “Time_t”
Page: 153
Change: replace IDL with
struct Time_t
{
long seconds;
unsigned long fraction;
}
;
Section: 9.3.2, Table 9.4 row “VendorId_t”
Page: 153
Change: replace IDL with
typedef octet OctetArray2[2];
struct VendorId_t
{
OctetArray2 vendorId;
}
;
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.