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/23 01:03:17 UTC

[3/5] mesos-site git commit: Updated the website built from mesos SHA: 30eb221.

http://git-wip-us.apache.org/repos/asf/mesos-site/blob/36b7c1e7/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 106753b..57390da 100644
--- a/content/api/latest/c++/slave_8hpp_source.html
+++ b/content/api/latest/c++/slave_8hpp_source.html
@@ -909,262 +909,264 @@
 <div class="line"><a name="l00855"></a><span class="lineno">  855</span>&#160;    }</div>
 <div class="line"><a name="l00856"></a><span class="lineno">  856</span>&#160;  }</div>
 <div class="line"><a name="l00857"></a><span class="lineno">  857</span>&#160;</div>
-<div class="line"><a name="l00858"></a><span class="lineno">  858</span>&#160;  <span class="comment">// Returns true if this is a command executor.</span></div>
-<div class="line"><a name="l00859"></a><span class="lineno">  859</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="l00860"></a><span class="lineno">  860</span>&#160;</div>
-<div class="line"><a name="l00861"></a><span class="lineno">  861</span>&#160;  <span class="comment">// Closes the HTTP connection.</span></div>
-<div class="line"><a name="l00862"></a><span class="lineno">  862</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="l00863"></a><span class="lineno">  863</span>&#160;</div>
-<div class="line"><a name="l00864"></a><span class="lineno">  864</span>&#160;  <span class="comment">// Returns the task group associated with the task.</span></div>
-<div class="line"><a name="l00865"></a><span class="lineno">  865</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="l00866"></a><span class="lineno">  866</span>&#160;</div>
-<div class="line"><a name="l00867"></a><span class="lineno">  867</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="l00858"></a><span class="lineno">  858</span>&#160;  <span class="comment">// Returns true if this executor is generated by Mesos for a command</span></div>
+<div class="line"><a name="l00859"></a><span class="lineno">  859</span>&#160;  <span class="comment">// task (either command executor for MesosContainerizer or docker</span></div>
+<div class="line"><a name="l00860"></a><span class="lineno">  860</span>&#160;  <span class="comment">// executor for DockerContainerizer).</span></div>
+<div class="line"><a name="l00861"></a><span class="lineno">  861</span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#aa015f42f8b5fe1a51616a87def9924ab">isGeneratedForCommandTask</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00862"></a><span class="lineno">  862</span>&#160;</div>
+<div class="line"><a name="l00863"></a><span class="lineno">  863</span>&#160;  <span class="comment">// Closes the HTTP connection.</span></div>
+<div class="line"><a name="l00864"></a><span class="lineno">  864</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="l00865"></a><span class="lineno">  865</span>&#160;</div>
+<div class="line"><a name="l00866"></a><span class="lineno">  866</span>&#160;  <span class="comment">// Returns the task group associated with the task.</span></div>
+<div class="line"><a name="l00867"></a><span class="lineno">  867</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="l00868"></a><span class="lineno">  868</span>&#160;</div>
-<div class="line"><a name="l00869"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a3b2abbbd9f9e9ca5c08b75329ac426c0">  869</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="l00870"></a><span class="lineno">  870</span>&#160;  {</div>
-<div class="line"><a name="l00871"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a3b2abbbd9f9e9ca5c08b75329ac426c0a47f27688eed5f4b7b8fae1fe60e35d0d">  871</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="l00872"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a3b2abbbd9f9e9ca5c08b75329ac426c0a1485da27f38622c47c16abf8c1491683">  872</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="l00873"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a3b2abbbd9f9e9ca5c08b75329ac426c0ab536b2fae4842fc2c6e24905f142c920">  873</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="l00874"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a3b2abbbd9f9e9ca5c08b75329ac426c0ada3a926bc25ef3c7e060789f52aacd75">  874</a></span>&#160;    <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a3b2abbbd9f9e9ca5c08b75329ac426c0ada3a926bc25ef3c7e060789f52aacd75">TERMINATED</a>,   <span class="comment">// Executor has terminated but there might be pending updates.</span></div>
-<div class="line"><a name="l00875"></a><span class="lineno">  875</span>&#160;  } <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a27e0e6e088c0fd88a0c7f679c964c409">state</a>;</div>
-<div class="line"><a name="l00876"></a><span class="lineno">  876</span>&#160;</div>
-<div class="line"><a name="l00877"></a><span class="lineno">  877</span>&#160;  <span class="comment">// We store the pointer to &#39;Slave&#39; to get access to its methods</span></div>
-<div class="line"><a name="l00878"></a><span class="lineno">  878</span>&#160;  <span class="comment">// variables. One could imagine &#39;Executor&#39; as being an inner class</span></div>
-<div class="line"><a name="l00879"></a><span class="lineno">  879</span>&#160;  <span class="comment">// of the &#39;Slave&#39; class.</span></div>
-<div class="line"><a name="l00880"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Executor.html#addd8f0d655f9d03ad6bc594c4d476818">  880</a></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="l00881"></a><span class="lineno">  881</span>&#160;</div>
-<div class="line"><a name="l00882"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a9037a16ee390fa0893f1229aca4e33ea">  882</a></span>&#160;  <span class="keyword">const</span> ExecutorID <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a9037a16ee390fa0893f1229aca4e33ea">id</a>;</div>
-<div class="line"><a name="l00883"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a6d93343a7cac0e8f5398e4d55a19c856">  883</a></span>&#160;  <span class="keyword">const</span> ExecutorInfo <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a6d93343a7cac0e8f5398e4d55a19c856">info</a>;</div>
-<div class="line"><a name="l00884"></a><span class="lineno">  884</span>&#160;</div>
-<div class="line"><a name="l00885"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a34bfb0214dd593dcbf1ad4fa398a417c">  885</a></span>&#160;  <span class="keyword">const</span> FrameworkID <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a34bfb0214dd593dcbf1ad4fa398a417c">frameworkId</a>;</div>
+<div class="line"><a name="l00869"></a><span class="lineno">  869</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="l00870"></a><span class="lineno">  870</span>&#160;</div>
+<div class="line"><a name="l00871"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a3b2abbbd9f9e9ca5c08b75329ac426c0">  871</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="l00872"></a><span class="lineno">  872</span>&#160;  {</div>
+<div class="line"><a name="l00873"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a3b2abbbd9f9e9ca5c08b75329ac426c0a47f27688eed5f4b7b8fae1fe60e35d0d">  873</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="l00874"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a3b2abbbd9f9e9ca5c08b75329ac426c0a1485da27f38622c47c16abf8c1491683">  874</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="l00875"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a3b2abbbd9f9e9ca5c08b75329ac426c0ab536b2fae4842fc2c6e24905f142c920">  875</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="l00876"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a3b2abbbd9f9e9ca5c08b75329ac426c0ada3a926bc25ef3c7e060789f52aacd75">  876</a></span>&#160;    <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a3b2abbbd9f9e9ca5c08b75329ac426c0ada3a926bc25ef3c7e060789f52aacd75">TERMINATED</a>,   <span class="comment">// Executor has terminated but there might be pending updates.</span></div>
+<div class="line"><a name="l00877"></a><span class="lineno">  877</span>&#160;  } <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a27e0e6e088c0fd88a0c7f679c964c409">state</a>;</div>
+<div class="line"><a name="l00878"></a><span class="lineno">  878</span>&#160;</div>
+<div class="line"><a name="l00879"></a><span class="lineno">  879</span>&#160;  <span class="comment">// We store the pointer to &#39;Slave&#39; to get access to its methods</span></div>
+<div class="line"><a name="l00880"></a><span class="lineno">  880</span>&#160;  <span class="comment">// variables. One could imagine &#39;Executor&#39; as being an inner class</span></div>
+<div class="line"><a name="l00881"></a><span class="lineno">  881</span>&#160;  <span class="comment">// of the &#39;Slave&#39; class.</span></div>
+<div class="line"><a name="l00882"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Executor.html#addd8f0d655f9d03ad6bc594c4d476818">  882</a></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="l00883"></a><span class="lineno">  883</span>&#160;</div>
+<div class="line"><a name="l00884"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a9037a16ee390fa0893f1229aca4e33ea">  884</a></span>&#160;  <span class="keyword">const</span> ExecutorID <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a9037a16ee390fa0893f1229aca4e33ea">id</a>;</div>
+<div class="line"><a name="l00885"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a6d93343a7cac0e8f5398e4d55a19c856">  885</a></span>&#160;  <span class="keyword">const</span> ExecutorInfo <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a6d93343a7cac0e8f5398e4d55a19c856">info</a>;</div>
 <div class="line"><a name="l00886"></a><span class="lineno">  886</span>&#160;</div>
