Sophie

Sophie

distrib > Mageia > 4 > x86_64 > by-pkgid > 2a38b732199ac205772f2322bdd57a78 > files > 97

lib64cairomm1.0-devel-1.10.0-3.mga4.x86_64.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
        <title>cairomm: Cairo::RefPtr&lt; T_CppObject &gt; Class Template Reference</title>
        <link href="cairomm.css" rel="stylesheet" type="text/css">
    </head>
<body>
<!-- Generated by Doxygen 1.7.3 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</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="examples.html"><span>Examples</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
  <div id="nav-path" class="navpath">
    <ul>
      <li class="navelem"><a class="el" href="namespaceCairo.html">Cairo</a> </li>
      <li class="navelem"><a class="el" href="classCairo_1_1RefPtr.html">RefPtr</a> </li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> </div>
  <div class="headertitle">
<h1>Cairo::RefPtr&lt; T_CppObject &gt; Class Template Reference</h1> </div>
</div>
<div class="contents">
<!-- doxytag: class="Cairo::RefPtr" -->
<p>RefPtr&lt;&gt; is a reference-counting shared smartpointer. <a href="#_details">More...</a></p>
<div class="dynheader">
Inheritance diagram for Cairo::RefPtr&lt; T_CppObject &gt;:</div>
<div class="dyncontent">
<div class="center"><img src="classCairo_1_1RefPtr__inherit__graph.png" border="0" usemap="#Cairo_1_1RefPtr_3_01T__CppObject_01_4_inherit__map" alt="Inheritance graph"/></div>
<map name="Cairo_1_1RefPtr_3_01T__CppObject_01_4_inherit__map" id="Cairo_1_1RefPtr_3_01T__CppObject_01_4_inherit__map">
<area shape="rect" id="node3" href="classCairo_1_1RefPtr.html" title="Cairo::RefPtr\&lt; Device \&gt;" alt="" coords="24,105,184,135"/></map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>

