Sophie

Sophie

distrib > Mandriva > 2010.2 > i586 > media > contrib-backports > by-pkgid > f00c83953c7eb23ee3c18f4f35d8eb6b > files > 236

sfml2-doc-2.0-0.1mdv2010.2.noarch.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head>
        <title>SFML - Simple and Fast Multimedia Library</title>
        <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
        <link href="doxygen.css" rel="stylesheet" type="text/css" />
        <link href="tabs.css" rel="stylesheet" type="text/css" />
    </head>
    <body>
        <div id="logo">
            <img src="./logo.jpg" width="770" height="200" title="SFML home" alt="SFML logo" />
        </div>
<!-- Generated by Doxygen 1.6.3 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.htm"><span>Main&nbsp;Page</span></a></li>
      <li><a href="modules.htm"><span>Modules</span></a></li>
      <li class="current"><a href="annotated.htm"><span>Classes</span></a></li>
      <li><a href="files.htm"><span>Files</span></a></li>
    </ul>
  </div>
  <div class="tabs">
    <ul>
      <li><a href="annotated.htm"><span>Class&nbsp;List</span></a></li>
      <li><a href="classes.htm"><span>Class&nbsp;Index</span></a></li>
      <li><a href="hierarchy.htm"><span>Class&nbsp;Hierarchy</span></a></li>
      <li><a href="functions.htm"><span>Class&nbsp;Members</span></a></li>
    </ul>
  </div>
  <div class="navpath"><b>sf</b>::<a class="el" href="classsf_1_1ResourcePtr.htm">ResourcePtr</a>
  </div>
</div>
<div class="contents">
<h1>sf::ResourcePtr&lt; T &gt; Class Template Reference<br/>
<small>
[<a class="el" href="group__system.htm">System module</a>]</small>
</h1><!-- doxytag: class="sf::ResourcePtr" -->
<p>Safe pointer to a sf::Resource&lt;T&gt;  
<a href="#_details">More...</a></p>

<p><code>#include &lt;<a class="el" href="Resource_8hpp_source.htm">Resource.hpp</a>&gt;</code></p>

<p><a href="classsf_1_1ResourcePtr-members.htm">List of all members.</a></p>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsf_1_1ResourcePtr.htm#a48ddcd15ed75e9ee3ea88e4d29402140">ResourcePtr</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Default constructor.  <a href="#a48ddcd15ed75e9ee3ea88e4d29402140"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsf_1_1ResourcePtr.htm#a5ddb27ada2eafab07750f659a05125d5">ResourcePtr</a> (const T *resource)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Construct from a raw pointer.  <a href="#a5ddb27ada2eafab07750f659a05125d5"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsf_1_1ResourcePtr.htm#a1d403803da42a0424cd69726fefcdcd4">ResourcePtr</a> (const <a class="el" href="classsf_1_1ResourcePtr.htm">ResourcePtr</a>&lt; T &gt; &amp;copy)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Copy constructor.  <a href="#a1d403803da42a0424cd69726fefcdcd4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsf_1_1ResourcePtr.htm#a0ec69fdecccd1240030b24385f6884dd">~ResourcePtr</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Destructor.  <a href="#a0ec69fdecccd1240030b24385f6884dd"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classsf_1_1ResourcePtr.htm">ResourcePtr</a>&lt; T &gt; &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsf_1_1ResourcePtr.htm#aa106df991daa6c5c7d7c2da8464da965">operator=</a> (const <a class="el" href="classsf_1_1ResourcePtr.htm">ResourcePtr</a>&lt; T &gt; &amp;right)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Assignment operator for a <a class="el" href="classsf_1_1ResourcePtr.htm" title="Safe pointer to a sf::Resource&lt;T&gt;">ResourcePtr</a> parameter.  <a href="#aa106df991daa6c5c7d7c2da8464da965"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classsf_1_1ResourcePtr.htm">ResourcePtr</a>&lt; T &gt; &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsf_1_1ResourcePtr.htm#a0a81764944c12f125fca5018e5e59f94">operator=</a> (const T *resource)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Assignment operator for a raw pointer parameter.  <a href="#a0a81764944c12f125fca5018e5e59f94"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsf_1_1ResourcePtr.htm#a7af0f407f121bff6e4dcf71c7c7955de">operator const T *</a> () const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Cast operator to implicitely convert the resource pointer to its raw pointer type (T*).  <a href="#a7af0f407f121bff6e4dcf71c7c7955de"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const T &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsf_1_1ResourcePtr.htm#a4e5401c5a07347a35cc3b9192e11b071">operator*</a> () const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Overload of unary operator *.  <a href="#a4e5401c5a07347a35cc3b9192e11b071"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const T *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsf_1_1ResourcePtr.htm#ae58ea517eee0a97a778c3c59e4c3fe3a">operator-&gt;</a> () const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Overload of operator -&gt;  <a href="#ae58ea517eee0a97a778c3c59e4c3fe3a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsf_1_1ResourcePtr.htm#ae7e9d9ed819db0f541a7c22f5a28abf9">OnResourceDestroyed</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Function called when the observed resource is about to be destroyed.  <a href="#ae7e9d9ed819db0f541a7c22f5a28abf9"></a><br/></td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<h3>template&lt;typename T&gt;<br/>
 class sf::ResourcePtr&lt; T &gt;</h3>