-<div class="line"><a name="l00887"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Executor.html#aaad02226a9d30491088dd9ef315effbc">  887</a></span>&#160;  <span class="keyword">const</span> ContainerID <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#aaad02226a9d30491088dd9ef315effbc">containerId</a>;</div>
+<div class="line"><a name="l00887"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a34bfb0214dd593dcbf1ad4fa398a417c">  887</a></span>&#160;  <span class="keyword">const</span> FrameworkID <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a34bfb0214dd593dcbf1ad4fa398a417c">frameworkId</a>;</div>
 <div class="line"><a name="l00888"></a><span class="lineno">  888</span>&#160;</div>
-<div class="line"><a name="l00889"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Executor.html#aabe86347ab1d23297172813dc5d1c8f5">  889</a></span>&#160;  <span class="keyword">const</span> std::string <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#aabe86347ab1d23297172813dc5d1c8f5">directory</a>;</div>
+<div class="line"><a name="l00889"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Executor.html#aaad02226a9d30491088dd9ef315effbc">  889</a></span>&#160;  <span class="keyword">const</span> ContainerID <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#aaad02226a9d30491088dd9ef315effbc">containerId</a>;</div>
 <div class="line"><a name="l00890"></a><span class="lineno">  890</span>&#160;</div>
-<div class="line"><a name="l00891"></a><span class="lineno">  891</span>&#160;  <span class="comment">// The sandbox will be owned by this user and the executor will</span></div>
-<div class="line"><a name="l00892"></a><span class="lineno">  892</span>&#160;  <span class="comment">// run as this user. This can be set to None when --switch_user</span></div>
-<div class="line"><a name="l00893"></a><span class="lineno">  893</span>&#160;  <span class="comment">// is false or when compiled for Windows.</span></div>
-<div class="line"><a name="l00894"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Executor.html#aed6f0c1093840e82b6e920164be9df74">  894</a></span>&#160;  <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;std::string&gt;</a> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#aed6f0c1093840e82b6e920164be9df74">user</a>;</div>
-<div class="line"><a name="l00895"></a><span class="lineno">  895</span>&#160;</div>
-<div class="line"><a name="l00896"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Executor.html#ab05d451e6d84e8da41ac5b156cb7a79f">  896</a></span>&#160;  <span class="keyword">const</span> <span class="keywordtype">bool</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#ab05d451e6d84e8da41ac5b156cb7a79f">checkpoint</a>;</div>
+<div class="line"><a name="l00891"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Executor.html#aabe86347ab1d23297172813dc5d1c8f5">  891</a></span>&#160;  <span class="keyword">const</span> std::string <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#aabe86347ab1d23297172813dc5d1c8f5">directory</a>;</div>
+<div class="line"><a name="l00892"></a><span class="lineno">  892</span>&#160;</div>
+<div class="line"><a name="l00893"></a><span class="lineno">  893</span>&#160;  <span class="comment">// The sandbox will be owned by this user and the executor will</span></div>
+<div class="line"><a name="l00894"></a><span class="lineno">  894</span>&#160;  <span class="comment">// run as this user. This can be set to None when --switch_user</span></div>
+<div class="line"><a name="l00895"></a><span class="lineno">  895</span>&#160;  <span class="comment">// is false or when compiled for Windows.</span></div>
+<div class="line"><a name="l00896"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Executor.html#aed6f0c1093840e82b6e920164be9df74">  896</a></span>&#160;  <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;std::string&gt;</a> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#aed6f0c1093840e82b6e920164be9df74">user</a>;</div>
 <div class="line"><a name="l00897"></a><span class="lineno">  897</span>&#160;</div>