<p><a href="classCairo_1_1RefPtr-members.html">List of all members.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCairo_1_1RefPtr.html#aff19258db23434b3d41db0488b9249ea">RefPtr</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Default constructor. <a href="#aff19258db23434b3d41db0488b9249ea"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCairo_1_1RefPtr.html#a227899cc9f00a7f4fce1f14cf73249d2">~RefPtr</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor - decrements reference count. <a href="#a227899cc9f00a7f4fce1f14cf73249d2"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCairo_1_1RefPtr.html#a15f8fd5fdb043ef974e8f56b2fcc3d67">RefPtr</a> (T_CppObject* pCppObject)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">For use only in the internal implementation of cairomm, gtkmm, etc. <a href="#a15f8fd5fdb043ef974e8f56b2fcc3d67"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCairo_1_1RefPtr.html#acb129373ab925b608bb542edc4a35e07">RefPtr</a> (T_CppObject* pCppObject, int* refcount)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">For use only in the internal implementation of sharedptr. <a href="#acb129373ab925b608bb542edc4a35e07"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCairo_1_1RefPtr.html#a2abb53dbe20af15dcfb9903df9c336d5">RefPtr</a> (const <a class="el" href="classCairo_1_1RefPtr.html">RefPtr</a>&lt; T_CppObject &gt;&amp; src)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy constructor. <a href="#a2abb53dbe20af15dcfb9903df9c336d5"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;class T_CastFrom &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classCairo_1_1RefPtr.html#a9f908e85eb371b62739fc04df304ab0e">RefPtr</a> (const <a class="el" href="classCairo_1_1RefPtr.html">RefPtr</a>&lt; T_CastFrom &gt;&amp; src)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy constructor (from different, but castable type). <a href="#a9f908e85eb371b62739fc04df304ab0e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCairo_1_1RefPtr.html#a52edce24b7b132ba4ff2f8ef0571bb46">swap</a> (<a class="el" href="classCairo_1_1RefPtr.html">RefPtr</a>&lt; T_CppObject &gt;&amp; other)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Swap the contents of two RefPtr&lt;&gt;. <a href="#a52edce24b7b132ba4ff2f8ef0571bb46"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCairo_1_1RefPtr.html">RefPtr</a>&lt; T_CppObject &gt;&amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCairo_1_1RefPtr.html#af02d3fb424f50e0f0ed1443709d38c5e">operator=</a> (const <a class="el" href="classCairo_1_1RefPtr.html">RefPtr</a>&lt; T_CppObject &gt;&amp; src)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy from another <a class="el" href="classCairo_1_1RefPtr.html" title="RefPtr&lt;&gt; is a reference-counting shared smartpointer.">RefPtr</a>: <a href="#af02d3fb424f50e0f0ed1443709d38c5e"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;class T_CastFrom &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classCairo_1_1RefPtr.html">RefPtr</a>&lt; T_CppObject &gt;&amp;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classCairo_1_1RefPtr.html#ac82b7f2edd6f88c60be74b12af8e717a">operator=</a> (const <a class="el" href="classCairo_1_1RefPtr.html">RefPtr</a>&lt; T_CastFrom &gt;&amp; src)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy from different, but castable type). <a href="#ac82b7f2edd6f88c60be74b12af8e717a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCairo_1_1RefPtr.html#a8270e1280138a5e2c1ec7775a05b9ded">operator==</a> (const <a class="el" href="classCairo_1_1RefPtr.html">RefPtr</a>&lt; T_CppObject &gt;&amp; src) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests whether the RefPtr&lt;&gt; point to the same underlying instance. <a href="#a8270e1280138a5e2c1ec7775a05b9ded"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCairo_1_1RefPtr.html#a70e5c59dcd60f1fe8b0e2fb33d9bae31">operator!=</a> (const <a class="el" href="classCairo_1_1RefPtr.html">RefPtr</a>&lt; T_CppObject &gt;&amp; src) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">See <a class="el" href="classCairo_1_1RefPtr.html#a8270e1280138a5e2c1ec7775a05b9ded" title="Tests whether the RefPtr&lt;&gt; point to the same underlying instance.">operator==()</a>. <a href="#a70e5c59dcd60f1fe8b0e2fb33d9bae31"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">T_CppObject*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCairo_1_1RefPtr.html#ae46ca4c9c90e3dd6a01e2d06a9b7504d">operator-&gt;</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Dereferencing. <a href="#ae46ca4c9c90e3dd6a01e2d06a9b7504d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCairo_1_1RefPtr.html#a391b39a970de38580e3dc074b08f225f">operator bool</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Test whether the RefPtr&lt;&gt; points to any underlying instance. <a href="#a391b39a970de38580e3dc074b08f225f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCairo_1_1RefPtr.html#a9c00d0d5e9a924520413869bcf162d2a">clear</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Set underlying instance to 0, decrementing reference count of existing instance appropriately. <a href="#a9c00d0d5e9a924520413869bcf162d2a"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;class T_CastFrom &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">static <a class="el" href="classCairo_1_1RefPtr.html">RefPtr</a>&lt; T_CppObject &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classCairo_1_1RefPtr.html#a6858cff2dc6fbe3b44cad59589d73628">cast_dynamic</a> (const <a class="el" href="classCairo_1_1RefPtr.html">RefPtr</a>&lt; T_CastFrom &gt;&amp; src)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Dynamic cast to derived class. <a href="#a6858cff2dc6fbe3b44cad59589d73628"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;class T_CastFrom &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">static <a class="el" href="classCairo_1_1RefPtr.html">RefPtr</a>&lt; T_CppObject &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classCairo_1_1RefPtr.html#ad94b14307bcb276fa9fa2ea69bb57e43">cast_static</a> (const <a class="el" href="classCairo_1_1RefPtr.html">RefPtr</a>&lt; T_CastFrom &gt;&amp; src)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Static cast to derived class. <a href="#ad94b14307bcb276fa9fa2ea69bb57e43"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;class T_CastFrom &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">static <a class="el" href="classCairo_1_1RefPtr.html">RefPtr</a>&lt; T_CppObject &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classCairo_1_1RefPtr.html#a95662b0f276cecb068bb6027f34e3b9b">cast_const</a> (const <a class="el" href="classCairo_1_1RefPtr.html">RefPtr</a>&lt; T_CastFrom &gt;&amp; src)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Cast to non-const. <a href="#a95662b0f276cecb068bb6027f34e3b9b"></a><br/></td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<div class="textblock"><h3>template&lt;class T_CppObject&gt;<br/>
 class Cairo::RefPtr&lt; T_CppObject &gt;</h3>

