sfmlinstaller

sfmlinstaller Mercurial Source Tree


Root/windows/doc/html/classsf_1_1ThreadLocalPtr.htm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <head>
        <title>SFML - Simple and Fast Multimedia Library</title>
        <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
        <!--<link rel='stylesheet' type='text/css' href="http://fonts.googleapis.com/css?family=Ubuntu:400,700,400italic"/>-->
        <link rel="stylesheet" type="text/css" href="doxygen.css" title="default" media="screen,print" />
    </head>
    <body>
        <div id="banner-container">
            <div id="banner">
                <span id="sfml">SFML</span>
            </div>
        </div>
        <div id="content">
<!-- Generated by Doxygen 1.8.2 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.htm"><span>Main 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 id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.htm"><span>Class List</span></a></li>
      <li><a href="classes.htm"><span>Class Index</span></a></li>
      <li><a href="hierarchy.htm"><span>Class Hierarchy</span></a></li>
      <li><a href="functions.htm"><span>Class Members</span></a></li>
    </ul>
  </div>
<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><b>sf</b></li><li class="navelem"><a class="el" href="classsf_1_1ThreadLocalPtr.htm">ThreadLocalPtr</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> |
<a href="#pri-methods">Private Member Functions</a> |
<a href="classsf_1_1ThreadLocalPtr-members.htm">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">sf::ThreadLocalPtr< T > Class Template Reference<div class="ingroups"><a class="el" href="group__system.htm">System module</a></div></div>  </div>
</div><!--header-->
<div class="contents">
 
<p>Pointer to a thread-local variable. 
 <a href="classsf_1_1ThreadLocalPtr.htm#details">More...</a></p>
 
<p><code>#include <<a class="el" href="ThreadLocalPtr_8hpp_source.htm">ThreadLocalPtr.hpp</a>></code></p>
<div class="dynheader">
Inheritance diagram for sf::ThreadLocalPtr< T >:</div>
<div class="dyncontent">
 <div class="center">
  <img src="classsf_1_1ThreadLocalPtr.png" usemap="#sf::ThreadLocalPtr< T >_map" alt=""/>
  <map id="sf::ThreadLocalPtr< T >_map" name="sf::ThreadLocalPtr< T >_map">
<area href="classsf_1_1ThreadLocal.htm" title="Defines variables with thread-local storage." alt="sf::ThreadLocal" shape="rect" coords="0,0,146,24"/>
</map>
 </div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a8c678211d7828d2a8c41cb534422d649"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classsf_1_1ThreadLocalPtr.htm#a8c678211d7828d2a8c41cb534422d649">ThreadLocalPtr</a> (T *value=NULL)</td></tr>
