Sophie

Sophie

distrib > Fedora > 18 > x86_64 > by-pkgid > b3a1f4d91c26f535919e39e25606614a > files > 1580

wt-doc-3.2.3-1.fc18.noarch.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>Wt: Wt::WApplication::UpdateLock Class Reference</title>

<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />

<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>

</head>
<body>
<div id="top"><!-- do not remove this div! -->


<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  
  
  <td style="padding-left: 0.5em;">
   <div id="projectname">Wt
   &#160;<span id="projectnumber">3.2.3</span>
   </div>
   
  </td>
  
  
  
 </tr>
 </tbody>
</table>
</div>

<!-- Generated by Doxygen 1.7.5.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <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="modules.html"><span>Modules</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="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </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="namespaceWt.html">Wt</a>      </li>
      <li class="navelem"><a class="el" href="classWt_1_1WApplication.html">WApplication</a>      </li>
      <li class="navelem"><a class="el" href="classWt_1_1WApplication_1_1UpdateLock.html">UpdateLock</a>      </li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a>  </div>
  <div class="headertitle">
<div class="title">Wt::WApplication::UpdateLock Class Reference</div>  </div>
</div>
<div class="contents">
<!-- doxytag: class="Wt::WApplication::UpdateLock" -->
<p>A RAII lock for manipulating and updating the application and its widgets outside of the event loop.  
 <a href="classWt_1_1WApplication_1_1UpdateLock.html#details">More...</a></p>

<p><a href="classWt_1_1WApplication_1_1UpdateLock-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="classWt_1_1WApplication_1_1UpdateLock.html#a117c05cee4d0e9c825155d0e77ca0c16">UpdateLock</a> (<a class="el" href="classWt_1_1WApplication.html">WApplication</a> *app)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates and locks the given application.  <a href="#a117c05cee4d0e9c825155d0e77ca0c16"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1WApplication_1_1UpdateLock.html#a3c3b5a14188d11f8023fb8eb88d843a4">UpdateLock</a> (const <a class="el" href="classWt_1_1WApplication_1_1UpdateLock.html">UpdateLock</a> &amp;)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy constructor (<b>deprecated</b>).  <a href="#a3c3b5a14188d11f8023fb8eb88d843a4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1WApplication_1_1UpdateLock.html#a9141ee900b30fd0a6c62f76658024df9">operator bool</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests whether the update lock was succesfully taken.  <a href="#a9141ee900b30fd0a6c62f76658024df9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7d9898c9d19bd54675c7d178746659c0"></a><!-- doxytag: member="Wt::WApplication::UpdateLock::~UpdateLock" ref="a7d9898c9d19bd54675c7d178746659c0" args="()" -->
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1WApplication_1_1UpdateLock.html#a7d9898c9d19bd54675c7d178746659c0">~UpdateLock</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Releases the lock. <br/></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>A RAII lock for manipulating and updating the application and its widgets outside of the event loop. </p>
<p>You can use this lock to manipulate widgets outside of the event loop. Inside the event loop (including events posted using <a class="el" href="classWt_1_1WServer.html#a6115cc9ad6ec28e55fb85e32a045df88" title="Posts a function to a session.">WServer::post()</a>), this lock is already held by the library itself.</p>
<p>The lock is recursive, so trying to take a lock, while already holding a lock, will not block. </p>
</div><hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a117c05cee4d0e9c825155d0e77ca0c16"></a><!-- doxytag: member="Wt::WApplication::UpdateLock::UpdateLock" ref="a117c05cee4d0e9c825155d0e77ca0c16" args="(WApplication *app)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">Wt::WApplication::UpdateLock::UpdateLock </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classWt_1_1WApplication.html">WApplication</a> *&#160;</td>
          <td class="paramname"><em>app</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Creates and locks the given application. </p>
<p>The lock guarantees exclusive access to modify the application's state.</p>
<p>When one application <em>A</em> is trying to take the lock of an another application <em>B</em>, this lock behaves like a <a class="el" href="classWt_1_1SyncLock.html" title="An dead-lock avoidance adaptor for a Boost mutex lock.">Wt::SyncLock</a>. Thus while application <em>A</em> waits for application <em>B</em>'s update lock, application <em>B</em> or <em>C</em> may succesfully take application <em>A</em>'s update lock, in this way avoiding dead-lock situations.</p>
<p>You should also consider <a class="el" href="classWt_1_1WServer.html#a6115cc9ad6ec28e55fb85e32a045df88" title="Posts a function to a session.">WServer::post()</a> for lock-free communication between different application sessions.</p>
<p>As soon as the library decides to destroy the application, the lock will no longer succeed in taking the application lock. You can need to detect this by checking that after the lock is taken, the lock is taken: </p>
<div class="fragment"><pre class="fragment"> WApplication::UpdateLock lock(app);
 <span class="keywordflow">if</span> (lock) {
   <span class="comment">// exclusive access to app state</span>
 }
</pre></div> 
</div>
</div>
<a class="anchor" id="a3c3b5a14188d11f8023fb8eb88d843a4"></a><!-- doxytag: member="Wt::WApplication::UpdateLock::UpdateLock" ref="a3c3b5a14188d11f8023fb8eb88d843a4" args="(const UpdateLock &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">Wt::WApplication::UpdateLock::UpdateLock </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classWt_1_1WApplication_1_1UpdateLock.html">UpdateLock</a> &amp;&#160;</td>
          <td class="paramname"><em>other</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Copy constructor (<b>deprecated</b>). </p>
<p>By copying the lock, lock ownership is transferred. The original object becomes empty, and its destructor has no longer the effect of releasing the lock.</p>
<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000018">Deprecated:</a></b></dt><dd>use <a class="el" href="classWt_1_1WApplication_1_1UpdateLock.html#a117c05cee4d0e9c825155d0e77ca0c16" title="Creates and locks the given application.">UpdateLock(WApplication *)</a> instead of <a class="el" href="classWt_1_1WApplication.html#ac7582c37defc49b5e8d6ccbda3b68d45" title="Grabs and returns the lock for manipulating widgets outside the event loop (deprecated).">getUpdateLock()</a> which requires this copy. </dd></dl>

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="a9141ee900b30fd0a6c62f76658024df9"></a><!-- doxytag: member="Wt::WApplication::UpdateLock::operator bool" ref="a9141ee900b30fd0a6c62f76658024df9" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">Wt::WApplication::UpdateLock::operator bool </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Tests whether the update lock was succesfully taken. </p>
<p>This may return <code>false</code> when the library has already decided to destroy the session (but before your application finalizer/destructor has run to notify helper threads that the application is destroyed). </p>

</div>
</div>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<hr size="1"><address style="text-align: right; margin: 3px"><small>
Generated on Thu Nov 1 2012 for <a href="http://www.webtoolkit.eu/wt">the
C++ Web Toolkit (Wt)</a> by&nbsp;<a
href="http://www.doxygen.org/index.html"><img src="doxygen.png"
alt="doxygen" border="0" style="vertical-align: middle; display:
inline-block; height: 2em"></a> 1.7.5.1</small></address>
</body>
</html>