• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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
54A 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">
64template&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>
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&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>
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>&nbsp;</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&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>
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&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>
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&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>
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&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>
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&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>
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&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>
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&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>
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&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>
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&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>
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&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>
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