<tr class="memdesc:a8c678211d7828d2a8c41cb534422d649"><td class="mdescLeft"> </td><td class="mdescRight">Default constructor.  <a href="#a8c678211d7828d2a8c41cb534422d649"></a><br/></td></tr>
<tr class="separator:a8c678211d7828d2a8c41cb534422d649"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:aa3bac9a08e8739613961659d10e0fadd"><td class="memItemLeft" align="right" valign="top">T & </td><td class="memItemRight" valign="bottom"><a class="el" href="classsf_1_1ThreadLocalPtr.htm#aa3bac9a08e8739613961659d10e0fadd">operator*</a> () const </td></tr>
<tr class="memdesc:aa3bac9a08e8739613961659d10e0fadd"><td class="mdescLeft"> </td><td class="mdescRight">Overload of unary operator *.  <a href="#aa3bac9a08e8739613961659d10e0fadd"></a><br/></td></tr>
<tr class="separator:aa3bac9a08e8739613961659d10e0fadd"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:aa0b559f78929b22cb2585cb2966edfb2"><td class="memItemLeft" align="right" valign="top">T * </td><td class="memItemRight" valign="bottom"><a class="el" href="classsf_1_1ThreadLocalPtr.htm#aa0b559f78929b22cb2585cb2966edfb2">operator-></a> () const </td></tr>
<tr class="memdesc:aa0b559f78929b22cb2585cb2966edfb2"><td class="mdescLeft"> </td><td class="mdescRight">Overload of operator ->  <a href="#aa0b559f78929b22cb2585cb2966edfb2"></a><br/></td></tr>
<tr class="separator:aa0b559f78929b22cb2585cb2966edfb2"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ab4a6a341c26b58f0ed3ef86502bd9572"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classsf_1_1ThreadLocalPtr.htm#ab4a6a341c26b58f0ed3ef86502bd9572">operator T *</a> () const </td></tr>
<tr class="memdesc:ab4a6a341c26b58f0ed3ef86502bd9572"><td class="mdescLeft"> </td><td class="mdescRight">Cast operator to implicitely convert the pointer to its raw pointer type (T*)  <a href="#ab4a6a341c26b58f0ed3ef86502bd9572"></a><br/></td></tr>
<tr class="separator:ab4a6a341c26b58f0ed3ef86502bd9572"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a14dcf1cdf5f6b3bcdd633014b2b671f5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classsf_1_1ThreadLocalPtr.htm">ThreadLocalPtr</a>< T > & </td><td class="memItemRight" valign="bottom"><a class="el" href="classsf_1_1ThreadLocalPtr.htm#a14dcf1cdf5f6b3bcdd633014b2b671f5">operator=</a> (T *value)</td></tr>
<tr class="memdesc:a14dcf1cdf5f6b3bcdd633014b2b671f5"><td class="mdescLeft"> </td><td class="mdescRight">Assignment operator for a raw pointer parameter.  <a href="#a14dcf1cdf5f6b3bcdd633014b2b671f5"></a><br/></td></tr>
<tr class="separator:a14dcf1cdf5f6b3bcdd633014b2b671f5"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a6792a6a808af06f0d13e3ceecf2fc947"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classsf_1_1ThreadLocalPtr.htm">ThreadLocalPtr</a>< T > & </td><td class="memItemRight" valign="bottom"><a class="el" href="classsf_1_1ThreadLocalPtr.htm#a6792a6a808af06f0d13e3ceecf2fc947">operator=</a> (const <a class="el" href="classsf_1_1ThreadLocalPtr.htm">ThreadLocalPtr</a>< T > &right)</td></tr>
<tr class="memdesc:a6792a6a808af06f0d13e3ceecf2fc947"><td class="mdescLeft"> </td><td class="mdescRight">Assignment operator for a <a class="el" href="classsf_1_1ThreadLocalPtr.htm" title="Pointer to a thread-local variable.">ThreadLocalPtr</a> parameter.  <a href="#a6792a6a808af06f0d13e3ceecf2fc947"></a><br/></td></tr>
<tr class="separator:a6792a6a808af06f0d13e3ceecf2fc947"><td class="memSeparator" colspan="2"> </td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-methods"></a>
Private Member Functions</h2></td></tr>
<tr class="memitem:ab7e334c83d77644a8e67ee31c3230007"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classsf_1_1ThreadLocal.htm#ab7e334c83d77644a8e67ee31c3230007">setValue</a> (void *value)</td></tr>
<tr class="memdesc:ab7e334c83d77644a8e67ee31c3230007"><td class="mdescLeft"> </td><td class="mdescRight">Set the thread-specific value of the variable.  <a href="#ab7e334c83d77644a8e67ee31c3230007"></a><br/></td></tr>
<tr class="separator:ab7e334c83d77644a8e67ee31c3230007"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:aef35a39686eac4b6634a6e5605aacfd7"><td class="memItemLeft" align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="classsf_1_1ThreadLocal.htm#aef35a39686eac4b6634a6e5605aacfd7">getValue</a> () const </td></tr>
<tr class="memdesc:aef35a39686eac4b6634a6e5605aacfd7"><td class="mdescLeft"> </td><td class="mdescRight">Retrieve the thread-specific value of the variable.  <a href="#aef35a39686eac4b6634a6e5605aacfd7"></a><br/></td></tr>
<tr class="separator:aef35a39686eac4b6634a6e5605aacfd7"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template<typename T><br/>
class sf::ThreadLocalPtr< T ></h3>
 
