4.13. APIs (Multiple Languages)

4.13.1. Looking up a DataReader using the wrong class in Modern C++ or Python did not raise clear exception

In Modern C++, when using the find_datareader_by_topic_name or find_datawriter_by_topic_name functions and the wrong DataReader type, the function may have returned an invalid entity. Now, it will throw a dds::core::InvalidArgumentError. For example:

auto dr =
    rti::sub::find_datareader_by_topic_name<DataReader<Foo>>(
    dds::sub::builtin_subscriber(participant),
    dds::topic::publication_topic_name());

In Python, the following code now throws a dds.InvalidArgumentError:

dr = dds.DataReader.find_by_topic(
           participant.builtin_subscriber, dds.PublicationBuiltinTopicData.topic_name)

since the right DataReader class for the built-in PublicationBuiltinTopicData reader is dds.PublicationBuiltinTopicData.DataReader, not dds.DataReader.

[RTI Issue ID CORE-13800]

4.13.2. Alias type not obtainable using a QosProvider

Alias types were not obtainable using a QosProvider. This problem affected all language bindings that support a QosProvider. This problem has been fixed.

[RTI Issue ID CORE-13830]