http://git-wip-us.apache.org/repos/asf/mesos-site/blob/cfbae833/content/api/latest/c++/annotated.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/annotated.html 
b/content/api/latest/c++/annotated.html
index 50b1bab..9e052a5 100644
--- a/content/api/latest/c++/annotated.html
+++ b/content/api/latest/c++/annotated.html
@@ -248,11 +248,12 @@
 <tr id="row_17_4_11_" class="even" style="display:none;"><td 
class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span 
id="arr_17_4_11_" class="arrow" 
onclick="toggleFolder('17_4_11_')">&#9658;</span><span class="icona"><span 
class="icon">N</span></span><a class="el" 
href="namespacemesos_1_1internal_1_1master.html" 
target="_self">master</a></td><td class="desc"></td></tr>
 <tr id="row_17_4_11_0_" class="even" style="display:none;"><td 
class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span 
id="arr_17_4_11_0_" class="arrow" 
onclick="toggleFolder('17_4_11_0_')">&#9658;</span><span class="icona"><span 
class="icon">N</span></span><a class="el" 
href="namespacemesos_1_1internal_1_1master_1_1allocator.html" 
target="_self">allocator</a></td><td class="desc"></td></tr>
 <tr id="row_17_4_11_0_0_" class="even" style="display:none;"><td 
class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span 
id="arr_17_4_11_0_0_" class="arrow" 
onclick="toggleFolder('17_4_11_0_0_')">&#9658;</span><span class="icona"><span 
class="icon">N</span></span><a class="el" 
href="namespacemesos_1_1internal_1_1master_1_1allocator_1_1internal.html" 
target="_self">internal</a></td><td class="desc"></td></tr>
-<tr id="row_17_4_11_0_0_0_" class="even" style="display:none;"><td 
class="entry"><span style="width:80px;display:inline-block;">&#160;</span><span 
id="arr_17_4_11_0_0_0_" class="arrow" 
onclick="toggleFolder('17_4_11_0_0_0_')">&#9658;</span><span 
class="icona"><span class="icon">C</span></span><a class="el" 
href="classmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1HierarchicalAllocatorProcess.html"
 target="_self">HierarchicalAllocatorProcess</a></td><td class="desc"></td></tr>
-<tr id="row_17_4_11_0_0_0_0_" class="even" style="display:none;"><td 
class="entry"><span 
style="width:112px;display:inline-block;">&#160;</span><span 
class="icona"><span class="icon">C</span></span><a class="el" 
href="structmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1HierarchicalAllocatorProcess_1_1Framework.html"
 target="_self">Framework</a></td><td class="desc"></td></tr>
-<tr id="row_17_4_11_0_0_0_1_" class="even" style="display:none;"><td 
class="entry"><span style="width:96px;display:inline-block;">&#160;</span><span 
id="arr_17_4_11_0_0_0_1_" class="arrow" 
onclick="toggleFolder('17_4_11_0_0_0_1_')">&#9658;</span><span 
class="icona"><span class="icon">C</span></span><a class="el" 
href="classmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1HierarchicalAllocatorProcess_1_1Slave.html"
 target="_self">Slave</a></td><td class="desc"></td></tr>
-<tr id="row_17_4_11_0_0_0_1_0_" class="even" style="display:none;"><td 
class="entry"><span 
style="width:128px;display:inline-block;">&#160;</span><span 
class="icona"><span class="icon">C</span></span><a class="el" 
href="structmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1HierarchicalAllocatorProcess_1_1Slave_1_1Maintenance.html"
 target="_self">Maintenance</a></td><td class="desc"></td></tr>
-<tr id="row_17_4_11_0_0_1_" class="even" style="display:none;"><td 
class="entry"><span style="width:96px;display:inline-block;">&#160;</span><span 
class="icona"><span class="icon">C</span></span><a class="el" 
href="structmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1Metrics.html"
 target="_self">Metrics</a></td><td class="desc"></td></tr>
+<tr id="row_17_4_11_0_0_0_" class="even" style="display:none;"><td 
class="entry"><span style="width:96px;display:inline-block;">&#160;</span><span 
class="icona"><span class="icon">C</span></span><a class="el" 
href="structmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1FrameworkMetrics.html"
 target="_self">FrameworkMetrics</a></td><td class="desc"></td></tr>
+<tr id="row_17_4_11_0_0_1_" class="even" style="display:none;"><td 
class="entry"><span style="width:80px;display:inline-block;">&#160;</span><span 
id="arr_17_4_11_0_0_1_" class="arrow" 
onclick="toggleFolder('17_4_11_0_0_1_')">&#9658;</span><span 
class="icona"><span class="icon">C</span></span><a class="el" 
href="classmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1HierarchicalAllocatorProcess.html"
 target="_self">HierarchicalAllocatorProcess</a></td><td class="desc"></td></tr>
+<tr id="row_17_4_11_0_0_1_0_" class="even" style="display:none;"><td 
class="entry"><span 
style="width:112px;display:inline-block;">&#160;</span><span 
class="icona"><span class="icon">C</span></span><a class="el" 
href="structmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1HierarchicalAllocatorProcess_1_1Framework.html"
 target="_self">Framework</a></td><td class="desc"></td></tr>
+<tr id="row_17_4_11_0_0_1_1_" class="even" style="display:none;"><td 
class="entry"><span style="width:96px;display:inline-block;">&#160;</span><span 
id="arr_17_4_11_0_0_1_1_" class="arrow" 
onclick="toggleFolder('17_4_11_0_0_1_1_')">&#9658;</span><span 
class="icona"><span class="icon">C</span></span><a class="el" 
href="classmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1HierarchicalAllocatorProcess_1_1Slave.html"
 target="_self">Slave</a></td><td class="desc"></td></tr>
+<tr id="row_17_4_11_0_0_1_1_0_" class="even" style="display:none;"><td 
class="entry"><span 
style="width:128px;display:inline-block;">&#160;</span><span 
class="icona"><span class="icon">C</span></span><a class="el" 
href="structmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1HierarchicalAllocatorProcess_1_1Slave_1_1Maintenance.html"
 target="_self">Maintenance</a></td><td class="desc"></td></tr>
+<tr id="row_17_4_11_0_0_2_" class="even" style="display:none;"><td 
class="entry"><span style="width:96px;display:inline-block;">&#160;</span><span 
class="icona"><span class="icon">C</span></span><a class="el" 
href="structmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1Metrics.html"
 target="_self">Metrics</a></td><td class="desc"></td></tr>
 <tr id="row_17_4_11_0_1_" class="even" style="display:none;"><td 
class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span 
id="arr_17_4_11_0_1_" class="arrow" 
onclick="toggleFolder('17_4_11_0_1_')">&#9658;</span><span class="icona"><span 
class="icon">C</span></span><a class="el" 
href="classmesos_1_1internal_1_1master_1_1allocator_1_1DRFSorter.html" 
target="_self">DRFSorter</a></td><td class="desc"></td></tr>
 <tr id="row_17_4_11_0_1_0_" class="even" style="display:none;"><td 
class="entry"><span style="width:80px;display:inline-block;">&#160;</span><span 
id="arr_17_4_11_0_1_0_" class="arrow" 
onclick="toggleFolder('17_4_11_0_1_0_')">&#9658;</span><span 
class="icona"><span class="icon">C</span></span><a class="el" 
href="structmesos_1_1internal_1_1master_1_1allocator_1_1DRFSorter_1_1Node.html" 
target="_self">Node</a></td><td class="desc"></td></tr>
 <tr id="row_17_4_11_0_1_0_0_" class="even" style="display:none;"><td 
class="entry"><span 
style="width:112px;display:inline-block;">&#160;</span><span 
class="icona"><span class="icon">C</span></span><a class="el" 
href="structmesos_1_1internal_1_1master_1_1allocator_1_1DRFSorter_1_1Node_1_1Allocation.html"
 target="_self">Allocation</a></td><td class="desc"></td></tr>
@@ -284,23 +285,24 @@
 <tr id="row_17_4_11_5_" class="even" style="display:none;"><td 
class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span 
class="icona"><span class="icon">C</span></span><a class="el" 
href="classmesos_1_1internal_1_1master_1_1AdmitSlave.html" 
target="_self">AdmitSlave</a></td><td class="desc"></td></tr>
 <tr id="row_17_4_11_6_" class="even" style="display:none;"><td 
class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span 
class="icona"><span class="icon">C</span></span><a class="el" 
href="classmesos_1_1internal_1_1master_1_1Flags.html" 
target="_self">Flags</a></td><td class="desc"></td></tr>
 <tr id="row_17_4_11_7_" class="even" style="display:none;"><td 
