Sophie

Sophie

distrib > Mandriva > 2010.2 > i586 > media > contrib-backports > by-pkgid > 4f5f2dc0f55b453456458df885792b0b > files > 92

ucommon-doc-5.0.4-1mdv2010.2.i586.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>ucommon: ucommon::CountedObject Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.6.3 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li><a href="examples.html"><span>Examples</span></a></li>
    </ul>
  </div>
  <div class="tabs">
    <ul>
      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
      <li><a href="classes.html"><span>Data&nbsp;Structure&nbsp;Index</span></a></li>
      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
    </ul>
  </div>
  <div class="navpath"><a class="el" href="a00208.html">ucommon</a>::<a class="el" href="a00039.html">CountedObject</a>
  </div>
</div>
<div class="contents">
<h1>ucommon::CountedObject Class Reference</h1><!-- doxytag: class="ucommon::CountedObject" --><!-- doxytag: inherits="ucommon::ObjectProtocol" -->
<p>A base class for reference counted objects.  
<a href="#_details">More...</a></p>

<p><code>#include &lt;<a class="el" href="a00192_source.html">object.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for ucommon::CountedObject:</div>
<div class="dynsection">
<div class="center"><img src="a00365.png" border="0" usemap="#ucommon_1_1_counted_object_inherit__map" alt="Inheritance graph"/></div>
<map name="ucommon_1_1_counted_object_inherit__map" id="ucommon_1_1_counted_object_inherit__map">
<area shape="rect" id="node5" href="a00104.html" title="This is a base class for objects that may be created in pager pools." alt="" coords="5,155,227,181"/><area shape="rect" id="node7" href="a00149.html" title="This is an internal class which contains the actual string data along with some control..." alt="" coords="251,155,512,181"/><area shape="rect" id="node2" href="a00095.html" title="A common base class for all managed objects." alt="" coords="123,5,373,32"/></map>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<div class="dynheader">
Collaboration diagram for ucommon::CountedObject:</div>
<div class="dynsection">
<div class="center"><img src="a00366.png" border="0" usemap="#ucommon_1_1_counted_object_coll__map" alt="Collaboration graph"/></div>
<map name="ucommon_1_1_counted_object_coll__map" id="ucommon_1_1_counted_object_coll__map">
<area shape="rect" id="node2" href="a00095.html" title="A common base class for all managed objects." alt="" coords="5,5,256,32"/></map>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">unsigned&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00039.html#a6e31fcde57db1692401d65aec1cc54a3">copied</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the number of active references (retentions) to our object.  <a href="#a6e31fcde57db1692401d65aec1cc54a3"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00039.html#a57ac87c1f72c11b22314f22d36d584a7">isCopied</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Test if the object has copied references.  <a href="#a57ac87c1f72c11b22314f22d36d584a7"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00039.html#a28496718de0dd1916de495384ddac32d">isRetained</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Test if the object has been referenced (retained) by anyone yet.  <a href="#a28496718de0dd1916de495384ddac32d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00039.html#ade41cc17d81bd2de95e37f085a26175d">release</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Decrease reference count when released.  <a href="#ade41cc17d81bd2de95e37f085a26175d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac42393e616e35bf04d66adf6b4174ccc"></a><!-- doxytag: member="ucommon::CountedObject::retain" ref="ac42393e616e35bf04d66adf6b4174ccc" args="(void)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00039.html#ac42393e616e35bf04d66adf6b4174ccc">retain</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Increase reference count when retained. <br/></td></tr>
<tr><td colspan="2"><h2>Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00039.html#ab4d45850fb78637a4a17c1fa6279567f">CountedObject</a> (const <a class="el" href="a00095.html">ObjectProtocol</a> &amp;ref)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Construct a copy of a counted object.  <a href="#ab4d45850fb78637a4a17c1fa6279567f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae359a14684fdb9f71814f794bc0ebc59"></a><!-- doxytag: member="ucommon::CountedObject::CountedObject" ref="ae359a14684fdb9f71814f794bc0ebc59" args="()" -->
&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00039.html#ae359a14684fdb9f71814f794bc0ebc59">CountedObject</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Construct a counted object, mark initially as unreferenced. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00039.html#a99ce9900fd6d279935e611c5c8bd8a10">dealloc</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Dealloc object no longer referenced.  <a href="#a99ce9900fd6d279935e611c5c8bd8a10"></a><br/></td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<p>A base class for reference counted objects. </p>
<p>Reference counted objects keep track of how many objects refer to them and fall out of scope when they are no longer being referred to. This can be used to achieve automatic heap management when used in conjunction with smart pointers. </p>
<dl class="author"><dt><b>Author:</b></dt><dd>David Sugar &lt;<a href="mailto:dyfet@gnutelephony.org">dyfet@gnutelephony.org</a>&gt; </dd></dl>

