You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by gi...@apache.org on 2017/12/08 00:13:42 UTC

[05/10] mesos-site git commit: Updated the website built from mesos SHA: ea98a34.

http://git-wip-us.apache.org/repos/asf/mesos-site/blob/4e665fc2/content/api/latest/c++/slave_8hpp_source.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/slave_8hpp_source.html b/content/api/latest/c++/slave_8hpp_source.html
index 3188c45..b087bb0 100644
--- a/content/api/latest/c++/slave_8hpp_source.html
+++ b/content/api/latest/c++/slave_8hpp_source.html
@@ -621,470 +621,478 @@
 <div class="line"><a name="l00567"></a><span class="lineno">  567</span>&#160;</div>
 <div class="line"><a name="l00568"></a><span class="lineno">  568</span>&#160;  <span class="keywordtype">void</span> apply(<span class="keyword">const</span> std::vector&lt;ResourceConversion&gt;&amp; conversions);</div>
 <div class="line"><a name="l00569"></a><span class="lineno">  569</span>&#160;</div>
-<div class="line"><a name="l00570"></a><span class="lineno">  570</span>&#160;  <span class="comment">// Gauge methods.</span></div>
-<div class="line"><a name="l00571"></a><span class="lineno">  571</span>&#160;  <span class="keywordtype">double</span> _frameworks_active()</div>
-<div class="line"><a name="l00572"></a><span class="lineno">  572</span>&#160;  {</div>
-<div class="line"><a name="l00573"></a><span class="lineno">  573</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span><span class="keywordtype">double</span><span class="keyword">&gt;</span>(frameworks.size());</div>
-<div class="line"><a name="l00574"></a><span class="lineno">  574</span>&#160;  }</div>
-<div class="line"><a name="l00575"></a><span class="lineno">  575</span>&#160;</div>
-<div class="line"><a name="l00576"></a><span class="lineno">  576</span>&#160;  <span class="keywordtype">double</span> _uptime_secs()</div>
-<div class="line"><a name="l00577"></a><span class="lineno">  577</span>&#160;  {</div>
-<div class="line"><a name="l00578"></a><span class="lineno">  578</span>&#160;    <span class="keywordflow">return</span> (<a class="code" href="classprocess_1_1Clock.html#a24ed3f746bb6b3ddb1c52dce5e0ecd38">process::Clock::now</a>() - startTime).secs();</div>
-<div class="line"><a name="l00579"></a><span class="lineno">  579</span>&#160;  }</div>
-<div class="line"><a name="l00580"></a><span class="lineno">  580</span>&#160;</div>
-<div class="line"><a name="l00581"></a><span class="lineno">  581</span>&#160;  <span class="keywordtype">double</span> _registered()</div>
-<div class="line"><a name="l00582"></a><span class="lineno">  582</span>&#160;  {</div>
-<div class="line"><a name="l00583"></a><span class="lineno">  583</span>&#160;    <span class="keywordflow">return</span> master.<a class="code" href="classOption.html#a4e3bf8416d95246f43c91f1b5c309323">isSome</a>() ? 1 : 0;</div>
-<div class="line"><a name="l00584"></a><span class="lineno">  584</span>&#160;  }</div>
-<div class="line"><a name="l00585"></a><span class="lineno">  585</span>&#160;</div>
-<div class="line"><a name="l00586"></a><span class="lineno">  586</span>&#160;  <span class="keywordtype">double</span> _tasks_staging();</div>
-<div class="line"><a name="l00587"></a><span class="lineno">  587</span>&#160;  <span class="keywordtype">double</span> _tasks_starting();</div>
-<div class="line"><a name="l00588"></a><span class="lineno">  588</span>&#160;  <span class="keywordtype">double</span> _tasks_running();</div>
-<div class="line"><a name="l00589"></a><span class="lineno">  589</span>&#160;  <span class="keywordtype">double</span> _tasks_killing();</div>
-<div class="line"><a name="l00590"></a><span class="lineno">  590</span>&#160;</div>
-<div class="line"><a name="l00591"></a><span class="lineno">  591</span>&#160;  <span class="keywordtype">double</span> _executors_registering();</div>
-<div class="line"><a name="l00592"></a><span class="lineno">  592</span>&#160;  <span class="keywordtype">double</span> _executors_running();</div>
-<div class="line"><a name="l00593"></a><span class="lineno">  593</span>&#160;  <span class="keywordtype">double</span> _executors_terminating();</div>
-<div class="line"><a name="l00594"></a><span class="lineno">  594</span>&#160;</div>
-<div class="line"><a name="l00595"></a><span class="lineno">  595</span>&#160;  <span class="keywordtype">double</span> _executor_directory_max_allowed_age_secs();</div>
-<div class="line"><a name="l00596"></a><span class="lineno">  596</span>&#160;</div>
-<div class="line"><a name="l00597"></a><span class="lineno">  597</span>&#160;  <span class="keywordtype">double</span> _resources_total(<span class="keyword">const</span> std::string&amp; <a class="code" href="namespaceos_1_1Shell.html#acfe16ef2b1146ad49a8651c0a457ce46">name</a>);</div>
-<div class="line"><a name="l00598"></a><span class="lineno">  598</span>&#160;  <span class="keywordtype">double</span> _resources_used(<span class="keyword">const</span> std::string&amp; <a class="code" href="namespaceos_1_1Shell.html#acfe16ef2b1146ad49a8651c0a457ce46">name</a>);</div>
-<div class="line"><a name="l00599"></a><span class="lineno">  599</span>&#160;  <span class="keywordtype">double</span> _resources_percent(<span class="keyword">const</span> std::string&amp; <a class="code" href="namespaceos_1_1Shell.html#acfe16ef2b1146ad49a8651c0a457ce46">name</a>);</div>
-<div class="line"><a name="l00600"></a><span class="lineno">  600</span>&#160;</div>
-<div class="line"><a name="l00601"></a><span class="lineno">  601</span>&#160;  <span class="keywordtype">double</span> _resources_revocable_total(<span class="keyword">const</span> std::string&amp; <a class="code" href="namespaceos_1_1Shell.html#acfe16ef2b1146ad49a8651c0a457ce46">name</a>);</div>
-<div class="line"><a name="l00602"></a><span class="lineno">  602</span>&#160;  <span class="keywordtype">double</span> _resources_revocable_used(<span class="keyword">const</span> std::string&amp; <a class="code" href="namespaceos_1_1Shell.html#acfe16ef2b1146ad49a8651c0a457ce46">name</a>);</div>
-<div class="line"><a name="l00603"></a><span class="lineno">  603</span>&#160;  <span class="keywordtype">double</span> _resources_revocable_percent(<span class="keyword">const</span> std::string&amp; <a class="code" href="namespaceos_1_1Shell.html#acfe16ef2b1146ad49a8651c0a457ce46">name</a>);</div>
+<div class="line"><a name="l00570"></a><span class="lineno">  570</span>&#160;  <span class="comment">// Publish all resources that are needed to run the current set of</span></div>
+<div class="line"><a name="l00571"></a><span class="lineno">  571</span>&#160;  <span class="comment">// tasks and executors on the agent.</span></div>
+<div class="line"><a name="l00572"></a><span class="lineno">  572</span>&#160;  <span class="comment">// NOTE: The `additionalResources` parameter is for publishing</span></div>
+<div class="line"><a name="l00573"></a><span class="lineno">  573</span>&#160;  <span class="comment">// additional task resources when launching executors. Consider</span></div>
+<div class="line"><a name="l00574"></a><span class="lineno">  574</span>&#160;  <span class="comment">// removing this parameter once we revisited MESOS-600.</span></div>
+<div class="line"><a name="l00575"></a><span class="lineno">  575</span>&#160;  <a class="code" href="classprocess_1_1Future.html">process::Future&lt;Nothing&gt;</a> publishResources(</div>
+<div class="line"><a name="l00576"></a><span class="lineno">  576</span>&#160;      <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;Resources&gt;</a>&amp; additionalResources = <a class="code" href="structNone.html">None</a>());</div>
+<div class="line"><a name="l00577"></a><span class="lineno">  577</span>&#160;</div>
+<div class="line"><a name="l00578"></a><span class="lineno">  578</span>&#160;  <span class="comment">// Gauge methods.</span></div>
+<div class="line"><a name="l00579"></a><span class="lineno">  579</span>&#160;  <span class="keywordtype">double</span> _frameworks_active()</div>
+<div class="line"><a name="l00580"></a><span class="lineno">  580</span>&#160;  {</div>
+<div class="line"><a name="l00581"></a><span class="lineno">  581</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span><span class="keywordtype">double</span><span class="keyword">&gt;</span>(frameworks.size());</div>
+<div class="line"><a name="l00582"></a><span class="lineno">  582</span>&#160;  }</div>
+<div class="line"><a name="l00583"></a><span class="lineno">  583</span>&#160;</div>
+<div class="line"><a name="l00584"></a><span class="lineno">  584</span>&#160;  <span class="keywordtype">double</span> _uptime_secs()</div>
+<div class="line"><a name="l00585"></a><span class="lineno">  585</span>&#160;  {</div>
+<div class="line"><a name="l00586"></a><span class="lineno">  586</span>&#160;    <span class="keywordflow">return</span> (<a class="code" href="classprocess_1_1Clock.html#a24ed3f746bb6b3ddb1c52dce5e0ecd38">process::Clock::now</a>() - startTime).secs();</div>
+<div class="line"><a name="l00587"></a><span class="lineno">  587</span>&#160;  }</div>
+<div class="line"><a name="l00588"></a><span class="lineno">  588</span>&#160;</div>
+<div class="line"><a name="l00589"></a><span class="lineno">  589</span>&#160;  <span class="keywordtype">double</span> _registered()</div>
+<div class="line"><a name="l00590"></a><span class="lineno">  590</span>&#160;  {</div>
+<div class="line"><a name="l00591"></a><span class="lineno">  591</span>&#160;    <span class="keywordflow">return</span> master.<a class="code" href="classOption.html#a4e3bf8416d95246f43c91f1b5c309323">isSome</a>() ? 1 : 0;</div>
+<div class="line"><a name="l00592"></a><span class="lineno">  592</span>&#160;  }</div>
+<div class="line"><a name="l00593"></a><span class="lineno">  593</span>&#160;</div>
+<div class="line"><a name="l00594"></a><span class="lineno">  594</span>&#160;  <span class="keywordtype">double</span> _tasks_staging();</div>
+<div class="line"><a name="l00595"></a><span class="lineno">  595</span>&#160;  <span class="keywordtype">double</span> _tasks_starting();</div>
+<div class="line"><a name="l00596"></a><span class="lineno">  596</span>&#160;  <span class="keywordtype">double</span> _tasks_running();</div>
+<div class="line"><a name="l00597"></a><span class="lineno">  597</span>&#160;  <span class="keywordtype">double</span> _tasks_killing();</div>
+<div class="line"><a name="l00598"></a><span class="lineno">  598</span>&#160;</div>
+<div class="line"><a name="l00599"></a><span class="lineno">  599</span>&#160;  <span class="keywordtype">double</span> _executors_registering();</div>
+<div class="line"><a name="l00600"></a><span class="lineno">  600</span>&#160;  <span class="keywordtype">double</span> _executors_running();</div>
+<div class="line"><a name="l00601"></a><span class="lineno">  601</span>&#160;  <span class="keywordtype">double</span> _executors_terminating();</div>
+<div class="line"><a name="l00602"></a><span class="lineno">  602</span>&#160;</div>
+<div class="line"><a name="l00603"></a><span class="lineno">  603</span>&#160;  <span class="keywordtype">double</span> _executor_directory_max_allowed_age_secs();</div>
 <div class="line"><a name="l00604"></a><span class="lineno">  604</span>&#160;</div>
