DDS-PSM-Cxx 1.1 RTF Avatar
  1. OMG Issue

DDSPSMC11_ — Unintuitive way to access extension member functions

  • Key: DDSPSMC11_-77
  • Status: open  
  • Source: Real-Time Innovations ( Mr. Alejandro Campos)
  • Summary:

    Invoking an extension function in a standard type requires using an overloaded arrow operator. For example:

    // Standard class (in dds namespace)
    dds::domain::DomainParticipant participant(MY_DOMAIN_ID);
    // Call a standard method
    participant.assert_liveliness();
    // Call an extension method:
    participant->vendor_specific_method(...);
    

    The use of the arrow operator is counterintuitive to most people (the variable is not a pointer) and didn't allow an IDE to show the available extensions if the regular dot operator was used.

    We propose adding an "extensions()" function to dds::core::Reference and dds::core::Value that can be used as follows:

    // Call an extension method:
    participant.extensions().register_durable_subscription(...);
    
  • Reported: DDS-PSM-Cxx 1.0b2 — Fri, 10 May 2019 18:32 GMT
  • Updated: Wed, 15 May 2019 16:12 GMT