-<div class="line"><a name="l00898"></a><span class="lineno">  898</span>&#160;  <span class="comment">// An Executor can either be connected via HTTP or by libprocess</span></div>
-<div class="line"><a name="l00899"></a><span class="lineno">  899</span>&#160;  <span class="comment">// message passing. The following are the possible states:</span></div>
-<div class="line"><a name="l00900"></a><span class="lineno">  900</span>&#160;  <span class="comment">//</span></div>
-<div class="line"><a name="l00901"></a><span class="lineno">  901</span>&#160;  <span class="comment">// Agent State    Executor State       http       pid    Executor Type</span></div>
-<div class="line"><a name="l00902"></a><span class="lineno">  902</span>&#160;  <span class="comment">// -----------    --------------       ----      ----    -------------</span></div>
-<div class="line"><a name="l00903"></a><span class="lineno">  903</span>&#160;  <span class="comment">//  RECOVERING       REGISTERING       None     UPID()         Unknown</span></div>
-<div class="line"><a name="l00904"></a><span class="lineno">  904</span>&#160;  <span class="comment">//                   REGISTERING       None       Some      Libprocess</span></div>
-<div class="line"><a name="l00905"></a><span class="lineno">  905</span>&#160;  <span class="comment">//                   REGISTERING       None       None            HTTP</span></div>
-<div class="line"><a name="l00906"></a><span class="lineno">  906</span>&#160;  <span class="comment">//</span></div>
-<div class="line"><a name="l00907"></a><span class="lineno">  907</span>&#160;  <span class="comment">//           *       REGISTERING       None       None   Not known yet</span></div>
-<div class="line"><a name="l00908"></a><span class="lineno">  908</span>&#160;  <span class="comment">//           *                 *       None       Some      Libprocess</span></div>
-<div class="line"><a name="l00909"></a><span class="lineno">  909</span>&#160;  <span class="comment">//           *                 *       Some       None            HTTP</span></div>
-<div class="line"><a name="l00910"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Executor.html#ad432746af325d55919e69efe7d82fbb9">  910</a></span>&#160;  <a class="code" href="classOption.html">Option&lt;HttpConnection&gt;</a> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#ad432746af325d55919e69efe7d82fbb9">http</a>;</div>
-<div class="line"><a name="l00911"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a29666bff86d8f043ce5ba4f8a4ccb0b8">  911</a></span>&#160;  <a class="code" href="classOption.html">Option&lt;process::UPID&gt;</a> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a29666bff86d8f043ce5ba4f8a4ccb0b8">pid</a>;</div>
-<div class="line"><a name="l00912"></a><span class="lineno">  912</span>&#160;</div>
-<div class="line"><a name="l00913"></a><span class="lineno">  913</span>&#160;  <span class="comment">// Tasks can be found in one of the following four data structures:</span></div>
-<div class="line"><a name="l00914"></a><span class="lineno">  914</span>&#160;  <span class="comment">//</span></div>
-<div class="line"><a name="l00915"></a><span class="lineno">  915</span>&#160;  <span class="comment">// TODO(bmahler): Make these private to enforce that the task</span></div>
-<div class="line"><a name="l00916"></a><span class="lineno">  916</span>&#160;  <span class="comment">// lifecycle helper functions are not being bypassed, and provide</span></div>
-<div class="line"><a name="l00917"></a><span class="lineno">  917</span>&#160;  <span class="comment">// public views into them.</span></div>
-<div class="line"><a name="l00918"></a><span class="lineno">  918</span>&#160;</div>
-<div class="line"><a name="l00919"></a><span class="lineno">  919</span>&#160;  <span class="comment">// Not yet launched tasks. This also includes tasks from `queuedTaskGroups`.</span></div>
-<div class="line"><a name="l00920"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a806e8af598eb003694dbaeacdda2c66b">  920</a></span>&#160;  <a class="code" href="classLinkedHashMap.html">LinkedHashMap&lt;TaskID, TaskInfo&gt;</a> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a806e8af598eb003694dbaeacdda2c66b">queuedTasks</a>;</div>
-<div class="line"><a name="l00921"></a><span class="lineno">  921</span>&#160;</div>
-<div class="line"><a name="l00922"></a><span class="lineno">  922</span>&#160;  <span class="comment">// Not yet launched task groups. This is needed for correctly sending</span></div>
-<div class="line"><a name="l00923"></a><span class="lineno">  923</span>&#160;  <span class="comment">// TASK_KILLED status updates for all tasks in the group if any of the</span></div>
-<div class="line"><a name="l00924"></a><span class="lineno">  924</span>&#160;  <span class="comment">// tasks were killed before the executor could register with the agent.</span></div>
-<div class="line"><a name="l00925"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a2fc2e9b051c144f259f003b79a3d5ec3">  925</a></span>&#160;  std::list&lt;TaskGroupInfo&gt; <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a2fc2e9b051c144f259f003b79a3d5ec3">queuedTaskGroups</a>;</div>
-<div class="line"><a name="l00926"></a><span class="lineno">  926</span>&#160;</div>
-<div class="line"><a name="l00927"></a><span class="lineno">  927</span>&#160;  <span class="comment">// Running.</span></div>
-<div class="line"><a name="l00928"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a8c9a1989d4b769bbccd7ce7385fd054d">  928</a></span>&#160;  <a class="code" href="classLinkedHashMap.html">LinkedHashMap&lt;TaskID, Task*&gt;</a> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a8c9a1989d4b769bbccd7ce7385fd054d">launchedTasks</a>;</div>
-<div class="line"><a name="l00929"></a><span class="lineno">  929</span>&#160;</div>
-<div class="line"><a name="l00930"></a><span class="lineno">  930</span>&#160;  <span class="comment">// Terminated but pending updates.</span></div>
-<div class="line"><a name="l00931"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Executor.html#abd7e32a67b2bf5409c1ab855f3220625">  931</a></span>&#160;  <a class="code" href="classLinkedHashMap.html">LinkedHashMap&lt;TaskID, Task*&gt;</a> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#abd7e32a67b2bf5409c1ab855f3220625">terminatedTasks</a>;</div>
-<div class="line"><a name="l00932"></a><span class="lineno">  932</span>&#160;</div>
-<div class="line"><a name="l00933"></a><span class="lineno">  933</span>&#160;  <span class="comment">// Terminated and updates acked.</span></div>
-<div class="line"><a name="l00934"></a><span class="lineno">  934</span>&#160;  <span class="comment">// NOTE: We use a shared pointer for Task because clang doesn&#39;t like</span></div>
-<div class="line"><a name="l00935"></a><span class="lineno">  935</span>&#160;  <span class="comment">// Boost&#39;s implementation of circular_buffer with Task (Boost</span></div>
-<div class="line"><a name="l00936"></a><span class="lineno">  936</span>&#160;  <span class="comment">// attempts to do some memset&#39;s which are unsafe).</span></div>
-<div class="line"><a name="l00937"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Executor.html#ad326f6f8e9c161095f6a7e033da58550">  937</a></span>&#160;  boost::circular_buffer&lt;std::shared_ptr&lt;Task&gt;&gt; <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#ad326f6f8e9c161095f6a7e033da58550">completedTasks</a>;</div>
-<div class="line"><a name="l00938"></a><span class="lineno">  938</span>&#160;</div>
-<div class="line"><a name="l00939"></a><span class="lineno">  939</span>&#160;  <span class="comment">// When the slave initiates a destroy of the container, we expect a</span></div>
-<div class="line"><a name="l00940"></a><span class="lineno">  940</span>&#160;  <span class="comment">// termination to occur. The &#39;pendingTermation&#39; indicates why the</span></div>
-<div class="line"><a name="l00941"></a><span class="lineno">  941</span>&#160;  <span class="comment">// slave initiated the destruction and will influence the</span></div>
-<div class="line"><a name="l00942"></a><span class="lineno">  942</span>&#160;  <span class="comment">// information sent in the status updates for any remaining</span></div>
-<div class="line"><a name="l00943"></a><span class="lineno">  943</span>&#160;  <span class="comment">// non-terminal tasks.</span></div>
-<div class="line"><a name="l00944"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Executor.html#addae2cfbd131b946f10a7986aafac151">  944</a></span>&#160;  <a class="code" href="classOption.html">Option&lt;mesos::slave::ContainerTermination&gt;</a> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#addae2cfbd131b946f10a7986aafac151">pendingTermination</a>;</div>
-<div class="line"><a name="l00945"></a><span class="lineno">  945</span>&#160;</div>
-<div class="line"><a name="l00946"></a><span class="lineno">  946</span>&#160;<span class="keyword">private</span>:</div>
-<div class="line"><a name="l00947"></a><span class="lineno">  947</span>&#160;  <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a2743c0fdfd1c12f467e85e628a779114">Executor</a>(<span class="keyword">const</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html">Executor</a>&amp;) = <span class="keyword">delete</span>;</div>
-<div class="line"><a name="l00948"></a><span class="lineno">  948</span>&#160;  <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html">Executor</a>&amp; operator=(<span class="keyword">const</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html">Executor</a>&amp;) = <span class="keyword">delete</span>;</div>
-<div class="line"><a name="l00949"></a><span class="lineno">  949</span>&#160;</div>
-<div class="line"><a name="l00950"></a><span class="lineno">  950</span>&#160;  <span class="keywordtype">bool</span> commandExecutor;</div>
-<div class="line"><a name="l00951"></a><span class="lineno">  951</span>&#160;};</div>
-<div class="line"><a name="l00952"></a><span class="lineno">  952</span>&#160;</div>
-<div class="line"><a name="l00953"></a><span class="lineno">  953</span>&#160;</div>
-<div class="line"><a name="l00954"></a><span class="lineno">  954</span>&#160;<span class="comment">// Information about a framework.</span></div>
-<div class="line"><a name="l00955"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Framework.html">  955</a></span>&#160;<span class="keyword">class </span><a class="code" href="classmesos_1_1internal_1_1slave_1_1Framework.html">Framework</a></div>
-<div class="line"><a name="l00956"></a><span class="lineno">  956</span>&#160;{</div>
-<div class="line"><a name="l00957"></a><span class="lineno">  957</span>&#160;<span class="keyword">public</span>:</div>
-<div class="line"><a name="l00958"></a><span class="lineno">  958</span>&#160;  <a class="code" href="classmesos_1_1internal_1_1slave_1_1Framework.html#a98caed7c7f98f89fa2cb716cbfe38217">Framework</a>(</div>
-<div class="line"><a name="l00959"></a><span class="lineno">  959</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_1Framework.html#a28542cb83d680c4bd37f31ae58382866">slave</a>,</div>
-<div class="line"><a name="l00960"></a><span class="lineno">  960</span>&#160;      <span class="keyword">const</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Flags.html">Flags</a>&amp; slaveFlags,</div>
-<div class="line"><a name="l00961"></a><span class="lineno">  961</span>&#160;      <span class="keyword">const</span> FrameworkInfo&amp; <a class="code" href="classmesos_1_1internal_1_1slave_1_1Framework.html#ab024621d83bc1381fd176d0fc8cdeac2">info</a>,</div>
-<div class="line"><a name="l00962"></a><span class="lineno">  962</span>&#160;      <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;process::UPID&gt;</a>&amp; pid);</div>
-<div class="line"><a name="l00963"></a><span class="lineno">  963</span>&#160;</div>
-<div class="line"><a name="l00964"></a><span class="lineno">  964</span>&#160;  <a class="code" href="classmesos_1_1internal_1_1slave_1_1Framework.html#a6803557157471add8d9cccc7272beb14">~Framework</a>();</div>
+<div class="line"><a name="l00898"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Executor.html#ab05d451e6d84e8da41ac5b156cb7a79f">  898</a></span>&#160;  <span class="keyword">const</span> <span class="keywordtype">bool</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#ab05d451e6d84e8da41ac5b156cb7a79f">checkpoint</a>;</div>
+<div class="line"><a name="l00899"></a><span class="lineno">  899</span>&#160;</div>
+<div class="line"><a name="l00900"></a><span class="lineno">  900</span>&#160;  <span class="comment">// An Executor can either be connected via HTTP or by libprocess</span></div>
+<div class="line"><a name="l00901"></a><span class="lineno">  901</span>&#160;  <span class="comment">// message passing. The following are the possible states:</span></div>
+<div class="line"><a name="l00902"></a><span class="lineno">  902</span>&#160;  <span class="comment">//</span></div>
+<div class="line"><a name="l00903"></a><span class="lineno">  903</span>&#160;  <span class="comment">// Agent State    Executor State       http       pid    Executor Type</span></div>
+<div class="line"><a name="l00904"></a><span class="lineno">  904</span>&#160;  <span class="comment">// -----------    --------------       ----      ----    -------------</span></div>
+<div class="line"><a name="l00905"></a><span class="lineno">  905</span>&#160;  <span class="comment">//  RECOVERING       REGISTERING       None     UPID()         Unknown</span></div>
+<div class="line"><a name="l00906"></a><span class="lineno">  906</span>&#160;  <span class="comment">//                   REGISTERING       None       Some      Libprocess</span></div>
+<div class="line"><a name="l00907"></a><span class="lineno">  907</span>&#160;  <span class="comment">//                   REGISTERING       None       None            HTTP</span></div>
+<div class="line"><a name="l00908"></a><span class="lineno">  908</span>&#160;  <span class="comment">//</span></div>
+<div class="line"><a name="l00909"></a><span class="lineno">  909</span>&#160;  <span class="comment">//           *       REGISTERING       None       None   Not known yet</span></div>
+<div class="line"><a name="l00910"></a><span class="lineno">  910</span>&#160;  <span class="comment">//           *                 *       None       Some      Libprocess</span></div>
+<div class="line"><a name="l00911"></a><span class="lineno">  911</span>&#160;  <span class="comment">//           *                 *       Some       None            HTTP</span></div>
+<div class="line"><a name="l00912"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Executor.html#ad432746af325d55919e69efe7d82fbb9">  912</a></span>&#160;  <a class="code" href="classOption.html">Option&lt;HttpConnection&gt;</a> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#ad432746af325d55919e69efe7d82fbb9">http</a>;</div>
+<div class="line"><a name="l00913"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a29666bff86d8f043ce5ba4f8a4ccb0b8">  913</a></span>&#160;  <a class="code" href="classOption.html">Option&lt;process::UPID&gt;</a> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a29666bff86d8f043ce5ba4f8a4ccb0b8">pid</a>;</div>
+<div class="line"><a name="l00914"></a><span class="lineno">  914</span>&#160;</div>
+<div class="line"><a name="l00915"></a><span class="lineno">  915</span>&#160;  <span class="comment">// Tasks can be found in one of the following four data structures:</span></div>
+<div class="line"><a name="l00916"></a><span class="lineno">  916</span>&#160;  <span class="comment">//</span></div>
+<div class="line"><a name="l00917"></a><span class="lineno">  917</span>&#160;  <span class="comment">// TODO(bmahler): Make these private to enforce that the task</span></div>
+<div class="line"><a name="l00918"></a><span class="lineno">  918</span>&#160;  <span class="comment">// lifecycle helper functions are not being bypassed, and provide</span></div>
+<div class="line"><a name="l00919"></a><span class="lineno">  919</span>&#160;  <span class="comment">// public views into them.</span></div>
+<div class="line"><a name="l00920"></a><span class="lineno">  920</span>&#160;</div>
+<div class="line"><a name="l00921"></a><span class="lineno">  921</span>&#160;  <span class="comment">// Not yet launched tasks. This also includes tasks from `queuedTaskGroups`.</span></div>
+<div class="line"><a name="l00922"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a806e8af598eb003694dbaeacdda2c66b">  922</a></span>&#160;  <a class="code" href="classLinkedHashMap.html">LinkedHashMap&lt;TaskID, TaskInfo&gt;</a> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a806e8af598eb003694dbaeacdda2c66b">queuedTasks</a>;</div>
+<div class="line"><a name="l00923"></a><span class="lineno">  923</span>&#160;</div>
+<div class="line"><a name="l00924"></a><span class="lineno">  924</span>&#160;  <span class="comment">// Not yet launched task groups. This is needed for correctly sending</span></div>
+<div class="line"><a name="l00925"></a><span class="lineno">  925</span>&#160;  <span class="comment">// TASK_KILLED status updates for all tasks in the group if any of the</span></div>
+<div class="line"><a name="l00926"></a><span class="lineno">  926</span>&#160;  <span class="comment">// tasks were killed before the executor could register with the agent.</span></div>
+<div class="line"><a name="l00927"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a2fc2e9b051c144f259f003b79a3d5ec3">  927</a></span>&#160;  std::list&lt;TaskGroupInfo&gt; <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a2fc2e9b051c144f259f003b79a3d5ec3">queuedTaskGroups</a>;</div>
+<div class="line"><a name="l00928"></a><span class="lineno">  928</span>&#160;</div>
+<div class="line"><a name="l00929"></a><span class="lineno">  929</span>&#160;  <span class="comment">// Running.</span></div>
+<div class="line"><a name="l00930"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a8c9a1989d4b769bbccd7ce7385fd054d">  930</a></span>&#160;  <a class="code" href="classLinkedHashMap.html">LinkedHashMap&lt;TaskID, Task*&gt;</a> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a8c9a1989d4b769bbccd7ce7385fd054d">launchedTasks</a>;</div>
+<div class="line"><a name="l00931"></a><span class="lineno">  931</span>&#160;</div>
+<div class="line"><a name="l00932"></a><span class="lineno">  932</span>&#160;  <span class="comment">// Terminated but pending updates.</span></div>
+<div class="line"><a name="l00933"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Executor.html#abd7e32a67b2bf5409c1ab855f3220625">  933</a></span>&#160;  <a class="code" href="classLinkedHashMap.html">LinkedHashMap&lt;TaskID, Task*&gt;</a> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#abd7e32a67b2bf5409c1ab855f3220625">terminatedTasks</a>;</div>
+<div class="line"><a name="l00934"></a><span class="lineno">  934</span>&#160;</div>
+<div class="line"><a name="l00935"></a><span class="lineno">  935</span>&#160;  <span class="comment">// Terminated and updates acked.</span></div>
+<div class="line"><a name="l00936"></a><span class="lineno">  936</span>&#160;  <span class="comment">// NOTE: We use a shared pointer for Task because clang doesn&#39;t like</span></div>
+<div class="line"><a name="l00937"></a><span class="lineno">  937</span>&#160;  <span class="comment">// Boost&#39;s implementation of circular_buffer with Task (Boost</span></div>
+<div class="line"><a name="l00938"></a><span class="lineno">  938</span>&#160;  <span class="comment">// attempts to do some memset&#39;s which are unsafe).</span></div>
+<div class="line"><a name="l00939"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Executor.html#ad326f6f8e9c161095f6a7e033da58550">  939</a></span>&#160;  boost::circular_buffer&lt;std::shared_ptr&lt;Task&gt;&gt; <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#ad326f6f8e9c161095f6a7e033da58550">completedTasks</a>;</div>
+<div class="line"><a name="l00940"></a><span class="lineno">  940</span>&#160;</div>
+<div class="line"><a name="l00941"></a><span class="lineno">  941</span>&#160;  <span class="comment">// When the slave initiates a destroy of the container, we expect a</span></div>
+<div class="line"><a name="l00942"></a><span class="lineno">  942</span>&#160;  <span class="comment">// termination to occur. The &#39;pendingTermation&#39; indicates why the</span></div>
+<div class="line"><a name="l00943"></a><span class="lineno">  943</span>&#160;  <span class="comment">// slave initiated the destruction and will influence the</span></div>
+<div class="line"><a name="l00944"></a><span class="lineno">  944</span>&#160;  <span class="comment">// information sent in the status updates for any remaining</span></div>
+<div class="line"><a name="l00945"></a><span class="lineno">  945</span>&#160;  <span class="comment">// non-terminal tasks.</span></div>
+<div class="line"><a name="l00946"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Executor.html#addae2cfbd131b946f10a7986aafac151">  946</a></span>&#160;  <a class="code" href="classOption.html">Option&lt;mesos::slave::ContainerTermination&gt;</a> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#addae2cfbd131b946f10a7986aafac151">pendingTermination</a>;</div>
+<div class="line"><a name="l00947"></a><span class="lineno">  947</span>&#160;</div>
+<div class="line"><a name="l00948"></a><span class="lineno">  948</span>&#160;<span class="keyword">private</span>:</div>
+<div class="line"><a name="l00949"></a><span class="lineno">  949</span>&#160;  <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a2743c0fdfd1c12f467e85e628a779114">Executor</a>(<span class="keyword">const</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html">Executor</a>&amp;) = <span class="keyword">delete</span>;</div>
+<div class="line"><a name="l00950"></a><span class="lineno">  950</span>&#160;  <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html">Executor</a>&amp; operator=(<span class="keyword">const</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html">Executor</a>&amp;) = <span class="keyword">delete</span>;</div>
+<div class="line"><a name="l00951"></a><span class="lineno">  951</span>&#160;</div>
+<div class="line"><a name="l00952"></a><span class="lineno">  952</span>&#160;  <span class="keywordtype">bool</span> isGeneratedForCommandTask_;</div>
+<div class="line"><a name="l00953"></a><span class="lineno">  953</span>&#160;};</div>
+<div class="line"><a name="l00954"></a><span class="lineno">  954</span>&#160;</div>
+<div class="line"><a name="l00955"></a><span class="lineno">  955</span>&#160;</div>
+<div class="line"><a name="l00956"></a><span class="lineno">  956</span>&#160;<span class="comment">// Information about a framework.</span></div>
+<div class="line"><a name="l00957"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Framework.html">  957</a></span>&#160;<span class="keyword">class </span><a class="code" href="classmesos_1_1internal_1_1slave_1_1Framework.html">Framework</a></div>
+<div class="line"><a name="l00958"></a><span class="lineno">  958</span>&#160;{</div>
+<div class="line"><a name="l00959"></a><span class="lineno">  959</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00960"></a><span class="lineno">  960</span>&#160;  <a class="code" href="classmesos_1_1internal_1_1slave_1_1Framework.html#a98caed7c7f98f89fa2cb716cbfe38217">Framework</a>(</div>
+<div class="line"><a name="l00961"></a><span class="lineno">  961</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_1Framework.html#a28542cb83d680c4bd37f31ae58382866">slave</a>,</div>
+<div class="line"><a name="l00962"></a><span class="lineno">  962</span>&#160;      <span class="keyword">const</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Flags.html">Flags</a>&amp; slaveFlags,</div>
+<div class="line"><a name="l00963"></a><span class="lineno">  963</span>&#160;      <span class="keyword">const</span> FrameworkInfo&amp; <a class="code" href="classmesos_1_1internal_1_1slave_1_1Framework.html#ab024621d83bc1381fd176d0fc8cdeac2">info</a>,</div>
+<div class="line"><a name="l00964"></a><span class="lineno">  964</span>&#160;      <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;process::UPID&gt;</a>&amp; pid);</div>
 <div class="line"><a name="l00965"></a><span class="lineno">  965</span>&#160;</div>
