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< TheClass > 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> <a class="qindex" href="modules.html">Modules</a> <a class="qindex" href="hierarchy.html">Class Hierarchy</a> <a class="qindex" href="annotated.html">Data Structures</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="functions.html">Data Fields</a> <a class="qindex" href="globals.html">Globals</a> </center> 9<hr><h1>OsclSharedPtr< TheClass > 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 <<a class="el" href="oscl__shared__ptr_8h-source.html">oscl_shared_ptr.h</a>></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> </td><td valign=bottom><a class="el" href="classOsclSharedPtr.html#a0">OsclSharedPtr</a> ()</td></tr> 21<tr><td> </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> </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> </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> </td><td valign=bottom><a class="el" href="classOsclSharedPtr.html#a2">OsclSharedPtr</a> (const OsclSharedPtr &inSharedPtr)</td></tr> 25<tr><td> </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 </td><td valign=bottom><a class="el" href="classOsclSharedPtr.html#a3">~OsclSharedPtr</a> ()</td></tr> 27<tr><td> </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 * </td><td valign=bottom><a class="el" href="classOsclSharedPtr.html#a4">operator-></a> ()</td></tr> 29<tr><td nowrap align=right valign=top>TheClass & </td><td valign=bottom><a class="el" href="classOsclSharedPtr.html#a5">operator *</a> ()</td></tr> 30<tr><td> </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> </td><td valign=bottom><a class="el" href="classOsclSharedPtr.html#a6">operator TheClass *</a> ()</td></tr> 32<tr><td> </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 * </td><td valign=bottom><a class="el" href="classOsclSharedPtr.html#a7">GetRep</a> ()</td></tr> 34<tr><td> </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> * </td><td valign=bottom><a class="el" href="classOsclSharedPtr.html#a8">GetRefCounter</a> ()</td></tr> 36<tr><td> </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 </td><td valign=bottom><a class="el" href="classOsclSharedPtr.html#a9">get_count</a> ()</td></tr> 38<tr><td> </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 </td><td valign=bottom><a class="el" href="group__osclbase.html#a111">Bind</a> (const OsclSharedPtr &inHandle)</td></tr> 40<tr><td> </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 </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> </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 </td><td valign=bottom><a class="el" href="classOsclSharedPtr.html#a12">Unbind</a> ()</td></tr> 44<tr><td> </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 & </td><td valign=bottom><a class="el" href="classOsclSharedPtr.html#a13">operator=</a> (const OsclSharedPtr &inSharedPtr)</td></tr> 46<tr><td> </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 </td><td valign=bottom><a class="el" href="group__osclbase.html#a110">operator==</a> (const OsclSharedPtr &b) const</td></tr> 48<tr><td> </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<class TheClass><br> 52 class OsclSharedPtr< TheClass ></h3> 53 54A parameterized smart pointer class. 55<p> 56<hr><h2>Constructor & 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"> 64template<class TheClass> </td> 65 </tr> 66 <tr> 67 <td class="md" nowrap valign="top"> OsclSharedPtr< TheClass >::OsclSharedPtr </td> 68 <td class="md" valign="top">( </td> 69 <td class="mdname1" valign="top" nowrap> </td> 70 <td class="md" valign="top">) </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 82 </td> 83 <td> 84 85<p> 86Constructor. 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"> 98template<class TheClass> </td> 99 </tr> 100 <tr> 101 <td class="md" nowrap valign="top"> OsclSharedPtr< TheClass >::OsclSharedPtr </td> 102 <td class="md" valign="top">( </td> 103 <td class="md" nowrap valign="top">TheClass * </td> 104 <td class="mdname" nowrap> <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> * </td> 110 <td class="mdname" nowrap> <em>in_refcnt</em></td> 111 </tr> 112 <tr> 113 <td></td> 114 <td class="md">) </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 126 </td> 127 <td> 128 129<p> 130Constructor. 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> </td><td> 135A 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"> 147template<class TheClass> </td> 148 </tr> 149 <tr> 150 <td class="md" nowrap valign="top"> OsclSharedPtr< TheClass >::OsclSharedPtr </td> 151 <td class="md" valign="top">( </td> 152 <td class="md" nowrap valign="top">const OsclSharedPtr< TheClass > & </td> 153 <td class="mdname1" valign="top" nowrap> <em>inSharedPtr</em> </td> 154 <td class="md" valign="top">) </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 166 </td> 167 <td> 168 169<p> 170Copy 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"> 182template<class TheClass> </td> 183 </tr> 184 <tr> 185 <td class="md" nowrap valign="top"> virtual OsclSharedPtr< TheClass >::~OsclSharedPtr </td> 186 <td class="md" valign="top">( </td> 187 <td class="mdname1" valign="top" nowrap> </td> 188 <td class="md" valign="top">) </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 200 </td> 201 <td> 202 203<p> 204Destructor. 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"> 217template<class TheClass> </td> 218 </tr> 219 <tr> 220 <td class="md" nowrap valign="top"> int OsclSharedPtr< TheClass >::get_count </td> 221 <td class="md" valign="top">( </td> 222 <td class="mdname1" valign="top" nowrap> </td> 223 <td class="md" valign="top">) </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 235 </td> 236 <td> 237 238<p> 239Get 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"> 251template<class TheClass> </td> 252 </tr> 253 <tr> 254 <td class="md" nowrap valign="top"> <a class="el" href="classOsclRefCounter.html">OsclRefCounter</a>* OsclSharedPtr< TheClass >::GetRefCounter </td> 255 <td class="md" valign="top">( </td> 256 <td class="mdname1" valign="top" nowrap> </td> 257 <td class="md" valign="top">) </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 269 </td> 270 <td> 271 272<p> 273Get 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"> 285template<class TheClass> </td> 286 </tr> 287 <tr> 288 <td class="md" nowrap valign="top"> TheClass* OsclSharedPtr< TheClass >::GetRep </td> 289 <td class="md" valign="top">( </td> 290 <td class="mdname1" valign="top" nowrap> </td> 291 <td class="md" valign="top">) </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 303 </td> 304 <td> 305 306<p> 307Use 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"> 319template<class TheClass> </td> 320 </tr> 321 <tr> 322 <td class="md" nowrap valign="top"> TheClass& OsclSharedPtr< TheClass >::operator * </td> 323 <td class="md" valign="top">( </td> 324 <td class="mdname1" valign="top" nowrap> </td> 325 <td class="md" valign="top">) </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 337 </td> 338 <td> 339 340<p> 341The 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"> 353template<class TheClass> </td> 354 </tr> 355 <tr> 356 <td class="md" nowrap valign="top"> OsclSharedPtr< TheClass >::operator TheClass * </td> 357 <td class="md" valign="top">( </td> 358 <td class="mdname1" valign="top" nowrap> </td> 359 <td class="md" valign="top">) </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 371 </td> 372 <td> 373 374<p> 375Casting 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"> 387template<class TheClass> </td> 388 </tr> 389 <tr> 390 <td class="md" nowrap valign="top"> TheClass* OsclSharedPtr< TheClass >::operator-> </td> 391 <td class="md" valign="top">( </td> 392 <td class="mdname1" valign="top" nowrap> </td> 393 <td class="md" valign="top">) </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 405 </td> 406 <td> 407 408<p> 409The 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"> 419template<class TheClass> </td> 420 </tr> 421 <tr> 422 <td class="md" nowrap valign="top"> OsclSharedPtr& OsclSharedPtr< TheClass >::operator= </td> 423 <td class="md" valign="top">( </td> 424 <td class="md" nowrap valign="top">const OsclSharedPtr< TheClass > & </td> 425 <td class="mdname1" valign="top" nowrap> <em>inSharedPtr</em> </td> 426 <td class="md" valign="top">) </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 438 </td> 439 <td> 440 441<p> 442Assignment 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"> 454template<class TheClass> </td> 455 </tr> 456 <tr> 457 <td class="md" nowrap valign="top"> void OsclSharedPtr< TheClass >::Unbind </td> 458 <td class="md" valign="top">( </td> 459 <td class="mdname1" valign="top" nowrap> </td> 460 <td class="md" valign="top">) </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 472 </td> 473 <td> 474 475<p> 476Use 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