class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span 
class="icona"><span class="icon">C</span></span><a class="el" 
href="structmesos_1_1internal_1_1master_1_1Framework.html" 
target="_self">Framework</a></td><td class="desc"></td></tr>
-<tr id="row_17_4_11_8_" class="even" style="display:none;"><td 
class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span 
class="icona"><span class="icon">C</span></span><a class="el" 
href="classmesos_1_1internal_1_1master_1_1Heartbeater.html" 
target="_self">Heartbeater</a></td><td class="desc"></td></tr>
-<tr id="row_17_4_11_9_" class="even" style="display:none;"><td 
class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span 
class="icona"><span class="icon">C</span></span><a class="el" 
href="structmesos_1_1internal_1_1master_1_1HttpConnection.html" 
target="_self">HttpConnection</a></td><td class="desc"></td></tr>
-<tr id="row_17_4_11_10_" class="even" style="display:none;"><td 
class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span 
class="icona"><span class="icon">C</span></span><a class="el" 
href="structmesos_1_1internal_1_1master_1_1Machine.html" 
target="_self">Machine</a></td><td class="desc"></td></tr>
-<tr id="row_17_4_11_11_" class="even" style="display:none;"><td 
class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span 
class="icona"><span class="icon">C</span></span><a class="el" 
href="classmesos_1_1internal_1_1master_1_1MarkSlaveGone.html" 
target="_self">MarkSlaveGone</a></td><td class="desc"></td></tr>
-<tr id="row_17_4_11_12_" class="even" style="display:none;"><td 
class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span 
class="icona"><span class="icon">C</span></span><a class="el" 
href="classmesos_1_1internal_1_1master_1_1MarkSlaveReachable.html" 
target="_self">MarkSlaveReachable</a></td><td class="desc"></td></tr>
-<tr id="row_17_4_11_13_" class="even" style="display:none;"><td 
class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span 
class="icona"><span class="icon">C</span></span><a class="el" 
href="classmesos_1_1internal_1_1master_1_1MarkSlaveUnreachable.html" 
target="_self">MarkSlaveUnreachable</a></td><td class="desc"></td></tr>
-<tr id="row_17_4_11_14_" class="even" style="display:none;"><td 
class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span 
class="icona"><span class="icon">C</span></span><a class="el" 
href="classmesos_1_1internal_1_1master_1_1Master.html" 
target="_self">Master</a></td><td class="desc"></td></tr>
-<tr id="row_17_4_11_15_" class="even" style="display:none;"><td 
class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span 
id="arr_17_4_11_15_" class="arrow" 
onclick="toggleFolder('17_4_11_15_')">&#9658;</span><span class="icona"><span 
class="icon">C</span></span><a class="el" 
href="structmesos_1_1internal_1_1master_1_1Metrics.html" 
target="_self">Metrics</a></td><td class="desc"></td></tr>
-<tr id="row_17_4_11_15_0_" class="even" style="display:none;"><td 
class="entry"><span style="width:80px;display:inline-block;">&#160;</span><span 
class="icona"><span class="icon">C</span></span><a class="el" 
href="structmesos_1_1internal_1_1master_1_1Metrics_1_1Frameworks.html" 
target="_self">Frameworks</a></td><td class="desc"></td></tr>
-<tr id="row_17_4_11_16_" class="even" style="display:none;"><td 
class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span 
class="icona"><span class="icon">C</span></span><a class="el" 
href="classmesos_1_1internal_1_1master_1_1Prune.html" 
target="_self">Prune</a></td><td class="desc"></td></tr>
-<tr id="row_17_4_11_17_" class="even" style="display:none;"><td 
class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span 
class="icona"><span class="icon">C</span></span><a class="el" 
href="classmesos_1_1internal_1_1master_1_1Registrar.html" 
target="_self">Registrar</a></td><td class="desc"></td></tr>
-<tr id="row_17_4_11_18_" class="even" style="display:none;"><td 
class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span 
class="icona"><span class="icon">C</span></span><a class="el" 
href="classmesos_1_1internal_1_1master_1_1RegistryOperation.html" 
target="_self">RegistryOperation</a></td><td class="desc"></td></tr>
-<tr id="row_17_4_11_19_" class="even" style="display:none;"><td 
class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span 
class="icona"><span class="icon">C</span></span><a class="el" 
href="classmesos_1_1internal_1_1master_1_1RemoveSlave.html" 
target="_self">RemoveSlave</a></td><td class="desc"></td></tr>
-<tr id="row_17_4_11_20_" class="even" style="display:none;"><td 
class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span 
class="icona"><span class="icon">C</span></span><a class="el" 
href="structmesos_1_1internal_1_1master_1_1Role.html" 
target="_self">Role</a></td><td class="desc"></td></tr>
-<tr id="row_17_4_11_21_" class="even" style="display:none;"><td 
class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span 
id="arr_17_4_11_21_" class="arrow" 
onclick="toggleFolder('17_4_11_21_')">&#9658;</span><span class="icona"><span 
class="icon">C</span></span><a class="el" 
href="structmesos_1_1internal_1_1master_1_1Slave.html" 
target="_self">Slave</a></td><td class="desc"></td></tr>
-<tr id="row_17_4_11_21_0_" class="even" style="display:none;"><td 
class="entry"><span style="width:80px;display:inline-block;">&#160;</span><span 
class="icona"><span class="icon">C</span></span><a class="el" 
href="structmesos_1_1internal_1_1master_1_1Slave_1_1ResourceProvider.html" 
target="_self">ResourceProvider</a></td><td class="desc"></td></tr>
-<tr id="row_17_4_11_22_" class="even" style="display:none;"><td 
class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span 
class="icona"><span class="icon">C</span></span><a class="el" 
href="classmesos_1_1internal_1_1master_1_1UpdateSlave.html" 
target="_self">UpdateSlave</a></td><td class="desc"></td></tr>
+<tr id="row_17_4_11_8_" class="even" style="display:none;"><td 
class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span 
class="icona"><span class="icon">C</span></span><a class="el" 
href="structmesos_1_1internal_1_1master_1_1FrameworkMetrics.html" 
target="_self">FrameworkMetrics</a></td><td class="desc"></td></tr>
+<tr id="row_17_4_11_9_" class="even" style="display:none;"><td 
class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span 
class="icona"><span class="icon">C</span></span><a class="el" 
href="classmesos_1_1internal_1_1master_1_1Heartbeater.html" 
target="_self">Heartbeater</a></td><td class="desc"></td></tr>
+<tr id="row_17_4_11_10_" class="even" style="display:none;"><td 
class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span 
class="icona"><span class="icon">C</span></span><a class="el" 
href="structmesos_1_1internal_1_1master_1_1HttpConnection.html" 
target="_self">HttpConnection</a></td><td class="desc"></td></tr>
+<tr id="row_17_4_11_11_" class="even" style="display:none;"><td 
class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span 
class="icona"><span class="icon">C</span></span><a class="el" 
href="structmesos_1_1internal_1_1master_1_1Machine.html" 
target="_self">Machine</a></td><td class="desc"></td></tr>
+<tr id="row_17_4_11_12_" class="even" style="display:none;"><td 
class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span 
class="icona"><span class="icon">C</span></span><a class="el" 
href="classmesos_1_1internal_1_1master_1_1MarkSlaveGone.html" 
target="_self">MarkSlaveGone</a></td><td class="desc"></td></tr>
+<tr id="row_17_4_11_13_" class="even" style="display:none;"><td 
class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span 
class="icona"><span class="icon">C</span></span><a class="el" 
href="classmesos_1_1internal_1_1master_1_1MarkSlaveReachable.html" 
target="_self">MarkSlaveReachable</a></td><td class="desc"></td></tr>
+<tr id="row_17_4_11_14_" class="even" style="display:none;"><td 
class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span 
class="icona"><span class="icon">C</span></span><a class="el" 
href="classmesos_1_1internal_1_1master_1_1MarkSlaveUnreachable.html" 
target="_self">MarkSlaveUnreachable</a></td><td class="desc"></td></tr>
+<tr id="row_17_4_11_15_" class="even" style="display:none;"><td 
class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span 
class="icona"><span class="icon">C</span></span><a class="el" 
href="classmesos_1_1internal_1_1master_1_1Master.html" 
target="_self">Master</a></td><td class="desc"></td></tr>
+<tr id="row_17_4_11_16_" class="even" style="display:none;"><td 
class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span 
id="arr_17_4_11_16_" class="arrow" 
onclick="toggleFolder('17_4_11_16_')">&#9658;</span><span class="icona"><span 
class="icon">C</span></span><a class="el" 
href="structmesos_1_1internal_1_1master_1_1Metrics.html" 
target="_self">Metrics</a></td><td class="desc"></td></tr>
+<tr id="row_17_4_11_16_0_" class="even" style="display:none;"><td 
class="entry"><span style="width:80px;display:inline-block;">&#160;</span><span 
class="icona"><span class="icon">C</span></span><a class="el" 
href="structmesos_1_1internal_1_1master_1_1Metrics_1_1Frameworks.html" 
target="_self">Frameworks</a></td><td class="desc"></td></tr>
+<tr id="row_17_4_11_17_" class="even" style="display:none;"><td 
class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span 
class="icona"><span class="icon">C</span></span><a class="el" 
href="classmesos_1_1internal_1_1master_1_1Prune.html" 
target="_self">Prune</a></td><td class="desc"></td></tr>
+<tr id="row_17_4_11_18_" class="even" style="display:none;"><td 
class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span 
class="icona"><span class="icon">C</span></span><a class="el" 
href="classmesos_1_1internal_1_1master_1_1Registrar.html" 
target="_self">Registrar</a></td><td class="desc"></td></tr>
+<tr id="row_17_4_11_19_" class="even" style="display:none;"><td 
class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span 
class="icona"><span class="icon">C</span></span><a class="el" 
href="classmesos_1_1internal_1_1master_1_1RegistryOperation.html" 
target="_self">RegistryOperation</a></td><td class="desc"></td></tr>
+<tr id="row_17_4_11_20_" class="even" style="display:none;"><td 
class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span 
class="icona"><span class="icon">C</span></span><a class="el" 
href="classmesos_1_1internal_1_1master_1_1RemoveSlave.html" 
target="_self">RemoveSlave</a></td><td class="desc"></td></tr>
+<tr id="row_17_4_11_21_" class="even" style="display:none;"><td 
class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span 
class="icona"><span class="icon">C</span></span><a class="el" 
href="structmesos_1_1internal_1_1master_1_1Role.html" 
target="_self">Role</a></td><td class="desc"></td></tr>
+<tr id="row_17_4_11_22_" class="even" style="display:none;"><td 
class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span 
id="arr_17_4_11_22_" class="arrow" 
onclick="toggleFolder('17_4_11_22_')">&#9658;</span><span class="icona"><span 
class="icon">C</span></span><a class="el" 
href="structmesos_1_1internal_1_1master_1_1Slave.html" 
target="_self">Slave</a></td><td class="desc"></td></tr>
+<tr id="row_17_4_11_22_0_" class="even" style="display:none;"><td 
class="entry"><span style="width:80px;display:inline-block;">&#160;</span><span 
class="icona"><span class="icon">C</span></span><a class="el" 
href="structmesos_1_1internal_1_1master_1_1Slave_1_1ResourceProvider.html" 
target="_self">ResourceProvider</a></td><td class="desc"></td></tr>
+<tr id="row_17_4_11_23_" class="even" style="display:none;"><td 
class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span 
class="icona"><span class="icon">C</span></span><a class="el" 
href="classmesos_1_1internal_1_1master_1_1UpdateSlave.html" 
target="_self">UpdateSlave</a></td><td class="desc"></td></tr>
 <tr id="row_17_4_12_" class="even" style="display:none;"><td 
