blob: 5dbe975c92638246df893120c7ef9258444e6d44 [file] [log] [blame]
<!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::ConcurrentStlMap&lt; K, V, COMPARATOR &gt; Class Template 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&#160;Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Data&#160;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&#160;Structures</span></a></li>
<li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Data&#160;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_concurrent_stl_map.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::ConcurrentStlMap&lt; K, V, COMPARATOR &gt; Class Template Reference</h1> </div>
</div>
<div class="contents">
<!-- doxytag: class="decaf::util::concurrent::ConcurrentStlMap" --><!-- doxytag: inherits="decaf::util::concurrent::ConcurrentMap" -->
<p><a class="el" href="classdecaf_1_1util_1_1_map.html" title="Map template that wraps around a std::map to provide a more user-friendly interface and to provide co...">Map</a> template that wraps around a std::map to provide a more user-friendly interface and to provide common functions that do not exist in std::map.
<a href="#_details">More...</a></p>
<p><code>#include &lt;<a class="el" href="_concurrent_stl_map_8h_source.html">src/main/decaf/util/concurrent/ConcurrentStlMap.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for decaf::util::concurrent::ConcurrentStlMap&lt; K, V, COMPARATOR &gt;:</div>
<div class="dyncontent">
<div class="center"><img src="classdecaf_1_1util_1_1concurrent_1_1_concurrent_stl_map__inherit__graph.png" border="0" usemap="#decaf_1_1util_1_1concurrent_1_1_concurrent_stl_map_3_01_k_00_01_v_00_01_c_o_m_p_a_r_a_t_o_r_01_4_inherit__map" alt="Inheritance graph"/></div>
<map name="decaf_1_1util_1_1concurrent_1_1_concurrent_stl_map_3_01_k_00_01_v_00_01_c_o_m_p_a_r_a_t_o_r_01_4_inherit__map" id="decaf_1_1util_1_1concurrent_1_1_concurrent_stl_map_3_01_k_00_01_v_00_01_c_o_m_p_a_r_a_t_o_r_01_4_inherit__map">
<area shape="rect" id="node2" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_map.html" title="Interface for a Map type that provides additional atomic putIfAbsent, remove, and replace methods alo..." alt="" coords="15,160,463,189"/><area shape="rect" id="node4" href="classdecaf_1_1util_1_1_map.html" title="Map template that wraps around a std::map to provide a more user&#45;friendly interface and to provide co..." alt="" coords="95,83,383,112"/><area shape="rect" id="node6" 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="96,5,381,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">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_stl_map.html#a72a5e5887602bee34f98d9460da0a99a">ConcurrentStlMap</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Default constructor - does nothing. <a href="#a72a5e5887602bee34f98d9460da0a99a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_stl_map.html#a692888b0c23e4f62bd26d9441679b8e7">ConcurrentStlMap</a> (const <a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_stl_map.html">ConcurrentStlMap</a> &amp;source)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy constructor - copies the content of the given map into this one. <a href="#a692888b0c23e4f62bd26d9441679b8e7"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_stl_map.html#a886ee34536d14b16dfcfef0372f110d9">ConcurrentStlMap</a> (const <a class="el" href="classdecaf_1_1util_1_1_map.html">Map</a>&lt; K, V, COMPARATOR &gt; &amp;source)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy constructor - copies the content of the given map into this one. <a href="#a886ee34536d14b16dfcfef0372f110d9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_stl_map.html#a33def96cff5bb713651ef8fe190e9285">~ConcurrentStlMap</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_stl_map.html#a08647e7e22257c2e824da6602cf7f83b">equals</a> (const <a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_stl_map.html">ConcurrentStlMap</a> &amp;source) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight"> <a href="#a08647e7e22257c2e824da6602cf7f83b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_stl_map.html#a5f676e9b1c98e4c9a55b415b5dbdeba6">equals</a> (const <a class="el" href="classdecaf_1_1util_1_1_map.html">Map</a>&lt; K, V, COMPARATOR &gt; &amp;source) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Comparison, equality is dependent on the method of determining if the element are equal. <a href="#a5f676e9b1c98e4c9a55b415b5dbdeba6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_stl_map.html#a011b70fb29cff717e5525055caff3f0b">copy</a> (const <a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_stl_map.html">ConcurrentStlMap</a> &amp;source)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight"> <a href="#a011b70fb29cff717e5525055caff3f0b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_stl_map.html#ae7d94ce6ee5b8a69479717b356356f06">copy</a> (const <a class="el" href="classdecaf_1_1util_1_1_map.html">Map</a>&lt; K, V, COMPARATOR &gt; &amp;source)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Copies the content of the source map into this map. <a href="#ae7d94ce6ee5b8a69479717b356356f06"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_stl_map.html#ad8cf435c1a4a17d7eea1d2c0e1c2fc3b">clear</a> () throw ( decaf::lang::exceptions::UnsupportedOperationException )</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes all keys and values from this map.<dl><dt><b>Exceptions:</b></dt><dd>
<table class="exception">
<tr><td class="paramname">UnsupportedOperationException</td><td>if this map is unmodifiable.</td></tr>
</table>
</dd>
</dl>
<a href="#ad8cf435c1a4a17d7eea1d2c0e1c2fc3b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_stl_map.html#a3a94f60906c5594e2eae332fb20d70a6">containsKey</a> (const K &amp;key) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicates whether or this map contains a value for the given key.<dl><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">key</td><td>The key to look up. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if this map contains the value, otherwise false.</dd></dl>
<a href="#a3a94f60906c5594e2eae332fb20d70a6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_stl_map.html#adbf6c41862ce534d81ad4fbb60b7ecb5">containsValue</a> (const V &amp;value) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicates whether or this map contains a value for the given value, i.e.they are equal, this is done by operator== so the types must pass equivalence testing in this manner. </p>
<dl><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">value</td><td>The Value to look up. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if this map contains the value, otherwise false.</dd></dl>
<a href="#adbf6c41862ce534d81ad4fbb60b7ecb5"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_stl_map.html#ab659208b3a0e1f4ee7eb61c4f148f9ab">isEmpty</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight"><dl class="return"><dt><b>Returns:</b></dt><dd>if the <a class="el" href="classdecaf_1_1util_1_1_map.html" title="Map template that wraps around a std::map to provide a more user-friendly interface and to provide co...">Map</a> contains any element or not, TRUE or FALSE</dd></dl>
<a href="#ab659208b3a0e1f4ee7eb61c4f148f9ab"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_stl_map.html#ac3e08e99b9d90fd8fae19303fea88d17">size</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight"><dl class="return"><dt><b>Returns:</b></dt><dd>The number of elements (key/value pairs) in this map.</dd></dl>
<a href="#ac3e08e99b9d90fd8fae19303fea88d17"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual V &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_stl_map.html#a00941885ddfb6542fbbbf9c37beed8a3">get</a> (const K &amp;key)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the value mapped to the specified key in the <a class="el" href="classdecaf_1_1util_1_1_map.html" title="Map template that wraps around a std::map to provide a more user-friendly interface and to provide co...">Map</a>.If there is no element in the map whose key is equivalent to the key provided then a <a class="el" href="classdecaf_1_1util_1_1_no_such_element_exception.html">NoSuchElementException</a> is thrown.<dl><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">key</td><td>The search key. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>A reference to the value for the given key.</dd></dl>
<dl><dt><b>Exceptions:</b></dt><dd>
<table class="exception">
<tr><td class="paramname"><a class="el" href="classdecaf_1_1util_1_1_no_such_element_exception.html">NoSuchElementException</a></td><td>if the key requests doesn't exist in the <a class="el" href="classdecaf_1_1util_1_1_map.html" title="Map template that wraps around a std::map to provide a more user-friendly interface and to provide co...">Map</a>.</td></tr>
</table>
</dd>
</dl>
<a href="#a00941885ddfb6542fbbbf9c37beed8a3"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual const V &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_stl_map.html#a4b2daa4cb88161554813375c649cb77f">get</a> (const K &amp;key) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the value mapped to the specified key in the <a class="el" href="classdecaf_1_1util_1_1_map.html" title="Map template that wraps around a std::map to provide a more user-friendly interface and to provide co...">Map</a>.If there is no element in the map whose key is equivalent to the key provided then a <a class="el" href="classdecaf_1_1util_1_1_no_such_element_exception.html">NoSuchElementException</a> is thrown.<dl><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">key</td><td>The search key. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>A {const} reference to the value for the given key.</dd></dl>
<dl><dt><b>Exceptions:</b></dt><dd>
<table class="exception">
<tr><td class="paramname"><a class="el" href="classdecaf_1_1util_1_1_no_such_element_exception.html">NoSuchElementException</a></td><td>if the key requests doesn't exist in the <a class="el" href="classdecaf_1_1util_1_1_map.html" title="Map template that wraps around a std::map to provide a more user-friendly interface and to provide co...">Map</a>.</td></tr>
</table>
</dd>
</dl>
<a href="#a4b2daa4cb88161554813375c649cb77f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_stl_map.html#a8085fe80d2829fd9178faa6769f5bd92">put</a> (const K &amp;key, const V &amp;value)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the value for the specified key.<dl><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">key</td><td>The target key. </td></tr>
<tr><td class="paramname">value</td><td>The value to be set.</td></tr>
</table>
</dd>
</dl>
<dl><dt><b>Exceptions:</b></dt><dd>
<table class="exception">
<tr><td class="paramname">UnsupportedOperationException</td><td>if this map is unmodifiable.</td></tr>
</table>
</dd>
</dl>
<a href="#a8085fe80d2829fd9178faa6769f5bd92"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_stl_map.html#a1ab879eb111d4e7369bd6678b1c8eae0">putAll</a> (const <a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_stl_map.html">ConcurrentStlMap</a>&lt; K, V, COMPARATOR &gt; &amp;other)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight"> <a href="#a1ab879eb111d4e7369bd6678b1c8eae0"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_stl_map.html#a649d617db6066f9593e8bf7ec44f2272">putAll</a> (const <a class="el" href="classdecaf_1_1util_1_1_map.html">Map</a>&lt; K, V, COMPARATOR &gt; &amp;other)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Stores a copy of the Mappings contained in the other <a class="el" href="classdecaf_1_1util_1_1_map.html" title="Map template that wraps around a std::map to provide a more user-friendly interface and to provide co...">Map</a> in this one.<dl><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">other</td><td>A <a class="el" href="classdecaf_1_1util_1_1_map.html" title="Map template that wraps around a std::map to provide a more user-friendly interface and to provide co...">Map</a> instance whose elements are to all be inserted in this <a class="el" href="classdecaf_1_1util_1_1_map.html" title="Map template that wraps around a std::map to provide a more user-friendly interface and to provide co...">Map</a>.</td></tr>
</table>
</dd>
</dl>
<dl><dt><b>Exceptions:</b></dt><dd>
<table class="exception">
<tr><td class="paramname">UnsupportedOperationException</td><td>If the implementing class does not support the putAll operation.</td></tr>
</table>
</dd>
</dl>
<a href="#a649d617db6066f9593e8bf7ec44f2272"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual V&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_stl_map.html#a6216dfbba983fddbfbda69a1c0a003b3">remove</a> (const K &amp;key)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes the value (key/value pair) for the specified key from the map, returns a copy of the value that was mapped to the key.<dl><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">key</td><td>The search key. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>a copy of the element that was previously mapped to the given key</dd></dl>
<dl><dt><b>Exceptions:</b></dt><dd>
<table class="exception">
<tr><td class="paramname"><a class="el" href="classdecaf_1_1util_1_1_no_such_element_exception.html">NoSuchElementException</a></td><td>if this key is not in the <a class="el" href="classdecaf_1_1util_1_1_map.html" title="Map template that wraps around a std::map to provide a more user-friendly interface and to provide co...">Map</a>. </td></tr>
<tr><td class="paramname">UnsupportedOperationException</td><td>if this map is unmodifiable.</td></tr>
</table>
</dd>
</dl>
<a href="#a6216dfbba983fddbfbda69a1c0a003b3"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual std::vector&lt; K &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_stl_map.html#a57a952a80cf93a72d72239480f4532a2">keySet</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a <a class="el" href="classdecaf_1_1util_1_1_set.html" title="A collection that contains no duplicate elements.">Set</a> view of the mappings contained in this map.The set is backed by the map, so changes to the map are reflected in the set, and vice-versa. If the map is modified while an iteration over the set is in progress (except through the iterator's own remove operation, or through the setValue operation on a map entry returned by the iterator) the results of the iteration are undefined. The set supports element removal, which removes the corresponding mapping from the map, via the <a class="el" href="classdecaf_1_1util_1_1_iterator.html#a3ef3d1121d22fa80df4f9361834f409c" title="Removes from the underlying collection the last element returned by the iterator (optional operation)...">Iterator.remove</a>, <a class="el" href="classdecaf_1_1util_1_1_collection.html#ad40a3d5aacf68dc3dbc39c7069e16adb" title="Removes a single instance of the specified element from the collection.">Set.remove</a>, removeAll, retainAll and clear operations. It does not support the add or addAll operations. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>the entire set of keys in this map as a std::vector.</dd></dl>
<a href="#a57a952a80cf93a72d72239480f4532a2"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual std::vector&lt; V &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_stl_map.html#a69ac85267584009eb72723dcad41dd4a">values</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight"><dl class="return"><dt><b>Returns:</b></dt><dd>the entire set of values in this map as a std::vector.</dd></dl>
<a href="#a69ac85267584009eb72723dcad41dd4a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_stl_map.html#a99a6ce31021eed06c13bb9f0edeec5e4">putIfAbsent</a> (const K &amp;key, const V &amp;value)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">If the specified key is not already associated with a value, associate it with the given value. <a href="#a99a6ce31021eed06c13bb9f0edeec5e4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_stl_map.html#a6c4379e88d2ceae132132e3d78a3168e">remove</a> (const K &amp;key, const V &amp;value)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove entry for key only if currently mapped to given value. <a href="#a6c4379e88d2ceae132132e3d78a3168e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_stl_map.html#af7d0c52d9f0f339e0b349a12834632d8">replace</a> (const K &amp;key, const V &amp;oldValue, const V &amp;newValue)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Replace entry for key only if currently mapped to given value. <a href="#af7d0c52d9f0f339e0b349a12834632d8"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">V&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_stl_map.html#acc7a568da6c405602e695a5e724b5043">replace</a> (const K &amp;key, const V &amp;value)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Replace entry for key only if currently mapped to some value. <a href="#acc7a568da6c405602e695a5e724b5043"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_stl_map.html#a073167095bfa87791221ea5a05b456a6">lock</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Locks the object. <a href="#a073167095bfa87791221ea5a05b456a6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_stl_map.html#aef127a8c60fc98306a1bca88bd8e4e99">tryLock</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</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="#aef127a8c60fc98306a1bca88bd8e4e99"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_stl_map.html#aaca964c3a28ced48573f2ffda4097daa">unlock</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Unlocks the object. <a href="#aaca964c3a28ced48573f2ffda4097daa"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_stl_map.html#a7639da4f97d5523a8def1896f3a2cb28">wait</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Waits on a signal from this object, which is generated by a call to Notify. <a href="#a7639da4f97d5523a8def1896f3a2cb28"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_stl_map.html#aa9e27cc17818ff46db11abc168553b00">wait</a> (long long millisecs)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Waits on a signal from this object, which is generated by a call to Notify. <a href="#aa9e27cc17818ff46db11abc168553b00"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_stl_map.html#ae156240d36abe89b0297fe683ce76ffd">wait</a> (long long millisecs, int nanos)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Waits on a signal from this object, which is generated by a call to Notify. <a href="#ae156240d36abe89b0297fe683ce76ffd"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_stl_map.html#a2698aead7a66924c2506f1b977c5d06f">notify</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Signals a waiter on this object that it can now wake up and continue. <a href="#a2698aead7a66924c2506f1b977c5d06f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_stl_map.html#aaf31f790c9ac4c0b87fda6f5adea6f45">notifyAll</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Signals the waiters on this object that it can now wake up and continue. <a href="#aaf31f790c9ac4c0b87fda6f5adea6f45"></a><br/></td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<div class="textblock"><h3>template&lt;typename K, typename V, typename COMPARATOR = std::less&lt;K&gt;&gt;<br/>
class decaf::util::concurrent::ConcurrentStlMap&lt; K, V, COMPARATOR &gt;</h3>
<p><a class="el" href="classdecaf_1_1util_1_1_map.html" title="Map template that wraps around a std::map to provide a more user-friendly interface and to provide co...">Map</a> template that wraps around a std::map to provide a more user-friendly interface and to provide common functions that do not exist in std::map. </p>
<p>This version of <a class="el" href="classdecaf_1_1util_1_1_map.html" title="Map template that wraps around a std::map to provide a more user-friendly interface and to provide co...">Map</a> extends the <a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_map.html" title="Interface for a Map type that provides additional atomic putIfAbsent, remove, and replace methods alo...">ConcurrentMap</a> inteface and implements all the methods defined in that interface. Unlike a Java ConcurrentHashMap this implementations synchronizes all methods such that any call to this class will block if another thread is already holding a lock, much like the Java HashTable.</p>
<dl class="since"><dt><b>Since:</b></dt><dd>1.0 </dd></dl>
</div><hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a72a5e5887602bee34f98d9460da0a99a"></a><!-- doxytag: member="decaf::util::concurrent::ConcurrentStlMap::ConcurrentStlMap" ref="a72a5e5887602bee34f98d9460da0a99a" args="()" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename K, typename V, typename COMPARATOR = std::less&lt;K&gt;&gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_stl_map.html">decaf::util::concurrent::ConcurrentStlMap</a>&lt; K, V, COMPARATOR &gt;::<a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_stl_map.html">ConcurrentStlMap</a> </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td><code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Default constructor - does nothing. </p>
</div>
</div>
<a class="anchor" id="a692888b0c23e4f62bd26d9441679b8e7"></a><!-- doxytag: member="decaf::util::concurrent::ConcurrentStlMap::ConcurrentStlMap" ref="a692888b0c23e4f62bd26d9441679b8e7" args="(const ConcurrentStlMap &amp;source)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename K, typename V, typename COMPARATOR = std::less&lt;K&gt;&gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_stl_map.html">decaf::util::concurrent::ConcurrentStlMap</a>&lt; K, V, COMPARATOR &gt;::<a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_stl_map.html">ConcurrentStlMap</a> </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_stl_map.html">ConcurrentStlMap</a>&lt; K, V, COMPARATOR &gt; &amp;&#160;</td>
<td class="paramname"><em>source</em></td><td>)</td>
<td><code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Copy constructor - copies the content of the given map into this one. </p>
<dl><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">source</td><td>The source map. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="a886ee34536d14b16dfcfef0372f110d9"></a><!-- doxytag: member="decaf::util::concurrent::ConcurrentStlMap::ConcurrentStlMap" ref="a886ee34536d14b16dfcfef0372f110d9" args="(const Map&lt; K, V, COMPARATOR &gt; &amp;source)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename K, typename V, typename COMPARATOR = std::less&lt;K&gt;&gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_stl_map.html">decaf::util::concurrent::ConcurrentStlMap</a>&lt; K, V, COMPARATOR &gt;::<a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_stl_map.html">ConcurrentStlMap</a> </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classdecaf_1_1util_1_1_map.html">Map</a>&lt; K, V, COMPARATOR &gt; &amp;&#160;</td>
<td class="paramname"><em>source</em></td><td>)</td>
<td><code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Copy constructor - copies the content of the given map into this one. </p>
<dl><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">source</td><td>The source map. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="a33def96cff5bb713651ef8fe190e9285"></a><!-- doxytag: member="decaf::util::concurrent::ConcurrentStlMap::~ConcurrentStlMap" ref="a33def96cff5bb713651ef8fe190e9285" args="()" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename K, typename V, typename COMPARATOR = std::less&lt;K&gt;&gt; </div>
<table class="memname">
<tr>
<td class="memname">virtual <a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_stl_map.html">decaf::util::concurrent::ConcurrentStlMap</a>&lt; K, V, COMPARATOR &gt;::~<a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_stl_map.html">ConcurrentStlMap</a> </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td><code> [inline, virtual]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="ad8cf435c1a4a17d7eea1d2c0e1c2fc3b"></a><!-- doxytag: member="decaf::util::concurrent::ConcurrentStlMap::clear" ref="ad8cf435c1a4a17d7eea1d2c0e1c2fc3b" args="()" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename K, typename V, typename COMPARATOR = std::less&lt;K&gt;&gt; </div>
<table class="memname">
<tr>
<td class="memname">virtual void <a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_stl_map.html">decaf::util::concurrent::ConcurrentStlMap</a>&lt; K, V, COMPARATOR &gt;::clear </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> throw ( <a class="el" href="classdecaf_1_1lang_1_1exceptions_1_1_unsupported_operation_exception.html">decaf::lang::exceptions::UnsupportedOperationException</a> )<code> [inline, virtual]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Removes all keys and values from this map.<dl><dt><b>Exceptions:</b></dt><dd>
<table class="exception">
<tr><td class="paramname">UnsupportedOperationException</td><td>if this map is unmodifiable.</td></tr>
</table>
</dd>
</dl>
</p>
<p>Implements <a class="el" href="classdecaf_1_1util_1_1_map.html#a9638c30cf089c1b61b11b38017041021">decaf::util::Map&lt; K, V, COMPARATOR &gt;</a>.</p>
<p>Referenced by <a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_stl_map.html#ae7d94ce6ee5b8a69479717b356356f06">decaf::util::concurrent::ConcurrentStlMap&lt; Pointer&lt; ProducerId &gt;, Pointer&lt; ProducerState &gt;, ProducerId::COMPARATOR &gt;::copy()</a>.</p>
</div>
</div>
<a class="anchor" id="a3a94f60906c5594e2eae332fb20d70a6"></a><!-- doxytag: member="decaf::util::concurrent::ConcurrentStlMap::containsKey" ref="a3a94f60906c5594e2eae332fb20d70a6" args="(const K &amp;key) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename K, typename V, typename COMPARATOR = std::less&lt;K&gt;&gt; </div>
<table class="memname">
<tr>
<td class="memname">virtual bool <a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_stl_map.html">decaf::util::concurrent::ConcurrentStlMap</a>&lt; K, V, COMPARATOR &gt;::containsKey </td>
<td>(</td>
<td class="paramtype">const K &amp;&#160;</td>
<td class="paramname"><em>key</em></td><td>)</td>
<td> const<code> [inline, virtual]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Indicates whether or this map contains a value for the given key.<dl><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">key</td><td>The key to look up. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if this map contains the value, otherwise false.</dd></dl>
</p>
<p>Implements <a class="el" href="classdecaf_1_1util_1_1_map.html#a6ce9ff47e1b08bf2c18f3c958c9601a8">decaf::util::Map&lt; K, V, COMPARATOR &gt;</a>.</p>
<p>Referenced by <a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_stl_map.html#a5f676e9b1c98e4c9a55b415b5dbdeba6">decaf::util::concurrent::ConcurrentStlMap&lt; Pointer&lt; ProducerId &gt;, Pointer&lt; ProducerState &gt;, ProducerId::COMPARATOR &gt;::equals()</a>, <a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_stl_map.html#a99a6ce31021eed06c13bb9f0edeec5e4">decaf::util::concurrent::ConcurrentStlMap&lt; Pointer&lt; ProducerId &gt;, Pointer&lt; ProducerState &gt;, ProducerId::COMPARATOR &gt;::putIfAbsent()</a>, <a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_stl_map.html#a6c4379e88d2ceae132132e3d78a3168e">decaf::util::concurrent::ConcurrentStlMap&lt; Pointer&lt; ProducerId &gt;, Pointer&lt; ProducerState &gt;, ProducerId::COMPARATOR &gt;::remove()</a>, and <a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_stl_map.html#af7d0c52d9f0f339e0b349a12834632d8">decaf::util::concurrent::ConcurrentStlMap&lt; Pointer&lt; ProducerId &gt;, Pointer&lt; ProducerState &gt;, ProducerId::COMPARATOR &gt;::replace()</a>.</p>
</div>
</div>
<a class="anchor" id="adbf6c41862ce534d81ad4fbb60b7ecb5"></a><!-- doxytag: member="decaf::util::concurrent::ConcurrentStlMap::containsValue" ref="adbf6c41862ce534d81ad4fbb60b7ecb5" args="(const V &amp;value) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename K, typename V, typename COMPARATOR = std::less&lt;K&gt;&gt; </div>
<table class="memname">
<tr>
<td class="memname">virtual bool <a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_stl_map.html">decaf::util::concurrent::ConcurrentStlMap</a>&lt; K, V, COMPARATOR &gt;::containsValue </td>
<td>(</td>
<td class="paramtype">const V &amp;&#160;</td>
<td class="paramname"><em>value</em></td><td>)</td>
<td> const<code> [inline, virtual]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Indicates whether or this map contains a value for the given value, i.e.they are equal, this is done by operator== so the types must pass equivalence testing in this manner. </p>
<dl><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">value</td><td>The Value to look up. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if this map contains the value, otherwise false.</dd></dl>
</p>
<p>Implements <a class="el" href="classdecaf_1_1util_1_1_map.html#a2b127456cfeb6504ba9c9bb91289110e">decaf::util::Map&lt; K, V, COMPARATOR &gt;</a>.</p>
</div>
</div>
<a class="anchor" id="a011b70fb29cff717e5525055caff3f0b"></a><!-- doxytag: member="decaf::util::concurrent::ConcurrentStlMap::copy" ref="a011b70fb29cff717e5525055caff3f0b" args="(const ConcurrentStlMap &amp;source)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename K, typename V, typename COMPARATOR = std::less&lt;K&gt;&gt; </div>
<table class="memname">
<tr>
<td class="memname">virtual void <a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_stl_map.html">decaf::util::concurrent::ConcurrentStlMap</a>&lt; K, V, COMPARATOR &gt;::copy </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_stl_map.html">ConcurrentStlMap</a>&lt; K, V, COMPARATOR &gt; &amp;&#160;</td>
<td class="paramname"><em>source</em></td><td>)</td>
<td><code> [inline, virtual]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p></p>
<p>Referenced by <a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_stl_map.html#a692888b0c23e4f62bd26d9441679b8e7">decaf::util::concurrent::ConcurrentStlMap&lt; Pointer&lt; ProducerId &gt;, Pointer&lt; ProducerState &gt;, ProducerId::COMPARATOR &gt;::ConcurrentStlMap()</a>.</p>
</div>
</div>
<a class="anchor" id="ae7d94ce6ee5b8a69479717b356356f06"></a><!-- doxytag: member="decaf::util::concurrent::ConcurrentStlMap::copy" ref="ae7d94ce6ee5b8a69479717b356356f06" args="(const Map&lt; K, V, COMPARATOR &gt; &amp;source)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename K, typename V, typename COMPARATOR = std::less&lt;K&gt;&gt; </div>
<table class="memname">
<tr>
<td class="memname">virtual void <a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_stl_map.html">decaf::util::concurrent::ConcurrentStlMap</a>&lt; K, V, COMPARATOR &gt;::copy </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classdecaf_1_1util_1_1_map.html">Map</a>&lt; K, V, COMPARATOR &gt; &amp;&#160;</td>
<td class="paramname"><em>source</em></td><td>)</td>
<td><code> [inline, virtual]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Copies the content of the source map into this map. </p>
<p>Erases all existing data in this map. </p>
<dl><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">source</td><td>The source object to copy from. </td></tr>
</table>
</dd>
</dl>
<p>Implements <a class="el" href="classdecaf_1_1util_1_1_map.html#a552dcd14efc507b1cc7e2e6dac825854">decaf::util::Map&lt; K, V, COMPARATOR &gt;</a>.</p>
</div>
</div>
<a class="anchor" id="a5f676e9b1c98e4c9a55b415b5dbdeba6"></a><!-- doxytag: member="decaf::util::concurrent::ConcurrentStlMap::equals" ref="a5f676e9b1c98e4c9a55b415b5dbdeba6" args="(const Map&lt; K, V, COMPARATOR &gt; &amp;source) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename K, typename V, typename COMPARATOR = std::less&lt;K&gt;&gt; </div>
<table class="memname">
<tr>
<td class="memname">virtual bool <a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_stl_map.html">decaf::util::concurrent::ConcurrentStlMap</a>&lt; K, V, COMPARATOR &gt;::equals </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classdecaf_1_1util_1_1_map.html">Map</a>&lt; K, V, COMPARATOR &gt; &amp;&#160;</td>
<td class="paramname"><em>source</em></td><td>)</td>
<td> const<code> [inline, virtual]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Comparison, equality is dependent on the method of determining if the element are equal. </p>
<dl><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">source</td><td>- <a class="el" href="classdecaf_1_1util_1_1_map.html" title="Map template that wraps around a std::map to provide a more user-friendly interface and to provide co...">Map</a> to compare to this one. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if the <a class="el" href="classdecaf_1_1util_1_1_map.html" title="Map template that wraps around a std::map to provide a more user-friendly interface and to provide co...">Map</a> passed is equal in value to this one. </dd></dl>
<p>Implements <a class="el" href="classdecaf_1_1util_1_1_map.html#aa8978d74297e217c7ed1d4e96f63fd80">decaf::util::Map&lt; K, V, COMPARATOR &gt;</a>.</p>
</div>
</div>
<a class="anchor" id="a08647e7e22257c2e824da6602cf7f83b"></a><!-- doxytag: member="decaf::util::concurrent::ConcurrentStlMap::equals" ref="a08647e7e22257c2e824da6602cf7f83b" args="(const ConcurrentStlMap &amp;source) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename K, typename V, typename COMPARATOR = std::less&lt;K&gt;&gt; </div>
<table class="memname">
<tr>
<td class="memname">virtual bool <a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_stl_map.html">decaf::util::concurrent::ConcurrentStlMap</a>&lt; K, V, COMPARATOR &gt;::equals </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_stl_map.html">ConcurrentStlMap</a>&lt; K, V, COMPARATOR &gt; &amp;&#160;</td>
<td class="paramname"><em>source</em></td><td>)</td>
<td> const<code> [inline, virtual]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p></p>
</div>
</div>
<a class="anchor" id="a00941885ddfb6542fbbbf9c37beed8a3"></a><!-- doxytag: member="decaf::util::concurrent::ConcurrentStlMap::get" ref="a00941885ddfb6542fbbbf9c37beed8a3" args="(const K &amp;key)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename K, typename V, typename COMPARATOR = std::less&lt;K&gt;&gt; </div>
<table class="memname">
<tr>
<td class="memname">virtual V&amp; <a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_stl_map.html">decaf::util::concurrent::ConcurrentStlMap</a>&lt; K, V, COMPARATOR &gt;::get </td>
<td>(</td>
<td class="paramtype">const K &amp;&#160;</td>
<td class="paramname"><em>key</em></td><td>)</td>
<td><code> [inline, virtual]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Gets the value mapped to the specified key in the <a class="el" href="classdecaf_1_1util_1_1_map.html" title="Map template that wraps around a std::map to provide a more user-friendly interface and to provide co...">Map</a>.If there is no element in the map whose key is equivalent to the key provided then a <a class="el" href="classdecaf_1_1util_1_1_no_such_element_exception.html">NoSuchElementException</a> is thrown.<dl><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">key</td><td>The search key. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>A reference to the value for the given key.</dd></dl>
<dl><dt><b>Exceptions:</b></dt><dd>
<table class="exception">
<tr><td class="paramname"><a class="el" href="classdecaf_1_1util_1_1_no_such_element_exception.html">NoSuchElementException</a></td><td>if the key requests doesn't exist in the <a class="el" href="classdecaf_1_1util_1_1_map.html" title="Map template that wraps around a std::map to provide a more user-friendly interface and to provide co...">Map</a>.</td></tr>
</table>
</dd>
</dl>
</p>
<p>Implements <a class="el" href="classdecaf_1_1util_1_1_map.html#a2357d7baefc532eea472256295c63bd2">decaf::util::Map&lt; K, V, COMPARATOR &gt;</a>.</p>
</div>
</div>
<a class="anchor" id="a4b2daa4cb88161554813375c649cb77f"></a><!-- doxytag: member="decaf::util::concurrent::ConcurrentStlMap::get" ref="a4b2daa4cb88161554813375c649cb77f" args="(const K &amp;key) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename K, typename V, typename COMPARATOR = std::less&lt;K&gt;&gt; </div>
<table class="memname">
<tr>
<td class="memname">virtual const V&amp; <a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_stl_map.html">decaf::util::concurrent::ConcurrentStlMap</a>&lt; K, V, COMPARATOR &gt;::get </td>
<td>(</td>
<td class="paramtype">const K &amp;&#160;</td>
<td class="paramname"><em>key</em></td><td>)</td>
<td> const<code> [inline, virtual]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Gets the value mapped to the specified key in the <a class="el" href="classdecaf_1_1util_1_1_map.html" title="Map template that wraps around a std::map to provide a more user-friendly interface and to provide co...">Map</a>.If there is no element in the map whose key is equivalent to the key provided then a <a class="el" href="classdecaf_1_1util_1_1_no_such_element_exception.html">NoSuchElementException</a> is thrown.<dl><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">key</td><td>The search key. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>A {const} reference to the value for the given key.</dd></dl>
<dl><dt><b>Exceptions:</b></dt><dd>
<table class="exception">
<tr><td class="paramname"><a class="el" href="classdecaf_1_1util_1_1_no_such_element_exception.html">NoSuchElementException</a></td><td>if the key requests doesn't exist in the <a class="el" href="classdecaf_1_1util_1_1_map.html" title="Map template that wraps around a std::map to provide a more user-friendly interface and to provide co...">Map</a>.</td></tr>
</table>
</dd>
</dl>
</p>
<p>Implements <a class="el" href="classdecaf_1_1util_1_1_map.html#a154830c207b2a513d6c8694dfd5d9a46">decaf::util::Map&lt; K, V, COMPARATOR &gt;</a>.</p>
</div>
</div>
<a class="anchor" id="ab659208b3a0e1f4ee7eb61c4f148f9ab"></a><!-- doxytag: member="decaf::util::concurrent::ConcurrentStlMap::isEmpty" ref="ab659208b3a0e1f4ee7eb61c4f148f9ab" args="() const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename K, typename V, typename COMPARATOR = std::less&lt;K&gt;&gt; </div>
<table class="memname">
<tr>
<td class="memname">virtual bool <a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_stl_map.html">decaf::util::concurrent::ConcurrentStlMap</a>&lt; K, V, COMPARATOR &gt;::isEmpty </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const<code> [inline, virtual]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p><dl class="return"><dt><b>Returns:</b></dt><dd>if the <a class="el" href="classdecaf_1_1util_1_1_map.html" title="Map template that wraps around a std::map to provide a more user-friendly interface and to provide co...">Map</a> contains any element or not, TRUE or FALSE</dd></dl>
</p>
<p>Implements <a class="el" href="classdecaf_1_1util_1_1_map.html#a630d463c60e0e895e34e8a644e724d7a">decaf::util::Map&lt; K, V, COMPARATOR &gt;</a>.</p>
</div>
</div>
<a class="anchor" id="a57a952a80cf93a72d72239480f4532a2"></a><!-- doxytag: member="decaf::util::concurrent::ConcurrentStlMap::keySet" ref="a57a952a80cf93a72d72239480f4532a2" args="() const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename K, typename V, typename COMPARATOR = std::less&lt;K&gt;&gt; </div>
<table class="memname">
<tr>
<td class="memname">virtual std::vector&lt;K&gt; <a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_stl_map.html">decaf::util::concurrent::ConcurrentStlMap</a>&lt; K, V, COMPARATOR &gt;::keySet </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const<code> [inline, virtual]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Returns a <a class="el" href="classdecaf_1_1util_1_1_set.html" title="A collection that contains no duplicate elements.">Set</a> view of the mappings contained in this map.The set is backed by the map, so changes to the map are reflected in the set, and vice-versa. If the map is modified while an iteration over the set is in progress (except through the iterator's own remove operation, or through the setValue operation on a map entry returned by the iterator) the results of the iteration are undefined. The set supports element removal, which removes the corresponding mapping from the map, via the <a class="el" href="classdecaf_1_1util_1_1_iterator.html#a3ef3d1121d22fa80df4f9361834f409c" title="Removes from the underlying collection the last element returned by the iterator (optional operation)...">Iterator.remove</a>, <a class="el" href="classdecaf_1_1util_1_1_collection.html#ad40a3d5aacf68dc3dbc39c7069e16adb" title="Removes a single instance of the specified element from the collection.">Set.remove</a>, removeAll, retainAll and clear operations. It does not support the add or addAll operations. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>the entire set of keys in this map as a std::vector.</dd></dl>
</p>
<p>Implements <a class="el" href="classdecaf_1_1util_1_1_map.html#af669f5dc40751f5ec589f2273aeae74b">decaf::util::Map&lt; K, V, COMPARATOR &gt;</a>.</p>
</div>
</div>
<a class="anchor" id="a073167095bfa87791221ea5a05b456a6"></a><!-- doxytag: member="decaf::util::concurrent::ConcurrentStlMap::lock" ref="a073167095bfa87791221ea5a05b456a6" args="()" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename K, typename V, typename COMPARATOR = std::less&lt;K&gt;&gt; </div>
<table class="memname">
<tr>
<td class="memname">virtual void <a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_stl_map.html">decaf::util::concurrent::ConcurrentStlMap</a>&lt; K, V, COMPARATOR &gt;::lock </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td><code> [inline, 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>
</div>
</div>
<a class="anchor" id="a2698aead7a66924c2506f1b977c5d06f"></a><!-- doxytag: member="decaf::util::concurrent::ConcurrentStlMap::notify" ref="a2698aead7a66924c2506f1b977c5d06f" args="()" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename K, typename V, typename COMPARATOR = std::less&lt;K&gt;&gt; </div>
<table class="memname">
<tr>
<td class="memname">virtual void <a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_stl_map.html">decaf::util::concurrent::ConcurrentStlMap</a>&lt; K, V, COMPARATOR &gt;::notify </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td><code> [inline, 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>
</div>
</div>
<a class="anchor" id="aaf31f790c9ac4c0b87fda6f5adea6f45"></a><!-- doxytag: member="decaf::util::concurrent::ConcurrentStlMap::notifyAll" ref="aaf31f790c9ac4c0b87fda6f5adea6f45" args="()" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename K, typename V, typename COMPARATOR = std::less&lt;K&gt;&gt; </div>
<table class="memname">
<tr>
<td class="memname">virtual void <a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_stl_map.html">decaf::util::concurrent::ConcurrentStlMap</a>&lt; K, V, COMPARATOR &gt;::notifyAll </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td><code> [inline, 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>
</div>
</div>
<a class="anchor" id="a8085fe80d2829fd9178faa6769f5bd92"></a><!-- doxytag: member="decaf::util::concurrent::ConcurrentStlMap::put" ref="a8085fe80d2829fd9178faa6769f5bd92" args="(const K &amp;key, const V &amp;value)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename K, typename V, typename COMPARATOR = std::less&lt;K&gt;&gt; </div>
<table class="memname">
<tr>
<td class="memname">virtual void <a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_stl_map.html">decaf::util::concurrent::ConcurrentStlMap</a>&lt; K, V, COMPARATOR &gt;::put </td>
<td>(</td>
<td class="paramtype">const K &amp;&#160;</td>
<td class="paramname"><em>key</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const V &amp;&#160;</td>
<td class="paramname"><em>value</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td><code> [inline, virtual]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Sets the value for the specified key.<dl><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">key</td><td>The target key. </td></tr>
<tr><td class="paramname">value</td><td>The value to be set.</td></tr>
</table>
</dd>
</dl>
<dl><dt><b>Exceptions:</b></dt><dd>
<table class="exception">
<tr><td class="paramname">UnsupportedOperationException</td><td>if this map is unmodifiable.</td></tr>
</table>
</dd>
</dl>
</p>
<p>Implements <a class="el" href="classdecaf_1_1util_1_1_map.html#aaefb3fee8aa6fab3afc55af1d99b08e1">decaf::util::Map&lt; K, V, COMPARATOR &gt;</a>.</p>
<p>Referenced by <a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_stl_map.html#a649d617db6066f9593e8bf7ec44f2272">decaf::util::concurrent::ConcurrentStlMap&lt; Pointer&lt; ProducerId &gt;, Pointer&lt; ProducerState &gt;, ProducerId::COMPARATOR &gt;::putAll()</a>, <a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_stl_map.html#a99a6ce31021eed06c13bb9f0edeec5e4">decaf::util::concurrent::ConcurrentStlMap&lt; Pointer&lt; ProducerId &gt;, Pointer&lt; ProducerState &gt;, ProducerId::COMPARATOR &gt;::putIfAbsent()</a>, and <a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_stl_map.html#af7d0c52d9f0f339e0b349a12834632d8">decaf::util::concurrent::ConcurrentStlMap&lt; Pointer&lt; ProducerId &gt;, Pointer&lt; ProducerState &gt;, ProducerId::COMPARATOR &gt;::replace()</a>.</p>
</div>
</div>
<a class="anchor" id="a649d617db6066f9593e8bf7ec44f2272"></a><!-- doxytag: member="decaf::util::concurrent::ConcurrentStlMap::putAll" ref="a649d617db6066f9593e8bf7ec44f2272" args="(const Map&lt; K, V, COMPARATOR &gt; &amp;other)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename K, typename V, typename COMPARATOR = std::less&lt;K&gt;&gt; </div>
<table class="memname">
<tr>
<td class="memname">virtual void <a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_stl_map.html">decaf::util::concurrent::ConcurrentStlMap</a>&lt; K, V, COMPARATOR &gt;::putAll </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classdecaf_1_1util_1_1_map.html">Map</a>&lt; K, V, COMPARATOR &gt; &amp;&#160;</td>
<td class="paramname"><em>other</em></td><td>)</td>
<td><code> [inline, virtual]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Stores a copy of the Mappings contained in the other <a class="el" href="classdecaf_1_1util_1_1_map.html" title="Map template that wraps around a std::map to provide a more user-friendly interface and to provide co...">Map</a> in this one.<dl><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">other</td><td>A <a class="el" href="classdecaf_1_1util_1_1_map.html" title="Map template that wraps around a std::map to provide a more user-friendly interface and to provide co...">Map</a> instance whose elements are to all be inserted in this <a class="el" href="classdecaf_1_1util_1_1_map.html" title="Map template that wraps around a std::map to provide a more user-friendly interface and to provide co...">Map</a>.</td></tr>
</table>
</dd>
</dl>
<dl><dt><b>Exceptions:</b></dt><dd>
<table class="exception">
<tr><td class="paramname">UnsupportedOperationException</td><td>If the implementing class does not support the putAll operation.</td></tr>
</table>
</dd>
</dl>
</p>
<p>Implements <a class="el" href="classdecaf_1_1util_1_1_map.html#a43372bf5715fe3d9747ba245e343d4be">decaf::util::Map&lt; K, V, COMPARATOR &gt;</a>.</p>
</div>
</div>
<a class="anchor" id="a1ab879eb111d4e7369bd6678b1c8eae0"></a><!-- doxytag: member="decaf::util::concurrent::ConcurrentStlMap::putAll" ref="a1ab879eb111d4e7369bd6678b1c8eae0" args="(const ConcurrentStlMap&lt; K, V, COMPARATOR &gt; &amp;other)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename K, typename V, typename COMPARATOR = std::less&lt;K&gt;&gt; </div>
<table class="memname">
<tr>
<td class="memname">virtual void <a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_stl_map.html">decaf::util::concurrent::ConcurrentStlMap</a>&lt; K, V, COMPARATOR &gt;::putAll </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_stl_map.html">ConcurrentStlMap</a>&lt; K, V, COMPARATOR &gt; &amp;&#160;</td>
<td class="paramname"><em>other</em></td><td>)</td>
<td><code> [inline, virtual]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p></p>
<p>Referenced by <a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_stl_map.html#ae7d94ce6ee5b8a69479717b356356f06">decaf::util::concurrent::ConcurrentStlMap&lt; Pointer&lt; ProducerId &gt;, Pointer&lt; ProducerState &gt;, ProducerId::COMPARATOR &gt;::copy()</a>.</p>
</div>
</div>
<a class="anchor" id="a99a6ce31021eed06c13bb9f0edeec5e4"></a><!-- doxytag: member="decaf::util::concurrent::ConcurrentStlMap::putIfAbsent" ref="a99a6ce31021eed06c13bb9f0edeec5e4" args="(const K &amp;key, const V &amp;value)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename K, typename V, typename COMPARATOR = std::less&lt;K&gt;&gt; </div>
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_stl_map.html">decaf::util::concurrent::ConcurrentStlMap</a>&lt; K, V, COMPARATOR &gt;::putIfAbsent </td>
<td>(</td>
<td class="paramtype">const K &amp;&#160;</td>
<td class="paramname"><em>key</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const V &amp;&#160;</td>
<td class="paramname"><em>value</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td><code> [inline, virtual]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>If the specified key is not already associated with a value, associate it with the given value. </p>
<p>This is equivalent to </p>
<pre>
if( !map.containsKey( key ) ) {
map.put( key, value );
return true;
} else {
return false;
}
</pre><p> except that the action is performed atomically.</p>
<dl><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">key</td><td>The key to map the value to. </td></tr>
<tr><td class="paramname">value</td><td>The value to map to the given key.</td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if the put operation was performed otherwise return false which indicates there was a value previously mapped to the key. </dd></dl>
<dl><dt><b>Exceptions:</b></dt><dd>
<table class="exception">
<tr><td class="paramname">UnsupportedOperationException</td><td>if the put operation is not supported by this map </td></tr>
</table>
</dd>
</dl>
<p>Implements <a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_map.html#a7d8b647ea8cabf2d5f6b09486e11b7a2">decaf::util::concurrent::ConcurrentMap&lt; K, V, COMPARATOR &gt;</a>.</p>
</div>
</div>
<a class="anchor" id="a6c4379e88d2ceae132132e3d78a3168e"></a><!-- doxytag: member="decaf::util::concurrent::ConcurrentStlMap::remove" ref="a6c4379e88d2ceae132132e3d78a3168e" args="(const K &amp;key, const V &amp;value)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename K, typename V, typename COMPARATOR = std::less&lt;K&gt;&gt; </div>
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_stl_map.html">decaf::util::concurrent::ConcurrentStlMap</a>&lt; K, V, COMPARATOR &gt;::remove </td>
<td>(</td>
<td class="paramtype">const K &amp;&#160;</td>
<td class="paramname"><em>key</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const V &amp;&#160;</td>
<td class="paramname"><em>value</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td><code> [inline, virtual]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Remove entry for key only if currently mapped to given value. </p>
<p>Acts as </p>
<pre>
if( map.containsKey( key ) &amp;&amp; ( map.get( key ) == value ) ) {
map.remove( key );
return true;
} else {
return false;
}
</pre><p> except that the action is performed atomically.</p>
<dl><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">key</td><td>key with which the specified value is associated. </td></tr>
<tr><td class="paramname">value</td><td>value associated with the specified key.</td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if the value was removed, false otherwise </dd></dl>
<p>Implements <a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_map.html#a01704563e111e75ac38951be3fbda1ec">decaf::util::concurrent::ConcurrentMap&lt; K, V, COMPARATOR &gt;</a>.</p>
</div>
</div>
<a class="anchor" id="a6216dfbba983fddbfbda69a1c0a003b3"></a><!-- doxytag: member="decaf::util::concurrent::ConcurrentStlMap::remove" ref="a6216dfbba983fddbfbda69a1c0a003b3" args="(const K &amp;key)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename K, typename V, typename COMPARATOR = std::less&lt;K&gt;&gt; </div>
<table class="memname">
<tr>
<td class="memname">virtual V <a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_stl_map.html">decaf::util::concurrent::ConcurrentStlMap</a>&lt; K, V, COMPARATOR &gt;::remove </td>
<td>(</td>
<td class="paramtype">const K &amp;&#160;</td>
<td class="paramname"><em>key</em></td><td>)</td>
<td><code> [inline, virtual]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Removes the value (key/value pair) for the specified key from the map, returns a copy of the value that was mapped to the key.<dl><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">key</td><td>The search key. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>a copy of the element that was previously mapped to the given key</dd></dl>
<dl><dt><b>Exceptions:</b></dt><dd>
<table class="exception">
<tr><td class="paramname"><a class="el" href="classdecaf_1_1util_1_1_no_such_element_exception.html">NoSuchElementException</a></td><td>if this key is not in the <a class="el" href="classdecaf_1_1util_1_1_map.html" title="Map template that wraps around a std::map to provide a more user-friendly interface and to provide co...">Map</a>. </td></tr>
<tr><td class="paramname">UnsupportedOperationException</td><td>if this map is unmodifiable.</td></tr>
</table>
</dd>
</dl>
</p>
<p>Implements <a class="el" href="classdecaf_1_1util_1_1_map.html#a1010ad9894ab4364a6e723721310c764">decaf::util::Map&lt; K, V, COMPARATOR &gt;</a>.</p>
</div>
</div>
<a class="anchor" id="acc7a568da6c405602e695a5e724b5043"></a><!-- doxytag: member="decaf::util::concurrent::ConcurrentStlMap::replace" ref="acc7a568da6c405602e695a5e724b5043" args="(const K &amp;key, const V &amp;value)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename K, typename V, typename COMPARATOR = std::less&lt;K&gt;&gt; </div>
<table class="memname">
<tr>
<td class="memname">V <a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_stl_map.html">decaf::util::concurrent::ConcurrentStlMap</a>&lt; K, V, COMPARATOR &gt;::replace </td>
<td>(</td>
<td class="paramtype">const K &amp;&#160;</td>
<td class="paramname"><em>key</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const V &amp;&#160;</td>
<td class="paramname"><em>value</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td><code> [inline, virtual]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Replace entry for key only if currently mapped to some value. </p>
<p>Acts as </p>
<pre>
if( map.containsKey( key ) ) {
return map.put( key, value );
} else {
throw <a class="el" href="classdecaf_1_1util_1_1_no_such_element_exception.html">NoSuchElementException</a>(...);
};
</pre><p> except that the action is performed atomically.</p>
<dl><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">key</td><td>key with which the specified value is associated. </td></tr>
<tr><td class="paramname">value</td><td>value to be associated with the specified key.</td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>copy of the previous value associated with specified key, or throws an <a class="el" href="classdecaf_1_1util_1_1_no_such_element_exception.html">NoSuchElementException</a> if there was no mapping for key.</dd></dl>
<dl><dt><b>Exceptions:</b></dt><dd>
<table class="exception">
<tr><td class="paramname"><a class="el" href="classdecaf_1_1util_1_1_no_such_element_exception.html">NoSuchElementException</a></td><td>if there was no previous mapping. </td></tr>
</table>
</dd>
</dl>
<p>Implements <a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_map.html#a0b2953adee47d6e0e62f80469ee40b14">decaf::util::concurrent::ConcurrentMap&lt; K, V, COMPARATOR &gt;</a>.</p>
</div>
</div>
<a class="anchor" id="af7d0c52d9f0f339e0b349a12834632d8"></a><!-- doxytag: member="decaf::util::concurrent::ConcurrentStlMap::replace" ref="af7d0c52d9f0f339e0b349a12834632d8" args="(const K &amp;key, const V &amp;oldValue, const V &amp;newValue)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename K, typename V, typename COMPARATOR = std::less&lt;K&gt;&gt; </div>
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_stl_map.html">decaf::util::concurrent::ConcurrentStlMap</a>&lt; K, V, COMPARATOR &gt;::replace </td>
<td>(</td>
<td class="paramtype">const K &amp;&#160;</td>
<td class="paramname"><em>key</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const V &amp;&#160;</td>
<td class="paramname"><em>oldValue</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const V &amp;&#160;</td>
<td class="paramname"><em>newValue</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td><code> [inline, virtual]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Replace entry for key only if currently mapped to given value. </p>
<p>Acts as </p>
<pre>
if( map.containsKey( key ) &amp;&amp; ( map.get( key ) == oldValue ) ) {
map.put( key, newValue );
return true;
} else {
return false;
}
</pre><p> except that the action is performed atomically.</p>
<dl><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">key</td><td>key with which the specified value is associated. </td></tr>
<tr><td class="paramname">oldValue</td><td>value expected to be associated with the specified key. </td></tr>
<tr><td class="paramname">newValue</td><td>value to be associated with the specified key.</td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if the value was replaced </dd></dl>
<p>Implements <a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_map.html#af8402647a781e848d66e54eb2731b4eb">decaf::util::concurrent::ConcurrentMap&lt; K, V, COMPARATOR &gt;</a>.</p>
</div>
</div>
<a class="anchor" id="ac3e08e99b9d90fd8fae19303fea88d17"></a><!-- doxytag: member="decaf::util::concurrent::ConcurrentStlMap::size" ref="ac3e08e99b9d90fd8fae19303fea88d17" args="() const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename K, typename V, typename COMPARATOR = std::less&lt;K&gt;&gt; </div>
<table class="memname">
<tr>
<td class="memname">virtual int <a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_stl_map.html">decaf::util::concurrent::ConcurrentStlMap</a>&lt; K, V, COMPARATOR &gt;::size </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const<code> [inline, virtual]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p><dl class="return"><dt><b>Returns:</b></dt><dd>The number of elements (key/value pairs) in this map.</dd></dl>
</p>
<p>Implements <a class="el" href="classdecaf_1_1util_1_1_map.html#ab13c6c72c2f948a0bec56c47f1f0ecb0">decaf::util::Map&lt; K, V, COMPARATOR &gt;</a>.</p>
</div>
</div>
<a class="anchor" id="aef127a8c60fc98306a1bca88bd8e4e99"></a><!-- doxytag: member="decaf::util::concurrent::ConcurrentStlMap::tryLock" ref="aef127a8c60fc98306a1bca88bd8e4e99" args="()" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename K, typename V, typename COMPARATOR = std::less&lt;K&gt;&gt; </div>
<table class="memname">
<tr>
<td class="memname">virtual bool <a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_stl_map.html">decaf::util::concurrent::ConcurrentStlMap</a>&lt; K, V, COMPARATOR &gt;::tryLock </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td><code> [inline, 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>
</div>
</div>
<a class="anchor" id="aaca964c3a28ced48573f2ffda4097daa"></a><!-- doxytag: member="decaf::util::concurrent::ConcurrentStlMap::unlock" ref="aaca964c3a28ced48573f2ffda4097daa" args="()" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename K, typename V, typename COMPARATOR = std::less&lt;K&gt;&gt; </div>
<table class="memname">
<tr>
<td class="memname">virtual void <a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_stl_map.html">decaf::util::concurrent::ConcurrentStlMap</a>&lt; K, V, COMPARATOR &gt;::unlock </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td><code> [inline, 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>
</div>
</div>
<a class="anchor" id="a69ac85267584009eb72723dcad41dd4a"></a><!-- doxytag: member="decaf::util::concurrent::ConcurrentStlMap::values" ref="a69ac85267584009eb72723dcad41dd4a" args="() const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename K, typename V, typename COMPARATOR = std::less&lt;K&gt;&gt; </div>
<table class="memname">
<tr>
<td class="memname">virtual std::vector&lt;V&gt; <a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_stl_map.html">decaf::util::concurrent::ConcurrentStlMap</a>&lt; K, V, COMPARATOR &gt;::values </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const<code> [inline, virtual]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p><dl class="return"><dt><b>Returns:</b></dt><dd>the entire set of values in this map as a std::vector.</dd></dl>
</p>
<p>Implements <a class="el" href="classdecaf_1_1util_1_1_map.html#a93196808223d4451680ec33a557dc024">decaf::util::Map&lt; K, V, COMPARATOR &gt;</a>.</p>
<p>Referenced by <a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_stl_map.html#a69ac85267584009eb72723dcad41dd4a">decaf::util::concurrent::ConcurrentStlMap&lt; Pointer&lt; ProducerId &gt;, Pointer&lt; ProducerState &gt;, ProducerId::COMPARATOR &gt;::values()</a>.</p>
</div>
</div>
<a class="anchor" id="aa9e27cc17818ff46db11abc168553b00"></a><!-- doxytag: member="decaf::util::concurrent::ConcurrentStlMap::wait" ref="aa9e27cc17818ff46db11abc168553b00" args="(long long millisecs)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename K, typename V, typename COMPARATOR = std::less&lt;K&gt;&gt; </div>
<table class="memname">
<tr>
<td class="memname">virtual void <a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_stl_map.html">decaf::util::concurrent::ConcurrentStlMap</a>&lt; K, V, COMPARATOR &gt;::wait </td>
<td>(</td>
<td class="paramtype">long long&#160;</td>
<td class="paramname"><em>millisecs</em></td><td>)</td>
<td><code> [inline, 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="a7639da4f97d5523a8def1896f3a2cb28"></a><!-- doxytag: member="decaf::util::concurrent::ConcurrentStlMap::wait" ref="a7639da4f97d5523a8def1896f3a2cb28" args="()" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename K, typename V, typename COMPARATOR = std::less&lt;K&gt;&gt; </div>
<table class="memname">
<tr>
<td class="memname">virtual void <a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_stl_map.html">decaf::util::concurrent::ConcurrentStlMap</a>&lt; K, V, COMPARATOR &gt;::wait </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td><code> [inline, 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>
</div>
</div>
<a class="anchor" id="ae156240d36abe89b0297fe683ce76ffd"></a><!-- doxytag: member="decaf::util::concurrent::ConcurrentStlMap::wait" ref="ae156240d36abe89b0297fe683ce76ffd" args="(long long millisecs, int nanos)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename K, typename V, typename COMPARATOR = std::less&lt;K&gt;&gt; </div>
<table class="memname">
<tr>
<td class="memname">virtual void <a class="el" href="classdecaf_1_1util_1_1concurrent_1_1_concurrent_stl_map.html">decaf::util::concurrent::ConcurrentStlMap</a>&lt; K, V, COMPARATOR &gt;::wait </td>
<td>(</td>
<td class="paramtype">long long&#160;</td>
<td class="paramname"><em>millisecs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>nanos</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td><code> [inline, 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>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>src/main/decaf/util/concurrent/<a class="el" href="_concurrent_stl_map_8h_source.html">ConcurrentStlMap.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_concurrent_stl_map.html">ConcurrentStlMap</a> </li>
<li class="footer">Generated on Mon Apr 25 2011 for activemq-cpp-3.4.0 by&#160;
<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>