-<div class="line"><a name="l00966"></a><span class="lineno">  966</span>&#160;  <span class="comment">// Returns whether the framework is idle, where idle is</span></div>
-<div class="line"><a name="l00967"></a><span class="lineno">  967</span>&#160;  <span class="comment">// defined as having no activity:</span></div>
-<div class="line"><a name="l00968"></a><span class="lineno">  968</span>&#160;  <span class="comment">//   (1) The framework has no non-terminal tasks and executors.</span></div>
-<div class="line"><a name="l00969"></a><span class="lineno">  969</span>&#160;  <span class="comment">//   (2) All status updates have been acknowledged.</span></div>
-<div class="line"><a name="l00970"></a><span class="lineno">  970</span>&#160;  <span class="comment">//</span></div>
-<div class="line"><a name="l00971"></a><span class="lineno">  971</span>&#160;  <span class="comment">// TODO(bmahler): The framework should also not be considered</span></div>
-<div class="line"><a name="l00972"></a><span class="lineno">  972</span>&#160;  <span class="comment">// idle if there are unacknowledged updates for &quot;pending&quot; tasks.</span></div>
-<div class="line"><a name="l00973"></a><span class="lineno">  973</span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Framework.html#ac08555852cd25a946886181831cb423e">idle</a>() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00974"></a><span class="lineno">  974</span>&#160;</div>
-<div class="line"><a name="l00975"></a><span class="lineno">  975</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Framework.html#ae1271f8b0a5113b0413c4c5ca3035ae5">checkpointFramework</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00966"></a><span class="lineno">  966</span>&#160;  <a class="code" href="classmesos_1_1internal_1_1slave_1_1Framework.html#a6803557157471add8d9cccc7272beb14">~Framework</a>();</div>
+<div class="line"><a name="l00967"></a><span class="lineno">  967</span>&#160;</div>
+<div class="line"><a name="l00968"></a><span class="lineno">  968</span>&#160;  <span class="comment">// Returns whether the framework is idle, where idle is</span></div>
+<div class="line"><a name="l00969"></a><span class="lineno">  969</span>&#160;  <span class="comment">// defined as having no activity:</span></div>
+<div class="line"><a name="l00970"></a><span class="lineno">  970</span>&#160;  <span class="comment">//   (1) The framework has no non-terminal tasks and executors.</span></div>
+<div class="line"><a name="l00971"></a><span class="lineno">  971</span>&#160;  <span class="comment">//   (2) All status updates have been acknowledged.</span></div>
+<div class="line"><a name="l00972"></a><span class="lineno">  972</span>&#160;  <span class="comment">//</span></div>
+<div class="line"><a name="l00973"></a><span class="lineno">  973</span>&#160;  <span class="comment">// TODO(bmahler): The framework should also not be considered</span></div>
+<div class="line"><a name="l00974"></a><span class="lineno">  974</span>&#160;  <span class="comment">// idle if there are unacknowledged updates for &quot;pending&quot; tasks.</span></div>
+<div class="line"><a name="l00975"></a><span class="lineno">  975</span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Framework.html#ac08555852cd25a946886181831cb423e">idle</a>() <span class="keyword">const</span>;</div>
 <div class="line"><a name="l00976"></a><span class="lineno">  976</span>&#160;</div>