-<div class="line"><a name="l00605"></a><span class="lineno">  605</span>&#160;  <span class="comment">// Checks whether the two `SlaveInfo` objects are considered</span></div>
-<div class="line"><a name="l00606"></a><span class="lineno">  606</span>&#160;  <span class="comment">// compatible based on the value of the `--configuration_policy`</span></div>
-<div class="line"><a name="l00607"></a><span class="lineno">  607</span>&#160;  <span class="comment">// flag.</span></div>
-<div class="line"><a name="l00608"></a><span class="lineno">  608</span>&#160;  <a class="code" href="classTry.html">Try&lt;Nothing&gt;</a> compatible(</div>
-<div class="line"><a name="l00609"></a><span class="lineno">  609</span>&#160;      <span class="keyword">const</span> SlaveInfo&amp; previous,</div>
-<div class="line"><a name="l00610"></a><span class="lineno">  610</span>&#160;      <span class="keyword">const</span> SlaveInfo&amp; current) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00611"></a><span class="lineno">  611</span>&#160;</div>
-<div class="line"><a name="l00612"></a><span class="lineno">  612</span>&#160;  protobuf::master::Capabilities requiredMasterCapabilities;</div>
-<div class="line"><a name="l00613"></a><span class="lineno">  613</span>&#160;</div>
-<div class="line"><a name="l00614"></a><span class="lineno">  614</span>&#160;  <span class="keyword">const</span> Flags <a class="code" href="decoder_8hpp.html#abb0829cce9dd20a40ae0d86890ae85c6">flags</a>;</div>
-<div class="line"><a name="l00615"></a><span class="lineno">  615</span>&#160;</div>
-<div class="line"><a name="l00616"></a><span class="lineno">  616</span>&#160;  <span class="keyword">const</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Slave.html#aba95e2a7762bb5df986048b05d03a22e">Http</a> <a class="code" href="namespacemesos_1_1uri.html#a5dff7c4a2df7be12fb642b5801c34f9f">http</a>;</div>
-<div class="line"><a name="l00617"></a><span class="lineno">  617</span>&#160;</div>
-<div class="line"><a name="l00618"></a><span class="lineno">  618</span>&#160;  SlaveInfo info;</div>
+<div class="line"><a name="l00605"></a><span class="lineno">  605</span>&#160;  <span class="keywordtype">double</span> _resources_total(<span class="keyword">const</span> std::string&amp; <a class="code" href="namespaceos_1_1Shell.html#acfe16ef2b1146ad49a8651c0a457ce46">name</a>);</div>
+<div class="line"><a name="l00606"></a><span class="lineno">  606</span>&#160;  <span class="keywordtype">double</span> _resources_used(<span class="keyword">const</span> std::string&amp; <a class="code" href="namespaceos_1_1Shell.html#acfe16ef2b1146ad49a8651c0a457ce46">name</a>);</div>
+<div class="line"><a name="l00607"></a><span class="lineno">  607</span>&#160;  <span class="keywordtype">double</span> _resources_percent(<span class="keyword">const</span> std::string&amp; <a class="code" href="namespaceos_1_1Shell.html#acfe16ef2b1146ad49a8651c0a457ce46">name</a>);</div>
+<div class="line"><a name="l00608"></a><span class="lineno">  608</span>&#160;</div>
+<div class="line"><a name="l00609"></a><span class="lineno">  609</span>&#160;  <span class="keywordtype">double</span> _resources_revocable_total(<span class="keyword">const</span> std::string&amp; <a class="code" href="namespaceos_1_1Shell.html#acfe16ef2b1146ad49a8651c0a457ce46">name</a>);</div>
+<div class="line"><a name="l00610"></a><span class="lineno">  610</span>&#160;  <span class="keywordtype">double</span> _resources_revocable_used(<span class="keyword">const</span> std::string&amp; <a class="code" href="namespaceos_1_1Shell.html#acfe16ef2b1146ad49a8651c0a457ce46">name</a>);</div>
+<div class="line"><a name="l00611"></a><span class="lineno">  611</span>&#160;  <span class="keywordtype">double</span> _resources_revocable_percent(<span class="keyword">const</span> std::string&amp; <a class="code" href="namespaceos_1_1Shell.html#acfe16ef2b1146ad49a8651c0a457ce46">name</a>);</div>
+<div class="line"><a name="l00612"></a><span class="lineno">  612</span>&#160;</div>
+<div class="line"><a name="l00613"></a><span class="lineno">  613</span>&#160;  <span class="comment">// Checks whether the two `SlaveInfo` objects are considered</span></div>
+<div class="line"><a name="l00614"></a><span class="lineno">  614</span>&#160;  <span class="comment">// compatible based on the value of the `--configuration_policy`</span></div>
+<div class="line"><a name="l00615"></a><span class="lineno">  615</span>&#160;  <span class="comment">// flag.</span></div>
+<div class="line"><a name="l00616"></a><span class="lineno">  616</span>&#160;  <a class="code" href="classTry.html">Try&lt;Nothing&gt;</a> compatible(</div>
+<div class="line"><a name="l00617"></a><span class="lineno">  617</span>&#160;      <span class="keyword">const</span> SlaveInfo&amp; previous,</div>
+<div class="line"><a name="l00618"></a><span class="lineno">  618</span>&#160;      <span class="keyword">const</span> SlaveInfo&amp; current) <span class="keyword">const</span>;</div>
 <div class="line"><a name="l00619"></a><span class="lineno">  619</span>&#160;</div>
-<div class="line"><a name="l00620"></a><span class="lineno">  620</span>&#160;  protobuf::slave::Capabilities capabilities;</div>
+<div class="line"><a name="l00620"></a><span class="lineno">  620</span>&#160;  protobuf::master::Capabilities requiredMasterCapabilities;</div>
 <div class="line"><a name="l00621"></a><span class="lineno">  621</span>&#160;</div>
-<div class="line"><a name="l00622"></a><span class="lineno">  622</span>&#160;  <span class="comment">// Resources that are checkpointed by the slave.</span></div>
-<div class="line"><a name="l00623"></a><span class="lineno">  623</span>&#160;  <a class="code" href="classmesos_1_1Resources.html">Resources</a> checkpointedResources;</div>
-<div class="line"><a name="l00624"></a><span class="lineno">  624</span>&#160;</div>
-<div class="line"><a name="l00625"></a><span class="lineno">  625</span>&#160;  <span class="comment">// The current total resources of the agent, i.e., `info.resources()` with</span></div>
-<div class="line"><a name="l00626"></a><span class="lineno">  626</span>&#160;  <span class="comment">// checkpointed resources applied and resource provider resources.</span></div>
-<div class="line"><a name="l00627"></a><span class="lineno">  627</span>&#160;  <a class="code" href="classmesos_1_1Resources.html">Resources</a> totalResources;</div>
-<div class="line"><a name="l00628"></a><span class="lineno">  628</span>&#160;</div>
-<div class="line"><a name="l00629"></a><span class="lineno">  629</span>&#160;  <a class="code" href="classOption.html">Option&lt;process::UPID&gt;</a> master;</div>
-<div class="line"><a name="l00630"></a><span class="lineno">  630</span>&#160;</div>
-<div class="line"><a name="l00631"></a><span class="lineno">  631</span>&#160;  <a class="code" href="classhashmap.html">hashmap&lt;FrameworkID, Framework*&gt;</a> frameworks;</div>
+<div class="line"><a name="l00622"></a><span class="lineno">  622</span>&#160;  <span class="keyword">const</span> Flags <a class="code" href="decoder_8hpp.html#abb0829cce9dd20a40ae0d86890ae85c6">flags</a>;</div>
+<div class="line"><a name="l00623"></a><span class="lineno">  623</span>&#160;</div>
+<div class="line"><a name="l00624"></a><span class="lineno">  624</span>&#160;  <span class="keyword">const</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Slave.html#aba95e2a7762bb5df986048b05d03a22e">Http</a> <a class="code" href="namespacemesos_1_1uri.html#a5dff7c4a2df7be12fb642b5801c34f9f">http</a>;</div>
+<div class="line"><a name="l00625"></a><span class="lineno">  625</span>&#160;</div>
+<div class="line"><a name="l00626"></a><span class="lineno">  626</span>&#160;  SlaveInfo info;</div>
+<div class="line"><a name="l00627"></a><span class="lineno">  627</span>&#160;</div>
+<div class="line"><a name="l00628"></a><span class="lineno">  628</span>&#160;  protobuf::slave::Capabilities capabilities;</div>
+<div class="line"><a name="l00629"></a><span class="lineno">  629</span>&#160;</div>
+<div class="line"><a name="l00630"></a><span class="lineno">  630</span>&#160;  <span class="comment">// Resources that are checkpointed by the slave.</span></div>
+<div class="line"><a name="l00631"></a><span class="lineno">  631</span>&#160;  <a class="code" href="classmesos_1_1Resources.html">Resources</a> checkpointedResources;</div>
 <div class="line"><a name="l00632"></a><span class="lineno">  632</span>&#160;</div>
