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/11/08 16:21:50 UTC
[04/16] mesos-site git commit: Updated the website built from mesos
SHA: 72e6cde.
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/bd7aef8b/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 9446e04..8a62c14 100644
--- a/content/api/latest/c++/slave_8hpp_source.html
+++ b/content/api/latest/c++/slave_8hpp_source.html
@@ -584,456 +584,462 @@
<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>  <span class="keywordtype">void</span> _forwardOversubscribed(</div>
<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>  <span class="keyword">const</span> <a class="code" href="classprocess_1_1Future.html">process::Future<Resources></a>& oversubscribable);</div>
<div class="line"><a name="l00532"></a><span class="lineno"> 532</span> </div>
-<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>  <span class="comment">// Gauge methods.</span></div>
-<div class="line"><a name="l00534"></a><span class="lineno"> 534</span>  <span class="keywordtype">double</span> _frameworks_active()</div>
-<div class="line"><a name="l00535"></a><span class="lineno"> 535</span>  {</div>
-<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>  <span class="keywordflow">return</span> <span class="keyword">static_cast<</span><span class="keywordtype">double</span><span class="keyword">></span>(frameworks.size());</div>
-<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>  }</div>
-<div class="line"><a name="l00538"></a><span class="lineno"> 538</span> </div>
-<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>  <span class="keywordtype">double</span> _uptime_secs()</div>
-<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>  {</div>
-<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>  <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="l00542"></a><span class="lineno"> 542</span>  }</div>
-<div class="line"><a name="l00543"></a><span class="lineno"> 543</span> </div>
-<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>  <span class="keywordtype">double</span> _registered()</div>
-<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>  {</div>
-<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>  <span class="keywordflow">return</span> master.<a class="code" href="classOption.html#a4e3bf8416d95246f43c91f1b5c309323">isSome</a>() ? 1 : 0;</div>
-<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>  }</div>
-<div class="line"><a name="l00548"></a><span class="lineno"> 548</span> </div>
-<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>  <span class="keywordtype">double</span> _tasks_staging();</div>
-<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>  <span class="keywordtype">double</span> _tasks_starting();</div>
-<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>  <span class="keywordtype">double</span> _tasks_running();</div>
-<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>  <span class="keywordtype">double</span> _tasks_killing();</div>
-<div class="line"><a name="l00553"></a><span class="lineno"> 553</span> </div>
-<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>  <span class="keywordtype">double</span> _executors_registering();</div>
-<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>  <span class="keywordtype">double</span> _executors_running();</div>
-<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>  <span class="keywordtype">double</span> _executors_terminating();</div>
-<div class="line"><a name="l00557"></a><span class="lineno"> 557</span> </div>
-<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>  <span class="keywordtype">double</span> _executor_directory_max_allowed_age_secs();</div>
-<div class="line"><a name="l00559"></a><span class="lineno"> 559</span> </div>
-<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>  <span class="keywordtype">double</span> _resources_total(<span class="keyword">const</span> std::string& <a class="code" href="namespaceos_1_1Shell.html#acfe16ef2b1146ad49a8651c0a457ce46">name</a>);</div>
-<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>  <span class="keywordtype">double</span> _resources_used(<span class="keyword">const</span> std::string& <a class="code" href="namespaceos_1_1Shell.html#acfe16ef2b1146ad49a8651c0a457ce46">name</a>);</div>
-<div class="line"><a name="l00562"></a><span class="lineno"> 562</span>  <span class="keywordtype">double</span> _resources_percent(<span class="keyword">const</span> std::string& <a class="code" href="namespaceos_1_1Shell.html#acfe16ef2b1146ad49a8651c0a457ce46">name</a>);</div>
-<div class="line"><a name="l00563"></a><span class="lineno"> 563</span> </div>
-<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>  <span class="keywordtype">double</span> _resources_revocable_total(<span class="keyword">const</span> std::string& <a class="code" href="namespaceos_1_1Shell.html#acfe16ef2b1146ad49a8651c0a457ce46">name</a>);</div>
-<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>  <span class="keywordtype">double</span> _resources_revocable_used(<span class="keyword">const</span> std::string& <a class="code" href="namespaceos_1_1Shell.html#acfe16ef2b1146ad49a8651c0a457ce46">name</a>);</div>
-<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>  <span class="keywordtype">double</span> _resources_revocable_percent(<span class="keyword">const</span> std::string& <a class="code" href="namespaceos_1_1Shell.html#acfe16ef2b1146ad49a8651c0a457ce46">name</a>);</div>
-<div class="line"><a name="l00567"></a><span class="lineno"> 567</span> </div>
-<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>  <span class="keyword">const</span> Flags <a class="code" href="decoder_8hpp.html#abb0829cce9dd20a40ae0d86890ae85c6">flags</a>;</div>
-<div class="line"><a name="l00569"></a><span class="lineno"> 569</span> </div>
-<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>  <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="l00571"></a><span class="lineno"> 571</span> </div>
-<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>  SlaveInfo info;</div>
-<div class="line"><a name="l00573"></a><span class="lineno"> 573</span> </div>
-<div class="line"><a name="l00574"></a><span class="lineno"> 574</span>  <span class="comment">// Resources that are checkpointed by the slave.</span></div>
-<div class="line"><a name="l00575"></a><span class="lineno"> 575</span>  <a class="code" href="classmesos_1_1Resources.html">Resources</a> checkpointedResources;</div>
+<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>  <span class="keywordtype">void</span> handleResourceProviderMessage(</div>
+<div class="line"><a name="l00534"></a><span class="lineno"> 534</span>  <span class="keyword">const</span> <a class="code" href="classprocess_1_1Future.html">process::Future<ResourceProviderMessage></a>& message);</div>
+<div class="line"><a name="l00535"></a><span class="lineno"> 535</span> </div>
+<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>  <span class="comment">// Gauge methods.</span></div>
+<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>  <span class="keywordtype">double</span> _frameworks_active()</div>
+<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>  {</div>
+<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>  <span class="keywordflow">return</span> <span class="keyword">static_cast<</span><span class="keywordtype">double</span><span class="keyword">></span>(frameworks.size());</div>
+<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>  }</div>
+<div class="line"><a name="l00541"></a><span class="lineno"> 541</span> </div>
+<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>  <span class="keywordtype">double</span> _uptime_secs()</div>
+<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>  {</div>
+<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>  <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="l00545"></a><span class="lineno"> 545</span>  }</div>
+<div class="line"><a name="l00546"></a><span class="lineno"> 546</span> </div>
+<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>  <span class="keywordtype">double</span> _registered()</div>
+<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>  {</div>
+<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>  <span class="keywordflow">return</span> master.<a class="code" href="classOption.html#a4e3bf8416d95246f43c91f1b5c309323">isSome</a>() ? 1 : 0;</div>
+<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>  }</div>
+<div class="line"><a name="l00551"></a><span class="lineno"> 551</span> </div>
+<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>  <span class="keywordtype">double</span> _tasks_staging();</div>
+<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>  <span class="keywordtype">double</span> _tasks_starting();</div>
+<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>  <span class="keywordtype">double</span> _tasks_running();</div>
+<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>  <span class="keywordtype">double</span> _tasks_killing();</div>
+<div class="line"><a name="l00556"></a><span class="lineno"> 556</span> </div>
+<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>  <span class="keywordtype">double</span> _executors_registering();</div>
+<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>  <span class="keywordtype">double</span> _executors_running();</div>
+<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>  <span class="keywordtype">double</span> _executors_terminating();</div>
+<div class="line"><a name="l00560"></a><span class="lineno"> 560</span> </div>
+<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>  <span class="keywordtype">double</span> _executor_directory_max_allowed_age_secs();</div>
+<div class="line"><a name="l00562"></a><span class="lineno"> 562</span> </div>
+<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>  <span class="keywordtype">double</span> _resources_total(<span class="keyword">const</span> std::string& <a class="code" href="namespaceos_1_1Shell.html#acfe16ef2b1146ad49a8651c0a457ce46">name</a>);</div>
+<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>  <span class="keywordtype">double</span> _resources_used(<span class="keyword">const</span> std::string& <a class="code" href="namespaceos_1_1Shell.html#acfe16ef2b1146ad49a8651c0a457ce46">name</a>);</div>
+<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>  <span class="keywordtype">double</span> _resources_percent(<span class="keyword">const</span> std::string& <a class="code" href="namespaceos_1_1Shell.html#acfe16ef2b1146ad49a8651c0a457ce46">name</a>);</div>
+<div class="line"><a name="l00566"></a><span class="lineno"> 566</span> </div>
+<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>  <span class="keywordtype">double</span> _resources_revocable_total(<span class="keyword">const</span> std::string& <a class="code" href="namespaceos_1_1Shell.html#acfe16ef2b1146ad49a8651c0a457ce46">name</a>);</div>
+<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>  <span class="keywordtype">double</span> _resources_revocable_used(<span class="keyword">const</span> std::string& <a class="code" href="namespaceos_1_1Shell.html#acfe16ef2b1146ad49a8651c0a457ce46">name</a>);</div>
+<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>  <span class="keywordtype">double</span> _resources_revocable_percent(<span class="keyword">const</span> std::string& <a class="code" href="namespaceos_1_1Shell.html#acfe16ef2b1146ad49a8651c0a457ce46">name</a>);</div>
+<div class="line"><a name="l00570"></a><span class="lineno"> 570</span> </div>
+<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>  <span class="keyword">const</span> Flags <a class="code" href="decoder_8hpp.html#abb0829cce9dd20a40ae0d86890ae85c6">flags</a>;</div>
+<div class="line"><a name="l00572"></a><span class="lineno"> 572</span> </div>
+<div class="line"><a name="l00573"></a><span class="lineno"> 573</span>  <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="l00574"></a><span class="lineno"> 574</span> </div>
+<div class="line"><a name="l00575"></a><span class="lineno"> 575</span>  SlaveInfo info;</div>
<div class="line"><a name="l00576"></a><span class="lineno"> 576</span> </div>
-<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>  <span class="comment">// The current total resources of the agent, i.e.,</span></div>
-<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>  <span class="comment">// `info.resources()` with checkpointed resources applied.</span></div>
-<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>  <a class="code" href="classmesos_1_1Resources.html">Resources</a> totalResources;</div>
-<div class="line"><a name="l00580"></a><span class="lineno"> 580</span> </div>
-<div class="line"><a name="l00581"></a><span class="lineno"> 581</span>  <a class="code" href="classOption.html">Option<process::UPID></a> master;</div>
-<div class="line"><a name="l00582"></a><span class="lineno"> 582</span> </div>
-<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>  <a class="code" href="classhashmap.html">hashmap<FrameworkID, Framework*></a> frameworks;</div>
-<div class="line"><a name="l00584"></a><span class="lineno"> 584</span> </div>
-<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>  <span class="comment">// Note that these frameworks are "completed" only in that</span></div>
-<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>  <span class="comment">// they no longer have any active tasks or executors on this</span></div>
-<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>  <span class="comment">// particular agent.</span></div>
-<div class="line"><a name="l00588"></a><span class="lineno"> 588</span>  <span class="comment">//</span></div>
-<div class="line"><a name="l00589"></a><span class="lineno"> 589</span>  <span class="comment">// TODO(bmahler): Implement a more accurate framework lifecycle</span></div>
-<div class="line"><a name="l00590"></a><span class="lineno"> 590</span>  <span class="comment">// in the agent code, ideally the master can inform the agent</span></div>
-<div class="line"><a name="l00591"></a><span class="lineno"> 591</span>  <span class="comment">// when a framework is actually completed, and the agent can</span></div>
-<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>  <span class="comment">// perhaps store a cache of "idle" frameworks. See MESOS-7890.</span></div>
-<div class="line"><a name="l00593"></a><span class="lineno"> 593</span>  <a class="code" href="classBoundedHashMap.html">BoundedHashMap<FrameworkID, process::Owned<Framework></a>> completedFrameworks;</div>
-<div class="line"><a name="l00594"></a><span class="lineno"> 594</span> </div>
-<div class="line"><a name="l00595"></a><span class="lineno"> 595</span>  <a class="code" href="classmesos_1_1master_1_1detector_1_1MasterDetector.html">mesos::master::detector::MasterDetector</a>* detector;</div>
-<div class="line"><a name="l00596"></a><span class="lineno"> 596</span> </div>
-<div class="line"><a name="l00597"></a><span class="lineno"> 597</span>  Containerizer* containerizer;</div>
-<div class="line"><a name="l00598"></a><span class="lineno"> 598</span> </div>
-<div class="line"><a name="l00599"></a><span class="lineno"> 599</span>  Files* files;</div>
-<div class="line"><a name="l00600"></a><span class="lineno"> 600</span> </div>
-<div class="line"><a name="l00601"></a><span class="lineno"> 601</span>  <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="l00602"></a><span class="lineno"> 602</span> </div>
-<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>  <a class="code" href="classprocess_1_1Time.html">process::Time</a> startTime;</div>
-<div class="line"><a name="l00604"></a><span class="lineno"> 604</span> </div>
-<div class="line"><a name="l00605"></a><span class="lineno"> 605</span>  GarbageCollector* gc;</div>
-<div class="line"><a name="l00606"></a><span class="lineno"> 606</span> </div>
-<div class="line"><a name="l00607"></a><span class="lineno"> 607</span>  StatusUpdateManager* statusUpdateManager;</div>
-<div class="line"><a name="l00608"></a><span class="lineno"> 608</span> </div>
-<div class="line"><a name="l00609"></a><span class="lineno"> 609</span>  <span class="comment">// Master detection future.</span></div>
-<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>  <a class="code" href="classprocess_1_1Future.html">process::Future<Option<MasterInfo></a>> detection;</div>
+<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>  protobuf::slave::Capabilities capabilities;</div>
+<div class="line"><a name="l00578"></a><span class="lineno"> 578</span> </div>
+<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>  <span class="comment">// Resources that are checkpointed by the slave.</span></div>
+<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>  <a class="code" href="classmesos_1_1Resources.html">Resources</a> checkpointedResources;</div>
+<div class="line"><a name="l00581"></a><span class="lineno"> 581</span> </div>
+<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>  <span class="comment">// The current total resources of the agent, i.e., `info.resources()` with</span></div>
+<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>  <span class="comment">// checkpointed resources applied and resource provider resources.</span></div>
+<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>  <a class="code" href="classmesos_1_1Resources.html">Resources</a> totalResources;</div>
+<div class="line"><a name="l00585"></a><span class="lineno"> 585</span> </div>
+<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>  <a class="code" href="classOption.html">Option<process::UPID></a> master;</div>
+<div class="line"><a name="l00587"></a><span class="lineno"> 587</span> </div>
+<div class="line"><a name="l00588"></a><span class="lineno"> 588</span>  <a class="code" href="classhashmap.html">hashmap<FrameworkID, Framework*></a> frameworks;</div>
+<div class="line"><a name="l00589"></a><span class="lineno"> 589</span> </div>
+<div class="line"><a name="l00590"></a><span class="lineno"> 590</span>  <span class="comment">// Note that these frameworks are "completed" only in that</span></div>
+<div class="line"><a name="l00591"></a><span class="lineno"> 591</span>  <span class="comment">// they no longer have any active tasks or executors on this</span></div>
+<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>  <span class="comment">// particular agent.</span></div>
+<div class="line"><a name="l00593"></a><span class="lineno"> 593</span>  <span class="comment">//</span></div>
+<div class="line"><a name="l00594"></a><span class="lineno"> 594</span>  <span class="comment">// TODO(bmahler): Implement a more accurate framework lifecycle</span></div>
+<div class="line"><a name="l00595"></a><span class="lineno"> 595</span>  <span class="comment">// in the agent code, ideally the master can inform the agent</span></div>
+<div class="line"><a name="l00596"></a><span class="lineno"> 596</span>  <span class="comment">// when a framework is actually completed, and the agent can</span></div>
+<div class="line"><a name="l00597"></a><span class="lineno"> 597</span>  <span class="comment">// perhaps store a cache of "idle" frameworks. See MESOS-7890.</span></div>
+<div class="line"><a name="l00598"></a><span class="lineno"> 598</span>  <a class="code" href="classBoundedHashMap.html">BoundedHashMap<FrameworkID, process::Owned<Framework></a>> completedFrameworks;</div>
+<div class="line"><a name="l00599"></a><span class="lineno"> 599</span> </div>
+<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>  <a class="code" href="classmesos_1_1master_1_1detector_1_1MasterDetector.html">mesos::master::detector::MasterDetector</a>* detector;</div>
+<div class="line"><a name="l00601"></a><span class="lineno"> 601</span> </div>
+<div class="line"><a name="l00602"></a><span class="lineno"> 602</span>  Containerizer* containerizer;</div>
+<div class="line"><a name="l00603"></a><span class="lineno"> 603</span> </div>
+<div class="line"><a name="l00604"></a><span class="lineno"> 604</span>  Files* files;</div>
+<div class="line"><a name="l00605"></a><span class="lineno"> 605</span> </div>
+<div class="line"><a name="l00606"></a><span class="lineno"> 606</span>  <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="l00607"></a><span class="lineno"> 607</span> </div>
+<div class="line"><a name="l00608"></a><span class="lineno"> 608</span>  <a class="code" href="classprocess_1_1Time.html">process::Time</a> startTime;</div>
+<div class="line"><a name="l00609"></a><span class="lineno"> 609</span> </div>
+<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>  GarbageCollector* gc;</div>
<div class="line"><a name="l00611"></a><span class="lineno"> 611</span> </div>
-<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>  <span class="comment">// Master's ping timeout value, updated on reregistration.</span></div>
-<div class="line"><a name="l00613"></a><span class="lineno"> 613</span>  <a class="code" href="classDuration.html">Duration</a> masterPingTimeout;</div>
-<div class="line"><a name="l00614"></a><span class="lineno"> 614</span> </div>
-<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>  <span class="comment">// Timer for triggering re-detection when no ping is received from</span></div>
-<div class="line"><a name="l00616"></a><span class="lineno"> 616</span>  <span class="comment">// the master.</span></div>
-<div class="line"><a name="l00617"></a><span class="lineno"> 617</span>  <a class="code" href="classprocess_1_1Timer.html">process::Timer</a> pingTimer;</div>
-<div class="line"><a name="l00618"></a><span class="lineno"> 618</span> </div>
-<div class="line"><a name="l00619"></a><span class="lineno"> 619</span>  <span class="comment">// Timer for triggering agent (re)registration after detecting a new master.</span></div>
-<div class="line"><a name="l00620"></a><span class="lineno"> 620</span>  <a class="code" href="classprocess_1_1Timer.html">process::Timer</a> agentRegistrationTimer;</div>
-<div class="line"><a name="l00621"></a><span class="lineno"> 621</span> </div>
-<div class="line"><a name="l00622"></a><span class="lineno"> 622</span>  <span class="comment">// Root meta directory containing checkpointed data.</span></div>
-<div class="line"><a name="l00623"></a><span class="lineno"> 623</span>  <span class="keyword">const</span> std::string metaDir;</div>
-<div class="line"><a name="l00624"></a><span class="lineno"> 624</span> </div>
-<div class="line"><a name="l00625"></a><span class="lineno"> 625</span>  <span class="comment">// Indicates the number of errors ignored in "--no-strict" recovery mode.</span></div>
-<div class="line"><a name="l00626"></a><span class="lineno"> 626</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> recoveryErrors;</div>
-<div class="line"><a name="l00627"></a><span class="lineno"> 627</span> </div>
-<div class="line"><a name="l00628"></a><span class="lineno"> 628</span>  <a class="code" href="classOption.html">Option<Credential></a> credential;</div>
+<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>  StatusUpdateManager* statusUpdateManager;</div>
+<div class="line"><a name="l00613"></a><span class="lineno"> 613</span> </div>
+<div class="line"><a name="l00614"></a><span class="lineno"> 614</span>  <span class="comment">// Master detection future.</span></div>
+<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>  <a class="code" href="classprocess_1_1Future.html">process::Future<Option<MasterInfo></a>> detection;</div>
+<div class="line"><a name="l00616"></a><span class="lineno"> 616</span> </div>
+<div class="line"><a name="l00617"></a><span class="lineno"> 617</span>  <span class="comment">// Master's ping timeout value, updated on reregistration.</span></div>
+<div class="line"><a name="l00618"></a><span class="lineno"> 618</span>  <a class="code" href="classDuration.html">Duration</a> masterPingTimeout;</div>
+<div class="line"><a name="l00619"></a><span class="lineno"> 619</span> </div>
+<div class="line"><a name="l00620"></a><span class="lineno"> 620</span>  <span class="comment">// Timer for triggering re-detection when no ping is received from</span></div>
+<div class="line"><a name="l00621"></a><span class="lineno"> 621</span>  <span class="comment">// the master.</span></div>
+<div class="line"><a name="l00622"></a><span class="lineno"> 622</span>  <a class="code" href="classprocess_1_1Timer.html">process::Timer</a> pingTimer;</div>
+<div class="line"><a name="l00623"></a><span class="lineno"> 623</span> </div>
+<div class="line"><a name="l00624"></a><span class="lineno"> 624</span>  <span class="comment">// Timer for triggering agent (re)registration after detecting a new master.</span></div>
+<div class="line"><a name="l00625"></a><span class="lineno"> 625</span>  <a class="code" href="classprocess_1_1Timer.html">process::Timer</a> agentRegistrationTimer;</div>
+<div class="line"><a name="l00626"></a><span class="lineno"> 626</span> </div>
+<div class="line"><a name="l00627"></a><span class="lineno"> 627</span>  <span class="comment">// Root meta directory containing checkpointed data.</span></div>
+<div class="line"><a name="l00628"></a><span class="lineno"> 628</span>  <span class="keyword">const</span> std::string metaDir;</div>
<div class="line"><a name="l00629"></a><span class="lineno"> 629</span> </div>
-<div class="line"><a name="l00630"></a><span class="lineno"> 630</span>  <span class="comment">// Authenticatee name as supplied via flags.</span></div>
-<div class="line"><a name="l00631"></a><span class="lineno"> 631</span>  std::string authenticateeName;</div>
+<div class="line"><a name="l00630"></a><span class="lineno"> 630</span>  <span class="comment">// Indicates the number of errors ignored in "--no-strict" recovery mode.</span></div>
+<div class="line"><a name="l00631"></a><span class="lineno"> 631</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> recoveryErrors;</div>
<div class="line"><a name="l00632"></a><span class="lineno"> 632</span> </div>
-<div class="line"><a name="l00633"></a><span class="lineno"> 633</span>  <a class="code" href="classmesos_1_1Authenticatee.html">Authenticatee</a>* authenticatee;</div>
+<div class="line"><a name="l00633"></a><span class="lineno"> 633</span>  <a class="code" href="classOption.html">Option<Credential></a> credential;</div>
<div class="line"><a name="l00634"></a><span class="lineno"> 634</span> </div>
-<div class="line"><a name="l00635"></a><span class="lineno"> 635</span>  <span class="comment">// Indicates if an authentication attempt is in progress.</span></div>
-<div class="line"><a name="l00636"></a><span class="lineno"> 636</span>  <a class="code" href="classOption.html">Option<process::Future<bool></a>> authenticating;</div>
+<div class="line"><a name="l00635"></a><span class="lineno"> 635</span>  <span class="comment">// Authenticatee name as supplied via flags.</span></div>
+<div class="line"><a name="l00636"></a><span class="lineno"> 636</span>  std::string authenticateeName;</div>
<div class="line"><a name="l00637"></a><span class="lineno"> 637</span> </div>
-<div class="line"><a name="l00638"></a><span class="lineno"> 638</span>  <span class="comment">// Indicates if the authentication is successful.</span></div>
-<div class="line"><a name="l00639"></a><span class="lineno"> 639</span>  <span class="keywordtype">bool</span> authenticated;</div>
-<div class="line"><a name="l00640"></a><span class="lineno"> 640</span> </div>
-<div class="line"><a name="l00641"></a><span class="lineno"> 641</span>  <span class="comment">// Indicates if a new authentication attempt should be enforced.</span></div>
-<div class="line"><a name="l00642"></a><span class="lineno"> 642</span>  <span class="keywordtype">bool</span> reauthenticate;</div>
-<div class="line"><a name="l00643"></a><span class="lineno"> 643</span> </div>
-<div class="line"><a name="l00644"></a><span class="lineno"> 644</span>  <span class="comment">// Indicates the number of failed authentication attempts.</span></div>
-<div class="line"><a name="l00645"></a><span class="lineno"> 645</span>  uint64_t failedAuthentications;</div>
-<div class="line"><a name="l00646"></a><span class="lineno"> 646</span> </div>
-<div class="line"><a name="l00647"></a><span class="lineno"> 647</span>  <span class="comment">// Maximum age of executor directories. Will be recomputed</span></div>
-<div class="line"><a name="l00648"></a><span class="lineno"> 648</span>  <span class="comment">// periodically every flags.disk_watch_interval.</span></div>
-<div class="line"><a name="l00649"></a><span class="lineno"> 649</span>  <a class="code" href="classDuration.html">Duration</a> executorDirectoryMaxAllowedAge;</div>
-<div class="line"><a name="l00650"></a><span class="lineno"> 650</span> </div>
-<div class="line"><a name="l00651"></a><span class="lineno"> 651</span>  <a class="code" href="classmesos_1_1slave_1_1ResourceEstimator.html">mesos::slave::ResourceEstimator</a>* resourceEstimator;</div>
-<div class="line"><a name="l00652"></a><span class="lineno"> 652</span> </div>
-<div class="line"><a name="l00653"></a><span class="lineno"> 653</span>  <a class="code" href="classmesos_1_1slave_1_1QoSController.html">mesos::slave::QoSController</a>* qosController;</div>
-<div class="line"><a name="l00654"></a><span class="lineno"> 654</span> </div>
-<div class="line"><a name="l00655"></a><span class="lineno"> 655</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<Authorizer*></a> authorizer;</div>
-<div class="line"><a name="l00656"></a><span class="lineno"> 656</span> </div>
-<div class="line"><a name="l00657"></a><span class="lineno"> 657</span>  <span class="comment">// The most recent estimate of the total amount of oversubscribed</span></div>
-<div class="line"><a name="l00658"></a><span class="lineno"> 658</span>  <span class="comment">// (allocated and oversubscribable) resources.</span></div>
-<div class="line"><a name="l00659"></a><span class="lineno"> 659</span>  <a class="code" href="classOption.html">Option<Resources></a> oversubscribedResources;</div>
-<div class="line"><a name="l00660"></a><span class="lineno"> 660</span> </div>
-<div class="line"><a name="l00661"></a><span class="lineno"> 661</span>  ResourceProviderManager resourceProviderManager;</div>
-<div class="line"><a name="l00662"></a><span class="lineno"> 662</span>  <a class="code" href="classprocess_1_1Owned.html">process::Owned<LocalResourceProviderDaemon></a> localResourceProviderDaemon;</div>
-<div class="line"><a name="l00663"></a><span class="lineno"> 663</span> </div>
-<div class="line"><a name="l00664"></a><span class="lineno"> 664</span> <span class="keyword">protected</span>:</div>
-<div class="line"><a name="l00665"></a><span class="lineno"> 665</span>  <span class="comment">// Made protected for testing purposes.</span></div>
-<div class="line"><a name="l00666"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Slave.html#ac81a0a2d8dc38bbe864c1c4d34d9f96c"> 666</a></span>  <a class="code" href="classmesos_1_1SecretGenerator.html">mesos::SecretGenerator</a>* <a class="code" href="classmesos_1_1internal_1_1slave_1_1Slave.html#ac81a0a2d8dc38bbe864c1c4d34d9f96c">secretGenerator</a>;</div>
-<div class="line"><a name="l00667"></a><span class="lineno"> 667</span> };</div>
-<div class="line"><a name="l00668"></a><span class="lineno"> 668</span> </div>
+<div class="line"><a name="l00638"></a><span class="lineno"> 638</span>  <a class="code" href="classmesos_1_1Authenticatee.html">Authenticatee</a>* authenticatee;</div>
+<div class="line"><a name="l00639"></a><span class="lineno"> 639</span> </div>
+<div class="line"><a name="l00640"></a><span class="lineno"> 640</span>  <span class="comment">// Indicates if an authentication attempt is in progress.</span></div>
+<div class="line"><a name="l00641"></a><span class="lineno"> 641</span>  <a class="code" href="classOption.html">Option<process::Future<bool></a>> authenticating;</div>
+<div class="line"><a name="l00642"></a><span class="lineno"> 642</span> </div>
+<div class="line"><a name="l00643"></a><span class="lineno"> 643</span>  <span class="comment">// Indicates if the authentication is successful.</span></div>
+<div class="line"><a name="l00644"></a><span class="lineno"> 644</span>  <span class="keywordtype">bool</span> authenticated;</div>
+<div class="line"><a name="l00645"></a><span class="lineno"> 645</span> </div>
+<div class="line"><a name="l00646"></a><span class="lineno"> 646</span>  <span class="comment">// Indicates if a new authentication attempt should be enforced.</span></div>
+<div class="line"><a name="l00647"></a><span class="lineno"> 647</span>  <span class="keywordtype">bool</span> reauthenticate;</div>
+<div class="line"><a name="l00648"></a><span class="lineno"> 648</span> </div>
+<div class="line"><a name="l00649"></a><span class="lineno"> 649</span>  <span class="comment">// Indicates the number of failed authentication attempts.</span></div>
+<div class="line"><a name="l00650"></a><span class="lineno"> 650</span>  uint64_t failedAuthentications;</div>
+<div class="line"><a name="l00651"></a><span class="lineno"> 651</span> </div>
+<div class="line"><a name="l00652"></a><span class="lineno"> 652</span>  <span class="comment">// Maximum age of executor directories. Will be recomputed</span></div>
+<div class="line"><a name="l00653"></a><span class="lineno"> 653</span>  <span class="comment">// periodically every flags.disk_watch_interval.</span></div>
+<div class="line"><a name="l00654"></a><span class="lineno"> 654</span>  <a class="code" href="classDuration.html">Duration</a> executorDirectoryMaxAllowedAge;</div>
+<div class="line"><a name="l00655"></a><span class="lineno"> 655</span> </div>
+<div class="line"><a name="l00656"></a><span class="lineno"> 656</span>  <a class="code" href="classmesos_1_1slave_1_1ResourceEstimator.html">mesos::slave::ResourceEstimator</a>* resourceEstimator;</div>
+<div class="line"><a name="l00657"></a><span class="lineno"> 657</span> </div>
+<div class="line"><a name="l00658"></a><span class="lineno"> 658</span>  <a class="code" href="classmesos_1_1slave_1_1QoSController.html">mesos::slave::QoSController</a>* qosController;</div>
+<div class="line"><a name="l00659"></a><span class="lineno"> 659</span> </div>
+<div class="line"><a name="l00660"></a><span class="lineno"> 660</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<Authorizer*></a> authorizer;</div>
+<div class="line"><a name="l00661"></a><span class="lineno"> 661</span> </div>
+<div class="line"><a name="l00662"></a><span class="lineno"> 662</span>  <span class="comment">// The most recent estimate of the total amount of oversubscribed</span></div>
+<div class="line"><a name="l00663"></a><span class="lineno"> 663</span>  <span class="comment">// (allocated and oversubscribable) resources.</span></div>
+<div class="line"><a name="l00664"></a><span class="lineno"> 664</span>  <a class="code" href="classOption.html">Option<Resources></a> oversubscribedResources;</div>
+<div class="line"><a name="l00665"></a><span class="lineno"> 665</span> </div>
+<div class="line"><a name="l00666"></a><span class="lineno"> 666</span>  ResourceProviderManager resourceProviderManager;</div>
+<div class="line"><a name="l00667"></a><span class="lineno"> 667</span>  <a class="code" href="classprocess_1_1Owned.html">process::Owned<LocalResourceProviderDaemon></a> localResourceProviderDaemon;</div>
+<div class="line"><a name="l00668"></a><span class="lineno"> 668</span>  <a class="code" href="classhashmap.html">hashmap<Option<ResourceProviderID></a>, <a class="code" href="structid_1_1UUID.html">UUID</a>> resourceVersions;</div>
<div class="line"><a name="l00669"></a><span class="lineno"> 669</span> </div>
-<div class="line"><a name="l00670"></a><span class="lineno"> 670</span> <span class="comment">// Represents the streaming HTTP connection to an executor.</span></div>
-<div class="line"><a name="l00671"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html"> 671</a></span> <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="l00672"></a><span class="lineno"> 672</span> {</div>
-<div class="line"><a name="l00673"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#acc1ca998134e63de44e77f0a371973af"> 673</a></span>  <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>& _writer,</div>
-<div class="line"><a name="l00674"></a><span class="lineno"> 674</span>  <a class="code" href="namespacemesos.html#a13035ce0cc66cca4a467787b4716039e">ContentType</a> _contentType)</div>
-<div class="line"><a name="l00675"></a><span class="lineno"> 675</span>  : <a class="code" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#a0c59d0ff74737a01a33ae18f76525ed3">writer</a>(_writer),</div>
-<div class="line"><a name="l00676"></a><span class="lineno"> 676</span>  <a class="code" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#aa56f337e2e9a40afbcae740883f7342e">contentType</a>(_contentType),</div>
-<div class="line"><a name="l00677"></a><span class="lineno"> 677</span>  <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="l00678"></a><span class="lineno"> 678</span> </div>
-<div class="line"><a name="l00679"></a><span class="lineno"> 679</span>  <span class="comment">// Converts the message to an Event before sending.</span></div>
-<div class="line"><a name="l00680"></a><span class="lineno"> 680</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> Message></div>
-<div class="line"><a name="l00681"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#ad0773acb50a9d74589dc050ee9bc3f9b"> 681</a></span>  <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& message)</div>
-<div class="line"><a name="l00682"></a><span class="lineno"> 682</span>  {</div>
-<div class="line"><a name="l00683"></a><span class="lineno"> 683</span>  <span class="comment">// We need to evolve the internal 'message' into a</span></div>
-<div class="line"><a name="l00684"></a><span class="lineno"> 684</span>  <span class="comment">// 'v1::executor::Event'.</span></div>
-<div class="line"><a name="l00685"></a><span class="lineno"> 685</span>  <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="l00686"></a><span class="lineno"> 686</span>  }</div>
-<div class="line"><a name="l00687"></a><span class="lineno"> 687</span> </div>
-<div class="line"><a name="l00688"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#a6bd61956671fa0cab784ac1eb0d2b834"> 688</a></span>  <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="l00689"></a><span class="lineno"> 689</span>  {</div>
-<div class="line"><a name="l00690"></a><span class="lineno"> 690</span>  <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="l00691"></a><span class="lineno"> 691</span>  }</div>
-<div class="line"><a name="l00692"></a><span class="lineno"> 692</span> </div>
-<div class="line"><a name="l00693"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#a75cfb254a95f8aece262b57137442ad2"> 693</a></span>  <a class="code" href="classprocess_1_1Future.html">process::Future<Nothing></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="l00694"></a><span class="lineno"> 694</span> <span class="keyword"> </span>{</div>
-<div class="line"><a name="l00695"></a><span class="lineno"> 695</span>  <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="l00696"></a><span class="lineno"> 696</span>  }</div>
-<div class="line"><a name="l00697"></a><span class="lineno"> 697</span> </div>
-<div class="line"><a name="l00698"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#a0c59d0ff74737a01a33ae18f76525ed3"> 698</a></span>  <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="l00699"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#aa56f337e2e9a40afbcae740883f7342e"> 699</a></span>  <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="l00700"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#ac9014eb387ce40f4b7803c14b37da8f8"> 700</a></span>  <a class="code" href="classrecordio_1_1Encoder.html">::recordio::Encoder<v1::executor::Event></a> <a class="code" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#ac9014eb387ce40f4b7803c14b37da8f8">encoder</a>;</div>
-<div class="line"><a name="l00701"></a><span class="lineno"> 701</span> };</div>
-<div class="line"><a name="l00702"></a><span class="lineno"> 702</span> </div>
+<div class="line"><a name="l00670"></a><span class="lineno"> 670</span> <span class="keyword">protected</span>:</div>
+<div class="line"><a name="l00671"></a><span class="lineno"> 671</span>  <span class="comment">// Made protected for testing purposes.</span></div>
+<div class="line"><a name="l00672"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Slave.html#ac81a0a2d8dc38bbe864c1c4d34d9f96c"> 672</a></span>  <a class="code" href="classmesos_1_1SecretGenerator.html">mesos::SecretGenerator</a>* <a class="code" href="classmesos_1_1internal_1_1slave_1_1Slave.html#ac81a0a2d8dc38bbe864c1c4d34d9f96c">secretGenerator</a>;</div>
+<div class="line"><a name="l00673"></a><span class="lineno"> 673</span> };</div>
+<div class="line"><a name="l00674"></a><span class="lineno"> 674</span> </div>
+<div class="line"><a name="l00675"></a><span class="lineno"> 675</span> </div>
+<div class="line"><a name="l00676"></a><span class="lineno"> 676</span> <span class="comment">// Represents the streaming HTTP connection to an executor.</span></div>
+<div class="line"><a name="l00677"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html"> 677</a></span> <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="l00678"></a><span class="lineno"> 678</span> {</div>
+<div class="line"><a name="l00679"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#acc1ca998134e63de44e77f0a371973af"> 679</a></span>  <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>& _writer,</div>
+<div class="line"><a name="l00680"></a><span class="lineno"> 680</span>  <a class="code" href="namespacemesos.html#a13035ce0cc66cca4a467787b4716039e">ContentType</a> _contentType)</div>
+<div class="line"><a name="l00681"></a><span class="lineno"> 681</span>  : <a class="code" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#a0c59d0ff74737a01a33ae18f76525ed3">writer</a>(_writer),</div>
+<div class="line"><a name="l00682"></a><span class="lineno"> 682</span>  <a class="code" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#aa56f337e2e9a40afbcae740883f7342e">contentType</a>(_contentType),</div>
+<div class="line"><a name="l00683"></a><span class="lineno"> 683</span>  <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="l00684"></a><span class="lineno"> 684</span> </div>
+<div class="line"><a name="l00685"></a><span class="lineno"> 685</span>  <span class="comment">// Converts the message to an Event before sending.</span></div>
+<div class="line"><a name="l00686"></a><span class="lineno"> 686</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> Message></div>
+<div class="line"><a name="l00687"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#ad0773acb50a9d74589dc050ee9bc3f9b"> 687</a></span>  <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& message)</div>
+<div class="line"><a name="l00688"></a><span class="lineno"> 688</span>  {</div>
+<div class="line"><a name="l00689"></a><span class="lineno"> 689</span>  <span class="comment">// We need to evolve the internal 'message' into a</span></div>
+<div class="line"><a name="l00690"></a><span class="lineno"> 690</span>  <span class="comment">// 'v1::executor::Event'.</span></div>
+<div class="line"><a name="l00691"></a><span class="lineno"> 691</span>  <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="l00692"></a><span class="lineno"> 692</span>  }</div>
+<div class="line"><a name="l00693"></a><span class="lineno"> 693</span> </div>
+<div class="line"><a name="l00694"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#a6bd61956671fa0cab784ac1eb0d2b834"> 694</a></span>  <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="l00695"></a><span class="lineno"> 695</span>  {</div>
+<div class="line"><a name="l00696"></a><span class="lineno"> 696</span>  <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="l00697"></a><span class="lineno"> 697</span>  }</div>
+<div class="line"><a name="l00698"></a><span class="lineno"> 698</span> </div>
+<div class="line"><a name="l00699"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#a75cfb254a95f8aece262b57137442ad2"> 699</a></span>  <a class="code" href="classprocess_1_1Future.html">process::Future<Nothing></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="l00700"></a><span class="lineno"> 700</span> <span class="keyword"> </span>{</div>
+<div class="line"><a name="l00701"></a><span class="lineno"> 701</span>  <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="l00702"></a><span class="lineno"> 702</span>  }</div>
<div class="line"><a name="l00703"></a><span class="lineno"> 703</span> </div>
-<div class="line"><a name="l00704"></a><span class="lineno"> 704</span> std::ostream& <a class="code" href="namespacemesos_1_1internal_1_1slave.html#acc816a5f127bb40e7d5464befda0a0a9">operator<<</a>(std::ostream& stream, <span class="keyword">const</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html">Executor</a>& executor);</div>
-<div class="line"><a name="l00705"></a><span class="lineno"> 705</span> </div>
-<div class="line"><a name="l00706"></a><span class="lineno"> 706</span> </div>
-<div class="line"><a name="l00707"></a><span class="lineno"> 707</span> <span class="comment">// Information describing an executor.</span></div>
-<div class="line"><a name="l00708"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Executor.html"> 708</a></span> <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="l00709"></a><span class="lineno"> 709</span> {</div>
-<div class="line"><a name="l00710"></a><span class="lineno"> 710</span> <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00711"></a><span class="lineno"> 711</span>  <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a2743c0fdfd1c12f467e85e628a779114">Executor</a>(</div>
-<div class="line"><a name="l00712"></a><span class="lineno"> 712</span>  <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="l00713"></a><span class="lineno"> 713</span>  <span class="keyword">const</span> FrameworkID& frameworkId,</div>
-<div class="line"><a name="l00714"></a><span class="lineno"> 714</span>  <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="l00715"></a><span class="lineno"> 715</span>  <span class="keyword">const</span> ContainerID& containerId,</div>
-<div class="line"><a name="l00716"></a><span class="lineno"> 716</span>  <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="l00717"></a><span class="lineno"> 717</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<std::string></a>& <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#aed6f0c1093840e82b6e920164be9df74">user</a>,</div>
-<div class="line"><a name="l00718"></a><span class="lineno"> 718</span>  <span class="keywordtype">bool</span> checkpoint);</div>
-<div class="line"><a name="l00719"></a><span class="lineno"> 719</span> </div>
-<div class="line"><a name="l00720"></a><span class="lineno"> 720</span>  <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a87195f2f07ffa5b1f9519ed3540e872f">~Executor</a>();</div>
-<div class="line"><a name="l00721"></a><span class="lineno"> 721</span> </div>
-<div class="line"><a name="l00722"></a><span class="lineno"> 722</span>  <span class="comment">// Note that these tasks will also be tracked within `queuedTasks`.</span></div>
-<div class="line"><a name="l00723"></a><span class="lineno"> 723</span>  <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& taskGroup);</div>
-<div class="line"><a name="l00724"></a><span class="lineno"> 724</span> </div>
-<div class="line"><a name="l00725"></a><span class="lineno"> 725</span>  <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& task);</div>
-<div class="line"><a name="l00726"></a><span class="lineno"> 726</span>  <a class="code" href="classOption.html">Option<TaskInfo></a> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a18ade8fb3c2a5b174b7a72d02533dee7">dequeueTask</a>(<span class="keyword">const</span> TaskID& taskId);</div>
-<div class="line"><a name="l00727"></a><span class="lineno"> 727</span>  Task* <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a7edce93b988b10f4cbb4bd7ff47f6254">addLaunchedTask</a>(<span class="keyword">const</span> TaskInfo& task);</div>
-<div class="line"><a name="l00728"></a><span class="lineno"> 728</span>  <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& taskId);</div>
-<div class="line"><a name="l00729"></a><span class="lineno"> 729</span>  <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="l00730"></a><span class="lineno"> 730</span>  <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& task);</div>
-<div class="line"><a name="l00731"></a><span class="lineno"> 731</span>  <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& task);</div>
-<div class="line"><a name="l00732"></a><span class="lineno"> 732</span> </div>
-<div class="line"><a name="l00733"></a><span class="lineno"> 733</span>  <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>& <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="l00734"></a><span class="lineno"> 734</span> </div>
-<div class="line"><a name="l00735"></a><span class="lineno"> 735</span>  <a class="code" href="classTry.html">Try<Nothing></a> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a78d4cb7ddccb6a2f7cdf31475ed7e83d">updateTaskState</a>(<span class="keyword">const</span> TaskStatus& <a class="code" href="namespaceproc.html#a34396c6140a28f583dc13fee3c3c35d4">status</a>);</div>
-<div class="line"><a name="l00736"></a><span class="lineno"> 736</span> </div>
-<div class="line"><a name="l00737"></a><span class="lineno"> 737</span>  <span class="comment">// Returns true if there are any queued/launched/terminated tasks.</span></div>
-<div class="line"><a name="l00738"></a><span class="lineno"> 738</span>  <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="l00739"></a><span class="lineno"> 739</span> </div>
-<div class="line"><a name="l00740"></a><span class="lineno"> 740</span>  <span class="comment">// Sends a message to the connected executor.</span></div>
-<div class="line"><a name="l00741"></a><span class="lineno"> 741</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> Message></div>
-<div class="line"><a name="l00742"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a6088e2d4d0160d0cdaf8674c46d91c43"> 742</a></span>  <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& message)</div>
-<div class="line"><a name="l00743"></a><span class="lineno"> 743</span>  {</div>
-<div class="line"><a name="l00744"></a><span class="lineno"> 744</span>  <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="l00745"></a><span class="lineno"> 745</span>  LOG(WARNING) << <span class="stringliteral">"Attempting to send message to disconnected"</span></div>
-<div class="line"><a name="l00746"></a><span class="lineno"> 746</span>  << <span class="stringliteral">" executor "</span> << *<span class="keyword">this</span> << <span class="stringliteral">" in state "</span> << <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a27e0e6e088c0fd88a0c7f679c964c409">state</a>;</div>
-<div class="line"><a name="l00747"></a><span class="lineno"> 747</span>  }</div>
-<div class="line"><a name="l00748"></a><span class="lineno"> 748</span> </div>
-<div class="line"><a name="l00749"></a><span class="lineno"> 749</span>  <span class="keywordflow">if</span> (http.isSome()) {</div>
-<div class="line"><a name="l00750"></a><span class="lineno"> 750</span>  <span class="keywordflow">if</span> (!http-><a class="code" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#ad0773acb50a9d74589dc050ee9bc3f9b">send</a>(message)) {</div>
-<div class="line"><a name="l00751"></a><span class="lineno"> 751</span>  LOG(WARNING) << <span class="stringliteral">"Unable to send event to executor "</span> << *<span class="keyword">this</span></div>
-<div class="line"><a name="l00752"></a><span class="lineno"> 752</span>  << <span class="stringliteral">": connection closed"</span>;</div>
-<div class="line"><a name="l00753"></a><span class="lineno"> 753</span>  }</div>
-<div class="line"><a name="l00754"></a><span class="lineno"> 754</span>  } <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="l00755"></a><span class="lineno"> 755</span>  slave-><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="l00756"></a><span class="lineno"> 756</span>  } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00757"></a><span class="lineno"> 757</span>  LOG(WARNING) << <span class="stringliteral">"Unable to send event to executor "</span> << *<span class="keyword">this</span></div>
-<div class="line"><a name="l00758"></a><span class="lineno"> 758</span>  << <span class="stringliteral">": unknown connection type"</span>;</div>
-<div class="line"><a name="l00759"></a><span class="lineno"> 759</span>  }</div>
-<div class="line"><a name="l00760"></a><span class="lineno"> 760</span>  }</div>
-<div class="line"><a name="l00761"></a><span class="lineno"> 761</span> </div>
-<div class="line"><a name="l00762"></a><span class="lineno"> 762</span>  <span class="comment">// Returns true if this is a command executor.</span></div>
-<div class="line"><a name="l00763"></a><span class="lineno"> 763</span>  <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="l00764"></a><span class="lineno"> 764</span> </div>
-<div class="line"><a name="l00765"></a><span class="lineno"> 765</span>  <span class="comment">// Closes the HTTP connection.</span></div>
-<div class="line"><a name="l00766"></a><span class="lineno"> 766</span>  <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="l00704"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#a0c59d0ff74737a01a33ae18f76525ed3"> 704</a></span>  <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="l00705"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#aa56f337e2e9a40afbcae740883f7342e"> 705</a></span>  <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="l00706"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#ac9014eb387ce40f4b7803c14b37da8f8"> 706</a></span>  <a class="code" href="classrecordio_1_1Encoder.html">::recordio::Encoder<v1::executor::Event></a> <a class="code" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#ac9014eb387ce40f4b7803c14b37da8f8">encoder</a>;</div>
+<div class="line"><a name="l00707"></a><span class="lineno"> 707</span> };</div>
+<div class="line"><a name="l00708"></a><span class="lineno"> 708</span> </div>
+<div class="line"><a name="l00709"></a><span class="lineno"> 709</span> </div>
+<div class="line"><a name="l00710"></a><span class="lineno"> 710</span> std::ostream& <a class="code" href="namespacemesos_1_1internal_1_1slave.html#acc816a5f127bb40e7d5464befda0a0a9">operator<<</a>(std::ostream& stream, <span class="keyword">const</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html">Executor</a>& executor);</div>
+<div class="line"><a name="l00711"></a><span class="lineno"> 711</span> </div>
+<div class="line"><a name="l00712"></a><span class="lineno"> 712</span> </div>
+<div class="line"><a name="l00713"></a><span class="lineno"> 713</span> <span class="comment">// Information describing an executor.</span></div>
+<div class="line"><a name="l00714"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Executor.html"> 714</a></span> <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="l00715"></a><span class="lineno"> 715</span> {</div>
+<div class="line"><a name="l00716"></a><span class="lineno"> 716</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00717"></a><span class="lineno"> 717</span>  <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a2743c0fdfd1c12f467e85e628a779114">Executor</a>(</div>
+<div class="line"><a name="l00718"></a><span class="lineno"> 718</span>  <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="l00719"></a><span class="lineno"> 719</span>  <span class="keyword">const</span> FrameworkID& frameworkId,</div>
+<div class="line"><a name="l00720"></a><span class="lineno"> 720</span>  <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="l00721"></a><span class="lineno"> 721</span>  <span class="keyword">const</span> ContainerID& containerId,</div>
+<div class="line"><a name="l00722"></a><span class="lineno"> 722</span>  <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="l00723"></a><span class="lineno"> 723</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<std::string></a>& <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#aed6f0c1093840e82b6e920164be9df74">user</a>,</div>
+<div class="line"><a name="l00724"></a><span class="lineno"> 724</span>  <span class="keywordtype">bool</span> checkpoint);</div>
+<div class="line"><a name="l00725"></a><span class="lineno"> 725</span> </div>
+<div class="line"><a name="l00726"></a><span class="lineno"> 726</span>  <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a87195f2f07ffa5b1f9519ed3540e872f">~Executor</a>();</div>
+<div class="line"><a name="l00727"></a><span class="lineno"> 727</span> </div>
+<div class="line"><a name="l00728"></a><span class="lineno"> 728</span>  <span class="comment">// Note that these tasks will also be tracked within `queuedTasks`.</span></div>
+<div class="line"><a name="l00729"></a><span class="lineno"> 729</span>  <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& taskGroup);</div>
+<div class="line"><a name="l00730"></a><span class="lineno"> 730</span> </div>
+<div class="line"><a name="l00731"></a><span class="lineno"> 731</span>  <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& task);</div>
+<div class="line"><a name="l00732"></a><span class="lineno"> 732</span>  <a class="code" href="classOption.html">Option<TaskInfo></a> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a18ade8fb3c2a5b174b7a72d02533dee7">dequeueTask</a>(<span class="keyword">const</span> TaskID& taskId);</div>
+<div class="line"><a name="l00733"></a><span class="lineno"> 733</span>  Task* <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a7edce93b988b10f4cbb4bd7ff47f6254">addLaunchedTask</a>(<span class="keyword">const</span> TaskInfo& task);</div>
+<div class="line"><a name="l00734"></a><span class="lineno"> 734</span>  <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& taskId);</div>
+<div class="line"><a name="l00735"></a><span class="lineno"> 735</span>  <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="l00736"></a><span class="lineno"> 736</span>  <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& task);</div>
+<div class="line"><a name="l00737"></a><span class="lineno"> 737</span>  <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& task);</div>
+<div class="line"><a name="l00738"></a><span class="lineno"> 738</span> </div>
+<div class="line"><a name="l00739"></a><span class="lineno"> 739</span>  <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>& <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="l00740"></a><span class="lineno"> 740</span> </div>
+<div class="line"><a name="l00741"></a><span class="lineno"> 741</span>  <a class="code" href="classTry.html">Try<Nothing></a> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a78d4cb7ddccb6a2f7cdf31475ed7e83d">updateTaskState</a>(<span class="keyword">const</span> TaskStatus& <a class="code" href="namespaceproc.html#a34396c6140a28f583dc13fee3c3c35d4">status</a>);</div>
+<div class="line"><a name="l00742"></a><span class="lineno"> 742</span> </div>
+<div class="line"><a name="l00743"></a><span class="lineno"> 743</span>  <span class="comment">// Returns true if there are any queued/launched/terminated tasks.</span></div>
+<div class="line"><a name="l00744"></a><span class="lineno"> 744</span>  <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="l00745"></a><span class="lineno"> 745</span> </div>
+<div class="line"><a name="l00746"></a><span class="lineno"> 746</span>  <span class="comment">// Sends a message to the connected executor.</span></div>
+<div class="line"><a name="l00747"></a><span class="lineno"> 747</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> Message></div>
+<div class="line"><a name="l00748"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a6088e2d4d0160d0cdaf8674c46d91c43"> 748</a></span>  <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& message)</div>
+<div class="line"><a name="l00749"></a><span class="lineno"> 749</span>  {</div>
+<div class="line"><a name="l00750"></a><span class="lineno"> 750</span>  <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="l00751"></a><span class="lineno"> 751</span>  LOG(WARNING) << <span class="stringliteral">"Attempting to send message to disconnected"</span></div>
+<div class="line"><a name="l00752"></a><span class="lineno"> 752</span>  << <span class="stringliteral">" executor "</span> << *<span class="keyword">this</span> << <span class="stringliteral">" in state "</span> << <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a27e0e6e088c0fd88a0c7f679c964c409">state</a>;</div>
+<div class="line"><a name="l00753"></a><span class="lineno"> 753</span>  }</div>
+<div class="line"><a name="l00754"></a><span class="lineno"> 754</span> </div>
+<div class="line"><a name="l00755"></a><span class="lineno"> 755</span>  <span class="keywordflow">if</span> (http.isSome()) {</div>
+<div class="line"><a name="l00756"></a><span class="lineno"> 756</span>  <span class="keywordflow">if</span> (!http-><a class="code" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#ad0773acb50a9d74589dc050ee9bc3f9b">send</a>(message)) {</div>
+<div class="line"><a name="l00757"></a><span class="lineno"> 757</span>  LOG(WARNING) << <span class="stringliteral">"Unable to send event to executor "</span> << *<span class="keyword">this</span></div>
+<div class="line"><a name="l00758"></a><span class="lineno"> 758</span>  << <span class="stringliteral">": connection closed"</span>;</div>
+<div class="line"><a name="l00759"></a><span class="lineno"> 759</span>  }</div>
+<div class="line"><a name="l00760"></a><span class="lineno"> 760</span>  } <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="l00761"></a><span class="lineno"> 761</span>  slave-><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="l00762"></a><span class="lineno"> 762</span>  } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00763"></a><span class="lineno"> 763</span>  LOG(WARNING) << <span class="stringliteral">"Unable to send event to executor "</span> << *<span class="keyword">this</span></div>
+<div class="line"><a name="l00764"></a><span class="lineno"> 764</span>  << <span class="stringliteral">": unknown connection type"</span>;</div>
+<div class="line"><a name="l00765"></a><span class="lineno"> 765</span>  }</div>
+<div class="line"><a name="l00766"></a><span class="lineno"> 766</span>  }</div>
<div class="line"><a name="l00767"></a><span class="lineno"> 767</span> </div>
-<div class="line"><a name="l00768"></a><span class="lineno"> 768</span>  <span class="comment">// Returns the task group associated with the task.</span></div>
-<div class="line"><a name="l00769"></a><span class="lineno"> 769</span>  <a class="code" href="classOption.html">Option<TaskGroupInfo></a> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#ad6bd3d3bec32d1d06d96f90d1325bf8d">getQueuedTaskGroup</a>(<span class="keyword">const</span> TaskID& taskId);</div>
+<div class="line"><a name="l00768"></a><span class="lineno"> 768</span>  <span class="comment">// Returns true if this is a command executor.</span></div>
+<div class="line"><a name="l00769"></a><span class="lineno"> 769</span>  <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="l00770"></a><span class="lineno"> 770</span> </div>
-<div class="line"><a name="l00771"></a><span class="lineno"> 771</span>  <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="l00772"></a><span class="lineno"> 772</span> </div>
-<div class="line"><a name="l00773"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a3b2abbbd9f9e9ca5c08b75329ac426c0"> 773</a></span>  <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="l00774"></a><span class="lineno"> 774</span>  {</div>
-<div class="line"><a name="l00775"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a3b2abbbd9f9e9ca5c08b75329ac426c0a47f27688eed5f4b7b8fae1fe60e35d0d"> 775</a></span>  <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="l00776"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a3b2abbbd9f9e9ca5c08b75329ac426c0a1485da27f38622c47c16abf8c1491683"> 776</a></span>  <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="l00777"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a3b2abbbd9f9e9ca5c08b75329ac426c0ab536b2fae4842fc2c6e24905f142c920"> 777</a></span>  <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="l00778"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a3b2abbbd9f9e9ca5c08b75329ac426c0ada3a926bc25ef3c7e060789f52aacd75"> 778</a></span>  <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="l00779"></a><span class="lineno"> 779</span>  } <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a27e0e6e088c0fd88a0c7f679c964c409">state</a>;</div>
-<div class="line"><a name="l00780"></a><span class="lineno"> 780</span> </div>
-<div class="line"><a name="l00781"></a><span class="lineno"> 781</span>  <span class="comment">// We store the pointer to 'Slave' to get access to its methods</span></div>
-<div class="line"><a name="l00782"></a><span class="lineno"> 782</span>  <span class="comment">// variables. One could imagine 'Executor' as being an inner class</span></div>
-<div class="line"><a name="l00783"></a><span class="lineno"> 783</span>  <span class="comment">// of the 'Slave' class.</span></div>
-<div class="line"><a name="l00784"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Executor.html#addd8f0d655f9d03ad6bc594c4d476818"> 784</a></span>  <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="l00785"></a><span class="lineno"> 785</span> </div>
-<div class="line"><a name="l00786"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a9037a16ee390fa0893f1229aca4e33ea"> 786</a></span>  <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="l00787"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a6d93343a7cac0e8f5398e4d55a19c856"> 787</a></span>  <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="l00788"></a><span class="lineno"> 788</span> </div>
-<div class="line"><a name="l00789"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a34bfb0214dd593dcbf1ad4fa398a417c"> 789</a></span>  <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="l00790"></a><span class="lineno"> 790</span> </div>
-<div class="line"><a name="l00791"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Executor.html#aaad02226a9d30491088dd9ef315effbc"> 791</a></span>  <span class="keyword">const</span> ContainerID <a class="code" href="classmesos_1_1internal_1_1slave_1_1Executor.html#aaad02226a9d30491088dd9ef315effbc">containerId</a>;</div>
-<div class="l
<TRUNCATED>