-<div class="line"><a name="l00977"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Framework.html#a65933e3034706258069b54549081fdbf">  977</a></span>&#160;  <span class="keyword">const</span> FrameworkID <a class="code" href="classmesos_1_1internal_1_1slave_1_1Framework.html#a65933e3034706258069b54549081fdbf">id</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> info.id(); }</div>
+<div class="line"><a name="l00977"></a><span class="lineno">  977</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Framework.html#ae1271f8b0a5113b0413c4c5ca3035ae5">checkpointFramework</a>() <span class="keyword">const</span>;</div>
 <div class="line"><a name="l00978"></a><span class="lineno">  978</span>&#160;</div>
-<div class="line"><a name="l00979"></a><span class="lineno">  979</span>&#160;  <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html">Executor</a>* <a class="code" href="classmesos_1_1internal_1_1slave_1_1Framework.html#a4cbc84739c113be2cb1e6b4c88c46983">addExecutor</a>(<span class="keyword">const</span> ExecutorInfo&amp; executorInfo);</div>
-<div class="line"><a name="l00980"></a><span class="lineno">  980</span>&#160;  <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html">Executor</a>* <a class="code" href="classmesos_1_1internal_1_1slave_1_1Framework.html#aaa044d0c042d68e59815f1244440560e">getExecutor</a>(<span class="keyword">const</span> ExecutorID&amp; executorId) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00981"></a><span class="lineno">  981</span>&#160;  <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html">Executor</a>* <a class="code" href="classmesos_1_1internal_1_1slave_1_1Framework.html#aaa044d0c042d68e59815f1244440560e">getExecutor</a>(<span class="keyword">const</span> TaskID&amp; taskId) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00982"></a><span class="lineno">  982</span>&#160;</div>
-<div class="line"><a name="l00983"></a><span class="lineno">  983</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Framework.html#a8a39feb604858a43d0f7f747961d4592">destroyExecutor</a>(<span class="keyword">const</span> ExecutorID&amp; executorId);</div>
+<div class="line"><a name="l00979"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Framework.html#a65933e3034706258069b54549081fdbf">  979</a></span>&#160;  <span class="keyword">const</span> FrameworkID <a class="code" href="classmesos_1_1internal_1_1slave_1_1Framework.html#a65933e3034706258069b54549081fdbf">id</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> info.id(); }</div>
+<div class="line"><a name="l00980"></a><span class="lineno">  980</span>&#160;</div>
+<div class="line"><a name="l00981"></a><span class="lineno">  981</span>&#160;  <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html">Executor</a>* <a class="code" href="classmesos_1_1internal_1_1slave_1_1Framework.html#a4cbc84739c113be2cb1e6b4c88c46983">addExecutor</a>(<span class="keyword">const</span> ExecutorInfo&amp; executorInfo);</div>
+<div class="line"><a name="l00982"></a><span class="lineno">  982</span>&#160;  <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html">Executor</a>* <a class="code" href="classmesos_1_1internal_1_1slave_1_1Framework.html#aaa044d0c042d68e59815f1244440560e">getExecutor</a>(<span class="keyword">const</span> ExecutorID&amp; executorId) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00983"></a><span class="lineno">  983</span>&#160;  <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html">Executor</a>* <a class="code" href="classmesos_1_1internal_1_1slave_1_1Framework.html#aaa044d0c042d68e59815f1244440560e">getExecutor</a>(<span class="keyword">const</span> TaskID&amp; taskId) <span class="keyword">const</span>;</div>
 <div class="line"><a name="l00984"></a><span class="lineno">  984</span>&#160;</div>