class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span 
id="arr_17_4_12_" class="arrow" 
onclick="toggleFolder('17_4_12_')">&#9658;</span><span class="icona"><span 
class="icon">N</span></span><a class="el" 
href="namespacemesos_1_1internal_1_1protobuf.html" 
target="_self">protobuf</a></td><td class="desc"></td></tr>
 <tr id="row_17_4_12_0_" class="even" style="display:none;"><td 
class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span 
id="arr_17_4_12_0_" class="arrow" 
onclick="toggleFolder('17_4_12_0_')">&#9658;</span><span class="icona"><span 
class="icon">N</span></span><a class="el" 
href="namespacemesos_1_1internal_1_1protobuf_1_1framework.html" 
target="_self">framework</a></td><td class="desc"></td></tr>
 <tr id="row_17_4_12_0_0_" class="even" style="display:none;"><td 
class="entry"><span style="width:80px;display:inline-block;">&#160;</span><span 
class="icona"><span class="icon">C</span></span><a class="el" 
href="structmesos_1_1internal_1_1protobuf_1_1framework_1_1Capabilities.html" 
target="_self">Capabilities</a></td><td class="desc"></td></tr>

http://git-wip-us.apache.org/repos/asf/mesos-site/blob/cfbae833/content/api/latest/c++/boundedhashmap_8hpp_source.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/boundedhashmap_8hpp_source.html 
b/content/api/latest/c++/boundedhashmap_8hpp_source.html
index 02bc62c..718766e 100644
--- a/content/api/latest/c++/boundedhashmap_8hpp_source.html
+++ b/content/api/latest/c++/boundedhashmap_8hpp_source.html
@@ -52,7 +52,7 @@
 <div class="title">boundedhashmap.hpp</div>  </div>
 </div><!--header-->
 <div class="contents">
-<a href="boundedhashmap_8hpp.html">Go to the documentation of this 
file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span 
class="lineno">    1</span>&#160;<span class="comment">// Licensed under the 
Apache License, Version 2.0 (the &quot;License&quot;);</span></div><div 
class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span 
class="comment">// you may not use this file except in compliance with the 
License.</span></div><div class="line"><a name="l00003"></a><span 
class="lineno">    3</span>&#160;<span class="comment">// You may obtain a copy 
of the License at</span></div><div class="line"><a name="l00004"></a><span 
class="lineno">    4</span>&#160;<span class="comment">//</span></div><div 
class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span 
class="comment">//  http://www.apache.org/licenses/LICENSE-2.0</span></div><div 
class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span 
class="comment">/
 /</span></div><div class="line"><a name="l00007"></a><span class="lineno">    
7</span>&#160;<span class="comment">// Unless required by applicable law or 
agreed to in writing, software</span></div><div class="line"><a 
name="l00008"></a><span class="lineno">    8</span>&#160;<span 
class="comment">// distributed under the License is distributed on an &quot;AS 
IS&quot; BASIS,</span></div><div class="line"><a name="l00009"></a><span 
class="lineno">    9</span>&#160;<span class="comment">// WITHOUT WARRANTIES OR 
CONDITIONS OF ANY KIND, either express or implied.</span></div><div 
class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span 
class="comment">// See the License for the specific language governing 
permissions and</span></div><div class="line"><a name="l00011"></a><span 
class="lineno">   11</span>&#160;<span class="comment">// limitations under the 
License.</span></div><div class="line"><a name="l00012"></a><span 
class="lineno">   12</span>&#160;<span class="p
 reprocessor">#ifndef __STOUT_BOUNDEDHASHMAP_HPP__</span></div><div 
class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span 
class="preprocessor">#define __STOUT_BOUNDEDHASHMAP_HPP__</span></div><div 
class="line"><a name="l00014"></a><span class="lineno">   
14</span>&#160;</div><div class="line"><a name="l00015"></a><span 
class="lineno">   15</span>&#160;<span class="preprocessor">#include 
&lt;list&gt;</span></div><div class="line"><a name="l00016"></a><span 
class="lineno">   16</span>&#160;<span class="preprocessor">#include 
&lt;utility&gt;</span></div><div class="line"><a name="l00017"></a><span 
class="lineno">   17</span>&#160;</div><div class="line"><a 
name="l00018"></a><span class="lineno">   18</span>&#160;<span 
class="preprocessor">#include &lt;<a class="code" 
href="stout_2include_2stout_2check_8hpp.html">stout/check.hpp</a>&gt;</span></div><div
 class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span 
class="preprocessor">#include &l
 t;<a class="code" 
href="hashmap_8hpp.html">stout/hashmap.hpp</a>&gt;</span></div><div 
class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span 
class="preprocessor">#include &lt;<a class="code" 
href="option_8hpp.html">stout/option.hpp</a>&gt;</span></div><div 
class="line"><a name="l00021"></a><span class="lineno">   
21</span>&#160;</div><div class="line"><a name="l00022"></a><span 
class="lineno">   22</span>&#160;<span class="comment">// A hashmap that 
contains a fixed number of entries at most. Entries</span></div><div 
class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span 
class="comment">// are evicted in FIFO order -- i.e., when the capacity of the 
map is</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 
  24</span>&#160;<span class="comment">// reached, the next insertion results 
in removing the oldest entry.</span></div><div class="line"><a 
name="l00025"></a><span class="lineno">   25</span>&#160;<span class="c
 omment">// Updating an entry does not change insertion order.</span></div><div 
class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span 
class="keyword">template</span> &lt;<span class="keyword">typename</span> Key, 
<span class="keyword">typename</span> Value&gt;</div><div class="line"><a 
name="l00027"></a><span class="lineno"><a class="line" 
href="classBoundedHashMap.html">   27</a></span>&#160;<span 
class="keyword">class </span><a class="code" 
href="classBoundedHashMap.html">BoundedHashMap</a></div><div class="line"><a 
name="l00028"></a><span class="lineno">   28</span>&#160;{</div><div 
class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span 
class="keyword">public</span>:</div><div class="line"><a 
name="l00030"></a><span class="lineno"><a class="line" 
href="classBoundedHashMap.html#a35ccd513de49c362d6a76e87e5923143">   
30</a></span>&#160;  <span class="keyword">typedef</span> std::pair&lt;Key, 
Value&gt; <a class="code" href="classBounded
 HashMap.html#a35ccd513de49c362d6a76e87e5923143">entry</a>;</div><div 
class="line"><a name="l00031"></a><span class="lineno"><a class="line" 
href="classBoundedHashMap.html#a8dccc532c99c340728c8f186230fb64e">   
31</a></span>&#160;  <span class="keyword">typedef</span> 
std::list&lt;entry&gt; <a class="code" 
href="classBoundedHashMap.html#a8dccc532c99c340728c8f186230fb64e">list</a>;</div><div
 class="line"><a name="l00032"></a><span class="lineno"><a class="line" 
href="classBoundedHashMap.html#a1c466b3b3f48efaea49e9d66903a7526">   
32</a></span>&#160;  <span class="keyword">typedef</span> <a class="code" 
href="classhashmap.html">hashmap&lt;Key, typename list::iterator&gt;</a> <a 
class="code" 
href="classBoundedHashMap.html#a1c466b3b3f48efaea49e9d66903a7526">map</a>;</div><div
 class="line"><a name="l00033"></a><span class="lineno">   
33</span>&#160;</div><div class="line"><a name="l00034"></a><span 
class="lineno"><a class="line" 
href="classBoundedHashMap.html#a311e29319ba27184ab59b5674312ed
 09">   34</a></span>&#160;  <a class="code" 
href="classBoundedHashMap.html#a311e29319ba27184ab59b5674312ed09">BoundedHashMap</a>(<span
 class="keywordtype">size_t</span> capacity) : capacity_(capacity) {}</div><div 
