+ <p>The <tt>query()</tt> method returns an explicitly shared shared data pointer, which has the following advantages:</p>
+ <ul>
+ <li>The same data object is shared between multiple modules and if a module changes attributes in the data object, these
+ changes are immediately seen by any other modules;</li>
+ <li>No need to worry about ownership -- the shared data object is deleted when the last module stops using it;</li>
+ <li>The <tt>query()</tt> method can return an empty shared data pointer to indicate that no data objects with the
+ given name exist.</tt>
+ </ul>
+
+ <p>The drawback is that if a module needs a local copy of the data object, it has to use the <tt>QExplicitlySharedDataPointer::detach()</tt> method to create a deep copy of the data object.</p>
+