Home | History | Annotate | Download | only in oscl_html
      1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
      2 <html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
      3 <title> TemplateOsclSharedPtr&lt; TheClass &gt; class Reference</title>
      4 <link href="doxygen.css" rel="stylesheet" type="text/css">
      5 </head><body>
      6 <!-- Generated by Doxygen 1.2.18 -->
      7 <center>
      8 <a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="modules.html">Modules</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="annotated.html">Data Structures</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Data Fields</a> &nbsp; <a class="qindex" href="globals.html">Globals</a> &nbsp; </center>
      9 <hr><h1>OsclSharedPtr&lt; TheClass &gt; Class Template Reference<br>
     10 <small>
     11 [<a class="el" href="group__osclbase.html">OSCL Base</a>]</small>
     12 </h1>A parameterized smart pointer class. 
     13 <a href="#_details">More...</a>
     14 <p>
     15 <code>#include &lt;<a class="el" href="oscl__shared__ptr_8h-source.html">oscl_shared_ptr.h</a>&gt;</code>
     16 <p>
     17 <table border=0 cellpadding=0 cellspacing=0>
     18 <tr><td></td></tr>
     19 <tr><td colspan=2><br><h2>Public Methods</h2></td></tr>
     20 <tr><td nowrap align=right valign=top>&nbsp;</td><td valign=bottom><a class="el" href="classOsclSharedPtr.html#a0">OsclSharedPtr</a> ()</td></tr>
     21 <tr><td>&nbsp;</td><td><font size=-1><em>Constructor.</em> <a href="#a0"></a><em></em></font><br><br></td></tr>
     22 <tr><td nowrap align=right valign=top>&nbsp;</td><td valign=bottom><a class="el" href="classOsclSharedPtr.html#a1">OsclSharedPtr</a> (TheClass *inClassPtr, <a class="el" href="classOsclRefCounter.html">OsclRefCounter</a> *in_refcnt)</td></tr>
     23 <tr><td>&nbsp;</td><td><font size=-1><em>Constructor.</em> <a href="#a1"></a><em></em></font><br><br></td></tr>
     24 <tr><td nowrap align=right valign=top>&nbsp;</td><td valign=bottom><a class="el" href="classOsclSharedPtr.html#a2">OsclSharedPtr</a> (const OsclSharedPtr &amp;inSharedPtr)</td></tr>
     25 <tr><td>&nbsp;</td><td><font size=-1><em>Copy constructor.</em> <a href="#a2"></a><em></em></font><br><br></td></tr>
     26 <tr><td nowrap align=right valign=top>virtual&nbsp;</td><td valign=bottom><a class="el" href="classOsclSharedPtr.html#a3">~OsclSharedPtr</a> ()</td></tr>
     27 <tr><td>&nbsp;</td><td><font size=-1><em>Destructor.</em> <a href="#a3"></a><em></em></font><br><br></td></tr>
     28 <tr><td nowrap align=right valign=top>TheClass *&nbsp;</td><td valign=bottom><a class="el" href="classOsclSharedPtr.html#a4">operator-&gt;</a> ()</td></tr>
     29 <tr><td nowrap align=right valign=top>TheClass &amp;&nbsp;</td><td valign=bottom><a class="el" href="classOsclSharedPtr.html#a5">operator *</a> ()</td></tr>
     30 <tr><td>&nbsp;</td><td><font size=-1><em>The indirection operator returns a reference to an object of the parameterized type.</em> <a href="#a5"></a><em></em></font><br><br></td></tr>
     31 <tr><td nowrap align=right valign=top>&nbsp;</td><td valign=bottom><a class="el" href="classOsclSharedPtr.html#a6">operator TheClass *</a> ()</td></tr>
     32 <tr><td>&nbsp;</td><td><font size=-1><em>Casting operator.</em> <a href="#a6"></a><em></em></font><br><br></td></tr>
     33 <tr><td nowrap align=right valign=top>TheClass *&nbsp;</td><td valign=bottom><a class="el" href="classOsclSharedPtr.html#a7">GetRep</a> ()</td></tr>
     34 <tr><td>&nbsp;</td><td><font size=-1><em>Use this function to get a pointer to the wrapped object.</em> <a href="#a7"></a><em></em></font><br><br></td></tr>
     35 <tr><td nowrap align=right valign=top><a class="el" href="classOsclRefCounter.html">OsclRefCounter</a> *&nbsp;</td><td valign=bottom><a class="el" href="classOsclSharedPtr.html#a8">GetRefCounter</a> ()</td></tr>
     36 <tr><td>&nbsp;</td><td><font size=-1><em>Get the refcount pointer. This should primarily be used for conversion operations.</em> <a href="#a8"></a><em></em></font><br><br></td></tr>
     37 <tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="classOsclSharedPtr.html#a9">get_count</a> ()</td></tr>
     38 <tr><td>&nbsp;</td><td><font size=-1><em>Get a count of how many references to the object exist.</em> <a href="#a9"></a><em></em></font><br><br></td></tr>
     39 <tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="group__osclbase.html#a111">Bind</a> (const OsclSharedPtr &amp;inHandle)</td></tr>
     40 <tr><td>&nbsp;</td><td><font size=-1><em>Use this function to bind an existing OsclSharedPtr to a already-wrapped object.</em> <a href="group__osclbase.html#a111"></a><em></em></font><br><br></td></tr>
     41 <tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="group__osclbase.html#a112">Bind</a> (TheClass *ptr, <a class="el" href="classOsclRefCounter.html">OsclRefCounter</a> *in_refcnt)</td></tr>
     42 <tr><td>&nbsp;</td><td><font size=-1><em>Use this function to bind an existing OsclSharedPtr to a new (unwrapped) object.</em> <a href="group__osclbase.html#a112"></a><em></em></font><br><br></td></tr>
     43 <tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="classOsclSharedPtr.html#a12">Unbind</a> ()</td></tr>
     44 <tr><td>&nbsp;</td><td><font size=-1><em>Use this function of unbind an existing OsclSharedPtr.</em> <a href="#a12"></a><em></em></font><br><br></td></tr>
     45 <tr><td nowrap align=right valign=top>OsclSharedPtr &amp;&nbsp;</td><td valign=bottom><a class="el" href="classOsclSharedPtr.html#a13">operator=</a> (const OsclSharedPtr &amp;inSharedPtr)</td></tr>
     46 <tr><td>&nbsp;</td><td><font size=-1><em>Assignment operator.</em> <a href="#a13"></a><em></em></font><br><br></td></tr>
     47 <tr><td nowrap align=right valign=top>bool&nbsp;</td><td valign=bottom><a class="el" href="group__osclbase.html#a110">operator==</a> (const OsclSharedPtr &amp;b) const</td></tr>
     48 <tr><td>&nbsp;</td><td><font size=-1><em>Test for equality to see if two PVHandles wrap the same object.</em> <a href="group__osclbase.html#a110"></a><em></em></font><br><br></td></tr>
     49 </table>
     50 <hr><a name="_details"></a><h2>Detailed Description</h2>
     51 <h3>template&lt;class TheClass&gt;<br>
     52  class OsclSharedPtr&lt; TheClass &gt;</h3>
     53 
     54 A parameterized smart pointer class.
     55 <p>
     56 <hr><h2>Constructor &amp; Destructor Documentation</h2>
     57 <a name="a0" doxytag="OsclSharedPtr::OsclSharedPtr"></a><p>
     58 <table width="100%" cellpadding="2" cellspacing="0" border="0">
     59   <tr>
     60     <td class="md">
     61       <table cellpadding="0" cellspacing="0" border="0">
     62         <tr>
     63           <td class="md" colspan="4">
     64 template&lt;class TheClass&gt; </td>
     65         </tr>
     66         <tr>
     67           <td class="md" nowrap valign="top"> OsclSharedPtr&lt; TheClass &gt;::OsclSharedPtr </td>
     68           <td class="md" valign="top">(&nbsp;</td>
     69           <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
     70           <td class="md" valign="top">)&nbsp;</td>
     71           <td class="md" nowrap><code> [inline]</code></td>
     72         </tr>
     73 
     74       </table>
     75     </td>
     76   </tr>
     77 </table>
     78 <table cellspacing=5 cellpadding=0 border=0>
     79   <tr>
     80     <td>
     81       &nbsp;
     82     </td>
     83     <td>
     84 
     85 <p>
     86 Constructor.
     87 <p>
     88     </td>
     89   </tr>
     90 </table>
     91 <a name="a1" doxytag="OsclSharedPtr::OsclSharedPtr"></a><p>
     92 <table width="100%" cellpadding="2" cellspacing="0" border="0">
     93   <tr>
     94     <td class="md">
     95       <table cellpadding="0" cellspacing="0" border="0">
     96         <tr>
     97           <td class="md" colspan="4">
     98 template&lt;class TheClass&gt; </td>
     99         </tr>
    100         <tr>
    101           <td class="md" nowrap valign="top"> OsclSharedPtr&lt; TheClass &gt;::OsclSharedPtr </td>
    102           <td class="md" valign="top">(&nbsp;</td>
    103           <td class="md" nowrap valign="top">TheClass *&nbsp;</td>
    104           <td class="mdname" nowrap>&nbsp; <em>inClassPtr</em>, </td>
    105         </tr>
    106         <tr>
    107           <td></td>
    108           <td></td>
    109           <td class="md" nowrap><a class="el" href="classOsclRefCounter.html">OsclRefCounter</a> *&nbsp;</td>
    110           <td class="mdname" nowrap>&nbsp; <em>in_refcnt</em></td>
    111         </tr>
    112         <tr>
    113           <td></td>
    114           <td class="md">)&nbsp;</td>
    115           <td class="md" colspan="2"><code> [inline]</code></td>
    116         </tr>
    117 
    118       </table>
    119     </td>
    120   </tr>
    121 </table>
    122 <table cellspacing=5 cellpadding=0 border=0>
    123   <tr>
    124     <td>
    125       &nbsp;
    126     </td>
    127     <td>
    128 
    129 <p>
    130 Constructor.
    131 <p>
    132 <dl compact><dt><b>Parameters: </b></dt><dd>
    133 <table border=0 cellspacing=2 cellpadding=0>
    134 <tr><td valign=top><em>inClassPtr</em>&nbsp;</td><td>
    135 A pointer to an instance of the parameterized type that the new OsclSharedPtr will wrap. </td></tr>
    136 </table>
    137 </dl>    </td>
    138   </tr>
    139 </table>
    140 <a name="a2" doxytag="OsclSharedPtr::OsclSharedPtr"></a><p>
    141 <table width="100%" cellpadding="2" cellspacing="0" border="0">
    142   <tr>
    143     <td class="md">
    144       <table cellpadding="0" cellspacing="0" border="0">
    145         <tr>
    146           <td class="md" colspan="4">
    147 template&lt;class TheClass&gt; </td>
    148         </tr>
    149         <tr>
    150           <td class="md" nowrap valign="top"> OsclSharedPtr&lt; TheClass &gt;::OsclSharedPtr </td>
    151           <td class="md" valign="top">(&nbsp;</td>
    152           <td class="md" nowrap valign="top">const OsclSharedPtr&lt; TheClass &gt; &amp;&nbsp;</td>
    153           <td class="mdname1" valign="top" nowrap>&nbsp; <em>inSharedPtr</em>          </td>
    154           <td class="md" valign="top">)&nbsp;</td>
    155           <td class="md" nowrap><code> [inline]</code></td>
    156         </tr>
    157 
    158       </table>
    159     </td>
    160   </tr>
    161 </table>
    162 <table cellspacing=5 cellpadding=0 border=0>
    163   <tr>
    164     <td>
    165       &nbsp;
    166     </td>
    167     <td>
    168 
    169 <p>
    170 Copy constructor.
    171 <p>
    172     </td>
    173   </tr>
    174 </table>
    175 <a name="a3" doxytag="OsclSharedPtr::~OsclSharedPtr"></a><p>
    176 <table width="100%" cellpadding="2" cellspacing="0" border="0">
    177   <tr>
    178     <td class="md">
    179       <table cellpadding="0" cellspacing="0" border="0">
    180         <tr>
    181           <td class="md" colspan="4">
    182 template&lt;class TheClass&gt; </td>
    183         </tr>
    184         <tr>
    185           <td class="md" nowrap valign="top"> virtual OsclSharedPtr&lt; TheClass &gt;::~OsclSharedPtr </td>
    186           <td class="md" valign="top">(&nbsp;</td>
    187           <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
    188           <td class="md" valign="top">)&nbsp;</td>
    189           <td class="md" nowrap><code> [inline, virtual]</code></td>
    190         </tr>
    191 
    192       </table>
    193     </td>
    194   </tr>
    195 </table>
    196 <table cellspacing=5 cellpadding=0 border=0>
    197   <tr>
    198     <td>
    199       &nbsp;
    200     </td>
    201     <td>
    202 
    203 <p>
    204 Destructor.
    205 <p>
    206     </td>
    207   </tr>
    208 </table>
    209 <hr><h2>Member Function Documentation</h2>
    210 <a name="a9" doxytag="OsclSharedPtr::get_count"></a><p>
    211 <table width="100%" cellpadding="2" cellspacing="0" border="0">
    212   <tr>
    213     <td class="md">
    214       <table cellpadding="0" cellspacing="0" border="0">
    215         <tr>
    216           <td class="md" colspan="4">
    217 template&lt;class TheClass&gt; </td>
    218         </tr>
    219         <tr>
    220           <td class="md" nowrap valign="top"> int OsclSharedPtr&lt; TheClass &gt;::get_count </td>
    221           <td class="md" valign="top">(&nbsp;</td>
    222           <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
    223           <td class="md" valign="top">)&nbsp;</td>
    224           <td class="md" nowrap><code> [inline]</code></td>
    225         </tr>
    226 
    227       </table>
    228     </td>
    229   </tr>
    230 </table>
    231 <table cellspacing=5 cellpadding=0 border=0>
    232   <tr>
    233     <td>
    234       &nbsp;
    235     </td>
    236     <td>
    237 
    238 <p>
    239 Get a count of how many references to the object exist.
    240 <p>
    241     </td>
    242   </tr>
    243 </table>
    244 <a name="a8" doxytag="OsclSharedPtr::GetRefCounter"></a><p>
    245 <table width="100%" cellpadding="2" cellspacing="0" border="0">
    246   <tr>
    247     <td class="md">
    248       <table cellpadding="0" cellspacing="0" border="0">
    249         <tr>
    250           <td class="md" colspan="4">
    251 template&lt;class TheClass&gt; </td>
    252         </tr>
    253         <tr>
    254           <td class="md" nowrap valign="top"> <a class="el" href="classOsclRefCounter.html">OsclRefCounter</a>* OsclSharedPtr&lt; TheClass &gt;::GetRefCounter </td>
    255           <td class="md" valign="top">(&nbsp;</td>
    256           <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
    257           <td class="md" valign="top">)&nbsp;</td>
    258           <td class="md" nowrap><code> [inline]</code></td>
    259         </tr>
    260 
    261       </table>
    262     </td>
    263   </tr>
    264 </table>
    265 <table cellspacing=5 cellpadding=0 border=0>
    266   <tr>
    267     <td>
    268       &nbsp;
    269     </td>
    270     <td>
    271 
    272 <p>
    273 Get the refcount pointer. This should primarily be used for conversion operations.
    274 <p>
    275     </td>
    276   </tr>
    277 </table>
    278 <a name="a7" doxytag="OsclSharedPtr::GetRep"></a><p>
    279 <table width="100%" cellpadding="2" cellspacing="0" border="0">
    280   <tr>
    281     <td class="md">
    282       <table cellpadding="0" cellspacing="0" border="0">
    283         <tr>
    284           <td class="md" colspan="4">
    285 template&lt;class TheClass&gt; </td>
    286         </tr>
    287         <tr>
    288           <td class="md" nowrap valign="top"> TheClass* OsclSharedPtr&lt; TheClass &gt;::GetRep </td>
    289           <td class="md" valign="top">(&nbsp;</td>
    290           <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
    291           <td class="md" valign="top">)&nbsp;</td>
    292           <td class="md" nowrap><code> [inline]</code></td>
    293         </tr>
    294 
    295       </table>
    296     </td>
    297   </tr>
    298 </table>
    299 <table cellspacing=5 cellpadding=0 border=0>
    300   <tr>
    301     <td>
    302       &nbsp;
    303     </td>
    304     <td>
    305 
    306 <p>
    307 Use this function to get a pointer to the wrapped object.
    308 <p>
    309     </td>
    310   </tr>
    311 </table>
    312 <a name="a5" doxytag="OsclSharedPtr::operator *"></a><p>
    313 <table width="100%" cellpadding="2" cellspacing="0" border="0">
    314   <tr>
    315     <td class="md">
    316       <table cellpadding="0" cellspacing="0" border="0">
    317         <tr>
    318           <td class="md" colspan="4">
    319 template&lt;class TheClass&gt; </td>
    320         </tr>
    321         <tr>
    322           <td class="md" nowrap valign="top"> TheClass&amp; OsclSharedPtr&lt; TheClass &gt;::operator * </td>
    323           <td class="md" valign="top">(&nbsp;</td>
    324           <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
    325           <td class="md" valign="top">)&nbsp;</td>
    326           <td class="md" nowrap><code> [inline]</code></td>
    327         </tr>
    328 
    329       </table>
    330     </td>
    331   </tr>
    332 </table>
    333 <table cellspacing=5 cellpadding=0 border=0>
    334   <tr>
    335     <td>
    336       &nbsp;
    337     </td>
    338     <td>
    339 
    340 <p>
    341 The indirection operator returns a reference to an object of the parameterized type.
    342 <p>
    343     </td>
    344   </tr>
    345 </table>
    346 <a name="a6" doxytag="OsclSharedPtr::operator TheClass *"></a><p>
    347 <table width="100%" cellpadding="2" cellspacing="0" border="0">
    348   <tr>
    349     <td class="md">
    350       <table cellpadding="0" cellspacing="0" border="0">
    351         <tr>
    352           <td class="md" colspan="4">
    353 template&lt;class TheClass&gt; </td>
    354         </tr>
    355         <tr>
    356           <td class="md" nowrap valign="top"> OsclSharedPtr&lt; TheClass &gt;::operator TheClass * </td>
    357           <td class="md" valign="top">(&nbsp;</td>
    358           <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
    359           <td class="md" valign="top">)&nbsp;</td>
    360           <td class="md" nowrap><code> [inline]</code></td>
    361         </tr>
    362 
    363       </table>
    364     </td>
    365   </tr>
    366 </table>
    367 <table cellspacing=5 cellpadding=0 border=0>
    368   <tr>
    369     <td>
    370       &nbsp;
    371     </td>
    372     <td>
    373 
    374 <p>
    375 Casting operator.
    376 <p>
    377     </td>
    378   </tr>
    379 </table>
    380 <a name="a4" doxytag="OsclSharedPtr::operator->"></a><p>
    381 <table width="100%" cellpadding="2" cellspacing="0" border="0">
    382   <tr>
    383     <td class="md">
    384       <table cellpadding="0" cellspacing="0" border="0">
    385         <tr>
    386           <td class="md" colspan="4">
    387 template&lt;class TheClass&gt; </td>
    388         </tr>
    389         <tr>
    390           <td class="md" nowrap valign="top"> TheClass* OsclSharedPtr&lt; TheClass &gt;::operator-&gt; </td>
    391           <td class="md" valign="top">(&nbsp;</td>
    392           <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
    393           <td class="md" valign="top">)&nbsp;</td>
    394           <td class="md" nowrap><code> [inline]</code></td>
    395         </tr>
    396 
    397       </table>
    398     </td>
    399   </tr>
    400 </table>
    401 <table cellspacing=5 cellpadding=0 border=0>
    402   <tr>
    403     <td>
    404       &nbsp;
    405     </td>
    406     <td>
    407 
    408 <p>
    409 The dereferencing operator returns a pointer to the parameterized type and can be used to access member elements of TheClass.     </td>
    410   </tr>
    411 </table>
    412 <a name="a13" doxytag="OsclSharedPtr::operator="></a><p>
    413 <table width="100%" cellpadding="2" cellspacing="0" border="0">
    414   <tr>
    415     <td class="md">
    416       <table cellpadding="0" cellspacing="0" border="0">
    417         <tr>
    418           <td class="md" colspan="4">
    419 template&lt;class TheClass&gt; </td>
    420         </tr>
    421         <tr>
    422           <td class="md" nowrap valign="top"> OsclSharedPtr&amp; OsclSharedPtr&lt; TheClass &gt;::operator= </td>
    423           <td class="md" valign="top">(&nbsp;</td>
    424           <td class="md" nowrap valign="top">const OsclSharedPtr&lt; TheClass &gt; &amp;&nbsp;</td>
    425           <td class="mdname1" valign="top" nowrap>&nbsp; <em>inSharedPtr</em>          </td>
    426           <td class="md" valign="top">)&nbsp;</td>
    427           <td class="md" nowrap><code> [inline]</code></td>
    428         </tr>
    429 
    430       </table>
    431     </td>
    432   </tr>
    433 </table>
    434 <table cellspacing=5 cellpadding=0 border=0>
    435   <tr>
    436     <td>
    437       &nbsp;
    438     </td>
    439     <td>
    440 
    441 <p>
    442 Assignment operator.
    443 <p>
    444     </td>
    445   </tr>
    446 </table>
    447 <a name="a12" doxytag="OsclSharedPtr::Unbind"></a><p>
    448 <table width="100%" cellpadding="2" cellspacing="0" border="0">
    449   <tr>
    450     <td class="md">
    451       <table cellpadding="0" cellspacing="0" border="0">
    452         <tr>
    453           <td class="md" colspan="4">
    454 template&lt;class TheClass&gt; </td>
    455         </tr>
    456         <tr>
    457           <td class="md" nowrap valign="top"> void OsclSharedPtr&lt; TheClass &gt;::Unbind </td>
    458           <td class="md" valign="top">(&nbsp;</td>
    459           <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
    460           <td class="md" valign="top">)&nbsp;</td>
    461           <td class="md" nowrap><code> [inline]</code></td>
    462         </tr>
    463 
    464       </table>
    465     </td>
    466   </tr>
    467 </table>
    468 <table cellspacing=5 cellpadding=0 border=0>
    469   <tr>
    470     <td>
    471       &nbsp;
    472     </td>
    473     <td>
    474 
    475 <p>
    476 Use this function of unbind an existing OsclSharedPtr.
    477 <p>
    478     </td>
    479   </tr>
    480 </table>
    481 <hr>The documentation for this class was generated from the following file:<ul>
    482 <li><a class="el" href="oscl__shared__ptr_8h-source.html">oscl_shared_ptr.h</a></ul>
    483 <hr size="1"><img src="pvlogo_small.jpg"><address style="align: right;"><small>OSCL API</small>
    484 <address style="align: left;"><small>Posting Version: OPENCORE_20090310 </small>
    485 </small></address>
    486 </body>
    487 </html>
    488