<p>Pointer to a thread-local variable. </p>
<p><a class="el" href="classsf_1_1ThreadLocalPtr.htm" title="Pointer to a thread-local variable.">sf::ThreadLocalPtr</a> is a type-safe wrapper for storing pointers to thread-local variables.</p>
<p>A thread-local variable holds a different value for each different thread, unlike normal variable that are shared.</p>
<p>Its usage is completely transparent, so that it is similar to manipulating the raw pointer directly (like any smart pointer).</p>
<p>Usage example: </p>
<div class="fragment"><div class="line">MyClass object1;</div>
<div class="line">MyClass object2;</div>
<div class="line"><a class="code" href="classsf_1_1ThreadLocalPtr.htm" title="Pointer to a thread-local variable.">sf::ThreadLocalPtr<MyClass></a> objectPtr;</div>
<div class="line"></div>
<div class="line"><span class="keywordtype">void</span> thread1()</div>
<div class="line">{</div>
<div class="line">    objectPtr = &object1; <span class="comment">// doesn't impact thread2</span></div>
<div class="line">    ...</div>
<div class="line">}</div>
<div class="line"></div>
<div class="line"><span class="keywordtype">void</span> thread2()</div>
<div class="line">{</div>
<div class="line">    objectPtr = &object2; <span class="comment">// doesn't impact thread1</span></div>
<div class="line">    ...</div>
<div class="line">}</div>
<div class="line"></div>
<div class="line"><span class="keywordtype">int</span> main()</div>
<div class="line">{</div>
<div class="line">    <span class="comment">// Create and launch the two threads</span></div>
<div class="line">    <a class="code" href="classsf_1_1Thread.htm" title="Utility class to manipulate threads.">sf::Thread</a> t1(&thread1);</div>
<div class="line">    <a class="code" href="classsf_1_1Thread.htm" title="Utility class to manipulate threads.">sf::Thread</a> t2(&thread2);</div>
<div class="line">    t1.launch();</div>
<div class="line">    t2.launch();</div>
<div class="line"></div>
<div class="line">    <span class="keywordflow">return</span> 0;</div>
<div class="line">}</div>
</div><!-- fragment --><p><a class="el" href="classsf_1_1ThreadLocalPtr.htm" title="Pointer to a thread-local variable.">ThreadLocalPtr</a> is designed for internal use; however you can use it if you feel like it fits well your implementation. </p>
 