-<div class="line"><a name="l00985"></a><span class="lineno">  985</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Framework.html#a440112e6053e7d36a46c18580a1b5133">recoverExecutor</a>(</div>
-<div class="line"><a name="l00986"></a><span class="lineno">  986</span>&#160;      <span class="keyword">const</span> <a class="code" href="structmesos_1_1internal_1_1slave_1_1state_1_1ExecutorState.html">state::ExecutorState</a>&amp; <a class="code" href="classmesos_1_1internal_1_1slave_1_1Framework.html#adbfec960b7cb705602bdac9853fb0c12">state</a>,</div>
-<div class="line"><a name="l00987"></a><span class="lineno">  987</span>&#160;      <span class="keywordtype">bool</span> recheckpointExecutor,</div>
-<div class="line"><a name="l00988"></a><span class="lineno">  988</span>&#160;      <span class="keyword">const</span> <a class="code" href="classhashset.html">hashset&lt;TaskID&gt;</a>&amp; tasksToRecheckpoint);</div>
-<div class="line"><a name="l00989"></a><span class="lineno">  989</span>&#160;</div>
-<div class="line"><a name="l00990"></a><span class="lineno">  990</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Framework.html#aeb25f4fcc70053454fa9b96fdc723472">addPendingTask</a>(</div>
-<div class="line"><a name="l00991"></a><span class="lineno">  991</span>&#160;      <span class="keyword">const</span> ExecutorID&amp; executorId,</div>
-<div class="line"><a name="l00992"></a><span class="lineno">  992</span>&#160;      <span class="keyword">const</span> TaskInfo&amp; task);</div>
-<div class="line"><a name="l00993"></a><span class="lineno">  993</span>&#160;</div>
-<div class="line"><a name="l00994"></a><span class="lineno">  994</span>&#160;  <span class="comment">// Note that these tasks will also be tracked within `pendingTasks`.</span></div>
-<div class="line"><a name="l00995"></a><span class="lineno">  995</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Framework.html#af3e51bb9c1d72d282695d8a4a9b2e072">addPendingTaskGroup</a>(</div>
-<div class="line"><a name="l00996"></a><span class="lineno">  996</span>&#160;      <span class="keyword">const</span> ExecutorID&amp; executorId,</div>
-<div class="line"><a name="l00997"></a><span class="lineno">  997</span>&#160;      <span class="keyword">const</span> TaskGroupInfo&amp; taskGroup);</div>
-<div class="line"><a name="l00998"></a><span class="lineno">  998</span>&#160;</div>
-<div class="line"><a name="l00999"></a><span class="lineno">  999</span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Framework.html#aa4d1693c6eaeccb8df16ae925c3979e0">hasTask</a>(<span class="keyword">const</span> TaskID&amp; taskId) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Framework.html#ab67788cb552b7320783b7ecd7b80f82a">isPending</a>(<span class="keyword">const</span> TaskID&amp; taskId) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>&#160;</div>
-<div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>&#160;  <span class="comment">// Returns the task group associated with a pending task.</span></div>
-<div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>&#160;  <a class="code" href="classOption.html">Option&lt;TaskGroupInfo&gt;</a> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Framework.html#a1c287e7b3a052ddbddc88f26a33784d4">getTaskGroupForPendingTask</a>(<span class="keyword">const</span> TaskID&amp; taskId);</div>
-<div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>&#160;</div>
-<div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>&#160;  <span class="comment">// Returns whether the pending task was removed.</span></div>
-<div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Framework.html#aabbcae80a9967d73db3218e33505921c">removePendingTask</a>(<span class="keyword">const</span> TaskID&amp; taskId);</div>
-<div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>&#160;</div>
-<div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>&#160;  <a class="code" href="classOption.html">Option&lt;ExecutorID&gt;</a> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Framework.html#a2fff4fc7fabe8cd06c9fca35f187b82b">getExecutorIdForPendingTask</a>(<span class="keyword">const</span> TaskID&amp; taskId) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00985"></a><span class="lineno">  985</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Framework.html#a8a39feb604858a43d0f7f747961d4592">destroyExecutor</a>(<span class="keyword">const</span> ExecutorID&amp; executorId);</div>
+<div class="line"><a name="l00986"></a><span class="lineno">  986</span>&#160;</div>
+<div class="line"><a name="l00987"></a><span class="lineno">  987</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Framework.html#a440112e6053e7d36a46c18580a1b5133">recoverExecutor</a>(</div>
+<div class="line"><a name="l00988"></a><span class="lineno">  988</span>&#160;      <span class="keyword">const</span> <a class="code" href="structmesos_1_1internal_1_1slave_1_1state_1_1ExecutorState.html">state::ExecutorState</a>&amp; <a class="code" href="classmesos_1_1internal_1_1slave_1_1Framework.html#adbfec960b7cb705602bdac9853fb0c12">state</a>,</div>
+<div class="line"><a name="l00989"></a><span class="lineno">  989</span>&#160;      <span class="keywordtype">bool</span> recheckpointExecutor,</div>
+<div class="line"><a name="l00990"></a><span class="lineno">  990</span>&#160;      <span class="keyword">const</span> <a class="code" href="classhashset.html">hashset&lt;TaskID&gt;</a>&amp; tasksToRecheckpoint);</div>
+<div class="line"><a name="l00991"></a><span class="lineno">  991</span>&#160;</div>
+<div class="line"><a name="l00992"></a><span class="lineno">  992</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Framework.html#aeb25f4fcc70053454fa9b96fdc723472">addPendingTask</a>(</div>
+<div class="line"><a name="l00993"></a><span class="lineno">  993</span>&#160;      <span class="keyword">const</span> ExecutorID&amp; executorId,</div>
+<div class="line"><a name="l00994"></a><span class="lineno">  994</span>&#160;      <span class="keyword">const</span> TaskInfo&amp; task);</div>
+<div class="line"><a name="l00995"></a><span class="lineno">  995</span>&#160;</div>
+<div class="line"><a name="l00996"></a><span class="lineno">  996</span>&#160;  <span class="comment">// Note that these tasks will also be tracked within `pendingTasks`.</span></div>
+<div class="line"><a name="l00997"></a><span class="lineno">  997</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Framework.html#af3e51bb9c1d72d282695d8a4a9b2e072">addPendingTaskGroup</a>(</div>
+<div class="line"><a name="l00998"></a><span class="lineno">  998</span>&#160;      <span class="keyword">const</span> ExecutorID&amp; executorId,</div>
+<div class="line"><a name="l00999"></a><span class="lineno">  999</span>&#160;      <span class="keyword">const</span> TaskGroupInfo&amp; taskGroup);</div>
+<div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>&#160;</div>
+<div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Framework.html#aa4d1693c6eaeccb8df16ae925c3979e0">hasTask</a>(<span class="keyword">const</span> TaskID&amp; taskId) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Framework.html#ab67788cb552b7320783b7ecd7b80f82a">isPending</a>(<span class="keyword">const</span> TaskID&amp; taskId) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>&#160;</div>
+<div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>&#160;  <span class="comment">// Returns the task group associated with a pending task.</span></div>
+<div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>&#160;  <a class="code" href="classOption.html">Option&lt;TaskGroupInfo&gt;</a> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Framework.html#a1c287e7b3a052ddbddc88f26a33784d4">getTaskGroupForPendingTask</a>(<span class="keyword">const</span> TaskID&amp; taskId);</div>
+<div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>&#160;</div>
+<div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>&#160;  <span class="comment">// Returns whether the pending task was removed.</span></div>
+<div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Framework.html#aabbcae80a9967d73db3218e33505921c">removePendingTask</a>(<span class="keyword">const</span> TaskID&amp; taskId);</div>
 <div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>&#160;</div>
-<div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>&#160;  <a class="code" href="classmesos_1_1Resources.html">Resources</a> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Framework.html#a004ea3cee927e6983397de310e42a0d1">allocatedResources</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>&#160;  <a class="code" href="classOption.html">Option&lt;ExecutorID&gt;</a> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Framework.html#a2fff4fc7fabe8cd06c9fca35f187b82b">getExecutorIdForPendingTask</a>(<span class="keyword">const</span> TaskID&amp; taskId) <span class="keyword">const</span>;</div>
 <div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>&#160;</div>