-<div class="line"><a name="l00633"></a><span class="lineno">  633</span>&#160;  <span class="comment">// Note that these frameworks are &quot;completed&quot; only in that</span></div>
-<div class="line"><a name="l00634"></a><span class="lineno">  634</span>&#160;  <span class="comment">// they no longer have any active tasks or executors on this</span></div>
-<div class="line"><a name="l00635"></a><span class="lineno">  635</span>&#160;  <span class="comment">// particular agent.</span></div>
-<div class="line"><a name="l00636"></a><span class="lineno">  636</span>&#160;  <span class="comment">//</span></div>
-<div class="line"><a name="l00637"></a><span class="lineno">  637</span>&#160;  <span class="comment">// TODO(bmahler): Implement a more accurate framework lifecycle</span></div>
-<div class="line"><a name="l00638"></a><span class="lineno">  638</span>&#160;  <span class="comment">// in the agent code, ideally the master can inform the agent</span></div>
-<div class="line"><a name="l00639"></a><span class="lineno">  639</span>&#160;  <span class="comment">// when a framework is actually completed, and the agent can</span></div>
-<div class="line"><a name="l00640"></a><span class="lineno">  640</span>&#160;  <span class="comment">// perhaps store a cache of &quot;idle&quot; frameworks. See MESOS-7890.</span></div>
-<div class="line"><a name="l00641"></a><span class="lineno">  641</span>&#160;  <a class="code" href="classBoundedHashMap.html">BoundedHashMap&lt;FrameworkID, process::Owned&lt;Framework&gt;</a>&gt; completedFrameworks;</div>
-<div class="line"><a name="l00642"></a><span class="lineno">  642</span>&#160;</div>
-<div class="line"><a name="l00643"></a><span class="lineno">  643</span>&#160;  <a class="code" href="classmesos_1_1master_1_1detector_1_1MasterDetector.html">mesos::master::detector::MasterDetector</a>* detector;</div>
-<div class="line"><a name="l00644"></a><span class="lineno">  644</span>&#160;</div>
-<div class="line"><a name="l00645"></a><span class="lineno">  645</span>&#160;  Containerizer* containerizer;</div>
-<div class="line"><a name="l00646"></a><span class="lineno">  646</span>&#160;</div>
-<div class="line"><a name="l00647"></a><span class="lineno">  647</span>&#160;  Files* files;</div>
-<div class="line"><a name="l00648"></a><span class="lineno">  648</span>&#160;</div>
-<div class="line"><a name="l00649"></a><span class="lineno">  649</span>&#160;  <a class="code" href="classmesos_1_1internal_1_1slave_1_1Slave.html#a33768639ed69e6812b805bd70b29bf35">Metrics</a> <a class="code" href="namespaceprocess_1_1metrics_1_1internal.html#aaa37243f659788386a13de558eba70a7">metrics</a>;</div>
+<div class="line"><a name="l00633"></a><span class="lineno">  633</span>&#160;  <span class="comment">// The current total resources of the agent, i.e., `info.resources()` with</span></div>
+<div class="line"><a name="l00634"></a><span class="lineno">  634</span>&#160;  <span class="comment">// checkpointed resources applied and resource provider resources.</span></div>
+<div class="line"><a name="l00635"></a><span class="lineno">  635</span>&#160;  <a class="code" href="classmesos_1_1Resources.html">Resources</a> totalResources;</div>
+<div class="line"><a name="l00636"></a><span class="lineno">  636</span>&#160;</div>
+<div class="line"><a name="l00637"></a><span class="lineno">  637</span>&#160;  <a class="code" href="classOption.html">Option&lt;process::UPID&gt;</a> master;</div>
+<div class="line"><a name="l00638"></a><span class="lineno">  638</span>&#160;</div>
+<div class="line"><a name="l00639"></a><span class="lineno">  639</span>&#160;  <a class="code" href="classhashmap.html">hashmap&lt;FrameworkID, Framework*&gt;</a> frameworks;</div>
+<div class="line"><a name="l00640"></a><span class="lineno">  640</span>&#160;</div>
+<div class="line"><a name="l00641"></a><span class="lineno">  641</span>&#160;  <span class="comment">// Note that these frameworks are &quot;completed&quot; only in that</span></div>
+<div class="line"><a name="l00642"></a><span class="lineno">  642</span>&#160;  <span class="comment">// they no longer have any active tasks or executors on this</span></div>
+<div class="line"><a name="l00643"></a><span class="lineno">  643</span>&#160;  <span class="comment">// particular agent.</span></div>
+<div class="line"><a name="l00644"></a><span class="lineno">  644</span>&#160;  <span class="comment">//</span></div>
+<div class="line"><a name="l00645"></a><span class="lineno">  645</span>&#160;  <span class="comment">// TODO(bmahler): Implement a more accurate framework lifecycle</span></div>
+<div class="line"><a name="l00646"></a><span class="lineno">  646</span>&#160;  <span class="comment">// in the agent code, ideally the master can inform the agent</span></div>
+<div class="line"><a name="l00647"></a><span class="lineno">  647</span>&#160;  <span class="comment">// when a framework is actually completed, and the agent can</span></div>
+<div class="line"><a name="l00648"></a><span class="lineno">  648</span>&#160;  <span class="comment">// perhaps store a cache of &quot;idle&quot; frameworks. See MESOS-7890.</span></div>
+<div class="line"><a name="l00649"></a><span class="lineno">  649</span>&#160;  <a class="code" href="classBoundedHashMap.html">BoundedHashMap&lt;FrameworkID, process::Owned&lt;Framework&gt;</a>&gt; completedFrameworks;</div>
 <div class="line"><a name="l00650"></a><span class="lineno">  650</span>&#160;</div>
-<div class="line"><a name="l00651"></a><span class="lineno">  651</span>&#160;  <a class="code" href="classprocess_1_1Time.html">process::Time</a> startTime;</div>
+<div class="line"><a name="l00651"></a><span class="lineno">  651</span>&#160;  <a class="code" href="classmesos_1_1master_1_1detector_1_1MasterDetector.html">mesos::master::detector::MasterDetector</a>* detector;</div>
 <div class="line"><a name="l00652"></a><span class="lineno">  652</span>&#160;</div>
-<div class="line"><a name="l00653"></a><span class="lineno">  653</span>&#160;  GarbageCollector* gc;</div>
+<div class="line"><a name="l00653"></a><span class="lineno">  653</span>&#160;  Containerizer* containerizer;</div>
 <div class="line"><a name="l00654"></a><span class="lineno">  654</span>&#160;</div>
-<div class="line"><a name="l00655"></a><span class="lineno">  655</span>&#160;  TaskStatusUpdateManager* taskStatusUpdateManager;</div>
+<div class="line"><a name="l00655"></a><span class="lineno">  655</span>&#160;  Files* files;</div>
 <div class="line"><a name="l00656"></a><span class="lineno">  656</span>&#160;</div>
-<div class="line"><a name="l00657"></a><span class="lineno">  657</span>&#160;  <span class="comment">// Master detection future.</span></div>
-<div class="line"><a name="l00658"></a><span class="lineno">  658</span>&#160;  <a class="code" href="classprocess_1_1Future.html">process::Future&lt;Option&lt;MasterInfo&gt;</a>&gt; detection;</div>
-<div class="line"><a name="l00659"></a><span class="lineno">  659</span>&#160;</div>
-<div class="line"><a name="l00660"></a><span class="lineno">  660</span>&#160;  <span class="comment">// Master&#39;s ping timeout value, updated on reregistration.</span></div>
-<div class="line"><a name="l00661"></a><span class="lineno">  661</span>&#160;  <a class="code" href="classDuration.html">Duration</a> masterPingTimeout;</div>
+<div class="line"><a name="l00657"></a><span class="lineno">  657</span>&#160;  <a class="code" href="classmesos_1_1internal_1_1slave_1_1Slave.html#a33768639ed69e6812b805bd70b29bf35">Metrics</a> <a class="code" href="namespaceprocess_1_1metrics_1_1internal.html#aaa37243f659788386a13de558eba70a7">metrics</a>;</div>
+<div class="line"><a name="l00658"></a><span class="lineno">  658</span>&#160;</div>
+<div class="line"><a name="l00659"></a><span class="lineno">  659</span>&#160;  <a class="code" href="classprocess_1_1Time.html">process::Time</a> startTime;</div>
+<div class="line"><a name="l00660"></a><span class="lineno">  660</span>&#160;</div>
+<div class="line"><a name="l00661"></a><span class="lineno">  661</span>&#160;  GarbageCollector* gc;</div>
 <div class="line"><a name="l00662"></a><span class="lineno">  662</span>&#160;</div>
-<div class="line"><a name="l00663"></a><span class="lineno">  663</span>&#160;  <span class="comment">// Timer for triggering re-detection when no ping is received from</span></div>
-<div class="line"><a name="l00664"></a><span class="lineno">  664</span>&#160;  <span class="comment">// the master.</span></div>
-<div class="line"><a name="l00665"></a><span class="lineno">  665</span>&#160;  <a class="code" href="classprocess_1_1Timer.html">process::Timer</a> pingTimer;</div>
-<div class="line"><a name="l00666"></a><span class="lineno">  666</span>&#160;</div>
-<div class="line"><a name="l00667"></a><span class="lineno">  667</span>&#160;  <span class="comment">// Timer for triggering agent (re)registration after detecting a new master.</span></div>
-<div class="line"><a name="l00668"></a><span class="lineno">  668</span>&#160;  <a class="code" href="classprocess_1_1Timer.html">process::Timer</a> agentRegistrationTimer;</div>
-<div class="line"><a name="l00669"></a><span class="lineno">  669</span>&#160;</div>
-<div class="line"><a name="l00670"></a><span class="lineno">  670</span>&#160;  <span class="comment">// Root meta directory containing checkpointed data.</span></div>
-<div class="line"><a name="l00671"></a><span class="lineno">  671</span>&#160;  <span class="keyword">const</span> std::string metaDir;</div>
-<div class="line"><a name="l00672"></a><span class="lineno">  672</span>&#160;</div>
-<div class="line"><a name="l00673"></a><span class="lineno">  673</span>&#160;  <span class="comment">// Indicates the number of errors ignored in &quot;--no-strict&quot; recovery mode.</span></div>
-<div class="line"><a name="l00674"></a><span class="lineno">  674</span>&#160;  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> recoveryErrors;</div>
-<div class="line"><a name="l00675"></a><span class="lineno">  675</span>&#160;</div>
-<div class="line"><a name="l00676"></a><span class="lineno">  676</span>&#160;  <a class="code" href="classOption.html">Option&lt;Credential&gt;</a> credential;</div>
+<div class="line"><a name="l00663"></a><span class="lineno">  663</span>&#160;  TaskStatusUpdateManager* taskStatusUpdateManager;</div>
+<div class="line"><a name="l00664"></a><span class="lineno">  664</span>&#160;</div>
+<div class="line"><a name="l00665"></a><span class="lineno">  665</span>&#160;  <span class="comment">// Master detection future.</span></div>
+<div class="line"><a name="l00666"></a><span class="lineno">  666</span>&#160;  <a class="code" href="classprocess_1_1Future.html">process::Future&lt;Option&lt;MasterInfo&gt;</a>&gt; detection;</div>
+<div class="line"><a name="l00667"></a><span class="lineno">  667</span>&#160;</div>
+<div class="line"><a name="l00668"></a><span class="lineno">  668</span>&#160;  <span class="comment">// Master&#39;s ping timeout value, updated on reregistration.</span></div>
+<div class="line"><a name="l00669"></a><span class="lineno">  669</span>&#160;  <a class="code" href="classDuration.html">Duration</a> masterPingTimeout;</div>
+<div class="line"><a name="l00670"></a><span class="lineno">  670</span>&#160;</div>
+<div class="line"><a name="l00671"></a><span class="lineno">  671</span>&#160;  <span class="comment">// Timer for triggering re-detection when no ping is received from</span></div>
+<div class="line"><a name="l00672"></a><span class="lineno">  672</span>&#160;  <span class="comment">// the master.</span></div>
+<div class="line"><a name="l00673"></a><span class="lineno">  673</span>&#160;  <a class="code" href="classprocess_1_1Timer.html">process::Timer</a> pingTimer;</div>
+<div class="line"><a name="l00674"></a><span class="lineno">  674</span>&#160;</div>
+<div class="line"><a name="l00675"></a><span class="lineno">  675</span>&#160;  <span class="comment">// Timer for triggering agent (re)registration after detecting a new master.</span></div>
+<div class="line"><a name="l00676"></a><span class="lineno">  676</span>&#160;  <a class="code" href="classprocess_1_1Timer.html">process::Timer</a> agentRegistrationTimer;</div>
 <div class="line"><a name="l00677"></a><span class="lineno">  677</span>&#160;</div>
