Sophie

Sophie

distrib > Mageia > 1 > i586 > by-pkgid > 64656f00434e190abe8506174ca339ed > files > 310

ucommon-doc-4.3.1-1.mga1.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: object_pointer&lt; T, P &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.7.3 -->
<div id="top">
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">ucommon</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.html"><span>Data&#160;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 id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li><a href="classes.html"><span>Data&#160;Structure&#160;Index</span></a></li>
      <li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
    </ul>
  </div>
</div>
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
  initNavTree('a00092.html','');
</script>
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a>  </div>
  <div class="headertitle">
<h1>object_pointer&lt; T, P &gt; Class Template Reference</h1>  </div>
</div>
<div class="contents">
<!-- doxytag: class="object_pointer" --><!-- doxytag: inherits="P" -->
<p>Typed smart pointer class.  
<a href="#_details">More...</a></p>

<p><code>#include &lt;<a class="el" href="a00191_source.html">object.h</a>&gt;</code></p>

<p>Inherits P.</p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">T *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00092.html#a8d35c07aa5a44674cac0ce3a6c8d5b71">get</a> (void) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get pointer to object.  <a href="#a8d35c07aa5a44674cac0ce3a6c8d5b71"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00092.html#a15b4562b1027c7ba30005466e1645162">object_pointer</a> (T *object)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a pointer with a reference to a heap object.  <a href="#a15b4562b1027c7ba30005466e1645162"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a56d00a344ff2fb9b70387eaf54977273"></a><!-- doxytag: member="object_pointer::object_pointer" ref="a56d00a344ff2fb9b70387eaf54977273" args="()" -->
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00092.html#a56d00a344ff2fb9b70387eaf54977273">object_pointer</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a pointer with no reference. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa7ff95c433c1f24254935740f4b21732"></a><!-- doxytag: member="object_pointer::operator bool" ref="aa7ff95c433c1f24254935740f4b21732" args="()" -->
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00092.html#aa7ff95c433c1f24254935740f4b21732">operator bool</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">See if pointer is set. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6a0b4f0def3503259cb9683889633661"></a><!-- doxytag: member="object_pointer::operator!" ref="a6a0b4f0def3503259cb9683889633661" args="()" -->
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00092.html#a6a0b4f0def3503259cb9683889633661">operator!</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">See if pointer is not set. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">T &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00092.html#a137d4293bae54d8677912c7d1d1a8d49">operator()</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Reference object we are pointing to through function reference.  <a href="#a137d4293bae54d8677912c7d1d1a8d49"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">T *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00092.html#a6bb9e419ea474051fea21d90ef7a4a3f">operator*</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Reference object we are pointing to through pointer indirection.  <a href="#a6bb9e419ea474051fea21d90ef7a4a3f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">T *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00092.html#ac3a2e3382a23ff63688248634eec5874">operator++</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Iterate our pointer if we reference an array on the heap.  <a href="#ac3a2e3382a23ff63688248634eec5874"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00092.html#af1ab5cb5744586b0360fb6214d18f2c1">operator--</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Iterate our pointer if we reference an array on the heap.  <a href="#af1ab5cb5744586b0360fb6214d18f2c1"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">T *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00092.html#a6fdad1db709deffa55a5056bd669bd14">operator-&gt;</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Reference member of object we are pointing to.  <a href="#a6fdad1db709deffa55a5056bd669bd14"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00092.html#a916e5446ae1c2080a7c41c903da18b74">operator=</a> (T *typed)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Perform assignment operator to existing object.  <a href="#a916e5446ae1c2080a7c41c903da18b74"></a><br/></td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<div class="textblock"><h3>template&lt;class T, class P = auto_object&gt;<br/>
 class object_pointer&lt; T, P &gt;</h3>

