2
2
<html xmlns="http://www.w3.org/1999/xhtml">
4
4
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5
<title>libglom-1.16: Glom::sharedptr< T_obj > Class Template Reference</title>
5
<title>libglom-1.18: Glom::sharedptr< T_obj > Class Template Reference</title>
6
6
<link href="tabs.css" rel="stylesheet" type="text/css"/>
7
7
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
10
<!-- Generated by Doxygen 1.7.1 -->
11
<div class="navigation" id="top">
10
<!-- Generated by Doxygen 1.7.3 -->
13
<table cellspacing="0" cellpadding="0">
15
<tr style="height: 56px;">
16
<td style="padding-left: 0.5em;">
17
<div id="projectname">libglom-1.18 <span id="projectnumber">1.18.3</span></div>
23
<div id="navrow1" class="tabs">
13
24
<ul class="tablist">
14
25
<li><a href="index.html"><span>Main Page</span></a></li>
15
26
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
16
27
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
30
<div id="navrow2" class="tabs2">
20
31
<ul class="tablist">
21
32
<li><a href="annotated.html"><span>Class List</span></a></li>
22
33
<li><a href="classes.html"><span>Class Index</span></a></li>
23
<li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
34
<li><a href="inherits.html"><span>Class Hierarchy</span></a></li>
24
35
<li><a href="functions.html"><span>Class Members</span></a></li>
38
<div id="nav-path" class="navpath">
29
<li><a class="el" href="namespaceGlom.html">Glom</a> </li>
30
<li><a class="el" href="classGlom_1_1sharedptr.html">Glom::sharedptr< T_obj ></a> </li>
40
<li class="navelem"><a class="el" href="namespaceGlom.html">Glom</a> </li>
41
<li class="navelem"><a class="el" href="classGlom_1_1sharedptr.html">sharedptr</a> </li>
42
53
<div class="contents">
43
54
<!-- doxytag: class="Glom::sharedptr" -->
44
55
<p>A ref-counting smart-pointer for the underlying C++ object. <a href="#_details">More...</a></p>
56
<div class="dynheader">
57
Inheritance diagram for Glom::sharedptr< T_obj >:</div>
58
<div class="dyncontent">
59
<div class="center"><img src="classGlom_1_1sharedptr__inherit__graph.png" border="0" usemap="#Glom_1_1sharedptr_3_01T__obj_01_4_inherit__map" alt="Inheritance graph"/></div>
60
<map name="Glom_1_1sharedptr_3_01T__obj_01_4_inherit__map" id="Glom_1_1sharedptr_3_01T__obj_01_4_inherit__map">
61
<area shape="rect" id="node3" href="classGlom_1_1sharedptr.html" title="Glom::sharedptr\< const T_Element \>" alt="" coords="363,15,600,46"/><area shape="rect" id="node5" href="classGlom_1_1sharedptr.html" title="Glom::sharedptr\< TableInfo \>" alt="" coords="385,69,577,99"/><area shape="rect" id="node7" href="classGlom_1_1sharedptr.html" title="Glom::sharedptr\< CustomTitle \>" alt="" coords="377,122,585,153"/><area shape="rect" id="node9" href="classGlom_1_1sharedptr.html" title="Glom::sharedptr\< TranslatableItem \>" alt="" coords="364,175,599,206"/><area shape="rect" id="node11" href="classGlom_1_1sharedptr.html" title="Glom::sharedptr\< Field \>" alt="" coords="399,229,564,259"/><area shape="rect" id="node13" href="classGlom_1_1sharedptr.html" title="Glom::sharedptr\< LayoutGroup \>" alt="" coords="375,282,588,313"/><area shape="rect" id="node15" href="classGlom_1_1sharedptr.html" title="Glom::sharedptr\< Relationship \>" alt="" coords="376,335,587,366"/><area shape="rect" id="node17" href="classGlom_1_1sharedptr.html" title="Glom::sharedptr\< LayoutItem_Field \>" alt="" coords="363,389,600,419"/><area shape="rect" id="node19" href="classGlom_1_1sharedptr.html" title="Glom::sharedptr\< UsesRelationship \>" alt="" coords="361,442,601,473"/><area shape="rect" id="node21" href="classGlom_1_1sharedptr.html" title="Glom::sharedptr\< const Field \>" alt="" coords="380,495,583,526"/><area shape="rect" id="node23" href="classGlom_1_1sharedptr.html" title="Glom::sharedptr\< const Relationship \>" alt="" coords="359,549,604,579"/></map>
62
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
46
64
<p><a href="classGlom_1_1sharedptr-members.html">List of all members.</a></p>
47
65
<table class="memberdecls">
48
66
<tr><td colspan="2"><h2><a name="pub-types"></a>
49
67
Public Types</h2></td></tr>
50
<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="elRef" doxygen="libstdc++.tag:http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a01134.html#ad477e282dc33a113ed64628b9b32e3dd">size_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classGlom_1_1sharedptr.html#a136c71f35df111e6f6bfa9e03e9917a0">size_type</a></td></tr>
68
<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="elRef" doxygen="libstdc++.tag:http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a01528.html#ad477e282dc33a113ed64628b9b32e3dd">size_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classGlom_1_1sharedptr.html#a136c71f35df111e6f6bfa9e03e9917a0">size_type</a></td></tr>
51
69
<tr><td class="memItemLeft" align="right" valign="top">typedef T_obj </td><td class="memItemRight" valign="bottom"><a class="el" href="classGlom_1_1sharedptr.html#acb058473e72cf4f006a7a23ffbbdaf35">object_type</a></td></tr>
52
70
<tr><td colspan="2"><h2><a name="pub-methods"></a>
53
71
Public Member Functions</h2></td></tr>
87
105
<tr><td class="mdescLeft"> </td><td class="mdescRight">Get the underlying instance: <a href="#a4b254013a623c15f9040b4e26772d399"></a><br/></td></tr>
88
106
<tr><td class="memItemLeft" align="right" valign="top">const T_obj* </td><td class="memItemRight" valign="bottom"><a class="el" href="classGlom_1_1sharedptr.html#a14b85493ef0d6ea82e6305050259ca84">obj</a> () const </td></tr>
89
107
<tr><td class="mdescLeft"> </td><td class="mdescRight">Get the underlying instance: <a href="#a14b85493ef0d6ea82e6305050259ca84"></a><br/></td></tr>
90
<tr><td class="memTemplParams" colspan="2">template<typename T_obj> </td></tr>
91
<tr><td class="memTemplItemLeft" align="right" valign="top"> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classGlom_1_1sharedptr.html#aff45cebc26fdead4f13f641f9f127ec7">sharedptr</a> (T_obj* pobj, <a class="elRef" doxygen="libstdc++.tag:http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a01134.html#ad477e282dc33a113ed64628b9b32e3dd">size_t</a>* refcount)</td></tr>
92
108
<tr><td colspan="2"><h2><a name="pub-static-methods"></a>
93
109
Static Public Member Functions</h2></td></tr>
94
110
<tr><td class="memTemplParams" colspan="2">template<class T_CastFrom > </td></tr>
103
119
<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classGlom_1_1sharedptr.html">sharedptr</a>< T_obj > </td><td class="memItemRight" valign="bottom"><a class="el" href="classGlom_1_1sharedptr.html#aeb06d0326d1404fe72a9eb9eeb8dd981">create</a> ()</td></tr>
105
121
<hr/><a name="_details"></a><h2>Detailed Description</h2>
106
<h3>template <typename T_obj><br/>
122
<div class="textblock"><h3>template<typename T_obj><br/>
107
123
class Glom::sharedptr< T_obj ></h3>
109
125
<p>A ref-counting smart-pointer for the underlying C++ object. </p>
110
126
<p>You can copy these smarpointers-of-C++-resources, and therefore the C++ classes can have simple copy constructors which just share the underlying resources. </p>
111
<hr/><h2>Member Typedef Documentation</h2>
127
</div><hr/><h2>Member Typedef Documentation</h2>
112
128
<a class="anchor" id="acb058473e72cf4f006a7a23ffbbdaf35"></a><!-- doxytag: member="Glom::sharedptr::object_type" ref="acb058473e72cf4f006a7a23ffbbdaf35" args="" -->
113
129
<div class="memitem">
114
130
<div class="memproto">
131
147
template <typename T_obj> </div>
132
148
<table class="memname">
134
<td class="memname">typedef <a class="elRef" doxygen="libstdc++.tag:http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a01134.html#ad477e282dc33a113ed64628b9b32e3dd">size_t</a> <a class="el" href="classGlom_1_1sharedptr.html">Glom::sharedptr</a>< T_obj >::<a class="el" href="classGlom_1_1sharedptr.html#a136c71f35df111e6f6bfa9e03e9917a0">size_type</a></td>
150
<td class="memname">typedef <a class="elRef" doxygen="libstdc++.tag:http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a01528.html#ad477e282dc33a113ed64628b9b32e3dd">size_t</a> <a class="el" href="classGlom_1_1sharedptr.html">Glom::sharedptr</a>< T_obj >::<a class="el" href="classGlom_1_1sharedptr.html#a136c71f35df111e6f6bfa9e03e9917a0">size_type</a></td>
169
184
<td class="memname"><a class="el" href="classGlom_1_1sharedptr.html">Glom::sharedptr</a>< T_obj >::<a class="el" href="classGlom_1_1sharedptr.html">sharedptr</a> </td>
171
186
<td class="paramtype">T_obj * </td>
172
<td class="paramname"> <em>pobj</em></td>
173
<td> ) </td>
187
<td class="paramname"><em>pobj</em></td><td>)</td>
174
188
<td><code> [explicit]</code></td>
191
205
<td class="memname"><a class="el" href="classGlom_1_1sharedptr.html">Glom::sharedptr</a>< T_obj >::<a class="el" href="classGlom_1_1sharedptr.html">sharedptr</a> </td>
193
207
<td class="paramtype">T_obj * </td>
194
<td class="paramname"> <em>pobj</em>, </td>
208
<td class="paramname"><em>pobj</em>, </td>
197
211
<td class="paramkey"></td>
199
213
<td class="paramtype"><a class="el" href="classGlom_1_1sharedptr.html#a136c71f35df111e6f6bfa9e03e9917a0">size_type</a>* </td>
200
<td class="paramname"> <em>refcount</em></td><td> </td>
214
<td class="paramname"><em>refcount</em> </td>
205
<td></td><td></td><td><code> [explicit]</code></td>
219
<td></td><td><code> [explicit]</code></td>
223
237
<td class="memname"><a class="el" href="classGlom_1_1sharedptr.html">Glom::sharedptr</a>< T_obj >::<a class="el" href="classGlom_1_1sharedptr.html">sharedptr</a> </td>
225
239
<td class="paramtype">const <a class="el" href="classGlom_1_1sharedptr.html">sharedptr</a>< T_obj >& </td>
226
<td class="paramname"> <em>src</em></td>
227
<td> ) </td>
240
<td class="paramname"><em>src</em></td><td>)</td>
247
260
<td class="memname"><a class="el" href="classGlom_1_1sharedptr.html">Glom::sharedptr</a>< T_obj >::<a class="el" href="classGlom_1_1sharedptr.html">sharedptr</a> </td>
249
262
<td class="paramtype">const <a class="el" href="classGlom_1_1sharedptr.html">sharedptr</a>< T_CastFrom >& </td>
250
<td class="paramname"> <em>src</em></td>
251
<td> ) </td>
263
<td class="paramname"><em>src</em></td><td>)</td>
252
264
<td><code> [inline]</code></td>
270
282
<td class="memname"><a class="el" href="classGlom_1_1sharedptr.html">Glom::sharedptr</a>< T_obj >::~<a class="el" href="classGlom_1_1sharedptr.html">sharedptr</a> </td>
272
<td class="paramname"></td>
273
<td> ) </td>
284
<td class="paramname"></td><td>)</td>
274
285
<td><code> [virtual]</code></td>
282
<a class="anchor" id="aff45cebc26fdead4f13f641f9f127ec7"></a><!-- doxytag: member="Glom::sharedptr::sharedptr" ref="aff45cebc26fdead4f13f641f9f127ec7" args="(T_obj *pobj, size_t *refcount)" -->
283
<div class="memitem">
284
<div class="memproto">
285
<div class="memtemplate">
286
template <typename T_obj> </div>
287
<div class="memtemplate">
288
template <typename T_obj> </div>
289
<table class="memname">
291
<td class="memname"><a class="el" href="classGlom_1_1sharedptr.html">Glom::sharedptr</a>< T_obj >::<a class="el" href="classGlom_1_1sharedptr.html">sharedptr</a> </td>
293
<td class="paramtype">T_obj * </td>
294
<td class="paramname"> <em>pobj</em>, </td>
297
<td class="paramkey"></td>
299
<td class="paramtype"><a class="elRef" doxygen="libstdc++.tag:http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a01134.html#ad477e282dc33a113ed64628b9b32e3dd">size_t</a> * </td>
300
<td class="paramname"> <em>refcount</em></td><td> </td>
305
<td></td><td></td><td></td>
313
293
<hr/><h2>Member Function Documentation</h2>
314
294
<a class="anchor" id="a41155a5e5f5edc47f7a211f8e33deee6"></a><!-- doxytag: member="Glom::sharedptr::cast_const" ref="a41155a5e5f5edc47f7a211f8e33deee6" args="(const sharedptr< T_CastFrom > &src)" -->
315
295
<div class="memitem">
323
303
<td class="memname"><a class="el" href="classGlom_1_1sharedptr.html">sharedptr</a>< T_obj > <a class="el" href="classGlom_1_1sharedptr.html">Glom::sharedptr</a>< T_obj >::cast_const </td>
325
305
<td class="paramtype">const <a class="el" href="classGlom_1_1sharedptr.html">sharedptr</a>< T_CastFrom >& </td>
326
<td class="paramname"> <em>src</em></td>
327
<td> ) </td>
306
<td class="paramname"><em>src</em></td><td>)</td>
328
307
<td><code> [inline, static]</code></td>
348
327
<td class="memname"><a class="el" href="classGlom_1_1sharedptr.html">sharedptr</a>< T_obj > <a class="el" href="classGlom_1_1sharedptr.html">Glom::sharedptr</a>< T_obj >::cast_dynamic </td>
350
329
<td class="paramtype">const <a class="el" href="classGlom_1_1sharedptr.html">sharedptr</a>< T_CastFrom >& </td>
351
<td class="paramname"> <em>src</em></td>
352
<td> ) </td>
330
<td class="paramname"><em>src</em></td><td>)</td>
353
331
<td><code> [inline, static]</code></td>
373
351
<td class="memname"><a class="el" href="classGlom_1_1sharedptr.html">sharedptr</a>< T_obj > <a class="el" href="classGlom_1_1sharedptr.html">Glom::sharedptr</a>< T_obj >::cast_static </td>
375
353
<td class="paramtype">const <a class="el" href="classGlom_1_1sharedptr.html">sharedptr</a>< T_CastFrom >& </td>
376
<td class="paramname"> <em>src</em></td>
377
<td> ) </td>
354
<td class="paramname"><em>src</em></td><td>)</td>
378
355
<td><code> [inline, static]</code></td>
396
373
<td class="memname">void <a class="el" href="classGlom_1_1sharedptr.html">Glom::sharedptr</a>< T_obj >::clear </td>
398
<td class="paramname"></td>
399
<td> ) </td>
375
<td class="paramname"></td><td>)</td>
400
376
<td><code> [virtual]</code></td>
417
393
<td class="memname">static <a class="el" href="classGlom_1_1sharedptr.html">sharedptr</a><T_obj> <a class="el" href="classGlom_1_1sharedptr.html">Glom::sharedptr</a>< T_obj >::create </td>
419
<td class="paramname"></td>
420
<td> ) </td>
395
<td class="paramname"></td><td>)</td>
421
396
<td><code> [inline, static]</code></td>
436
411
<td class="memname">T_obj* <a class="el" href="classGlom_1_1sharedptr.html">Glom::sharedptr</a>< T_obj >::obj </td>
438
<td class="paramname"></td>
439
<td> ) </td>
413
<td class="paramname"></td><td>)</td>
440
414
<td><code> [inline]</code></td>
457
431
<td class="memname">const T_obj* <a class="el" href="classGlom_1_1sharedptr.html">Glom::sharedptr</a>< T_obj >::obj </td>
459
<td class="paramname"></td>
460
<td> ) </td>
433
<td class="paramname"></td><td>)</td>
461
434
<td> const<code> [inline]</code></td>
478
451
<td class="memname"><a class="el" href="classGlom_1_1sharedptr.html">Glom::sharedptr</a>< T_obj >::operator bool </td>
480
<td class="paramname"></td>
481
<td> ) </td>
453
<td class="paramname"></td><td>)</td>
482
454
<td> const<code> [inline]</code></td>
501
473
<td class="memname">bool <a class="el" href="classGlom_1_1sharedptr.html">Glom::sharedptr</a>< T_obj >::operator! </td>
503
<td class="paramname"></td>
504
<td> ) </td>
475
<td class="paramname"></td><td>)</td>
505
476
<td> const<code> [inline]</code></td>
524
495
<td class="memname">bool <a class="el" href="classGlom_1_1sharedptr.html">Glom::sharedptr</a>< T_obj >::operator!= </td>
526
497
<td class="paramtype">const <a class="el" href="classGlom_1_1sharedptr.html">sharedptr</a>< T_obj >& </td>
527
<td class="paramname"> <em>src</em></td>
528
<td> ) </td>
498
<td class="paramname"><em>src</em></td><td>)</td>
529
499
<td> const<code> [inline]</code></td>
544
514
<td class="memname">const T_obj& <a class="el" href="classGlom_1_1sharedptr.html">Glom::sharedptr</a>< T_obj >::operator* </td>
546
<td class="paramname"></td>
547
<td> ) </td>
516
<td class="paramname"></td><td>)</td>
548
517
<td> const<code> [inline]</code></td>
565
534
<td class="memname">T_obj& <a class="el" href="classGlom_1_1sharedptr.html">Glom::sharedptr</a>< T_obj >::operator* </td>
567
<td class="paramname"></td>
568
<td> ) </td>
536
<td class="paramname"></td><td>)</td>
569
537
<td><code> [inline]</code></td>
586
554
<td class="memname">T_obj* <a class="el" href="classGlom_1_1sharedptr.html">Glom::sharedptr</a>< T_obj >::operator-> </td>
588
<td class="paramname"></td>
589
<td> ) </td>
556
<td class="paramname"></td><td>)</td>
590
557
<td> const<code> [inline]</code></td>
610
577
<td class="memname"><a class="el" href="classGlom_1_1sharedptr.html">sharedptr</a>< T_obj >& <a class="el" href="classGlom_1_1sharedptr.html">Glom::sharedptr</a>< T_obj >::operator= </td>
612
579
<td class="paramtype">const <a class="el" href="classGlom_1_1sharedptr.html">sharedptr</a>< T_CastFrom >& </td>
613
<td class="paramname"> <em>src</em></td>
614
<td> ) </td>
580
<td class="paramname"><em>src</em></td><td>)</td>
615
581
<td><code> [inline]</code></td>
633
599
<td class="memname"><a class="el" href="classGlom_1_1sharedptr.html">sharedptr</a>< T_obj >& <a class="el" href="classGlom_1_1sharedptr.html">Glom::sharedptr</a>< T_obj >::operator= </td>
635
601
<td class="paramtype">const <a class="el" href="classGlom_1_1sharedptr.html">sharedptr</a>< T_obj >& </td>
636
<td class="paramname"> <em>src</em></td>
637
<td> ) </td>
602
<td class="paramname"><em>src</em></td><td>)</td>
655
620
<td class="memname">bool <a class="el" href="classGlom_1_1sharedptr.html">Glom::sharedptr</a>< T_obj >::operator== </td>
657
622
<td class="paramtype">const <a class="el" href="classGlom_1_1sharedptr.html">sharedptr</a>< T_obj >& </td>
658
<td class="paramname"> <em>src</em></td>
659
<td> ) </td>
623
<td class="paramname"><em>src</em></td><td>)</td>
660
624
<td> const<code> [inline]</code></td>
675
639
<td class="memname">void <a class="el" href="classGlom_1_1sharedptr.html">Glom::sharedptr</a>< T_obj >::swap </td>
677
641
<td class="paramtype"><a class="el" href="classGlom_1_1sharedptr.html">sharedptr</a>< T_obj >& </td>
678
<td class="paramname"> <em>other</em></td>
679
<td> ) </td>
642
<td class="paramname"><em>other</em></td><td>)</td>
680
643
<td><code> [inline]</code></td>
692
655
<li>libglom/sharedptr.h</li>
695
<hr class="footer"/><address class="footer"><small>Generated on Tue Nov 30 2010 08:50:19 for libglom-1.16 by 
658
<hr class="footer"/><address class="footer"><small>Generated on Tue Jul 5 2011 11:54:19 for libglom-1.18 by 
696
659
<a href="http://www.doxygen.org/index.html">
697
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
660
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>