<html> <head> <title>Interface XWeak</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <link rel="stylesheet" type="text/css" href="../../../../idl.css"> </head> <body> <div id="adc-idlref"> <a name="_top_"> </a><table class="navimain" border="0" cellpadding="3"> <tr> <td class="navimain"><a href="../module-ix.html" class="navimain">Overview</a></td> <td class="navimain"><a href="module-ix.html" class="navimain">Module</a></td> <td class="navimain"><a href="XWeak-xref.html" class="navimain">Use</a></td> <td class="navimain"><a href="#devmanual" class="navimain">Devguide</a></td> <td class="navimain"><a href="../../../../index-files/index-1.html" class="navimain">Index</a></td> </tr> </table> <table class="navisub" border="0" cellpadding="0"> <tr> <td class="navisub"><a href="#MethodsSummary" class="navisub">Methods' Summary</a></td> <td class="navisub">Attributes' Summary</td> <td class="navisub"><a href="#MethodsDetails" class="navisub">Methods' Details</a></td> <td class="navisub">Attributes' Details</td> </tr> </table> <hr> <table border="0" width="100%" cellpadding="5" cellspacing="3" class="title-table" style="margin-bottom:6pt;"> <tr> <td><p class="namechain"><a href="../../../../module-ix.html" class="namechain">::</a> <a href="../../../module-ix.html" class="namechain">com</a> :: <a href="../../module-ix.html" class="namechain">sun</a> :: <a href="../module-ix.html" class="namechain">star</a> :: <a href="module-ix.html" class="namechain">uno</a> :: </p> </td> </tr> <tr> <td class="title">interface XWeak</td> </tr> <tr> <td/></tr> <tr> <td><dl> <dt><b>Description</b></dt> <dd>the server-side interface to a weak object. </dd> <dd><p>This interface is proxy to the adapted object. In order to make it possible to have weak references to objects, the <a href="XAdapter.html">XAdapter</a> interface must be implemented to provide a weak adapter for the clients. <h4>Concept of weak referencing:</h4> </p> <p>This module specifies the interfaces for implementing and using weak references.</p> <p> </p> <p>The sense of weak references is to hold a reference to an object without affecting the lifetime of the object. That means that a weak reference may become invalid, at any time, if the referenced object dies. </p> <p>The following interfaces describe one way to handle weak references by providing a weak adapter. The weak object has to provide this adapter if anyone wants to hold a weak reference. To separate their lifetimes, the adapter and the original object must not share the same reference counter. The weak reference is in fact only a hard reference to the adapter, which knows - but does not hold - the original object. That means that the implementation and synchronization of weak referencing is the responsibility of the object. The following interfaces are involved in the concept of weak referencing: <dl> <dt> <a href="XWeak.html">XWeak</a> </dt> <dd>is the server-side interface of the referred object. This referred object must support the <a href="XAdapter.html">XAdapter</a> interface. </dd> <dt> <a href="XReference.html">XReference</a> </dt> <dd>is a client-side interface which must be implemented by the holder of any weak reference. It is used for notification when the adapted object dies. </dd> </dl> </p> </dd> </dl> <a name="devmanual"> </a><dl> <dt><b>Developers Guide</b></dt> <dd><a href="http://wiki.services.openoffice.org/wiki/Documentation/DevGuide/ProUNO/Lifetime_of_UNO_objects">ProUNO - Lifetime of UNO objects</a></dd> <dd><a href="http://wiki.services.openoffice.org/wiki/Documentation/DevGuide/WritingUNO/XWeak">WritingUNO - XWeak</a></dd> <dd><a href="http://wiki.services.openoffice.org/wiki/Documentation/DevGuide/ProUNO/C++/Using_Weak_References">ProUNO - C++ - Using Weak References</a></dd> <dd><a href="http://wiki.services.openoffice.org/wiki/Documentation/DevGuide/WritingUNO/Core_Interfaces_to_Implement">WritingUNO - Core Interfaces to Implement</a></dd> </dl> </td> </tr> </table> <hr> <a name="MethodsSummary"/><table border="1" width="100%" cellpadding="5" cellspacing="0" class="subtitle"> <tr> <td class="subtitle" colspan="2">Methods' Summary</td> </tr> <tr> <td class="imsum_left"><a href="#queryAdapter">queryAdapter</a></td> <td class="imsum_right">queries the weak adapter. </td> </tr> </table> <a name="MethodsDetails"/><table border="1" width="100%" cellpadding="5" cellspacing="0" class="subtitle"> <tr> <td class="subtitle">Methods' Details</td> </tr> <tr> <td class="imdetail"><a name="queryAdapter" class="membertitle">queryAdapter</a><table border="0" width="96%" cellpadding="5" cellspacing="0" class="table-in-method" bgcolor="#ffffff" align="center"> <tr> <td><table class="table-in-method" border="0"> <tr> <td valign="top" colspan="3"><a href="XAdapter.html">XAdapter</a></td> </tr> <tr> <td valign="top"><b>queryAdapter</b>();</td> </tr> </table> <hr> <dl> <dt><b>Description</b></dt> <dd>queries the weak adapter. </dd> <dd><p>It is important that the adapter must know, but not hold the adapted object. If the adapted object dies, all references to the adapter have to be notified to release the adapter. </p> </dd> </dl> </td> </tr> </table> </td> </tr> </table> <a href="#_top_">Top of Page</a><hr size="3"><p class="copyright" align="center">Copyright © 2011, Oracle and/or its affiliates. All rights reserved. Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.</p> </div> <!-- id="adc-idlref" --> </body> </html>