| <!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>activemq-cpp-3.4.0: decaf::util::concurrent::Mutex Class Reference</title> |
| <link href="tabs.css" rel="stylesheet" type="text/css"/> |
| <link href="navtree.css" rel="stylesheet" type="text/css"/> |
| <script type="text/javascript" src="jquery.js"></script> |
| <script type="text/javascript" src="navtree.js"></script> |
| <script type="text/javascript" src="resize.js"></script> |
| <script type="text/javascript"> |
| $(document).ready(initResizable); |
| </script> |
| <link href="doxygen.css" rel="stylesheet" type="text/css"/> |
| </head> |
| <body> |
| <!-- Generated by Doxygen 1.7.3 --> |
| <div id="top"> |
| <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.4.0</div> |
| </td> |
| </tr> |
| </tbody> |
| </table> |
| </div> |
| <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 class="current"><a href="annotated.html"><span>Data Structures</span></a></li> |
| <li><a href="files.html"><span>Files</span></a></li> |
| </ul> |
| </div> |
| <div id="navrow2" class="tabs2"> |
| <ul class="tablist"> |
| <li><a href="annotated.html"><span>Data Structures</span></a></li> |
| <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li> |
| <li><a href="functions.html"><span>Data Fields</span></a></li> |
| </ul> |
| </div> |
| </div> |
| <div id="side-nav" class="ui-resizable side-nav-resizable"> |
| <div id="nav-tree"> |
| <div id="nav-tree-contents"> |
| </div> |
| </div> |
| <div id="splitbar" style="-moz-user-select:none;" |
| class="ui-resizable-handle"> |
| </div> |
| </div> |
| <script type="text/javascript"> |
| initNavTree('classdecaf_1_1util_1_1concurrent_1_1_mutex.html',''); |
| </script> |
| <div id="doc-content"> |
| <div class="header"> |
| <div class="summary"> |
| <a href="#pub-methods">Public Member Functions</a> </div> |
| <div class="headertitle"> |
| <h1>decaf::util::concurrent::Mutex Class Reference</h1> </div> |
| </div> |
| <div class="contents"> |
| <!-- doxytag: class="decaf::util::concurrent::Mutex" --><!-- doxytag: inherits="decaf::util::concurrent::Synchronizable" --> |
| <p><a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_mutex.html" title="Mutex object that offers recursive support on all platforms as well as providing the ability to use t...">Mutex</a> object that offers recursive support on all platforms as well as providing the ability to use the standard wait / notify pattern used in languages like Java. |
| <a href="#_details">More...</a></p> |
| |
| <p><code>#include <<a class="el" href="_mutex_8h_source.html">src/main/decaf/util/concurrent/Mutex.h</a>></code></p> |
| <div class="dynheader"> |
| Inheritance diagram for decaf::util::concurrent::Mutex:</div> |
| <div class="dyncontent"> |
| <div class="center"><img src="classdecaf_1_1util_1_1concurrent_1_1_mutex__inherit__graph.png" border="0" usemap="#decaf_1_1util_1_1concurrent_1_1_mutex_inherit__map" alt="Inheritance graph"/></div> |
| <map name="decaf_1_1util_1_1concurrent_1_1_mutex_inherit__map" id="decaf_1_1util_1_1concurrent_1_1_mutex_inherit__map"> |
| <area shape="rect" id="node2" href="classdecaf_1_1util_1_1concurrent_1_1_synchronizable.html" title="The interface for all synchronizable objects (that is, objects that can be locked and unlocked)..." alt="" coords="5,5,291,35"/></map> |
| <center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div> |
| <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"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_mutex.html#acbc3d03d201ce40764ff28a7a13cf7e6">Mutex</a> ()</td></tr> |
| <tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_mutex.html#a264d42efd0c6fa1e7b3221bd0f51d13d">Mutex</a> (const std::string &name)</td></tr> |
| <tr><td class="memItemLeft" align="right" valign="top">virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_mutex.html#a69a1139fdbcfd16561d0f0fe7556e7c4">~Mutex</a> ()</td></tr> |
| <tr><td class="memItemLeft" align="right" valign="top">std::string </td><td class="memItemRight" valign="bottom"><a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_mutex.html#ae9f28b272566099f3db5b416d1a4312d">getName</a> () const </td></tr> |
| <tr><td class="memItemLeft" align="right" valign="top">std::string </td><td class="memItemRight" valign="bottom"><a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_mutex.html#aec320403573cf818a5d44b2ebb3cbfc9">toString</a> () const </td></tr> |
| <tr><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_mutex.html#a4e78aab407b995ebae8b6726c8e64a10">lock</a> ()</td></tr> |
| <tr><td class="mdescLeft"> </td><td class="mdescRight">Locks the object. <a href="#a4e78aab407b995ebae8b6726c8e64a10"></a><br/></td></tr> |
| <tr><td class="memItemLeft" align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_mutex.html#a8559b3d5780c8cd94e20e4139a1a5478">tryLock</a> ()</td></tr> |
| <tr><td class="mdescLeft"> </td><td class="mdescRight">Attempts to <a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_lock.html" title="A wrapper class around a given synchronization mechanism that provides automatic release upon destruc...">Lock</a> the object, if the lock is already held by another thread than this method returns false. <a href="#a8559b3d5780c8cd94e20e4139a1a5478"></a><br/></td></tr> |
| <tr><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_mutex.html#a8f48a6e492a7cbfd1db7355725f29f14">unlock</a> ()</td></tr> |
| <tr><td class="mdescLeft"> </td><td class="mdescRight">Unlocks the object. <a href="#a8f48a6e492a7cbfd1db7355725f29f14"></a><br/></td></tr> |
| <tr><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_mutex.html#aaaefb431e14629e3ccee7fa6136e9176">wait</a> ()</td></tr> |
| <tr><td class="mdescLeft"> </td><td class="mdescRight">Waits on a signal from this object, which is generated by a call to Notify. <a href="#aaaefb431e14629e3ccee7fa6136e9176"></a><br/></td></tr> |
| <tr><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_mutex.html#a37d7d4b88e538ca30940400c7a3659f7">wait</a> (long long millisecs)</td></tr> |
| <tr><td class="mdescLeft"> </td><td class="mdescRight">Waits on a signal from this object, which is generated by a call to Notify. <a href="#a37d7d4b88e538ca30940400c7a3659f7"></a><br/></td></tr> |
| <tr><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_mutex.html#a328a4738a2c36301078ebb0fabc2c37d">wait</a> (long long millisecs, int nanos)</td></tr> |
| <tr><td class="mdescLeft"> </td><td class="mdescRight">Waits on a signal from this object, which is generated by a call to Notify. <a href="#a328a4738a2c36301078ebb0fabc2c37d"></a><br/></td></tr> |
| <tr><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_mutex.html#abcf102f6b622c0e22dc8e30f3bf0d965">notify</a> ()</td></tr> |
| <tr><td class="mdescLeft"> </td><td class="mdescRight">Signals a waiter on this object that it can now wake up and continue. <a href="#abcf102f6b622c0e22dc8e30f3bf0d965"></a><br/></td></tr> |
| <tr><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_mutex.html#a5a0d0f047f4783bb3cc6ab9364452ac7">notifyAll</a> ()</td></tr> |
| <tr><td class="mdescLeft"> </td><td class="mdescRight">Signals the waiters on this object that it can now wake up and continue. <a href="#a5a0d0f047f4783bb3cc6ab9364452ac7"></a><br/></td></tr> |
| </table> |
| <hr/><a name="_details"></a><h2>Detailed Description</h2> |
| <div class="textblock"><p><a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_mutex.html" title="Mutex object that offers recursive support on all platforms as well as providing the ability to use t...">Mutex</a> object that offers recursive support on all platforms as well as providing the ability to use the standard wait / notify pattern used in languages like Java. </p> |
| <dl class="since"><dt><b>Since:</b></dt><dd>1.0 </dd></dl> |
| </div><hr/><h2>Constructor & Destructor Documentation</h2> |
| <a class="anchor" id="acbc3d03d201ce40764ff28a7a13cf7e6"></a><!-- doxytag: member="decaf::util::concurrent::Mutex::Mutex" ref="acbc3d03d201ce40764ff28a7a13cf7e6" args="()" --> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">decaf::util::concurrent::Mutex::Mutex </td> |
| <td>(</td> |
| <td class="paramname"></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div> |
| <div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a264d42efd0c6fa1e7b3221bd0f51d13d"></a><!-- doxytag: member="decaf::util::concurrent::Mutex::Mutex" ref="a264d42efd0c6fa1e7b3221bd0f51d13d" args="(const std::string &name)" --> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">decaf::util::concurrent::Mutex::Mutex </td> |
| <td>(</td> |
| <td class="paramtype">const std::string & </td> |
| <td class="paramname"><em>name</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div> |
| <div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a69a1139fdbcfd16561d0f0fe7556e7c4"></a><!-- doxytag: member="decaf::util::concurrent::Mutex::~Mutex" ref="a69a1139fdbcfd16561d0f0fe7556e7c4" args="()" --> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">virtual decaf::util::concurrent::Mutex::~Mutex </td> |
| <td>(</td> |
| <td class="paramname"></td><td>)</td> |
| <td><code> [virtual]</code></td> |
| </tr> |
| </table> |
| </div> |
| <div class="memdoc"> |
| |
| </div> |
| </div> |
| <hr/><h2>Member Function Documentation</h2> |
| <a class="anchor" id="ae9f28b272566099f3db5b416d1a4312d"></a><!-- doxytag: member="decaf::util::concurrent::Mutex::getName" ref="ae9f28b272566099f3db5b416d1a4312d" args="() const " --> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">std::string decaf::util::concurrent::Mutex::getName </td> |
| <td>(</td> |
| <td class="paramname"></td><td>)</td> |
| <td> const</td> |
| </tr> |
| </table> |
| </div> |
| <div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a4e78aab407b995ebae8b6726c8e64a10"></a><!-- doxytag: member="decaf::util::concurrent::Mutex::lock" ref="a4e78aab407b995ebae8b6726c8e64a10" args="()" --> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">virtual void decaf::util::concurrent::Mutex::lock </td> |
| <td>(</td> |
| <td class="paramname"></td><td>)</td> |
| <td><code> [virtual]</code></td> |
| </tr> |
| </table> |
| </div> |
| <div class="memdoc"> |
| |
| <p>Locks the object. </p> |
| <dl><dt><b>Exceptions:</b></dt><dd> |
| <table class="exception"> |
| <tr><td class="paramname">RuntimeException</td><td>if an error occurs while locking the object. </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| <p>Implements <a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_synchronizable.html#aeff8d806ec08a8ebef540fc059947c48">decaf::util::concurrent::Synchronizable</a>.</p> |
| |
| <p>Referenced by <a class="el" href="classdecaf_1_1util_1_1_stl_queue.html#a2cdea1cdd8c7944295c0f06079e8089c">decaf::util::StlQueue< T >::lock()</a>, <a class="el" href="classdecaf_1_1util_1_1_stl_map.html#a09ad551150779e19be31397798327815">decaf::util::StlMap< std::string, cms::Topic * >::lock()</a>, <a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_copy_on_write_array_list.html#a6057a5c7d3843eefd2731e4f5a618283">decaf::util::concurrent::CopyOnWriteArrayList< ServiceListener * >::lock()</a>, <a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_stl_map.html#a073167095bfa87791221ea5a05b456a6">decaf::util::concurrent::ConcurrentStlMap< Pointer< ProducerId >, Pointer< ProducerState >, ProducerId::COMPARATOR >::lock()</a>, and <a class="el" href="classdecaf_1_1util_1_1_abstract_collection.html#a58b06349287bdd9cbf2f84aa7dcff7ba">decaf::util::AbstractCollection< cms::Connection * >::lock()</a>.</p> |
| |
| </div> |
| </div> |
| <a class="anchor" id="abcf102f6b622c0e22dc8e30f3bf0d965"></a><!-- doxytag: member="decaf::util::concurrent::Mutex::notify" ref="abcf102f6b622c0e22dc8e30f3bf0d965" args="()" --> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">virtual void decaf::util::concurrent::Mutex::notify </td> |
| <td>(</td> |
| <td class="paramname"></td><td>)</td> |
| <td><code> [virtual]</code></td> |
| </tr> |
| </table> |
| </div> |
| <div class="memdoc"> |
| |
| <p>Signals a waiter on this object that it can now wake up and continue. </p> |
| <p>Must have this object locked before calling.</p> |
| <dl><dt><b>Exceptions:</b></dt><dd> |
| <table class="exception"> |
| <tr><td class="paramname">IllegalMonitorStateException</td><td>- if the current thread is not the owner of the the <a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_synchronizable.html" title="The interface for all synchronizable objects (that is, objects that can be locked and unlocked)...">Synchronizable</a> Object. </td></tr> |
| <tr><td class="paramname">RuntimeException</td><td>if an error occurs while notifying one of the waiting threads. </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| <p>Implements <a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_synchronizable.html#ad62b154e5f2709b5471b00da52d0ad0b">decaf::util::concurrent::Synchronizable</a>.</p> |
| |
| <p>Referenced by <a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_linked_blocking_queue.html#a0774d018b4a047a2a1313288b2f652a8">decaf::util::concurrent::LinkedBlockingQueue< E >::clear()</a>, <a class="el" href="classdecaf_1_1util_1_1_stl_queue.html#ade6c5d0ac8023550797bbe26297824fa">decaf::util::StlQueue< T >::notify()</a>, <a class="el" href="classdecaf_1_1util_1_1_stl_map.html#aab308c2e801eb7db9f16ff8848b7c77b">decaf::util::StlMap< std::string, cms::Topic * >::notify()</a>, <a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_copy_on_write_array_list.html#a8a96fc4331aa1908c1400c5ade12cb9b">decaf::util::concurrent::CopyOnWriteArrayList< ServiceListener * >::notify()</a>, <a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_stl_map.html#a2698aead7a66924c2506f1b977c5d06f">decaf::util::concurrent::ConcurrentStlMap< Pointer< ProducerId >, Pointer< ProducerState >, ProducerId::COMPARATOR >::notify()</a>, <a class="el" href="classdecaf_1_1util_1_1_abstract_collection.html#a7195f1edb2675724a361d71f281220eb">decaf::util::AbstractCollection< cms::Connection * >::notify()</a>, <a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_linked_blocking_queue.html#acc422303761c38f07b340cdc341d7149">decaf::util::concurrent::LinkedBlockingQueue< E >::offer()</a>, <a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_linked_blocking_queue.html#aa16b86e58825b1cd7ac1092e35f439ac">decaf::util::concurrent::LinkedBlockingQueue< E >::poll()</a>, <a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_linked_blocking_queue.html#a0a2bfa035134ecf04b747923fb9184c7">decaf::util::concurrent::LinkedBlockingQueue< E >::put()</a>, and <a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_linked_blocking_queue.html#a093b20a55f62e3e8cf4f81b1b9a4e5b1">decaf::util::concurrent::LinkedBlockingQueue< E >::take()</a>.</p> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a5a0d0f047f4783bb3cc6ab9364452ac7"></a><!-- doxytag: member="decaf::util::concurrent::Mutex::notifyAll" ref="a5a0d0f047f4783bb3cc6ab9364452ac7" args="()" --> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">virtual void decaf::util::concurrent::Mutex::notifyAll </td> |
| <td>(</td> |
| <td class="paramname"></td><td>)</td> |
| <td><code> [virtual]</code></td> |
| </tr> |
| </table> |
| </div> |
| <div class="memdoc"> |
| |
| <p>Signals the waiters on this object that it can now wake up and continue. </p> |
| <p>Must have this object locked before calling.</p> |
| <dl><dt><b>Exceptions:</b></dt><dd> |
| <table class="exception"> |
| <tr><td class="paramname">IllegalMonitorStateException</td><td>- if the current thread is not the owner of the the <a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_synchronizable.html" title="The interface for all synchronizable objects (that is, objects that can be locked and unlocked)...">Synchronizable</a> Object. </td></tr> |
| <tr><td class="paramname">RuntimeException</td><td>if an error occurs while notifying the waiting threads. </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| <p>Implements <a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_synchronizable.html#aa3af140ed7eded4f7ff59833c0bc619a">decaf::util::concurrent::Synchronizable</a>.</p> |
| |
| <p>Referenced by <a class="el" href="classdecaf_1_1util_1_1_stl_queue.html#aa11de7a3bbc8ab952ba46372825f1e64">decaf::util::StlQueue< T >::notifyAll()</a>, <a class="el" href="classdecaf_1_1util_1_1_stl_map.html#a6bd7d94d49842f75b18344930b75d3c2">decaf::util::StlMap< std::string, cms::Topic * >::notifyAll()</a>, <a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_copy_on_write_array_list.html#a935ef769776ea3e5ef0784e15c7b9982">decaf::util::concurrent::CopyOnWriteArrayList< ServiceListener * >::notifyAll()</a>, <a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_stl_map.html#aaf31f790c9ac4c0b87fda6f5adea6f45">decaf::util::concurrent::ConcurrentStlMap< Pointer< ProducerId >, Pointer< ProducerState >, ProducerId::COMPARATOR >::notifyAll()</a>, and <a class="el" href="classdecaf_1_1util_1_1_abstract_collection.html#af53d06c51e7aa21f9a30acc4ae31e783">decaf::util::AbstractCollection< cms::Connection * >::notifyAll()</a>.</p> |
| |
| </div> |
| </div> |
| <a class="anchor" id="aec320403573cf818a5d44b2ebb3cbfc9"></a><!-- doxytag: member="decaf::util::concurrent::Mutex::toString" ref="aec320403573cf818a5d44b2ebb3cbfc9" args="() const " --> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">std::string decaf::util::concurrent::Mutex::toString </td> |
| <td>(</td> |
| <td class="paramname"></td><td>)</td> |
| <td> const</td> |
| </tr> |
| </table> |
| </div> |
| <div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a8559b3d5780c8cd94e20e4139a1a5478"></a><!-- doxytag: member="decaf::util::concurrent::Mutex::tryLock" ref="a8559b3d5780c8cd94e20e4139a1a5478" args="()" --> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">virtual bool decaf::util::concurrent::Mutex::tryLock </td> |
| <td>(</td> |
| <td class="paramname"></td><td>)</td> |
| <td><code> [virtual]</code></td> |
| </tr> |
| </table> |
| </div> |
| <div class="memdoc"> |
| |
| <p>Attempts to <a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_lock.html" title="A wrapper class around a given synchronization mechanism that provides automatic release upon destruc...">Lock</a> the object, if the lock is already held by another thread than this method returns false. </p> |
| <dl class="return"><dt><b>Returns:</b></dt><dd>true if the lock was acquired, false if it is already held by another thread.</dd></dl> |
| <dl><dt><b>Exceptions:</b></dt><dd> |
| <table class="exception"> |
| <tr><td class="paramname">RuntimeException</td><td>if an error occurs while locking the object. </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| <p>Implements <a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_synchronizable.html#a6aa79e4c2590ec4387d7bb2b7d265c47">decaf::util::concurrent::Synchronizable</a>.</p> |
| |
| <p>Referenced by <a class="el" href="classdecaf_1_1util_1_1_stl_queue.html#aacfbedfd89b1736474e7128cc40c6ece">decaf::util::StlQueue< T >::tryLock()</a>, <a class="el" href="classdecaf_1_1util_1_1_stl_map.html#a2c4a4cf44898d7bad58efbf0a7540d6b">decaf::util::StlMap< std::string, cms::Topic * >::tryLock()</a>, <a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_copy_on_write_array_list.html#aef1ce4a7101e660b9f4016e3fe28958b">decaf::util::concurrent::CopyOnWriteArrayList< ServiceListener * >::tryLock()</a>, <a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_stl_map.html#aef127a8c60fc98306a1bca88bd8e4e99">decaf::util::concurrent::ConcurrentStlMap< Pointer< ProducerId >, Pointer< ProducerState >, ProducerId::COMPARATOR >::tryLock()</a>, and <a class="el" href="classdecaf_1_1util_1_1_abstract_collection.html#adbd1278f965b7205dc8e8f89fc82872e">decaf::util::AbstractCollection< cms::Connection * >::tryLock()</a>.</p> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a8f48a6e492a7cbfd1db7355725f29f14"></a><!-- doxytag: member="decaf::util::concurrent::Mutex::unlock" ref="a8f48a6e492a7cbfd1db7355725f29f14" args="()" --> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">virtual void decaf::util::concurrent::Mutex::unlock </td> |
| <td>(</td> |
| <td class="paramname"></td><td>)</td> |
| <td><code> [virtual]</code></td> |
| </tr> |
| </table> |
| </div> |
| <div class="memdoc"> |
| |
| <p>Unlocks the object. </p> |
| <dl><dt><b>Exceptions:</b></dt><dd> |
| <table class="exception"> |
| <tr><td class="paramname">RuntimeException</td><td>if an error occurs while unlocking the object. </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| <p>Implements <a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_synchronizable.html#aabb6c431936a7d4c9810a5f1a99bde21">decaf::util::concurrent::Synchronizable</a>.</p> |
| |
| <p>Referenced by <a class="el" href="classdecaf_1_1util_1_1_stl_queue.html#a59cdf5e83458e4a888bb5c0c3c57b24c">decaf::util::StlQueue< T >::unlock()</a>, <a class="el" href="classdecaf_1_1util_1_1_stl_map.html#ac1805f329822042c886bdc370363c7dc">decaf::util::StlMap< std::string, cms::Topic * >::unlock()</a>, <a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_copy_on_write_array_list.html#a3f16177058f4033cf60af91c1d88faa1">decaf::util::concurrent::CopyOnWriteArrayList< ServiceListener * >::unlock()</a>, <a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_stl_map.html#aaca964c3a28ced48573f2ffda4097daa">decaf::util::concurrent::ConcurrentStlMap< Pointer< ProducerId >, Pointer< ProducerState >, ProducerId::COMPARATOR >::unlock()</a>, and <a class="el" href="classdecaf_1_1util_1_1_abstract_collection.html#a38970b1447b07759aec046c3a57c53e1">decaf::util::AbstractCollection< cms::Connection * >::unlock()</a>.</p> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a328a4738a2c36301078ebb0fabc2c37d"></a><!-- doxytag: member="decaf::util::concurrent::Mutex::wait" ref="a328a4738a2c36301078ebb0fabc2c37d" args="(long long millisecs, int nanos)" --> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">virtual void decaf::util::concurrent::Mutex::wait </td> |
| <td>(</td> |
| <td class="paramtype">long long </td> |
| <td class="paramname"><em>millisecs</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int </td> |
| <td class="paramname"><em>nanos</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td><code> [virtual]</code></td> |
| </tr> |
| </table> |
| </div> |
| <div class="memdoc"> |
| |
| <p>Waits on a signal from this object, which is generated by a call to Notify. </p> |
| <p>Must have this object locked before calling. This wait will timeout after the specified time interval. This method is similar to the one argument wait function except that it add a finer grained control over the amount of time that it waits by adding in the additional nanosecond argument.</p> |
| <p>NOTE: The ability to wait accurately at a nanosecond scale depends on the platform and OS that the Decaf API is running on, some systems do not provide an accurate enough clock to provide this level of granularity.</p> |
| <dl><dt><b>Parameters:</b></dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">millisecs</td><td>the time in milliseconds to wait, or WAIT_INIFINITE </td></tr> |
| <tr><td class="paramname">nanos</td><td>additional time in nanoseconds with a range of 0-999999</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl><dt><b>Exceptions:</b></dt><dd> |
| <table class="exception"> |
| <tr><td class="paramname">IllegalArgumentException</td><td>if an error occurs or the nanos argument is not in the range of [0-999999] </td></tr> |
| <tr><td class="paramname">RuntimeException</td><td>if an error occurs while waiting on the object. </td></tr> |
| <tr><td class="paramname">InterruptedException</td><td>if the wait is interrupted before it completes. </td></tr> |
| <tr><td class="paramname">IllegalMonitorStateException</td><td>- if the current thread is not the owner of the the <a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_synchronizable.html" title="The interface for all synchronizable objects (that is, objects that can be locked and unlocked)...">Synchronizable</a> Object. </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| <p>Implements <a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_synchronizable.html#a954b500f0e3cba3a366da91e210893ea">decaf::util::concurrent::Synchronizable</a>.</p> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a37d7d4b88e538ca30940400c7a3659f7"></a><!-- doxytag: member="decaf::util::concurrent::Mutex::wait" ref="a37d7d4b88e538ca30940400c7a3659f7" args="(long long millisecs)" --> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">virtual void decaf::util::concurrent::Mutex::wait </td> |
| <td>(</td> |
| <td class="paramtype">long long </td> |
| <td class="paramname"><em>millisecs</em></td><td>)</td> |
| <td><code> [virtual]</code></td> |
| </tr> |
| </table> |
| </div> |
| <div class="memdoc"> |
| |
| <p>Waits on a signal from this object, which is generated by a call to Notify. </p> |
| <p>Must have this object locked before calling. This wait will timeout after the specified time interval.</p> |
| <dl><dt><b>Parameters:</b></dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">millisecs</td><td>the time in milliseconds to wait, or WAIT_INIFINITE</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl><dt><b>Exceptions:</b></dt><dd> |
| <table class="exception"> |
| <tr><td class="paramname">RuntimeException</td><td>if an error occurs while waiting on the object. </td></tr> |
| <tr><td class="paramname">InterruptedException</td><td>if the wait is interrupted before it completes. </td></tr> |
| <tr><td class="paramname">IllegalMonitorStateException</td><td>- if the current thread is not the owner of the the <a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_synchronizable.html" title="The interface for all synchronizable objects (that is, objects that can be locked and unlocked)...">Synchronizable</a> Object. </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| <p>Implements <a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_synchronizable.html#a84939d5f17b846ba0aeb5824ec6fff41">decaf::util::concurrent::Synchronizable</a>.</p> |
| |
| </div> |
| </div> |
| <a class="anchor" id="aaaefb431e14629e3ccee7fa6136e9176"></a><!-- doxytag: member="decaf::util::concurrent::Mutex::wait" ref="aaaefb431e14629e3ccee7fa6136e9176" args="()" --> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">virtual void decaf::util::concurrent::Mutex::wait </td> |
| <td>(</td> |
| <td class="paramname"></td><td>)</td> |
| <td><code> [virtual]</code></td> |
| </tr> |
| </table> |
| </div> |
| <div class="memdoc"> |
| |
| <p>Waits on a signal from this object, which is generated by a call to Notify. </p> |
| <p>Must have this object locked before calling.</p> |
| <dl><dt><b>Exceptions:</b></dt><dd> |
| <table class="exception"> |
| <tr><td class="paramname">RuntimeException</td><td>if an error occurs while waiting on the object. </td></tr> |
| <tr><td class="paramname">InterruptedException</td><td>if the wait is interrupted before it completes. </td></tr> |
| <tr><td class="paramname">IllegalMonitorStateException</td><td>- if the current thread is not the owner of the the <a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_synchronizable.html" title="The interface for all synchronizable objects (that is, objects that can be locked and unlocked)...">Synchronizable</a> Object. </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| <p>Implements <a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_synchronizable.html#a2f7a5619b8800c295626983b9c7808a6">decaf::util::concurrent::Synchronizable</a>.</p> |
| |
| <p>Referenced by <a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_linked_blocking_queue.html#acc422303761c38f07b340cdc341d7149">decaf::util::concurrent::LinkedBlockingQueue< E >::offer()</a>, <a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_linked_blocking_queue.html#aa16b86e58825b1cd7ac1092e35f439ac">decaf::util::concurrent::LinkedBlockingQueue< E >::poll()</a>, <a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_linked_blocking_queue.html#a0a2bfa035134ecf04b747923fb9184c7">decaf::util::concurrent::LinkedBlockingQueue< E >::put()</a>, <a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_linked_blocking_queue.html#a093b20a55f62e3e8cf4f81b1b9a4e5b1">decaf::util::concurrent::LinkedBlockingQueue< E >::take()</a>, <a class="el" href="classdecaf_1_1util_1_1_stl_queue.html#a59c25e1831c3dbaff3a7399a02ef9462">decaf::util::StlQueue< T >::wait()</a>, <a class="el" href="classdecaf_1_1util_1_1_stl_map.html#af68e83ea9c0e681b7c0b6bf6520d0618">decaf::util::StlMap< std::string, cms::Topic * >::wait()</a>, <a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_copy_on_write_array_list.html#a1f26546287ed7fdb8445270ef93706c9">decaf::util::concurrent::CopyOnWriteArrayList< ServiceListener * >::wait()</a>, <a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_stl_map.html#a7639da4f97d5523a8def1896f3a2cb28">decaf::util::concurrent::ConcurrentStlMap< Pointer< ProducerId >, Pointer< ProducerState >, ProducerId::COMPARATOR >::wait()</a>, and <a class="el" href="classdecaf_1_1util_1_1_abstract_collection.html#a5f5d42c10b67b8268e662d77d6587a04">decaf::util::AbstractCollection< cms::Connection * >::wait()</a>.</p> |
| |
| </div> |
| </div> |
| <hr/>The documentation for this class was generated from the following file:<ul> |
| <li>src/main/decaf/util/concurrent/<a class="el" href="_mutex_8h_source.html">Mutex.h</a></li> |
| </ul> |
| </div> |
| </div> |
| <div id="nav-path" class="navpath"> |
| <ul> |
| <li class="navelem"><a class="el" href="namespacedecaf.html">decaf</a> </li> |
| <li class="navelem"><a class="el" href="namespacedecaf_1_1util.html">util</a> </li> |
| <li class="navelem"><a class="el" href="namespacedecaf_1_1util_1_1concurrent.html">concurrent</a> </li> |
| <li class="navelem"><a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_mutex.html">Mutex</a> </li> |
| <li class="footer">Generated on Mon Apr 25 2011 for activemq-cpp-3.4.0 by  |
| <a href="http://www.doxygen.org/index.html"> |
| <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li> |
| </ul> |
| </div> |
| |
| </body> |
| </html> |