-<div class="line"><a name="l00678"></a><span class="lineno">  678</span>&#160;  <span class="comment">// Authenticatee name as supplied via flags.</span></div>
-<div class="line"><a name="l00679"></a><span class="lineno">  679</span>&#160;  std::string authenticateeName;</div>
+<div class="line"><a name="l00678"></a><span class="lineno">  678</span>&#160;  <span class="comment">// Root meta directory containing checkpointed data.</span></div>
+<div class="line"><a name="l00679"></a><span class="lineno">  679</span>&#160;  <span class="keyword">const</span> std::string metaDir;</div>
 <div class="line"><a name="l00680"></a><span class="lineno">  680</span>&#160;</div>
-<div class="line"><a name="l00681"></a><span class="lineno">  681</span>&#160;  <a class="code" href="classmesos_1_1Authenticatee.html">Authenticatee</a>* authenticatee;</div>
-<div class="line"><a name="l00682"></a><span class="lineno">  682</span>&#160;</div>
-<div class="line"><a name="l00683"></a><span class="lineno">  683</span>&#160;  <span class="comment">// Indicates if an authentication attempt is in progress.</span></div>
-<div class="line"><a name="l00684"></a><span class="lineno">  684</span>&#160;  <a class="code" href="classOption.html">Option&lt;process::Future&lt;bool&gt;</a>&gt; authenticating;</div>
+<div class="line"><a name="l00681"></a><span class="lineno">  681</span>&#160;  <span class="comment">// Indicates the number of errors ignored in &quot;--no-strict&quot; recovery mode.</span></div>
+<div class="line"><a name="l00682"></a><span class="lineno">  682</span>&#160;  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> recoveryErrors;</div>
+<div class="line"><a name="l00683"></a><span class="lineno">  683</span>&#160;</div>
+<div class="line"><a name="l00684"></a><span class="lineno">  684</span>&#160;  <a class="code" href="classOption.html">Option&lt;Credential&gt;</a> credential;</div>
 <div class="line"><a name="l00685"></a><span class="lineno">  685</span>&#160;</div>
-<div class="line"><a name="l00686"></a><span class="lineno">  686</span>&#160;  <span class="comment">// Indicates if the authentication is successful.</span></div>
-<div class="line"><a name="l00687"></a><span class="lineno">  687</span>&#160;  <span class="keywordtype">bool</span> authenticated;</div>
+<div class="line"><a name="l00686"></a><span class="lineno">  686</span>&#160;  <span class="comment">// Authenticatee name as supplied via flags.</span></div>
+<div class="line"><a name="l00687"></a><span class="lineno">  687</span>&#160;  std::string authenticateeName;</div>
 <div class="line"><a name="l00688"></a><span class="lineno">  688</span>&#160;</div>
-<div class="line"><a name="l00689"></a><span class="lineno">  689</span>&#160;  <span class="comment">// Indicates if a new authentication attempt should be enforced.</span></div>
-<div class="line"><a name="l00690"></a><span class="lineno">  690</span>&#160;  <span class="keywordtype">bool</span> reauthenticate;</div>
-<div class="line"><a name="l00691"></a><span class="lineno">  691</span>&#160;</div>
-<div class="line"><a name="l00692"></a><span class="lineno">  692</span>&#160;  <span class="comment">// Indicates the number of failed authentication attempts.</span></div>
-<div class="line"><a name="l00693"></a><span class="lineno">  693</span>&#160;  uint64_t failedAuthentications;</div>
-<div class="line"><a name="l00694"></a><span class="lineno">  694</span>&#160;</div>
-<div class="line"><a name="l00695"></a><span class="lineno">  695</span>&#160;  <span class="comment">// Maximum age of executor directories. Will be recomputed</span></div>
-<div class="line"><a name="l00696"></a><span class="lineno">  696</span>&#160;  <span class="comment">// periodically every flags.disk_watch_interval.</span></div>
-<div class="line"><a name="l00697"></a><span class="lineno">  697</span>&#160;  <a class="code" href="classDuration.html">Duration</a> executorDirectoryMaxAllowedAge;</div>
-<div class="line"><a name="l00698"></a><span class="lineno">  698</span>&#160;</div>
-<div class="line"><a name="l00699"></a><span class="lineno">  699</span>&#160;  <a class="code" href="classmesos_1_1slave_1_1ResourceEstimator.html">mesos::slave::ResourceEstimator</a>* resourceEstimator;</div>
-<div class="line"><a name="l00700"></a><span class="lineno">  700</span>&#160;</div>
-<div class="line"><a name="l00701"></a><span class="lineno">  701</span>&#160;  <a class="code" href="classmesos_1_1slave_1_1QoSController.html">mesos::slave::QoSController</a>* qosController;</div>
+<div class="line"><a name="l00689"></a><span class="lineno">  689</span>&#160;  <a class="code" href="classmesos_1_1Authenticatee.html">Authenticatee</a>* authenticatee;</div>
+<div class="line"><a name="l00690"></a><span class="lineno">  690</span>&#160;</div>
+<div class="line"><a name="l00691"></a><span class="lineno">  691</span>&#160;  <span class="comment">// Indicates if an authentication attempt is in progress.</span></div>
+<div class="line"><a name="l00692"></a><span class="lineno">  692</span>&#160;  <a class="code" href="classOption.html">Option&lt;process::Future&lt;bool&gt;</a>&gt; authenticating;</div>
+<div class="line"><a name="l00693"></a><span class="lineno">  693</span>&#160;</div>
+<div class="line"><a name="l00694"></a><span class="lineno">  694</span>&#160;  <span class="comment">// Indicates if the authentication is successful.</span></div>
+<div class="line"><a name="l00695"></a><span class="lineno">  695</span>&#160;  <span class="keywordtype">bool</span> authenticated;</div>
+<div class="line"><a name="l00696"></a><span class="lineno">  696</span>&#160;</div>
+<div class="line"><a name="l00697"></a><span class="lineno">  697</span>&#160;  <span class="comment">// Indicates if a new authentication attempt should be enforced.</span></div>
+<div class="line"><a name="l00698"></a><span class="lineno">  698</span>&#160;  <span class="keywordtype">bool</span> reauthenticate;</div>
+<div class="line"><a name="l00699"></a><span class="lineno">  699</span>&#160;</div>
+<div class="line"><a name="l00700"></a><span class="lineno">  700</span>&#160;  <span class="comment">// Indicates the number of failed authentication attempts.</span></div>
+<div class="line"><a name="l00701"></a><span class="lineno">  701</span>&#160;  uint64_t failedAuthentications;</div>
 <div class="line"><a name="l00702"></a><span class="lineno">  702</span>&#160;</div>
-<div class="line"><a name="l00703"></a><span class="lineno">  703</span>&#160;  <a class="code" href="classmesos_1_1SecretGenerator.html">mesos::SecretGenerator</a>* secretGenerator;</div>
-<div class="line"><a name="l00704"></a><span class="lineno">  704</span>&#160;</div>
-<div class="line"><a name="l00705"></a><span class="lineno">  705</span>&#160;  <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;Authorizer*&gt;</a> authorizer;</div>
+<div class="line"><a name="l00703"></a><span class="lineno">  703</span>&#160;  <span class="comment">// Maximum age of executor directories. Will be recomputed</span></div>
+<div class="line"><a name="l00704"></a><span class="lineno">  704</span>&#160;  <span class="comment">// periodically every flags.disk_watch_interval.</span></div>
+<div class="line"><a name="l00705"></a><span class="lineno">  705</span>&#160;  <a class="code" href="classDuration.html">Duration</a> executorDirectoryMaxAllowedAge;</div>
 <div class="line"><a name="l00706"></a><span class="lineno">  706</span>&#160;</div>
-<div class="line"><a name="l00707"></a><span class="lineno">  707</span>&#160;  <span class="comment">// The most recent estimate of the total amount of oversubscribed</span></div>
-<div class="line"><a name="l00708"></a><span class="lineno">  708</span>&#160;  <span class="comment">// (allocated and oversubscribable) resources.</span></div>
-<div class="line"><a name="l00709"></a><span class="lineno">  709</span>&#160;  <a class="code" href="classOption.html">Option&lt;Resources&gt;</a> oversubscribedResources;</div>
+<div class="line"><a name="l00707"></a><span class="lineno">  707</span>&#160;  <a class="code" href="classmesos_1_1slave_1_1ResourceEstimator.html">mesos::slave::ResourceEstimator</a>* resourceEstimator;</div>
+<div class="line"><a name="l00708"></a><span class="lineno">  708</span>&#160;</div>
+<div class="line"><a name="l00709"></a><span class="lineno">  709</span>&#160;  <a class="code" href="classmesos_1_1slave_1_1QoSController.html">mesos::slave::QoSController</a>* qosController;</div>
 <div class="line"><a name="l00710"></a><span class="lineno">  710</span>&#160;</div>