<p>RefPtr&lt;&gt; is a reference-counting shared smartpointer. </p>
<p>Reference counting means that a shared reference count is incremented each time a <a class="el" href="classCairo_1_1RefPtr.html" title="RefPtr&lt;&gt; is a reference-counting shared smartpointer.">RefPtr</a> is copied, and decremented each time a <a class="el" href="classCairo_1_1RefPtr.html" title="RefPtr&lt;&gt; is a reference-counting shared smartpointer.">RefPtr</a> is destroyed, for instance when it leaves its scope. When the reference count reaches zero, the contained object is deleted</p>
<p>cairomm uses <a class="el" href="classCairo_1_1RefPtr.html" title="RefPtr&lt;&gt; is a reference-counting shared smartpointer.">RefPtr</a> so that you don't need to remember to delete the object explicitly, or know when a method expects you to delete the object that it returns, and to prevent any need to manually reference and unreference() cairo objects. </p>
<dl><dt><b>Examples: </b></dt><dd>
<p><a class="el" href="image-surface_8cc-example.html#_a0">image-surface.cc</a>, <a class="el" href="pdf-surface_8cc-example.html#_a1">pdf-surface.cc</a>, <a class="el" href="ps-surface_8cc-example.html#_a1">ps-surface.cc</a>, <a class="el" href="svg-surface_8cc-example.html#_a1">svg-surface.cc</a>, <a class="el" href="toy-text_8cc-example.html#_a0">toy-text.cc</a>, and <a class="el" href="user-font_8cc-example.html#_a0">user-font.cc</a>.</p>
</dd>
</dl></div><hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="aff19258db23434b3d41db0488b9249ea"></a><!-- doxytag: member="Cairo::RefPtr::RefPtr" ref="aff19258db23434b3d41db0488b9249ea" args="()" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template &lt;class T_CppObject&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCairo_1_1RefPtr.html">Cairo::RefPtr</a>&lt; T_CppObject &gt;::<a class="el" href="classCairo_1_1RefPtr.html">RefPtr</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Default constructor. </p>
<p>Afterwards it will be null and use of -&gt; will cause a segmentation fault. </p>

</div>
</div>
<a class="anchor" id="a227899cc9f00a7f4fce1f14cf73249d2"></a><!-- doxytag: member="Cairo::RefPtr::~RefPtr" ref="a227899cc9f00a7f4fce1f14cf73249d2" args="()" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template &lt;class T_CppObject&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCairo_1_1RefPtr.html">Cairo::RefPtr</a>&lt; T_CppObject &gt;::~<a class="el" href="classCairo_1_1RefPtr.html">RefPtr</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Destructor - decrements reference count. </p>

</div>
</div>
<a class="anchor" id="a15f8fd5fdb043ef974e8f56b2fcc3d67"></a><!-- doxytag: member="Cairo::RefPtr::RefPtr" ref="a15f8fd5fdb043ef974e8f56b2fcc3d67" args="(T_CppObject *pCppObject)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template &lt;class T_CppObject&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCairo_1_1RefPtr.html">Cairo::RefPtr</a>&lt; T_CppObject &gt;::<a class="el" href="classCairo_1_1RefPtr.html">RefPtr</a> </td>
          <td>(</td>
          <td class="paramtype">T_CppObject *&#160;</td>
          <td class="paramname"><em>pCppObject</em></td><td>)</td>
          <td><code> [inline, explicit]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>For use only in the internal implementation of cairomm, gtkmm, etc. </p>
<p>This takes ownership of <em>pCppObject</em>, so it will be deleted when the last <a class="el" href="classCairo_1_1RefPtr.html" title="RefPtr&lt;&gt; is a reference-counting shared smartpointer.">RefPtr</a> is deleted, for instance when it goes out of scope.</p>
<p>This assumes that <em>pCppObject</em> already has a starting reference for its underlying cairo object, so that destruction of <em></em> will cause a corresponding unreference of its underlying cairo object. For instance, a cairo_*_create() function usually provides a starting reference, but a cairo_*_get_*() function requires the caller to manually reference the returned object. In this case, you should call reference() on <em>pCppObject</em> before passing it to this constructor. </p>

