blob: 3492d24d739ad3ffa5564485bab58e8f143f7f46 [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.5"/>
<title>Apache Mesos: src/slave/slave.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">Apache Mesos
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.5 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li><a href="examples.html"><span>Examples</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_80f0d4a0945c74dfa611dba2ec326a39.html">slave</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">slave.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="slave_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// Licensed to the Apache Software Foundation (ASF) under one</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// or more contributor license agreements. See the NOTICE file</span></div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">// distributed with this work for additional information</span></div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// regarding copyright ownership. The ASF licenses this file</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// to you under the Apache License, Version 2.0 (the</span></div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// &quot;License&quot;); you may not use this file except in compliance</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// with the License. You may obtain a copy of the License at</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// http://www.apache.org/licenses/LICENSE-2.0</span></div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// Unless required by applicable law or agreed to in writing, software</span></div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// distributed under the License is distributed on an &quot;AS IS&quot; BASIS,</span></div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// See the License for the specific language governing permissions and</span></div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// limitations under the License.</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#ifndef __SLAVE_HPP__</span></div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define __SLAVE_HPP__</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &lt;stdint.h&gt;</span></div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &lt;list&gt;</span></div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#include &lt;memory&gt;</span></div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#include &lt;string&gt;</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor">#include &lt;boost/circular_buffer.hpp&gt;</span></div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="include_2mesos_2attributes_8hpp.html">mesos/attributes.hpp</a>&gt;</span></div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="resources_8hpp.html">mesos/resources.hpp</a>&gt;</span></div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="type__utils_8hpp.html">mesos/type_utils.hpp</a>&gt;</span></div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="agent_2agent_8hpp.html">mesos/agent/agent.hpp</a>&gt;</span></div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="include_2mesos_2executor_2executor_8hpp.html">mesos/executor/executor.hpp</a>&gt;</span></div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="master_2detector_8hpp.html">mesos/master/detector.hpp</a>&gt;</span></div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="include_2mesos_2module_2authenticatee_8hpp.html">mesos/module/authenticatee.hpp</a>&gt;</span></div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="include_2mesos_2slave_2containerizer_8hpp.html">mesos/slave/containerizer.hpp</a>&gt;</span></div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="slave_2qos__controller_8hpp.html">mesos/slave/qos_controller.hpp</a>&gt;</span></div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="slave_2resource__estimator_8hpp.html">mesos/slave/resource_estimator.hpp</a>&gt;</span></div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="include_2mesos_2v1_2executor_2executor_8hpp.html">mesos/v1/executor/executor.hpp</a>&gt;</span></div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="3rdparty_2libprocess_2include_2process_2http_8hpp.html">process/http.hpp</a>&gt;</span></div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="future_8hpp.html">process/future.hpp</a>&gt;</span></div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="owned_8hpp.html">process/owned.hpp</a>&gt;</span></div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="3rdparty_2libprocess_2include_2process_2limiter_8hpp.html">process/limiter.hpp</a>&gt;</span></div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="libprocess_2include_2process_2process_8hpp.html">process/process.hpp</a>&gt;</span></div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="3rdparty_2libprocess_2include_2process_2protobuf_8hpp.html">process/protobuf.hpp</a>&gt;</span></div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="3rdparty_2libprocess_2include_2process_2shared_8hpp.html">process/shared.hpp</a>&gt;</span></div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="boundedhashmap_8hpp.html">stout/boundedhashmap.hpp</a>&gt;</span></div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="bytes_8hpp.html">stout/bytes.hpp</a>&gt;</span></div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="linkedhashmap_8hpp.html">stout/linkedhashmap.hpp</a>&gt;</span></div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="hashmap_8hpp.html">stout/hashmap.hpp</a>&gt;</span></div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="hashset_8hpp.html">stout/hashset.hpp</a>&gt;</span></div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="option_8hpp.html">stout/option.hpp</a>&gt;</span></div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="os_8hpp.html">stout/os.hpp</a>&gt;</span></div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="path_8hpp.html">stout/path.hpp</a>&gt;</span></div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="3rdparty_2stout_2include_2stout_2recordio_8hpp.html">stout/recordio.hpp</a>&gt;</span></div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="uuid_8hpp.html">stout/uuid.hpp</a>&gt;</span></div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="src_2common_2http_8hpp.html">common/http.hpp</a>&quot;</span></div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="protobuf__utils_8hpp.html">common/protobuf_utils.hpp</a>&quot;</span></div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="src_2common_2recordio_8hpp.html">common/recordio.hpp</a>&quot;</span></div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="files_8hpp.html">files/files.hpp</a>&quot;</span></div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="evolve_8hpp.html">internal/evolve.hpp</a>&quot;</span></div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="messages_8hpp.html">messages/messages.hpp</a>&quot;</span></div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="src_2slave_2constants_8hpp.html">slave/constants.hpp</a>&quot;</span></div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="src_2slave_2containerizer_2containerizer_8hpp.html">slave/containerizer/containerizer.hpp</a>&quot;</span></div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="src_2slave_2flags_8hpp.html">slave/flags.hpp</a>&quot;</span></div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="src_2slave_2gc_8hpp.html">slave/gc.hpp</a>&quot;</span></div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="src_2slave_2metrics_8hpp.html">slave/metrics.hpp</a>&quot;</span></div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="paths_8hpp.html">slave/paths.hpp</a>&quot;</span></div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="src_2slave_2state_8hpp.html">slave/state.hpp</a>&quot;</span></div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="comment">// `REGISTERING` is used as an enum value, but it&#39;s actually defined as a</span></div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="comment">// constant in the Windows SDK.</span></div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="preprocessor">#ifdef __WINDOWS__</span></div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#undef REGISTERING</span></div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif // __WINDOWS__</span></div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="keyword">namespace </span>mesos {</div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="comment">// Forward declarations.</span></div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;<span class="keyword">class </span>Authorizer;</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;<span class="keyword">namespace </span>internal {</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;<span class="keyword">namespace </span>slave {</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<span class="comment">// Some forward declarations.</span></div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;<span class="keyword">class </span>StatusUpdateManager;</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<span class="keyword">struct </span>Executor;</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<span class="keyword">struct </span>Framework;</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;<span class="keyword">struct </span>HttpConnection;</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div>
<div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Slave.html"> 105</a></span>&#160;<span class="keyword">class </span><a class="code" href="classmesos_1_1internal_1_1slave_1_1Slave.html">Slave</a> : <span class="keyword">public</span> <a class="code" href="classProtobufProcess.html">ProtobufProcess</a>&lt;Slave&gt;</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;{</div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <a class="code" href="classmesos_1_1internal_1_1slave_1_1Slave.html#ad0e96504544270343dadd39350e7a96e">Slave</a>(<span class="keyword">const</span> std::string&amp; <span class="keywordtype">id</span>,</div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</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="l00110"></a><span class="lineno"> 110</span>&#160; <a class="code" href="classmesos_1_1master_1_1detector_1_1MasterDetector.html">mesos::master::detector::MasterDetector</a>* detector,</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <a class="code" href="classmesos_1_1internal_1_1slave_1_1Containerizer.html">Containerizer</a>* containerizer,</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <a class="code" href="classmesos_1_1internal_1_1Files.html">Files</a>* files,</div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <a class="code" href="classmesos_1_1internal_1_1slave_1_1GarbageCollector.html">GarbageCollector</a>* gc,</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <a class="code" href="classmesos_1_1internal_1_1slave_1_1StatusUpdateManager.html">StatusUpdateManager</a>* statusUpdateManager,</div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <a class="code" href="classmesos_1_1slave_1_1ResourceEstimator.html">mesos::slave::ResourceEstimator</a>* resourceEstimator,</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <a class="code" href="classmesos_1_1slave_1_1QoSController.html">mesos::slave::QoSController</a>* qosController,</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;Authorizer*&gt;</a>&amp; authorizer);</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Slave.html#ad958f0e032e8ea9a49a442232df8bbd3">~Slave</a>();</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Slave.html#a16989d154cc28900c0094622ffb38324">shutdown</a>(<span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">process::UPID</a>&amp; from, <span class="keyword">const</span> std::string&amp; <a class="code" href="classprocess_1_1ProcessBase.html#a025e342d8f2be6c42fe34031edda54a3">message</a>);</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Slave.html#a15efbb67f94f85e7d08726c0697c179b">registered</a>(</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">process::UPID</a>&amp; from,</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keyword">const</span> SlaveID&amp; slaveId,</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keyword">const</span> MasterSlaveConnection&amp; connection);</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Slave.html#a93ef27587c482384feeca0a915dcf23f">reregistered</a>(</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">process::UPID</a>&amp; from,</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keyword">const</span> SlaveID&amp; slaveId,</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keyword">const</span> std::vector&lt;ReconcileTasksMessage&gt;&amp; reconciliations,</div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keyword">const</span> MasterSlaveConnection&amp; connection);</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Slave.html#af7b56f9573b13d083140cc1465a186f4">doReliableRegistration</a>(<a class="code" href="classDuration.html">Duration</a> maxBackoff);</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="comment">// Made &#39;virtual&#39; for Slave mocking.</span></div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Slave.html#aae43730eb6c9f2425b6480eb5ac0cd76">runTask</a>(</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">process::UPID</a>&amp; from,</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keyword">const</span> FrameworkInfo&amp; frameworkInfo,</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keyword">const</span> FrameworkID&amp; frameworkId,</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">process::UPID</a>&amp; pid,</div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keyword">const</span> TaskInfo&amp; task);</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Slave.html#acd63433cddd0b596275f07f316c32839">run</a>(</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keyword">const</span> FrameworkInfo&amp; frameworkInfo,</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; ExecutorInfo executorInfo,</div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <a class="code" href="classOption.html">Option&lt;TaskInfo&gt;</a> task,</div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <a class="code" href="classOption.html">Option&lt;TaskGroupInfo&gt;</a> taskGroup,</div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">process::UPID</a>&amp; pid);</div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;</div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="comment">// Made &#39;virtual&#39; for Slave mocking.</span></div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Slave.html#a8fb00b6a0e27ae8e8149195c63ffa031">_run</a>(</div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keyword">const</span> <a class="code" href="classprocess_1_1Future.html">process::Future&lt;bool&gt;</a>&amp; future,</div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keyword">const</span> FrameworkInfo&amp; frameworkInfo,</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keyword">const</span> ExecutorInfo&amp; executorInfo,</div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;TaskInfo&gt;</a>&amp; task,</div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;TaskGroupInfo&gt;</a>&amp; taskGroup);</div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;</div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="comment">// Made &#39;virtual&#39; for Slave mocking.</span></div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Slave.html#a5ca99c4d54ff269e0f669480055966b7">runTaskGroup</a>(</div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">process::UPID</a>&amp; from,</div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keyword">const</span> FrameworkInfo&amp; frameworkInfo,</div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keyword">const</span> ExecutorInfo&amp; executorInfo,</div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keyword">const</span> TaskGroupInfo&amp; taskGroupInfo);</div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <a class="code" href="classprocess_1_1Future.html">process::Future&lt;bool&gt;</a> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Slave.html#a9b0cb250918c7926d3530341b7063f82">unschedule</a>(<span class="keyword">const</span> std::string&amp; path);</div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;</div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="comment">// Made &#39;virtual&#39; for Slave mocking.</span></div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Slave.html#a54445d6bb6235a083065e0ceb7c38b12">killTask</a>(</div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">process::UPID</a>&amp; from,</div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keyword">const</span> KillTaskMessage&amp; killTaskMessage);</div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;</div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Slave.html#a58aa076dac22e517a2cb57de598b4e58">shutdownExecutor</a>(</div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">process::UPID</a>&amp; from,</div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keyword">const</span> FrameworkID&amp; frameworkId,</div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keyword">const</span> ExecutorID&amp; executorId);</div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;</div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Slave.html#abbbc83998379b2613f6c0b1e943b9e3c">shutdownFramework</a>(</div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">process::UPID</a>&amp; from,</div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keyword">const</span> FrameworkID&amp; frameworkId);</div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;</div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Slave.html#ad479def15e8e6a1214040b586960595b">schedulerMessage</a>(</div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keyword">const</span> SlaveID&amp; slaveId,</div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keyword">const</span> FrameworkID&amp; frameworkId,</div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keyword">const</span> ExecutorID&amp; executorId,</div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keyword">const</span> std::string&amp; data);</div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;</div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Slave.html#abb3eb40f60a79598820ef1f7de3e2a42">updateFramework</a>(</div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keyword">const</span> FrameworkID&amp; frameworkId,</div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">process::UPID</a>&amp; pid,</div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keyword">const</span> FrameworkInfo&amp; frameworkInfo);</div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;</div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Slave.html#a5fd37029b97e30705b46a8187cd52ee0">checkpointResources</a>(<span class="keyword">const</span> std::vector&lt;Resource&gt;&amp; checkpointedResources);</div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;</div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Slave.html#a6f4d260ba9dd50482b7bd8f5021f29b3">subscribe</a>(</div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <a class="code" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html">HttpConnection</a> http,</div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keyword">const</span> executor::Call::Subscribe&amp; <a class="code" href="classmesos_1_1internal_1_1slave_1_1Slave.html#a6f4d260ba9dd50482b7bd8f5021f29b3">subscribe</a>,</div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <a class="code" href="structmesos_1_1internal_1_1slave_1_1Framework.html">Framework</a>* framework,</div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <a class="code" href="structmesos_1_1internal_1_1slave_1_1Executor.html">Executor</a>* executor);</div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;</div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Slave.html#accb925947118625aa974fe887268b90a">registerExecutor</a>(</div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">process::UPID</a>&amp; from,</div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keyword">const</span> FrameworkID&amp; frameworkId,</div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keyword">const</span> ExecutorID&amp; executorId);</div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;</div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="comment">// Called when an executor re-registers with a recovering slave.</span></div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="comment">// &#39;tasks&#39; : Unacknowledged tasks (i.e., tasks that the executor</span></div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="comment">// driver never received an ACK for.)</span></div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="comment">// &#39;updates&#39; : Unacknowledged updates.</span></div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Slave.html#a7671d5dc95a480163e3a52466767ab80">reregisterExecutor</a>(</div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">process::UPID</a>&amp; from,</div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keyword">const</span> FrameworkID&amp; frameworkId,</div>
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="keyword">const</span> ExecutorID&amp; executorId,</div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keyword">const</span> std::vector&lt;TaskInfo&gt;&amp; tasks,</div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keyword">const</span> std::vector&lt;StatusUpdate&gt;&amp; updates);</div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;</div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Slave.html#a501cc0851b8609a0305cb6b4604081ab">_reregisterExecutor</a>(</div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keyword">const</span> <a class="code" href="classprocess_1_1Future.html">process::Future&lt;Nothing&gt;</a>&amp; future,</div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keyword">const</span> FrameworkID&amp; frameworkId,</div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keyword">const</span> ExecutorID&amp; executorId,</div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keyword">const</span> ContainerID&amp; containerId);</div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;</div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Slave.html#ab7696419236c5bd5d455a0f1aeca9e2c">executorMessage</a>(</div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keyword">const</span> SlaveID&amp; slaveId,</div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="keyword">const</span> FrameworkID&amp; frameworkId,</div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keyword">const</span> ExecutorID&amp; executorId,</div>
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="keyword">const</span> std::string&amp; data);</div>
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;</div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Slave.html#a5375350e12064d0cc86ec346e06c22cf">ping</a>(<span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">process::UPID</a>&amp; from, <span class="keywordtype">bool</span> connected);</div>
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;</div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="comment">// Handles the status update.</span></div>
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="comment">// NOTE: If &#39;pid&#39; is a valid UPID an ACK is sent to this pid</span></div>
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="comment">// after the update is successfully handled. If pid == UPID()</span></div>
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="comment">// no ACK is sent. The latter is used by the slave to send</span></div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="comment">// status updates it generated (e.g., TASK_LOST). If pid == None()</span></div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <span class="comment">// an ACK is sent to the corresponding HTTP based executor.</span></div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <span class="comment">// NOTE: StatusUpdate is passed by value because it is modified</span></div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <span class="comment">// to ensure source field is set.</span></div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Slave.html#a6ebc1f2b684a989e5c42c9b2642b73dd">statusUpdate</a>(StatusUpdate <a class="code" href="namespacerouting_1_1filter_1_1basic.html#a088d88712e011acb0673da92045b365b">update</a>, <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="l00240"></a><span class="lineno"> 240</span>&#160;</div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="comment">// Called when the slave receives a `StatusUpdate` from an executor</span></div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="comment">// and the slave needs to retrieve the container status for the</span></div>
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="comment">// container associated with the executor.</span></div>
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Slave.html#a3c2d5a4940f75c7fa8bd624093882f34">_statusUpdate</a>(</div>
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; StatusUpdate update,</div>
<div class="line"><a name="l00246"></a><span class="lineno"> 246</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="l00247"></a><span class="lineno"> 247</span>&#160; <span class="keyword">const</span> ExecutorID&amp; executorId,</div>
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keyword">const</span> <a class="code" href="classprocess_1_1Future.html">process::Future&lt;ContainerStatus&gt;</a>&amp; future);</div>
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;</div>
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <span class="comment">// Continue handling the status update after optionally updating the</span></div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <span class="comment">// container&#39;s resources.</span></div>
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Slave.html#ab69c5bf00179cbecfacaa560bf404ff7">__statusUpdate</a>(</div>
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="keyword">const</span> <a class="code" href="classOption.html">Option</a>&lt;<a class="code" href="classprocess_1_1Future.html">process::Future&lt;Nothing&gt;</a>&gt;&amp; future,</div>
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <span class="keyword">const</span> StatusUpdate&amp; update,</div>
<div class="line"><a name="l00255"></a><span class="lineno"> 255</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="l00256"></a><span class="lineno"> 256</span>&#160; <span class="keyword">const</span> ExecutorID&amp; executorId,</div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="keyword">const</span> ContainerID&amp; containerId,</div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="namespacemesos_1_1internal_1_1slave_1_1state_1_1internal.html#a749d698dcb6786428fa589b72cee6467">checkpoint</a>);</div>
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;</div>
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="comment">// This is called when the status update manager finishes</span></div>
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <span class="comment">// handling the update. If the handling is successful, an</span></div>
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="comment">// acknowledgment is sent to the executor.</span></div>
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Slave.html#ad4a853b29ff31eeff458ae33b611bcaf">___statusUpdate</a>(</div>
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <span class="keyword">const</span> <a class="code" href="classprocess_1_1Future.html">process::Future&lt;Nothing&gt;</a>&amp; future,</div>
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <span class="keyword">const</span> StatusUpdate&amp; update,</div>
<div class="line"><a name="l00266"></a><span class="lineno"> 266</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="l00267"></a><span class="lineno"> 267</span>&#160;</div>
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <span class="comment">// This is called by status update manager to forward a status</span></div>
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <span class="comment">// update to the master. Note that the latest state of the task is</span></div>
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <span class="comment">// added to the update before forwarding.</span></div>
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Slave.html#a2ca66ded2a1266abdf00e370691a80df">forward</a>(StatusUpdate update);</div>
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;</div>
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Slave.html#a1e0c26aadd84e879a41ce399d685e421">statusUpdateAcknowledgement</a>(</div>
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">process::UPID</a>&amp; from,</div>
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <span class="keyword">const</span> SlaveID&amp; slaveId,</div>
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <span class="keyword">const</span> FrameworkID&amp; frameworkId,</div>
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; <span class="keyword">const</span> TaskID&amp; taskId,</div>
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="keyword">const</span> std::string&amp; uuid);</div>
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;</div>
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Slave.html#aa91b3747671faf9f39404a8730e5ef3d">_statusUpdateAcknowledgement</a>(</div>
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="keyword">const</span> <a class="code" href="classprocess_1_1Future.html">process::Future&lt;bool&gt;</a>&amp; future,</div>
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <span class="keyword">const</span> TaskID&amp; taskId,</div>
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <span class="keyword">const</span> FrameworkID&amp; frameworkId,</div>
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <span class="keyword">const</span> <a class="code" href="structid_1_1UUID.html">UUID</a>&amp; uuid);</div>
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;</div>
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Slave.html#a22a22c318c5f84d0e5c4f068613154f6">executorLaunched</a>(</div>
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <span class="keyword">const</span> FrameworkID&amp; frameworkId,</div>
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <span class="keyword">const</span> ExecutorID&amp; executorId,</div>
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; <span class="keyword">const</span> ContainerID&amp; containerId,</div>
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <span class="keyword">const</span> <a class="code" href="classprocess_1_1Future.html">process::Future&lt;bool&gt;</a>&amp; future);</div>
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;</div>
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; <span class="comment">// Made &#39;virtual&#39; for Slave mocking.</span></div>
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Slave.html#a9c1e1cd64c97eca9037187ee4a782999">executorTerminated</a>(</div>
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="keyword">const</span> FrameworkID&amp; frameworkId,</div>
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <span class="keyword">const</span> ExecutorID&amp; executorId,</div>
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <span class="keyword">const</span> <a class="code" href="classprocess_1_1Future.html">process::Future</a>&lt;<a class="code" href="classOption.html">Option</a>&lt;</div>
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; mesos::slave::ContainerTermination&gt;&gt;&amp; termination);</div>
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160;</div>
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <span class="comment">// NOTE: Pulled these to public to make it visible for testing.</span></div>
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; <span class="comment">// TODO(vinod): Make tests friends to this class instead.</span></div>
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;</div>
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; <span class="comment">// Garbage collects the directories based on the current disk usage.</span></div>
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <span class="comment">// TODO(vinod): Instead of making this function public, we need to</span></div>
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <span class="comment">// mock both GarbageCollector (and pass it through slave&#39;s constructor)</span></div>
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <span class="comment">// and os calls.</span></div>
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Slave.html#af678d52f877800e895ff62f56be970cf">_checkDiskUsage</a>(<span class="keyword">const</span> <a class="code" href="classprocess_1_1Future.html">process::Future&lt;double&gt;</a>&amp; <a class="code" href="classmesos_1_1internal_1_1slave_1_1Slave.html#a7c5612e80a880f00c74767e13bb068fd">usage</a>);</div>
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;</div>
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; <span class="comment">// Invoked whenever the detector detects a change in masters.</span></div>
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <span class="comment">// Made public for testing purposes.</span></div>
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Slave.html#ab93ec7c1c943aa82839dc8e5c717632c">detected</a>(<span class="keyword">const</span> <a class="code" href="classprocess_1_1Future.html">process::Future</a>&lt;<a class="code" href="classOption.html">Option&lt;MasterInfo&gt;</a>&gt;&amp; _master);</div>
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160;</div>
<div class="line"><a name="l00312"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Slave.html#a135c9291e330f8ecb3b39b99eca94798"> 312</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Slave.html#a135c9291e330f8ecb3b39b99eca94798">State</a></div>
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; {</div>
<div class="line"><a name="l00314"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Slave.html#a135c9291e330f8ecb3b39b99eca94798a02c83e427172d4d3c7889ea36806806e"> 314</a></span>&#160; <a class="code" href="classmesos_1_1internal_1_1slave_1_1Slave.html#a135c9291e330f8ecb3b39b99eca94798a02c83e427172d4d3c7889ea36806806e">RECOVERING</a>, <span class="comment">// Slave is doing recovery.</span></div>
<div class="line"><a name="l00315"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Slave.html#a135c9291e330f8ecb3b39b99eca94798a3a8b567a119034961ad2fc9fa32bb98b"> 315</a></span>&#160; <a class="code" href="classmesos_1_1internal_1_1slave_1_1Slave.html#a135c9291e330f8ecb3b39b99eca94798a3a8b567a119034961ad2fc9fa32bb98b">DISCONNECTED</a>, <span class="comment">// Slave is not connected to the master.</span></div>
<div class="line"><a name="l00316"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Slave.html#a135c9291e330f8ecb3b39b99eca94798ab6e7c1a3b051bfc2e95e9f2baae77ad5"> 316</a></span>&#160; <a class="code" href="classmesos_1_1internal_1_1slave_1_1Slave.html#a135c9291e330f8ecb3b39b99eca94798ab6e7c1a3b051bfc2e95e9f2baae77ad5">RUNNING</a>, <span class="comment">// Slave has (re-)registered.</span></div>
<div class="line"><a name="l00317"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Slave.html#a135c9291e330f8ecb3b39b99eca94798a229d35d6b3d76e3099d766261021b0db"> 317</a></span>&#160; <a class="code" href="classmesos_1_1internal_1_1slave_1_1Slave.html#a135c9291e330f8ecb3b39b99eca94798a229d35d6b3d76e3099d766261021b0db">TERMINATING</a>, <span class="comment">// Slave is shutting down.</span></div>
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; } <a class="code" href="classmesos_1_1internal_1_1slave_1_1Slave.html#af79c3eb007e12f37faec4a24d1f95cc4">state</a>;</div>
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160;</div>
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; <span class="comment">// Describes information about agent recovery.</span></div>
<div class="line"><a name="l00321"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1Slave_1_1RecoveryInfo.html"> 321</a></span>&#160; <span class="keyword">struct </span><a class="code" href="structmesos_1_1internal_1_1slave_1_1Slave_1_1RecoveryInfo.html">RecoveryInfo</a></div>
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; {</div>
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; <span class="comment">// Flag to indicate if recovery, including reconciling</span></div>
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; <span class="comment">// (i.e., reconnect/kill) with executors is finished.</span></div>
<div class="line"><a name="l00325"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1Slave_1_1RecoveryInfo.html#a2f6f939e181d233ae34f7f7133526d7b"> 325</a></span>&#160; <a class="code" href="classprocess_1_1Promise.html">process::Promise&lt;Nothing&gt;</a> <a class="code" href="structmesos_1_1internal_1_1slave_1_1Slave_1_1RecoveryInfo.html#a2f6f939e181d233ae34f7f7133526d7b">recovered</a>;</div>
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;</div>
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; <span class="comment">// Flag to indicate that HTTP based executors can</span></div>
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; <span class="comment">// subscribe with the agent. We allow them to subscribe</span></div>
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <span class="comment">// after the agent recovers the containerizer.</span></div>
<div class="line"><a name="l00330"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1Slave_1_1RecoveryInfo.html#abdbf7f4d9d923c57105b4eb1dac7e3d8"> 330</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="structmesos_1_1internal_1_1slave_1_1Slave_1_1RecoveryInfo.html#abdbf7f4d9d923c57105b4eb1dac7e3d8">reconnect</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; } <a class="code" href="classmesos_1_1internal_1_1slave_1_1Slave.html#a2201f63bd7d999ad238f0c6cd7b956ef">recoveryInfo</a>;</div>
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160;</div>
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <span class="comment">// TODO(benh): Clang requires members to be public in order to take</span></div>
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; <span class="comment">// their address which we do in tests (for things like</span></div>
<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; <span class="comment">// FUTURE_DISPATCH).</span></div>
<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160;<span class="comment">// protected:</span></div>
<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Slave.html#ace99b8066d4aed8f21395f025118fc10">initialize</a>();</div>
<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Slave.html#ac81938c4eeee7234af198a86c13911fc">finalize</a>();</div>
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Slave.html#afc9437a65ba512cdfa4cd082b0e95d55">exited</a>(<span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">process::UPID</a>&amp; pid);</div>
<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160;</div>
<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; <span class="comment">// This is called when the resource limits of the container have</span></div>
<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; <span class="comment">// been updated for the given tasks and task groups. If the update is</span></div>
<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; <span class="comment">// successful, we flush the given tasks to the executor by sending</span></div>
<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; <span class="comment">// RunTaskMessages or `LAUNCH_GROUP` events.</span></div>
<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Slave.html#a4f48c75ffa6aeed21563e2306f10208a">__run</a>(</div>
<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; <span class="keyword">const</span> <a class="code" href="classprocess_1_1Future.html">process::Future&lt;Nothing&gt;</a>&amp; future,</div>
<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; <span class="keyword">const</span> FrameworkID&amp; frameworkId,</div>
<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; <span class="keyword">const</span> ExecutorID&amp; executorId,</div>
<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; <span class="keyword">const</span> ContainerID&amp; containerId,</div>
<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; <span class="keyword">const</span> std::list&lt;TaskInfo&gt;&amp; tasks,</div>
<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; <span class="keyword">const</span> std::list&lt;TaskGroupInfo&gt;&amp; taskGroups);</div>
<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160;</div>
<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Slave.html#a2177deec04a26ad0ed1d692053c7a7b4">fileAttached</a>(<span class="keyword">const</span> <a class="code" href="classprocess_1_1Future.html">process::Future&lt;Nothing&gt;</a>&amp; result,</div>
<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; <span class="keyword">const</span> std::string&amp; path);</div>
<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160;</div>
<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <a class="code" href="structNothing.html">Nothing</a> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Slave.html#a281c6252ea2ad026664661aaf22237c3">detachFile</a>(<span class="keyword">const</span> std::string&amp; path);</div>
<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160;</div>
<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; <span class="comment">// Triggers a re-detection of the master when the slave does</span></div>
<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; <span class="comment">// not receive a ping.</span></div>
<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Slave.html#aa14da55de5c585de7f443afa61e042d7">pingTimeout</a>(<a class="code" href="classprocess_1_1Future.html">process::Future</a>&lt;<a class="code" href="classOption.html">Option&lt;MasterInfo&gt;</a>&gt; future);</div>
<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160;</div>
<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Slave.html#a2092a012c0c720534bee028e9b0064ab">authenticate</a>();</div>
<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160;</div>
<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; <span class="comment">// Helper routines to lookup a framework/executor.</span></div>
<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; <a class="code" href="structmesos_1_1internal_1_1slave_1_1Framework.html">Framework</a>* <a class="code" href="classmesos_1_1internal_1_1slave_1_1Slave.html#af47e4a69c5542ae625bdd1a5b7fdb308">getFramework</a>(<span class="keyword">const</span> FrameworkID&amp; frameworkId) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160;</div>
<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; <a class="code" href="structmesos_1_1internal_1_1slave_1_1Executor.html">Executor</a>* <a class="code" href="classmesos_1_1internal_1_1slave_1_1Slave.html#ae5cbf7aef363a45048acfca39fbb4c89">getExecutor</a>(</div>
<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; <span class="keyword">const</span> FrameworkID&amp; frameworkId,</div>
<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; <span class="keyword">const</span> ExecutorID&amp; executorId) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160;</div>
<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; <a class="code" href="structmesos_1_1internal_1_1slave_1_1Executor.html">Executor</a>* <a class="code" href="classmesos_1_1internal_1_1slave_1_1Slave.html#ae5cbf7aef363a45048acfca39fbb4c89">getExecutor</a>(<span class="keyword">const</span> ContainerID&amp; containerId) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160;</div>
<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; <span class="comment">// Returns an ExecutorInfo for a TaskInfo (possibly</span></div>
<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; <span class="comment">// constructing one if the task has a CommandInfo).</span></div>
<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; ExecutorInfo <a class="code" href="classmesos_1_1internal_1_1slave_1_1Slave.html#a1200b872e31b092349f482e4711d41e4">getExecutorInfo</a>(</div>
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; <span class="keyword">const</span> FrameworkInfo&amp; frameworkInfo,</div>
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; <span class="keyword">const</span> TaskInfo&amp; task) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160;</div>
<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; <span class="comment">// Shuts down the executor if it did not register yet.</span></div>
<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Slave.html#aeaef3f8ca707a6ddf0cd9692835b7f50">registerExecutorTimeout</a>(</div>
<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; <span class="keyword">const</span> FrameworkID&amp; frameworkId,</div>
<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; <span class="keyword">const</span> ExecutorID&amp; executorId,</div>
<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; <span class="keyword">const</span> ContainerID&amp; containerId);</div>
<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160;</div>
<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; <span class="comment">// Cleans up all un-reregistered executors during recovery.</span></div>
<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Slave.html#a00d7e0077ecd03e0e0bde0b814d02a68">reregisterExecutorTimeout</a>();</div>
<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160;</div>
<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; <span class="comment">// This function returns the max age of executor/slave directories allowed,</span></div>
<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; <span class="comment">// given a disk usage. This value could be used to tune gc.</span></div>
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; <a class="code" href="classDuration.html">Duration</a> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Slave.html#a355d5c297d06b8e818df3edcfd69648b">age</a>(<span class="keywordtype">double</span> usage);</div>
<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160;</div>
<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; <span class="comment">// Checks the current disk usage and schedules for gc as necessary.</span></div>
<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Slave.html#a834f5a3d33854228abfa40e61eb0106e">checkDiskUsage</a>();</div>
<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160;</div>
<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; <span class="comment">// Recovers the slave, status update manager and isolator.</span></div>
<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; <a class="code" href="classprocess_1_1Future.html">process::Future&lt;Nothing&gt;</a> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Slave.html#aa66f55ccd42a6aac647a50d78a3fb29c">recover</a>(<span class="keyword">const</span> <a class="code" href="classTry.html">Try&lt;state::State&gt;</a>&amp; <a class="code" href="classmesos_1_1internal_1_1slave_1_1Slave.html#af79c3eb007e12f37faec4a24d1f95cc4">state</a>);</div>
<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160;</div>
<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; <span class="comment">// This is called after &#39;recover()&#39;. If &#39;flags.reconnect&#39; is</span></div>
<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; <span class="comment">// &#39;reconnect&#39;, the slave attempts to reconnect to any old live</span></div>
<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; <span class="comment">// executors. Otherwise, the slave attempts to shutdown/kill them.</span></div>
<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; <a class="code" href="classprocess_1_1Future.html">process::Future&lt;Nothing&gt;</a> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Slave.html#ad615bdfc4c89ec56f96c61d493507516">_recover</a>();</div>
<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160;</div>
<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; <span class="comment">// This is a helper to call recover() on the containerizer at the end of</span></div>
<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; <span class="comment">// recover() and before __recover().</span></div>
<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; <span class="comment">// TODO(idownes): Remove this when we support defers to objects.</span></div>
<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; <a class="code" href="classprocess_1_1Future.html">process::Future&lt;Nothing&gt;</a> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Slave.html#a05bb2d1fc84402385d05c5341dea5827">_recoverContainerizer</a>(</div>
<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;state::SlaveState&gt;</a>&amp; <a class="code" href="classmesos_1_1internal_1_1slave_1_1Slave.html#af79c3eb007e12f37faec4a24d1f95cc4">state</a>);</div>
<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160;</div>
<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; <span class="comment">// This is called when recovery finishes.</span></div>
<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; <span class="comment">// Made &#39;virtual&#39; for Slave mocking.</span></div>
<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Slave.html#adf6475e9de96ccbbe503980ae80c2978">__recover</a>(<span class="keyword">const</span> <a class="code" href="classprocess_1_1Future.html">process::Future&lt;Nothing&gt;</a>&amp; future);</div>
<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160;</div>
<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; <span class="comment">// Helper to recover a framework from the specified state.</span></div>
<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Slave.html#a687e239fe854b91b0f64e076ab4dbf57">recoverFramework</a>(</div>
<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; <span class="keyword">const</span> <a class="code" href="structmesos_1_1internal_1_1slave_1_1state_1_1FrameworkState.html">state::FrameworkState</a>&amp; <a class="code" href="classmesos_1_1internal_1_1slave_1_1Slave.html#af79c3eb007e12f37faec4a24d1f95cc4">state</a>,</div>
<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; <span class="keyword">const</span> <a class="code" href="classhashset.html">hashset&lt;ExecutorID&gt;</a>&amp; executorsToRecheckpoint,</div>
<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; <span class="keyword">const</span> <a class="code" href="classhashmap.html">hashmap</a>&lt;ExecutorID, <a class="code" href="classhashset.html">hashset&lt;TaskID&gt;</a>&gt;&amp; tasksToRecheckpoint);</div>
<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160;</div>
<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; <span class="comment">// Removes and garbage collects the executor.</span></div>
<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Slave.html#aa0a3ade2dde9dd762b30fb376497de35">removeExecutor</a>(<a class="code" href="structmesos_1_1internal_1_1slave_1_1Framework.html">Framework</a>* framework, <a class="code" href="structmesos_1_1internal_1_1slave_1_1Executor.html">Executor</a>* executor);</div>
<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160;</div>
<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; <span class="comment">// Removes and garbage collects the framework.</span></div>
<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; <span class="comment">// Made &#39;virtual&#39; for Slave mocking.</span></div>
<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Slave.html#a8c91e52205ed91adf20cee75cfcf43fe">removeFramework</a>(<a class="code" href="structmesos_1_1internal_1_1slave_1_1Framework.html">Framework</a>* framework);</div>
<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160;</div>
<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; <span class="comment">// Schedules a &#39;path&#39; for gc based on its modification time.</span></div>
<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; <a class="code" href="classprocess_1_1Future.html">process::Future&lt;Nothing&gt;</a> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Slave.html#a76f40f8c10951d9526cb63bcea66f5e5">garbageCollect</a>(<span class="keyword">const</span> std::string&amp; path);</div>
<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160;</div>
<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; <span class="comment">// Called when the slave was signaled from the specified user.</span></div>
<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Slave.html#ac738a6078b63c45cc4c6000f928cabad">signaled</a>(<span class="keywordtype">int</span> signal, <span class="keywordtype">int</span> <a class="code" href="namespaceos_1_1stat.html#ac2b3167963d5e471301e1ace772b67f6">uid</a>);</div>
<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160;</div>
<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; <span class="comment">// Made &#39;virtual&#39; for Slave mocking.</span></div>
<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Slave.html#aa0ad621d4e5a289f62e0309e129451d5">qosCorrections</a>();</div>
<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160;</div>
<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; <span class="comment">// Made &#39;virtual&#39; for Slave mocking.</span></div>
<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Slave.html#a10e4944e4e881bba067c34228679ef12">_qosCorrections</a>(</div>
<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; <span class="keyword">const</span> <a class="code" href="classprocess_1_1Future.html">process::Future</a>&lt;<a class="code" href="namespacecgroups_1_1devices.html#a22494291bc2cb89697dcd2b5f288bdd3">std::list</a>&lt;</div>
<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; mesos::slave::QoSCorrection&gt;&gt;&amp; correction);</div>
<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160;</div>
<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; <span class="comment">// Returns the resource usage information for all executors.</span></div>
<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classprocess_1_1Future.html">process::Future&lt;ResourceUsage&gt;</a> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Slave.html#a7c5612e80a880f00c74767e13bb068fd">usage</a>();</div>
<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160;</div>
<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; <span class="comment">// Handle the second phase of shutting down an executor for those</span></div>
<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; <span class="comment">// executors that have not properly shutdown within a timeout.</span></div>
<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Slave.html#ab3245d2b6f67136e7b1f523a09eb7de4">shutdownExecutorTimeout</a>(</div>
<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; <span class="keyword">const</span> FrameworkID&amp; frameworkId,</div>
<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; <span class="keyword">const</span> ExecutorID&amp; executorId,</div>
<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; <span class="keyword">const</span> ContainerID&amp; containerId);</div>
<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160;</div>
<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; <span class="keywordtype">void</span> _authenticate();</div>
<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; <span class="keywordtype">void</span> authenticationTimeout(<a class="code" href="classprocess_1_1Future.html">process::Future&lt;bool&gt;</a> future);</div>
<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160;</div>
<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; <span class="comment">// Shut down an executor. This is a two phase process. First, an</span></div>
<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; <span class="comment">// executor receives a shut down message (shut down phase), then</span></div>
<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; <span class="comment">// after a configurable timeout the slave actually forces a kill</span></div>
<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; <span class="comment">// (kill phase, via the isolator) if the executor has not</span></div>
<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; <span class="comment">// exited.</span></div>
<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; <span class="keywordtype">void</span> _shutdownExecutor(<a class="code" href="structmesos_1_1internal_1_1slave_1_1Framework.html">Framework</a>* framework, <a class="code" href="structmesos_1_1internal_1_1slave_1_1Executor.html">Executor</a>* executor);</div>
<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160;</div>
<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; <span class="comment">// Process creation of persistent volumes (for CREATE) and/or deletion</span></div>
<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; <span class="comment">// of persistent volumes (for DESTROY) as a part of handling</span></div>
<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; <span class="comment">// checkpointed resources, and commit the checkpointed resources on</span></div>
<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; <span class="comment">// successful completion of all the operations.</span></div>
<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; <a class="code" href="classTry.html">Try&lt;Nothing&gt;</a> syncCheckpointedResources(</div>
<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; <span class="keyword">const</span> <a class="code" href="classmesos_1_1Resources.html">Resources</a>&amp; newCheckpointedResources);</div>
<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160;</div>
<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; <a class="code" href="classprocess_1_1Future.html">process::Future&lt;bool&gt;</a> authorizeLogAccess(</div>
<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;process::http::authentication::Principal&gt;</a>&amp; principal);</div>
<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160;</div>
<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; <a class="code" href="classprocess_1_1Future.html">process::Future&lt;bool&gt;</a> authorizeSandboxAccess(</div>
<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;process::http::authentication::Principal&gt;</a>&amp; principal,</div>
<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; <span class="keyword">const</span> FrameworkID&amp; frameworkId,</div>
<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; <span class="keyword">const</span> ExecutorID&amp; executorId);</div>
<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160;</div>
<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; <span class="comment">// Inner class used to namespace HTTP route handlers (see</span></div>
<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; <span class="comment">// slave/http.cpp for implementations).</span></div>
<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; <span class="keyword">class </span>Http</div>
<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; {</div>
<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; <span class="keyword">explicit</span> Http(<a class="code" href="classmesos_1_1internal_1_1slave_1_1Slave.html">Slave</a>* _slave)</div>
<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; : slave(_slave),</div>
<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; statisticsLimiter(new <a class="code" href="namespaceos.html#ae19e4161a51b86a1f330f3bf1dc75389">process</a>::RateLimiter(2, <a class="code" href="classSeconds.html">Seconds</a>(1))) {}</div>
<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160;</div>
<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; <span class="comment">// Logs the request, route handlers can compose this with the</span></div>
<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; <span class="comment">// desired request handler to get consistent request logging.</span></div>
<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> log(<span class="keyword">const</span> <a class="code" href="structprocess_1_1http_1_1Request.html">process::http::Request</a>&amp; <a class="code" href="namespaceprocess_1_1http.html#ad8f400b5e54038df7e5662ec35da05fa">request</a>);</div>
<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160;</div>
<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; <span class="comment">// /api/v1</span></div>
<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; <a class="code" href="classprocess_1_1Future.html">process::Future&lt;process::http::Response&gt;</a> api(</div>
<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; <span class="keyword">const</span> <a class="code" href="structprocess_1_1http_1_1Request.html">process::http::Request</a>&amp; <a class="code" href="namespaceprocess_1_1http.html#ad8f400b5e54038df7e5662ec35da05fa">request</a>,</div>
<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;process::http::authentication::Principal&gt;</a>&amp;</div>
<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; principal) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160;</div>
<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; <span class="comment">// /api/v1/executor</span></div>
<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; <a class="code" href="classprocess_1_1Future.html">process::Future&lt;process::http::Response&gt;</a> executor(</div>
<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; <span class="keyword">const</span> <a class="code" href="structprocess_1_1http_1_1Request.html">process::http::Request</a>&amp; <a class="code" href="namespaceprocess_1_1http.html#ad8f400b5e54038df7e5662ec35da05fa">request</a>) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160;</div>
<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; <span class="comment">// /slave/flags</span></div>
<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; <a class="code" href="classprocess_1_1Future.html">process::Future&lt;process::http::Response&gt;</a> flags(</div>
<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; <span class="keyword">const</span> <a class="code" href="structprocess_1_1http_1_1Request.html">process::http::Request</a>&amp; <a class="code" href="namespaceprocess_1_1http.html#ad8f400b5e54038df7e5662ec35da05fa">request</a>,</div>
<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;process::http::authentication::Principal&gt;</a>&amp;</div>
<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; principal) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160;</div>
<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; <span class="comment">// /slave/health</span></div>
<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; <a class="code" href="classprocess_1_1Future.html">process::Future&lt;process::http::Response&gt;</a> health(</div>
<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; <span class="keyword">const</span> <a class="code" href="structprocess_1_1http_1_1Request.html">process::http::Request</a>&amp; <a class="code" href="namespaceprocess_1_1http.html#ad8f400b5e54038df7e5662ec35da05fa">request</a>) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160;</div>
<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; <span class="comment">// /slave/state</span></div>
<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; <a class="code" href="classprocess_1_1Future.html">process::Future&lt;process::http::Response&gt;</a> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Slave.html#af79c3eb007e12f37faec4a24d1f95cc4">state</a>(</div>
<div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; <span class="keyword">const</span> <a class="code" href="structprocess_1_1http_1_1Request.html">process::http::Request</a>&amp; <a class="code" href="namespaceprocess_1_1http.html#ad8f400b5e54038df7e5662ec35da05fa">request</a>,</div>
<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;process::http::authentication::Principal&gt;</a>&amp;)</div>
<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; <span class="keyword">const</span>;</div>
<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160;</div>
<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; <span class="comment">// /slave/monitor/statistics</span></div>
<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; <span class="comment">// /slave/monitor/statistics.json</span></div>
<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; <a class="code" href="classprocess_1_1Future.html">process::Future&lt;process::http::Response&gt;</a> <a class="code" href="namespacerouting_1_1link.html#a8486fce953717fcb949bfdc17a2dd3e1">statistics</a>(</div>
<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; <span class="keyword">const</span> <a class="code" href="structprocess_1_1http_1_1Request.html">process::http::Request</a>&amp; <a class="code" href="namespaceprocess_1_1http.html#ad8f400b5e54038df7e5662ec35da05fa">request</a>,</div>
<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;process::http::authentication::Principal&gt;</a>&amp;</div>
<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; principal) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160;</div>
<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160; <span class="comment">// /slave/containers</span></div>
<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; <a class="code" href="classprocess_1_1Future.html">process::Future&lt;process::http::Response&gt;</a> containers(</div>
<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; <span class="keyword">const</span> <a class="code" href="structprocess_1_1http_1_1Request.html">process::http::Request</a>&amp; <a class="code" href="namespaceprocess_1_1http.html#ad8f400b5e54038df7e5662ec35da05fa">request</a>,</div>
<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;process::http::authentication::Principal&gt;</a>&amp;</div>
<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; principal) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160;</div>
<div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; <span class="keyword">static</span> std::string API_HELP();</div>
<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; <span class="keyword">static</span> std::string EXECUTOR_HELP();</div>
<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; <span class="keyword">static</span> std::string FLAGS_HELP();</div>
<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; <span class="keyword">static</span> std::string HEALTH_HELP();</div>
<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; <span class="keyword">static</span> std::string STATE_HELP();</div>
<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; <span class="keyword">static</span> std::string STATISTICS_HELP();</div>
<div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; <span class="keyword">static</span> std::string CONTAINERS_HELP();</div>
<div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160;</div>
<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160; <span class="keyword">private</span>:</div>
<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; <a class="code" href="structJSON_1_1Object.html">JSON::Object</a> _flags() <span class="keyword">const</span>;</div>
<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160;</div>
<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; <span class="comment">// Continuation for `/api` endpoint that handles streaming and non-streaming</span></div>
<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; <span class="comment">// requests. In case of a streaming request, `call` would be the first</span></div>
<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160; <span class="comment">// record and additional records can be read using the `reader`. For</span></div>
<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; <span class="comment">// non-streaming requests, `reader` would be set to `None()`.</span></div>
<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; <a class="code" href="classprocess_1_1Future.html">process::Future&lt;process::http::Response&gt;</a> _api(</div>
<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacemesos_1_1internal_1_1tests_1_1v1_1_1scheduler.html#acb18ceaa5f6f2338f2a9727af398eb79">agent::Call</a>&amp; call,</div>
<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; <a class="code" href="classOption.html">Option</a>&lt;<a class="code" href="classprocess_1_1Owned.html">process::Owned</a>&lt;<a class="code" href="classmesos_1_1internal_1_1recordio_1_1Reader.html">recordio::Reader&lt;agent::Call&gt;</a>&gt;&gt;&amp;&amp; reader,</div>
<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; <span class="keyword">const</span> <a class="code" href="structmesos_1_1internal_1_1RequestMediaTypes.html">RequestMediaTypes</a>&amp; mediaTypes,</div>
<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;process::http::authentication::Principal&gt;</a>&amp;</div>
<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; principal) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160;</div>
<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; <span class="comment">// Make continuation for `statistics` `static` as it might</span></div>
<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; <span class="comment">// execute when the invoking `Http` is already destructed.</span></div>
<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; <a class="code" href="structprocess_1_1http_1_1Response.html">process::http::Response</a> _statistics(</div>
<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160; <span class="keyword">const</span> ResourceUsage&amp; usage,</div>
<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160; <span class="keyword">const</span> <a class="code" href="structprocess_1_1http_1_1Request.html">process::http::Request</a>&amp; <a class="code" href="namespaceprocess_1_1http.html#ad8f400b5e54038df7e5662ec35da05fa">request</a>) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160;</div>
<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; <span class="comment">// Continuation for `/containers` endpoint</span></div>
<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; <a class="code" href="classprocess_1_1Future.html">process::Future&lt;process::http::Response&gt;</a> _containers(</div>
<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160; <span class="keyword">const</span> <a class="code" href="structprocess_1_1http_1_1Request.html">process::http::Request</a>&amp; <a class="code" href="namespaceprocess_1_1http.html#ad8f400b5e54038df7e5662ec35da05fa">request</a>,</div>
<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;process::http::authentication::Principal&gt;</a>&amp;</div>
<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; principal) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160;</div>
<div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; <span class="comment">// Helper function to collect containers status and resource statistics.</span></div>
<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; <a class="code" href="classprocess_1_1Future.html">process::Future&lt;JSON::Array&gt;</a> __containers(</div>
<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; <a class="code" href="classOption.html">Option</a>&lt;<a class="code" href="classprocess_1_1Owned.html">process::Owned&lt;ObjectApprover&gt;</a>&gt; approver) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160;</div>
<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; <span class="comment">// Helper routines for endpoint authorization.</span></div>
<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160; <a class="code" href="classTry.html">Try&lt;std::string&gt;</a> extractEndpoint(<span class="keyword">const</span> <a class="code" href="structprocess_1_1http_1_1URL.html">process::http::URL</a>&amp; url) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160;</div>
<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; <span class="comment">// Agent API handlers.</span></div>
<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160;</div>
<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; <a class="code" href="classprocess_1_1Future.html">process::Future&lt;process::http::Response&gt;</a> getFlags(</div>
<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacemesos_1_1internal_1_1tests_1_1v1_1_1scheduler.html#acb18ceaa5f6f2338f2a9727af398eb79">mesos::agent::Call</a>&amp; call,</div>
<div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160; <a class="code" href="namespacemesos.html#a13035ce0cc66cca4a467787b4716039e">ContentType</a> acceptType,</div>
<div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160; <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;process::http::authentication::Principal&gt;</a>&amp;</div>
<div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160; principal) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160;</div>
<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; <a class="code" href="classprocess_1_1Future.html">process::Future&lt;process::http::Response&gt;</a> getHealth(</div>
<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacemesos_1_1internal_1_1tests_1_1v1_1_1scheduler.html#acb18ceaa5f6f2338f2a9727af398eb79">mesos::agent::Call</a>&amp; call,</div>
<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; <a class="code" href="namespacemesos.html#a13035ce0cc66cca4a467787b4716039e">ContentType</a> acceptType,</div>
<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;process::http::authentication::Principal&gt;</a>&amp;</div>
<div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; principal) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160;</div>
<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; <a class="code" href="classprocess_1_1Future.html">process::Future&lt;process::http::Response&gt;</a> getVersion(</div>
<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacemesos_1_1internal_1_1tests_1_1v1_1_1scheduler.html#acb18ceaa5f6f2338f2a9727af398eb79">mesos::agent::Call</a>&amp; call,</div>
<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; <a class="code" href="namespacemesos.html#a13035ce0cc66cca4a467787b4716039e">ContentType</a> acceptType,</div>
<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160; <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;process::http::authentication::Principal&gt;</a>&amp;</div>
<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; principal) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160;</div>
<div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160; <a class="code" href="classprocess_1_1Future.html">process::Future&lt;process::http::Response&gt;</a> getMetrics(</div>
<div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacemesos_1_1internal_1_1tests_1_1v1_1_1scheduler.html#acb18ceaa5f6f2338f2a9727af398eb79">mesos::agent::Call</a>&amp; call,</div>
<div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160; <a class="code" href="namespacemesos.html#a13035ce0cc66cca4a467787b4716039e">ContentType</a> acceptType,</div>
<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160; <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;process::http::authentication::Principal&gt;</a>&amp;</div>
<div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160; principal) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160;</div>
<div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160; <a class="code" href="classprocess_1_1Future.html">process::Future&lt;process::http::Response&gt;</a> getLoggingLevel(</div>
<div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacemesos_1_1internal_1_1tests_1_1v1_1_1scheduler.html#acb18ceaa5f6f2338f2a9727af398eb79">mesos::agent::Call</a>&amp; call,</div>
<div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160; <a class="code" href="namespacemesos.html#a13035ce0cc66cca4a467787b4716039e">ContentType</a> acceptType,</div>
<div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160; <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;process::http::authentication::Principal&gt;</a>&amp;</div>
<div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160; principal) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160;</div>
<div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160; <a class="code" href="classprocess_1_1Future.html">process::Future&lt;process::http::Response&gt;</a> setLoggingLevel(</div>
<div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacemesos_1_1internal_1_1tests_1_1v1_1_1scheduler.html#acb18ceaa5f6f2338f2a9727af398eb79">mesos::agent::Call</a>&amp; call,</div>
<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160; <a class="code" href="namespacemesos.html#a13035ce0cc66cca4a467787b4716039e">ContentType</a> acceptType,</div>
<div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160; <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;process::http::authentication::Principal&gt;</a>&amp;</div>
<div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160; principal) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160;</div>
<div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160; <a class="code" href="classprocess_1_1Future.html">process::Future&lt;process::http::Response&gt;</a> listFiles(</div>
<div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacemesos_1_1internal_1_1tests_1_1v1_1_1scheduler.html#acb18ceaa5f6f2338f2a9727af398eb79">mesos::agent::Call</a>&amp; call,</div>
<div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160; <a class="code" href="namespacemesos.html#a13035ce0cc66cca4a467787b4716039e">ContentType</a> acceptType,</div>
<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160; <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;process::http::authentication::Principal&gt;</a>&amp;</div>
<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160; principal) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160;</div>
<div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160; <a class="code" href="classprocess_1_1Future.html">process::Future&lt;process::http::Response&gt;</a> getContainers(</div>
<div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacemesos_1_1internal_1_1tests_1_1v1_1_1scheduler.html#acb18ceaa5f6f2338f2a9727af398eb79">mesos::agent::Call</a>&amp; call,</div>
<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160; <a class="code" href="namespacemesos.html#a13035ce0cc66cca4a467787b4716039e">ContentType</a> acceptType,</div>
<div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160; <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;process::http::authentication::Principal&gt;</a>&amp;</div>
<div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160; principal) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160;</div>
<div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160; <a class="code" href="classprocess_1_1Future.html">process::Future&lt;process::http::Response&gt;</a> readFile(</div>
<div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacemesos_1_1internal_1_1tests_1_1v1_1_1scheduler.html#acb18ceaa5f6f2338f2a9727af398eb79">mesos::agent::Call</a>&amp; call,</div>
<div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160; <a class="code" href="namespacemesos.html#a13035ce0cc66cca4a467787b4716039e">ContentType</a> acceptType,</div>
<div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160; <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;process::http::authentication::Principal&gt;</a>&amp;</div>
<div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160; principal) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160;</div>
<div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160; <a class="code" href="classprocess_1_1Future.html">process::Future&lt;process::http::Response&gt;</a> getFrameworks(</div>
<div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacemesos_1_1internal_1_1tests_1_1v1_1_1scheduler.html#acb18ceaa5f6f2338f2a9727af398eb79">mesos::agent::Call</a>&amp; call,</div>
<div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160; <a class="code" href="namespacemesos.html#a13035ce0cc66cca4a467787b4716039e">ContentType</a> acceptType,</div>
<div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160; <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;process::http::authentication::Principal&gt;</a>&amp;</div>
<div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160; principal) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160;</div>
<div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160; mesos::agent::Response::GetFrameworks _getFrameworks(</div>
<div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160; <span class="keyword">const</span> <a class="code" href="classprocess_1_1Owned.html">process::Owned&lt;ObjectApprover&gt;</a>&amp; frameworksApprover) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160;</div>
<div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160; <a class="code" href="classprocess_1_1Future.html">process::Future&lt;process::http::Response&gt;</a> getExecutors(</div>
<div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacemesos_1_1internal_1_1tests_1_1v1_1_1scheduler.html#acb18ceaa5f6f2338f2a9727af398eb79">mesos::agent::Call</a>&amp; call,</div>
<div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160; <a class="code" href="namespacemesos.html#a13035ce0cc66cca4a467787b4716039e">ContentType</a> acceptType,</div>
<div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160; <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;process::http::authentication::Principal&gt;</a>&amp;</div>
<div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160; principal) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160;</div>
<div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160; mesos::agent::Response::GetExecutors _getExecutors(</div>
<div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160; <span class="keyword">const</span> <a class="code" href="classprocess_1_1Owned.html">process::Owned&lt;ObjectApprover&gt;</a>&amp; frameworksApprover,</div>
<div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160; <span class="keyword">const</span> <a class="code" href="classprocess_1_1Owned.html">process::Owned&lt;ObjectApprover&gt;</a>&amp; executorsApprover) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160;</div>
<div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160; <a class="code" href="classprocess_1_1Future.html">process::Future&lt;process::http::Response&gt;</a> getTasks(</div>
<div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacemesos_1_1internal_1_1tests_1_1v1_1_1scheduler.html#acb18ceaa5f6f2338f2a9727af398eb79">mesos::agent::Call</a>&amp; call,</div>
<div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160; <a class="code" href="namespacemesos.html#a13035ce0cc66cca4a467787b4716039e">ContentType</a> acceptType,</div>
<div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160; <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;process::http::authentication::Principal&gt;</a>&amp;</div>
<div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160; principal) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160;</div>
<div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160; mesos::agent::Response::GetTasks _getTasks(</div>
<div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160; <span class="keyword">const</span> <a class="code" href="classprocess_1_1Owned.html">process::Owned&lt;ObjectApprover&gt;</a>&amp; frameworksApprover,</div>
<div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160; <span class="keyword">const</span> <a class="code" href="classprocess_1_1Owned.html">process::Owned&lt;ObjectApprover&gt;</a>&amp; tasksApprover,</div>
<div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160; <span class="keyword">const</span> <a class="code" href="classprocess_1_1Owned.html">process::Owned&lt;ObjectApprover&gt;</a>&amp; executorsApprover) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160;</div>
<div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160; <a class="code" href="classprocess_1_1Future.html">process::Future&lt;process::http::Response&gt;</a> getAgent(</div>
<div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacemesos_1_1internal_1_1tests_1_1v1_1_1scheduler.html#acb18ceaa5f6f2338f2a9727af398eb79">mesos::agent::Call</a>&amp; call,</div>
<div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160; <a class="code" href="namespacemesos.html#a13035ce0cc66cca4a467787b4716039e">ContentType</a> acceptType,</div>
<div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160; <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;process::http::authentication::Principal&gt;</a>&amp;</div>
<div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160; principal) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160;</div>
<div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160; <a class="code" href="classprocess_1_1Future.html">process::Future&lt;process::http::Response&gt;</a> getState(</div>
<div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacemesos_1_1internal_1_1tests_1_1v1_1_1scheduler.html#acb18ceaa5f6f2338f2a9727af398eb79">mesos::agent::Call</a>&amp; call,</div>
<div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160; <a class="code" href="namespacemesos.html#a13035ce0cc66cca4a467787b4716039e">ContentType</a> acceptType,</div>
<div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160; <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;process::http::authentication::Principal&gt;</a>&amp;</div>
<div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160; principal) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160;</div>
<div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160; mesos::agent::Response::GetState _getState(</div>
<div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160; <span class="keyword">const</span> <a class="code" href="classprocess_1_1Owned.html">process::Owned&lt;ObjectApprover&gt;</a>&amp; frameworksApprover,</div>
<div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160; <span class="keyword">const</span> <a class="code" href="classprocess_1_1Owned.html">process::Owned&lt;ObjectApprover&gt;</a>&amp; taskApprover,</div>
<div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160; <span class="keyword">const</span> <a class="code" href="classprocess_1_1Owned.html">process::Owned&lt;ObjectApprover&gt;</a>&amp; executorsApprover) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160;</div>
<div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160; <a class="code" href="classprocess_1_1Future.html">process::Future&lt;process::http::Response&gt;</a> launchNestedContainer(</div>
<div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacemesos_1_1internal_1_1tests_1_1v1_1_1scheduler.html#acb18ceaa5f6f2338f2a9727af398eb79">mesos::agent::Call</a>&amp; call,</div>
<div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160; <a class="code" href="namespacemesos.html#a13035ce0cc66cca4a467787b4716039e">ContentType</a> acceptType,</div>
<div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160; <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;process::http::authentication::Principal&gt;</a>&amp;</div>
<div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160; principal) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160;</div>
<div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160; <a class="code" href="classprocess_1_1Future.html">process::Future&lt;process::http::Response&gt;</a> _launchNestedContainer(</div>
<div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160; <span class="keyword">const</span> ContainerID&amp; containerId,</div>
<div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160; <span class="keyword">const</span> CommandInfo&amp; commandInfo,</div>
<div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160; <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;ContainerInfo&gt;</a>&amp; containerInfo,</div>
<div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160; <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;mesos::slave::ContainerClass&gt;</a>&amp; containerClass,</div>
<div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160; <a class="code" href="namespacemesos.html#a13035ce0cc66cca4a467787b4716039e">ContentType</a> acceptType,</div>
<div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160; <span class="keyword">const</span> <a class="code" href="classprocess_1_1Owned.html">process::Owned&lt;ObjectApprover&gt;</a>&amp; approver) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160;</div>
<div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160; <a class="code" href="classprocess_1_1Future.html">process::Future&lt;process::http::Response&gt;</a> waitNestedContainer(</div>
<div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacemesos_1_1internal_1_1tests_1_1v1_1_1scheduler.html#acb18ceaa5f6f2338f2a9727af398eb79">mesos::agent::Call</a>&amp; call,</div>
<div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160; <a class="code" href="namespacemesos.html#a13035ce0cc66cca4a467787b4716039e">ContentType</a> acceptType,</div>
<div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160; <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;process::http::authentication::Principal&gt;</a>&amp;</div>
<div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160; principal) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160;</div>
<div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160; <a class="code" href="classprocess_1_1Future.html">process::Future&lt;process::http::Response&gt;</a> killNestedContainer(</div>
<div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacemesos_1_1internal_1_1tests_1_1v1_1_1scheduler.html#acb18ceaa5f6f2338f2a9727af398eb79">mesos::agent::Call</a>&amp; call,</div>
<div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160; <a class="code" href="namespacemesos.html#a13035ce0cc66cca4a467787b4716039e">ContentType</a> acceptType,</div>
<div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160; <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;process::http::authentication::Principal&gt;</a>&amp;</div>
<div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160; principal) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160;</div>
<div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160; <a class="code" href="classprocess_1_1Future.html">process::Future&lt;process::http::Response&gt;</a> launchNestedContainerSession(</div>
<div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacemesos_1_1internal_1_1tests_1_1v1_1_1scheduler.html#acb18ceaa5f6f2338f2a9727af398eb79">mesos::agent::Call</a>&amp; call,</div>
<div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160; <span class="keyword">const</span> <a class="code" href="structmesos_1_1internal_1_1RequestMediaTypes.html">RequestMediaTypes</a>&amp; mediaTypes,</div>
<div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160; <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;process::http::authentication::Principal&gt;</a>&amp;</div>
<div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160; principal) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160;</div>
<div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160; <a class="code" href="classprocess_1_1Future.html">process::Future&lt;process::http::Response&gt;</a> attachContainerInput(</div>
<div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacemesos_1_1internal_1_1tests_1_1v1_1_1scheduler.html#acb18ceaa5f6f2338f2a9727af398eb79">mesos::agent::Call</a>&amp; call,</div>
<div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160; <a class="code" href="classprocess_1_1Owned.html">process::Owned</a>&lt;<a class="code" href="classmesos_1_1internal_1_1recordio_1_1Reader.html">recordio::Reader&lt;agent::Call&gt;</a>&gt;&amp;&amp; decoder,</div>
<div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160; <span class="keyword">const</span> <a class="code" href="structmesos_1_1internal_1_1RequestMediaTypes.html">RequestMediaTypes</a>&amp; mediaTypes,</div>
<div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160; <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;process::http::authentication::Principal&gt;</a>&amp;</div>
<div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160; principal) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160;</div>
<div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160; <a class="code" href="classprocess_1_1Future.html">process::Future&lt;process::http::Response&gt;</a> _attachContainerInput(</div>
<div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacemesos_1_1internal_1_1tests_1_1v1_1_1scheduler.html#acb18ceaa5f6f2338f2a9727af398eb79">mesos::agent::Call</a>&amp; call,</div>
<div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160; <a class="code" href="classprocess_1_1Owned.html">process::Owned</a>&lt;<a class="code" href="classmesos_1_1internal_1_1recordio_1_1Reader.html">recordio::Reader&lt;agent::Call&gt;</a>&gt;&amp;&amp; decoder,</div>
<div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160; <span class="keyword">const</span> <a class="code" href="structmesos_1_1internal_1_1RequestMediaTypes.html">RequestMediaTypes</a>&amp; mediaTypes) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160;</div>
<div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160; <a class="code" href="classprocess_1_1Future.html">process::Future&lt;process::http::Response&gt;</a> attachContainerOutput(</div>
<div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacemesos_1_1internal_1_1tests_1_1v1_1_1scheduler.html#acb18ceaa5f6f2338f2a9727af398eb79">mesos::agent::Call</a>&amp; call,</div>
<div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160; <span class="keyword">const</span> <a class="code" href="structmesos_1_1internal_1_1RequestMediaTypes.html">RequestMediaTypes</a>&amp; mediaTypes,</div>
<div class="line"><a name="l00719"></a><span class="lineno"> 719</span>&#160; <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;process::http::authentication::Principal&gt;</a>&amp;</div>
<div class="line"><a name="l00720"></a><span class="lineno"> 720</span>&#160; principal) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00721"></a><span class="lineno"> 721</span>&#160;</div>
<div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160; <a class="code" href="classprocess_1_1Future.html">process::Future&lt;process::http::Response&gt;</a> _attachContainerOutput(</div>
<div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacemesos_1_1internal_1_1tests_1_1v1_1_1scheduler.html#acb18ceaa5f6f2338f2a9727af398eb79">mesos::agent::Call</a>&amp; call,</div>
<div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160; <span class="keyword">const</span> <a class="code" href="structmesos_1_1internal_1_1RequestMediaTypes.html">RequestMediaTypes</a>&amp; mediaTypes) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160;</div>
<div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160; <a class="code" href="classmesos_1_1internal_1_1slave_1_1Slave.html">Slave</a>* slave;</div>
<div class="line"><a name="l00727"></a><span class="lineno"> 727</span>&#160;</div>
<div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160; <span class="comment">// Used to rate limit the statistics endpoint.</span></div>
<div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160; <a class="code" href="classprocess_1_1Shared.html">process::Shared&lt;process::RateLimiter&gt;</a> statisticsLimiter;</div>
<div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160; };</div>
<div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160;</div>
<div class="line"><a name="l00732"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Slave.html#a1008e9c26376c5e8fbfeba1f81dda54e"> 732</a></span>&#160; <span class="keyword">friend</span> <span class="keyword">struct </span><a class="code" href="structmesos_1_1internal_1_1slave_1_1Framework.html">Framework</a>;</div>
<div class="line"><a name="l00733"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Slave.html#abde1658ded2ac75f5466b223e73135d9"> 733</a></span>&#160; <span class="keyword">friend</span> <span class="keyword">struct </span><a class="code" href="structmesos_1_1internal_1_1slave_1_1Executor.html">Executor</a>;</div>
<div class="line"><a name="l00734"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Slave.html#a33768639ed69e6812b805bd70b29bf35"> 734</a></span>&#160; <span class="keyword">friend</span> <span class="keyword">struct </span><a class="code" href="structmesos_1_1internal_1_1slave_1_1Metrics.html">Metrics</a>;</div>
<div class="line"><a name="l00735"></a><span class="lineno"> 735</span>&#160;</div>
<div class="line"><a name="l00736"></a><span class="lineno"> 736</span>&#160; <a class="code" href="classmesos_1_1internal_1_1slave_1_1Slave.html#ad0e96504544270343dadd39350e7a96e">Slave</a>(<span class="keyword">const</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Slave.html">Slave</a>&amp;); <span class="comment">// No copying.</span></div>
<div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160; <a class="code" href="classmesos_1_1internal_1_1slave_1_1Slave.html">Slave</a>&amp; operator=(<span class="keyword">const</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Slave.html">Slave</a>&amp;); <span class="comment">// No assigning.</span></div>
<div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160;</div>
<div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160; <span class="comment">// Gauge methods.</span></div>
<div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160; <span class="keywordtype">double</span> _frameworks_active()</div>
<div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160; {</div>
<div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160; <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span><span class="keywordtype">double</span><span class="keyword">&gt;</span>(frameworks.size());</div>
<div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160; }</div>
<div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160;</div>
<div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160; <span class="keywordtype">double</span> _uptime_secs()</div>
<div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160; {</div>
<div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160; <span class="keywordflow">return</span> (<a class="code" href="classprocess_1_1Clock.html#a24ed3f746bb6b3ddb1c52dce5e0ecd38">process::Clock::now</a>() - startTime).secs();</div>
<div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160; }</div>
<div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160;</div>
<div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160; <span class="keywordtype">double</span> _registered()</div>
<div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160; {</div>
<div class="line"><a name="l00752"></a><span class="lineno"> 752</span>&#160; <span class="keywordflow">return</span> master.<a class="code" href="classOption.html#a4e3bf8416d95246f43c91f1b5c309323">isSome</a>() ? 1 : 0;</div>
<div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160; }</div>
<div class="line"><a name="l00754"></a><span class="lineno"> 754</span>&#160;</div>
<div class="line"><a name="l00755"></a><span class="lineno"> 755</span>&#160; <span class="keywordtype">double</span> _tasks_staging();</div>
<div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160; <span class="keywordtype">double</span> _tasks_starting();</div>
<div class="line"><a name="l00757"></a><span class="lineno"> 757</span>&#160; <span class="keywordtype">double</span> _tasks_running();</div>
<div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160; <span class="keywordtype">double</span> _tasks_killing();</div>
<div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160;</div>
<div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160; <span class="keywordtype">double</span> _executors_registering();</div>
<div class="line"><a name="l00761"></a><span class="lineno"> 761</span>&#160; <span class="keywordtype">double</span> _executors_running();</div>
<div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160; <span class="keywordtype">double</span> _executors_terminating();</div>
<div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160;</div>
<div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160; <span class="keywordtype">double</span> _executor_directory_max_allowed_age_secs();</div>
<div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160;</div>
<div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160; <span class="keywordtype">void</span> sendExecutorTerminatedStatusUpdate(</div>
<div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160; <span class="keyword">const</span> TaskID&amp; taskId,</div>
<div class="line"><a name="l00768"></a><span class="lineno"> 768</span>&#160; <span class="keyword">const</span> <a class="code" href="classprocess_1_1Future.html">process::Future</a>&lt;<a class="code" href="classOption.html">Option</a>&lt;</div>
<div class="line"><a name="l00769"></a><span class="lineno"> 769</span>&#160; mesos::slave::ContainerTermination&gt;&gt;&amp; termination,</div>
<div class="line"><a name="l00770"></a><span class="lineno"> 770</span>&#160; <span class="keyword">const</span> FrameworkID&amp; frameworkId,</div>
<div class="line"><a name="l00771"></a><span class="lineno"> 771</span>&#160; <span class="keyword">const</span> <a class="code" href="classmesos_1_1Executor.html">Executor</a>* executor);</div>
<div class="line"><a name="l00772"></a><span class="lineno"> 772</span>&#160;</div>
<div class="line"><a name="l00773"></a><span class="lineno"> 773</span>&#160; <span class="comment">// Forwards the current total of oversubscribed resources.</span></div>
<div class="line"><a name="l00774"></a><span class="lineno"> 774</span>&#160; <span class="keywordtype">void</span> forwardOversubscribed();</div>
<div class="line"><a name="l00775"></a><span class="lineno"> 775</span>&#160; <span class="keywordtype">void</span> _forwardOversubscribed(</div>
<div class="line"><a name="l00776"></a><span class="lineno"> 776</span>&#160; <span class="keyword">const</span> <a class="code" href="classprocess_1_1Future.html">process::Future&lt;Resources&gt;</a>&amp; oversubscribable);</div>
<div class="line"><a name="l00777"></a><span class="lineno"> 777</span>&#160;</div>
<div class="line"><a name="l00778"></a><span class="lineno"> 778</span>&#160; <span class="keyword">const</span> Flags <a class="code" href="namespacemesos_1_1internal_1_1tests.html#af8289f648a916c3f66923867452c7b1b">flags</a>;</div>
<div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160;</div>
<div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160; <span class="keyword">const</span> Http <a class="code" href="namespacemesos_1_1uri.html#a5dff7c4a2df7be12fb642b5801c34f9f">http</a>;</div>
<div class="line"><a name="l00781"></a><span class="lineno"> 781</span>&#160;</div>
<div class="line"><a name="l00782"></a><span class="lineno"> 782</span>&#160; SlaveInfo info;</div>
<div class="line"><a name="l00783"></a><span class="lineno"> 783</span>&#160;</div>
<div class="line"><a name="l00784"></a><span class="lineno"> 784</span>&#160; <span class="comment">// Resources that are checkpointed by the slave.</span></div>
<div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160; <a class="code" href="classmesos_1_1Resources.html">Resources</a> checkpointedResources;</div>
<div class="line"><a name="l00786"></a><span class="lineno"> 786</span>&#160;</div>
<div class="line"><a name="l00787"></a><span class="lineno"> 787</span>&#160; <span class="comment">// The current total resources of the agent, i.e.,</span></div>
<div class="line"><a name="l00788"></a><span class="lineno"> 788</span>&#160; <span class="comment">// `info.resources()` with checkpointed resources applied.</span></div>
<div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160; <a class="code" href="classmesos_1_1Resources.html">Resources</a> totalResources;</div>
<div class="line"><a name="l00790"></a><span class="lineno"> 790</span>&#160;</div>
<div class="line"><a name="l00791"></a><span class="lineno"> 791</span>&#160; <a class="code" href="classOption.html">Option&lt;process::UPID&gt;</a> master;</div>
<div class="line"><a name="l00792"></a><span class="lineno"> 792</span>&#160;</div>
<div class="line"><a name="l00793"></a><span class="lineno"> 793</span>&#160; <a class="code" href="classhashmap.html">hashmap&lt;FrameworkID, Framework*&gt;</a> frameworks;</div>
<div class="line"><a name="l00794"></a><span class="lineno"> 794</span>&#160;</div>
<div class="line"><a name="l00795"></a><span class="lineno"> 795</span>&#160; <a class="code" href="classBoundedHashMap.html">BoundedHashMap&lt;FrameworkID, process::Owned&lt;Framework&gt;</a>&gt; completedFrameworks;</div>
<div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160;</div>
<div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160; <a class="code" href="classmesos_1_1master_1_1detector_1_1MasterDetector.html">mesos::master::detector::MasterDetector</a>* detector;</div>
<div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160;</div>
<div class="line"><a name="l00799"></a><span class="lineno"> 799</span>&#160; Containerizer* containerizer;</div>
<div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160;</div>
<div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160; Files* files;</div>
<div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160;</div>
<div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160; <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="l00804"></a><span class="lineno"> 804</span>&#160;</div>
<div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160; <span class="keywordtype">double</span> _resources_total(<span class="keyword">const</span> std::string&amp; <a class="code" href="namespaceos_1_1Shell.html#acfe16ef2b1146ad49a8651c0a457ce46">name</a>);</div>
<div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160; <span class="keywordtype">double</span> _resources_used(<span class="keyword">const</span> std::string&amp; <a class="code" href="namespaceos_1_1Shell.html#acfe16ef2b1146ad49a8651c0a457ce46">name</a>);</div>
<div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160; <span class="keywordtype">double</span> _resources_percent(<span class="keyword">const</span> std::string&amp; <a class="code" href="namespaceos_1_1Shell.html#acfe16ef2b1146ad49a8651c0a457ce46">name</a>);</div>
<div class="line"><a name="l00808"></a><span class="lineno"> 808</span>&#160;</div>
<div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160; <span class="keywordtype">double</span> _resources_revocable_total(<span class="keyword">const</span> std::string&amp; <a class="code" href="namespaceos_1_1Shell.html#acfe16ef2b1146ad49a8651c0a457ce46">name</a>);</div>
<div class="line"><a name="l00810"></a><span class="lineno"> 810</span>&#160; <span class="keywordtype">double</span> _resources_revocable_used(<span class="keyword">const</span> std::string&amp; <a class="code" href="namespaceos_1_1Shell.html#acfe16ef2b1146ad49a8651c0a457ce46">name</a>);</div>
<div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160; <span class="keywordtype">double</span> _resources_revocable_percent(<span class="keyword">const</span> std::string&amp; <a class="code" href="namespaceos_1_1Shell.html#acfe16ef2b1146ad49a8651c0a457ce46">name</a>);</div>
<div class="line"><a name="l00812"></a><span class="lineno"> 812</span>&#160;</div>
<div class="line"><a name="l00813"></a><span class="lineno"> 813</span>&#160; <a class="code" href="classprocess_1_1Time.html">process::Time</a> startTime;</div>
<div class="line"><a name="l00814"></a><span class="lineno"> 814</span>&#160;</div>
<div class="line"><a name="l00815"></a><span class="lineno"> 815</span>&#160; GarbageCollector* gc;</div>
<div class="line"><a name="l00816"></a><span class="lineno"> 816</span>&#160;</div>
<div class="line"><a name="l00817"></a><span class="lineno"> 817</span>&#160; StatusUpdateManager* statusUpdateManager;</div>
<div class="line"><a name="l00818"></a><span class="lineno"> 818</span>&#160;</div>
<div class="line"><a name="l00819"></a><span class="lineno"> 819</span>&#160; <span class="comment">// Master detection future.</span></div>
<div class="line"><a name="l00820"></a><span class="lineno"> 820</span>&#160; <a class="code" href="classprocess_1_1Future.html">process::Future&lt;Option&lt;MasterInfo&gt;</a>&gt; detection;</div>
<div class="line"><a name="l00821"></a><span class="lineno"> 821</span>&#160;</div>
<div class="line"><a name="l00822"></a><span class="lineno"> 822</span>&#160; <span class="comment">// Master&#39;s ping timeout value, updated on reregistration.</span></div>
<div class="line"><a name="l00823"></a><span class="lineno"> 823</span>&#160; <a class="code" href="classDuration.html">Duration</a> masterPingTimeout;</div>
<div class="line"><a name="l00824"></a><span class="lineno"> 824</span>&#160;</div>
<div class="line"><a name="l00825"></a><span class="lineno"> 825</span>&#160; <span class="comment">// Timer for triggering re-detection when no ping is received from</span></div>
<div class="line"><a name="l00826"></a><span class="lineno"> 826</span>&#160; <span class="comment">// the master.</span></div>
<div class="line"><a name="l00827"></a><span class="lineno"> 827</span>&#160; <a class="code" href="classprocess_1_1Timer.html">process::Timer</a> pingTimer;</div>
<div class="line"><a name="l00828"></a><span class="lineno"> 828</span>&#160;</div>
<div class="line"><a name="l00829"></a><span class="lineno"> 829</span>&#160; <span class="comment">// Timer for triggering agent (re)registration after detecting a new master.</span></div>
<div class="line"><a name="l00830"></a><span class="lineno"> 830</span>&#160; <a class="code" href="classprocess_1_1Timer.html">process::Timer</a> agentRegistrationTimer;</div>
<div class="line"><a name="l00831"></a><span class="lineno"> 831</span>&#160;</div>
<div class="line"><a name="l00832"></a><span class="lineno"> 832</span>&#160; <span class="comment">// Root meta directory containing checkpointed data.</span></div>
<div class="line"><a name="l00833"></a><span class="lineno"> 833</span>&#160; <span class="keyword">const</span> std::string metaDir;</div>
<div class="line"><a name="l00834"></a><span class="lineno"> 834</span>&#160;</div>
<div class="line"><a name="l00835"></a><span class="lineno"> 835</span>&#160; <span class="comment">// Indicates the number of errors ignored in &quot;--no-strict&quot; recovery mode.</span></div>
<div class="line"><a name="l00836"></a><span class="lineno"> 836</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> recoveryErrors;</div>
<div class="line"><a name="l00837"></a><span class="lineno"> 837</span>&#160;</div>
<div class="line"><a name="l00838"></a><span class="lineno"> 838</span>&#160; <a class="code" href="classOption.html">Option&lt;Credential&gt;</a> credential;</div>
<div class="line"><a name="l00839"></a><span class="lineno"> 839</span>&#160;</div>
<div class="line"><a name="l00840"></a><span class="lineno"> 840</span>&#160; <span class="comment">// Authenticatee name as supplied via flags.</span></div>
<div class="line"><a name="l00841"></a><span class="lineno"> 841</span>&#160; std::string authenticateeName;</div>
<div class="line"><a name="l00842"></a><span class="lineno"> 842</span>&#160;</div>
<div class="line"><a name="l00843"></a><span class="lineno"> 843</span>&#160; <a class="code" href="classmesos_1_1Authenticatee.html">Authenticatee</a>* authenticatee;</div>
<div class="line"><a name="l00844"></a><span class="lineno"> 844</span>&#160;</div>
<div class="line"><a name="l00845"></a><span class="lineno"> 845</span>&#160; <span class="comment">// Indicates if an authentication attempt is in progress.</span></div>
<div class="line"><a name="l00846"></a><span class="lineno"> 846</span>&#160; <a class="code" href="classOption.html">Option&lt;process::Future&lt;bool&gt;</a>&gt; authenticating;</div>
<div class="line"><a name="l00847"></a><span class="lineno"> 847</span>&#160;</div>
<div class="line"><a name="l00848"></a><span class="lineno"> 848</span>&#160; <span class="comment">// Indicates if the authentication is successful.</span></div>
<div class="line"><a name="l00849"></a><span class="lineno"> 849</span>&#160; <span class="keywordtype">bool</span> authenticated;</div>
<div class="line"><a name="l00850"></a><span class="lineno"> 850</span>&#160;</div>
<div class="line"><a name="l00851"></a><span class="lineno"> 851</span>&#160; <span class="comment">// Indicates if a new authentication attempt should be enforced.</span></div>
<div class="line"><a name="l00852"></a><span class="lineno"> 852</span>&#160; <span class="keywordtype">bool</span> reauthenticate;</div>
<div class="line"><a name="l00853"></a><span class="lineno"> 853</span>&#160;</div>
<div class="line"><a name="l00854"></a><span class="lineno"> 854</span>&#160; <span class="comment">// Indicates the number of failed authentication attempts.</span></div>
<div class="line"><a name="l00855"></a><span class="lineno"> 855</span>&#160; uint64_t failedAuthentications;</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; <span class="comment">// Maximum age of executor directories. Will be recomputed</span></div>
<div class="line"><a name="l00858"></a><span class="lineno"> 858</span>&#160; <span class="comment">// periodically every flags.disk_watch_interval.</span></div>
<div class="line"><a name="l00859"></a><span class="lineno"> 859</span>&#160; <a class="code" href="classDuration.html">Duration</a> executorDirectoryMaxAllowedAge;</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; <a class="code" href="classmesos_1_1slave_1_1ResourceEstimator.html">mesos::slave::ResourceEstimator</a>* resourceEstimator;</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; <a class="code" href="classmesos_1_1slave_1_1QoSController.html">mesos::slave::QoSController</a>* qosController;</div>
<div class="line"><a name="l00864"></a><span class="lineno"> 864</span>&#160;</div>
<div class="line"><a name="l00865"></a><span class="lineno"> 865</span>&#160; <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;Authorizer*&gt;</a> authorizer;</div>
<div class="line"><a name="l00866"></a><span class="lineno"> 866</span>&#160;</div>
<div class="line"><a name="l00867"></a><span class="lineno"> 867</span>&#160; <span class="comment">// The most recent estimate of the total amount of oversubscribed</span></div>
<div class="line"><a name="l00868"></a><span class="lineno"> 868</span>&#160; <span class="comment">// (allocated and oversubscribable) resources.</span></div>
<div class="line"><a name="l00869"></a><span class="lineno"> 869</span>&#160; <a class="code" href="classOption.html">Option&lt;Resources&gt;</a> oversubscribedResources;</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"> 871</span>&#160;</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"> 873</span>&#160;<span class="comment">// Represents the streaming HTTP connection to an executor.</span></div>
<div class="line"><a name="l00874"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html"> 874</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html">HttpConnection</a></div>
<div class="line"><a name="l00875"></a><span class="lineno"> 875</span>&#160;{</div>
<div class="line"><a name="l00876"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#acc1ca998134e63de44e77f0a371973af"> 876</a></span>&#160; <a class="code" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#acc1ca998134e63de44e77f0a371973af">HttpConnection</a>(<span class="keyword">const</span> <a class="code" href="classprocess_1_1http_1_1Pipe_1_1Writer.html">process::http::Pipe::Writer</a>&amp; _writer,</div>
<div class="line"><a name="l00877"></a><span class="lineno"> 877</span>&#160; <a class="code" href="namespacemesos.html#a13035ce0cc66cca4a467787b4716039e">ContentType</a> _contentType)</div>
<div class="line"><a name="l00878"></a><span class="lineno"> 878</span>&#160; : <a class="code" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#a0c59d0ff74737a01a33ae18f76525ed3">writer</a>(_writer),</div>
<div class="line"><a name="l00879"></a><span class="lineno"> 879</span>&#160; <a class="code" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#aa56f337e2e9a40afbcae740883f7342e">contentType</a>(_contentType),</div>
<div class="line"><a name="l00880"></a><span class="lineno"> 880</span>&#160; <a class="code" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#ac9014eb387ce40f4b7803c14b37da8f8">encoder</a>(lambda::<a class="code" href="namespaceprocess_1_1network.html#ad067110a4b38cc83785a43f49bf6c8e2">bind</a>(<a class="code" href="namespacemesos_1_1internal.html#a9c1f91de8a8a389b357b81f7b51b0554">serialize</a>, <a class="code" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#aa56f337e2e9a40afbcae740883f7342e">contentType</a>, lambda::_1)) {}</div>
<div class="line"><a name="l00881"></a><span class="lineno"> 881</span>&#160;</div>
<div class="line"><a name="l00882"></a><span class="lineno"> 882</span>&#160; <span class="comment">// Converts the message to an Event before sending.</span></div>
<div class="line"><a name="l00883"></a><span class="lineno"> 883</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> Message&gt;</div>
<div class="line"><a name="l00884"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#ad0773acb50a9d74589dc050ee9bc3f9b"> 884</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#ad0773acb50a9d74589dc050ee9bc3f9b">send</a>(<span class="keyword">const</span> Message&amp; message)</div>
<div class="line"><a name="l00885"></a><span class="lineno"> 885</span>&#160; {</div>
<div class="line"><a name="l00886"></a><span class="lineno"> 886</span>&#160; <span class="comment">// We need to evolve the internal &#39;message&#39; into a</span></div>
<div class="line"><a name="l00887"></a><span class="lineno"> 887</span>&#160; <span class="comment">// &#39;v1::executor::Event&#39;.</span></div>
<div class="line"><a name="l00888"></a><span class="lineno"> 888</span>&#160; <span class="keywordflow">return</span> <a class="code" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#a0c59d0ff74737a01a33ae18f76525ed3">writer</a>.<a class="code" href="classprocess_1_1http_1_1Pipe_1_1Writer.html#ad945bef2134c872f8ea43dea6db84c66">write</a>(<a class="code" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#ac9014eb387ce40f4b7803c14b37da8f8">encoder</a>.encode(<a class="code" href="namespacemesos_1_1internal.html#a845d4d5a46b931d03f340c8afc58b60a">evolve</a>(message)));</div>
<div class="line"><a name="l00889"></a><span class="lineno"> 889</span>&#160; }</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"><a class="line" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#a6bd61956671fa0cab784ac1eb0d2b834"> 891</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#a6bd61956671fa0cab784ac1eb0d2b834">close</a>()</div>
<div class="line"><a name="l00892"></a><span class="lineno"> 892</span>&#160; {</div>
<div class="line"><a name="l00893"></a><span class="lineno"> 893</span>&#160; <span class="keywordflow">return</span> <a class="code" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#a0c59d0ff74737a01a33ae18f76525ed3">writer</a>.<a class="code" href="classprocess_1_1http_1_1Pipe_1_1Writer.html#aecc37af3f66360a47184a1146ae92756">close</a>();</div>
<div class="line"><a name="l00894"></a><span class="lineno"> 894</span>&#160; }</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="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#a75cfb254a95f8aece262b57137442ad2"> 896</a></span>&#160; <a class="code" href="classprocess_1_1Future.html">process::Future&lt;Nothing&gt;</a> <a class="code" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#a75cfb254a95f8aece262b57137442ad2">closed</a>()<span class="keyword"> const</span></div>
<div class="line"><a name="l00897"></a><span class="lineno"> 897</span>&#160;<span class="keyword"> </span>{</div>
<div class="line"><a name="l00898"></a><span class="lineno"> 898</span>&#160; <span class="keywordflow">return</span> <a class="code" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#a0c59d0ff74737a01a33ae18f76525ed3">writer</a>.<a class="code" href="classprocess_1_1http_1_1Pipe_1_1Writer.html#afc6072a9fbcb92a6a1b4978b89797583">readerClosed</a>();</div>
<div class="line"><a name="l00899"></a><span class="lineno"> 899</span>&#160; }</div>
<div class="line"><a name="l00900"></a><span class="lineno"> 900</span>&#160;</div>
<div class="line"><a name="l00901"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#a0c59d0ff74737a01a33ae18f76525ed3"> 901</a></span>&#160; <a class="code" href="classprocess_1_1http_1_1Pipe_1_1Writer.html">process::http::Pipe::Writer</a> <a class="code" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#a0c59d0ff74737a01a33ae18f76525ed3">writer</a>;</div>
<div class="line"><a name="l00902"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#aa56f337e2e9a40afbcae740883f7342e"> 902</a></span>&#160; <a class="code" href="namespacemesos.html#a13035ce0cc66cca4a467787b4716039e">ContentType</a> <a class="code" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#aa56f337e2e9a40afbcae740883f7342e">contentType</a>;</div>
<div class="line"><a name="l00903"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#ac9014eb387ce40f4b7803c14b37da8f8"> 903</a></span>&#160; <a class="code" href="classrecordio_1_1Encoder.html">::recordio::Encoder&lt;v1::executor::Event&gt;</a> <a class="code" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#ac9014eb387ce40f4b7803c14b37da8f8">encoder</a>;</div>
<div class="line"><a name="l00904"></a><span class="lineno"> 904</span>&#160;};</div>
<div class="line"><a name="l00905"></a><span class="lineno"> 905</span>&#160;</div>
<div class="line"><a name="l00906"></a><span class="lineno"> 906</span>&#160;</div>
<div class="line"><a name="l00907"></a><span class="lineno"> 907</span>&#160;std::ostream&amp; <a class="code" href="namespacemesos_1_1internal_1_1slave.html#acc816a5f127bb40e7d5464befda0a0a9">operator&lt;&lt;</a>(std::ostream&amp; stream, <span class="keyword">const</span> <a class="code" href="structmesos_1_1internal_1_1slave_1_1Executor.html">Executor</a>&amp; executor);</div>
<div class="line"><a name="l00908"></a><span class="lineno"> 908</span>&#160;</div>
<div class="line"><a name="l00909"></a><span class="lineno"> 909</span>&#160;</div>
<div class="line"><a name="l00910"></a><span class="lineno"> 910</span>&#160;<span class="comment">// Information describing an executor.</span></div>
<div class="line"><a name="l00911"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1Executor.html"> 911</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structmesos_1_1internal_1_1slave_1_1Executor.html">Executor</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; <a class="code" href="structmesos_1_1internal_1_1slave_1_1Executor.html#a2743c0fdfd1c12f467e85e628a779114">Executor</a>(</div>
<div class="line"><a name="l00914"></a><span class="lineno"> 914</span>&#160; <a class="code" href="classmesos_1_1internal_1_1slave_1_1Slave.html">Slave</a>* <a class="code" href="structmesos_1_1internal_1_1slave_1_1Executor.html#addd8f0d655f9d03ad6bc594c4d476818">slave</a>,</div>
<div class="line"><a name="l00915"></a><span class="lineno"> 915</span>&#160; <span class="keyword">const</span> FrameworkID&amp; frameworkId,</div>
<div class="line"><a name="l00916"></a><span class="lineno"> 916</span>&#160; <span class="keyword">const</span> ExecutorInfo&amp; <a class="code" href="structmesos_1_1internal_1_1slave_1_1Executor.html#a6d93343a7cac0e8f5398e4d55a19c856">info</a>,</div>
<div class="line"><a name="l00917"></a><span class="lineno"> 917</span>&#160; <span class="keyword">const</span> ContainerID&amp; containerId,</div>
<div class="line"><a name="l00918"></a><span class="lineno"> 918</span>&#160; <span class="keyword">const</span> std::string&amp; <a class="code" href="structmesos_1_1internal_1_1slave_1_1Executor.html#aabe86347ab1d23297172813dc5d1c8f5">directory</a>,</div>
<div class="line"><a name="l00919"></a><span class="lineno"> 919</span>&#160; <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;std::string&gt;</a>&amp; <a class="code" href="structmesos_1_1internal_1_1slave_1_1Executor.html#aed6f0c1093840e82b6e920164be9df74">user</a>,</div>
<div class="line"><a name="l00920"></a><span class="lineno"> 920</span>&#160; <span class="keywordtype">bool</span> checkpoint);</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; <a class="code" href="structmesos_1_1internal_1_1slave_1_1Executor.html#a87195f2f07ffa5b1f9519ed3540e872f">~Executor</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; Task* <a class="code" href="structmesos_1_1internal_1_1slave_1_1Executor.html#a97c67b96dd783f1bbe974a3e3759dff4">addTask</a>(<span class="keyword">const</span> TaskInfo&amp; task);</div>
<div class="line"><a name="l00925"></a><span class="lineno"> 925</span>&#160; <span class="keywordtype">void</span> <a class="code" href="structmesos_1_1internal_1_1slave_1_1Executor.html#a99724999c57ea8059b70451be58ab6af">completeTask</a>(<span class="keyword">const</span> TaskID&amp; taskId);</div>
<div class="line"><a name="l00926"></a><span class="lineno"> 926</span>&#160; <span class="keywordtype">void</span> <a class="code" href="structmesos_1_1internal_1_1slave_1_1Executor.html#ab00309cd3d1c22e2ce1051e33d829c3c">checkpointExecutor</a>();</div>
<div class="line"><a name="l00927"></a><span class="lineno"> 927</span>&#160; <span class="keywordtype">void</span> <a class="code" href="structmesos_1_1internal_1_1slave_1_1Executor.html#a0a36624c6fe507a5fe4afa57543c5257">checkpointTask</a>(<span class="keyword">const</span> TaskInfo&amp; task);</div>
<div class="line"><a name="l00928"></a><span class="lineno"> 928</span>&#160; <span class="keywordtype">void</span> <a class="code" href="structmesos_1_1internal_1_1slave_1_1Executor.html#a0a36624c6fe507a5fe4afa57543c5257">checkpointTask</a>(<span class="keyword">const</span> Task&amp; task);</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="keywordtype">void</span> <a class="code" href="structmesos_1_1internal_1_1slave_1_1Executor.html#a89977a8c4cec7c54a41f20e763532b3c">recoverTask</a>(<span class="keyword">const</span> <a class="code" href="structmesos_1_1internal_1_1slave_1_1state_1_1TaskState.html">state::TaskState</a>&amp; <a class="code" href="structmesos_1_1internal_1_1slave_1_1Executor.html#a27e0e6e088c0fd88a0c7f679c964c409">state</a>, <span class="keywordtype">bool</span> recheckpointTask);</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; <a class="code" href="classTry.html">Try&lt;Nothing&gt;</a> <a class="code" href="structmesos_1_1internal_1_1slave_1_1Executor.html#a78d4cb7ddccb6a2f7cdf31475ed7e83d">updateTaskState</a>(<span class="keyword">const</span> TaskStatus&amp; <a class="code" href="namespaceproc.html#a34396c6140a28f583dc13fee3c3c35d4">status</a>);</div>
<div class="line"><a name="l00933"></a><span class="lineno"> 933</span>&#160;</div>
<div class="line"><a name="l00934"></a><span class="lineno"> 934</span>&#160; <span class="comment">// Returns true if there are any queued/launched/terminated tasks.</span></div>
<div class="line"><a name="l00935"></a><span class="lineno"> 935</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="structmesos_1_1internal_1_1slave_1_1Executor.html#a79093461e7bc35f4b4b9c7a796b88e2e">incompleteTasks</a>();</div>
<div class="line"><a name="l00936"></a><span class="lineno"> 936</span>&#160;</div>
<div class="line"><a name="l00937"></a><span class="lineno"> 937</span>&#160; <span class="comment">// Sends a message to the connected executor.</span></div>
<div class="line"><a name="l00938"></a><span class="lineno"> 938</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> Message&gt;</div>
<div class="line"><a name="l00939"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1Executor.html#a6088e2d4d0160d0cdaf8674c46d91c43"> 939</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="structmesos_1_1internal_1_1slave_1_1Executor.html#a6088e2d4d0160d0cdaf8674c46d91c43">send</a>(<span class="keyword">const</span> Message&amp; message)</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="keywordflow">if</span> (state == <a class="code" href="structmesos_1_1internal_1_1slave_1_1Executor.html#a3b2abbbd9f9e9ca5c08b75329ac426c0a47f27688eed5f4b7b8fae1fe60e35d0d">REGISTERING</a> || state == <a class="code" href="structmesos_1_1internal_1_1slave_1_1Executor.html#a3b2abbbd9f9e9ca5c08b75329ac426c0ada3a926bc25ef3c7e060789f52aacd75">TERMINATED</a>) {</div>
<div class="line"><a name="l00942"></a><span class="lineno"> 942</span>&#160; LOG(WARNING) &lt;&lt; <span class="stringliteral">&quot;Attempting to send message to disconnected&quot;</span></div>
<div class="line"><a name="l00943"></a><span class="lineno"> 943</span>&#160; &lt;&lt; <span class="stringliteral">&quot; executor &quot;</span> &lt;&lt; *<span class="keyword">this</span> &lt;&lt; <span class="stringliteral">&quot; in state &quot;</span> &lt;&lt; <a class="code" href="structmesos_1_1internal_1_1slave_1_1Executor.html#a27e0e6e088c0fd88a0c7f679c964c409">state</a>;</div>
<div class="line"><a name="l00944"></a><span class="lineno"> 944</span>&#160; }</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="keywordflow">if</span> (http.isSome()) {</div>
<div class="line"><a name="l00947"></a><span class="lineno"> 947</span>&#160; <span class="keywordflow">if</span> (!http-&gt;<a class="code" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#ad0773acb50a9d74589dc050ee9bc3f9b">send</a>(message)) {</div>
<div class="line"><a name="l00948"></a><span class="lineno"> 948</span>&#160; LOG(WARNING) &lt;&lt; <span class="stringliteral">&quot;Unable to send event to executor &quot;</span> &lt;&lt; *<span class="keyword">this</span></div>
<div class="line"><a name="l00949"></a><span class="lineno"> 949</span>&#160; &lt;&lt; <span class="stringliteral">&quot;: connection closed&quot;</span>;</div>
<div class="line"><a name="l00950"></a><span class="lineno"> 950</span>&#160; }</div>
<div class="line"><a name="l00951"></a><span class="lineno"> 951</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (pid.<a class="code" href="classOption.html#a4e3bf8416d95246f43c91f1b5c309323">isSome</a>()) {</div>
<div class="line"><a name="l00952"></a><span class="lineno"> 952</span>&#160; slave-&gt;<a class="code" href="classProtobufProcess.html#a6c404fdc490a7199a0d2ad881d588e5c">send</a>(pid.<a class="code" href="classOption.html#a21358442c0fac1cc978a67a9a9089a79">get</a>(), message);</div>
<div class="line"><a name="l00953"></a><span class="lineno"> 953</span>&#160; } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00954"></a><span class="lineno"> 954</span>&#160; LOG(WARNING) &lt;&lt; <span class="stringliteral">&quot;Unable to send event to executor &quot;</span> &lt;&lt; *<span class="keyword">this</span></div>
<div class="line"><a name="l00955"></a><span class="lineno"> 955</span>&#160; &lt;&lt; <span class="stringliteral">&quot;: unknown connection type&quot;</span>;</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; }</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="comment">// Returns true if this is a command executor.</span></div>
<div class="line"><a name="l00960"></a><span class="lineno"> 960</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="structmesos_1_1internal_1_1slave_1_1Executor.html#a8c506bb12f5b2a0acd8f216ebbf0c789">isCommandExecutor</a>() <span class="keyword">const</span>;</div>
<div class="line"><a name="l00961"></a><span class="lineno"> 961</span>&#160;</div>
<div class="line"><a name="l00962"></a><span class="lineno"> 962</span>&#160; <span class="comment">// Closes the HTTP connection.</span></div>
<div class="line"><a name="l00963"></a><span class="lineno"> 963</span>&#160; <span class="keywordtype">void</span> <a class="code" href="structmesos_1_1internal_1_1slave_1_1Executor.html#a546589bcf81d103b1e50be965494d430">closeHttpConnection</a>();</div>
<div class="line"><a name="l00964"></a><span class="lineno"> 964</span>&#160;</div>
<div class="line"><a name="l00965"></a><span class="lineno"> 965</span>&#160; <span class="comment">// Returns the task group associated with the task.</span></div>
<div class="line"><a name="l00966"></a><span class="lineno"> 966</span>&#160; <a class="code" href="classOption.html">Option&lt;TaskGroupInfo&gt;</a> <a class="code" href="structmesos_1_1internal_1_1slave_1_1Executor.html#ad6bd3d3bec32d1d06d96f90d1325bf8d">getQueuedTaskGroup</a>(<span class="keyword">const</span> TaskID&amp; taskId);</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="keyword">friend</span> std::ostream&amp; <a class="code" href="structmesos_1_1internal_1_1slave_1_1Executor.html#a179703023548e1b60ffbae6b0a83a539">operator&lt;&lt;</a>(</div>
<div class="line"><a name="l00969"></a><span class="lineno"> 969</span>&#160; std::ostream&amp; stream,</div>
<div class="line"><a name="l00970"></a><span class="lineno"> 970</span>&#160; <span class="keyword">const</span> <a class="code" href="structmesos_1_1internal_1_1slave_1_1Executor.html">Executor</a>&amp; executor);</div>
<div class="line"><a name="l00971"></a><span class="lineno"> 971</span>&#160;</div>
<div class="line"><a name="l00972"></a><span class="lineno"> 972</span>&#160;<span class="comment">// Undefine NetBios preprocessor macros used by the `State` enum.</span></div>
<div class="line"><a name="l00973"></a><span class="lineno"> 973</span>&#160;<span class="preprocessor">#ifdef REGISTERING</span></div>
<div class="line"><a name="l00974"></a><span class="lineno"> 974</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#undef REGISTERING</span></div>
<div class="line"><a name="l00975"></a><span class="lineno"> 975</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif // REGISTERING</span></div>
<div class="line"><a name="l00976"></a><span class="lineno"> 976</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00977"></a><span class="lineno"> 977</span>&#160;<span class="preprocessor">#ifdef REGISTERED</span></div>
<div class="line"><a name="l00978"></a><span class="lineno"> 978</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#undef REGISTERED</span></div>
<div class="line"><a name="l00979"></a><span class="lineno"> 979</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif // REGISTERED</span></div>
<div class="line"><a name="l00980"></a><span class="lineno"> 980</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00981"></a><span class="lineno"> 981</span>&#160;</div>
<div class="line"><a name="l00982"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1Executor.html#a3b2abbbd9f9e9ca5c08b75329ac426c0"> 982</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="structmesos_1_1internal_1_1slave_1_1Executor.html#a3b2abbbd9f9e9ca5c08b75329ac426c0">State</a></div>
<div class="line"><a name="l00983"></a><span class="lineno"> 983</span>&#160; {</div>
<div class="line"><a name="l00984"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1Executor.html#a3b2abbbd9f9e9ca5c08b75329ac426c0a47f27688eed5f4b7b8fae1fe60e35d0d"> 984</a></span>&#160; <a class="code" href="structmesos_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="l00985"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1Executor.html#a3b2abbbd9f9e9ca5c08b75329ac426c0a1485da27f38622c47c16abf8c1491683"> 985</a></span>&#160; <a class="code" href="structmesos_1_1internal_1_1slave_1_1Executor.html#a3b2abbbd9f9e9ca5c08b75329ac426c0a1485da27f38622c47c16abf8c1491683">RUNNING</a>, <span class="comment">// Executor has (re-)registered.</span></div>
<div class="line"><a name="l00986"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1Executor.html#a3b2abbbd9f9e9ca5c08b75329ac426c0ab536b2fae4842fc2c6e24905f142c920"> 986</a></span>&#160; <a class="code" href="structmesos_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="l00987"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1Executor.html#a3b2abbbd9f9e9ca5c08b75329ac426c0ada3a926bc25ef3c7e060789f52aacd75"> 987</a></span>&#160; <a class="code" href="structmesos_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="l00988"></a><span class="lineno"> 988</span>&#160; } <a class="code" href="structmesos_1_1internal_1_1slave_1_1Executor.html#a27e0e6e088c0fd88a0c7f679c964c409">state</a>;</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="comment">// We store the pointer to &#39;Slave&#39; to get access to its methods</span></div>
<div class="line"><a name="l00991"></a><span class="lineno"> 991</span>&#160; <span class="comment">// variables. One could imagine &#39;Executor&#39; as being an inner class</span></div>
<div class="line"><a name="l00992"></a><span class="lineno"> 992</span>&#160; <span class="comment">// of the &#39;Slave&#39; class.</span></div>
<div class="line"><a name="l00993"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1Executor.html#addd8f0d655f9d03ad6bc594c4d476818"> 993</a></span>&#160; <a class="code" href="classmesos_1_1internal_1_1slave_1_1Slave.html">Slave</a>* <a class="code" href="structmesos_1_1internal_1_1slave_1_1Executor.html#addd8f0d655f9d03ad6bc594c4d476818">slave</a>;</div>
<div class="line"><a name="l00994"></a><span class="lineno"> 994</span>&#160;</div>
<div class="line"><a name="l00995"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1Executor.html#a9037a16ee390fa0893f1229aca4e33ea"> 995</a></span>&#160; <span class="keyword">const</span> ExecutorID <a class="code" href="structmesos_1_1internal_1_1slave_1_1Executor.html#a9037a16ee390fa0893f1229aca4e33ea">id</a>;</div>
<div class="line"><a name="l00996"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1Executor.html#a6d93343a7cac0e8f5398e4d55a19c856"> 996</a></span>&#160; <span class="keyword">const</span> ExecutorInfo <a class="code" href="structmesos_1_1internal_1_1slave_1_1Executor.html#a6d93343a7cac0e8f5398e4d55a19c856">info</a>;</div>
<div class="line"><a name="l00997"></a><span class="lineno"> 997</span>&#160;</div>
<div class="line"><a name="l00998"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1Executor.html#a34bfb0214dd593dcbf1ad4fa398a417c"> 998</a></span>&#160; <span class="keyword">const</span> FrameworkID <a class="code" href="structmesos_1_1internal_1_1slave_1_1Executor.html#a34bfb0214dd593dcbf1ad4fa398a417c">frameworkId</a>;</div>
<div class="line"><a name="l00999"></a><span class="lineno"> 999</span>&#160;</div>
<div class="line"><a name="l01000"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1Executor.html#aaad02226a9d30491088dd9ef315effbc"> 1000</a></span>&#160; <span class="keyword">const</span> ContainerID <a class="code" href="structmesos_1_1internal_1_1slave_1_1Executor.html#aaad02226a9d30491088dd9ef315effbc">containerId</a>;</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"><a class="line" href="structmesos_1_1internal_1_1slave_1_1Executor.html#aabe86347ab1d23297172813dc5d1c8f5"> 1002</a></span>&#160; <span class="keyword">const</span> std::string <a class="code" href="structmesos_1_1internal_1_1slave_1_1Executor.html#aabe86347ab1d23297172813dc5d1c8f5">directory</a>;</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">// The sandbox will be owned by this user and the executor will</span></div>
<div class="line"><a name="l01005"></a><span class="lineno"> 1005</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="l01006"></a><span class="lineno"> 1006</span>&#160; <span class="comment">// is false or when compiled for Windows.</span></div>
<div class="line"><a name="l01007"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1Executor.html#aed6f0c1093840e82b6e920164be9df74"> 1007</a></span>&#160; <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;std::string&gt;</a> <a class="code" href="structmesos_1_1internal_1_1slave_1_1Executor.html#aed6f0c1093840e82b6e920164be9df74">user</a>;</div>
<div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>&#160;</div>
<div class="line"><a name="l01009"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1Executor.html#ab05d451e6d84e8da41ac5b156cb7a79f"> 1009</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">bool</span> <a class="code" href="structmesos_1_1internal_1_1slave_1_1Executor.html#ab05d451e6d84e8da41ac5b156cb7a79f">checkpoint</a>;</div>
<div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>&#160;</div>
<div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>&#160; <span class="comment">// An Executor can either be connected via HTTP or by libprocess</span></div>
<div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>&#160; <span class="comment">// message passing. The following are the possible states:</span></div>
<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>&#160; <span class="comment">//</span></div>
<div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>&#160; <span class="comment">// Agent State Executor State http pid Executor Type</span></div>
<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>&#160; <span class="comment">// ----------- -------------- ---- ---- -------------</span></div>
<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>&#160; <span class="comment">// RECOVERING REGISTERING None UPID() Unknown</span></div>
<div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>&#160; <span class="comment">// REGISTERING None Some Libprocess</span></div>
<div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>&#160; <span class="comment">// REGISTERING None None HTTP</span></div>
<div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>&#160; <span class="comment">//</span></div>
<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>&#160; <span class="comment">// * REGISTERING None None Not known yet</span></div>
<div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>&#160; <span class="comment">// * * None Some Libprocess</span></div>
<div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>&#160; <span class="comment">// * * Some None HTTP</span></div>
<div class="line"><a name="l01023"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1Executor.html#ad432746af325d55919e69efe7d82fbb9"> 1023</a></span>&#160; <a class="code" href="classOption.html">Option&lt;HttpConnection&gt;</a> <a class="code" href="structmesos_1_1internal_1_1slave_1_1Executor.html#ad432746af325d55919e69efe7d82fbb9">http</a>;</div>
<div class="line"><a name="l01024"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1Executor.html#a29666bff86d8f043ce5ba4f8a4ccb0b8"> 1024</a></span>&#160; <a class="code" href="classOption.html">Option&lt;process::UPID&gt;</a> <a class="code" href="structmesos_1_1internal_1_1slave_1_1Executor.html#a29666bff86d8f043ce5ba4f8a4ccb0b8">pid</a>;</div>
<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>&#160;</div>
<div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>&#160; <span class="comment">// Currently consumed resources.</span></div>
<div class="line"><a name="l01027"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1Executor.html#ab2ccf0dfb25334b7875f16473fb2ec28"> 1027</a></span>&#160; <a class="code" href="classmesos_1_1Resources.html">Resources</a> <a class="code" href="structmesos_1_1internal_1_1slave_1_1Executor.html#ab2ccf0dfb25334b7875f16473fb2ec28">resources</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">// Tasks can be found in one of the following four data structures:</span></div>
<div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>&#160; <span class="comment">//</span></div>
<div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>&#160; <span class="comment">// TODO(bmahler): Make these private to enforce that the task</span></div>
<div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>&#160; <span class="comment">// lifecycle helper functions are not being bypassed, and provide</span></div>
<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>&#160; <span class="comment">// public views into them.</span></div>
<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160;</div>
<div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>&#160; <span class="comment">// Not yet launched tasks. This also includes tasks from `queuedTaskGroups`.</span></div>
<div class="line"><a name="l01036"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1Executor.html#a806e8af598eb003694dbaeacdda2c66b"> 1036</a></span>&#160; <a class="code" href="classLinkedHashMap.html">LinkedHashMap&lt;TaskID, TaskInfo&gt;</a> <a class="code" href="structmesos_1_1internal_1_1slave_1_1Executor.html#a806e8af598eb003694dbaeacdda2c66b">queuedTasks</a>;</div>
<div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>&#160;</div>
<div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>&#160; <span class="comment">// Not yet launched task groups. This is needed for correctly sending</span></div>
<div class="line"><a name="l01039"></a><span class="lineno"> 1039</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="l01040"></a><span class="lineno"> 1040</span>&#160; <span class="comment">// tasks were killed before the executor could register with the agent.</span></div>
<div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>&#160; <span class="comment">//</span></div>
<div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>&#160; <span class="comment">// TODO(anand): Replace this with `LinkedHashSet` when it is available.</span></div>
<div class="line"><a name="l01043"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1Executor.html#a2fc2e9b051c144f259f003b79a3d5ec3"> 1043</a></span>&#160; std::list&lt;TaskGroupInfo&gt; <a class="code" href="structmesos_1_1internal_1_1slave_1_1Executor.html#a2fc2e9b051c144f259f003b79a3d5ec3">queuedTaskGroups</a>;</div>
<div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>&#160;</div>
<div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>&#160; <span class="comment">// Running.</span></div>
<div class="line"><a name="l01046"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1Executor.html#a8c9a1989d4b769bbccd7ce7385fd054d"> 1046</a></span>&#160; <a class="code" href="classLinkedHashMap.html">LinkedHashMap&lt;TaskID, Task*&gt;</a> <a class="code" href="structmesos_1_1internal_1_1slave_1_1Executor.html#a8c9a1989d4b769bbccd7ce7385fd054d">launchedTasks</a>;</div>
<div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>&#160;</div>
<div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>&#160; <span class="comment">// Terminated but pending updates.</span></div>
<div class="line"><a name="l01049"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1Executor.html#abd7e32a67b2bf5409c1ab855f3220625"> 1049</a></span>&#160; <a class="code" href="classLinkedHashMap.html">LinkedHashMap&lt;TaskID, Task*&gt;</a> <a class="code" href="structmesos_1_1internal_1_1slave_1_1Executor.html#abd7e32a67b2bf5409c1ab855f3220625">terminatedTasks</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">// Terminated and updates acked.</span></div>
<div class="line"><a name="l01052"></a><span class="lineno"> 1052</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="l01053"></a><span class="lineno"> 1053</span>&#160; <span class="comment">// Boost&#39;s implementation of circular_buffer with Task (Boost</span></div>
<div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>&#160; <span class="comment">// attempts to do some memset&#39;s which are unsafe).</span></div>
<div class="line"><a name="l01055"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1Executor.html#ad326f6f8e9c161095f6a7e033da58550"> 1055</a></span>&#160; boost::circular_buffer&lt;std::shared_ptr&lt;Task&gt;&gt; <a class="code" href="structmesos_1_1internal_1_1slave_1_1Executor.html#ad326f6f8e9c161095f6a7e033da58550">completedTasks</a>;</div>
<div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>&#160;</div>
<div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>&#160; <span class="comment">// When the slave initiates a destroy of the container, we expect a</span></div>
<div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>&#160; <span class="comment">// termination to occur. The &#39;pendingTermation&#39; indicates why the</span></div>
<div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>&#160; <span class="comment">// slave initiated the destruction and will influence the</span></div>
<div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>&#160; <span class="comment">// information sent in the status updates for any remaining</span></div>
<div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>&#160; <span class="comment">// non-terminal tasks.</span></div>
<div class="line"><a name="l01062"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1Executor.html#addae2cfbd131b946f10a7986aafac151"> 1062</a></span>&#160; <a class="code" href="classOption.html">Option&lt;mesos::slave::ContainerTermination&gt;</a> <a class="code" href="structmesos_1_1internal_1_1slave_1_1Executor.html#addae2cfbd131b946f10a7986aafac151">pendingTermination</a>;</div>
<div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>&#160;</div>
<div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>&#160; <a class="code" href="structmesos_1_1internal_1_1slave_1_1Executor.html#a2743c0fdfd1c12f467e85e628a779114">Executor</a>(<span class="keyword">const</span> <a class="code" href="structmesos_1_1internal_1_1slave_1_1Executor.html">Executor</a>&amp;); <span class="comment">// No copying.</span></div>
<div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>&#160; <a class="code" href="structmesos_1_1internal_1_1slave_1_1Executor.html">Executor</a>&amp; operator=(<span class="keyword">const</span> <a class="code" href="structmesos_1_1internal_1_1slave_1_1Executor.html">Executor</a>&amp;); <span class="comment">// No assigning.</span></div>
<div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>&#160;</div>
<div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>&#160; <span class="keywordtype">bool</span> commandExecutor;</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;</div>
<div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>&#160;</div>
<div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>&#160;<span class="comment">// Information about a framework.</span></div>
<div class="line"><a name="l01073"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1Framework.html"> 1073</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structmesos_1_1internal_1_1slave_1_1Framework.html">Framework</a></div>
<div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>&#160;{</div>
<div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>&#160; <a class="code" href="structmesos_1_1internal_1_1slave_1_1Framework.html#a98caed7c7f98f89fa2cb716cbfe38217">Framework</a>(</div>
<div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>&#160; <a class="code" href="classmesos_1_1internal_1_1slave_1_1Slave.html">Slave</a>* <a class="code" href="structmesos_1_1internal_1_1slave_1_1Framework.html#a28542cb83d680c4bd37f31ae58382866">slave</a>,</div>
<div class="line"><a name="l01077"></a><span class="lineno"> 1077</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="l01078"></a><span class="lineno"> 1078</span>&#160; <span class="keyword">const</span> FrameworkInfo&amp; <a class="code" href="structmesos_1_1internal_1_1slave_1_1Framework.html#ab024621d83bc1381fd176d0fc8cdeac2">info</a>,</div>
<div class="line"><a name="l01079"></a><span class="lineno"> 1079</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="l01080"></a><span class="lineno"> 1080</span>&#160;</div>
<div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>&#160; <a class="code" href="structmesos_1_1internal_1_1slave_1_1Framework.html#a6803557157471add8d9cccc7272beb14">~Framework</a>();</div>
<div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>&#160;</div>
<div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>&#160; <span class="comment">// If an executor is launched for a task group, `taskInfo` would</span></div>
<div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>&#160; <span class="comment">// not be set.</span></div>
<div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>&#160; <a class="code" href="structmesos_1_1internal_1_1slave_1_1Executor.html">Executor</a>* <a class="code" href="structmesos_1_1internal_1_1slave_1_1Framework.html#a05b90be308ad0832e5a73642e8296a9f">launchExecutor</a>(</div>
<div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>&#160; <span class="keyword">const</span> ExecutorInfo&amp; executorInfo,</div>
<div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>&#160; <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;TaskInfo&gt;</a>&amp; taskInfo);</div>
<div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>&#160; <span class="keywordtype">void</span> <a class="code" href="structmesos_1_1internal_1_1slave_1_1Framework.html#a8a39feb604858a43d0f7f747961d4592">destroyExecutor</a>(<span class="keyword">const</span> ExecutorID&amp; executorId);</div>
<div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>&#160; <a class="code" href="structmesos_1_1internal_1_1slave_1_1Executor.html">Executor</a>* <a class="code" href="structmesos_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="l01090"></a><span class="lineno"> 1090</span>&#160; <a class="code" href="structmesos_1_1internal_1_1slave_1_1Executor.html">Executor</a>* <a class="code" href="structmesos_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="l01091"></a><span class="lineno"> 1091</span>&#160;</div>
<div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>&#160; <span class="keywordtype">void</span> <a class="code" href="structmesos_1_1internal_1_1slave_1_1Framework.html#a440112e6053e7d36a46c18580a1b5133">recoverExecutor</a>(</div>
<div class="line"><a name="l01093"></a><span class="lineno"> 1093</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="structmesos_1_1internal_1_1slave_1_1Framework.html#adbfec960b7cb705602bdac9853fb0c12">state</a>,</div>
<div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>&#160; <span class="keywordtype">bool</span> recheckpointExecutor,</div>
<div class="line"><a name="l01095"></a><span class="lineno"> 1095</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="l01096"></a><span class="lineno"> 1096</span>&#160;</div>
<div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>&#160; <span class="keywordtype">void</span> <a class="code" href="structmesos_1_1internal_1_1slave_1_1Framework.html#ae1271f8b0a5113b0413c4c5ca3035ae5">checkpointFramework</a>() <span class="keyword">const</span>;</div>
<div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>&#160;</div>
<div class="line"><a name="l01099"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1Framework.html#a65933e3034706258069b54549081fdbf"> 1099</a></span>&#160; <span class="keyword">const</span> FrameworkID <a class="code" href="structmesos_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="l01100"></a><span class="lineno"> 1100</span>&#160;</div>
<div class="line"><a name="l01101"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1Framework.html#accb4e9c8d32936b20f3d0ddc71fe8add"> 1101</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="structmesos_1_1internal_1_1slave_1_1Framework.html#accb4e9c8d32936b20f3d0ddc71fe8add">State</a></div>
<div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>&#160; {</div>
<div class="line"><a name="l01103"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1Framework.html#accb4e9c8d32936b20f3d0ddc71fe8addaee1aee9245f83af93404e62fe978dcc0"> 1103</a></span>&#160; <a class="code" href="structmesos_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="l01104"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1Framework.html#accb4e9c8d32936b20f3d0ddc71fe8adda577bc0be9a10978a6926259b04ac779e"> 1104</a></span>&#160; <a class="code" href="structmesos_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="l01105"></a><span class="lineno"> 1105</span>&#160; } <a class="code" href="structmesos_1_1internal_1_1slave_1_1Framework.html#adbfec960b7cb705602bdac9853fb0c12">state</a>;</div>
<div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>&#160;</div>
<div class="line"><a name="l01107"></a><span class="lineno"> 1107</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="l01108"></a><span class="lineno"> 1108</span>&#160; <span class="comment">// variables. One could imagine &#39;Framework&#39; being an inner class of</span></div>
<div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>&#160; <span class="comment">// the &#39;Slave&#39; class.</span></div>
<div class="line"><a name="l01110"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1Framework.html#a28542cb83d680c4bd37f31ae58382866"> 1110</a></span>&#160; <a class="code" href="classmesos_1_1internal_1_1slave_1_1Slave.html">Slave</a>* <a class="code" href="structmesos_1_1internal_1_1slave_1_1Framework.html#a28542cb83d680c4bd37f31ae58382866">slave</a>;</div>
<div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>&#160;</div>
<div class="line"><a name="l01112"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1Framework.html#ab024621d83bc1381fd176d0fc8cdeac2"> 1112</a></span>&#160; FrameworkInfo <a class="code" href="structmesos_1_1internal_1_1slave_1_1Framework.html#ab024621d83bc1381fd176d0fc8cdeac2">info</a>;</div>
<div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>&#160;</div>
<div class="line"><a name="l01114"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1Framework.html#af7ac61858b800f9b2adf0778d442f3ab"> 1114</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="structmesos_1_1internal_1_1slave_1_1Framework.html#af7ac61858b800f9b2adf0778d442f3ab">capabilities</a>;</div>
<div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>&#160;</div>
<div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>&#160; <span class="comment">// Frameworks using the scheduler driver will have a &#39;pid&#39;,</span></div>
<div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>&#160; <span class="comment">// which allows us to send executor messages directly to the</span></div>
<div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>&#160; <span class="comment">// driver. Frameworks using the HTTP API (in 0.24.0) will</span></div>
<div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>&#160; <span class="comment">// not have a &#39;pid&#39;, in which case executor messages are</span></div>
<div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>&#160; <span class="comment">// sent through the master.</span></div>
<div class="line"><a name="l01121"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1Framework.html#ad7dbb2013ee11ad0a55f177bfd7a0461"> 1121</a></span>&#160; <a class="code" href="classOption.html">Option&lt;process::UPID&gt;</a> <a class="code" href="structmesos_1_1internal_1_1slave_1_1Framework.html#ad7dbb2013ee11ad0a55f177bfd7a0461">pid</a>;</div>
<div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>&#160;</div>
<div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>&#160; <span class="comment">// Executors can be found in one of the following</span></div>
<div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>&#160; <span class="comment">// data structures:</span></div>
<div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>&#160; <span class="comment">//</span></div>
<div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>&#160; <span class="comment">// TODO(bmahler): Make these private to enforce that</span></div>
<div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>&#160; <span class="comment">// the executors lifecycle helper functions are not</span></div>
<div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>&#160; <span class="comment">// being bypassed, and provide public views into them.</span></div>
<div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>&#160;</div>
<div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>&#160; <span class="comment">// Executors with pending tasks.</span></div>
<div class="line"><a name="l01131"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1Framework.html#a92071e36bd91d192076159f233cfe2c4"> 1131</a></span>&#160; <a class="code" href="classhashmap.html">hashmap&lt;ExecutorID, hashmap&lt;TaskID, TaskInfo&gt;</a>&gt; <a class="code" href="structmesos_1_1internal_1_1slave_1_1Framework.html#a92071e36bd91d192076159f233cfe2c4">pending</a>;</div>
<div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>&#160;</div>
<div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>&#160; <span class="comment">// Current running executors.</span></div>
<div class="line"><a name="l01134"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1Framework.html#a67ace79356a9523a2486d8ffd235847f"> 1134</a></span>&#160; <a class="code" href="classhashmap.html">hashmap&lt;ExecutorID, Executor*&gt;</a> <a class="code" href="structmesos_1_1internal_1_1slave_1_1Framework.html#a67ace79356a9523a2486d8ffd235847f">executors</a>;</div>
<div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>&#160;</div>
<div class="line"><a name="l01136"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1Framework.html#a64da4492057ddd2ed2019e737819d79b"> 1136</a></span>&#160; boost::circular_buffer&lt;process::Owned&lt;Executor&gt;&gt; <a class="code" href="structmesos_1_1internal_1_1slave_1_1Framework.html#a64da4492057ddd2ed2019e737819d79b">completedExecutors</a>;</div>
<div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>&#160;</div>
<div class="line"><a name="l01138"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1Framework.html#a0d4c6ffcaa374896c7da9dbd62bb74c7"> 1138</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="structmesos_1_1internal_1_1slave_1_1Framework.html#a0d4c6ffcaa374896c7da9dbd62bb74c7">hasTask</a>(<span class="keyword">const</span> TaskID&amp; taskId)</div>
<div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>&#160; {</div>
<div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>&#160; <a class="code" href="foreach_8hpp.html#acac417231a256d7c6164a86db970da86">foreachkey</a> (<span class="keyword">const</span> ExecutorID&amp; executorId, <a class="code" href="structmesos_1_1internal_1_1slave_1_1Framework.html#a92071e36bd91d192076159f233cfe2c4">pending</a>) {</div>
<div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="structmesos_1_1internal_1_1slave_1_1Framework.html#a92071e36bd91d192076159f233cfe2c4">pending</a>[executorId].<a class="code" href="namespacestrings.html#a269921757daf11096d3f5e02686f8444">contains</a>(taskId)) {</div>
<div class="line"><a name="l01142"></a><span class="lineno"> 1142</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>&#160; }</div>
<div class="line"><a name="l01144"></a><span class="lineno"> 1144</span>&#160; }</div>
<div class="line"><a name="l01145"></a><span class="lineno"> 1145</span>&#160;</div>
<div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>&#160; <a class="code" href="foreach_8hpp.html#a28670619e64a84270d76f07b0f6eb3b6">foreachvalue</a> (<a class="code" href="structmesos_1_1internal_1_1slave_1_1Executor.html">Executor</a>* executor, <a class="code" href="structmesos_1_1internal_1_1slave_1_1Framework.html#a67ace79356a9523a2486d8ffd235847f">executors</a>) {</div>
<div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>&#160; <span class="keywordflow">if</span> (executor-&gt;<a class="code" href="structmesos_1_1internal_1_1slave_1_1Executor.html#a806e8af598eb003694dbaeacdda2c66b">queuedTasks</a>.<a class="code" href="classLinkedHashMap.html#a1e01999a72b4e7f0d2541ff1b9892123">contains</a>(taskId) ||</div>
<div class="line"><a name="l01148"></a><span class="lineno"> 1148</span>&#160; executor-&gt;<a class="code" href="structmesos_1_1internal_1_1slave_1_1Executor.html#a8c9a1989d4b769bbccd7ce7385fd054d">launchedTasks</a>.<a class="code" href="classLinkedHashMap.html#a1e01999a72b4e7f0d2541ff1b9892123">contains</a>(taskId) ||</div>
<div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>&#160; executor-&gt;<a class="code" href="structmesos_1_1internal_1_1slave_1_1Executor.html#abd7e32a67b2bf5409c1ab855f3220625">terminatedTasks</a>.<a class="code" href="classLinkedHashMap.html#a1e01999a72b4e7f0d2541ff1b9892123">contains</a>(taskId)) {</div>
<div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>&#160; }</div>
<div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>&#160; }</div>
<div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>&#160;</div>
<div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l01155"></a><span class="lineno"> 1155</span>&#160; }</div>
<div class="line"><a name="l01156"></a><span class="lineno"> 1156</span>&#160;</div>
<div class="line"><a name="l01157"></a><span class="lineno"> 1157</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>&#160; <a class="code" href="structmesos_1_1internal_1_1slave_1_1Framework.html#a98caed7c7f98f89fa2cb716cbfe38217">Framework</a>(<span class="keyword">const</span> <a class="code" href="structmesos_1_1internal_1_1slave_1_1Framework.html">Framework</a>&amp;); <span class="comment">// No copying.</span></div>
<div class="line"><a name="l01159"></a><span class="lineno"> 1159</span>&#160; <a class="code" href="structmesos_1_1internal_1_1slave_1_1Framework.html">Framework</a>&amp; operator=(<span class="keyword">const</span> <a class="code" href="structmesos_1_1internal_1_1slave_1_1Framework.html">Framework</a>&amp;); <span class="comment">// No assigning.</span></div>
<div class="line"><a name="l01160"></a><span class="lineno"> 1160</span>&#160;};</div>
<div class="line"><a name="l01161"></a><span class="lineno"> 1161</span>&#160;</div>
<div class="line"><a name="l01162"></a><span class="lineno"> 1162</span>&#160;</div>
<div class="line"><a name="l01176"></a><span class="lineno"> 1176</span>&#160;std::map&lt;std::string, std::string&gt; <a class="code" href="namespacemesos_1_1internal_1_1slave.html#a3947e7d21a44f62e8d1cdf390ffad1b2">executorEnvironment</a>(</div>
<div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>&#160; <span class="keyword">const</span> Flags&amp; flags,</div>
<div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>&#160; <span class="keyword">const</span> ExecutorInfo&amp; executorInfo,</div>
<div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>&#160; <span class="keyword">const</span> std::string&amp; directory,</div>
<div class="line"><a name="l01180"></a><span class="lineno"> 1180</span>&#160; <span class="keyword">const</span> SlaveID&amp; slaveId,</div>
<div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>&#160; <span class="keyword">const</span> <a class="code" href="structprocess_1_1PID.html">process::PID&lt;Slave&gt;</a>&amp; slavePid,</div>
<div class="line"><a name="l01182"></a><span class="lineno"> 1182</span>&#160; <span class="keywordtype">bool</span> checkpoint);</div>
<div class="line"><a name="l01183"></a><span class="lineno"> 1183</span>&#160;</div>
<div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>&#160;</div>
<div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>&#160;<span class="comment">// Returns the command info for default executor.</span></div>
<div class="line"><a name="l01186"></a><span class="lineno"> 1186</span>&#160;CommandInfo <a class="code" href="namespacemesos_1_1internal_1_1slave.html#aa17bd5c6396d3fc8cbfe1579affbcbae">defaultExecutorCommandInfo</a>(</div>
<div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>&#160; <span class="keyword">const</span> std::string&amp; launcherDir,</div>
<div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>&#160; <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;std::string&gt;</a>&amp; <a class="code" href="namespaceos.html#a698aa27e5ea6b1dc1c190b978c2f7960">user</a>);</div>
<div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>&#160;</div>
<div class="line"><a name="l01190"></a><span class="lineno"> 1190</span>&#160;</div>
<div class="line"><a name="l01191"></a><span class="lineno"> 1191</span>&#160;std::ostream&amp; <a class="code" href="namespacemesos_1_1internal_1_1slave.html#acc816a5f127bb40e7d5464befda0a0a9">operator&lt;&lt;</a>(std::ostream&amp; stream, <a class="code" href="classmesos_1_1internal_1_1slave_1_1Slave.html#a135c9291e330f8ecb3b39b99eca94798">Slave::State</a> state);</div>
<div class="line"><a name="l01192"></a><span class="lineno"> 1192</span>&#160;std::ostream&amp; <a class="code" href="namespacemesos_1_1internal_1_1slave.html#acc816a5f127bb40e7d5464befda0a0a9">operator&lt;&lt;</a>(std::ostream&amp; stream, <a class="code" href="structmesos_1_1internal_1_1slave_1_1Framework.html#accb4e9c8d32936b20f3d0ddc71fe8add">Framework::State</a> state);</div>
<div class="line"><a name="l01193"></a><span class="lineno"> 1193</span>&#160;std::ostream&amp; <a class="code" href="namespacemesos_1_1internal_1_1slave.html#acc816a5f127bb40e7d5464befda0a0a9">operator&lt;&lt;</a>(std::ostream&amp; stream, <a class="code" href="structmesos_1_1internal_1_1slave_1_1Executor.html#a3b2abbbd9f9e9ca5c08b75329ac426c0">Executor::State</a> state);</div>
<div class="line"><a name="l01194"></a><span class="lineno"> 1194</span>&#160;</div>
<div class="line"><a name="l01195"></a><span class="lineno"> 1195</span>&#160;</div>
<div class="line"><a name="l01196"></a><span class="lineno"> 1196</span>&#160;<span class="comment">// Needed for logging task/task group.</span></div>
<div class="line"><a name="l01197"></a><span class="lineno"> 1197</span>&#160;std::string <a class="code" href="namespacemesos_1_1internal_1_1slave.html#a63bad54d8050536e0ccb7dce7072ef10">taskOrTaskGroup</a>(</div>
<div class="line"><a name="l01198"></a><span class="lineno"> 1198</span>&#160; <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;TaskInfo&gt;</a>&amp; task,</div>
<div class="line"><a name="l01199"></a><span class="lineno"> 1199</span>&#160; <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;TaskGroupInfo&gt;</a>&amp; taskGroup);</div>
<div class="line"><a name="l01200"></a><span class="lineno"> 1200</span>&#160;</div>
<div class="line"><a name="l01201"></a><span class="lineno"> 1201</span>&#160;} <span class="comment">// namespace slave {</span></div>
<div class="line"><a name="l01202"></a><span class="lineno"> 1202</span>&#160;} <span class="comment">// namespace internal {</span></div>
<div class="line"><a name="l01203"></a><span class="lineno"> 1203</span>&#160;} <span class="comment">// namespace mesos {</span></div>
<div class="line"><a name="l01204"></a><span class="lineno"> 1204</span>&#160;</div>
<div class="line"><a name="l01205"></a><span class="lineno"> 1205</span>&#160;<span class="preprocessor">#endif // __SLAVE_HPP__</span></div>
<div class="ttc" id="namespacemesos_1_1internal_1_1slave_html_a63bad54d8050536e0ccb7dce7072ef10"><div class="ttname"><a href="namespacemesos_1_1internal_1_1slave.html#a63bad54d8050536e0ccb7dce7072ef10">mesos::internal::slave::taskOrTaskGroup</a></div><div class="ttdeci">std::string taskOrTaskGroup(const Option&lt; TaskInfo &gt; &amp;task, const Option&lt; TaskGroupInfo &gt; &amp;taskGroup)</div></div>
<div class="ttc" id="classmesos_1_1internal_1_1slave_1_1Slave_html_ad479def15e8e6a1214040b586960595b"><div class="ttname"><a href="classmesos_1_1internal_1_1slave_1_1Slave.html#ad479def15e8e6a1214040b586960595b">mesos::internal::slave::Slave::schedulerMessage</a></div><div class="ttdeci">void schedulerMessage(const SlaveID &amp;slaveId, const FrameworkID &amp;frameworkId, const ExecutorID &amp;executorId, const std::string &amp;data)</div></div>
<div class="ttc" id="classmesos_1_1internal_1_1slave_1_1Slave_html_a2201f63bd7d999ad238f0c6cd7b956ef"><div class="ttname"><a href="classmesos_1_1internal_1_1slave_1_1Slave.html#a2201f63bd7d999ad238f0c6cd7b956ef">mesos::internal::slave::Slave::recoveryInfo</a></div><div class="ttdeci">struct mesos::internal::slave::Slave::RecoveryInfo recoveryInfo</div></div>
<div class="ttc" id="classmesos_1_1internal_1_1slave_1_1Slave_html_a7c5612e80a880f00c74767e13bb068fd"><div class="ttname"><a href="classmesos_1_1internal_1_1slave_1_1Slave.html#a7c5612e80a880f00c74767e13bb068fd">mesos::internal::slave::Slave::usage</a></div><div class="ttdeci">virtual process::Future&lt; ResourceUsage &gt; usage()</div></div>
<div class="ttc" id="src_2slave_2gc_8hpp_html"><div class="ttname"><a href="src_2slave_2gc_8hpp.html">gc.hpp</a></div></div>
<div class="ttc" id="resources_8hpp_html"><div class="ttname"><a href="resources_8hpp.html">resources.hpp</a></div></div>
<div class="ttc" id="classmesos_1_1internal_1_1slave_1_1Slave_html_acd63433cddd0b596275f07f316c32839"><div class="ttname"><a href="classmesos_1_1internal_1_1slave_1_1Slave.html#acd63433cddd0b596275f07f316c32839">mesos::internal::slave::Slave::run</a></div><div class="ttdeci">void run(const FrameworkInfo &amp;frameworkInfo, ExecutorInfo executorInfo, Option&lt; TaskInfo &gt; task, Option&lt; TaskGroupInfo &gt; taskGroup, const process::UPID &amp;pid)</div></div>
<div class="ttc" id="classmesos_1_1internal_1_1slave_1_1Slave_html_ab7696419236c5bd5d455a0f1aeca9e2c"><div class="ttname"><a href="classmesos_1_1internal_1_1slave_1_1Slave.html#ab7696419236c5bd5d455a0f1aeca9e2c">mesos::internal::slave::Slave::executorMessage</a></div><div class="ttdeci">void executorMessage(const SlaveID &amp;slaveId, const FrameworkID &amp;frameworkId, const ExecutorID &amp;executorId, const std::string &amp;data)</div></div>
<div class="ttc" id="namespaceos_1_1stat_html_ac2b3167963d5e471301e1ace772b67f6"><div class="ttname"><a href="namespaceos_1_1stat.html#ac2b3167963d5e471301e1ace772b67f6">os::stat::uid</a></div><div class="ttdeci">Try&lt; uid_t &gt; uid(const std::string &amp;path, const FollowSymlink follow=FOLLOW_SYMLINK)</div><div class="ttdef"><b>Definition:</b> stat.hpp:172</div></div>
<div class="ttc" id="structNothing_html"><div class="ttname"><a href="structNothing.html">Nothing</a></div><div class="ttdef"><b>Definition:</b> nothing.hpp:16</div></div>
<div class="ttc" id="namespacemesos_html_a13035ce0cc66cca4a467787b4716039e"><div class="ttname"><a href="namespacemesos.html#a13035ce0cc66cca4a467787b4716039e">mesos::ContentType</a></div><div class="ttdeci">ContentType</div><div class="ttdef"><b>Definition:</b> http.hpp:43</div></div>
<div class="ttc" id="structmesos_1_1internal_1_1slave_1_1Executor_html_a9037a16ee390fa0893f1229aca4e33ea"><div class="ttname"><a href="structmesos_1_1internal_1_1slave_1_1Executor.html#a9037a16ee390fa0893f1229aca4e33ea">mesos::internal::slave::Executor::id</a></div><div class="ttdeci">const ExecutorID id</div><div class="ttdef"><b>Definition:</b> slave.hpp:995</div></div>
<div class="ttc" id="structmesos_1_1internal_1_1slave_1_1Framework_html"><div class="ttname"><a href="structmesos_1_1internal_1_1slave_1_1Framework.html">mesos::internal::slave::Framework</a></div><div class="ttdef"><b>Definition:</b> slave.hpp:1073</div></div>
<div class="ttc" id="classOption_html"><div class="ttname"><a href="classOption.html">Option</a></div><div class="ttdef"><b>Definition:</b> option.hpp:24</div></div>
<div class="ttc" id="namespacerouting_1_1filter_1_1basic_html_a088d88712e011acb0673da92045b365b"><div class="ttname"><a href="namespacerouting_1_1filter_1_1basic.html#a088d88712e011acb0673da92045b365b">routing::filter::basic::update</a></div><div class="ttdeci">Try&lt; bool &gt; update(const std::string &amp;link, const Handle &amp;parent, uint16_t protocol, const action::Mirror &amp;mirror)</div></div>
<div class="ttc" id="structmesos_1_1internal_1_1slave_1_1Framework_html_a6803557157471add8d9cccc7272beb14"><div class="ttname"><a href="structmesos_1_1internal_1_1slave_1_1Framework.html#a6803557157471add8d9cccc7272beb14">mesos::internal::slave::Framework::~Framework</a></div><div class="ttdeci">~Framework()</div></div>
<div class="ttc" id="structmesos_1_1internal_1_1slave_1_1Executor_html_a8c506bb12f5b2a0acd8f216ebbf0c789"><div class="ttname"><a href="structmesos_1_1internal_1_1slave_1_1Executor.html#a8c506bb12f5b2a0acd8f216ebbf0c789">mesos::internal::slave::Executor::isCommandExecutor</a></div><div class="ttdeci">bool isCommandExecutor() const </div></div>
<div class="ttc" id="classmesos_1_1internal_1_1slave_1_1Slave_html_afc9437a65ba512cdfa4cd082b0e95d55"><div class="ttname"><a href="classmesos_1_1internal_1_1slave_1_1Slave.html#afc9437a65ba512cdfa4cd082b0e95d55">mesos::internal::slave::Slave::exited</a></div><div class="ttdeci">virtual void exited(const process::UPID &amp;pid)</div><div class="ttdoc">Invoked when a linked process has exited. </div></div>
<div class="ttc" id="namespaceprocess_1_1http_html_ad8f400b5e54038df7e5662ec35da05fa"><div class="ttname"><a href="namespaceprocess_1_1http.html#ad8f400b5e54038df7e5662ec35da05fa">process::http::request</a></div><div class="ttdeci">Future&lt; Response &gt; request(const Request &amp;request, bool streamedResponse=false)</div><div class="ttdoc">Asynchronously sends an HTTP request to the process and returns the HTTP response once the entire res...</div></div>
<div class="ttc" id="structmesos_1_1internal_1_1slave_1_1state_1_1ExecutorState_html"><div class="ttname"><a href="structmesos_1_1internal_1_1slave_1_1state_1_1ExecutorState.html">mesos::internal::slave::state::ExecutorState</a></div><div class="ttdef"><b>Definition:</b> state.hpp:226</div></div>
<div class="ttc" id="classmesos_1_1internal_1_1slave_1_1Slave_html_a501cc0851b8609a0305cb6b4604081ab"><div class="ttname"><a href="classmesos_1_1internal_1_1slave_1_1Slave.html#a501cc0851b8609a0305cb6b4604081ab">mesos::internal::slave::Slave::_reregisterExecutor</a></div><div class="ttdeci">void _reregisterExecutor(const process::Future&lt; Nothing &gt; &amp;future, const FrameworkID &amp;frameworkId, const ExecutorID &amp;executorId, const ContainerID &amp;containerId)</div></div>
<div class="ttc" id="evolve_8hpp_html"><div class="ttname"><a href="evolve_8hpp.html">evolve.hpp</a></div></div>
<div class="ttc" id="classmesos_1_1internal_1_1slave_1_1Slave_html_a355d5c297d06b8e818df3edcfd69648b"><div class="ttname"><a href="classmesos_1_1internal_1_1slave_1_1Slave.html#a355d5c297d06b8e818df3edcfd69648b">mesos::internal::slave::Slave::age</a></div><div class="ttdeci">Duration age(double usage)</div></div>
<div class="ttc" id="namespacemesos_1_1internal_1_1slave_html_acc816a5f127bb40e7d5464befda0a0a9"><div class="ttname"><a href="namespacemesos_1_1internal_1_1slave.html#acc816a5f127bb40e7d5464befda0a0a9">mesos::internal::slave::operator&lt;&lt;</a></div><div class="ttdeci">std::ostream &amp; operator&lt;&lt;(std::ostream &amp;stream, const MesosContainerizerProcess::State &amp;state)</div></div>
<div class="ttc" id="classmesos_1_1internal_1_1slave_1_1Slave_html_ac81938c4eeee7234af198a86c13911fc"><div class="ttname"><a href="classmesos_1_1internal_1_1slave_1_1Slave.html#ac81938c4eeee7234af198a86c13911fc">mesos::internal::slave::Slave::finalize</a></div><div class="ttdeci">virtual void finalize()</div><div class="ttdoc">Invoked when a process is terminated. </div></div>
<div class="ttc" id="classmesos_1_1internal_1_1slave_1_1Slave_html_a8c91e52205ed91adf20cee75cfcf43fe"><div class="ttname"><a href="classmesos_1_1internal_1_1slave_1_1Slave.html#a8c91e52205ed91adf20cee75cfcf43fe">mesos::internal::slave::Slave::removeFramework</a></div><div class="ttdeci">virtual void removeFramework(Framework *framework)</div></div>
<div class="ttc" id="structmesos_1_1internal_1_1slave_1_1Framework_html_ae1271f8b0a5113b0413c4c5ca3035ae5"><div class="ttname"><a href="structmesos_1_1internal_1_1slave_1_1Framework.html#ae1271f8b0a5113b0413c4c5ca3035ae5">mesos::internal::slave::Framework::checkpointFramework</a></div><div class="ttdeci">void checkpointFramework() const </div></div>
<div class="ttc" id="classTry_html"><div class="ttname"><a href="classTry.html">Try</a></div><div class="ttdef"><b>Definition:</b> try.hpp:34</div></div>
<div class="ttc" id="classmesos_1_1internal_1_1slave_1_1Slave_html_a5ca99c4d54ff269e0f669480055966b7"><div class="ttname"><a href="classmesos_1_1internal_1_1slave_1_1Slave.html#a5ca99c4d54ff269e0f669480055966b7">mesos::internal::slave::Slave::runTaskGroup</a></div><div class="ttdeci">virtual void runTaskGroup(const process::UPID &amp;from, const FrameworkInfo &amp;frameworkInfo, const ExecutorInfo &amp;executorInfo, const TaskGroupInfo &amp;taskGroupInfo)</div></div>
<div class="ttc" id="classmesos_1_1internal_1_1slave_1_1Slave_html_abb3eb40f60a79598820ef1f7de3e2a42"><div class="ttname"><a href="classmesos_1_1internal_1_1slave_1_1Slave.html#abb3eb40f60a79598820ef1f7de3e2a42">mesos::internal::slave::Slave::updateFramework</a></div><div class="ttdeci">void updateFramework(const FrameworkID &amp;frameworkId, const process::UPID &amp;pid, const FrameworkInfo &amp;frameworkInfo)</div></div>
<div class="ttc" id="structmesos_1_1internal_1_1slave_1_1Executor_html_ab00309cd3d1c22e2ce1051e33d829c3c"><div class="ttname"><a href="structmesos_1_1internal_1_1slave_1_1Executor.html#ab00309cd3d1c22e2ce1051e33d829c3c">mesos::internal::slave::Executor::checkpointExecutor</a></div><div class="ttdeci">void checkpointExecutor()</div></div>
<div class="ttc" id="structmesos_1_1internal_1_1slave_1_1Executor_html_a8c9a1989d4b769bbccd7ce7385fd054d"><div class="ttname"><a href="structmesos_1_1internal_1_1slave_1_1Executor.html#a8c9a1989d4b769bbccd7ce7385fd054d">mesos::internal::slave::Executor::launchedTasks</a></div><div class="ttdeci">LinkedHashMap&lt; TaskID, Task * &gt; launchedTasks</div><div class="ttdef"><b>Definition:</b> slave.hpp:1046</div></div>
<div class="ttc" id="structmesos_1_1internal_1_1slave_1_1Framework_html_af7ac61858b800f9b2adf0778d442f3ab"><div class="ttname"><a href="structmesos_1_1internal_1_1slave_1_1Framework.html#af7ac61858b800f9b2adf0778d442f3ab">mesos::internal::slave::Framework::capabilities</a></div><div class="ttdeci">protobuf::framework::Capabilities capabilities</div><div class="ttdef"><b>Definition:</b> slave.hpp:1114</div></div>
<div class="ttc" id="classmesos_1_1internal_1_1slave_1_1Slave_html_af678d52f877800e895ff62f56be970cf"><div class="ttname"><a href="classmesos_1_1internal_1_1slave_1_1Slave.html#af678d52f877800e895ff62f56be970cf">mesos::internal::slave::Slave::_checkDiskUsage</a></div><div class="ttdeci">void _checkDiskUsage(const process::Future&lt; double &gt; &amp;usage)</div></div>
<div class="ttc" id="classmesos_1_1internal_1_1slave_1_1Slave_html_af47e4a69c5542ae625bdd1a5b7fdb308"><div class="ttname"><a href="classmesos_1_1internal_1_1slave_1_1Slave.html#af47e4a69c5542ae625bdd1a5b7fdb308">mesos::internal::slave::Slave::getFramework</a></div><div class="ttdeci">Framework * getFramework(const FrameworkID &amp;frameworkId) const </div></div>
<div class="ttc" id="classhashset_html"><div class="ttname"><a href="classhashset.html">hashset</a></div><div class="ttdef"><b>Definition:</b> hashset.hpp:32</div></div>
<div class="ttc" id="namespacemesos_1_1internal_1_1slave_html_a3947e7d21a44f62e8d1cdf390ffad1b2"><div class="ttname"><a href="namespacemesos_1_1internal_1_1slave.html#a3947e7d21a44f62e8d1cdf390ffad1b2">mesos::internal::slave::executorEnvironment</a></div><div class="ttdeci">std::map&lt; std::string, std::string &gt; executorEnvironment(const Flags &amp;flags, const ExecutorInfo &amp;executorInfo, const std::string &amp;directory, const SlaveID &amp;slaveId, const process::PID&lt; Slave &gt; &amp;slavePid, bool checkpoint)</div><div class="ttdoc">Returns a map of environment variables necessary in order to launch an executor. </div></div>
<div class="ttc" id="structmesos_1_1internal_1_1slave_1_1Framework_html_adbfec960b7cb705602bdac9853fb0c12"><div class="ttname"><a href="structmesos_1_1internal_1_1slave_1_1Framework.html#adbfec960b7cb705602bdac9853fb0c12">mesos::internal::slave::Framework::state</a></div><div class="ttdeci">enum mesos::internal::slave::Framework::State state</div></div>
<div class="ttc" id="classmesos_1_1internal_1_1slave_1_1Slave_html_aa91b3747671faf9f39404a8730e5ef3d"><div class="ttname"><a href="classmesos_1_1internal_1_1slave_1_1Slave.html#aa91b3747671faf9f39404a8730e5ef3d">mesos::internal::slave::Slave::_statusUpdateAcknowledgement</a></div><div class="ttdeci">void _statusUpdateAcknowledgement(const process::Future&lt; bool &gt; &amp;future, const TaskID &amp;taskId, const FrameworkID &amp;frameworkId, const UUID &amp;uuid)</div></div>
<div class="ttc" id="src_2slave_2metrics_8hpp_html"><div class="ttname"><a href="src_2slave_2metrics_8hpp.html">metrics.hpp</a></div></div>
<div class="ttc" id="classmesos_1_1internal_1_1slave_1_1Slave_html_aa0a3ade2dde9dd762b30fb376497de35"><div class="ttname"><a href="classmesos_1_1internal_1_1slave_1_1Slave.html#aa0a3ade2dde9dd762b30fb376497de35">mesos::internal::slave::Slave::removeExecutor</a></div><div class="ttdeci">void removeExecutor(Framework *framework, Executor *executor)</div></div>
<div class="ttc" id="classmesos_1_1internal_1_1slave_1_1Slave_html_a05bb2d1fc84402385d05c5341dea5827"><div class="ttname"><a href="classmesos_1_1internal_1_1slave_1_1Slave.html#a05bb2d1fc84402385d05c5341dea5827">mesos::internal::slave::Slave::_recoverContainerizer</a></div><div class="ttdeci">process::Future&lt; Nothing &gt; _recoverContainerizer(const Option&lt; state::SlaveState &gt; &amp;state)</div></div>
<div class="ttc" id="structmesos_1_1internal_1_1slave_1_1HttpConnection_html_a75cfb254a95f8aece262b57137442ad2"><div class="ttname"><a href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#a75cfb254a95f8aece262b57137442ad2">mesos::internal::slave::HttpConnection::closed</a></div><div class="ttdeci">process::Future&lt; Nothing &gt; closed() const </div><div class="ttdef"><b>Definition:</b> slave.hpp:896</div></div>
<div class="ttc" id="namespaceos_html_a698aa27e5ea6b1dc1c190b978c2f7960"><div class="ttname"><a href="namespaceos.html#a698aa27e5ea6b1dc1c190b978c2f7960">os::user</a></div><div class="ttdeci">Result&lt; std::string &gt; user(Option&lt; uid_t &gt; uid=None())</div><div class="ttdef"><b>Definition:</b> su.hpp:277</div></div>
<div class="ttc" id="type__utils_8hpp_html"><div class="ttname"><a href="type__utils_8hpp.html">type_utils.hpp</a></div></div>
<div class="ttc" id="os_8hpp_html"><div class="ttname"><a href="os_8hpp.html">os.hpp</a></div></div>
<div class="ttc" id="namespacemesos_1_1internal_html_a845d4d5a46b931d03f340c8afc58b60a"><div class="ttname"><a href="namespacemesos_1_1internal.html#a845d4d5a46b931d03f340c8afc58b60a">mesos::internal::evolve</a></div><div class="ttdeci">v1::AgentID evolve(const SlaveID &amp;slaveId)</div></div>
<div class="ttc" id="namespaceproc_html_a34396c6140a28f583dc13fee3c3c35d4"><div class="ttname"><a href="namespaceproc.html#a34396c6140a28f583dc13fee3c3c35d4">proc::status</a></div><div class="ttdeci">Result&lt; ProcessStatus &gt; status(pid_t pid)</div><div class="ttdef"><b>Definition:</b> proc.hpp:166</div></div>
<div class="ttc" id="classmesos_1_1internal_1_1slave_1_1Slave_html_a2092a012c0c720534bee028e9b0064ab"><div class="ttname"><a href="classmesos_1_1internal_1_1slave_1_1Slave.html#a2092a012c0c720534bee028e9b0064ab">mesos::internal::slave::Slave::authenticate</a></div><div class="ttdeci">void authenticate()</div></div>
<div class="ttc" id="namespacemesos_1_1internal_1_1tests_1_1v1_1_1scheduler_html_acb18ceaa5f6f2338f2a9727af398eb79"><div class="ttname"><a href="namespacemesos_1_1internal_1_1tests_1_1v1_1_1scheduler.html#acb18ceaa5f6f2338f2a9727af398eb79">mesos::internal::tests::v1::scheduler::Call</a></div><div class="ttdeci">mesos::v1::scheduler::Call Call</div><div class="ttdef"><b>Definition:</b> mesos.hpp:1858</div></div>
<div class="ttc" id="classmesos_1_1Resources_html"><div class="ttname"><a href="classmesos_1_1Resources.html">mesos::Resources</a></div><div class="ttdef"><b>Definition:</b> resources.hpp:63</div></div>
<div class="ttc" id="structmesos_1_1internal_1_1slave_1_1Executor_html_a3b2abbbd9f9e9ca5c08b75329ac426c0a47f27688eed5f4b7b8fae1fe60e35d0d"><div class="ttname"><a href="structmesos_1_1internal_1_1slave_1_1Executor.html#a3b2abbbd9f9e9ca5c08b75329ac426c0a47f27688eed5f4b7b8fae1fe60e35d0d">mesos::internal::slave::Executor::REGISTERING</a></div><div class="ttdef"><b>Definition:</b> slave.hpp:984</div></div>
<div class="ttc" id="structmesos_1_1internal_1_1slave_1_1Framework_html_a64da4492057ddd2ed2019e737819d79b"><div class="ttname"><a href="structmesos_1_1internal_1_1slave_1_1Framework.html#a64da4492057ddd2ed2019e737819d79b">mesos::internal::slave::Framework::completedExecutors</a></div><div class="ttdeci">boost::circular_buffer&lt; process::Owned&lt; Executor &gt; &gt; completedExecutors</div><div class="ttdef"><b>Definition:</b> slave.hpp:1136</div></div>
<div class="ttc" id="structmesos_1_1internal_1_1slave_1_1Framework_html_accb4e9c8d32936b20f3d0ddc71fe8adda577bc0be9a10978a6926259b04ac779e"><div class="ttname"><a href="structmesos_1_1internal_1_1slave_1_1Framework.html#accb4e9c8d32936b20f3d0ddc71fe8adda577bc0be9a10978a6926259b04ac779e">mesos::internal::slave::Framework::TERMINATING</a></div><div class="ttdef"><b>Definition:</b> slave.hpp:1104</div></div>
<div class="ttc" id="structmesos_1_1internal_1_1slave_1_1Executor_html"><div class="ttname"><a href="structmesos_1_1internal_1_1slave_1_1Executor.html">mesos::internal::slave::Executor</a></div><div class="ttdef"><b>Definition:</b> slave.hpp:911</div></div>
<div class="ttc" id="namespacerouting_1_1link_html_a8486fce953717fcb949bfdc17a2dd3e1"><div class="ttname"><a href="namespacerouting_1_1link.html#a8486fce953717fcb949bfdc17a2dd3e1">routing::link::statistics</a></div><div class="ttdeci">Result&lt; hashmap&lt; std::string, uint64_t &gt; &gt; statistics(const std::string &amp;link)</div></div>
<div class="ttc" id="classmesos_1_1internal_1_1slave_1_1Slave_html_aae43730eb6c9f2425b6480eb5ac0cd76"><div class="ttname"><a href="classmesos_1_1internal_1_1slave_1_1Slave.html#aae43730eb6c9f2425b6480eb5ac0cd76">mesos::internal::slave::Slave::runTask</a></div><div class="ttdeci">virtual void runTask(const process::UPID &amp;from, const FrameworkInfo &amp;frameworkInfo, const FrameworkID &amp;frameworkId, const process::UPID &amp;pid, const TaskInfo &amp;task)</div></div>
<div class="ttc" id="structmesos_1_1internal_1_1slave_1_1Slave_1_1RecoveryInfo_html_abdbf7f4d9d923c57105b4eb1dac7e3d8"><div class="ttname"><a href="structmesos_1_1internal_1_1slave_1_1Slave_1_1RecoveryInfo.html#abdbf7f4d9d923c57105b4eb1dac7e3d8">mesos::internal::slave::Slave::RecoveryInfo::reconnect</a></div><div class="ttdeci">bool reconnect</div><div class="ttdef"><b>Definition:</b> slave.hpp:330</div></div>
<div class="ttc" id="classmesos_1_1internal_1_1slave_1_1Slave_html_a9c1e1cd64c97eca9037187ee4a782999"><div class="ttname"><a href="classmesos_1_1internal_1_1slave_1_1Slave.html#a9c1e1cd64c97eca9037187ee4a782999">mesos::internal::slave::Slave::executorTerminated</a></div><div class="ttdeci">virtual void executorTerminated(const FrameworkID &amp;frameworkId, const ExecutorID &amp;executorId, const process::Future&lt; Option&lt; mesos::slave::ContainerTermination &gt;&gt; &amp;termination)</div></div>
<div class="ttc" id="agent_2agent_8hpp_html"><div class="ttname"><a href="agent_2agent_8hpp.html">agent.hpp</a></div></div>
<div class="ttc" id="structmesos_1_1internal_1_1slave_1_1Executor_html_a78d4cb7ddccb6a2f7cdf31475ed7e83d"><div class="ttname"><a href="structmesos_1_1internal_1_1slave_1_1Executor.html#a78d4cb7ddccb6a2f7cdf31475ed7e83d">mesos::internal::slave::Executor::updateTaskState</a></div><div class="ttdeci">Try&lt; Nothing &gt; updateTaskState(const TaskStatus &amp;status)</div></div>
<div class="ttc" id="classmesos_1_1internal_1_1Files_html"><div class="ttname"><a href="classmesos_1_1internal_1_1Files.html">mesos::internal::Files</a></div><div class="ttdef"><b>Definition:</b> files.hpp:73</div></div>
<div class="ttc" id="classmesos_1_1internal_1_1slave_1_1Slave_html_a6f4d260ba9dd50482b7bd8f5021f29b3"><div class="ttname"><a href="classmesos_1_1internal_1_1slave_1_1Slave.html#a6f4d260ba9dd50482b7bd8f5021f29b3">mesos::internal::slave::Slave::subscribe</a></div><div class="ttdeci">void subscribe(HttpConnection http, const executor::Call::Subscribe &amp;subscribe, Framework *framework, Executor *executor)</div></div>
<div class="ttc" id="include_2mesos_2module_2authenticatee_8hpp_html"><div class="ttname"><a href="include_2mesos_2module_2authenticatee_8hpp.html">authenticatee.hpp</a></div></div>
<div class="ttc" id="classmesos_1_1internal_1_1slave_1_1Slave_html_af79c3eb007e12f37faec4a24d1f95cc4"><div class="ttname"><a href="classmesos_1_1internal_1_1slave_1_1Slave.html#af79c3eb007e12f37faec4a24d1f95cc4">mesos::internal::slave::Slave::state</a></div><div class="ttdeci">enum mesos::internal::slave::Slave::State state</div></div>
<div class="ttc" id="namespacemesos_1_1internal_1_1slave_html_aa17bd5c6396d3fc8cbfe1579affbcbae"><div class="ttname"><a href="namespacemesos_1_1internal_1_1slave.html#aa17bd5c6396d3fc8cbfe1579affbcbae">mesos::internal::slave::defaultExecutorCommandInfo</a></div><div class="ttdeci">CommandInfo defaultExecutorCommandInfo(const std::string &amp;launcherDir, const Option&lt; std::string &gt; &amp;user)</div></div>
<div class="ttc" id="classmesos_1_1internal_1_1slave_1_1Slave_html_a7671d5dc95a480163e3a52466767ab80"><div class="ttname"><a href="classmesos_1_1internal_1_1slave_1_1Slave.html#a7671d5dc95a480163e3a52466767ab80">mesos::internal::slave::Slave::reregisterExecutor</a></div><div class="ttdeci">void reregisterExecutor(const process::UPID &amp;from, const FrameworkID &amp;frameworkId, const ExecutorID &amp;executorId, const std::vector&lt; TaskInfo &gt; &amp;tasks, const std::vector&lt; StatusUpdate &gt; &amp;updates)</div></div>
<div class="ttc" id="classmesos_1_1internal_1_1slave_1_1Flags_html"><div class="ttname"><a href="classmesos_1_1internal_1_1slave_1_1Flags.html">mesos::internal::slave::Flags</a></div><div class="ttdef"><b>Definition:</b> flags.hpp:38</div></div>
<div class="ttc" id="structmesos_1_1internal_1_1slave_1_1Framework_html_ad7dbb2013ee11ad0a55f177bfd7a0461"><div class="ttname"><a href="structmesos_1_1internal_1_1slave_1_1Framework.html#ad7dbb2013ee11ad0a55f177bfd7a0461">mesos::internal::slave::Framework::pid</a></div><div class="ttdeci">Option&lt; process::UPID &gt; pid</div><div class="ttdef"><b>Definition:</b> slave.hpp:1121</div></div>
<div class="ttc" id="classDuration_html"><div class="ttname"><a href="classDuration.html">Duration</a></div><div class="ttdef"><b>Definition:</b> duration.hpp:32</div></div>
<div class="ttc" id="slave_2qos__controller_8hpp_html"><div class="ttname"><a href="slave_2qos__controller_8hpp.html">qos_controller.hpp</a></div></div>
<div class="ttc" id="src_2common_2http_8hpp_html"><div class="ttname"><a href="src_2common_2http_8hpp.html">http.hpp</a></div></div>
<div class="ttc" id="classmesos_1_1internal_1_1slave_1_1Slave_html_a687e239fe854b91b0f64e076ab4dbf57"><div class="ttname"><a href="classmesos_1_1internal_1_1slave_1_1Slave.html#a687e239fe854b91b0f64e076ab4dbf57">mesos::internal::slave::Slave::recoverFramework</a></div><div class="ttdeci">void recoverFramework(const state::FrameworkState &amp;state, const hashset&lt; ExecutorID &gt; &amp;executorsToRecheckpoint, const hashmap&lt; ExecutorID, hashset&lt; TaskID &gt;&gt; &amp;tasksToRecheckpoint)</div></div>
<div class="ttc" id="classmesos_1_1internal_1_1slave_1_1Slave_html_a3c2d5a4940f75c7fa8bd624093882f34"><div class="ttname"><a href="classmesos_1_1internal_1_1slave_1_1Slave.html#a3c2d5a4940f75c7fa8bd624093882f34">mesos::internal::slave::Slave::_statusUpdate</a></div><div class="ttdeci">void _statusUpdate(StatusUpdate update, const Option&lt; process::UPID &gt; &amp;pid, const ExecutorID &amp;executorId, const process::Future&lt; ContainerStatus &gt; &amp;future)</div></div>
<div class="ttc" id="classProtobufProcess_html_a6c404fdc490a7199a0d2ad881d588e5c"><div class="ttname"><a href="classProtobufProcess.html#a6c404fdc490a7199a0d2ad881d588e5c">ProtobufProcess::send</a></div><div class="ttdeci">void send(const process::UPID &amp;to, const google::protobuf::Message &amp;message)</div><div class="ttdef"><b>Definition:</b> protobuf.hpp:112</div></div>
<div class="ttc" id="classOption_html_a4e3bf8416d95246f43c91f1b5c309323"><div class="ttname"><a href="classOption.html#a4e3bf8416d95246f43c91f1b5c309323">Option::isSome</a></div><div class="ttdeci">bool isSome() const </div><div class="ttdef"><b>Definition:</b> option.hpp:108</div></div>
<div class="ttc" id="structmesos_1_1internal_1_1slave_1_1Executor_html_a99724999c57ea8059b70451be58ab6af"><div class="ttname"><a href="structmesos_1_1internal_1_1slave_1_1Executor.html#a99724999c57ea8059b70451be58ab6af">mesos::internal::slave::Executor::completeTask</a></div><div class="ttdeci">void completeTask(const TaskID &amp;taskId)</div></div>
<div class="ttc" id="structprocess_1_1http_1_1Request_html"><div class="ttname"><a href="structprocess_1_1http_1_1Request.html">process::http::Request</a></div><div class="ttdef"><b>Definition:</b> http.hpp:511</div></div>
<div class="ttc" id="structJSON_1_1Object_html"><div class="ttname"><a href="structJSON_1_1Object.html">JSON::Object</a></div><div class="ttdef"><b>Definition:</b> json.hpp:153</div></div>
<div class="ttc" id="3rdparty_2libprocess_2include_2process_2shared_8hpp_html"><div class="ttname"><a href="3rdparty_2libprocess_2include_2process_2shared_8hpp.html">shared.hpp</a></div></div>
<div class="ttc" id="classmesos_1_1internal_1_1slave_1_1Slave_html_a1e0c26aadd84e879a41ce399d685e421"><div class="ttname"><a href="classmesos_1_1internal_1_1slave_1_1Slave.html#a1e0c26aadd84e879a41ce399d685e421">mesos::internal::slave::Slave::statusUpdateAcknowledgement</a></div><div class="ttdeci">void statusUpdateAcknowledgement(const process::UPID &amp;from, const SlaveID &amp;slaveId, const FrameworkID &amp;frameworkId, const TaskID &amp;taskId, const std::string &amp;uuid)</div></div>
<div class="ttc" id="classmesos_1_1internal_1_1slave_1_1Slave_html_ac738a6078b63c45cc4c6000f928cabad"><div class="ttname"><a href="classmesos_1_1internal_1_1slave_1_1Slave.html#ac738a6078b63c45cc4c6000f928cabad">mesos::internal::slave::Slave::signaled</a></div><div class="ttdeci">void signaled(int signal, int uid)</div></div>
<div class="ttc" id="structmesos_1_1internal_1_1slave_1_1HttpConnection_html_a6bd61956671fa0cab784ac1eb0d2b834"><div class="ttname"><a href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#a6bd61956671fa0cab784ac1eb0d2b834">mesos::internal::slave::HttpConnection::close</a></div><div class="ttdeci">bool close()</div><div class="ttdef"><b>Definition:</b> slave.hpp:891</div></div>
<div class="ttc" id="structmesos_1_1internal_1_1slave_1_1Executor_html_abd7e32a67b2bf5409c1ab855f3220625"><div class="ttname"><a href="structmesos_1_1internal_1_1slave_1_1Executor.html#abd7e32a67b2bf5409c1ab855f3220625">mesos::internal::slave::Executor::terminatedTasks</a></div><div class="ttdeci">LinkedHashMap&lt; TaskID, Task * &gt; terminatedTasks</div><div class="ttdef"><b>Definition:</b> slave.hpp:1049</div></div>
<div class="ttc" id="structmesos_1_1internal_1_1slave_1_1HttpConnection_html_aa56f337e2e9a40afbcae740883f7342e"><div class="ttname"><a href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#aa56f337e2e9a40afbcae740883f7342e">mesos::internal::slave::HttpConnection::contentType</a></div><div class="ttdeci">ContentType contentType</div><div class="ttdef"><b>Definition:</b> slave.hpp:902</div></div>
<div class="ttc" id="structmesos_1_1internal_1_1slave_1_1Executor_html_a27e0e6e088c0fd88a0c7f679c964c409"><div class="ttname"><a href="structmesos_1_1internal_1_1slave_1_1Executor.html#a27e0e6e088c0fd88a0c7f679c964c409">mesos::internal::slave::Executor::state</a></div><div class="ttdeci">enum mesos::internal::slave::Executor::State state</div></div>
<div class="ttc" id="structmesos_1_1internal_1_1slave_1_1Executor_html_a79093461e7bc35f4b4b9c7a796b88e2e"><div class="ttname"><a href="structmesos_1_1internal_1_1slave_1_1Executor.html#a79093461e7bc35f4b4b9c7a796b88e2e">mesos::internal::slave::Executor::incompleteTasks</a></div><div class="ttdeci">bool incompleteTasks()</div></div>
<div class="ttc" id="classhashmap_html"><div class="ttname"><a href="classhashmap.html">hashmap</a></div><div class="ttdef"><b>Definition:</b> hashmap.hpp:36</div></div>
<div class="ttc" id="classmesos_1_1internal_1_1slave_1_1Slave_html_a76f40f8c10951d9526cb63bcea66f5e5"><div class="ttname"><a href="classmesos_1_1internal_1_1slave_1_1Slave.html#a76f40f8c10951d9526cb63bcea66f5e5">mesos::internal::slave::Slave::garbageCollect</a></div><div class="ttdeci">process::Future&lt; Nothing &gt; garbageCollect(const std::string &amp;path)</div></div>
<div class="ttc" id="classmesos_1_1slave_1_1ResourceEstimator_html"><div class="ttname"><a href="classmesos_1_1slave_1_1ResourceEstimator.html">mesos::slave::ResourceEstimator</a></div><div class="ttdef"><b>Definition:</b> resource_estimator.hpp:37</div></div>
<div class="ttc" id="structmesos_1_1internal_1_1slave_1_1Framework_html_a65933e3034706258069b54549081fdbf"><div class="ttname"><a href="structmesos_1_1internal_1_1slave_1_1Framework.html#a65933e3034706258069b54549081fdbf">mesos::internal::slave::Framework::id</a></div><div class="ttdeci">const FrameworkID id() const </div><div class="ttdef"><b>Definition:</b> slave.hpp:1099</div></div>
<div class="ttc" id="namespacestrings_html_a269921757daf11096d3f5e02686f8444"><div class="ttname"><a href="namespacestrings.html#a269921757daf11096d3f5e02686f8444">strings::contains</a></div><div class="ttdeci">bool contains(const std::string &amp;s, const std::string &amp;substr)</div><div class="ttdef"><b>Definition:</b> strings.hpp:394</div></div>
<div class="ttc" id="structmesos_1_1internal_1_1slave_1_1Executor_html_a546589bcf81d103b1e50be965494d430"><div class="ttname"><a href="structmesos_1_1internal_1_1slave_1_1Executor.html#a546589bcf81d103b1e50be965494d430">mesos::internal::slave::Executor::closeHttpConnection</a></div><div class="ttdeci">void closeHttpConnection()</div></div>
<div class="ttc" id="classmesos_1_1internal_1_1recordio_1_1Reader_html"><div class="ttname"><a href="classmesos_1_1internal_1_1recordio_1_1Reader.html">mesos::internal::recordio::Reader</a></div><div class="ttdoc">Provides RecordIO decoding on top of an http::Pipe::Reader. </div><div class="ttdef"><b>Definition:</b> recordio.hpp:62</div></div>
<div class="ttc" id="classmesos_1_1internal_1_1slave_1_1Containerizer_html"><div class="ttname"><a href="classmesos_1_1internal_1_1slave_1_1Containerizer.html">mesos::internal::slave::Containerizer</a></div><div class="ttdef"><b>Definition:</b> containerizer.hpp:55</div></div>
<div class="ttc" id="classmesos_1_1internal_1_1slave_1_1Slave_html_ab3245d2b6f67136e7b1f523a09eb7de4"><div class="ttname"><a href="classmesos_1_1internal_1_1slave_1_1Slave.html#ab3245d2b6f67136e7b1f523a09eb7de4">mesos::internal::slave::Slave::shutdownExecutorTimeout</a></div><div class="ttdeci">void shutdownExecutorTimeout(const FrameworkID &amp;frameworkId, const ExecutorID &amp;executorId, const ContainerID &amp;containerId)</div></div>
<div class="ttc" id="structmesos_1_1internal_1_1slave_1_1Executor_html_ab05d451e6d84e8da41ac5b156cb7a79f"><div class="ttname"><a href="structmesos_1_1internal_1_1slave_1_1Executor.html#ab05d451e6d84e8da41ac5b156cb7a79f">mesos::internal::slave::Executor::checkpoint</a></div><div class="ttdeci">const bool checkpoint</div><div class="ttdef"><b>Definition:</b> slave.hpp:1009</div></div>
<div class="ttc" id="classprocess_1_1Shared_html"><div class="ttname"><a href="classprocess_1_1Shared.html">process::Shared&lt; process::RateLimiter &gt;</a></div></div>
<div class="ttc" id="structmesos_1_1internal_1_1slave_1_1Framework_html_a28542cb83d680c4bd37f31ae58382866"><div class="ttname"><a href="structmesos_1_1internal_1_1slave_1_1Framework.html#a28542cb83d680c4bd37f31ae58382866">mesos::internal::slave::Framework::slave</a></div><div class="ttdeci">Slave * slave</div><div class="ttdef"><b>Definition:</b> slave.hpp:1110</div></div>
<div class="ttc" id="src_2common_2recordio_8hpp_html"><div class="ttname"><a href="src_2common_2recordio_8hpp.html">recordio.hpp</a></div></div>
<div class="ttc" id="classmesos_1_1internal_1_1slave_1_1Slave_html"><div class="ttname"><a href="classmesos_1_1internal_1_1slave_1_1Slave.html">mesos::internal::slave::Slave</a></div><div class="ttdef"><b>Definition:</b> slave.hpp:105</div></div>
<div class="ttc" id="classmesos_1_1internal_1_1slave_1_1Slave_html_a15efbb67f94f85e7d08726c0697c179b"><div class="ttname"><a href="classmesos_1_1internal_1_1slave_1_1Slave.html#a15efbb67f94f85e7d08726c0697c179b">mesos::internal::slave::Slave::registered</a></div><div class="ttdeci">void registered(const process::UPID &amp;from, const SlaveID &amp;slaveId, const MasterSlaveConnection &amp;connection)</div></div>
<div class="ttc" id="structprocess_1_1UPID_html"><div class="ttname"><a href="structprocess_1_1UPID.html">process::UPID</a></div><div class="ttdoc">An &amp;quot;untyped&amp;quot; PID, used to encapsulate the process ID for lower-layer abstractions (eg...</div><div class="ttdef"><b>Definition:</b> pid.hpp:39</div></div>
<div class="ttc" id="structprocess_1_1http_1_1URL_html"><div class="ttname"><a href="structprocess_1_1http_1_1URL.html">process::http::URL</a></div><div class="ttdef"><b>Definition:</b> http.hpp:129</div></div>
<div class="ttc" id="master_2detector_8hpp_html"><div class="ttname"><a href="master_2detector_8hpp.html">detector.hpp</a></div></div>
<div class="ttc" id="structmesos_1_1internal_1_1slave_1_1Framework_html_a440112e6053e7d36a46c18580a1b5133"><div class="ttname"><a href="structmesos_1_1internal_1_1slave_1_1Framework.html#a440112e6053e7d36a46c18580a1b5133">mesos::internal::slave::Framework::recoverExecutor</a></div><div class="ttdeci">void recoverExecutor(const state::ExecutorState &amp;state, bool recheckpointExecutor, const hashset&lt; TaskID &gt; &amp;tasksToRecheckpoint)</div></div>
<div class="ttc" id="bytes_8hpp_html"><div class="ttname"><a href="bytes_8hpp.html">bytes.hpp</a></div></div>
<div class="ttc" id="classmesos_1_1internal_1_1slave_1_1Slave_html_aa14da55de5c585de7f443afa61e042d7"><div class="ttname"><a href="classmesos_1_1internal_1_1slave_1_1Slave.html#aa14da55de5c585de7f443afa61e042d7">mesos::internal::slave::Slave::pingTimeout</a></div><div class="ttdeci">void pingTimeout(process::Future&lt; Option&lt; MasterInfo &gt;&gt; future)</div></div>
<div class="ttc" id="classmesos_1_1internal_1_1slave_1_1Slave_html_ace99b8066d4aed8f21395f025118fc10"><div class="ttname"><a href="classmesos_1_1internal_1_1slave_1_1Slave.html#ace99b8066d4aed8f21395f025118fc10">mesos::internal::slave::Slave::initialize</a></div><div class="ttdeci">virtual void initialize()</div><div class="ttdoc">Invoked when a process gets spawned. </div></div>
<div class="ttc" id="structmesos_1_1internal_1_1slave_1_1Executor_html_addae2cfbd131b946f10a7986aafac151"><div class="ttname"><a href="structmesos_1_1internal_1_1slave_1_1Executor.html#addae2cfbd131b946f10a7986aafac151">mesos::internal::slave::Executor::pendingTermination</a></div><div class="ttdeci">Option&lt; mesos::slave::ContainerTermination &gt; pendingTermination</div><div class="ttdef"><b>Definition:</b> slave.hpp:1062</div></div>
<div class="ttc" id="structmesos_1_1internal_1_1RequestMediaTypes_html"><div class="ttname"><a href="structmesos_1_1internal_1_1RequestMediaTypes.html">mesos::internal::RequestMediaTypes</a></div><div class="ttdef"><b>Definition:</b> http.hpp:55</div></div>
<div class="ttc" id="structmesos_1_1internal_1_1slave_1_1Executor_html_aaad02226a9d30491088dd9ef315effbc"><div class="ttname"><a href="structmesos_1_1internal_1_1slave_1_1Executor.html#aaad02226a9d30491088dd9ef315effbc">mesos::internal::slave::Executor::containerId</a></div><div class="ttdeci">const ContainerID containerId</div><div class="ttdef"><b>Definition:</b> slave.hpp:1000</div></div>
<div class="ttc" id="classprocess_1_1http_1_1Pipe_1_1Writer_html"><div class="ttname"><a href="classprocess_1_1http_1_1Pipe_1_1Writer.html">process::http::Pipe::Writer</a></div><div class="ttdef"><b>Definition:</b> http.hpp:340</div></div>
<div class="ttc" id="path_8hpp_html"><div class="ttname"><a href="path_8hpp.html">path.hpp</a></div></div>
<div class="ttc" id="structmesos_1_1internal_1_1slave_1_1Executor_html_a2fc2e9b051c144f259f003b79a3d5ec3"><div class="ttname"><a href="structmesos_1_1internal_1_1slave_1_1Executor.html#a2fc2e9b051c144f259f003b79a3d5ec3">mesos::internal::slave::Executor::queuedTaskGroups</a></div><div class="ttdeci">std::list&lt; TaskGroupInfo &gt; queuedTaskGroups</div><div class="ttdef"><b>Definition:</b> slave.hpp:1043</div></div>
<div class="ttc" id="structmesos_1_1internal_1_1slave_1_1state_1_1TaskState_html"><div class="ttname"><a href="structmesos_1_1internal_1_1slave_1_1state_1_1TaskState.html">mesos::internal::slave::state::TaskState</a></div><div class="ttdef"><b>Definition:</b> state.hpp:177</div></div>
<div class="ttc" id="structmesos_1_1internal_1_1slave_1_1Executor_html_a2743c0fdfd1c12f467e85e628a779114"><div class="ttname"><a href="structmesos_1_1internal_1_1slave_1_1Executor.html#a2743c0fdfd1c12f467e85e628a779114">mesos::internal::slave::Executor::Executor</a></div><div class="ttdeci">Executor(Slave *slave, const FrameworkID &amp;frameworkId, const ExecutorInfo &amp;info, const ContainerID &amp;containerId, const std::string &amp;directory, const Option&lt; std::string &gt; &amp;user, bool checkpoint)</div></div>
<div class="ttc" id="structmesos_1_1internal_1_1slave_1_1Executor_html_a0a36624c6fe507a5fe4afa57543c5257"><div class="ttname"><a href="structmesos_1_1internal_1_1slave_1_1Executor.html#a0a36624c6fe507a5fe4afa57543c5257">mesos::internal::slave::Executor::checkpointTask</a></div><div class="ttdeci">void checkpointTask(const TaskInfo &amp;task)</div></div>
<div class="ttc" id="classprocess_1_1http_1_1Pipe_1_1Writer_html_aecc37af3f66360a47184a1146ae92756"><div class="ttname"><a href="classprocess_1_1http_1_1Pipe_1_1Writer.html#aecc37af3f66360a47184a1146ae92756">process::http::Pipe::Writer::close</a></div><div class="ttdeci">bool close()</div></div>
<div class="ttc" id="classmesos_1_1internal_1_1slave_1_1Slave_html_ad0e96504544270343dadd39350e7a96e"><div class="ttname"><a href="classmesos_1_1internal_1_1slave_1_1Slave.html#ad0e96504544270343dadd39350e7a96e">mesos::internal::slave::Slave::Slave</a></div><div class="ttdeci">Slave(const std::string &amp;id, const Flags &amp;flags, mesos::master::detector::MasterDetector *detector, Containerizer *containerizer, Files *files, GarbageCollector *gc, StatusUpdateManager *statusUpdateManager, mesos::slave::ResourceEstimator *resourceEstimator, mesos::slave::QoSController *qosController, const Option&lt; Authorizer * &gt; &amp;authorizer)</div></div>
<div class="ttc" id="classSeconds_html"><div class="ttname"><a href="classSeconds.html">Seconds</a></div><div class="ttdef"><b>Definition:</b> duration.hpp:243</div></div>
<div class="ttc" id="classmesos_1_1internal_1_1slave_1_1Slave_html_a1200b872e31b092349f482e4711d41e4"><div class="ttname"><a href="classmesos_1_1internal_1_1slave_1_1Slave.html#a1200b872e31b092349f482e4711d41e4">mesos::internal::slave::Slave::getExecutorInfo</a></div><div class="ttdeci">ExecutorInfo getExecutorInfo(const FrameworkInfo &amp;frameworkInfo, const TaskInfo &amp;task) const </div></div>
<div class="ttc" id="src_2slave_2state_8hpp_html"><div class="ttname"><a href="src_2slave_2state_8hpp.html">state.hpp</a></div></div>
<div class="ttc" id="structid_1_1UUID_html"><div class="ttname"><a href="structid_1_1UUID.html">id::UUID</a></div><div class="ttdef"><b>Definition:</b> uuid.hpp:41</div></div>
<div class="ttc" id="classmesos_1_1internal_1_1slave_1_1Slave_html_a2ca66ded2a1266abdf00e370691a80df"><div class="ttname"><a href="classmesos_1_1internal_1_1slave_1_1Slave.html#a2ca66ded2a1266abdf00e370691a80df">mesos::internal::slave::Slave::forward</a></div><div class="ttdeci">void forward(StatusUpdate update)</div></div>
<div class="ttc" id="structmesos_1_1internal_1_1slave_1_1Executor_html_a806e8af598eb003694dbaeacdda2c66b"><div class="ttname"><a href="structmesos_1_1internal_1_1slave_1_1Executor.html#a806e8af598eb003694dbaeacdda2c66b">mesos::internal::slave::Executor::queuedTasks</a></div><div class="ttdeci">LinkedHashMap&lt; TaskID, TaskInfo &gt; queuedTasks</div><div class="ttdef"><b>Definition:</b> slave.hpp:1036</div></div>
<div class="ttc" id="structmesos_1_1internal_1_1protobuf_1_1framework_1_1Capabilities_html"><div class="ttname"><a href="structmesos_1_1internal_1_1protobuf_1_1framework_1_1Capabilities.html">mesos::internal::protobuf::framework::Capabilities</a></div><div class="ttdef"><b>Definition:</b> protobuf_utils.hpp:271</div></div>
<div class="ttc" id="paths_8hpp_html"><div class="ttname"><a href="paths_8hpp.html">paths.hpp</a></div></div>
<div class="ttc" id="structmesos_1_1internal_1_1slave_1_1Executor_html_ad432746af325d55919e69efe7d82fbb9"><div class="ttname"><a href="structmesos_1_1internal_1_1slave_1_1Executor.html#ad432746af325d55919e69efe7d82fbb9">mesos::internal::slave::Executor::http</a></div><div class="ttdeci">Option&lt; HttpConnection &gt; http</div><div class="ttdef"><b>Definition:</b> slave.hpp:1023</div></div>
<div class="ttc" id="classprocess_1_1http_1_1Pipe_1_1Writer_html_ad945bef2134c872f8ea43dea6db84c66"><div class="ttname"><a href="classprocess_1_1http_1_1Pipe_1_1Writer.html#ad945bef2134c872f8ea43dea6db84c66">process::http::Pipe::Writer::write</a></div><div class="ttdeci">bool write(std::string s)</div></div>
<div class="ttc" id="classprocess_1_1http_1_1Pipe_1_1Writer_html_afc6072a9fbcb92a6a1b4978b89797583"><div class="ttname"><a href="classprocess_1_1http_1_1Pipe_1_1Writer.html#afc6072a9fbcb92a6a1b4978b89797583">process::http::Pipe::Writer::readerClosed</a></div><div class="ttdeci">Future&lt; Nothing &gt; readerClosed() const </div></div>
<div class="ttc" id="classprocess_1_1Promise_html"><div class="ttname"><a href="classprocess_1_1Promise.html">process::Promise&lt; Nothing &gt;</a></div></div>
<div class="ttc" id="include_2mesos_2slave_2containerizer_8hpp_html"><div class="ttname"><a href="include_2mesos_2slave_2containerizer_8hpp.html">containerizer.hpp</a></div></div>
<div class="ttc" id="src_2slave_2constants_8hpp_html"><div class="ttname"><a href="src_2slave_2constants_8hpp.html">constants.hpp</a></div></div>
<div class="ttc" id="classmesos_1_1internal_1_1slave_1_1Slave_html_a33768639ed69e6812b805bd70b29bf35"><div class="ttname"><a href="classmesos_1_1internal_1_1slave_1_1Slave.html#a33768639ed69e6812b805bd70b29bf35">mesos::internal::slave::Slave::Metrics</a></div><div class="ttdeci">friend struct Metrics</div><div class="ttdef"><b>Definition:</b> slave.hpp:734</div></div>
<div class="ttc" id="include_2mesos_2v1_2executor_2executor_8hpp_html"><div class="ttname"><a href="include_2mesos_2v1_2executor_2executor_8hpp.html">executor.hpp</a></div></div>
<div class="ttc" id="structmesos_1_1internal_1_1slave_1_1Framework_html_aaa044d0c042d68e59815f1244440560e"><div class="ttname"><a href="structmesos_1_1internal_1_1slave_1_1Framework.html#aaa044d0c042d68e59815f1244440560e">mesos::internal::slave::Framework::getExecutor</a></div><div class="ttdeci">Executor * getExecutor(const ExecutorID &amp;executorId) const </div></div>
<div class="ttc" id="classOption_html_a21358442c0fac1cc978a67a9a9089a79"><div class="ttname"><a href="classOption.html#a21358442c0fac1cc978a67a9a9089a79">Option::get</a></div><div class="ttdeci">const T &amp; get() const &amp;</div><div class="ttdef"><b>Definition:</b> option.hpp:111</div></div>
<div class="ttc" id="include_2mesos_2attributes_8hpp_html"><div class="ttname"><a href="include_2mesos_2attributes_8hpp.html">attributes.hpp</a></div></div>
<div class="ttc" id="classmesos_1_1internal_1_1slave_1_1Slave_html_ad615bdfc4c89ec56f96c61d493507516"><div class="ttname"><a href="classmesos_1_1internal_1_1slave_1_1Slave.html#ad615bdfc4c89ec56f96c61d493507516">mesos::internal::slave::Slave::_recover</a></div><div class="ttdeci">process::Future&lt; Nothing &gt; _recover()</div></div>
<div class="ttc" id="structmesos_1_1internal_1_1slave_1_1Framework_html_a98caed7c7f98f89fa2cb716cbfe38217"><div class="ttname"><a href="structmesos_1_1internal_1_1slave_1_1Framework.html#a98caed7c7f98f89fa2cb716cbfe38217">mesos::internal::slave::Framework::Framework</a></div><div class="ttdeci">Framework(Slave *slave, const Flags &amp;slaveFlags, const FrameworkInfo &amp;info, const Option&lt; process::UPID &gt; &amp;pid)</div></div>
<div class="ttc" id="structmesos_1_1internal_1_1slave_1_1Executor_html_a97c67b96dd783f1bbe974a3e3759dff4"><div class="ttname"><a href="structmesos_1_1internal_1_1slave_1_1Executor.html#a97c67b96dd783f1bbe974a3e3759dff4">mesos::internal::slave::Executor::addTask</a></div><div class="ttdeci">Task * addTask(const TaskInfo &amp;task)</div></div>
<div class="ttc" id="classProtobufProcess_html"><div class="ttname"><a href="classProtobufProcess.html">ProtobufProcess</a></div><div class="ttdef"><b>Definition:</b> protobuf.hpp:94</div></div>
<div class="ttc" id="foreach_8hpp_html_a28670619e64a84270d76f07b0f6eb3b6"><div class="ttname"><a href="foreach_8hpp.html#a28670619e64a84270d76f07b0f6eb3b6">foreachvalue</a></div><div class="ttdeci">#define foreachvalue(VALUE, ELEMS)</div><div class="ttdef"><b>Definition:</b> foreach.hpp:77</div></div>
<div class="ttc" id="3rdparty_2stout_2include_2stout_2recordio_8hpp_html"><div class="ttname"><a href="3rdparty_2stout_2include_2stout_2recordio_8hpp.html">recordio.hpp</a></div></div>
<div class="ttc" id="structmesos_1_1internal_1_1slave_1_1Executor_html_a3b2abbbd9f9e9ca5c08b75329ac426c0"><div class="ttname"><a href="structmesos_1_1internal_1_1slave_1_1Executor.html#a3b2abbbd9f9e9ca5c08b75329ac426c0">mesos::internal::slave::Executor::State</a></div><div class="ttdeci">State</div><div class="ttdef"><b>Definition:</b> slave.hpp:982</div></div>
<div class="ttc" id="option_8hpp_html"><div class="ttname"><a href="option_8hpp.html">option.hpp</a></div></div>
<div class="ttc" id="classmesos_1_1internal_1_1slave_1_1Slave_html_a5fd37029b97e30705b46a8187cd52ee0"><div class="ttname"><a href="classmesos_1_1internal_1_1slave_1_1Slave.html#a5fd37029b97e30705b46a8187cd52ee0">mesos::internal::slave::Slave::checkpointResources</a></div><div class="ttdeci">void checkpointResources(const std::vector&lt; Resource &gt; &amp;checkpointedResources)</div></div>
<div class="ttc" id="3rdparty_2libprocess_2include_2process_2protobuf_8hpp_html"><div class="ttname"><a href="3rdparty_2libprocess_2include_2process_2protobuf_8hpp.html">protobuf.hpp</a></div></div>
<div class="ttc" id="structmesos_1_1internal_1_1slave_1_1Executor_html_aabe86347ab1d23297172813dc5d1c8f5"><div class="ttname"><a href="structmesos_1_1internal_1_1slave_1_1Executor.html#aabe86347ab1d23297172813dc5d1c8f5">mesos::internal::slave::Executor::directory</a></div><div class="ttdeci">const std::string directory</div><div class="ttdef"><b>Definition:</b> slave.hpp:1002</div></div>
<div class="ttc" id="structmesos_1_1internal_1_1slave_1_1HttpConnection_html_acc1ca998134e63de44e77f0a371973af"><div class="ttname"><a href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#acc1ca998134e63de44e77f0a371973af">mesos::internal::slave::HttpConnection::HttpConnection</a></div><div class="ttdeci">HttpConnection(const process::http::Pipe::Writer &amp;_writer, ContentType _contentType)</div><div class="ttdef"><b>Definition:</b> slave.hpp:876</div></div>
<div class="ttc" id="structmesos_1_1internal_1_1slave_1_1HttpConnection_html_ac9014eb387ce40f4b7803c14b37da8f8"><div class="ttname"><a href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#ac9014eb387ce40f4b7803c14b37da8f8">mesos::internal::slave::HttpConnection::encoder</a></div><div class="ttdeci">::recordio::Encoder&lt; v1::executor::Event &gt; encoder</div><div class="ttdef"><b>Definition:</b> slave.hpp:903</div></div>
<div class="ttc" id="structmesos_1_1internal_1_1slave_1_1Slave_1_1RecoveryInfo_html"><div class="ttname"><a href="structmesos_1_1internal_1_1slave_1_1Slave_1_1RecoveryInfo.html">mesos::internal::slave::Slave::RecoveryInfo</a></div><div class="ttdef"><b>Definition:</b> slave.hpp:321</div></div>
<div class="ttc" id="classmesos_1_1Executor_html"><div class="ttname"><a href="classmesos_1_1Executor.html">mesos::Executor</a></div><div class="ttdef"><b>Definition:</b> executor.hpp:74</div></div>
<div class="ttc" id="classprocess_1_1Time_html"><div class="ttname"><a href="classprocess_1_1Time.html">process::Time</a></div><div class="ttdef"><b>Definition:</b> time.hpp:23</div></div>
<div class="ttc" id="classmesos_1_1internal_1_1slave_1_1Slave_html_a93ef27587c482384feeca0a915dcf23f"><div class="ttname"><a href="classmesos_1_1internal_1_1slave_1_1Slave.html#a93ef27587c482384feeca0a915dcf23f">mesos::internal::slave::Slave::reregistered</a></div><div class="ttdeci">void reregistered(const process::UPID &amp;from, const SlaveID &amp;slaveId, const std::vector&lt; ReconcileTasksMessage &gt; &amp;reconciliations, const MasterSlaveConnection &amp;connection)</div></div>
<div class="ttc" id="classmesos_1_1internal_1_1slave_1_1Slave_html_a2177deec04a26ad0ed1d692053c7a7b4"><div class="ttname"><a href="classmesos_1_1internal_1_1slave_1_1Slave.html#a2177deec04a26ad0ed1d692053c7a7b4">mesos::internal::slave::Slave::fileAttached</a></div><div class="ttdeci">void fileAttached(const process::Future&lt; Nothing &gt; &amp;result, const std::string &amp;path)</div></div>
<div class="ttc" id="structmesos_1_1internal_1_1slave_1_1Framework_html_accb4e9c8d32936b20f3d0ddc71fe8add"><div class="ttname"><a href="structmesos_1_1internal_1_1slave_1_1Framework.html#accb4e9c8d32936b20f3d0ddc71fe8add">mesos::internal::slave::Framework::State</a></div><div class="ttdeci">State</div><div class="ttdef"><b>Definition:</b> slave.hpp:1101</div></div>
<div class="ttc" id="classmesos_1_1internal_1_1slave_1_1Slave_html_a135c9291e330f8ecb3b39b99eca94798a3a8b567a119034961ad2fc9fa32bb98b"><div class="ttname"><a href="classmesos_1_1internal_1_1slave_1_1Slave.html#a135c9291e330f8ecb3b39b99eca94798a3a8b567a119034961ad2fc9fa32bb98b">mesos::internal::slave::Slave::DISCONNECTED</a></div><div class="ttdef"><b>Definition:</b> slave.hpp:315</div></div>
<div class="ttc" id="structmesos_1_1internal_1_1slave_1_1Framework_html_ab024621d83bc1381fd176d0fc8cdeac2"><div class="ttname"><a href="structmesos_1_1internal_1_1slave_1_1Framework.html#ab024621d83bc1381fd176d0fc8cdeac2">mesos::internal::slave::Framework::info</a></div><div class="ttdeci">FrameworkInfo info</div><div class="ttdef"><b>Definition:</b> slave.hpp:1112</div></div>
<div class="ttc" id="classmesos_1_1internal_1_1slave_1_1Slave_html_a9b0cb250918c7926d3530341b7063f82"><div class="ttname"><a href="classmesos_1_1internal_1_1slave_1_1Slave.html#a9b0cb250918c7926d3530341b7063f82">mesos::internal::slave::Slave::unschedule</a></div><div class="ttdeci">process::Future&lt; bool &gt; unschedule(const std::string &amp;path)</div></div>
<div class="ttc" id="namespacecgroups_1_1devices_html_a22494291bc2cb89697dcd2b5f288bdd3"><div class="ttname"><a href="namespacecgroups_1_1devices.html#a22494291bc2cb89697dcd2b5f288bdd3">cgroups::devices::list</a></div><div class="ttdeci">Try&lt; std::vector&lt; Entry &gt; &gt; list(const std::string &amp;hierarchy, const std::string &amp;cgroup)</div></div>
<div class="ttc" id="future_8hpp_html"><div class="ttname"><a href="future_8hpp.html">future.hpp</a></div></div>
<div class="ttc" id="structmesos_1_1internal_1_1slave_1_1Executor_html_a3b2abbbd9f9e9ca5c08b75329ac426c0ada3a926bc25ef3c7e060789f52aacd75"><div class="ttname"><a href="structmesos_1_1internal_1_1slave_1_1Executor.html#a3b2abbbd9f9e9ca5c08b75329ac426c0ada3a926bc25ef3c7e060789f52aacd75">mesos::internal::slave::Executor::TERMINATED</a></div><div class="ttdef"><b>Definition:</b> slave.hpp:987</div></div>
<div class="ttc" id="classmesos_1_1internal_1_1slave_1_1Slave_html_a135c9291e330f8ecb3b39b99eca94798a02c83e427172d4d3c7889ea36806806e"><div class="ttname"><a href="classmesos_1_1internal_1_1slave_1_1Slave.html#a135c9291e330f8ecb3b39b99eca94798a02c83e427172d4d3c7889ea36806806e">mesos::internal::slave::Slave::RECOVERING</a></div><div class="ttdef"><b>Definition:</b> slave.hpp:314</div></div>
<div class="ttc" id="structmesos_1_1internal_1_1slave_1_1Framework_html_a67ace79356a9523a2486d8ffd235847f"><div class="ttname"><a href="structmesos_1_1internal_1_1slave_1_1Framework.html#a67ace79356a9523a2486d8ffd235847f">mesos::internal::slave::Framework::executors</a></div><div class="ttdeci">hashmap&lt; ExecutorID, Executor * &gt; executors</div><div class="ttdef"><b>Definition:</b> slave.hpp:1134</div></div>
<div class="ttc" id="classBoundedHashMap_html"><div class="ttname"><a href="classBoundedHashMap.html">BoundedHashMap</a></div><div class="ttdef"><b>Definition:</b> boundedhashmap.hpp:27</div></div>
<div class="ttc" id="classmesos_1_1internal_1_1slave_1_1Slave_html_a135c9291e330f8ecb3b39b99eca94798ab6e7c1a3b051bfc2e95e9f2baae77ad5"><div class="ttname"><a href="classmesos_1_1internal_1_1slave_1_1Slave.html#a135c9291e330f8ecb3b39b99eca94798ab6e7c1a3b051bfc2e95e9f2baae77ad5">mesos::internal::slave::Slave::RUNNING</a></div><div class="ttdef"><b>Definition:</b> slave.hpp:316</div></div>
<div class="ttc" id="protobuf__utils_8hpp_html"><div class="ttname"><a href="protobuf__utils_8hpp.html">protobuf_utils.hpp</a></div></div>
<div class="ttc" id="classmesos_1_1internal_1_1slave_1_1StatusUpdateManager_html"><div class="ttname"><a href="classmesos_1_1internal_1_1slave_1_1StatusUpdateManager.html">mesos::internal::slave::StatusUpdateManager</a></div><div class="ttdef"><b>Definition:</b> status_update_manager.hpp:58</div></div>
<div class="ttc" id="classmesos_1_1internal_1_1slave_1_1Slave_html_ab93ec7c1c943aa82839dc8e5c717632c"><div class="ttname"><a href="classmesos_1_1internal_1_1slave_1_1Slave.html#ab93ec7c1c943aa82839dc8e5c717632c">mesos::internal::slave::Slave::detected</a></div><div class="ttdeci">void detected(const process::Future&lt; Option&lt; MasterInfo &gt;&gt; &amp;_master)</div></div>
<div class="ttc" id="namespaceos_html_ae19e4161a51b86a1f330f3bf1dc75389"><div class="ttname"><a href="namespaceos.html#ae19e4161a51b86a1f330f3bf1dc75389">os::process</a></div><div class="ttdeci">Result&lt; Process &gt; process(pid_t pid)</div><div class="ttdef"><b>Definition:</b> freebsd.hpp:30</div></div>
<div class="ttc" id="namespacemesos_1_1internal_1_1slave_1_1state_1_1internal_html_a749d698dcb6786428fa589b72cee6467"><div class="ttname"><a href="namespacemesos_1_1internal_1_1slave_1_1state_1_1internal.html#a749d698dcb6786428fa589b72cee6467">mesos::internal::slave::state::internal::checkpoint</a></div><div class="ttdeci">Try&lt; Nothing &gt; checkpoint(const std::string &amp;path, const std::string &amp;message)</div><div class="ttdef"><b>Definition:</b> state.hpp:77</div></div>
<div class="ttc" id="structprocess_1_1PID_html"><div class="ttname"><a href="structprocess_1_1PID.html">process::PID</a></div><div class="ttdoc">A &amp;quot;process identifier&amp;quot; used to uniquely identify a process when dispatching messages. </div><div class="ttdef"><b>Definition:</b> pid.hpp:127</div></div>
<div class="ttc" id="boundedhashmap_8hpp_html"><div class="ttname"><a href="boundedhashmap_8hpp.html">boundedhashmap.hpp</a></div></div>
<div class="ttc" id="classmesos_1_1internal_1_1slave_1_1Slave_html_ad958f0e032e8ea9a49a442232df8bbd3"><div class="ttname"><a href="classmesos_1_1internal_1_1slave_1_1Slave.html#ad958f0e032e8ea9a49a442232df8bbd3">mesos::internal::slave::Slave::~Slave</a></div><div class="ttdeci">virtual ~Slave()</div></div>
<div class="ttc" id="classmesos_1_1internal_1_1slave_1_1Slave_html_aa66f55ccd42a6aac647a50d78a3fb29c"><div class="ttname"><a href="classmesos_1_1internal_1_1slave_1_1Slave.html#aa66f55ccd42a6aac647a50d78a3fb29c">mesos::internal::slave::Slave::recover</a></div><div class="ttdeci">process::Future&lt; Nothing &gt; recover(const Try&lt; state::State &gt; &amp;state)</div></div>
<div class="ttc" id="classmesos_1_1internal_1_1slave_1_1Slave_html_a135c9291e330f8ecb3b39b99eca94798a229d35d6b3d76e3099d766261021b0db"><div class="ttname"><a href="classmesos_1_1internal_1_1slave_1_1Slave.html#a135c9291e330f8ecb3b39b99eca94798a229d35d6b3d76e3099d766261021b0db">mesos::internal::slave::Slave::TERMINATING</a></div><div class="ttdef"><b>Definition:</b> slave.hpp:317</div></div>
<div class="ttc" id="classLinkedHashMap_html"><div class="ttname"><a href="classLinkedHashMap.html">LinkedHashMap&lt; TaskID, TaskInfo &gt;</a></div></div>
<div class="ttc" id="classmesos_1_1internal_1_1slave_1_1Slave_html_ad4a853b29ff31eeff458ae33b611bcaf"><div class="ttname"><a href="classmesos_1_1internal_1_1slave_1_1Slave.html#ad4a853b29ff31eeff458ae33b611bcaf">mesos::internal::slave::Slave::___statusUpdate</a></div><div class="ttdeci">void ___statusUpdate(const process::Future&lt; Nothing &gt; &amp;future, const StatusUpdate &amp;update, const Option&lt; process::UPID &gt; &amp;pid)</div></div>
<div class="ttc" id="classprocess_1_1Timer_html"><div class="ttname"><a href="classprocess_1_1Timer.html">process::Timer</a></div><div class="ttdef"><b>Definition:</b> timer.hpp:30</div></div>
<div class="ttc" id="classLinkedHashMap_html_a1e01999a72b4e7f0d2541ff1b9892123"><div class="ttname"><a href="classLinkedHashMap.html#a1e01999a72b4e7f0d2541ff1b9892123">LinkedHashMap::contains</a></div><div class="ttdeci">bool contains(const Key &amp;key) const </div><div class="ttdef"><b>Definition:</b> linkedhashmap.hpp:68</div></div>
<div class="ttc" id="classmesos_1_1internal_1_1slave_1_1Slave_html_abbbc83998379b2613f6c0b1e943b9e3c"><div class="ttname"><a href="classmesos_1_1internal_1_1slave_1_1Slave.html#abbbc83998379b2613f6c0b1e943b9e3c">mesos::internal::slave::Slave::shutdownFramework</a></div><div class="ttdeci">void shutdownFramework(const process::UPID &amp;from, const FrameworkID &amp;frameworkId)</div></div>
<div class="ttc" id="structprocess_1_1http_1_1Response_html"><div class="ttname"><a href="structprocess_1_1http_1_1Response.html">process::http::Response</a></div><div class="ttdef"><b>Definition:</b> http.hpp:588</div></div>
<div class="ttc" id="structmesos_1_1internal_1_1slave_1_1Executor_html_a179703023548e1b60ffbae6b0a83a539"><div class="ttname"><a href="structmesos_1_1internal_1_1slave_1_1Executor.html#a179703023548e1b60ffbae6b0a83a539">mesos::internal::slave::Executor::operator&lt;&lt;</a></div><div class="ttdeci">friend std::ostream &amp; operator&lt;&lt;(std::ostream &amp;stream, const Executor &amp;executor)</div></div>
<div class="ttc" id="classmesos_1_1internal_1_1slave_1_1Slave_html_a281c6252ea2ad026664661aaf22237c3"><div class="ttname"><a href="classmesos_1_1internal_1_1slave_1_1Slave.html#a281c6252ea2ad026664661aaf22237c3">mesos::internal::slave::Slave::detachFile</a></div><div class="ttdeci">Nothing detachFile(const std::string &amp;path)</div></div>
<div class="ttc" id="slave_2resource__estimator_8hpp_html"><div class="ttname"><a href="slave_2resource__estimator_8hpp.html">resource_estimator.hpp</a></div></div>
<div class="ttc" id="classmesos_1_1internal_1_1slave_1_1Slave_html_a54445d6bb6235a083065e0ceb7c38b12"><div class="ttname"><a href="classmesos_1_1internal_1_1slave_1_1Slave.html#a54445d6bb6235a083065e0ceb7c38b12">mesos::internal::slave::Slave::killTask</a></div><div class="ttdeci">virtual void killTask(const process::UPID &amp;from, const KillTaskMessage &amp;killTaskMessage)</div></div>
<div class="ttc" id="structmesos_1_1internal_1_1slave_1_1HttpConnection_html_ad0773acb50a9d74589dc050ee9bc3f9b"><div class="ttname"><a href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#ad0773acb50a9d74589dc050ee9bc3f9b">mesos::internal::slave::HttpConnection::send</a></div><div class="ttdeci">bool send(const Message &amp;message)</div><div class="ttdef"><b>Definition:</b> slave.hpp:884</div></div>
<div class="ttc" id="structmesos_1_1internal_1_1slave_1_1Executor_html_ad326f6f8e9c161095f6a7e033da58550"><div class="ttname"><a href="structmesos_1_1internal_1_1slave_1_1Executor.html#ad326f6f8e9c161095f6a7e033da58550">mesos::internal::slave::Executor::completedTasks</a></div><div class="ttdeci">boost::circular_buffer&lt; std::shared_ptr&lt; Task &gt; &gt; completedTasks</div><div class="ttdef"><b>Definition:</b> slave.hpp:1055</div></div>
<div class="ttc" id="classmesos_1_1internal_1_1slave_1_1GarbageCollector_html"><div class="ttname"><a href="classmesos_1_1internal_1_1slave_1_1GarbageCollector.html">mesos::internal::slave::GarbageCollector</a></div><div class="ttdef"><b>Definition:</b> gc.hpp:50</div></div>
<div class="ttc" id="structmesos_1_1internal_1_1slave_1_1Executor_html_a34bfb0214dd593dcbf1ad4fa398a417c"><div class="ttname"><a href="structmesos_1_1internal_1_1slave_1_1Executor.html#a34bfb0214dd593dcbf1ad4fa398a417c">mesos::internal::slave::Executor::frameworkId</a></div><div class="ttdeci">const FrameworkID frameworkId</div><div class="ttdef"><b>Definition:</b> slave.hpp:998</div></div>
<div class="ttc" id="classmesos_1_1internal_1_1slave_1_1Slave_html_adf6475e9de96ccbbe503980ae80c2978"><div class="ttname"><a href="classmesos_1_1internal_1_1slave_1_1Slave.html#adf6475e9de96ccbbe503980ae80c2978">mesos::internal::slave::Slave::__recover</a></div><div class="ttdeci">virtual void __recover(const process::Future&lt; Nothing &gt; &amp;future)</div></div>
<div class="ttc" id="foreach_8hpp_html_acac417231a256d7c6164a86db970da86"><div class="ttname"><a href="foreach_8hpp.html#acac417231a256d7c6164a86db970da86">foreachkey</a></div><div class="ttdeci">#define foreachkey(KEY, ELEMS)</div><div class="ttdef"><b>Definition:</b> foreach.hpp:74</div></div>
<div class="ttc" id="hashset_8hpp_html"><div class="ttname"><a href="hashset_8hpp.html">hashset.hpp</a></div></div>
<div class="ttc" id="structmesos_1_1internal_1_1slave_1_1Executor_html_a3b2abbbd9f9e9ca5c08b75329ac426c0a1485da27f38622c47c16abf8c1491683"><div class="ttname"><a href="structmesos_1_1internal_1_1slave_1_1Executor.html#a3b2abbbd9f9e9ca5c08b75329ac426c0a1485da27f38622c47c16abf8c1491683">mesos::internal::slave::Executor::RUNNING</a></div><div class="ttdef"><b>Definition:</b> slave.hpp:985</div></div>
<div class="ttc" id="classmesos_1_1master_1_1detector_1_1MasterDetector_html"><div class="ttname"><a href="classmesos_1_1master_1_1detector_1_1MasterDetector.html">mesos::master::detector::MasterDetector</a></div><div class="ttdoc">An abstraction of a Master detector which can be used to detect the leading master from a group...</div><div class="ttdef"><b>Definition:</b> detector.hpp:37</div></div>
<div class="ttc" id="structmesos_1_1internal_1_1slave_1_1Framework_html_a92071e36bd91d192076159f233cfe2c4"><div class="ttname"><a href="structmesos_1_1internal_1_1slave_1_1Framework.html#a92071e36bd91d192076159f233cfe2c4">mesos::internal::slave::Framework::pending</a></div><div class="ttdeci">hashmap&lt; ExecutorID, hashmap&lt; TaskID, TaskInfo &gt; &gt; pending</div><div class="ttdef"><b>Definition:</b> slave.hpp:1131</div></div>
<div class="ttc" id="classprocess_1_1Clock_html_a24ed3f746bb6b3ddb1c52dce5e0ecd38"><div class="ttname"><a href="classprocess_1_1Clock.html#a24ed3f746bb6b3ddb1c52dce5e0ecd38">process::Clock::now</a></div><div class="ttdeci">static Time now()</div><div class="ttdoc">The current clock time for either the current process that makes this call or the global clock time i...</div></div>
<div class="ttc" id="src_2slave_2containerizer_2containerizer_8hpp_html"><div class="ttname"><a href="src_2slave_2containerizer_2containerizer_8hpp.html">containerizer.hpp</a></div></div>
<div class="ttc" id="classmesos_1_1internal_1_1slave_1_1Slave_html_aa0ad621d4e5a289f62e0309e129451d5"><div class="ttname"><a href="classmesos_1_1internal_1_1slave_1_1Slave.html#aa0ad621d4e5a289f62e0309e129451d5">mesos::internal::slave::Slave::qosCorrections</a></div><div class="ttdeci">virtual void qosCorrections()</div></div>
<div class="ttc" id="structmesos_1_1internal_1_1slave_1_1Executor_html_ad6bd3d3bec32d1d06d96f90d1325bf8d"><div class="ttname"><a href="structmesos_1_1internal_1_1slave_1_1Executor.html#ad6bd3d3bec32d1d06d96f90d1325bf8d">mesos::internal::slave::Executor::getQueuedTaskGroup</a></div><div class="ttdeci">Option&lt; TaskGroupInfo &gt; getQueuedTaskGroup(const TaskID &amp;taskId)</div></div>
<div class="ttc" id="structmesos_1_1internal_1_1slave_1_1Framework_html_a05b90be308ad0832e5a73642e8296a9f"><div class="ttname"><a href="structmesos_1_1internal_1_1slave_1_1Framework.html#a05b90be308ad0832e5a73642e8296a9f">mesos::internal::slave::Framework::launchExecutor</a></div><div class="ttdeci">Executor * launchExecutor(const ExecutorInfo &amp;executorInfo, const Option&lt; TaskInfo &gt; &amp;taskInfo)</div></div>
<div class="ttc" id="classmesos_1_1internal_1_1slave_1_1Slave_html_a00d7e0077ecd03e0e0bde0b814d02a68"><div class="ttname"><a href="classmesos_1_1internal_1_1slave_1_1Slave.html#a00d7e0077ecd03e0e0bde0b814d02a68">mesos::internal::slave::Slave::reregisterExecutorTimeout</a></div><div class="ttdeci">void reregisterExecutorTimeout()</div></div>
<div class="ttc" id="src_2slave_2flags_8hpp_html"><div class="ttname"><a href="src_2slave_2flags_8hpp.html">flags.hpp</a></div></div>
<div class="ttc" id="classrecordio_1_1Encoder_html"><div class="ttname"><a href="classrecordio_1_1Encoder.html">recordio::Encoder&lt; v1::executor::Event &gt;</a></div></div>
<div class="ttc" id="structmesos_1_1internal_1_1slave_1_1Framework_html_accb4e9c8d32936b20f3d0ddc71fe8addaee1aee9245f83af93404e62fe978dcc0"><div class="ttname"><a href="structmesos_1_1internal_1_1slave_1_1Framework.html#accb4e9c8d32936b20f3d0ddc71fe8addaee1aee9245f83af93404e62fe978dcc0">mesos::internal::slave::Framework::RUNNING</a></div><div class="ttdef"><b>Definition:</b> slave.hpp:1103</div></div>
<div class="ttc" id="owned_8hpp_html"><div class="ttname"><a href="owned_8hpp.html">owned.hpp</a></div></div>
<div class="ttc" id="classmesos_1_1internal_1_1slave_1_1Slave_html_a5375350e12064d0cc86ec346e06c22cf"><div class="ttname"><a href="classmesos_1_1internal_1_1slave_1_1Slave.html#a5375350e12064d0cc86ec346e06c22cf">mesos::internal::slave::Slave::ping</a></div><div class="ttdeci">void ping(const process::UPID &amp;from, bool connected)</div></div>
<div class="ttc" id="structmesos_1_1internal_1_1slave_1_1Metrics_html"><div class="ttname"><a href="structmesos_1_1internal_1_1slave_1_1Metrics.html">mesos::internal::slave::Metrics</a></div><div class="ttdef"><b>Definition:</b> metrics.hpp:32</div></div>
<div class="ttc" id="structmesos_1_1internal_1_1slave_1_1Executor_html_a89977a8c4cec7c54a41f20e763532b3c"><div class="ttname"><a href="structmesos_1_1internal_1_1slave_1_1Executor.html#a89977a8c4cec7c54a41f20e763532b3c">mesos::internal::slave::Executor::recoverTask</a></div><div class="ttdeci">void recoverTask(const state::TaskState &amp;state, bool recheckpointTask)</div></div>
<div class="ttc" id="classmesos_1_1internal_1_1slave_1_1Slave_html_ab69c5bf00179cbecfacaa560bf404ff7"><div class="ttname"><a href="classmesos_1_1internal_1_1slave_1_1Slave.html#ab69c5bf00179cbecfacaa560bf404ff7">mesos::internal::slave::Slave::__statusUpdate</a></div><div class="ttdeci">void __statusUpdate(const Option&lt; process::Future&lt; Nothing &gt;&gt; &amp;future, const StatusUpdate &amp;update, const Option&lt; process::UPID &gt; &amp;pid, const ExecutorID &amp;executorId, const ContainerID &amp;containerId, bool checkpoint)</div></div>
<div class="ttc" id="classmesos_1_1internal_1_1slave_1_1Slave_html_a58aa076dac22e517a2cb57de598b4e58"><div class="ttname"><a href="classmesos_1_1internal_1_1slave_1_1Slave.html#a58aa076dac22e517a2cb57de598b4e58">mesos::internal::slave::Slave::shutdownExecutor</a></div><div class="ttdeci">void shutdownExecutor(const process::UPID &amp;from, const FrameworkID &amp;frameworkId, const ExecutorID &amp;executorId)</div></div>
<div class="ttc" id="classmesos_1_1internal_1_1slave_1_1Slave_html_af7b56f9573b13d083140cc1465a186f4"><div class="ttname"><a href="classmesos_1_1internal_1_1slave_1_1Slave.html#af7b56f9573b13d083140cc1465a186f4">mesos::internal::slave::Slave::doReliableRegistration</a></div><div class="ttdeci">void doReliableRegistration(Duration maxBackoff)</div></div>
<div class="ttc" id="classmesos_1_1internal_1_1slave_1_1Slave_html_a834f5a3d33854228abfa40e61eb0106e"><div class="ttname"><a href="classmesos_1_1internal_1_1slave_1_1Slave.html#a834f5a3d33854228abfa40e61eb0106e">mesos::internal::slave::Slave::checkDiskUsage</a></div><div class="ttdeci">void checkDiskUsage()</div></div>
<div class="ttc" id="structmesos_1_1internal_1_1slave_1_1Executor_html_ab2ccf0dfb25334b7875f16473fb2ec28"><div class="ttname"><a href="structmesos_1_1internal_1_1slave_1_1Executor.html#ab2ccf0dfb25334b7875f16473fb2ec28">mesos::internal::slave::Executor::resources</a></div><div class="ttdeci">Resources resources</div><div class="ttdef"><b>Definition:</b> slave.hpp:1027</div></div>
<div class="ttc" id="namespaceprocess_1_1network_html_ad067110a4b38cc83785a43f49bf6c8e2"><div class="ttname"><a href="namespaceprocess_1_1network.html#ad067110a4b38cc83785a43f49bf6c8e2">process::network::bind</a></div><div class="ttdeci">Try&lt; Nothing &gt; bind(int_fd s, const Address &amp;address)</div><div class="ttdef"><b>Definition:</b> network.hpp:46</div></div>
<div class="ttc" id="3rdparty_2libprocess_2include_2process_2limiter_8hpp_html"><div class="ttname"><a href="3rdparty_2libprocess_2include_2process_2limiter_8hpp.html">limiter.hpp</a></div></div>
<div class="ttc" id="structmesos_1_1internal_1_1slave_1_1Slave_1_1RecoveryInfo_html_a2f6f939e181d233ae34f7f7133526d7b"><div class="ttname"><a href="structmesos_1_1internal_1_1slave_1_1Slave_1_1RecoveryInfo.html#a2f6f939e181d233ae34f7f7133526d7b">mesos::internal::slave::Slave::RecoveryInfo::recovered</a></div><div class="ttdeci">process::Promise&lt; Nothing &gt; recovered</div><div class="ttdef"><b>Definition:</b> slave.hpp:325</div></div>
<div class="ttc" id="structmesos_1_1internal_1_1slave_1_1Executor_html_aed6f0c1093840e82b6e920164be9df74"><div class="ttname"><a href="structmesos_1_1internal_1_1slave_1_1Executor.html#aed6f0c1093840e82b6e920164be9df74">mesos::internal::slave::Executor::user</a></div><div class="ttdeci">const Option&lt; std::string &gt; user</div><div class="ttdef"><b>Definition:</b> slave.hpp:1007</div></div>
<div class="ttc" id="classmesos_1_1slave_1_1QoSController_html"><div class="ttname"><a href="classmesos_1_1slave_1_1QoSController.html">mesos::slave::QoSController</a></div><div class="ttdef"><b>Definition:</b> qos_controller.hpp:44</div></div>
<div class="ttc" id="namespacemesos_1_1internal_html_a9c1f91de8a8a389b357b81f7b51b0554"><div class="ttname"><a href="namespacemesos_1_1internal.html#a9c1f91de8a8a389b357b81f7b51b0554">mesos::internal::serialize</a></div><div class="ttdeci">std::string serialize(ContentType contentType, const google::protobuf::Message &amp;message)</div></div>
<div class="ttc" id="structmesos_1_1internal_1_1slave_1_1Executor_html_addd8f0d655f9d03ad6bc594c4d476818"><div class="ttname"><a href="structmesos_1_1internal_1_1slave_1_1Executor.html#addd8f0d655f9d03ad6bc594c4d476818">mesos::internal::slave::Executor::slave</a></div><div class="ttdeci">Slave * slave</div><div class="ttdef"><b>Definition:</b> slave.hpp:993</div></div>
<div class="ttc" id="classmesos_1_1internal_1_1slave_1_1Slave_html_a6ebc1f2b684a989e5c42c9b2642b73dd"><div class="ttname"><a href="classmesos_1_1internal_1_1slave_1_1Slave.html#a6ebc1f2b684a989e5c42c9b2642b73dd">mesos::internal::slave::Slave::statusUpdate</a></div><div class="ttdeci">void statusUpdate(StatusUpdate update, const Option&lt; process::UPID &gt; &amp;pid)</div></div>
<div class="ttc" id="uuid_8hpp_html"><div class="ttname"><a href="uuid_8hpp.html">uuid.hpp</a></div></div>
<div class="ttc" id="namespacemesos_1_1uri_html_a5dff7c4a2df7be12fb642b5801c34f9f"><div class="ttname"><a href="namespacemesos_1_1uri.html#a5dff7c4a2df7be12fb642b5801c34f9f">mesos::uri::http</a></div><div class="ttdeci">URI http(const std::string &amp;host, const std::string &amp;path=&quot;/&quot;, const Option&lt; int &gt; &amp;port=None(), const Option&lt; std::string &gt; &amp;query=None(), const Option&lt; std::string &gt; &amp;fragment=None(), const Option&lt; std::string &gt; &amp;user=None(), const Option&lt; std::string &gt; &amp;password=None())</div><div class="ttdoc">Creates an http URI with the given parameters. </div><div class="ttdef"><b>Definition:</b> http.hpp:35</div></div>
<div class="ttc" id="include_2mesos_2executor_2executor_8hpp_html"><div class="ttname"><a href="include_2mesos_2executor_2executor_8hpp.html">executor.hpp</a></div></div>
<div class="ttc" id="classmesos_1_1internal_1_1slave_1_1Slave_html_a135c9291e330f8ecb3b39b99eca94798"><div class="ttname"><a href="classmesos_1_1internal_1_1slave_1_1Slave.html#a135c9291e330f8ecb3b39b99eca94798">mesos::internal::slave::Slave::State</a></div><div class="ttdeci">State</div><div class="ttdef"><b>Definition:</b> slave.hpp:312</div></div>
<div class="ttc" id="classprocess_1_1Owned_html"><div class="ttname"><a href="classprocess_1_1Owned.html">process::Owned</a></div><div class="ttdef"><b>Definition:</b> owned.hpp:35</div></div>
<div class="ttc" id="structmesos_1_1internal_1_1slave_1_1HttpConnection_html"><div class="ttname"><a href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html">mesos::internal::slave::HttpConnection</a></div><div class="ttdef"><b>Definition:</b> slave.hpp:874</div></div>
<div class="ttc" id="structmesos_1_1internal_1_1slave_1_1HttpConnection_html_a0c59d0ff74737a01a33ae18f76525ed3"><div class="ttname"><a href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html#a0c59d0ff74737a01a33ae18f76525ed3">mesos::internal::slave::HttpConnection::writer</a></div><div class="ttdeci">process::http::Pipe::Writer writer</div><div class="ttdef"><b>Definition:</b> slave.hpp:901</div></div>
<div class="ttc" id="structmesos_1_1internal_1_1slave_1_1Executor_html_a87195f2f07ffa5b1f9519ed3540e872f"><div class="ttname"><a href="structmesos_1_1internal_1_1slave_1_1Executor.html#a87195f2f07ffa5b1f9519ed3540e872f">mesos::internal::slave::Executor::~Executor</a></div><div class="ttdeci">~Executor()</div></div>
<div class="ttc" id="classmesos_1_1internal_1_1slave_1_1Slave_html_a16989d154cc28900c0094622ffb38324"><div class="ttname"><a href="classmesos_1_1internal_1_1slave_1_1Slave.html#a16989d154cc28900c0094622ffb38324">mesos::internal::slave::Slave::shutdown</a></div><div class="ttdeci">void shutdown(const process::UPID &amp;from, const std::string &amp;message)</div></div>
<div class="ttc" id="3rdparty_2libprocess_2include_2process_2http_8hpp_html"><div class="ttname"><a href="3rdparty_2libprocess_2include_2process_2http_8hpp.html">http.hpp</a></div></div>
<div class="ttc" id="classmesos_1_1internal_1_1slave_1_1Slave_html_a10e4944e4e881bba067c34228679ef12"><div class="ttname"><a href="classmesos_1_1internal_1_1slave_1_1Slave.html#a10e4944e4e881bba067c34228679ef12">mesos::internal::slave::Slave::_qosCorrections</a></div><div class="ttdeci">virtual void _qosCorrections(const process::Future&lt; std::list&lt; mesos::slave::QoSCorrection &gt;&gt; &amp;correction)</div></div>
<div class="ttc" id="classmesos_1_1internal_1_1slave_1_1Slave_html_ae5cbf7aef363a45048acfca39fbb4c89"><div class="ttname"><a href="classmesos_1_1internal_1_1slave_1_1Slave.html#ae5cbf7aef363a45048acfca39fbb4c89">mesos::internal::slave::Slave::getExecutor</a></div><div class="ttdeci">Executor * getExecutor(const FrameworkID &amp;frameworkId, const ExecutorID &amp;executorId) const </div></div>
<div class="ttc" id="structmesos_1_1internal_1_1slave_1_1Executor_html_a6d93343a7cac0e8f5398e4d55a19c856"><div class="ttname"><a href="structmesos_1_1internal_1_1slave_1_1Executor.html#a6d93343a7cac0e8f5398e4d55a19c856">mesos::internal::slave::Executor::info</a></div><div class="ttdeci">const ExecutorInfo info</div><div class="ttdef"><b>Definition:</b> slave.hpp:996</div></div>
<div class="ttc" id="linkedhashmap_8hpp_html"><div class="ttname"><a href="linkedhashmap_8hpp.html">linkedhashmap.hpp</a></div></div>
<div class="ttc" id="classprocess_1_1ProcessBase_html_a025e342d8f2be6c42fe34031edda54a3"><div class="ttname"><a href="classprocess_1_1ProcessBase.html#a025e342d8f2be6c42fe34031edda54a3">process::ProcessBase::message</a></div><div class="ttdeci">std::map&lt; std::string, MessageHandler &gt; message</div><div class="ttdef"><b>Definition:</b> process.hpp:453</div></div>
<div class="ttc" id="classmesos_1_1internal_1_1slave_1_1Slave_html_accb925947118625aa974fe887268b90a"><div class="ttname"><a href="classmesos_1_1internal_1_1slave_1_1Slave.html#accb925947118625aa974fe887268b90a">mesos::internal::slave::Slave::registerExecutor</a></div><div class="ttdeci">void registerExecutor(const process::UPID &amp;from, const FrameworkID &amp;frameworkId, const ExecutorID &amp;executorId)</div></div>
<div class="ttc" id="structmesos_1_1internal_1_1slave_1_1Executor_html_a29666bff86d8f043ce5ba4f8a4ccb0b8"><div class="ttname"><a href="structmesos_1_1internal_1_1slave_1_1Executor.html#a29666bff86d8f043ce5ba4f8a4ccb0b8">mesos::internal::slave::Executor::pid</a></div><div class="ttdeci">Option&lt; process::UPID &gt; pid</div><div class="ttdef"><b>Definition:</b> slave.hpp:1024</div></div>
<div class="ttc" id="namespaceprocess_1_1metrics_1_1internal_html_aaa37243f659788386a13de558eba70a7"><div class="ttname"><a href="namespaceprocess_1_1metrics_1_1internal.html#aaa37243f659788386a13de558eba70a7">process::metrics::internal::metrics</a></div><div class="ttdeci">PID&lt; MetricsProcess &gt; metrics</div></div>
<div class="ttc" id="libprocess_2include_2process_2process_8hpp_html"><div class="ttname"><a href="libprocess_2include_2process_2process_8hpp.html">process.hpp</a></div></div>
<div class="ttc" id="classmesos_1_1internal_1_1slave_1_1Slave_html_a8fb00b6a0e27ae8e8149195c63ffa031"><div class="ttname"><a href="classmesos_1_1internal_1_1slave_1_1Slave.html#a8fb00b6a0e27ae8e8149195c63ffa031">mesos::internal::slave::Slave::_run</a></div><div class="ttdeci">virtual void _run(const process::Future&lt; bool &gt; &amp;future, const FrameworkInfo &amp;frameworkInfo, const ExecutorInfo &amp;executorInfo, const Option&lt; TaskInfo &gt; &amp;task, const Option&lt; TaskGroupInfo &gt; &amp;taskGroup)</div></div>
<div class="ttc" id="namespaceos_1_1Shell_html_acfe16ef2b1146ad49a8651c0a457ce46"><div class="ttname"><a href="namespaceos_1_1Shell.html#acfe16ef2b1146ad49a8651c0a457ce46">os::Shell::name</a></div><div class="ttdeci">constexpr const char * name</div><div class="ttdef"><b>Definition:</b> shell.hpp:41</div></div>
<div class="ttc" id="structmesos_1_1internal_1_1slave_1_1Framework_html_a0d4c6ffcaa374896c7da9dbd62bb74c7"><div class="ttname"><a href="structmesos_1_1internal_1_1slave_1_1Framework.html#a0d4c6ffcaa374896c7da9dbd62bb74c7">mesos::internal::slave::Framework::hasTask</a></div><div class="ttdeci">bool hasTask(const TaskID &amp;taskId)</div><div class="ttdef"><b>Definition:</b> slave.hpp:1138</div></div>
<div class="ttc" id="files_8hpp_html"><div class="ttname"><a href="files_8hpp.html">files.hpp</a></div></div>
<div class="ttc" id="hashmap_8hpp_html"><div class="ttname"><a href="hashmap_8hpp.html">hashmap.hpp</a></div></div>
<div class="ttc" id="classmesos_1_1internal_1_1slave_1_1Slave_html_a22a22c318c5f84d0e5c4f068613154f6"><div class="ttname"><a href="classmesos_1_1internal_1_1slave_1_1Slave.html#a22a22c318c5f84d0e5c4f068613154f6">mesos::internal::slave::Slave::executorLaunched</a></div><div class="ttdeci">void executorLaunched(const FrameworkID &amp;frameworkId, const ExecutorID &amp;executorId, const ContainerID &amp;containerId, const process::Future&lt; bool &gt; &amp;future)</div></div>
<div class="ttc" id="structmesos_1_1internal_1_1slave_1_1Executor_html_a6088e2d4d0160d0cdaf8674c46d91c43"><div class="ttname"><a href="structmesos_1_1internal_1_1slave_1_1Executor.html#a6088e2d4d0160d0cdaf8674c46d91c43">mesos::internal::slave::Executor::send</a></div><div class="ttdeci">void send(const Message &amp;message)</div><div class="ttdef"><b>Definition:</b> slave.hpp:939</div></div>
<div class="ttc" id="classmesos_1_1internal_1_1slave_1_1Slave_html_aeaef3f8ca707a6ddf0cd9692835b7f50"><div class="ttname"><a href="classmesos_1_1internal_1_1slave_1_1Slave.html#aeaef3f8ca707a6ddf0cd9692835b7f50">mesos::internal::slave::Slave::registerExecutorTimeout</a></div><div class="ttdeci">void registerExecutorTimeout(const FrameworkID &amp;frameworkId, const ExecutorID &amp;executorId, const ContainerID &amp;containerId)</div></div>
<div class="ttc" id="structmesos_1_1internal_1_1slave_1_1Framework_html_a8a39feb604858a43d0f7f747961d4592"><div class="ttname"><a href="structmesos_1_1internal_1_1slave_1_1Framework.html#a8a39feb604858a43d0f7f747961d4592">mesos::internal::slave::Framework::destroyExecutor</a></div><div class="ttdeci">void destroyExecutor(const ExecutorID &amp;executorId)</div></div>
<div class="ttc" id="namespacemesos_1_1internal_1_1tests_html_af8289f648a916c3f66923867452c7b1b"><div class="ttname"><a href="namespacemesos_1_1internal_1_1tests.html#af8289f648a916c3f66923867452c7b1b">mesos::internal::tests::flags</a></div><div class="ttdeci">Flags flags</div></div>
<div class="ttc" id="classmesos_1_1Authenticatee_html"><div class="ttname"><a href="classmesos_1_1Authenticatee.html">mesos::Authenticatee</a></div><div class="ttdef"><b>Definition:</b> authenticatee.hpp:29</div></div>
<div class="ttc" id="structmesos_1_1internal_1_1slave_1_1Executor_html_a3b2abbbd9f9e9ca5c08b75329ac426c0ab536b2fae4842fc2c6e24905f142c920"><div class="ttname"><a href="structmesos_1_1internal_1_1slave_1_1Executor.html#a3b2abbbd9f9e9ca5c08b75329ac426c0ab536b2fae4842fc2c6e24905f142c920">mesos::internal::slave::Executor::TERMINATING</a></div><div class="ttdef"><b>Definition:</b> slave.hpp:986</div></div>
<div class="ttc" id="classmesos_1_1internal_1_1slave_1_1Slave_html_a4f48c75ffa6aeed21563e2306f10208a"><div class="ttname"><a href="classmesos_1_1internal_1_1slave_1_1Slave.html#a4f48c75ffa6aeed21563e2306f10208a">mesos::internal::slave::Slave::__run</a></div><div class="ttdeci">void __run(const process::Future&lt; Nothing &gt; &amp;future, const FrameworkID &amp;frameworkId, const ExecutorID &amp;executorId, const ContainerID &amp;containerId, const std::list&lt; TaskInfo &gt; &amp;tasks, const std::list&lt; TaskGroupInfo &gt; &amp;taskGroups)</div></div>
<div class="ttc" id="messages_8hpp_html"><div class="ttname"><a href="messages_8hpp.html">messages.hpp</a></div></div>
<div class="ttc" id="classprocess_1_1Future_html"><div class="ttname"><a href="classprocess_1_1Future.html">process::Future&lt; bool &gt;</a></div></div>
<div class="ttc" id="structmesos_1_1internal_1_1slave_1_1state_1_1FrameworkState_html"><div class="ttname"><a href="structmesos_1_1internal_1_1slave_1_1state_1_1FrameworkState.html">mesos::internal::slave::state::FrameworkState</a></div><div class="ttdef"><b>Definition:</b> state.hpp:245</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.5
</small></address>
</body>
</html>