-<div class="line"><a name="l00711"></a><span class="lineno">  711</span>&#160;  ResourceProviderManager resourceProviderManager;</div>
-<div class="line"><a name="l00712"></a><span class="lineno">  712</span>&#160;  <a class="code" href="classprocess_1_1Owned.html">process::Owned&lt;LocalResourceProviderDaemon&gt;</a> localResourceProviderDaemon;</div>
-<div class="line"><a name="l00713"></a><span class="lineno">  713</span>&#160;  <a class="code" href="classhashmap.html">hashmap&lt;Option&lt;ResourceProviderID&gt;</a>, <a class="code" href="structid_1_1UUID.html">UUID</a>&gt; resourceVersions;</div>
+<div class="line"><a name="l00711"></a><span class="lineno">  711</span>&#160;  <a class="code" href="classmesos_1_1SecretGenerator.html">mesos::SecretGenerator</a>* secretGenerator;</div>
+<div class="line"><a name="l00712"></a><span class="lineno">  712</span>&#160;</div>
+<div class="line"><a name="l00713"></a><span class="lineno">  713</span>&#160;  <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;Authorizer*&gt;</a> authorizer;</div>
 <div class="line"><a name="l00714"></a><span class="lineno">  714</span>&#160;</div>
-<div class="line"><a name="l00715"></a><span class="lineno">  715</span>&#160;  <span class="comment">// Pending operations or terminal operations that have</span></div>
-<div class="line"><a name="l00716"></a><span class="lineno">  716</span>&#160;  <span class="comment">// unacknowledged status updates.</span></div>
-<div class="line"><a name="l00717"></a><span class="lineno">  717</span>&#160;  <a class="code" href="classhashmap.html">hashmap&lt;UUID, OfferOperation*&gt;</a> offerOperations;</div>
-<div class="line"><a name="l00718"></a><span class="lineno">  718</span>&#160;};</div>
-<div class="line"><a name="l00719"></a><span class="lineno">  719</span>&#160;</div>
-<div class="line"><a name="l00720"></a><span class="lineno">  720</span>&#160;</div>
-<div class="line"><a name="l00721"></a><span class="lineno">  721</span>&#160;<span class="comment">// Represents the streaming HTTP connection to an executor.</span></div>
-<div class="line"><a name="l00722"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html">  722</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html">HttpConnection</a></div>
-<div class="line"><a name="l00723"></a><span class="lineno">  723</span>&#160;{</div>
-<div class="line"><a name="l00724"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#acc1ca998134e63de44e77f0a371973af">  724</a></span>&#160;  <a class="code" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#acc1ca998134e63de44e77f0a371973af">HttpConnection</a>(<span class="keyword">const</span> <a class="code" href="classprocess_1_1http_1_1Pipe_1_1Writer.html">process::http::Pipe::Writer</a>&amp; _writer,</div>
-<div class="line"><a name="l00725"></a><span class="lineno">  725</span>&#160;                 <a class="code" href="namespacemesos.html#a13035ce0cc66cca4a467787b4716039e">ContentType</a> _contentType)</div>
-<div class="line"><a name="l00726"></a><span class="lineno">  726</span>&#160;    : <a class="code" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#a0c59d0ff74737a01a33ae18f76525ed3">writer</a>(_writer),</div>
-<div class="line"><a name="l00727"></a><span class="lineno">  727</span>&#160;      <a class="code" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#aa56f337e2e9a40afbcae740883f7342e">contentType</a>(_contentType),</div>
-<div class="line"><a name="l00728"></a><span class="lineno">  728</span>&#160;      <a class="code" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#ac9014eb387ce40f4b7803c14b37da8f8">encoder</a>(lambda::<a class="code" href="namespaceprocess_1_1network.html#ad067110a4b38cc83785a43f49bf6c8e2">bind</a>(<a class="code" href="namespacemesos_1_1internal.html#a9c1f91de8a8a389b357b81f7b51b0554">serialize</a>, <a class="code" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#aa56f337e2e9a40afbcae740883f7342e">contentType</a>, lambda::_1)) {}</div>
-<div class="line"><a name="l00729"></a><span class="lineno">  729</span>&#160;</div>
-<div class="line"><a name="l00730"></a><span class="lineno">  730</span>&#160;  <span class="comment">// Converts the message to an Event before sending.</span></div>
-<div class="line"><a name="l00731"></a><span class="lineno">  731</span>&#160;  <span class="keyword">template</span> &lt;<span class="keyword">typename</span> Message&gt;</div>
-<div class="line"><a name="l00732"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#ad0773acb50a9d74589dc050ee9bc3f9b">  732</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#ad0773acb50a9d74589dc050ee9bc3f9b">send</a>(<span class="keyword">const</span> Message&amp; message)</div>
-<div class="line"><a name="l00733"></a><span class="lineno">  733</span>&#160;  {</div>
-<div class="line"><a name="l00734"></a><span class="lineno">  734</span>&#160;    <span class="comment">// We need to evolve the internal &#39;message&#39; into a</span></div>
-<div class="line"><a name="l00735"></a><span class="lineno">  735</span>&#160;    <span class="comment">// &#39;v1::executor::Event&#39;.</span></div>
-<div class="line"><a name="l00736"></a><span class="lineno">  736</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#a0c59d0ff74737a01a33ae18f76525ed3">writer</a>.<a class="code" href="classprocess_1_1http_1_1Pipe_1_1Writer.html#ad945bef2134c872f8ea43dea6db84c66">write</a>(<a class="code" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#ac9014eb387ce40f4b7803c14b37da8f8">encoder</a>.encode(<a class="code" href="namespacemesos_1_1internal.html#a845d4d5a46b931d03f340c8afc58b60a">evolve</a>(message)));</div>
-<div class="line"><a name="l00737"></a><span class="lineno">  737</span>&#160;  }</div>
-<div class="line"><a name="l00738"></a><span class="lineno">  738</span>&#160;</div>
-<div class="line"><a name="l00739"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#a6bd61956671fa0cab784ac1eb0d2b834">  739</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#a6bd61956671fa0cab784ac1eb0d2b834">close</a>()</div>
-<div class="line"><a name="l00740"></a><span class="lineno">  740</span>&#160;  {</div>
-<div class="line"><a name="l00741"></a><span class="lineno">  741</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#a0c59d0ff74737a01a33ae18f76525ed3">writer</a>.<a class="code" href="classprocess_1_1http_1_1Pipe_1_1Writer.html#aecc37af3f66360a47184a1146ae92756">close</a>();</div>
-<div class="line"><a name="l00742"></a><span class="lineno">  742</span>&#160;  }</div>
-<div class="line"><a name="l00743"></a><span class="lineno">  743</span>&#160;</div>
-<div class="line"><a name="l00744"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#a75cfb254a95f8aece262b57137442ad2">  744</a></span>&#160;  <a class="code" href="classprocess_1_1Future.html">process::Future&lt;Nothing&gt;</a> <a class="code" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#a75cfb254a95f8aece262b57137442ad2">closed</a>()<span class="keyword"> const</span></div>
-<div class="line"><a name="l00745"></a><span class="lineno">  745</span>&#160;<span class="keyword">  </span>{</div>
-<div class="line"><a name="l00746"></a><span class="lineno">  746</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#a0c59d0ff74737a01a33ae18f76525ed3">writer</a>.<a class="code" href="classprocess_1_1http_1_1Pipe_1_1Writer.html#afc6072a9fbcb92a6a1b4978b89797583">readerClosed</a>();</div>
-<div class="line"><a name="l00747"></a><span class="lineno">  747</span>&#160;  }</div>
-<div class="line"><a name="l00748"></a><span class="lineno">  748</span>&#160;</div>
-<div class="line"><a name="l00749"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#a0c59d0ff74737a01a33ae18f76525ed3">  749</a></span>&#160;  <a class="code" href="classprocess_1_1http_1_1Pipe_1_1Writer.html">process::http::Pipe::Writer</a> <a class="code" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#a0c59d0ff74737a01a33ae18f76525ed3">writer</a>;</div>
-<div class="line"><a name="l00750"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#aa56f337e2e9a40afbcae740883f7342e">  750</a></span>&#160;  <a class="code" href="namespacemesos.html#a13035ce0cc66cca4a467787b4716039e">ContentType</a> <a class="code" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#aa56f337e2e9a40afbcae740883f7342e">contentType</a>;</div>
-<div class="line"><a name="l00751"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#ac9014eb387ce40f4b7803c14b37da8f8">  751</a></span>&#160;  <a class="code" href="classrecordio_1_1Encoder.html">::recordio::Encoder&lt;v1::executor::Event&gt;</a> <a class="code" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#ac9014eb387ce40f4b7803c14b37da8f8">encoder</a>;</div>
-<div class="line"><a name="l00752"></a><span class="lineno">  752</span>&#160;};</div>
-<div class="line"><a name="l00753"></a><span class="lineno">  753</span>&#160;</div>
-<div class="line"><a name="l00754"></a><span class="lineno">  754</span>&#160;</div>
-<div class="line"><a name="l00755"></a><span class="lineno">  755</span>&#160;std::ostream&amp; <a class="code" href="namespacemesos_1_1internal_1_1slave.html#acc816a5f127bb40e7d5464befda0a0a9">operator&lt;&lt;</a>(std::ostream&amp; stream, <span class="keyword">const</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html">Executor</a>&amp; executor);</div>
+<div class="line"><a name="l00715"></a><span class="lineno">  715</span>&#160;  <span class="comment">// The most recent estimate of the total amount of oversubscribed</span></div>
+<div class="line"><a name="l00716"></a><span class="lineno">  716</span>&#160;  <span class="comment">// (allocated and oversubscribable) resources.</span></div>
+<div class="line"><a name="l00717"></a><span class="lineno">  717</span>&#160;  <a class="code" href="classOption.html">Option&lt;Resources&gt;</a> oversubscribedResources;</div>
+<div class="line"><a name="l00718"></a><span class="lineno">  718</span>&#160;</div>
+<div class="line"><a name="l00719"></a><span class="lineno">  719</span>&#160;  ResourceProviderManager resourceProviderManager;</div>
+<div class="line"><a name="l00720"></a><span class="lineno">  720</span>&#160;  <a class="code" href="classprocess_1_1Owned.html">process::Owned&lt;LocalResourceProviderDaemon&gt;</a> localResourceProviderDaemon;</div>
+<div class="line"><a name="l00721"></a><span class="lineno">  721</span>&#160;  <a class="code" href="classhashmap.html">hashmap&lt;Option&lt;ResourceProviderID&gt;</a>, <a class="code" href="structid_1_1UUID.html">UUID</a>&gt; resourceVersions;</div>
+<div class="line"><a name="l00722"></a><span class="lineno">  722</span>&#160;</div>
+<div class="line"><a name="l00723"></a><span class="lineno">  723</span>&#160;  <span class="comment">// Pending operations or terminal operations that have</span></div>
+<div class="line"><a name="l00724"></a><span class="lineno">  724</span>&#160;  <span class="comment">// unacknowledged status updates.</span></div>
+<div class="line"><a name="l00725"></a><span class="lineno">  725</span>&#160;  <a class="code" href="classhashmap.html">hashmap&lt;UUID, OfferOperation*&gt;</a> offerOperations;</div>
+<div class="line"><a name="l00726"></a><span class="lineno">  726</span>&#160;};</div>
+<div class="line"><a name="l00727"></a><span class="lineno">  727</span>&#160;</div>
+<div class="line"><a name="l00728"></a><span class="lineno">  728</span>&#160;</div>
+<div class="line"><a name="l00729"></a><span class="lineno">  729</span>&#160;<span class="comment">// Represents the streaming HTTP connection to an executor.</span></div>
+<div class="line"><a name="l00730"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html">  730</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html">HttpConnection</a></div>
+<div class="line"><a name="l00731"></a><span class="lineno">  731</span>&#160;{</div>
+<div class="line"><a name="l00732"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#acc1ca998134e63de44e77f0a371973af">  732</a></span>&#160;  <a class="code" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#acc1ca998134e63de44e77f0a371973af">HttpConnection</a>(<span class="keyword">const</span> <a class="code" href="classprocess_1_1http_1_1Pipe_1_1Writer.html">process::http::Pipe::Writer</a>&amp; _writer,</div>
+<div class="line"><a name="l00733"></a><span class="lineno">  733</span>&#160;                 <a class="code" href="namespacemesos.html#a13035ce0cc66cca4a467787b4716039e">ContentType</a> _contentType)</div>
+<div class="line"><a name="l00734"></a><span class="lineno">  734</span>&#160;    : <a class="code" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#a0c59d0ff74737a01a33ae18f76525ed3">writer</a>(_writer),</div>
+<div class="line"><a name="l00735"></a><span class="lineno">  735</span>&#160;      <a class="code" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#aa56f337e2e9a40afbcae740883f7342e">contentType</a>(_contentType),</div>
+<div class="line"><a name="l00736"></a><span class="lineno">  736</span>&#160;      <a class="code" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#ac9014eb387ce40f4b7803c14b37da8f8">encoder</a>(lambda::<a class="code" href="namespaceprocess_1_1network.html#ad067110a4b38cc83785a43f49bf6c8e2">bind</a>(<a class="code" href="namespacemesos_1_1internal.html#a9c1f91de8a8a389b357b81f7b51b0554">serialize</a>, <a class="code" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#aa56f337e2e9a40afbcae740883f7342e">contentType</a>, lambda::_1)) {}</div>
+<div class="line"><a name="l00737"></a><span class="lineno">  737</span>&#160;</div>
+<div class="line"><a name="l00738"></a><span class="lineno">  738</span>&#160;  <span class="comment">// Converts the message to an Event before sending.</span></div>
+<div class="line"><a name="l00739"></a><span class="lineno">  739</span>&#160;  <span class="keyword">template</span> &lt;<span class="keyword">typename</span> Message&gt;</div>
+<div class="line"><a name="l00740"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#ad0773acb50a9d74589dc050ee9bc3f9b">  740</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#ad0773acb50a9d74589dc050ee9bc3f9b">send</a>(<span class="keyword">const</span> Message&amp; message)</div>
+<div class="line"><a name="l00741"></a><span class="lineno">  741</span>&#160;  {</div>
+<div class="line"><a name="l00742"></a><span class="lineno">  742</span>&#160;    <span class="comment">// We need to evolve the internal &#39;message&#39; into a</span></div>
+<div class="line"><a name="l00743"></a><span class="lineno">  743</span>&#160;    <span class="comment">// &#39;v1::executor::Event&#39;.</span></div>
+<div class="line"><a name="l00744"></a><span class="lineno">  744</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#a0c59d0ff74737a01a33ae18f76525ed3">writer</a>.<a class="code" href="classprocess_1_1http_1_1Pipe_1_1Writer.html#ad945bef2134c872f8ea43dea6db84c66">write</a>(<a class="code" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#ac9014eb387ce40f4b7803c14b37da8f8">encoder</a>.encode(<a class="code" href="namespacemesos_1_1internal.html#a845d4d5a46b931d03f340c8afc58b60a">evolve</a>(message)));</div>
+<div class="line"><a name="l00745"></a><span class="lineno">  745</span>&#160;  }</div>
+<div class="line"><a name="l00746"></a><span class="lineno">  746</span>&#160;</div>
+<div class="line"><a name="l00747"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#a6bd61956671fa0cab784ac1eb0d2b834">  747</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#a6bd61956671fa0cab784ac1eb0d2b834">close</a>()</div>
+<div class="line"><a name="l00748"></a><span class="lineno">  748</span>&#160;  {</div>
+<div class="line"><a name="l00749"></a><span class="lineno">  749</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#a0c59d0ff74737a01a33ae18f76525ed3">writer</a>.<a class="code" href="classprocess_1_1http_1_1Pipe_1_1Writer.html#aecc37af3f66360a47184a1146ae92756">close</a>();</div>
+<div class="line"><a name="l00750"></a><span class="lineno">  750</span>&#160;  }</div>
+<div class="line"><a name="l00751"></a><span class="lineno">  751</span>&#160;</div>
+<div class="line"><a name="l00752"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#a75cfb254a95f8aece262b57137442ad2">  752</a></span>&#160;  <a class="code" href="classprocess_1_1Future.html">process::Future&lt;Nothing&gt;</a> <a class="code" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#a75cfb254a95f8aece262b57137442ad2">closed</a>()<span class="keyword"> const</span></div>
+<div class="line"><a name="l00753"></a><span class="lineno">  753</span>&#160;<span class="keyword">  </span>{</div>
+<div class="line"><a name="l00754"></a><span class="lineno">  754</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#a0c59d0ff74737a01a33ae18f76525ed3">writer</a>.<a class="code" href="classprocess_1_1http_1_1Pipe_1_1Writer.html#afc6072a9fbcb92a6a1b4978b89797583">readerClosed</a>();</div>
+<div class="line"><a name="l00755"></a><span class="lineno">  755</span>&#160;  }</div>
 <div class="line"><a name="l00756"></a><span class="lineno">  756</span>&#160;</div>