</div>
</div>
<a class="anchor" id="acb129373ab925b608bb542edc4a35e07"></a><!-- doxytag: member="Cairo::RefPtr::RefPtr" ref="acb129373ab925b608bb542edc4a35e07" args="(T_CppObject *pCppObject, int *refcount)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template &lt;class T_CppObject&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCairo_1_1RefPtr.html">Cairo::RefPtr</a>&lt; T_CppObject &gt;::<a class="el" href="classCairo_1_1RefPtr.html">RefPtr</a> </td>
          <td>(</td>
          <td class="paramtype">T_CppObject *&#160;</td>
          <td class="paramname"><em>pCppObject</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&#160;</td>
          <td class="paramname"><em>refcount</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline, explicit]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>For use only in the internal implementation of sharedptr. </p>

</div>
</div>
<a class="anchor" id="a2abb53dbe20af15dcfb9903df9c336d5"></a><!-- doxytag: member="Cairo::RefPtr::RefPtr" ref="a2abb53dbe20af15dcfb9903df9c336d5" args="(const RefPtr&lt; T_CppObject &gt; &amp;src)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template &lt;class T_CppObject&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCairo_1_1RefPtr.html">Cairo::RefPtr</a>&lt; T_CppObject &gt;::<a class="el" href="classCairo_1_1RefPtr.html">RefPtr</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCairo_1_1RefPtr.html">RefPtr</a>&lt; T_CppObject &gt;&amp;&#160;</td>
          <td class="paramname"><em>src</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Copy constructor. </p>
<p>This increments the shared reference count. </p>

</div>
</div>
<a class="anchor" id="a9f908e85eb371b62739fc04df304ab0e"></a><!-- doxytag: member="Cairo::RefPtr::RefPtr" ref="a9f908e85eb371b62739fc04df304ab0e" args="(const RefPtr&lt; T_CastFrom &gt; &amp;src)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template &lt;class T_CppObject&gt; </div>
<div class="memtemplate">
template &lt;class T_CastFrom &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCairo_1_1RefPtr.html">Cairo::RefPtr</a>&lt; T_CppObject &gt;::<a class="el" href="classCairo_1_1RefPtr.html">RefPtr</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCairo_1_1RefPtr.html">RefPtr</a>&lt; T_CastFrom &gt;&amp;&#160;</td>
          <td class="paramname"><em>src</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Copy constructor (from different, but castable type). </p>
<p>Increments the reference count. </p>

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="a95662b0f276cecb068bb6027f34e3b9b"></a><!-- doxytag: member="Cairo::RefPtr::cast_const" ref="a95662b0f276cecb068bb6027f34e3b9b" args="(const RefPtr&lt; T_CastFrom &gt; &amp;src)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template &lt;class T_CppObject&gt; </div>
<div class="memtemplate">
template &lt;class T_CastFrom &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="classCairo_1_1RefPtr.html">RefPtr</a>&lt;T_CppObject&gt; <a class="el" href="classCairo_1_1RefPtr.html">Cairo::RefPtr</a>&lt; T_CppObject &gt;::cast_const </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCairo_1_1RefPtr.html">RefPtr</a>&lt; T_CastFrom &gt;&amp;&#160;</td>
          <td class="paramname"><em>src</em></td><td>)</td>
          <td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Cast to non-const. </p>
<p>The <a class="el" href="classCairo_1_1RefPtr.html" title="RefPtr&lt;&gt; is a reference-counting shared smartpointer.">RefPtr</a> can't be cast with the usual notation so instead you can use </p>
<div class="fragment"><pre class="fragment"> ptr_unconst = <a class="code" href="classCairo_1_1RefPtr.html#a95662b0f276cecb068bb6027f34e3b9b" title="Cast to non-const.">RefPtr&lt;UnConstType&gt;::cast_const</a>(ptr_const);
</pre></div> </div>
</div>
<a class="anchor" id="a6858cff2dc6fbe3b44cad59589d73628"></a><!-- doxytag: member="Cairo::RefPtr::cast_dynamic" ref="a6858cff2dc6fbe3b44cad59589d73628" args="(const RefPtr&lt; T_CastFrom &gt; &amp;src)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template &lt;class T_CppObject&gt; </div>
<div class="memtemplate">
template &lt;class T_CastFrom &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="classCairo_1_1RefPtr.html">RefPtr</a>&lt;T_CppObject&gt; <a class="el" href="classCairo_1_1RefPtr.html">Cairo::RefPtr</a>&lt; T_CppObject &gt;::cast_dynamic </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCairo_1_1RefPtr.html">RefPtr</a>&lt; T_CastFrom &gt;&amp;&#160;</td>
          <td class="paramname"><em>src</em></td><td>)</td>
          <td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Dynamic cast to derived class. </p>