<p>Typed smart pointer class. </p>
<p>This is used to manage references to a specific typed object on the heap that is derived from the base <a class="el" href="a00091.html" title="A common base class for all managed objects.">Object</a> class. This is most commonly used to manage references to reference counted heap objects so their heap usage can be auto-managed while there is active references to such objects. Pointers are usually created on the stack frame and used to reference an object during the life of a member function. They can be created in other objects that live on the heap and can be used to maintain active references so long as the object they are contained in remains in scope as well. </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="a00191_source.html#l00413">413</a> of file <a class="el" href="a00191_source.html">object.h</a>.</p>
</div><hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a15b4562b1027c7ba30005466e1645162"></a><!-- doxytag: member="object_pointer::object_pointer" ref="a15b4562b1027c7ba30005466e1645162" args="(T *object)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T , class P  = auto_object&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00092.html">object_pointer</a>&lt; T, P &gt;::<a class="el" href="a00092.html">object_pointer</a> </td>
          <td>(</td>
          <td class="paramtype">T *&#160;</td>
          <td class="paramname"><em>object</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Create a pointer with a reference to a heap object. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">object</td><td>we are referencing. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="a00191_source.html#l00425">425</a> of file <a class="el" href="a00191_source.html">object.h</a>.</p>

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="a8d35c07aa5a44674cac0ce3a6c8d5b71"></a><!-- doxytag: member="object_pointer::get" ref="a8d35c07aa5a44674cac0ce3a6c8d5b71" args="(void) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T , class P  = auto_object&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">T* <a class="el" href="a00092.html">object_pointer</a>&lt; T, P &gt;::get </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get pointer to object. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>pointer or NULL if we are not referencing an object. </dd></dl>

<p>Definition at line <a class="el" href="a00191_source.html#l00452">452</a> of file <a class="el" href="a00191_source.html">object.h</a>.</p>

</div>
</div>
<a class="anchor" id="a137d4293bae54d8677912c7d1d1a8d49"></a><!-- doxytag: member="object_pointer::operator()" ref="a137d4293bae54d8677912c7d1d1a8d49" args="() const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T , class P  = auto_object&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">T&amp; <a class="el" href="a00092.html">object_pointer</a>&lt; T, P &gt;::operator() </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Reference object we are pointing to through function reference. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>object we are pointing to. </dd></dl>

<p>Definition at line <a class="el" href="a00191_source.html#l00438">438</a> of file <a class="el" href="a00191_source.html">object.h</a>.</p>

</div>
</div>
<a class="anchor" id="a6bb9e419ea474051fea21d90ef7a4a3f"></a><!-- doxytag: member="object_pointer::operator*" ref="a6bb9e419ea474051fea21d90ef7a4a3f" args="() const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T , class P  = auto_object&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">T* <a class="el" href="a00092.html">object_pointer</a>&lt; T, P &gt;::operator* </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Reference object we are pointing to through pointer indirection. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>pointer to object we are pointing to. </dd></dl>

<p>Definition at line <a class="el" href="a00191_source.html#l00431">431</a> of file <a class="el" href="a00191_source.html">object.h</a>.</p>

</div>
</div>
<a class="anchor" id="ac3a2e3382a23ff63688248634eec5874"></a><!-- doxytag: member="object_pointer::operator++" ref="ac3a2e3382a23ff63688248634eec5874" args="()" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T , class P  = auto_object&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">T* <a class="el" href="a00092.html">object_pointer</a>&lt; T, P &gt;::operator++ </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Iterate our pointer if we reference an array on the heap. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>next object in array. </dd></dl>

<p>Definition at line <a class="el" href="a00191_source.html#l00459">459</a> of file <a class="el" href="a00191_source.html">object.h</a>.</p>

</div>
</div>
<a class="anchor" id="af1ab5cb5744586b0360fb6214d18f2c1"></a><!-- doxytag: member="object_pointer::operator&#45;&#45;" ref="af1ab5cb5744586b0360fb6214d18f2c1" args="()" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T , class P  = auto_object&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="a00092.html">object_pointer</a>&lt; T, P &gt;::operator-- </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Iterate our pointer if we reference an array on the heap. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>previous object in array. </dd></dl>

<p>Definition at line <a class="el" href="a00191_source.html#l00466">466</a> of file <a class="el" href="a00191_source.html">object.h</a>.</p>

</div>
</div>
<a class="anchor" id="a6fdad1db709deffa55a5056bd669bd14"></a><!-- doxytag: member="object_pointer::operator&#45;&gt;" ref="a6fdad1db709deffa55a5056bd669bd14" args="() const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T , class P  = auto_object&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">T* <a class="el" href="a00092.html">object_pointer</a>&lt; T, P &gt;::operator-&gt; </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Reference member of object we are pointing to. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>reference to member of pointed object. </dd></dl>

<p>Definition at line <a class="el" href="a00191_source.html#l00445">445</a> of file <a class="el" href="a00191_source.html">object.h</a>.</p>

</div>
</div>
<a class="anchor" id="a916e5446ae1c2080a7c41c903da18b74"></a><!-- doxytag: member="object_pointer::operator=" ref="a916e5446ae1c2080a7c41c903da18b74" args="(T *typed)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T , class P  = auto_object&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="a00092.html">object_pointer</a>&lt; T, P &gt;::operator= </td>
          <td>(</td>
          <td class="paramtype">T *&#160;</td>
          <td class="paramname"><em>typed</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Perform assignment operator to existing object. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">typed</td><td>object to assign. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="a00191_source.html#l00473">473</a> of file <a class="el" href="a00191_source.html">object.h</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>ucommon/<a class="el" href="a00191_source.html">object.h</a></li>
</ul>
</div>
</div>
  <div id="nav-path" class="navpath">
    <ul>
      <li class="navelem"><a class="el" href="a00092.html">object_pointer</a>      </li>
      <li class="footer">Generated on Wed Apr 13 2011 22:39:48 for ucommon by&#160;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
    </ul>
  </div>

</body>
</html>