<p>Safe pointer to a sf::Resource&lt;T&gt; </p>
<p><a class="el" href="classsf_1_1ResourcePtr.htm" title="Safe pointer to a sf::Resource&lt;T&gt;">sf::ResourcePtr</a> is a special kind of smart pointer for resources.</p>
<p>Its main feature is to automatically reset its internal pointer to 0 when the resource gets destroyed, so that pointers to a resource never become invalid when the resource is destroyed. Instead, it properly returns 0 when the resource no longer exists.</p>
<p>Its usage is completely transparent, so that it is similar to manipulating the raw resource directly (like any smart pointer).</p>
<p>For sf::ResourcePtr&lt;T&gt; to work, T must inherit from the <a class="el" href="classsf_1_1Resource.htm" title="Base class for resources that need to notify dependent classes about their destruction...">sf::Resource</a> class.</p>
<p>These two classes are heavily used internally in SFML to safely handle resources and the classes that use them: </p>
<ul>
<li><a class="el" href="classsf_1_1Texture.htm" title="Image living on the graphics card that can be used for drawing.">sf::Texture</a> / <a class="el" href="classsf_1_1Sprite.htm" title="Drawable representation of a texture, with its own transformations, color, blend...">sf::Sprite</a> </li>
<li><a class="el" href="classsf_1_1Font.htm" title="Class for loading and manipulating character fonts.">sf::Font</a> / <a class="el" href="classsf_1_1Text.htm" title="Graphical text that can be drawn to a render target.">sf::Text</a> </li>
<li><a class="el" href="classsf_1_1SoundBuffer.htm" title="Storage for audio samples defining a sound.">sf::SoundBuffer</a> / <a class="el" href="classsf_1_1Sound.htm" title="Regular sound that can be played in the audio environment.">sf::Sound</a></li>
</ul>
<p><a class="el" href="classsf_1_1Resource.htm" title="Base class for resources that need to notify dependent classes about their destruction...">sf::Resource</a> and <a class="el" href="classsf_1_1ResourcePtr.htm" title="Safe pointer to a sf::Resource&lt;T&gt;">sf::ResourcePtr</a> are designed for internal use, but if you feel like they would fit well in your implementation there's no problem to use them.</p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classsf_1_1Resource.htm" title="Base class for resources that need to notify dependent classes about their destruction...">sf::Resource</a> </dd></dl>

<p>Definition at line <a class="el" href="Resource_8hpp_source.htm#l00127">127</a> of file <a class="el" href="Resource_8hpp_source.htm">Resource.hpp</a>.</p>
<hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a48ddcd15ed75e9ee3ea88e4d29402140"></a><!-- doxytag: member="sf::ResourcePtr::ResourcePtr" ref="a48ddcd15ed75e9ee3ea88e4d29402140" args="()" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classsf_1_1ResourcePtr.htm">sf::ResourcePtr</a>&lt; T &gt;::<a class="el" href="classsf_1_1ResourcePtr.htm">ResourcePtr</a> </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Default constructor. </p>
<p>A default constructed <a class="el" href="classsf_1_1ResourcePtr.htm" title="Safe pointer to a sf::Resource&lt;T&gt;">ResourcePtr</a> is empty (null). </p>