-<div class="line"><a name="l01012"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Framework.html#accb4e9c8d32936b20f3d0ddc71fe8add"> 1012</a></span>&#160;  <span class="keyword">enum</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Framework.html#accb4e9c8d32936b20f3d0ddc71fe8add">State</a></div>
-<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>&#160;  {</div>
-<div class="line"><a name="l01014"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Framework.html#accb4e9c8d32936b20f3d0ddc71fe8addaee1aee9245f83af93404e62fe978dcc0"> 1014</a></span>&#160;    <a class="code" href="classmesos_1_1internal_1_1slave_1_1Framework.html#accb4e9c8d32936b20f3d0ddc71fe8addaee1aee9245f83af93404e62fe978dcc0">RUNNING</a>,      <span class="comment">// First state of a newly created framework.</span></div>
-<div class="line"><a name="l01015"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Framework.html#accb4e9c8d32936b20f3d0ddc71fe8adda577bc0be9a10978a6926259b04ac779e"> 1015</a></span>&#160;    <a class="code" href="classmesos_1_1internal_1_1slave_1_1Framework.html#accb4e9c8d32936b20f3d0ddc71fe8adda577bc0be9a10978a6926259b04ac779e">TERMINATING</a>,  <span class="comment">// Framework is shutting down in the cluster.</span></div>
-<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>&#160;  } <a class="code" href="classmesos_1_1internal_1_1slave_1_1Framework.html#adbfec960b7cb705602bdac9853fb0c12">state</a>;</div>
-<div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>&#160;</div>
-<div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>&#160;  <span class="comment">// We store the pointer to &#39;Slave&#39; to get access to its methods and</span></div>
-<div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>&#160;  <span class="comment">// variables. One could imagine &#39;Framework&#39; being an inner class of</span></div>
-<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>&#160;  <span class="comment">// the &#39;Slave&#39; class.</span></div>
-<div class="line"><a name="l01021"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Framework.html#a28542cb83d680c4bd37f31ae58382866"> 1021</a></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_1Framework.html#a28542cb83d680c4bd37f31ae58382866">slave</a>;</div>
-<div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>&#160;</div>
-<div class="line"><a name="l01023"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Framework.html#ab024621d83bc1381fd176d0fc8cdeac2"> 1023</a></span>&#160;  FrameworkInfo <a class="code" href="classmesos_1_1internal_1_1slave_1_1Framework.html#ab024621d83bc1381fd176d0fc8cdeac2">info</a>;</div>
+<div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>&#160;  <a class="code" href="classmesos_1_1Resources.html">Resources</a> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Framework.html#a004ea3cee927e6983397de310e42a0d1">allocatedResources</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>&#160;</div>
+<div class="line"><a name="l01014"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Framework.html#accb4e9c8d32936b20f3d0ddc71fe8add"> 1014</a></span>&#160;  <span class="keyword">enum</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Framework.html#accb4e9c8d32936b20f3d0ddc71fe8add">State</a></div>
+<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>&#160;  {</div>
+<div class="line"><a name="l01016"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Framework.html#accb4e9c8d32936b20f3d0ddc71fe8addaee1aee9245f83af93404e62fe978dcc0"> 1016</a></span>&#160;    <a class="code" href="classmesos_1_1internal_1_1slave_1_1Framework.html#accb4e9c8d32936b20f3d0ddc71fe8addaee1aee9245f83af93404e62fe978dcc0">RUNNING</a>,      <span class="comment">// First state of a newly created framework.</span></div>
+<div class="line"><a name="l01017"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Framework.html#accb4e9c8d32936b20f3d0ddc71fe8adda577bc0be9a10978a6926259b04ac779e"> 1017</a></span>&#160;    <a class="code" href="classmesos_1_1internal_1_1slave_1_1Framework.html#accb4e9c8d32936b20f3d0ddc71fe8adda577bc0be9a10978a6926259b04ac779e">TERMINATING</a>,  <span class="comment">// Framework is shutting down in the cluster.</span></div>
+<div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>&#160;  } <a class="code" href="classmesos_1_1internal_1_1slave_1_1Framework.html#adbfec960b7cb705602bdac9853fb0c12">state</a>;</div>
+<div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>&#160;</div>
+<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>&#160;  <span class="comment">// We store the pointer to &#39;Slave&#39; to get access to its methods and</span></div>
+<div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>&#160;  <span class="comment">// variables. One could imagine &#39;Framework&#39; being an inner class of</span></div>
+<div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>&#160;  <span class="comment">// the &#39;Slave&#39; class.</span></div>
+<div class="line"><a name="l01023"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Framework.html#a28542cb83d680c4bd37f31ae58382866"> 1023</a></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_1Framework.html#a28542cb83d680c4bd37f31ae58382866">slave</a>;</div>
 <div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>&#160;</div>
-<div class="line"><a name="l01025"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Framework.html#af7ac61858b800f9b2adf0778d442f3ab"> 1025</a></span>&#160;  <a class="code" href="structmesos_1_1internal_1_1protobuf_1_1framework_1_1Capabilities.html">protobuf::framework::Capabilities</a> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Framework.html#af7ac61858b800f9b2adf0778d442f3ab">capabilities</a>;</div>
+<div class="line"><a name="l01025"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Framework.html#ab024621d83bc1381fd176d0fc8cdeac2"> 1025</a></span>&#160;  FrameworkInfo <a class="code" href="classmesos_1_1internal_1_1slave_1_1Framework.html#ab024621d83bc1381fd176d0fc8cdeac2">info</a>;</div>
 <div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>&#160;</div>
-<div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>&#160;  <span class="comment">// Frameworks using the scheduler driver will have a &#39;pid&#39;,</span></div>
-<div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>&#160;  <span class="comment">// which allows us to send executor messages directly to the</span></div>
-<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>&#160;  <span class="comment">// driver. Frameworks using the HTTP API (in 0.24.0) will</span></div>
-<div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>&#160;  <span class="comment">// not have a &#39;pid&#39;, in which case executor messages are</span></div>
-<div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>&#160;  <span class="comment">// sent through the master.</span></div>
-<div class="line"><a name="l01032"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Framework.html#ad7dbb2013ee11ad0a55f177bfd7a0461"> 1032</a></span>&#160;  <a class="code" href="classOption.html">Option&lt;process::UPID&gt;</a> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Framework.html#ad7dbb2013ee11ad0a55f177bfd7a0461">pid</a>;</div>
-<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>&#160;</div>
-<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160;  <span class="comment">// Executors can be found in one of the following</span></div>
-<div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>&#160;  <span class="comment">// data structures:</span></div>
-<div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>&#160;  <span class="comment">//</span></div>
-<div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>&#160;  <span class="comment">// TODO(bmahler): Make these private to enforce that</span></div>
-<div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>&#160;  <span class="comment">// the executors lifecycle helper functions are not</span></div>
-<div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>&#160;  <span class="comment">// being bypassed, and provide public views into them.</span></div>
-<div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>&#160;</div>
-<div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>&#160;  <span class="comment">// Executors with pending tasks.</span></div>
-<div class="line"><a name="l01042"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Framework.html#a895612a28929288abe2071620d7958da"> 1042</a></span>&#160;  <a class="code" href="classhashmap.html">hashmap&lt;ExecutorID, hashmap&lt;TaskID, TaskInfo&gt;</a>&gt; <a class="code" href="classmesos_1_1internal_1_1slave_1_1Framework.html#a895612a28929288abe2071620d7958da">pendingTasks</a>;</div>
-<div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>&#160;</div>
-<div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>&#160;  <span class="comment">// Pending task groups. This is needed for correctly sending</span></div>
-<div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>&#160;  <span class="comment">// TASK_KILLED status updates for all tasks in the group if</span></div>
-<div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>&#160;  <span class="comment">// any of the tasks are killed while pending.</span></div>
-<div class="line"><a name="l01047"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Framework.html#aa52d24c559cecfc18ba6167dd72c1988"> 1047</a></span>&#160;  std::list&lt;TaskGroupInfo&gt; <a class="code" href="classmesos_1_1internal_1_1slave_1_1Framework.html#aa52d24c559cecfc18ba6167dd72c1988">pendingTaskGroups</a>;</div>
-<div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>&#160;</div>
-<div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>&#160;  <span class="comment">// Current running executors.</span></div>
-<div class="line"><a name="l01050"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Framework.html#a67ace79356a9523a2486d8ffd235847f"> 1050</a></span>&#160;  <a class="code" href="classhashmap.html">hashmap&lt;ExecutorID, Executor*&gt;</a> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Framework.html#a67ace79356a9523a2486d8ffd235847f">executors</a>;</div>
-<div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>&#160;</div>
-<div class="line"><a name="l01052"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Framework.html#a64da4492057ddd2ed2019e737819d79b"> 1052</a></span>&#160;  boost::circular_buffer&lt;process::Owned&lt;Executor&gt;&gt; <a class="code" href="classmesos_1_1internal_1_1slave_1_1Framework.html#a64da4492057ddd2ed2019e737819d79b">completedExecutors</a>;</div>
+<div class="line"><a name="l01027"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Framework.html#af7ac61858b800f9b2adf0778d442f3ab"> 1027</a></span>&#160;  <a class="code" href="structmesos_1_1internal_1_1protobuf_1_1framework_1_1Capabilities.html">protobuf::framework::Capabilities</a> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Framework.html#af7ac61858b800f9b2adf0778d442f3ab">capabilities</a>;</div>
+<div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>&#160;</div>
+<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>&#160;  <span class="comment">// Frameworks using the scheduler driver will have a &#39;pid&#39;,</span></div>
+<div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>&#160;  <span class="comment">// which allows us to send executor messages directly to the</span></div>
+<div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>&#160;  <span class="comment">// driver. Frameworks using the HTTP API (in 0.24.0) will</span></div>
+<div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>&#160;  <span class="comment">// not have a &#39;pid&#39;, in which case executor messages are</span></div>
+<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>&#160;  <span class="comment">// sent through the master.</span></div>
+<div class="line"><a name="l01034"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Framework.html#ad7dbb2013ee11ad0a55f177bfd7a0461"> 1034</a></span>&#160;  <a class="code" href="classOption.html">Option&lt;process::UPID&gt;</a> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Framework.html#ad7dbb2013ee11ad0a55f177bfd7a0461">pid</a>;</div>
+<div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>&#160;</div>
+<div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>&#160;  <span class="comment">// Executors can be found in one of the following</span></div>
+<div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>&#160;  <span class="comment">// data structures:</span></div>
+<div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>&#160;  <span class="comment">//</span></div>
+<div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>&#160;  <span class="comment">// TODO(bmahler): Make these private to enforce that</span></div>
+<div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>&#160;  <span class="comment">// the executors lifecycle helper functions are not</span></div>
+<div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>&#160;  <span class="comment">// being bypassed, and provide public views into them.</span></div>
+<div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>&#160;</div>
+<div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>&#160;  <span class="comment">// Executors with pending tasks.</span></div>
+<div class="line"><a name="l01044"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Framework.html#a895612a28929288abe2071620d7958da"> 1044</a></span>&#160;  <a class="code" href="classhashmap.html">hashmap&lt;ExecutorID, hashmap&lt;TaskID, TaskInfo&gt;</a>&gt; <a class="code" href="classmesos_1_1internal_1_1slave_1_1Framework.html#a895612a28929288abe2071620d7958da">pendingTasks</a>;</div>
+<div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>&#160;</div>
+<div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>&#160;  <span class="comment">// Pending task groups. This is needed for correctly sending</span></div>
+<div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>&#160;  <span class="comment">// TASK_KILLED status updates for all tasks in the group if</span></div>
+<div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>&#160;  <span class="comment">// any of the tasks are killed while pending.</span></div>
+<div class="line"><a name="l01049"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Framework.html#aa52d24c559cecfc18ba6167dd72c1988"> 1049</a></span>&#160;  std::list&lt;TaskGroupInfo&gt; <a class="code" href="classmesos_1_1internal_1_1slave_1_1Framework.html#aa52d24c559cecfc18ba6167dd72c1988">pendingTaskGroups</a>;</div>
+<div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>&#160;</div>
+<div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>&#160;  <span class="comment">// Current running executors.</span></div>
+<div class="line"><a name="l01052"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Framework.html#a67ace79356a9523a2486d8ffd235847f"> 1052</a></span>&#160;  <a class="code" href="classhashmap.html">hashmap&lt;ExecutorID, Executor*&gt;</a> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Framework.html#a67ace79356a9523a2486d8ffd235847f">executors</a>;</div>
 <div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>&#160;</div>