<p>The <a class="el" href="classCairo_1_1RefPtr.html" title="RefPtr&lt;&gt; is a reference-counting shared smartpointer.">RefPtr</a> can't be cast with the usual notation so instead you can use </p>
<div class="fragment"><pre class="fragment"> ptr_derived = <a class="code" href="classCairo_1_1RefPtr.html#a6858cff2dc6fbe3b44cad59589d73628" title="Dynamic cast to derived class.">RefPtr&lt;Derived&gt;::cast_dynamic</a>(ptr_base);
</pre></div> </div>
</div>
<a class="anchor" id="ad94b14307bcb276fa9fa2ea69bb57e43"></a><!-- doxytag: member="Cairo::RefPtr::cast_static" ref="ad94b14307bcb276fa9fa2ea69bb57e43" args="(const RefPtr&lt; T_CastFrom &gt; &amp;src)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template &lt;class T_CppObject&gt; </div>
<div class="memtemplate">
template &lt;class T_CastFrom &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="classCairo_1_1RefPtr.html">RefPtr</a>&lt;T_CppObject&gt; <a class="el" href="classCairo_1_1RefPtr.html">Cairo::RefPtr</a>&lt; T_CppObject &gt;::cast_static </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCairo_1_1RefPtr.html">RefPtr</a>&lt; T_CastFrom &gt;&amp;&#160;</td>
          <td class="paramname"><em>src</em></td><td>)</td>
          <td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Static cast to derived class. </p>
<p>Like the dynamic cast; the notation is </p>
<div class="fragment"><pre class="fragment"> ptr_derived = <a class="code" href="classCairo_1_1RefPtr.html#ad94b14307bcb276fa9fa2ea69bb57e43" title="Static cast to derived class.">RefPtr&lt;Derived&gt;::cast_static</a>(ptr_base);
</pre></div> </div>
</div>
<a class="anchor" id="a9c00d0d5e9a924520413869bcf162d2a"></a><!-- doxytag: member="Cairo::RefPtr::clear" ref="a9c00d0d5e9a924520413869bcf162d2a" args="()" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template &lt;class T_CppObject&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classCairo_1_1RefPtr.html">Cairo::RefPtr</a>&lt; T_CppObject &gt;::clear </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set underlying instance to 0, decrementing reference count of existing instance appropriately. </p>

</div>
</div>
<a class="anchor" id="a391b39a970de38580e3dc074b08f225f"></a><!-- doxytag: member="Cairo::RefPtr::operator bool" ref="a391b39a970de38580e3dc074b08f225f" args="() const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template &lt;class T_CppObject&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCairo_1_1RefPtr.html">Cairo::RefPtr</a>&lt; T_CppObject &gt;::operator bool </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Test whether the RefPtr&lt;&gt; points to any underlying instance. </p>
<p>Mimics usage of ordinary pointers: </p>
<div class="fragment"><pre class="fragment"> <span class="keywordflow">if</span> (ptr)
     do_something();
</pre></div> </div>
</div>
<a class="anchor" id="a70e5c59dcd60f1fe8b0e2fb33d9bae31"></a><!-- doxytag: member="Cairo::RefPtr::operator!=" ref="a70e5c59dcd60f1fe8b0e2fb33d9bae31" args="(const RefPtr&lt; T_CppObject &gt; &amp;src) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template &lt;class T_CppObject&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classCairo_1_1RefPtr.html">Cairo::RefPtr</a>&lt; T_CppObject &gt;::<a class="elRef" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a01176.html#gac4373547895ec9df9035719b38a2621a">operator!</a>= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCairo_1_1RefPtr.html">RefPtr</a>&lt; T_CppObject &gt;&amp;&#160;</td>
          <td class="paramname"><em>src</em></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>See <a class="el" href="classCairo_1_1RefPtr.html#a8270e1280138a5e2c1ec7775a05b9ded" title="Tests whether the RefPtr&lt;&gt; point to the same underlying instance.">operator==()</a>. </p>

