Sophie

Sophie

distrib > Mandriva > 2011.0 > i586 > by-pkgid > 092973e3430682b17a7d74261285ae23 > files > 89

loki-lib-doc-0.1.7-1.noarch.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Loki: Loki::FunctionStorage&lt; T &gt; Class Template 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.5.8 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
    </ul>
  </div>
  <div class="tabs">
    <ul>
      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
      <li><a href="classes.html"><span>Class&nbsp;Index</span></a></li>
      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    </ul>
  </div>
  <div class="navpath"><a class="el" href="a00192.html">Loki</a>::<a class="el" href="a00063.html">FunctionStorage</a>
  </div>
</div>
<div class="contents">
<h1>Loki::FunctionStorage&lt; T &gt; Class Template Reference<br>
<small>
[<a class="el" href="a00220.html">Storage policies</a>]</small>
</h1><!-- doxytag: class="Loki::FunctionStorage" -->Implementation of the StoragePolicy used by <a class="el" href="a00132.html">SmartPtr</a>.  
<a href="#_details">More...</a>
<p>
<code>#include &lt;SPCachedFactory.h&gt;</code>
<p>
<div class="dynheader">
Collaboration diagram for Loki::FunctionStorage&lt; T &gt;:</div>
<div class="dynsection">
<center><font size="2">[<a target="top" href="graph_legend.html">legend</a>]</font></center></div>

<p>
<a href="a00427.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Public Types</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="52a1fc18d9685e6496bde1078e6949c5"></a><!-- doxytag: member="Loki::FunctionStorage::StoredType" ref="52a1fc18d9685e6496bde1078e6949c5" args="" -->
typedef T *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00063.html#52a1fc18d9685e6496bde1078e6949c5">StoredType</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">the type of the pointee_ object <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="08681726c77c6a7492a375de7c34a1be"></a><!-- doxytag: member="Loki::FunctionStorage::InitPointerType" ref="08681726c77c6a7492a375de7c34a1be" args="" -->
typedef T *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00063.html#08681726c77c6a7492a375de7c34a1be">InitPointerType</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">type used to declare OwnershipPolicy type. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="0e56f22b839615e3082416ca4025ca69"></a><!-- doxytag: member="Loki::FunctionStorage::PointerType" ref="0e56f22b839615e3082416ca4025ca69" args="" -->
typedef T *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00063.html#0e56f22b839615e3082416ca4025ca69">PointerType</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">type returned by operator-&gt; <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="9d90fd63b1864a25cda9f1c76a276841"></a><!-- doxytag: member="Loki::FunctionStorage::ReferenceType" ref="9d90fd63b1864a25cda9f1c76a276841" args="" -->
typedef T &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00063.html#9d90fd63b1864a25cda9f1c76a276841">ReferenceType</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">type returned by operator* <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="e72e07ed847e973c97f8ab1e035f827a"></a><!-- doxytag: member="Loki::FunctionStorage::FunctorType" ref="e72e07ed847e973c97f8ab1e035f827a" args="" -->
typedef <a class="el" href="a00064.html">Functor</a>&lt; void, Seq<br class="typebreak">
&lt; void * &gt; &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00063.html#e72e07ed847e973c97f8ab1e035f827a">FunctorType</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">type of the <a class="el" href="a00064.html">Functor</a> to set <br></td></tr>
<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00063.html#c55c8a149c74a27751204b0215c76041">SetCallBackFunction</a> (const <a class="el" href="a00064.html">FunctorType</a> &amp;functor)</td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
<h3>template&lt;class T&gt;<br>
 class Loki::FunctionStorage&lt; T &gt;</h3>

Implementation of the StoragePolicy used by <a class="el" href="a00132.html">SmartPtr</a>. 
<p>
This storage policy is used by <a class="el" href="a00131.html" title="Encapsulate the object in a SmartPtr with FunctionStorage policy.">SmartPointer</a> CachedFactory's encapsulation policy. It's purpose is to call a <a class="el" href="a00064.html">Functor</a> instead of deleting the underlying pointee object. You have to set the callback functor by calling <a class="el" href="a00063.html#c55c8a149c74a27751204b0215c76041">SetCallBackFunction(const FunctorType &amp;functor)</a>.<p>
Unfortunately, the functor argument is not a reference to the <a class="el" href="a00132.html">SmartPtr</a> but a void *. Making functor argument a reference to the pointer would require the <a class="el" href="a00063.html" title="Implementation of the StoragePolicy used by SmartPtr.">FunctionStorage</a> template to know the full definition of the <a class="el" href="a00132.html">SmartPtr</a>. <hr><h2>Member Function Documentation</h2>
<a class="anchor" name="c55c8a149c74a27751204b0215c76041"></a><!-- doxytag: member="Loki::FunctionStorage::SetCallBackFunction" ref="c55c8a149c74a27751204b0215c76041" args="(const FunctorType &amp;functor)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="a00063.html">Loki::FunctionStorage</a>&lt; T &gt;::SetCallBackFunction           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="a00064.html">FunctorType</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>functor</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the callback function to call. You have to specify it or the smartPtr will throw a bad_function_call exception. 
</div>
</div><p>
<hr>The documentation for this class was generated from the following file:<ul>
<li>SPCachedFactory.h</ul>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Thu Jan 29 18:51:45 2009 for Loki by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
</body>
</html>