<p>Definition at line <a class="el" href="a00192_source.html#l00094">94</a> of file <a class="el" href="a00192_source.html">object.h</a>.</p>
<hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="ab4d45850fb78637a4a17c1fa6279567f"></a><!-- doxytag: member="ucommon::CountedObject::CountedObject" ref="ab4d45850fb78637a4a17c1fa6279567f" args="(const ObjectProtocol &amp;ref)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ucommon::CountedObject::CountedObject </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="a00095.html">ObjectProtocol</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>ref</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Construct a copy of a counted object. </p>
<p>Our instance is not a reference to the original object but a duplicate, so we do not retain the original and we do reset our count to mark as initially unreferenced. </p>

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="a6e31fcde57db1692401d65aec1cc54a3"></a><!-- doxytag: member="ucommon::CountedObject::copied" ref="a6e31fcde57db1692401d65aec1cc54a3" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned ucommon::CountedObject::copied </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Return the number of active references (retentions) to our object. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>number of references to our object. </dd></dl>

<p>Definition at line <a class="el" href="a00192_source.html#l00140">140</a> of file <a class="el" href="a00192_source.html">object.h</a>.</p>

</div>
</div>
<a class="anchor" id="a99ce9900fd6d279935e611c5c8bd8a10"></a><!-- doxytag: member="ucommon::CountedObject::dealloc" ref="a99ce9900fd6d279935e611c5c8bd8a10" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void ucommon::CountedObject::dealloc </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [protected, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Dealloc object no longer referenced. </p>
<p>The dealloc routine would commonly be used for a self delete to return the object back to a heap when it is no longer referenced. </p>

<p>Reimplemented in <a class="el" href="a00104.html#a1ac67edbe7eeb6b33d4541385833ec69">ucommon::PagerObject</a>.</p>

</div>
</div>
<a class="anchor" id="a57ac87c1f72c11b22314f22d36d584a7"></a><!-- doxytag: member="ucommon::CountedObject::isCopied" ref="a57ac87c1f72c11b22314f22d36d584a7" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool ucommon::CountedObject::isCopied </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Test if the object has copied references. </p>
<p>This means that more than one object has a reference to our object. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if referenced by more than one object. </dd></dl>

<p>Definition at line <a class="el" href="a00192_source.html#l00126">126</a> of file <a class="el" href="a00192_source.html">object.h</a>.</p>

</div>
</div>
<a class="anchor" id="a28496718de0dd1916de495384ddac32d"></a><!-- doxytag: member="ucommon::CountedObject::isRetained" ref="a28496718de0dd1916de495384ddac32d" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool ucommon::CountedObject::isRetained </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Test if the object has been referenced (retained) by anyone yet. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if retained. </dd></dl>

<p>Definition at line <a class="el" href="a00192_source.html#l00133">133</a> of file <a class="el" href="a00192_source.html">object.h</a>.</p>

</div>
</div>
<a class="anchor" id="ade41cc17d81bd2de95e37f085a26175d"></a><!-- doxytag: member="ucommon::CountedObject::release" ref="ade41cc17d81bd2de95e37f085a26175d" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ucommon::CountedObject::release </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Decrease reference count when released. </p>
<p>If no longer retained, then the object is dealloc'd. </p>

<p>Implements <a class="el" href="a00095.html#a2eb0d4a0fb083b3b52e5a2e61d37c489">ucommon::ObjectProtocol</a>.</p>

<p>Reimplemented in <a class="el" href="a00104.html#aa8794a8c1c4eabf1c7c36c554975d2e4">ucommon::PagerObject</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>ucommon/<a class="el" href="a00192_source.html">object.h</a></li>
</ul>
</div>
<hr class="footer"/><address style="text-align: right;"><small>Generated on Thu Jul 14 16:39:33 2011 for ucommon by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
</html>