class="line"><a name="l00035"></a><span class="lineno">   
35</span>&#160;</div><div class="line"><a name="l00036"></a><span 
class="lineno">   36</span>&#160;  <span class="comment">// NOTE: We don&#39;t 
provide `operator[]`, unlike LinkedHashMap,</span></div><div class="line"><a 
name="l00037"></a><span class="lineno">   37</span>&#160;  <span 
class="comment">// because it would be difficult to implement correctly for 
bounded</span></div><div class="line"><a name="l00038"></a><span 
class="lineno">   38</span>&#160;  <span class="comment">// maps with zero 
capacity.</span></div><div class="line"><a name="l00039"></a><span 
class="lineno"><a class="line" 
href="classBoundedHashMap.html#a54e903e8c96c78d913e74609d836ae67">   
39</a></span>&#160;  <span class="keywordtype">void</sp
 an> <span class="keyword">set</span>(<span class="keyword">const</span> 
Key&amp; key, <span class="keyword">const</span> Value&amp; value)</div><div 
class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;  
{</div><div class="line"><a name="l00041"></a><span class="lineno">   
41</span>&#160;    <span class="keywordflow">if</span> (capacity_ == 0) 
{</div><div class="line"><a name="l00042"></a><span class="lineno">   
42</span>&#160;      <span class="keywordflow">return</span>;</div><div 
class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;    
}</div><div class="line"><a name="l00044"></a><span class="lineno">   
44</span>&#160;</div><div class="line"><a name="l00045"></a><span 
class="lineno">   45</span>&#160;    <span class="keywordflow">if</span> 
(!keys_.<a class="code" 
href="classhashmap.html#ac142b3f8b73c76d5d4545bbd299007e5">contains</a>(key)) 
{</div><div class="line"><a name="l00046"></a><span class="lineno">   
46</span>&#160;      <span clas
 s="comment">// Insert a new list entry and get a &quot;pointer&quot; to its 
location.</span></div><div class="line"><a name="l00047"></a><span 
class="lineno">   47</span>&#160;      <span class="keyword">typename</span> 
list::iterator iter =</div><div class="line"><a name="l00048"></a><span 
class="lineno">   48</span>&#160;        entries_.insert(entries_.end(), 
std::make_pair(key, value));</div><div class="line"><a name="l00049"></a><span 
class="lineno">   49</span>&#160;</div><div class="line"><a 
name="l00050"></a><span class="lineno">   50</span>&#160;      keys_[key] = 
iter;</div><div class="line"><a name="l00051"></a><span class="lineno">   
51</span>&#160;</div><div class="line"><a name="l00052"></a><span 
class="lineno">   52</span>&#160;      <span class="comment">// If the map now 
exceeds its capacity, remove the oldest entry.</span></div><div class="line"><a 
name="l00053"></a><span class="lineno">   53</span>&#160;      <span 
class="comment">// Note that removal from both st
 d::list and hashmap does not</span></div><div class="line"><a 
name="l00054"></a><span class="lineno">   54</span>&#160;      <span 
class="comment">// invalidate iterators that reference other 
entries.</span></div><div class="line"><a name="l00055"></a><span 
class="lineno">   55</span>&#160;      <span class="keywordflow">if</span> 
(keys_.size() &gt; capacity_) {</div><div class="line"><a 
name="l00056"></a><span class="lineno">   56</span>&#160;        <span 
class="keyword">typename</span> list::iterator firstEntry = 
entries_.begin();</div><div class="line"><a name="l00057"></a><span 
class="lineno">   57</span>&#160;        
keys_.erase(firstEntry-&gt;first);</div><div class="line"><a 
name="l00058"></a><span class="lineno">   58</span>&#160;        
entries_.erase(firstEntry);</div><div class="line"><a name="l00059"></a><span 
class="lineno">   59</span>&#160;</div><div class="line"><a 
name="l00060"></a><span class="lineno">   60</span>&#160;        
CHECK(keys_.size() == capacity_);</di
 v><div class="line"><a name="l00061"></a><span class="lineno">   
61</span>&#160;      }</div><div class="line"><a name="l00062"></a><span 
class="lineno">   62</span>&#160;    } <span class="keywordflow">else</span> 
{</div><div class="line"><a name="l00063"></a><span class="lineno">   
63</span>&#160;      keys_[key]-&gt;second = value;</div><div class="line"><a 
name="l00064"></a><span class="lineno">   64</span>&#160;    }</div><div 
class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;  
}</div><div class="line"><a name="l00066"></a><span class="lineno">   
66</span>&#160;</div><div class="line"><a name="l00067"></a><span 
class="lineno"><a class="line" 
href="classBoundedHashMap.html#a852bfef273fe4f90653d271378a2cbec">   
67</a></span>&#160;  <a class="code" 
href="classOption.html">Option&lt;Value&gt;</a> <span 
class="keyword">get</span>(<span class="keyword">const</span> Key&amp; key) 
<span class="keyword">const</span></div><div class="line"><a 
name="l00068"></a><spa
 n class="lineno">   68</span>&#160;  {</div><div class="line"><a 
name="l00069"></a><span class="lineno">   69</span>&#160;    <span 
class="keywordflow">if</span> (keys_.<a class="code" 
href="classhashmap.html#ac142b3f8b73c76d5d4545bbd299007e5">contains</a>(key)) 
{</div><div class="line"><a name="l00070"></a><span class="lineno">   
70</span>&#160;      <span class="keywordflow">return</span> 
keys_.at(key)-&gt;second;</div><div class="line"><a name="l00071"></a><span 
class="lineno">   71</span>&#160;    }</div><div class="line"><a 
name="l00072"></a><span class="lineno">   72</span>&#160;    <span 
class="keywordflow">return</span> <a class="code" 
href="structNone.html">None</a>();</div><div class="line"><a 
name="l00073"></a><span class="lineno">   73</span>&#160;  }</div><div 
class="line"><a name="l00074"></a><span class="lineno">   
74</span>&#160;</div><div class="line"><a name="l00075"></a><span 
class="lineno"><a class="line" 
href="classBoundedHashMap.html#a70ac620485764a32411dfd63cb
 ed12c5">   75</a></span>&#160;  Value&amp; <a class="code" 
href="classBoundedHashMap.html#a70ac620485764a32411dfd63cbed12c5">at</a>(<span 
class="keyword">const</span> Key&amp; key)</div><div class="line"><a 
name="l00076"></a><span class="lineno">   76</span>&#160;  {</div><div 
class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;    
<span class="keywordflow">return</span> keys_.at(key)-&gt;second;</div><div 
class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;  
}</div><div class="line"><a name="l00079"></a><span class="lineno">   
79</span>&#160;</div><div class="line"><a name="l00080"></a><span 
class="lineno"><a class="line" 
href="classBoundedHashMap.html#ad821f79df9d83977f91240c495257c5f">   
80</a></span>&#160;  <span class="keyword">const</span> Value&amp; <a 
class="code" 
href="classBoundedHashMap.html#ad821f79df9d83977f91240c495257c5f">at</a>(<span 
class="keyword">const</span> Key&amp; key)<span class="keyword"> 
const</span></div><div class
 ="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;<span 
class="keyword">  </span>{</div><div class="line"><a name="l00082"></a><span 
class="lineno">   82</span>&#160;    <span class="keywordflow">return</span> 
keys_.at(key)-&gt;second;</div><div class="line"><a name="l00083"></a><span 
class="lineno">   83</span>&#160;  }</div><div class="line"><a 
name="l00084"></a><span class="lineno">   84</span>&#160;</div><div 
class="line"><a name="l00085"></a><span class="lineno"><a class="line" 
href="classBoundedHashMap.html#a301ca7659ecbb2b5e054b00de4973e8c">   
85</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" 
href="classBoundedHashMap.html#a301ca7659ecbb2b5e054b00de4973e8c">contains</a>(<span
 class="keyword">const</span> Key&amp; key)<span class="keyword"> 
const</span></div><div class="line"><a name="l00086"></a><span class="lineno">  
 86</span>&#160;<span class="keyword">  </span>{</div><div class="line"><a 
name="l00087"></a><span class="lineno">   
 87</span>&#160;    <span class="keywordflow">return</span> keys_.<a 
class="code" 
href="classhashmap.html#ac142b3f8b73c76d5d4545bbd299007e5">contains</a>(key);</div><div
 class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;  
}</div><div class="line"><a name="l00089"></a><span class="lineno">   
89</span>&#160;</div><div class="line"><a name="l00090"></a><span 
class="lineno"><a class="line" 
href="classBoundedHashMap.html#a0d549fc5e940b2117b65083fc796f035">   
90</a></span>&#160;  <span class="keywordtype">size_t</span> <a class="code" 
href="classBoundedHashMap.html#a0d549fc5e940b2117b65083fc796f035">erase</a>(<span
 class="keyword">const</span> Key&amp; key)</div><div class="line"><a 
name="l00091"></a><span class="lineno">   91</span>&#160;  {</div><div 
class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;    
<span class="keywordflow">if</span> (keys_.<a class="code" 
href="classhashmap.html#ac142b3f8b73c76d5d4545bbd299007e5">contains</a>(key)) 
{</d
 iv><div class="line"><a name="l00093"></a><span class="lineno">   
93</span>&#160;      <span class="keyword">typename</span> list::iterator entry 
= keys_[key];</div><div class="line"><a name="l00094"></a><span class="lineno"> 
  94</span>&#160;      keys_.erase(key);</div><div class="line"><a 
name="l00095"></a><span class="lineno">   95</span>&#160;      
entries_.erase(entry);</div><div class="line"><a name="l00096"></a><span 
class="lineno">   96</span>&#160;</div><div class="line"><a 
name="l00097"></a><span class="lineno">   97</span>&#160;      <span 
class="keywordflow">return</span> 1;</div><div class="line"><a 
name="l00098"></a><span class="lineno">   98</span>&#160;    }</div><div 
class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;    
<span class="keywordflow">return</span> 0;</div><div class="line"><a 
name="l00100"></a><span class="lineno">  100</span>&#160;  }</div><div 
class="line"><a name="l00101"></a><span class="lineno">  
101</span>&#160;</div><div cl
 ass="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;  <span 
class="comment">// Returns the keys in the map in insertion 
order.</span></div><div class="line"><a name="l00103"></a><span 
class="lineno"><a class="line" 
href="classBoundedHashMap.html#ab68b4c5ea8887bff0b68853223b130f3">  
103</a></span>&#160;  std::list&lt;Key&gt; <a class="code" 
href="classBoundedHashMap.html#ab68b4c5ea8887bff0b68853223b130f3">keys</a>()<span
 class="keyword"> const</span></div><div class="line"><a 
name="l00104"></a><span class="lineno">  104</span>&#160;<span class="keyword"> 
 </span>{</div><div class="line"><a name="l00105"></a><span class="lineno">  
105</span>&#160;    std::list&lt;Key&gt; result;</div><div class="line"><a 
name="l00106"></a><span class="lineno">  106</span>&#160;</div><div 
class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;    
<span class="keywordflow">foreach</span> (<span class="keyword">const</span> 
entry&amp; entry, entries_) {</div><div clas
 s="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;      
result.push_back(entry.first);</div><div class="line"><a 
name="l00109"></a><span class="lineno">  109</span>&#160;    }</div><div 
class="line"><a name="l00110"></a><span class="lineno">  
110</span>&#160;</div><div class="line"><a name="l00111"></a><span 
class="lineno">  111</span>&#160;    <span class="keywordflow">return</span> 
result;</div><div class="line"><a name="l00112"></a><span class="lineno">  
112</span>&#160;  }</div><div class="line"><a name="l00113"></a><span 
class="lineno">  113</span>&#160;</div><div class="line"><a 
name="l00114"></a><span class="lineno">  114</span>&#160;  <span 
class="comment">// Returns the values in the map in insertion 
order.</span></div><div class="line"><a name="l00115"></a><span 
class="lineno"><a class="line" 
href="classBoundedHashMap.html#a3230dcf13d6b5099fe3aba148573e7a9">  
115</a></span>&#160;  std::list&lt;Value&gt; <a class="code" 
href="classBoundedHashMap.html#a323
 0dcf13d6b5099fe3aba148573e7a9">values</a>()<span class="keyword"> 
const</span></div><div class="line"><a name="l00116"></a><span class="lineno">  
116</span>&#160;<span class="keyword">  </span>{</div><div class="line"><a 
name="l00117"></a><span class="lineno">  117</span>&#160;    
std::list&lt;Value&gt; result;</div><div class="line"><a 
name="l00118"></a><span class="lineno">  118</span>&#160;</div><div 
class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;    
<span class="keywordflow">foreach</span> (<span class="keyword">const</span> 
entry&amp; entry, entries_) {</div><div class="line"><a name="l00120"></a><span 
class="lineno">  120</span>&#160;      
result.push_back(entry.second);</div><div class="line"><a 
name="l00121"></a><span class="lineno">  121</span>&#160;    }</div><div 
class="line"><a name="l00122"></a><span class="lineno">  
122</span>&#160;</div><div class="line"><a name="l00123"></a><span 
class="lineno">  123</span>&#160;    <span class="keywordflow"
 >return</span> result;</div><div class="line"><a name="l00124"></a><span 
 >class="lineno">  124</span>&#160;  }</div><div class="line"><a 
 >name="l00125"></a><span class="lineno">  125</span>&#160;</div><div 
 >class="line"><a name="l00126"></a><span class="lineno"><a class="line" 
 >href="classBoundedHashMap.html#aa0c84c4c9636449ab35ef13ecce36266">  
 >126</a></span>&#160;  <span class="keywordtype">size_t</span> <a class="code" 
 >href="classBoundedHashMap.html#aa0c84c4c9636449ab35ef13ecce36266">size</a>()<span
 > class="keyword"> const</span></div><div class="line"><a 
 >name="l00127"></a><span class="lineno">  127</span>&#160;<span 
 >class="keyword">  </span>{</div><div class="line"><a name="l00128"></a><span 
 >class="lineno">  128</span>&#160;    <span class="keywordflow">return</span> 
 >keys_.size();</div><div class="line"><a name="l00129"></a><span 
 >class="lineno">  129</span>&#160;  }</div><div class="line"><a 
 >name="l00130"></a><span class="lineno">  130</span>&#160;</div><div 
 >class="line"><a name="l001
 31"></a><span class="lineno"><a class="line" 
href="classBoundedHashMap.html#aa628a0c249203758e056473698c53ed6">  
131</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" 
href="classBoundedHashMap.html#aa628a0c249203758e056473698c53ed6">empty</a>()<span
 class="keyword"> const</span></div><div class="line"><a 
name="l00132"></a><span class="lineno">  132</span>&#160;<span class="keyword"> 
 </span>{</div><div class="line"><a name="l00133"></a><span class="lineno">  
133</span>&#160;    <span class="keywordflow">return</span> 
keys_.empty();</div><div class="line"><a name="l00134"></a><span 
class="lineno">  134</span>&#160;  }</div><div class="line"><a 
name="l00135"></a><span class="lineno">  135</span>&#160;</div><div 
class="line"><a name="l00136"></a><span class="lineno"><a class="line" 
href="classBoundedHashMap.html#aed7138e6b983ced56b126a5bc43e37c8">  
136</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" 
href="classBoundedHashMap.html#aed7138e6b
 983ced56b126a5bc43e37c8">clear</a>()</div><div class="line"><a 
name="l00137"></a><span class="lineno">  137</span>&#160;  {</div><div 
class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;    
entries_.clear();</div><div class="line"><a name="l00139"></a><span 
class="lineno">  139</span>&#160;    keys_.clear();</div><div class="line"><a 
name="l00140"></a><span class="lineno">  140</span>&#160;  }</div><div 
class="line"><a name="l00141"></a><span class="lineno">  
141</span>&#160;</div><div class="line"><a name="l00142"></a><span 
class="lineno">  142</span>&#160;  <span class="comment">// Support for 
iteration; this allows using `foreachpair` and</span></div><div class="line"><a 
name="l00143"></a><span class="lineno">  143</span>&#160;  <span 
class="comment">// related constructs. Note that these iterate over the map 
in</span></div><div class="line"><a name="l00144"></a><span class="lineno">  
144</span>&#160;  <span class="comment">// insertion order.</span></div><di
 v class="line"><a name="l00145"></a><span class="lineno"><a class="line" 
href="classBoundedHashMap.html#a4cb91ebc0803532a11b448886a8c2dce">  
145</a></span>&#160;  <span class="keyword">typename</span> list::iterator <a 
class="code" 
href="classBoundedHashMap.html#a4cb91ebc0803532a11b448886a8c2dce">begin</a>() { 
<span class="keywordflow">return</span> entries_.begin(); }</div><div 
class="line"><a name="l00146"></a><span class="lineno"><a class="line" 
href="classBoundedHashMap.html#a8ec9da0f54d5b063b34e0fb33485cc8a">  
146</a></span>&#160;  <span class="keyword">typename</span> list::iterator <a 
class="code" 
href="classBoundedHashMap.html#a8ec9da0f54d5b063b34e0fb33485cc8a">end</a>() { 
<span class="keywordflow">return</span> entries_.end(); }</div><div 
class="line"><a name="l00147"></a><span class="lineno">  
147</span>&#160;</div><div class="line"><a name="l00148"></a><span 
class="lineno"><a class="line" 
href="classBoundedHashMap.html#a9a07a63071611db41410f0a707e16575">  
148</a></span>&#
 160;  <span class="keyword">typename</span> list::const_iterator <a 
class="code" 
href="classBoundedHashMap.html#a9a07a63071611db41410f0a707e16575">begin</a>()<span
 class="keyword"> const </span>{ <span class="keywordflow">return</span> 
entries_.cbegin(); }</div><div class="line"><a name="l00149"></a><span 
class="lineno"><a class="line" 
href="classBoundedHashMap.html#a7d90d9668967c2ed885cc6a6e72d558c">  
149</a></span>&#160;  <span class="keyword">typename</span> 
list::const_iterator <a class="code" 
href="classBoundedHashMap.html#a7d90d9668967c2ed885cc6a6e72d558c">end</a>()<span
 class="keyword"> const </span>{ <span class="keywordflow">return</span> 
entries_.cend(); }</div><div class="line"><a name="l00150"></a><span 
class="lineno">  150</span>&#160;</div><div class="line"><a 
name="l00151"></a><span class="lineno">  151</span>&#160;<span 
class="keyword">private</span>:</div><div class="line"><a 
name="l00152"></a><span class="lineno">  152</span>&#160;  <span 
class="keyword">const</spa
 n> <span class="keywordtype">size_t</span> capacity_;</div><div 
class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;  list 
entries_; <span class="comment">// Key-value pairs ordered by insertion 
order.</span></div><div class="line"><a name="l00154"></a><span class="lineno"> 
 154</span>&#160;  map keys_; <span class="comment">// Map from key to 
&quot;pointer&quot; to key&#39;s location in list.</span></div><div 
class="line"><a name="l00155"></a><span class="lineno">  
155</span>&#160;};</div><div class="line"><a name="l00156"></a><span 
class="lineno">  156</span>&#160;</div><div class="line"><a 
name="l00157"></a><span class="lineno">  157</span>&#160;<span 
class="preprocessor">#endif // __STOUT_BOUNDEDHASHMAP_HPP__</span></div><div 
class="ttc" 
id="classBoundedHashMap_html_a311e29319ba27184ab59b5674312ed09"><div 
class="ttname"><a 
href="classBoundedHashMap.html#a311e29319ba27184ab59b5674312ed09">BoundedHashMap::BoundedHashMap</a></div><div
 class="ttdeci">BoundedHash
 Map(size_t capacity)</div><div class="ttdef"><b>Definition:</b> 
boundedhashmap.hpp:34</div></div>
+<a href="boundedhashmap_8hpp.html">Go to the documentation of this 
file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span 
class="lineno">    1</span>&#160;<span class="comment">// Licensed under the 
Apache License, Version 2.0 (the &quot;License&quot;);</span></div><div 
class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span 
class="comment">// you may not use this file except in compliance with the 
License.</span></div><div class="line"><a name="l00003"></a><span 
class="lineno">    3</span>&#160;<span class="comment">// You may obtain a copy 
of the License at</span></div><div class="line"><a name="l00004"></a><span 
class="lineno">    4</span>&#160;<span class="comment">//</span></div><div 
class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span 
class="comment">//  http://www.apache.org/licenses/LICENSE-2.0</span></div><div 
class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span 
class="comment">/
 /</span></div><div class="line"><a name="l00007"></a><span class="lineno">    
7</span>&#160;<span class="comment">// Unless required by applicable law or 
agreed to in writing, software</span></div><div class="line"><a 
name="l00008"></a><span class="lineno">    8</span>&#160;<span 
class="comment">// distributed under the License is distributed on an &quot;AS 
IS&quot; BASIS,</span></div><div class="line"><a name="l00009"></a><span 
class="lineno">    9</span>&#160;<span class="comment">// WITHOUT WARRANTIES OR 
CONDITIONS OF ANY KIND, either express or implied.</span></div><div 
class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span 
class="comment">// See the License for the specific language governing 
permissions and</span></div><div class="line"><a name="l00011"></a><span 
class="lineno">   11</span>&#160;<span class="comment">// limitations under the 
License.</span></div><div class="line"><a name="l00012"></a><span 
class="lineno">   12</span>&#160;<span class="p
 reprocessor">#ifndef __STOUT_BOUNDEDHASHMAP_HPP__</span></div><div 
class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span 
class="preprocessor">#define __STOUT_BOUNDEDHASHMAP_HPP__</span></div><div 
class="line"><a name="l00014"></a><span class="lineno">   
14</span>&#160;</div><div class="line"><a name="l00015"></a><span 
class="lineno">   15</span>&#160;<span class="preprocessor">#include 
&lt;list&gt;</span></div><div class="line"><a name="l00016"></a><span 
class="lineno">   16</span>&#160;<span class="preprocessor">#include 
&lt;utility&gt;</span></div><div class="line"><a name="l00017"></a><span 
class="lineno">   17</span>&#160;</div><div class="line"><a 
name="l00018"></a><span class="lineno">   18</span>&#160;<span 
class="preprocessor">#include &lt;<a class="code" 
href="stout_2include_2stout_2check_8hpp.html">stout/check.hpp</a>&gt;</span></div><div
 class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span 
class="preprocessor">#include &l
 t;<a class="code" 
href="hashmap_8hpp.html">stout/hashmap.hpp</a>&gt;</span></div><div 
class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span 
class="preprocessor">#include &lt;<a class="code" 
href="option_8hpp.html">stout/option.hpp</a>&gt;</span></div><div 
class="line"><a name="l00021"></a><span class="lineno">   
21</span>&#160;</div><div class="line"><a name="l00022"></a><span 
class="lineno">   22</span>&#160;<span class="comment">// A hashmap that 
contains a fixed number of entries at most. Entries</span></div><div 
class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span 
class="comment">// are evicted in FIFO order -- i.e., when the capacity of the 
map is</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 
  24</span>&#160;<span class="comment">// reached, the next insertion results 
in removing the oldest entry.</span></div><div class="line"><a 
name="l00025"></a><span class="lineno">   25</span>&#160;<span class="c
 omment">// Updating an entry does not change insertion order.</span></div><div 
class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span 
class="keyword">template</span> &lt;<span class="keyword">typename</span> Key, 
<span class="keyword">typename</span> Value&gt;</div><div class="line"><a 
name="l00027"></a><span class="lineno"><a class="line" 
href="classBoundedHashMap.html">   27</a></span>&#160;<span 
class="keyword">class </span><a class="code" 
href="classBoundedHashMap.html">BoundedHashMap</a></div><div class="line"><a 
name="l00028"></a><span class="lineno">   28</span>&#160;{</div><div 
class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span 
class="keyword">public</span>:</div><div class="line"><a 
name="l00030"></a><span class="lineno"><a class="line" 
href="classBoundedHashMap.html#a35ccd513de49c362d6a76e87e5923143">   
30</a></span>&#160;  <span class="keyword">typedef</span> std::pair&lt;Key, 
Value&gt; <a class="code" href="classBounded
 HashMap.html#a35ccd513de49c362d6a76e87e5923143">entry</a>;</div><div 
class="line"><a name="l00031"></a><span class="lineno"><a class="line" 
href="classBoundedHashMap.html#a8dccc532c99c340728c8f186230fb64e">   
31</a></span>&#160;  <span class="keyword">typedef</span> 
std::list&lt;entry&gt; <a class="code" 
href="classBoundedHashMap.html#a8dccc532c99c340728c8f186230fb64e">list</a>;</div><div
 class="line"><a name="l00032"></a><span class="lineno"><a class="line" 
href="classBoundedHashMap.html#a1c466b3b3f48efaea49e9d66903a7526">   
32</a></span>&#160;  <span class="keyword">typedef</span> <a class="code" 
href="classhashmap.html">hashmap&lt;Key, typename list::iterator&gt;</a> <a 
class="code" 
href="classBoundedHashMap.html#a1c466b3b3f48efaea49e9d66903a7526">map</a>;</div><div
 class="line"><a name="l00033"></a><span class="lineno">   
33</span>&#160;</div><div class="line"><a name="l00034"></a><span 
class="lineno"><a class="line" 
href="classBoundedHashMap.html#a311e29319ba27184ab59b5674312ed
 09">   34</a></span>&#160;  <a class="code" 
href="classBoundedHashMap.html#a311e29319ba27184ab59b5674312ed09">BoundedHashMap</a>(<span
 class="keywordtype">size_t</span> capacity) : capacity_(capacity) {}</div><div 
class="line"><a name="l00035"></a><span class="lineno">   
35</span>&#160;</div><div class="line"><a name="l00036"></a><span 
class="lineno">   36</span>&#160;  <span class="comment">// NOTE: We don&#39;t 
provide `operator[]`, unlike LinkedHashMap,</span></div><div class="line"><a 
name="l00037"></a><span class="lineno">   37</span>&#160;  <span 
class="comment">// because it would be difficult to implement correctly for 
bounded</span></div><div class="line"><a name="l00038"></a><span 
class="lineno">   38</span>&#160;  <span class="comment">// maps with zero 
capacity.</span></div><div class="line"><a name="l00039"></a><span 
class="lineno"><a class="line" 
href="classBoundedHashMap.html#a54e903e8c96c78d913e74609d836ae67">   
39</a></span>&#160;  <span class="keywordtype">void</sp
 an> <span class="keyword">set</span>(<span class="keyword">const</span> 
Key&amp; key, <span class="keyword">const</span> Value&amp; value)</div><div 
class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;  
{</div><div class="line"><a name="l00041"></a><span class="lineno">   
41</span>&#160;    <span class="keywordflow">if</span> (capacity_ == 0) 
{</div><div class="line"><a name="l00042"></a><span class="lineno">   
42</span>&#160;      <span class="keywordflow">return</span>;</div><div 
class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;    
}</div><div class="line"><a name="l00044"></a><span class="lineno">   
44</span>&#160;</div><div class="line"><a name="l00045"></a><span 
class="lineno">   45</span>&#160;    <span class="keywordflow">if</span> 
(!keys_.<a class="code" 
href="classhashmap.html#ac142b3f8b73c76d5d4545bbd299007e5">contains</a>(key)) 
{</div><div class="line"><a name="l00046"></a><span class="lineno">   
46</span>&#160;      <span clas
 s="comment">// Insert a new list entry and get a &quot;pointer&quot; to its 
location.</span></div><div class="line"><a name="l00047"></a><span 
class="lineno">   47</span>&#160;      <span class="keyword">typename</span> 
list::iterator iter =</div><div class="line"><a name="l00048"></a><span 
class="lineno">   48</span>&#160;        entries_.insert(entries_.end(), 
std::make_pair(key, value));</div><div class="line"><a name="l00049"></a><span 
class="lineno">   49</span>&#160;</div><div class="line"><a 
name="l00050"></a><span class="lineno">   50</span>&#160;      keys_[key] = 
iter;</div><div class="line"><a name="l00051"></a><span class="lineno">   
51</span>&#160;</div><div class="line"><a name="l00052"></a><span 
class="lineno">   52</span>&#160;      <span class="comment">// If the map now 
exceeds its capacity, remove the oldest entry.</span></div><div class="line"><a 
name="l00053"></a><span class="lineno">   53</span>&#160;      <span 
class="comment">// Note that removal from both st
 d::list and hashmap does not</span></div><div class="line"><a 
name="l00054"></a><span class="lineno">   54</span>&#160;      <span 
class="comment">// invalidate iterators that reference other 
entries.</span></div><div class="line"><a name="l00055"></a><span 
class="lineno">   55</span>&#160;      <span class="keywordflow">if</span> 
(keys_.size() &gt; capacity_) {</div><div class="line"><a 
name="l00056"></a><span class="lineno">   56</span>&#160;        <span 
class="keyword">typename</span> list::iterator firstEntry = 
entries_.begin();</div><div class="line"><a name="l00057"></a><span 
class="lineno">   57</span>&#160;        
keys_.erase(firstEntry-&gt;first);</div><div class="line"><a 
name="l00058"></a><span class="lineno">   58</span>&#160;        
entries_.erase(firstEntry);</div><div class="line"><a name="l00059"></a><span 
class="lineno">   59</span>&#160;</div><div class="line"><a 
name="l00060"></a><span class="lineno">   60</span>&#160;        
CHECK(keys_.size() == capacity_);</di
 v><div class="line"><a name="l00061"></a><span class="lineno">   
61</span>&#160;      }</div><div class="line"><a name="l00062"></a><span 
class="lineno">   62</span>&#160;    } <span class="keywordflow">else</span> 
{</div><div class="line"><a name="l00063"></a><span class="lineno">   
63</span>&#160;      keys_[key]-&gt;second = value;</div><div class="line"><a 
name="l00064"></a><span class="lineno">   64</span>&#160;    }</div><div 
class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;  
}</div><div class="line"><a name="l00066"></a><span class="lineno">   
66</span>&#160;</div><div class="line"><a name="l00067"></a><span 
class="lineno"><a class="line" 
href="classBoundedHashMap.html#a852bfef273fe4f90653d271378a2cbec">   
67</a></span>&#160;  <a class="code" 
href="classOption.html">Option&lt;Value&gt;</a> <span 
class="keyword">get</span>(<span class="keyword">const</span> Key&amp; key) 
<span class="keyword">const</span></div><div class="line"><a 
name="l00068"></a><spa
 n class="lineno">   68</span>&#160;  {</div><div class="line"><a 
name="l00069"></a><span class="lineno">   69</span>&#160;    <span 
class="keywordflow">if</span> (keys_.<a class="code" 
href="classhashmap.html#ac142b3f8b73c76d5d4545bbd299007e5">contains</a>(key)) 
{</div><div class="line"><a name="l00070"></a><span class="lineno">   
70</span>&#160;      <span class="keywordflow">return</span> 
keys_.at(key)-&gt;second;</div><div class="line"><a name="l00071"></a><span 
class="lineno">   71</span>&#160;    }</div><div class="line"><a 
name="l00072"></a><span class="lineno">   72</span>&#160;    <span 
class="keywordflow">return</span> <a class="code" 
href="structNone.html">None</a>();</div><div class="line"><a 
name="l00073"></a><span class="lineno">   73</span>&#160;  }</div><div 
class="line"><a name="l00074"></a><span class="lineno">   
74</span>&#160;</div><div class="line"><a name="l00075"></a><span 
class="lineno"><a class="line" 
href="classBoundedHashMap.html#a70ac620485764a32411dfd63cb
 ed12c5">   75</a></span>&#160;  Value&amp; <a class="code" 
href="classBoundedHashMap.html#a70ac620485764a32411dfd63cbed12c5">at</a>(<span 
class="keyword">const</span> Key&amp; key)</div><div class="line"><a 
name="l00076"></a><span class="lineno">   76</span>&#160;  {</div><div 
class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;    
<span class="keywordflow">return</span> keys_.at(key)-&gt;second;</div><div 
class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;  
}</div><div class="line"><a name="l00079"></a><span class="lineno">   
79</span>&#160;</div><div class="line"><a name="l00080"></a><span 
class="lineno"><a class="line" 
href="classBoundedHashMap.html#ad821f79df9d83977f91240c495257c5f">   
80</a></span>&#160;  <span class="keyword">const</span> Value&amp; <a 
class="code" 
href="classBoundedHashMap.html#ad821f79df9d83977f91240c495257c5f">at</a>(<span 
class="keyword">const</span> Key&amp; key)<span class="keyword"> 
const</span></div><div class
 ="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;<span 
class="keyword">  </span>{</div><div class="line"><a name="l00082"></a><span 
class="lineno">   82</span>&#160;    <span class="keywordflow">return</span> 
keys_.at(key)-&gt;second;</div><div class="line"><a name="l00083"></a><span 
class="lineno">   83</span>&#160;  }</div><div class="line"><a 
name="l00084"></a><span class="lineno">   84</span>&#160;</div><div 
class="line"><a name="l00085"></a><span class="lineno"><a class="line" 
href="classBoundedHashMap.html#a301ca7659ecbb2b5e054b00de4973e8c">   
85</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" 
href="classBoundedHashMap.html#a301ca7659ecbb2b5e054b00de4973e8c">contains</a>(<span
 class="keyword">const</span> Key&amp; key)<span class="keyword"> 
const</span></div><div class="line"><a name="l00086"></a><span class="lineno">  
 86</span>&#160;<span class="keyword">  </span>{</div><div class="line"><a 
name="l00087"></a><span class="lineno">   
 87</span>&#160;    <span class="keywordflow">return</span> keys_.<a 
class="code" 
href="classhashmap.html#ac142b3f8b73c76d5d4545bbd299007e5">contains</a>(key);</div><div
 class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;  
}</div><div class="line"><a name="l00089"></a><span class="lineno">   
89</span>&#160;</div><div class="line"><a name="l00090"></a><span 
class="lineno"><a class="line" 
href="classBoundedHashMap.html#a0d549fc5e940b2117b65083fc796f035">   
90</a></span>&#160;  <span class="keywordtype">size_t</span> <a class="code" 
href="classBoundedHashMap.html#a0d549fc5e940b2117b65083fc796f035">erase</a>(<span
 class="keyword">const</span> Key&amp; key)</div><div class="line"><a 
name="l00091"></a><span class="lineno">   91</span>&#160;  {</div><div 
class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;    
<span class="keywordflow">if</span> (keys_.<a class="code" 
href="classhashmap.html#ac142b3f8b73c76d5d4545bbd299007e5">contains</a>(key)) 
{</d
 iv><div class="line"><a name="l00093"></a><span class="lineno">   
93</span>&#160;      <span class="keyword">typename</span> list::iterator entry 
= keys_[key];</div><div class="line"><a name="l00094"></a><span class="lineno"> 
  94</span>&#160;      keys_.erase(key);</div><div class="line"><a 
name="l00095"></a><span class="lineno">   95</span>&#160;      
entries_.erase(entry);</div><div class="line"><a name="l00096"></a><span 
class="lineno">   96</span>&#160;</div><div class="line"><a 
name="l00097"></a><span class="lineno">   97</span>&#160;      <span 
class="keywordflow">return</span> 1;</div><div class="line"><a 
name="l00098"></a><span class="lineno">   98</span>&#160;    }</div><div 
class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;    
<span class="keywordflow">return</span> 0;</div><div class="line"><a 
name="l00100"></a><span class="lineno">  100</span>&#160;  }</div><div 
class="line"><a name="l00101"></a><span class="lineno">  
101</span>&#160;</div><div cl
 ass="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;  <span 
class="comment">// Returns the keys in the map in insertion 
order.</span></div><div class="line"><a name="l00103"></a><span 
class="lineno"><a class="line" 
href="classBoundedHashMap.html#ab68b4c5ea8887bff0b68853223b130f3">  
103</a></span>&#160;  std::list&lt;Key&gt; <a class="code" 
href="classBoundedHashMap.html#ab68b4c5ea8887bff0b68853223b130f3">keys</a>()<span
 class="keyword"> const</span></div><div class="line"><a 
name="l00104"></a><span class="lineno">  104</span>&#160;<span class="keyword"> 
 </span>{</div><div class="line"><a name="l00105"></a><span class="lineno">  
105</span>&#160;    std::list&lt;Key&gt; result;</div><div class="line"><a 
name="l00106"></a><span class="lineno">  106</span>&#160;</div><div 
class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;    
<span class="keywordflow">foreach</span> (<span class="keyword">const</span> 
entry&amp; entry, entries_) {</div><div clas
 s="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;      
result.push_back(entry.first);</div><div class="line"><a 
name="l00109"></a><span class="lineno">  109</span>&#160;    }</div><div 
class="line"><a name="l00110"></a><span class="lineno">  
110</span>&#160;</div><div class="line"><a name="l00111"></a><span 
class="lineno">  111</span>&#160;    <span class="keywordflow">return</span> 
result;</div><div class="line"><a name="l00112"></a><span class="lineno">  
112</span>&#160;  }</div><div class="line"><a name="l00113"></a><span 
class="lineno">  113</span>&#160;</div><div class="line"><a 
name="l00114"></a><span class="lineno">  114</span>&#160;  <span 
class="comment">// Returns the values in the map in insertion 
order.</span></div><div class="line"><a name="l00115"></a><span 
class="lineno"><a class="line" 
href="classBoundedHashMap.html#a3230dcf13d6b5099fe3aba148573e7a9">  
115</a></span>&#160;  std::list&lt;Value&gt; <a class="code" 
href="classBoundedHashMap.html#a323
 0dcf13d6b5099fe3aba148573e7a9">values</a>()<span class="keyword"> 
const</span></div><div class="line"><a name="l00116"></a><span class="lineno">  
116</span>&#160;<span class="keyword">  </span>{</div><div class="line"><a 
name="l00117"></a><span class="lineno">  117</span>&#160;    
std::list&lt;Value&gt; result;</div><div class="line"><a 
name="l00118"></a><span class="lineno">  118</span>&#160;</div><div 
class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;    
<span class="keywordflow">foreach</span> (<span class="keyword">const</span> 
entry&amp; entry, entries_) {</div><div class="line"><a name="l00120"></a><span 
class="lineno">  120</span>&#160;      
result.push_back(entry.second);</div><div class="line"><a 
name="l00121"></a><span class="lineno">  121</span>&#160;    }</div><div 
class="line"><a name="l00122"></a><span class="lineno">  
122</span>&#160;</div><div class="line"><a name="l00123"></a><span 
class="lineno">  123</span>&#160;    <span class="keywordflow"
 >return</span> result;</div><div class="line"><a name="l00124"></a><span 
 >class="lineno">  124</span>&#160;  }</div><div class="line"><a 
 >name="l00125"></a><span class="lineno">  125</span>&#160;</div><div 
 >class="line"><a name="l00126"></a><span class="lineno"><a class="line" 
 >href="classBoundedHashMap.html#aa0c84c4c9636449ab35ef13ecce36266">  
 >126</a></span>&#160;  <span class="keywordtype">size_t</span> <a class="code" 
 >href="classBoundedHashMap.html#aa0c84c4c9636449ab35ef13ecce36266">size</a>()<span
 > class="keyword"> const</span></div><div class="line"><a 
 >name="l00127"></a><span class="lineno">  127</span>&#160;<span 
 >class="keyword">  </span>{</div><div class="line"><a name="l00128"></a><span 
 >class="lineno">  128</span>&#160;    <span class="keywordflow">return</span> 
 >keys_.size();</div><div class="line"><a name="l00129"></a><span 
 >class="lineno">  129</span>&#160;  }</div><div class="line"><a 
 >name="l00130"></a><span class="lineno">  130</span>&#160;</div><div 
 >class="line"><a name="l001
 31"></a><span class="lineno"><a class="line" 
href="classBoundedHashMap.html#aa628a0c249203758e056473698c53ed6">  
131</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" 
href="classBoundedHashMap.html#aa628a0c249203758e056473698c53ed6">empty</a>()<span
 class="keyword"> const</span></div><div class="line"><a 
name="l00132"></a><span class="lineno">  132</span>&#160;<span class="keyword"> 
 </span>{</div><div class="line"><a name="l00133"></a><span class="lineno">  
133</span>&#160;    <span class="keywordflow">return</span> 
keys_.empty();</div><div class="line"><a name="l00134"></a><span 
class="lineno">  134</span>&#160;  }</div><div class="line"><a 
name="l00135"></a><span class="lineno">  135</span>&#160;</div><div 
class="line"><a name="l00136"></a><span class="lineno"><a class="line" 
href="classBoundedHashMap.html#aed7138e6b983ced56b126a5bc43e37c8">  
136</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" 
href="classBoundedHashMap.html#aed7138e6b
 983ced56b126a5bc43e37c8">clear</a>()</div><div class="line"><a 
name="l00137"></a><span class="lineno">  137</span>&#160;  {</div><div 
class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;    
entries_.clear();</div><div class="line"><a name="l00139"></a><span 
class="lineno">  139</span>&#160;    keys_.clear();</div><div class="line"><a 
name="l00140"></a><span class="lineno">  140</span>&#160;  }</div><div 
class="line"><a name="l00141"></a><span class="lineno">  
141</span>&#160;</div><div class="line"><a name="l00142"></a><span 
class="lineno">  142</span>&#160;  <span class="comment">// Support for 
iteration; this allows using `foreachpair` and</span></div><div class="line"><a 
name="l00143"></a><span class="lineno">  143</span>&#160;  <span 
class="comment">// related constructs. Note that these iterate over the map 
in</span></div><div class="line"><a name="l00144"></a><span class="lineno">  
144</span>&#160;  <span class="comment">// insertion order.</span></div><di
 v class="line"><a name="l00145"></a><span class="lineno"><a class="line" 
href="classBoundedHashMap.html#a4cb91ebc0803532a11b448886a8c2dce">  
145</a></span>&#160;  <span class="keyword">typename</span> list::iterator <a 
class="code" 
href="classBoundedHashMap.html#a4cb91ebc0803532a11b448886a8c2dce">begin</a>() { 
<span class="keywordflow">return</span> entries_.begin(); }</div><div 
class="line"><a name="l00146"></a><span class="lineno"><a class="line" 
href="classBoundedHashMap.html#a8ec9da0f54d5b063b34e0fb33485cc8a">  
146</a></span>&#160;  <span class="keyword">typename</span> list::iterator <a 
class="code" 
href="classBoundedHashMap.html#a8ec9da0f54d5b063b34e0fb33485cc8a">end</a>() { 
<span class="keywordflow">return</span> entries_.end(); }</div><div 
class="line"><a name="l00147"></a><span class="lineno">  
147</span>&#160;</div><div class="line"><a name="l00148"></a><span 
class="lineno"><a class="line" 
href="classBoundedHashMap.html#a9a07a63071611db41410f0a707e16575">  
148</a></span>&#
 160;  <span class="keyword">typename</span> list::const_iterator <a 
class="code" 
href="classBoundedHashMap.html#a9a07a63071611db41410f0a707e16575">begin</a>()<span
 class="keyword"> const </span>{ <span class="keywordflow">return</span> 
entries_.cbegin(); }</div><div class="line"><a name="l00149"></a><span 
class="lineno"><a class="line" 
href="classBoundedHashMap.html#a7d90d9668967c2ed885cc6a6e72d558c">  
149</a></span>&#160;  <span class="keyword">typename</span> 
list::const_iterator <a class="code" 
href="classBoundedHashMap.html#a7d90d9668967c2ed885cc6a6e72d558c">end</a>()<span
 class="keyword"> const </span>{ <span class="keywordflow">return</span> 
entries_.cend(); }</div><div class="line"><a name="l00150"></a><span 
class="lineno">  150</span>&#160;</div><div class="line"><a 
name="l00151"></a><span class="lineno">  151</span>&#160;<span 
class="keyword">private</span>:</div><div class="line"><a 
name="l00152"></a><span class="lineno">  152</span>&#160;  <span 
class="keywordtype">size_t
 </span> capacity_;</div><div class="line"><a name="l00153"></a><span 
class="lineno">  153</span>&#160;  list entries_; <span class="comment">// 
Key-value pairs ordered by insertion order.</span></div><div class="line"><a 
name="l00154"></a><span class="lineno">  154</span>&#160;  map keys_; <span 
class="comment">// Map from key to &quot;pointer&quot; to key&#39;s location in 
list.</span></div><div class="line"><a name="l00155"></a><span class="lineno">  
155</span>&#160;};</div><div class="line"><a name="l00156"></a><span 
class="lineno">  156</span>&#160;</div><div class="line"><a 
name="l00157"></a><span class="lineno">  157</span>&#160;<span 
class="preprocessor">#endif // __STOUT_BOUNDEDHASHMAP_HPP__</span></div><div 
class="ttc" 
id="classBoundedHashMap_html_a311e29319ba27184ab59b5674312ed09"><div 
class="ttname"><a 
href="classBoundedHashMap.html#a311e29319ba27184ab59b5674312ed09">BoundedHashMap::BoundedHashMap</a></div><div
 class="ttdeci">BoundedHashMap(size_t capacity)</div><div clas
 s="ttdef"><b>Definition:</b> boundedhashmap.hpp:34</div></div>
 <div class="ttc" id="classOption_html"><div class="ttname"><a 
href="classOption.html">Option</a></div><div class="ttdef"><b>Definition:</b> 
option.hpp:28</div></div>
 <div class="ttc" 
id="classBoundedHashMap_html_a35ccd513de49c362d6a76e87e5923143"><div 
class="ttname"><a 
href="classBoundedHashMap.html#a35ccd513de49c362d6a76e87e5923143">BoundedHashMap::entry</a></div><div
 class="ttdeci">std::pair&lt; Key, Value &gt; entry</div><div 
class="ttdef"><b>Definition:</b> boundedhashmap.hpp:30</div></div>
 <div class="ttc" 
id="classBoundedHashMap_html_a9a07a63071611db41410f0a707e16575"><div 
class="ttname"><a 
href="classBoundedHashMap.html#a9a07a63071611db41410f0a707e16575">BoundedHashMap::begin</a></div><div
 class="ttdeci">list::const_iterator begin() const </div><div 
class="ttdef"><b>Definition:</b> boundedhashmap.hpp:148</div></div>

Reply via email to