| <!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"/> |
| <meta http-equiv="X-UA-Compatible" content="IE=9"/> |
| <meta name="generator" content="Doxygen 1.8.7"/> |
| <title>activemq-cpp-3.9.0: src/main/decaf/util/concurrent/Concurrent.h File Reference</title> |
| <link href="tabs.css" rel="stylesheet" type="text/css"/> |
| <script type="text/javascript" src="jquery.js"></script> |
| <script type="text/javascript" src="dynsections.js"></script> |
| <link href="navtree.css" rel="stylesheet" type="text/css"/> |
| <script type="text/javascript" src="resize.js"></script> |
| <script type="text/javascript" src="navtree.js"></script> |
| <script type="text/javascript"> |
| $(document).ready(initResizable); |
| $(window).load(resizeHeight); |
| </script> |
| <link href="doxygen.css" rel="stylesheet" type="text/css" /> |
| </head> |
| <body> |
| <div id="top"><!-- do not remove this div, it is closed by doxygen! --> |
| <div id="titlearea"> |
| <table cellspacing="0" cellpadding="0"> |
| <tbody> |
| <tr style="height: 56px;"> |
| <td style="padding-left: 0.5em;"> |
| <div id="projectname">activemq-cpp-3.9.0 |
| </div> |
| </td> |
| </tr> |
| </tbody> |
| </table> |
| </div> |
| <!-- end header part --> |
| <!-- Generated by Doxygen 1.8.7 --> |
| <div id="navrow1" class="tabs"> |
| <ul class="tablist"> |
| <li><a href="index.html"><span>Main Page</span></a></li> |
| <li><a href="namespaces.html"><span>Namespaces</span></a></li> |
| <li><a href="annotated.html"><span>Data Structures</span></a></li> |
| <li class="current"><a href="files.html"><span>Files</span></a></li> |
| </ul> |
| </div> |
| <div id="navrow2" class="tabs2"> |
| <ul class="tablist"> |
| <li><a href="files.html"><span>File List</span></a></li> |
| <li><a href="globals.html"><span>Globals</span></a></li> |
| </ul> |
| </div> |
| </div><!-- top --> |
| <div id="side-nav" class="ui-resizable side-nav-resizable"> |
| <div id="nav-tree"> |
| <div id="nav-tree-contents"> |
| <div id="nav-sync" class="sync"></div> |
| </div> |
| </div> |
| <div id="splitbar" style="-moz-user-select:none;" |
| class="ui-resizable-handle"> |
| </div> |
| </div> |
| <script type="text/javascript"> |
| $(document).ready(function(){initNavTree('_concurrent_8h.html','');}); |
| </script> |
| <div id="doc-content"> |
| <div class="header"> |
| <div class="summary"> |
| <a href="#namespaces">Namespaces</a> | |
| <a href="#define-members">Macros</a> </div> |
| <div class="headertitle"> |
| <div class="title">Concurrent.h File Reference</div> </div> |
| </div><!--header--> |
| <div class="contents"> |
| <div class="textblock"><code>#include <<a class="el" href="_lock_8h_source.html">decaf/util/concurrent/Lock.h</a>></code><br /> |
| </div> |
| <p><a href="_concurrent_8h_source.html">Go to the source code of this file.</a></p> |
| <table class="memberdecls"> |
| <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a> |
| Namespaces</h2></td></tr> |
| <tr class="memitem:namespacedecaf"><td class="memItemLeft" align="right" valign="top">  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacedecaf.html">decaf</a></td></tr> |
| <tr class="memdesc:namespacedecaf"><td class="mdescLeft"> </td><td class="mdescRight">Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. <br /></td></tr> |
| <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:namespacedecaf_1_1util"><td class="memItemLeft" align="right" valign="top">  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacedecaf_1_1util.html">decaf::util</a></td></tr> |
| <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:namespacedecaf_1_1util_1_1concurrent"><td class="memItemLeft" align="right" valign="top">  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacedecaf_1_1util_1_1concurrent.html">decaf::util::concurrent</a></td></tr> |
| <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> |
| </table><table class="memberdecls"> |
| <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a> |
| Macros</h2></td></tr> |
| <tr class="memitem:ad11512f6ec10794c00ef6e970f8c7649"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_concurrent_8h.html#ad11512f6ec10794c00ef6e970f8c7649">WAIT_INFINITE</a>   0xFFFFFFFF</td></tr> |
| <tr class="memdesc:ad11512f6ec10794c00ef6e970f8c7649"><td class="mdescLeft"> </td><td class="mdescRight">The synchronized macro defines a mechanism for synchronizing a section of code. <a href="#ad11512f6ec10794c00ef6e970f8c7649">More...</a><br /></td></tr> |
| <tr class="separator:ad11512f6ec10794c00ef6e970f8c7649"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a70e1fb584fb43688f5a8719b7175ae86"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_concurrent_8h.html#a70e1fb584fb43688f5a8719b7175ae86">synchronized</a>(W)</td></tr> |
| <tr class="separator:a70e1fb584fb43688f5a8719b7175ae86"><td class="memSeparator" colspan="2"> </td></tr> |
| </table> |
| <h2 class="groupheader">Macro Definition Documentation</h2> |
| <a class="anchor" id="a70e1fb584fb43688f5a8719b7175ae86"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">#define synchronized</td> |
| <td>(</td> |
| <td class="paramtype"> </td> |
| <td class="paramname">W</td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| <b>Value:</b><div class="fragment"><div class="line"><span class="keywordflow">if</span>(<span class="keyword">false</span>){} \</div> |
| <div class="line"> else \</div> |
| <div class="line"> for( <a class="code" href="classdecaf_1_1util_1_1concurrent_1_1_lock.html">decaf::util::concurrent::Lock</a> lock_W(W); \</div> |
| <div class="line"> lock_W.<a class="code" href="classdecaf_1_1util_1_1concurrent_1_1_lock.html#ad06c5e6a89953fc8b9868ffb7ce5ec20">isLocked</a>(); lock_W.unlock() )</div> |
| <div class="ttc" id="classdecaf_1_1util_1_1concurrent_1_1_lock_html_ad06c5e6a89953fc8b9868ffb7ce5ec20"><div class="ttname"><a href="classdecaf_1_1util_1_1concurrent_1_1_lock.html#ad06c5e6a89953fc8b9868ffb7ce5ec20">decaf::util::concurrent::Lock::isLocked</a></div><div class="ttdeci">bool isLocked() const </div><div class="ttdoc">Indicates whether or not the object is locked. </div><div class="ttdef"><b>Definition:</b> Lock.h:86</div></div> |
| <div class="ttc" id="classdecaf_1_1util_1_1concurrent_1_1_lock_html"><div class="ttname"><a href="classdecaf_1_1util_1_1concurrent_1_1_lock.html">decaf::util::concurrent::Lock</a></div><div class="ttdoc">A wrapper class around a given synchronization mechanism that provides automatic release upon destruc...</div><div class="ttdef"><b>Definition:</b> Lock.h:34</div></div> |
| </div><!-- fragment --> |
| </div> |
| </div> |
| <a class="anchor" id="ad11512f6ec10794c00ef6e970f8c7649"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">#define WAIT_INFINITE   0xFFFFFFFF</td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>The synchronized macro defines a mechanism for synchronizing a section of code. </p> |
| <p>The macro must be passed an object that implements the Synchronizable interface.</p> |
| <p>The macro works by creating a for loop that will loop exactly once, creating a Lock object that is scoped to the loop. Once the loop completes and exits the Lock object goes out of scope releasing the lock on object W. For added safety the if else is used because not all compiles restrict the lifetime of loop variables to the loop, they will however restrict them to the scope of the else.</p> |
| <p>The macro would be used as follows.</p> |
| <p>Synchronizable X;</p> |
| <p>somefunction() { <a class="el" href="_concurrent_8h.html#a70e1fb584fb43688f5a8719b7175ae86">synchronized(X)</a> { // Do something that needs synchronizing. } } </p> |
| |
| </div> |
| </div> |
| </div><!-- contents --> |
| </div><!-- doc-content --> |
| <!-- start footer part --> |
| <div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> |
| <ul> |
| <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_5eb159725f84c66aafd839904a4acdd0.html">main</a></li><li class="navelem"><a class="el" href="dir_13f053920e46084fbd256a40b4d27221.html">decaf</a></li><li class="navelem"><a class="el" href="dir_15ca907242872ce0b98213244791ee53.html">util</a></li><li class="navelem"><a class="el" href="dir_4dd16b2dac6bad25b30abab29dd219da.html">concurrent</a></li><li class="navelem"><a class="el" href="_concurrent_8h.html">Concurrent.h</a></li> |
| <li class="footer">Generated on Sun Aug 16 2015 17:10:34 for activemq-cpp-3.9.0 by |
| <a href="http://www.doxygen.org/index.html"> |
| <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.7 </li> |
| </ul> |
| </div> |
| </body> |
| </html> |