blob: 40949552c230163ff04a6c9c946d653c2b461c1e [file] [log] [blame]
<html>
<head>
<title>class OWeakAggObject</title>
<style> h1 { font-size:20pt; margin-top:3pt; margin-bottom:7pt; }
h2 { font-family:"Arial"; font-size:16pt; margin-top:3pt; margin-bottom:5pt; }
h3 { font-size:13pt; margin-top:2pt; margin-bottom:3pt; }
h4 { font-size:10pt; font-weight:bold; margin-top:2pt; margin-bottom:1pt; }
dl { margin-top:1pt; margin-bottom:1pt; }
dl.member { margin-top:1pt; margin-bottom:1pt; background-color:#eeeeff; }
dt { font-size:10pt; font-weight:bold; margin-top:2pt; margin-bottom:1pt; }
dt.member { font-size:13pt; font-weight:bold; margin-top:2pt; margin-bottom:1pt; }
dt.simple { font-size:10pt; font-weight:normal; margin-top:2pt; margin-bottom:1pt; }
dd { font-size:10pt; margin-top:1pt; margin-bottom:1pt; }
dd.member { font-size:10pt; margin-top:1pt; margin-bottom:1pt; background-color:#ffffff; }
p { font-size:10pt; margin-top:3pt; margin-bottom:1pt; }
pre { font-family: Times, serif; font-size:10pt; margin-top:1pt; margin-bottom:1pt; }
tr { font-size:10pt; }
td { font-size:10pt; }
</style>
<meta HTTP-EQUIV="content-type" CONTENT="text/html; charset=UTF-8">
</head>
<body bgcolor="#ffffff">
<a name="_top_"> </a>
<table border="0" cellpadding="1" cellspacing="0">
<tr align="center" valign="top">
<td bgcolor="#eeeeff">&nbsp;<a href="../../index.html" alt><font family="Arial" color="#000000" size="+1"><b>Overview</b></font></a>&nbsp;</td>
<td bgcolor="#eeeeff">&nbsp;<a href="index.html" alt><font family="Arial" color="#000000" size="+1"><b>Namespace</b></font></a>&nbsp;</td>
<td bgcolor="#2222ad">&nbsp;<font family="Arial" color="#ffffff" size="+1"><b>Class</b></font>&nbsp;</td>
<td bgcolor="#eeeeff">&nbsp;<a href="../../index-files/index-1.html" alt><font family="Arial" color="#000000" size="+1"><b>Index</b></font></a>&nbsp;</td>
<td bgcolor="#eeeeff">&nbsp;<a href="../../help.html" alt><font family="Arial" color="#000000" size="+1"><b>Help</b></font></a>&nbsp;</td>
</tr>
</table>
<table cellpadding="0" cellspacing="3">
<tr>
<td width="20%"><font size="-2">PUBLIC MEMBERS:</font></td>
<td>
&nbsp;<font size="-2">CLASSES</font>
|&nbsp;<font size="-2">STRUCTS</font>
|&nbsp;<font size="-2">UNIONS</font>
|&nbsp;<font size="-2">ENUMS</font>
|&nbsp;<font size="-2">TYPEDEFS</font>
|&nbsp;<a href="#publ_ops"><font size="-2"><b>METHODS</b></font></a>
|&nbsp;<font size="-2">STATIC METHODS</font>
|&nbsp;<font size="-2">DATA</font>
|&nbsp;<font size="-2">STATIC DATA</font></td>
</tr>
<tr>
<td width="20%"><font size="-2">PROTECTED MEMBERS:</font></td>
<td>
&nbsp;<font size="-2">CLASSES</font>
|&nbsp;<font size="-2">STRUCTS</font>
|&nbsp;<font size="-2">UNIONS</font>
|&nbsp;<font size="-2">ENUMS</font>
|&nbsp;<font size="-2">TYPEDEFS</font>
|&nbsp;<a href="#prot_ops"><font size="-2"><b>METHODS</b></font></a>
|&nbsp;<font size="-2">STATIC METHODS</font>
|&nbsp;<a href="#prot_vars"><font size="-2"><b>DATA</b></font></a>
|&nbsp;<font size="-2">STATIC DATA</font></td>
</tr>
</table>
<hr>
<a href="../../names/index.html" alt="Global Namespace in C++"><font size="+1"><b>::</b></font></a> <a href="index.html" alt="namespace"><font size="+1"><b>cppu</b></font></a><font size="+1"> :: </font><div align="center" style="background-color:#ccccff; line-height:26pt;"><h2>class OWeakAggObject</h2>
</div><hr>
<dl>
<dt>Base Classes</dt>
<dd><pre style="font-family:monospace;">
<span style="color:#33ff33;">com::sun::star::uno::<a href="../../../../common/ref/com/sun/star/uno/XWeak.html">XWeak</a> (public)</span>
|
+--<span style="color:#33ff33;">cppu::<a href="c-OWeakObject.html">OWeakObject</a> (public)</span>
|
| <span style="color:#33ff33;">com::sun::star::uno::<a href="../../../../common/ref/com/sun/star/uno/XAggregation.html">XAggregation</a> (public)</span>
| |
+----+--<strong>OWeakAggObject</strong>
</pre></dd>
</dl>
<dl>
<dt>Known Derived Classes</dt>
<dd><a href="c-WeakAggImplHelper1.html">WeakAggImplHelper1</a><br>
<a href="c-WeakAggImplHelper2.html">WeakAggImplHelper2</a><br>
<a href="c-WeakAggImplHelper3.html">WeakAggImplHelper3</a><br>
<a href="c-WeakAggImplHelper4.html">WeakAggImplHelper4</a><br>
<a href="c-WeakAggImplHelper5.html">WeakAggImplHelper5</a><br>
<a href="c-WeakAggImplHelper6.html">WeakAggImplHelper6</a><br>
<a href="c-WeakAggImplHelper7.html">WeakAggImplHelper7</a><br>
<a href="c-WeakAggImplHelper8.html">WeakAggImplHelper8</a><br>
<a href="c-WeakAggImplHelper9.html">WeakAggImplHelper9</a><br>
<a href="c-WeakAggImplHelper10.html">WeakAggImplHelper10</a><br>
<a href="c-WeakAggImplHelper11.html">WeakAggImplHelper11</a><br>
<a href="c-WeakAggImplHelper12.html">WeakAggImplHelper12</a><br>
<a href="c-WeakAggComponentImplHelperBase.html">WeakAggComponentImplHelperBase</a><br>
<a href="c-OComponentHelper.html">OComponentHelper</a><br>
</dd>
</dl>
<br>
<table border cellspacing="0">
<tr>
<td bgcolor="#eeeeff" width="25%" style="font-family:Arial; font-size:8pt; font-weight:bold;">virtual</td>
<td bgcolor="#eeeeff" width="25%" style="font-family:Arial; font-size:8pt; font-weight:bold;">abstract</td>
<td bgcolor="#eeeeff" width="25%" style="font-family:Arial; font-size:8pt; font-weight:bold;">interface</td>
<td bgcolor="#eeeeff" width="25%" style="font-family:Arial; font-size:8pt; font-weight:bold;">template</td>
</tr>
<tr>
<td style="font-family:Arial; font-size:8pt; font-weight:bold;">YES</td>
<td style="font-family:Arial; font-size:8pt;">NO</td>
<td style="font-family:Arial; font-size:8pt;">NO</td>
<td style="font-family:Arial; font-size:8pt;">NO</td>
</tr>
</table>
<dl>
<dt>Description</dt>
<dd>Base class to implement an UNO object supporting weak references, i.e. the object can be held
weakly (by a ::com::sun::star::uno::WeakReference) and aggregation, i.e. the object can be
aggregated by another (delegator).
This implementation copes with reference counting. Upon last release(), the virtual dtor
is called.
</dd>
<dt>How to Derive from this Class</dt>
<dd>
Inherit from this class and delegate acquire()/ release() calls. Re-implement
XAggregation::queryInterface().
</dd>
</dl>
<dl>
<dt>File</dt>
<dd>weakagg.hxx</dd>
</dl>
<hr>
<dl>
<dt bgcolor="#CCCCFF"><a name="publ_"><h3>Public Members</h3>
</a>
</dt>
<dd><a name="publ_ops"> </a>
<table cellpadding="5" cellspacing="0" width="100%">
<tr bgcolor="#CCCCFF">
<td colspan="2"><h4>Methods</h4>
</td>
</tr>
<tr>
<td> <br>
<a href="OWeakAggObject/o.html#OWeakAggObject-1">OWeakAggObject</a>( ) throw( );</td>
<td width="50%"> Constructor. No delegator set.
</td>
</tr>
<tr>
<td>virtual void <br>
<a href="OWeakAggObject/o.html#acquire-1">acquire</a>( ) throw( );</td>
<td width="50%"> If a delegator is set, then the delegators gets acquired. Otherwise call is delegated to
base class ::cppu::OWeakObject.
</td>
</tr>
<tr>
<td>virtual void <br>
<a href="OWeakAggObject/o.html#release-1">release</a>( ) throw( );</td>
<td width="50%"> If a delegator is set, then the delegators gets released. Otherwise call is delegated to
base class ::cppu::OWeakObject.
</td>
</tr>
<tr>
<td>virtual ::com::sun::star::uno::Any <br>
<a href="OWeakAggObject/o.html#queryInterface-1041">queryInterface</a>( const ::com::sun::star::uno::Type &amp; rType ) throw( ::com::sun::star::uno::RuntimeException );</td>
<td width="50%"> </td>
</tr>
<tr>
<td>virtual void <br>
<a href="OWeakAggObject/o.html#setDelegator-1042">setDelegator</a>( const ::com::sun::star::uno::Reference&lt; ::com::sun::star::uno::XInterface &gt; &amp; Delegator ) throw( ::com::sun::star::uno::RuntimeException );</td>
<td width="50%"> Set the delegator. The delegator member reference is a weak reference.
</td>
</tr>
<tr>
<td>virtual ::com::sun::star::uno::Any <br>
<a href="OWeakAggObject/o.html#queryAggregation-1041">queryAggregation</a>( const ::com::sun::star::uno::Type &amp; rType ) throw( ::com::sun::star::uno::RuntimeException );</td>
<td width="50%"> Called by the delegator or queryInterface. Re-implement this method instead of
queryInterface.
</td>
</tr>
</table>
<hr>
</dd>
</dl>
<dl>
<dt bgcolor="#CCCCFF"><a name="prot_"><h3>Protected Members</h3>
</a>
</dt>
<dd><a name="prot_ops"> </a>
<table cellpadding="5" cellspacing="0" width="100%">
<tr bgcolor="#CCCCFF">
<td colspan="2"><h4>Methods</h4>
</td>
</tr>
<tr>
<td>virtual <br>
<a href="OWeakAggObject/o.html#~OWeakAggObject-1">~OWeakAggObject</a>( ) throw( ::com::sun::star::uno::RuntimeException );</td>
<td width="50%"> Virtual dtor. Called when reference count is 0.
</td>
</tr>
</table>
<hr>
<a name="prot_vars"> </a>
<table cellpadding="5" cellspacing="0" width="100%">
<tr bgcolor="#CCCCFF">
<td colspan="2"><h4>Data</h4>
</td>
</tr>
<tr bgcolor="white">
<td>::com::sun::star::uno::<a href="../com/sun/star/uno/c-WeakReferenceHelper.html">WeakReferenceHelper</a> <a href="OWeakAggObject/d.html#xDelegator"><strong>xDelegator;</strong></a></td>
<td>weak reference to delegator.
</td>
</tr>
</table>
<hr>
</dd>
</dl>
<a href="#_top_" class="objchapter">Top of Page</a><hr size="3"><p class="copyright" align="center">Copyright 2002 Sun Microsystems, Inc., 901 San Antonio Road, Palo Alto, CA 94303 USA.</p>
</body>