Legacy Issue Number: 15967
Source: ZettaScale Technology ( Angelo Corsaro, PhD.)
The changes introduced in the final submission to support factory methods on
the "parents" (e.g. create_topic, create_data_writer, etc.) has introduced a
a. Reference types are not created in a uniform way. In essence,
DomainParticipant, Subscriber, Publisher, DataReader and DataWriter
types are instantiated using a different syntax than that used by
WaitSets or Conditions. This is unfortunate as it reduces the
consistency of the API.
b. To eliminate the circular dependencies induced by the factory methods
the API has to implement a few "creative" solutions that impact
clarity as well as robustness. All of a sudden it is relatively hard
to find where is defined what and also the include systems is very
fragile, e.g. one can break the API very easily by mistakenly changing
one include order.
The changes suggested to the submission is to equip each
Reference type with a factory method called "create". This not only allows to
remove circular references, but it also allows for an organization of the API
that is more robust and easier to follow. Furthermore, it ensures that
all references are created in an uniform manner.
Reported: DDS-PSM-Cxx 1.0b1 — Mon, 17 Jan 2011 05:00 GMT
Disposition: Resolved — DDS-PSM-Cxx 1.0b2
The dds-psm-cxx API has been updated to remove the circular dependencies introduced by factory methods. Along with removing circular dependencies the API has been refactored to ensure that no forward includes are needed thus maintaining local, and thus clear and visible, the set of dependencies for each file. The necessary changes have been applied to all the DDS entities, such as DomainParticipant, Publisher and Subscriber.
Examples in the specification have been updated to reflect the API change
Updated: Fri, 6 Mar 2015 20:58 GMT