DDSI-RTPS 2.2 RTF Avatar
  1. OMG Issue

DDSIRTP22 — Use compliant OMG IDL syntax

  • 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.
    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.

  • 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