-<div class="line"><a name="l00757"></a><span class="lineno">  757</span>&#160;</div>
-<div class="line"><a name="l00758"></a><span class="lineno">  758</span>&#160;<span class="comment">// Information describing an executor.</span></div>
-<div class="line"><a name="l00759"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Executor.html">  759</a></span>&#160;<span class="keyword">class </span><a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html">Executor</a></div>
-<div class="line"><a name="l00760"></a><span class="lineno">  760</span>&#160;{</div>
-<div class="line"><a name="l00761"></a><span class="lineno">  761</span>&#160;<span class="keyword">public</span>:</div>
-<div class="line"><a name="l00762"></a><span class="lineno">  762</span>&#160;  <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a2743c0fdfd1c12f467e85e628a779114">Executor</a>(</div>
-<div class="line"><a name="l00763"></a><span class="lineno">  763</span>&#160;      <a class="code" href="classmesos_1_1internal_1_1slave_1_1Slave.html">Slave</a>* <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#addd8f0d655f9d03ad6bc594c4d476818">slave</a>,</div>
-<div class="line"><a name="l00764"></a><span class="lineno">  764</span>&#160;      <span class="keyword">const</span> FrameworkID&amp; frameworkId,</div>
-<div class="line"><a name="l00765"></a><span class="lineno">  765</span>&#160;      <span class="keyword">const</span> ExecutorInfo&amp; <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a6d93343a7cac0e8f5398e4d55a19c856">info</a>,</div>
-<div class="line"><a name="l00766"></a><span class="lineno">  766</span>&#160;      <span class="keyword">const</span> ContainerID&amp; containerId,</div>
-<div class="line"><a name="l00767"></a><span class="lineno">  767</span>&#160;      <span class="keyword">const</span> std::string&amp; <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#aabe86347ab1d23297172813dc5d1c8f5">directory</a>,</div>
-<div class="line"><a name="l00768"></a><span class="lineno">  768</span>&#160;      <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;std::string&gt;</a>&amp; <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#aed6f0c1093840e82b6e920164be9df74">user</a>,</div>
-<div class="line"><a name="l00769"></a><span class="lineno">  769</span>&#160;      <span class="keywordtype">bool</span> checkpoint);</div>
-<div class="line"><a name="l00770"></a><span class="lineno">  770</span>&#160;</div>
-<div class="line"><a name="l00771"></a><span class="lineno">  771</span>&#160;  <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a87195f2f07ffa5b1f9519ed3540e872f">~Executor</a>();</div>
-<div class="line"><a name="l00772"></a><span class="lineno">  772</span>&#160;</div>
-<div class="line"><a name="l00773"></a><span class="lineno">  773</span>&#160;  <span class="comment">// Note that these tasks will also be tracked within `queuedTasks`.</span></div>
-<div class="line"><a name="l00774"></a><span class="lineno">  774</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#abe675d27487a5748f11f31eb38092884">enqueueTaskGroup</a>(<span class="keyword">const</span> TaskGroupInfo&amp; taskGroup);</div>
-<div class="line"><a name="l00775"></a><span class="lineno">  775</span>&#160;</div>
-<div class="line"><a name="l00776"></a><span class="lineno">  776</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#accfe2724d99c51d3c399c9a20548c2a7">enqueueTask</a>(<span class="keyword">const</span> TaskInfo&amp; task);</div>
-<div class="line"><a name="l00777"></a><span class="lineno">  777</span>&#160;  <a class="code" href="classOption.html">Option&lt;TaskInfo&gt;</a> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a18ade8fb3c2a5b174b7a72d02533dee7">dequeueTask</a>(<span class="keyword">const</span> TaskID&amp; taskId);</div>
-<div class="line"><a name="l00778"></a><span class="lineno">  778</span>&#160;  Task* <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a7edce93b988b10f4cbb4bd7ff47f6254">addLaunchedTask</a>(<span class="keyword">const</span> TaskInfo&amp; task);</div>
-<div class="line"><a name="l00779"></a><span class="lineno">  779</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a99724999c57ea8059b70451be58ab6af">completeTask</a>(<span class="keyword">const</span> TaskID&amp; taskId);</div>
-<div class="line"><a name="l00780"></a><span class="lineno">  780</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#ab00309cd3d1c22e2ce1051e33d829c3c">checkpointExecutor</a>();</div>
-<div class="line"><a name="l00781"></a><span class="lineno">  781</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a0a36624c6fe507a5fe4afa57543c5257">checkpointTask</a>(<span class="keyword">const</span> TaskInfo&amp; task);</div>
-<div class="line"><a name="l00782"></a><span class="lineno">  782</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a0a36624c6fe507a5fe4afa57543c5257">checkpointTask</a>(<span class="keyword">const</span> Task&amp; task);</div>
+<div class="line"><a name="l00757"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#a0c59d0ff74737a01a33ae18f76525ed3">  757</a></span>&#160;  <a class="code" href="classprocess_1_1http_1_1Pipe_1_1Writer.html">process::http::Pipe::Writer</a> <a class="code" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#a0c59d0ff74737a01a33ae18f76525ed3">writer</a>;</div>
+<div class="line"><a name="l00758"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#aa56f337e2e9a40afbcae740883f7342e">  758</a></span>&#160;  <a class="code" href="namespacemesos.html#a13035ce0cc66cca4a467787b4716039e">ContentType</a> <a class="code" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#aa56f337e2e9a40afbcae740883f7342e">contentType</a>;</div>
+<div class="line"><a name="l00759"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#ac9014eb387ce40f4b7803c14b37da8f8">  759</a></span>&#160;  <a class="code" href="classrecordio_1_1Encoder.html">::recordio::Encoder&lt;v1::executor::Event&gt;</a> <a class="code" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#ac9014eb387ce40f4b7803c14b37da8f8">encoder</a>;</div>
+<div class="line"><a name="l00760"></a><span class="lineno">  760</span>&#160;};</div>
+<div class="line"><a name="l00761"></a><span class="lineno">  761</span>&#160;</div>
+<div class="line"><a name="l00762"></a><span class="lineno">  762</span>&#160;</div>
+<div class="line"><a name="l00763"></a><span class="lineno">  763</span>&#160;std::ostream&amp; <a class="code" href="namespacemesos_1_1internal_1_1slave.html#acc816a5f127bb40e7d5464befda0a0a9">operator&lt;&lt;</a>(std::ostream&amp; stream, <span class="keyword">const</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html">Executor</a>&amp; executor);</div>
+<div class="line"><a name="l00764"></a><span class="lineno">  764</span>&#160;</div>
+<div class="line"><a name="l00765"></a><span class="lineno">  765</span>&#160;</div>
+<div class="line"><a name="l00766"></a><span class="lineno">  766</span>&#160;<span class="comment">// Information describing an executor.</span></div>
+<div class="line"><a name="l00767"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Executor.html">  767</a></span>&#160;<span class="keyword">class </span><a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html">Executor</a></div>
+<div class="line"><a name="l00768"></a><span class="lineno">  768</span>&#160;{</div>
+<div class="line"><a name="l00769"></a><span class="lineno">  769</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00770"></a><span class="lineno">  770</span>&#160;  <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a2743c0fdfd1c12f467e85e628a779114">Executor</a>(</div>
+<div class="line"><a name="l00771"></a><span class="lineno">  771</span>&#160;      <a class="code" href="classmesos_1_1internal_1_1slave_1_1Slave.html">Slave</a>* <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#addd8f0d655f9d03ad6bc594c4d476818">slave</a>,</div>
+<div class="line"><a name="l00772"></a><span class="lineno">  772</span>&#160;      <span class="keyword">const</span> FrameworkID&amp; frameworkId,</div>
+<div class="line"><a name="l00773"></a><span class="lineno">  773</span>&#160;      <span class="keyword">const</span> ExecutorInfo&amp; <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a6d93343a7cac0e8f5398e4d55a19c856">info</a>,</div>
+<div class="line"><a name="l00774"></a><span class="lineno">  774</span>&#160;      <span class="keyword">const</span> ContainerID&amp; containerId,</div>
+<div class="line"><a name="l00775"></a><span class="lineno">  775</span>&#160;      <span class="keyword">const</span> std::string&amp; <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#aabe86347ab1d23297172813dc5d1c8f5">directory</a>,</div>
+<div class="line"><a name="l00776"></a><span class="lineno">  776</span>&#160;      <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;std::string&gt;</a>&amp; <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#aed6f0c1093840e82b6e920164be9df74">user</a>,</div>
+<div class="line"><a name="l00777"></a><span class="lineno">  777</span>&#160;      <span class="keywordtype">bool</span> checkpoint);</div>
+<div class="line"><a name="l00778"></a><span class="lineno">  778</span>&#160;</div>
+<div class="line"><a name="l00779"></a><span class="lineno">  779</span>&#160;  <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a87195f2f07ffa5b1f9519ed3540e872f">~Executor</a>();</div>
+<div class="line"><a name="l00780"></a><span class="lineno">  780</span>&#160;</div>
+<div class="line"><a name="l00781"></a><span class="lineno">  781</span>&#160;  <span class="comment">// Note that these tasks will also be tracked within `queuedTasks`.</span></div>
+<div class="line"><a name="l00782"></a><span class="lineno">  782</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#abe675d27487a5748f11f31eb38092884">enqueueTaskGroup</a>(<span class="keyword">const</span> TaskGroupInfo&amp; taskGroup);</div>
 <div class="line"><a name="l00783"></a><span class="lineno">  783</span>&#160;</div>
-<div class="line"><a name="l00784"></a><span class="lineno">  784</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a89977a8c4cec7c54a41f20e763532b3c">recoverTask</a>(<span class="keyword">const</span> <a class="code" href="structmesos_1_1internal_1_1slave_1_1state_1_1TaskState.html">state::TaskState</a>&amp; <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a27e0e6e088c0fd88a0c7f679c964c409">state</a>, <span class="keywordtype">bool</span> recheckpointTask);</div>
-<div class="line"><a name="l00785"></a><span class="lineno">  785</span>&#160;</div>
-<div class="line"><a name="l00786"></a><span class="lineno">  786</span>&#160;  <a class="code" href="classTry.html">Try&lt;Nothing&gt;</a> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a78d4cb7ddccb6a2f7cdf31475ed7e83d">updateTaskState</a>(<span class="keyword">const</span> TaskStatus&amp; <a class="code" href="namespaceproc.html#a34396c6140a28f583dc13fee3c3c35d4">status</a>);</div>
-<div class="line"><a name="l00787"></a><span class="lineno">  787</span>&#160;</div>
-<div class="line"><a name="l00788"></a><span class="lineno">  788</span>&#160;  <span class="comment">// Returns true if there are any queued/launched/terminated tasks.</span></div>
-<div class="line"><a name="l00789"></a><span class="lineno">  789</span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a79093461e7bc35f4b4b9c7a796b88e2e">incompleteTasks</a>();</div>
-<div class="line"><a name="l00790"></a><span class="lineno">  790</span>&#160;</div>
-<div class="line"><a name="l00791"></a><span class="lineno">  791</span>&#160;  <span class="comment">// Sends a message to the connected executor.</span></div>
-<div class="line"><a name="l00792"></a><span class="lineno">  792</span>&#160;  <span class="keyword">template</span> &lt;<span class="keyword">typename</span> Message&gt;</div>
-<div class="line"><a name="l00793"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a6088e2d4d0160d0cdaf8674c46d91c43">  793</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a6088e2d4d0160d0cdaf8674c46d91c43">send</a>(<span class="keyword">const</span> Message&amp; message)</div>
-<div class="line"><a name="l00794"></a><span class="lineno">  794</span>&#160;  {</div>
-<div class="line"><a name="l00795"></a><span class="lineno">  795</span>&#160;    <span class="keywordflow">if</span> (state == <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a3b2abbbd9f9e9ca5c08b75329ac426c0a47f27688eed5f4b7b8fae1fe60e35d0d">REGISTERING</a> || state == <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a3b2abbbd9f9e9ca5c08b75329ac426c0ada3a926bc25ef3c7e060789f52aacd75">TERMINATED</a>) {</div>
-<div class="line"><a name="l00796"></a><span class="lineno">  796</span>&#160;      LOG(WARNING) &lt;&lt; <span class="stringliteral">&quot;Attempting to send message to disconnected&quot;</span></div>
-<div class="line"><a name="l00797"></a><span class="lineno">  797</span>&#160;                   &lt;&lt; <span class="stringliteral">&quot; executor &quot;</span> &lt;&lt; *<span class="keyword">this</span> &lt;&lt; <span class="stringliteral">&quot; in state &quot;</span> &lt;&lt; <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a27e0e6e088c0fd88a0c7f679c964c409">state</a>;</div>
-<div class="line"><a name="l00798"></a><span class="lineno">  798</span>&#160;    }</div>
-<div class="line"><a name="l00799"></a><span class="lineno">  799</span>&#160;</div>
-<div class="line"><a name="l00800"></a><span class="lineno">  800</span>&#160;    <span class="keywordflow">if</span> (http.isSome()) {</div>
-<div class="line"><a name="l00801"></a><span class="lineno">  801</span>&#160;      <span class="keywordflow">if</span> (!http-&gt;<a class="code" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#ad0773acb50a9d74589dc050ee9bc3f9b">send</a>(message)) {</div>
-<div class="line"><a name="l00802"></a><span class="lineno">  802</span>&#160;        LOG(WARNING) &lt;&lt; <span class="stringliteral">&quot;Unable to send event to executor &quot;</span> &lt;&lt; *<span class="keyword">this</span></div>
-<div class="line"><a name="l00803"></a><span class="lineno">  803</span>&#160;                     &lt;&lt; <span class="stringliteral">&quot;: connection closed&quot;</span>;</div>
-<div class="line"><a name="l00804"></a><span class="lineno">  804</span>&#160;      }</div>
-<div class="line"><a name="l00805"></a><span class="lineno">  805</span>&#160;    } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (pid.<a class="code" href="classOption.html#a4e3bf8416d95246f43c91f1b5c309323">isSome</a>()) {</div>
-<div class="line"><a name="l00806"></a><span class="lineno">  806</span>&#160;      slave-&gt;<a class="code" href="classProtobufProcess.html#a6c404fdc490a7199a0d2ad881d588e5c">send</a>(pid.<a class="code" href="classOption.html#a21358442c0fac1cc978a67a9a9089a79">get</a>(), message);</div>
-<div class="line"><a name="l00807"></a><span class="lineno">  807</span>&#160;    } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00808"></a><span class="lineno">  808</span>&#160;      LOG(WARNING) &lt;&lt; <span class="stringliteral">&quot;Unable to send event to executor &quot;</span> &lt;&lt; *<span class="keyword">this</span></div>
-<div class="line"><a name="l00809"></a><span class="lineno">  809</span>&#160;                   &lt;&lt; <span class="stringliteral">&quot;: unknown connection type&quot;</span>;</div>
-<div class="line"><a name="l00810"></a><span class="lineno">  810</span>&#160;    }</div>
-<div class="line"><a name="l00811"></a><span class="lineno">  811</span>&#160;  }</div>
-<div class="line"><a name="l00812"></a><span class="lineno">  812</span>&#160;</div>
-<div class="line"><a name="l00813"></a><span class="lineno">  813</span>&#160;  <span class="comment">// Returns true if this is a command executor.</span></div>
-<div class="line"><a name="l00814"></a><span class="lineno">  814</span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a8c506bb12f5b2a0acd8f216ebbf0c789">isCommandExecutor</a>() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00815"></a><span class="lineno">  815</span>&#160;</div>
-<div class="line"><a name="l00816"></a><span class="lineno">  816</span>&#160;  <span class="comment">// Closes the HTTP connection.</span></div>
-<div class="line"><a name="l00817"></a><span class="lineno">  817</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a546589bcf81d103b1e50be965494d430">closeHttpConnection</a>();</div>
-<div class="line"><a name="l00818"></a><span class="lineno">  818</span>&#160;</div>
-<div class="line"><a name="l00819"></a><span class="lineno">  819</span>&#160;  <span class="comment">// Returns the task group associated with the task.</span></div>
-<div class="line"><a name="l00820"></a><span class="lineno">  820</span>&#160;  <a class="code" href="classOption.html">Option&lt;TaskGroupInfo&gt;</a> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#ad6bd3d3bec32d1d06d96f90d1325bf8d">getQueuedTaskGroup</a>(<span class="keyword">const</span> TaskID&amp; taskId);</div>
-<div class="line"><a name="l00821"></a><span class="lineno">  821</span>&#160;</div>
-<div class="line"><a name="l00822"></a><span class="lineno">  822</span>&#160;  <a class="code" href="classmesos_1_1Resources.html">Resources</a> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#aab395584ca0bd5c7867e093597e6ab09">allocatedResources</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00784"></a><span class="lineno">  784</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#accfe2724d99c51d3c399c9a20548c2a7">enqueueTask</a>(<span class="keyword">const</span> TaskInfo&amp; task);</div>
+<div class="line"><a name="l00785"></a><span class="lineno">  785</span>&#160;  <a class="code" href="classOption.html">Option&lt;TaskInfo&gt;</a> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a18ade8fb3c2a5b174b7a72d02533dee7">dequeueTask</a>(<span class="keyword">const</span> TaskID&amp; taskId);</div>
+<div class="line"><a name="l00786"></a><span class="lineno">  786</span>&#160;  Task* <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a7edce93b988b10f4cbb4bd7ff47f6254">addLaunchedTask</a>(<span class="keyword">const</span> TaskInfo&amp; task);</div>
+<div class="line"><a name="l00787"></a><span class="lineno">  787</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a99724999c57ea8059b70451be58ab6af">completeTask</a>(<span class="keyword">const</span> TaskID&amp; taskId);</div>
+<div class="line"><a name="l00788"></a><span class="lineno">  788</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#ab00309cd3d1c22e2ce1051e33d829c3c">checkpointExecutor</a>();</div>
+<div class="line"><a name="l00789"></a><span class="lineno">  789</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a0a36624c6fe507a5fe4afa57543c5257">checkpointTask</a>(<span class="keyword">const</span> TaskInfo&amp; task);</div>
+<div class="line"><a name="l00790"></a><span class="lineno">  790</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a0a36624c6fe507a5fe4afa57543c5257">checkpointTask</a>(<span class="keyword">const</span> Task&amp; task);</div>
+<div class="line"><a name="l00791"></a><span class="lineno">  791</span>&#160;</div>
+<div class="line"><a name="l00792"></a><span class="lineno">  792</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a89977a8c4cec7c54a41f20e763532b3c">recoverTask</a>(<span class="keyword">const</span> <a class="code" href="structmesos_1_1internal_1_1slave_1_1state_1_1TaskState.html">state::TaskState</a>&amp; <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a27e0e6e088c0fd88a0c7f679c964c409">state</a>, <span class="keywordtype">bool</span> recheckpointTask);</div>
+<div class="line"><a name="l00793"></a><span class="lineno">  793</span>&#160;</div>
+<div class="line"><a name="l00794"></a><span class="lineno">  794</span>&#160;  <a class="code" href="classTry.html">Try&lt;Nothing&gt;</a> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a78d4cb7ddccb6a2f7cdf31475ed7e83d">updateTaskState</a>(<span class="keyword">const</span> TaskStatus&amp; <a class="code" href="namespaceproc.html#a34396c6140a28f583dc13fee3c3c35d4">status</a>);</div>
+<div class="line"><a name="l00795"></a><span class="lineno">  795</span>&#160;</div>
+<div class="line"><a name="l00796"></a><span class="lineno">  796</span>&#160;  <span class="comment">// Returns true if there are any queued/launched/terminated tasks.</span></div>
+<div class="line"><a name="l00797"></a><span class="lineno">  797</span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a79093461e7bc35f4b4b9c7a796b88e2e">incompleteTasks</a>();</div>
+<div class="line"><a name="l00798"></a><span class="lineno">  798</span>&#160;</div>
+<div class="line"><a name="l00799"></a><span class="lineno">  799</span>&#160;  <span class="comment">// Sends a message to the connected executor.</span></div>
+<div class="line"><a name="l00800"></a><span class="lineno">  800</span>&#160;  <span class="keyword">template</span> &lt;<span class="keyword">typename</span> Message&gt;</div>
+<div class="line"><a name="l00801"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a6088e2d4d0160d0cdaf8674c46d91c43">  801</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a6088e2d4d0160d0cdaf8674c46d91c43">send</a>(<span class="keyword">const</span> Message&amp; message)</div>
+<div class="line"><a name="l00802"></a><span class="lineno">  802</span>&#160;  {</div>
+<div class="line"><a name="l00803"></a><span class="lineno">  803</span>&#160;    <span class="keywordflow">if</span> (state == <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a3b2abbbd9f9e9ca5c08b75329ac426c0a47f27688eed5f4b7b8fae1fe60e35d0d">REGISTERING</a> || state == <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a3b2abbbd9f9e9ca5c08b75329ac426c0ada3a926bc25ef3c7e060789f52aacd75">TERMINATED</a>) {</div>
+<div class="line"><a name="l00804"></a><span class="lineno">  804</span>&#160;      LOG(WARNING) &lt;&lt; <span class="stringliteral">&quot;Attempting to send message to disconnected&quot;</span></div>
+<div class="line"><a name="l00805"></a><span class="lineno">  805</span>&#160;                   &lt;&lt; <span class="stringliteral">&quot; executor &quot;</span> &lt;&lt; *<span class="keyword">this</span> &lt;&lt; <span class="stringliteral">&quot; in state &quot;</span> &lt;&lt; <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a27e0e6e088c0fd88a0c7f679c964c409">state</a>;</div>
+<div class="line"><a name="l00806"></a><span class="lineno">  806</span>&#160;    }</div>
+<div class="line"><a name="l00807"></a><span class="lineno">  807</span>&#160;</div>
+<div class="line"><a name="l00808"></a><span class="lineno">  808</span>&#160;    <span class="keywordflow">if</span> (http.isSome()) {</div>
+<div class="line"><a name="l00809"></a><span class="lineno">  809</span>&#160;      <span class="keywordflow">if</span> (!http-&gt;<a class="code" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#ad0773acb50a9d74589dc050ee9bc3f9b">send</a>(message)) {</div>
+<div class="line"><a name="l00810"></a><span class="lineno">  810</span>&#160;        LOG(WARNING) &lt;&lt; <span class="stringliteral">&quot;Unable to send event to executor &quot;</span> &lt;&lt; *<span class="keyword">this</span></div>
+<div class="line"><a name="l00811"></a><span class="lineno">  811</span>&#160;                     &lt;&lt; <span class="stringliteral">&quot;: connection closed&quot;</span>;</div>
+<div class="line"><a name="l00812"></a><span class="lineno">  812</span>&#160;      }</div>
+<div class="line"><a name="l00813"></a><span class="lineno">  813</span>&#160;    } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (pid.<a class="code" href="classOption.html#a4e3bf8416d95246f43c91f1b5c309323">isSome</a>()) {</div>
+<div class="line"><a name="l00814"></a><span class="lineno">  814</span>&#160;      slave-&gt;<a class="code" href="classProtobufProcess.html#a6c404fdc490a7199a0d2ad881d588e5c">send</a>(pid.<a class="code" href="classOption.html#a21358442c0fac1cc978a67a9a9089a79">get</a>(), message);</div>
+<div class="line"><a name="l00815"></a><span class="lineno">  815</span>&#160;    } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00816"></a><span class="lineno">  816</span>&#160;      LOG(WARNING) &lt;&lt; <span class="stringliteral">&quot;Unable to send event to executor &quot;</span> &lt;&lt; *<span class="keyword">this</span></div>
+<div class="line"><a name="l00817"></a><span class="lineno">  817</span>&#160;                   &lt;&lt; <span class="stringliteral">&quot;: unknown connection type&quot;</span>;</div>
+<div class="line"><a name="l00818"></a><span class="lineno">  818</span>&#160;    }</div>
+<div class="line"><a name="l00819"></a><span class="lineno">  819</span>&#160;  }</div>
+<div class="line"><a name="l00820"></a><span class="lineno">  820</span>&#160;</div>
+<div class="line"><a name="l00821"></a><span class="lineno">  821</span>&#160;  <span class="comment">// Returns true if this is a command executor.</span></div>
+<div class="line"><a name="l00822"></a><span class="lineno">  822</span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a8c506bb12f5b2a0acd8f216ebbf0c789">isCommandExecutor</a>() <span class="keyword">const</span>;</div>
 <div class="line"><a name="l00823"></a><span class="lineno">  823</span>&#160;</div>