<p>Definition at line <a class="el" href="ThreadLocalPtr_8hpp_source.htm#l00041">41</a> of file <a class="el" href="ThreadLocalPtr_8hpp_source.htm">ThreadLocalPtr.hpp</a>.</p>
</div><h2 class="groupheader">Constructor & Destructor Documentation</h2>
<a class="anchor" id="a8c678211d7828d2a8c41cb534422d649"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template<typename T > </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classsf_1_1ThreadLocalPtr.htm">sf::ThreadLocalPtr</a>< T >::<a class="el" href="classsf_1_1ThreadLocalPtr.htm">ThreadLocalPtr</a> </td>
          <td>(</td>
          <td class="paramtype">T * </td>
          <td class="paramname"><em>value</em> = <code>NULL</code></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
 
<p>Default constructor. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">value</td><td>Optional value to initalize the variable </td></tr>
  </table>
  </dd>
</dl>
 
<p>Definition at line <a class="el" href="ThreadLocalPtr_8inl_source.htm#l00030">30</a> of file <a class="el" href="ThreadLocalPtr_8inl_source.htm">ThreadLocalPtr.inl</a>.</p>
 
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="ab4a6a341c26b58f0ed3ef86502bd9572"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template<typename T > </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classsf_1_1ThreadLocalPtr.htm">sf::ThreadLocalPtr</a>< T >::operator T * </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">
 
<p>Cast operator to implicitely convert the pointer to its raw pointer type (T*) </p>
<dl class="section return"><dt>Returns</dt><dd>Pointer to the actual object </dd></dl>
 
<p>Definition at line <a class="el" href="ThreadLocalPtr_8inl_source.htm#l00054">54</a> of file <a class="el" href="ThreadLocalPtr_8inl_source.htm">ThreadLocalPtr.inl</a>.</p>
 
</div>
</div>
<a class="anchor" id="aa3bac9a08e8739613961659d10e0fadd"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template<typename T > </div>
      <table class="memname">
        <tr>
          <td class="memname">T & <a class="el" href="classsf_1_1ThreadLocalPtr.htm">sf::ThreadLocalPtr</a>< T >::operator* </td>
          <td>(</td>
          <td class="paramname"></td><td>)</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="section return"><dt>Returns</dt><dd>Reference to the pointed object </dd></dl>
 
<p>Definition at line <a class="el" href="ThreadLocalPtr_8inl_source.htm#l00038">38</a> of file <a class="el" href="ThreadLocalPtr_8inl_source.htm">ThreadLocalPtr.inl</a>.</p>
 
</div>
</div>
<a class="anchor" id="aa0b559f78929b22cb2585cb2966edfb2"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template<typename T > </div>
      <table class="memname">
        <tr>
          <td class="memname">T * <a class="el" href="classsf_1_1ThreadLocalPtr.htm">sf::ThreadLocalPtr</a>< T >::operator-> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">
 
<p>Overload of operator -> </p>
<p>Like raw pointers, applying the -> operator returns the pointed object.</p>
<dl class="section return"><dt>Returns</dt><dd>Pointed object </dd></dl>
 
<p>Definition at line <a class="el" href="ThreadLocalPtr_8inl_source.htm#l00046">46</a> of file <a class="el" href="ThreadLocalPtr_8inl_source.htm">ThreadLocalPtr.inl</a>.</p>
 
</div>
</div>
<a class="anchor" id="a14dcf1cdf5f6b3bcdd633014b2b671f5"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template<typename T > </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classsf_1_1ThreadLocalPtr.htm">ThreadLocalPtr</a>< T > & <a class="el" href="classsf_1_1ThreadLocalPtr.htm">sf::ThreadLocalPtr</a>< T >::operator= </td>
          <td>(</td>
          <td class="paramtype">T * </td>
          <td class="paramname"><em>value</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
 
<p>Assignment operator for a raw pointer parameter. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">value</td><td>Pointer to assign</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Reference to self </dd></dl>
 
<p>Definition at line <a class="el" href="ThreadLocalPtr_8inl_source.htm#l00062">62</a> of file <a class="el" href="ThreadLocalPtr_8inl_source.htm">ThreadLocalPtr.inl</a>.</p>
 
</div>
</div>
<a class="anchor" id="a6792a6a808af06f0d13e3ceecf2fc947"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template<typename T > </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classsf_1_1ThreadLocalPtr.htm">ThreadLocalPtr</a>< T > & <a class="el" href="classsf_1_1ThreadLocalPtr.htm">sf::ThreadLocalPtr</a>< T >::operator= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classsf_1_1ThreadLocalPtr.htm">ThreadLocalPtr</a>< T > & </td>
          <td class="paramname"><em>right</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
 
<p>Assignment operator for a <a class="el" href="classsf_1_1ThreadLocalPtr.htm" title="Pointer to a thread-local variable.">ThreadLocalPtr</a> parameter. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">right</td><td><a class="el" href="classsf_1_1ThreadLocalPtr.htm" title="Pointer to a thread-local variable.">ThreadLocalPtr</a> to assign</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Reference to self </dd></dl>
 
<p>Definition at line <a class="el" href="ThreadLocalPtr_8inl_source.htm#l00071">71</a> of file <a class="el" href="ThreadLocalPtr_8inl_source.htm">ThreadLocalPtr.inl</a>.</p>
 
</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li><a class="el" href="ThreadLocalPtr_8hpp_source.htm">ThreadLocalPtr.hpp</a></li>
<li><a class="el" href="ThreadLocalPtr_8inl_source.htm">ThreadLocalPtr.inl</a></li>
</ul>
</div><!-- contents -->
        </div>
        <div id="footer-container">
            <div id="footer">
                Copyright � Laurent Gomila  :: 
                Documentation generated by <a href="http://www.doxygen.org/" title="doxygen website">doxygen</a>  :: 
            </div>
        </div>
    <script>
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
 
  ga('create', 'UA-41898676-1', 'srchub.org');
  ga('send', 'pageview');
Page rendered in 1.15933s using 11 queries.
Source at commit tip created 11 years 11 months ago.
By Nathan Adams, Initial commit

Archive Download this file

Branches

Tags

Page rendered in 1.15933s using 11 queries.