Issue 16403: General Exception Safety Considerations (dds-psm-cxx-ftf) Source: Real-Time Innovations (Dr. Sumant Tambe, sumant(at)rti.com) Nature: Clarification Severity: Critical Summary: 1. The normative implementations shown in the wrapper classes should be at strong exception safe (or at least basic safe). For instance, implementation of DataReader:: create_readcondition as in dds-psm-cxx\src\hpp\dds\sub\DataReader.hpp is a shared_ptr usage anti-pattern. Proposed Solution: Create separate shared_ptr<T> objects for every new operation. Pass the shared_ptr<T> to the constructor of ReadCondition. 2. All setters and getters (including overloaded operators) of EntityQos should be strong exception safe. Proposed Solution: Make copy-assignment operator of every qos type in normative namespaces strong exception safe. Resolution: Revised Text: Actions taken: July 29, 2011: received issue Discussion: End of Annotations:===== m: webmaster@omg.org Date: 29 Jul 2011 20:20:41 -0400 To: Subject: Issue/Bug Report ******************************************************************************* Name: Sumant Tambe Employer: Real-Time Innovations mailFrom: sumant@rti.com Terms_Agreement: I agree Specification: DDS C++ PSM Section: 7 FormalNumber: ptc/2011-01-02 Version: Beta 1 Doc_Year: 2011 Doc_Month: January Doc_Day: 02 Page: 4 Title: General Exception Safety Considerations Nature: Clarification Severity: Critical CODE: 3TMw8 B1: Report Issue Description: 1. The normative implementations shown in the wrapper classes should be at strong exception safe (or at least basic safe). For instance, implementation of DataReader:: create_readcondition as in dds-psm-cxx\src\hpp\dds\sub\DataReader.hpp is a shared_ptr usage anti-pattern. Proposed Solution: Create separate shared_ptr objects for every new operation. Pass the shared_ptr to the constructor of ReadCondition. 2. All setters and getters (including overloaded operators) of EntityQos should be strong exception safe. Proposed Solution: Make copy-assignment operator of every qos type in normative namespaces strong exception safe.