-<div class="line"><a name="l00824"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a3b2abbbd9f9e9ca5c08b75329ac426c0">  824</a></span>&#160;  <span class="keyword">enum</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a3b2abbbd9f9e9ca5c08b75329ac426c0">State</a></div>
-<div class="line"><a name="l00825"></a><span class="lineno">  825</span>&#160;  {</div>
-<div class="line"><a name="l00826"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a3b2abbbd9f9e9ca5c08b75329ac426c0a47f27688eed5f4b7b8fae1fe60e35d0d">  826</a></span>&#160;    <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a3b2abbbd9f9e9ca5c08b75329ac426c0a47f27688eed5f4b7b8fae1fe60e35d0d">REGISTERING</a>,  <span class="comment">// Executor is launched but not (re-)registered yet.</span></div>
-<div class="line"><a name="l00827"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a3b2abbbd9f9e9ca5c08b75329ac426c0a1485da27f38622c47c16abf8c1491683">  827</a></span>&#160;    <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a3b2abbbd9f9e9ca5c08b75329ac426c0a1485da27f38622c47c16abf8c1491683">RUNNING</a>,      <span class="comment">// Executor has (re-)registered.</span></div>
-<div class="line"><a name="l00828"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a3b2abbbd9f9e9ca5c08b75329ac426c0ab536b2fae4842fc2c6e24905f142c920">  828</a></span>&#160;    <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a3b2abbbd9f9e9ca5c08b75329ac426c0ab536b2fae4842fc2c6e24905f142c920">TERMINATING</a>,  <span class="comment">// Executor is being shutdown/killed.</span></div>
-<div class="line"><a name="l00829"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_

<TRUNCATED>