-<div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>&#160;<span class="keyword">private</span>:</div>
-<div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>&#160;  <a class="code" href="classmesos_1_1internal_1_1slave_1_1Framework.html#a98caed7c7f98f89fa2cb716cbfe38217">Framework</a>(<span class="keyword">const</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Framework.html">Framework</a>&amp;) = <span class="keyword">delete</span>;</div>
-<div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>&#160;  <a class="code" href="classmesos_1_1internal_1_1slave_1_1Framework.html">Framework</a>&amp; operator=(<span class="keyword">const</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Framework.html">Framework</a>&amp;) = <span class="keyword">delete</span>;</div>
-<div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>&#160;};</div>
-<div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>&#160;</div>
-<div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>&#160;</div>
-<div class="line"><a name="l01060"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1ResourceProvider.html"> 1060</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structmesos_1_1internal_1_1slave_1_1ResourceProvider.html">ResourceProvider</a></div>
-<div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>&#160;{</div>
-<div class="line"><a name="l01062"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1ResourceProvider.html#afe22db29500a5157a6fb0c5da3fb9d2f"> 1062</a></span>&#160;  <a class="code" href="structmesos_1_1internal_1_1slave_1_1ResourceProvider.html#afe22db29500a5157a6fb0c5da3fb9d2f">ResourceProvider</a>(</div>
-<div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>&#160;      <span class="keyword">const</span> ResourceProviderInfo&amp; _info,</div>
-<div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>&#160;      <span class="keyword">const</span> <a class="code" href="classmesos_1_1Resources.html">Resources</a>&amp; _totalResources,</div>
-<div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>&#160;      <span class="keyword">const</span> <a class="code" href="structid_1_1UUID.html">id::UUID</a>&amp; _resourceVersion)</div>
-<div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>&#160;    : <a class="code" href="structmesos_1_1internal_1_1slave_1_1ResourceProvider.html#a8babf26b02de2788d8b7286e20a29022">info</a>(_info),</div>
-<div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>&#160;      <a class="code" href="structmesos_1_1internal_1_1slave_1_1ResourceProvider.html#a809ab46f97f691d5531acd90cb31046d">totalResources</a>(_totalResources),</div>
-<div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>&#160;      <a class="code" href="structmesos_1_1internal_1_1slave_1_1ResourceProvider.html#ae060949faa77368204096b365762887d">resourceVersion</a>(_resourceVersion) {}</div>
-<div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>&#160;</div>
-<div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="structmesos_1_1internal_1_1slave_1_1ResourceProvider.html#a456820eaf76022ca80a85e54128c9b0b">addOperation</a>(<a class="code" href="namespacecgroups_1_1blkio.html#a350b1eb57318afaea7700ab7786b55ef">Operation</a>* operation);</div>
-<div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="structmesos_1_1internal_1_1slave_1_1ResourceProvider.html#ae1654f336624584a7ce6dcee9e61776f">removeOperation</a>(<a class="code" href="namespacecgroups_1_1blkio.html#a350b1eb57318afaea7700ab7786b55ef">Operation</a>* operation);</div>
-<div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>&#160;</div>
-<div class="line"><a name="l01073"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1ResourceProvider.html#a8babf26b02de2788d8b7286e20a29022"> 1073</a></span>&#160;  ResourceProviderInfo <a class="code" href="structmesos_1_1internal_1_1slave_1_1ResourceProvider.html#a8babf26b02de2788d8b7286e20a29022">info</a>;</div>
-<div class="line"><a name="l01074"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1ResourceProvider.html#a809ab46f97f691d5531acd90cb31046d"> 1074</a></span>&#160;  <a class="code" href="classmesos_1_1Resources.html">Resources</a> <a class="code" href="structmesos_1_1internal_1_1slave_1_1ResourceProvider.html#a809ab46f97f691d5531acd90cb31046d">totalResources</a>;</div>
-<div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>&#160;</div>
-<div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>&#160;  <span class="comment">// Used to establish the relationship between the operation and the</span></div>
-<div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>&#160;  <span class="comment">// resources that the operation is operating on. Each resource</span></div>
-<div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>&#160;  <span class="comment">// provider will keep a resource version UUID, and change it when it</span></div>
-<div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>&#160;  <span class="comment">// believes that the resources from this resource provider are out</span></div>
-<div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>&#160;  <span class="comment">// of sync from the master&#39;s view.  The master will keep track of</span></div>
-<div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>&#160;  <span class="comment">// the last known resource version UUID for each resource provider,</span></div>
-<div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>&#160;  <span class="comment">// and attach the resource version UUID in each operation it sends</span></div>
-<div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>&#160;  <span class="comment">// out. The resource provider should reject operations that have a</span></div>
-<div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>&#160;  <span class="comment">// different resource version UUID than that it maintains, because</span></div>
-<div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>&#160;  <span class="comment">// this means the operation is operating on resources that might</span></div>
-<div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>&#160;  <span class="comment">// have already been invalidated.</span></div>
-<div class="line"><a name="l01087"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1ResourceProvider.html#ae060949faa77368204096b365762887d"> 1087</a></span>&#160;  <a class="code" href="structid_1_1UUID.html">id::UUID</a> <a class="code" href="structmesos_1_1internal_1_1slave_1_1ResourceProvider.html#ae060949faa77368204096b365762887d">resourceVersion</a>;</div>
-<div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>&#160;</div>
-<div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>&#160;  <span class="comment">// Pending operations or terminal operations that have</span></div>
-<div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>&#160;  <span class="comment">// unacknowledged status updates.</span></div>
-<div class="line"><a name="l01091"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1ResourceProvider.html#a2bfb4966449d3755fce5ee7d4ba8ffd9"> 1091</a></span>&#160;  <a class="code" href="classhashmap.html">hashmap&lt;id::UUID, Operation*&gt;</a> <a class="code" href="structmesos_1_1internal_1_1slave_1_1ResourceProvider.html#a2bfb4966449d3755fce5ee7d4ba8ffd9">operations</a>;</div>
-<div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>&#160;};</div>
-<div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>&#160;</div>
-<div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>&#160;</div>
-<div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>&#160;std::map&lt;std::string, std::string&gt; <a class="code" href="namespacemesos_1_1internal_1_1slave.html#a300cf38a0e34b0dded9297699aad4cd7">executorEnvironment</a>(</div>
-<div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>&#160;    <span class="keyword">const</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Flags.html">Flags</a>&amp; flags,</div>
-<div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>&#160;    <span class="keyword">const</span> ExecutorInfo&amp; executorInfo,</div>
-<div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>&#160;    <span class="keyword">const</span> std::string&amp; directory,</div>
-<div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>&#160;    <span class="keyword">const</span> SlaveID&amp; slaveId,</div>
-<div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>&#160;    <span class="keyword">const</span> <a class="code" href="structprocess_1_1PID.html">pro

<TRUNCATED>