</div>
</div>
<a class="anchor" id="ae46ca4c9c90e3dd6a01e2d06a9b7504d"></a><!-- doxytag: member="Cairo::RefPtr::operator&#45;&gt;" ref="ae46ca4c9c90e3dd6a01e2d06a9b7504d" args="() const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template &lt;class T_CppObject&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">T_CppObject* <a class="el" href="classCairo_1_1RefPtr.html">Cairo::RefPtr</a>&lt; T_CppObject &gt;::operator-&gt; </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Dereferencing. </p>
<p>Use the methods of the underlying instance like so: <code>refptr-&gt;memberfun()</code>. </p>

</div>
</div>
<a class="anchor" id="af02d3fb424f50e0f0ed1443709d38c5e"></a><!-- doxytag: member="Cairo::RefPtr::operator=" ref="af02d3fb424f50e0f0ed1443709d38c5e" args="(const RefPtr&lt; T_CppObject &gt; &amp;src)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template &lt;class T_CppObject&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCairo_1_1RefPtr.html">RefPtr</a>&lt;T_CppObject&gt;&amp; <a class="el" href="classCairo_1_1RefPtr.html">Cairo::RefPtr</a>&lt; T_CppObject &gt;::operator= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCairo_1_1RefPtr.html">RefPtr</a>&lt; T_CppObject &gt;&amp;&#160;</td>
          <td class="paramname"><em>src</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Copy from another <a class="el" href="classCairo_1_1RefPtr.html" title="RefPtr&lt;&gt; is a reference-counting shared smartpointer.">RefPtr</a>: </p>

</div>
</div>
<a class="anchor" id="ac82b7f2edd6f88c60be74b12af8e717a"></a><!-- doxytag: member="Cairo::RefPtr::operator=" ref="ac82b7f2edd6f88c60be74b12af8e717a" args="(const RefPtr&lt; T_CastFrom &gt; &amp;src)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template &lt;class T_CppObject&gt; </div>
<div class="memtemplate">
template &lt;class T_CastFrom &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCairo_1_1RefPtr.html">RefPtr</a>&lt;T_CppObject&gt;&amp; <a class="el" href="classCairo_1_1RefPtr.html">Cairo::RefPtr</a>&lt; T_CppObject &gt;::operator= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCairo_1_1RefPtr.html">RefPtr</a>&lt; T_CastFrom &gt;&amp;&#160;</td>
          <td class="paramname"><em>src</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Copy from different, but castable type). </p>
<p>Increments the reference count. </p>

</div>
</div>
<a class="anchor" id="a8270e1280138a5e2c1ec7775a05b9ded"></a><!-- doxytag: member="Cairo::RefPtr::operator==" ref="a8270e1280138a5e2c1ec7775a05b9ded" args="(const RefPtr&lt; T_CppObject &gt; &amp;src) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template &lt;class T_CppObject&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classCairo_1_1RefPtr.html">Cairo::RefPtr</a>&lt; T_CppObject &gt;::operator== </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCairo_1_1RefPtr.html">RefPtr</a>&lt; T_CppObject &gt;&amp;&#160;</td>
          <td class="paramname"><em>src</em></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Tests whether the RefPtr&lt;&gt; point to the same underlying instance. </p>

</div>
</div>
<a class="anchor" id="a52edce24b7b132ba4ff2f8ef0571bb46"></a><!-- doxytag: member="Cairo::RefPtr::swap" ref="a52edce24b7b132ba4ff2f8ef0571bb46" args="(RefPtr&lt; T_CppObject &gt; &amp;other)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template &lt;class T_CppObject&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classCairo_1_1RefPtr.html">Cairo::RefPtr</a>&lt; T_CppObject &gt;::swap </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classCairo_1_1RefPtr.html">RefPtr</a>&lt; T_CppObject &gt;&amp;&#160;</td>
          <td class="paramname"><em>other</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Swap the contents of two RefPtr&lt;&gt;. </p>
<p>This method swaps the internal pointers to T_CppObject. This can be done safely without involving a reference/unreference cycle and is therefore highly efficient. </p>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>cairomm/refptr.h</li>
</ul>
</div>
<hr class="footer"/><address class="footer"><small>Generated on Mon May 9 2011 09:51:07 for cairomm by&#160;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
</body>
</html>