</div>
</div>
<a class="anchor" id="a5ddb27ada2eafab07750f659a05125d5"></a><!-- doxytag: member="sf::ResourcePtr::ResourcePtr" ref="a5ddb27ada2eafab07750f659a05125d5" args="(const T *resource)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classsf_1_1ResourcePtr.htm">sf::ResourcePtr</a>&lt; T &gt;::<a class="el" href="classsf_1_1ResourcePtr.htm">ResourcePtr</a> </td>
          <td>(</td>
          <td class="paramtype">const T *&nbsp;</td>
          <td class="paramname"> <em>resource</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Construct from a raw pointer. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>resource</em>&nbsp;</td><td>Raw pointer to the resource to wrap </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a1d403803da42a0424cd69726fefcdcd4"></a><!-- doxytag: member="sf::ResourcePtr::ResourcePtr" ref="a1d403803da42a0424cd69726fefcdcd4" args="(const ResourcePtr&lt; T &gt; &amp;copy)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classsf_1_1ResourcePtr.htm">sf::ResourcePtr</a>&lt; T &gt;::<a class="el" href="classsf_1_1ResourcePtr.htm">ResourcePtr</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classsf_1_1ResourcePtr.htm">ResourcePtr</a>&lt; T &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>copy</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Copy constructor. </p>
<p>The new <a class="el" href="classsf_1_1ResourcePtr.htm" title="Safe pointer to a sf::Resource&lt;T&gt;">ResourcePtr</a> will share the same resource as <em>copy</em>.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>copy</em>&nbsp;</td><td>Instance to copy </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a0ec69fdecccd1240030b24385f6884dd"></a><!-- doxytag: member="sf::ResourcePtr::~ResourcePtr" ref="a0ec69fdecccd1240030b24385f6884dd" args="()" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classsf_1_1ResourcePtr.htm">sf::ResourcePtr</a>&lt; T &gt;::~<a class="el" href="classsf_1_1ResourcePtr.htm">ResourcePtr</a> </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Destructor. </p>

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="ae7e9d9ed819db0f541a7c22f5a28abf9"></a><!-- doxytag: member="sf::ResourcePtr::OnResourceDestroyed" ref="ae7e9d9ed819db0f541a7c22f5a28abf9" args="()" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classsf_1_1ResourcePtr.htm">sf::ResourcePtr</a>&lt; T &gt;::OnResourceDestroyed </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Function called when the observed resource is about to be destroyed. </p>
<p>This functions is called by the destructor of the pointed resource. It allows this instance to reset its internal pointer when the resource is destroyed, and avoid dangling pointers. </p>

</div>
</div>
<a class="anchor" id="a7af0f407f121bff6e4dcf71c7c7955de"></a><!-- doxytag: member="sf::ResourcePtr::operator const T *" ref="a7af0f407f121bff6e4dcf71c7c7955de" args="() const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classsf_1_1ResourcePtr.htm">sf::ResourcePtr</a>&lt; T &gt;::operator const T * </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Cast operator to implicitely convert the resource pointer to its raw pointer type (T*). </p>
<p>This might be dangerous in the general case, but in this context it is safe enough to define this operator.</p>
<dl class="return"><dt><b>Returns:</b></dt><dd>Read-only pointer to the actual resource </dd></dl>

</div>
</div>
<a class="anchor" id="a4e5401c5a07347a35cc3b9192e11b071"></a><!-- doxytag: member="sf::ResourcePtr::operator*" ref="a4e5401c5a07347a35cc3b9192e11b071" args="() const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">const T&amp; <a class="el" href="classsf_1_1ResourcePtr.htm">sf::ResourcePtr</a>&lt; T &gt;::operator* </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Overload of unary operator *. </p>
<p>Like raw pointers, applying the * operator returns a reference to the pointed object.</p>
<dl class="return"><dt><b>Returns:</b></dt><dd>Reference to the pointed resource </dd></dl>

</div>
</div>
<a class="anchor" id="ae58ea517eee0a97a778c3c59e4c3fe3a"></a><!-- doxytag: member="sf::ResourcePtr::operator&#45;&gt;" ref="ae58ea517eee0a97a778c3c59e4c3fe3a" args="() const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">const T* <a class="el" href="classsf_1_1ResourcePtr.htm">sf::ResourcePtr</a>&lt; T &gt;::operator-&gt; </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Overload of operator -&gt; </p>
<p>Like raw pointers, applying the -&gt; operator returns the pointed object.</p>
<dl class="return"><dt><b>Returns:</b></dt><dd>Pointed resource </dd></dl>

</div>
</div>
<a class="anchor" id="a0a81764944c12f125fca5018e5e59f94"></a><!-- doxytag: member="sf::ResourcePtr::operator=" ref="a0a81764944c12f125fca5018e5e59f94" args="(const T *resource)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classsf_1_1ResourcePtr.htm">ResourcePtr</a>&lt;T&gt;&amp; <a class="el" href="classsf_1_1ResourcePtr.htm">sf::ResourcePtr</a>&lt; T &gt;::operator= </td>
          <td>(</td>
          <td class="paramtype">const T *&nbsp;</td>
          <td class="paramname"> <em>resource</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Assignment operator for a raw pointer parameter. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>resource</em>&nbsp;</td><td><a class="el" href="classsf_1_1Resource.htm" title="Base class for resources that need to notify dependent classes about their destruction...">Resource</a> to assign</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Reference to self </dd></dl>

</div>
</div>
<a class="anchor" id="aa106df991daa6c5c7d7c2da8464da965"></a><!-- doxytag: member="sf::ResourcePtr::operator=" ref="aa106df991daa6c5c7d7c2da8464da965" args="(const ResourcePtr&lt; T &gt; &amp;right)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classsf_1_1ResourcePtr.htm">ResourcePtr</a>&lt;T&gt;&amp; <a class="el" href="classsf_1_1ResourcePtr.htm">sf::ResourcePtr</a>&lt; T &gt;::operator= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classsf_1_1ResourcePtr.htm">ResourcePtr</a>&lt; T &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>right</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Assignment operator for a <a class="el" href="classsf_1_1ResourcePtr.htm" title="Safe pointer to a sf::Resource&lt;T&gt;">ResourcePtr</a> parameter. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>right</em>&nbsp;</td><td>Instance to assign</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Reference to self </dd></dl>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="Resource_8hpp_source.htm">Resource.hpp</a></li>
</ul>
</div>

        <p id="footer">
            &nbsp;::&nbsp; Copyright &copy; 2007-2008 Laurent Gomila, all rights reserved &nbsp;::&nbsp;
            Documentation generated by <a href="http://www.doxygen.org/" title="doxygen website">doxygen 1.5.2</a> &nbsp;::&nbsp;
        </p>

    </body>
</html>