Sophie

Sophie

distrib > Mandriva > 2010.1 > i586 > by-pkgid > 4f5f2dc0f55b453456458df885792b0b > files > 29

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::auto_object 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="a00021.html">auto_object</a>
  </div>
</div>
<div class="contents">
<h1>ucommon::auto_object Class Reference</h1><!-- doxytag: class="ucommon::auto_object" -->
<p>A general purpose smart pointer helper class.  
<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">
Collaboration diagram for ucommon::auto_object:</div>
<div class="dynsection">
<div class="center"><img src="a00339.png" border="0" usemap="#ucommon_1_1auto__object_coll__map" alt="Collaboration graph"/></div>
<map name="ucommon_1_1auto__object_coll__map" id="ucommon_1_1auto__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">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#a299d817bede8764904988e6f4bd8821f">auto_object</a> (const <a class="el" href="a00021.html">auto_object</a> &amp;<a class="el" href="a00110.html">pointer</a>)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Construct an auto-pointer as a copy of another pointer.  <a href="#a299d817bede8764904988e6f4bd8821f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#ab9882bc9a0f63c823280cb5ae90d5176">auto_object</a> (<a class="el" href="a00095.html">ObjectProtocol</a> *object)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Construct an auto-pointer referencing an existing object.  <a href="#ab9882bc9a0f63c823280cb5ae90d5176"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#a0f4bdc921fd0e6cc7062d940fb6ec568">operator bool</a> () const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Test if the pointer is referencing an object.  <a href="#a0f4bdc921fd0e6cc7062d940fb6ec568"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#a420f2bc3e0361aceb6b999b835cfcc23">operator!</a> () const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Test if the pointer is not set.  <a href="#a420f2bc3e0361aceb6b999b835cfcc23"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#a74c06dc2b5ed4c9bbaf1575d95d7f8df">operator!=</a> (<a class="el" href="a00095.html">ObjectProtocol</a> *object) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">test if the object being referenced is not the same as the object we specify.  <a href="#a74c06dc2b5ed4c9bbaf1575d95d7f8df"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#aae31f92bc054d6ea65149c015fe4561f">operator=</a> (<a class="el" href="a00095.html">ObjectProtocol</a> *object)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set our pointer to a specific object.  <a href="#aae31f92bc054d6ea65149c015fe4561f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#a69db0091d2d958d5e65881d4bb7778e8">operator==</a> (<a class="el" href="a00095.html">ObjectProtocol</a> *object) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">test if the object being referenced is the same as the object we specify.  <a href="#a69db0091d2d958d5e65881d4bb7778e8"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#ad8d94e748d3d9924e326157d7cdc58f3">release</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Manually release the pointer.  <a href="#ad8d94e748d3d9924e326157d7cdc58f3"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#aa73054012eefba083512da2e20e5ad21">~auto_object</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Delete auto pointer.  <a href="#aa73054012eefba083512da2e20e5ad21"></a><br/></td></tr>
<tr><td colspan="2"><h2>Protected Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8b2fe648ed8e72219ce017a1764fa44b"></a><!-- doxytag: member="ucommon::auto_object::object" ref="a8b2fe648ed8e72219ce017a1764fa44b" args="" -->
<a class="el" href="a00095.html">ObjectProtocol</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><b>object</b></td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<p>A general purpose smart pointer helper class. </p>
<p>This is particularly useful in conjunction with reference counted objects which can be managed and automatically removed from the heap when they are no longer being referenced by a smart pointer. The smart pointer itself would normally be constructed and initialized as an auto variable in a method call, and will dereference the object when the pointer falls out of scope. This is actually a helper class for the typed pointer template. </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#l00165">165</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="ab9882bc9a0f63c823280cb5ae90d5176"></a><!-- doxytag: member="ucommon::auto_object::auto_object" ref="ab9882bc9a0f63c823280cb5ae90d5176" args="(ObjectProtocol *object)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ucommon::auto_object::auto_object </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00095.html">ObjectProtocol</a> *&nbsp;</td>
          <td class="paramname"> <em>object</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Construct an auto-pointer referencing an existing object. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>object</em>&nbsp;</td><td>we point to. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a299d817bede8764904988e6f4bd8821f"></a><!-- doxytag: member="ucommon::auto_object::auto_object" ref="a299d817bede8764904988e6f4bd8821f" args="(const auto_object &amp;pointer)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ucommon::auto_object::auto_object </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="a00021.html">auto_object</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>pointer</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Construct an auto-pointer as a copy of another pointer. </p>
<p>The retention of the object being pointed to will be increased. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>pointer</em>&nbsp;</td><td>we are a copy of. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="aa73054012eefba083512da2e20e5ad21"></a><!-- doxytag: member="ucommon::auto_object::~auto_object" ref="aa73054012eefba083512da2e20e5ad21" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ucommon::auto_object::~auto_object </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Delete auto pointer. </p>
<p>When it falls out of scope, the retention of the object it references is reduced. If it falls to zero in a reference counted object, then the object is auto-deleted. </p>

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="a0f4bdc921fd0e6cc7062d940fb6ec568"></a><!-- doxytag: member="ucommon::auto_object::operator bool" ref="a0f4bdc921fd0e6cc7062d940fb6ec568" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ucommon::auto_object::operator bool </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Test if the pointer is referencing an object. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if the pointer is currently referencing an object. </dd></dl>

</div>
</div>
<a class="anchor" id="a420f2bc3e0361aceb6b999b835cfcc23"></a><!-- doxytag: member="ucommon::auto_object::operator!" ref="a420f2bc3e0361aceb6b999b835cfcc23" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool ucommon::auto_object::operator! </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Test if the pointer is not set. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if the pointer is not referencing anything. </dd></dl>

</div>
</div>
<a class="anchor" id="a74c06dc2b5ed4c9bbaf1575d95d7f8df"></a><!-- doxytag: member="ucommon::auto_object::operator!=" ref="a74c06dc2b5ed4c9bbaf1575d95d7f8df" args="(ObjectProtocol *object) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool ucommon::auto_object::operator!= </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00095.html">ObjectProtocol</a> *&nbsp;</td>
          <td class="paramname"> <em>object</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>test if the object being referenced is not the same as the object we specify. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>object</em>&nbsp;</td><td>we compare to. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if this is not the object our pointer references. </dd></dl>

</div>
</div>
<a class="anchor" id="aae31f92bc054d6ea65149c015fe4561f"></a><!-- doxytag: member="ucommon::auto_object::operator=" ref="aae31f92bc054d6ea65149c015fe4561f" args="(ObjectProtocol *object)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ucommon::auto_object::operator= </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00095.html">ObjectProtocol</a> *&nbsp;</td>
          <td class="paramname"> <em>object</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set our pointer to a specific object. </p>
<p>If the pointer currently references another object, that object is released. The pointer references our new object and that new object is retained. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>object</em>&nbsp;</td><td>to assign to. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a69db0091d2d958d5e65881d4bb7778e8"></a><!-- doxytag: member="ucommon::auto_object::operator==" ref="a69db0091d2d958d5e65881d4bb7778e8" args="(ObjectProtocol *object) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool ucommon::auto_object::operator== </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00095.html">ObjectProtocol</a> *&nbsp;</td>
          <td class="paramname"> <em>object</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>test if the object being referenced is the same as the object we specify. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>object</em>&nbsp;</td><td>we compare to. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if this is the object our pointer references. </dd></dl>

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

<p>Manually release the pointer. </p>
<p>This reduces the retention level of the object and resets the pointer to point to nobody. </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:28 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>