You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by gi...@apache.org on 2018/01/23 00:14:24 UTC

[3/6] mesos-site git commit: Updated the website built from mesos SHA: cf33118.

http://git-wip-us.apache.org/repos/asf/mesos-site/blob/284af7b7/content/api/latest/c++/src_2master_2master_8hpp_source.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/src_2master_2master_8hpp_source.html b/content/api/latest/c++/src_2master_2master_8hpp_source.html
index 0cc0efb..4dee73e 100644
--- a/content/api/latest/c++/src_2master_2master_8hpp_source.html
+++ b/content/api/latest/c++/src_2master_2master_8hpp_source.html
@@ -1900,18 +1900,18 @@
 <div class="line"><a name="l01961"></a><span class="lineno"> 1961</span>&#160;</div>
 <div class="line"><a name="l01962"></a><span class="lineno"> 1962</span>&#160;  <span class="keyword">struct </span>Subscribers</div>
 <div class="line"><a name="l01963"></a><span class="lineno"> 1963</span>&#160;  {</div>
-<div class="line"><a name="l01964"></a><span class="lineno"> 1964</span>&#160;    <span class="comment">// Represents a client subscribed to the &#39;api/vX&#39; endpoint.</span></div>
-<div class="line"><a name="l01965"></a><span class="lineno"> 1965</span>&#160;    <span class="comment">//</span></div>
-<div class="line"><a name="l01966"></a><span class="lineno"> 1966</span>&#160;    <span class="comment">// TODO(anand): Add support for filtering. Some subscribers</span></div>
-<div class="line"><a name="l01967"></a><span class="lineno"> 1967</span>&#160;    <span class="comment">// might only be interested in a subset of events.</span></div>
-<div class="line"><a name="l01968"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1master_1_1Master_1_1Subscribers_1_1Subscriber.html"> 1968</a></span>&#160;    <span class="keyword">struct </span><a class="code" href="structmesos_1_1internal_1_1master_1_1Master_1_1Subscribers_1_1Subscriber.html">Subscriber</a></div>
-<div class="line"><a name="l01969"></a><span class="lineno"> 1969</span>&#160;    {</div>
-<div class="line"><a name="l01970"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1master_1_1Master_1_1Subscribers_1_1Subscriber.html#a7846e3eb3878fd037d273fa07fe97010"> 1970</a></span>&#160;      <a class="code" href="structmesos_1_1internal_1_1master_1_1Master_1_1Subscribers_1_1Subscriber.html#a7846e3eb3878fd037d273fa07fe97010">Subscriber</a>(</div>
-<div class="line"><a name="l01971"></a><span class="lineno"> 1971</span>&#160;          <a class="code" href="classmesos_1_1internal_1_1master_1_1Master.html">Master</a>* _master,</div>
-<div class="line"><a name="l01972"></a><span class="lineno"> 1972</span>&#160;          <span class="keyword">const</span> <a class="code" href="structmesos_1_1internal_1_1master_1_1HttpConnection.html">HttpConnection</a>&amp; _http,</div>
-<div class="line"><a name="l01973"></a><span class="lineno"> 1973</span>&#160;          <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;process::http::authentication::Principal&gt;</a> _principal)</div>
-<div class="line"><a name="l01974"></a><span class="lineno"> 1974</span>&#160;        : <a class="code" href="structmesos_1_1internal_1_1master_1_1Master_1_1Subscribers_1_1Subscriber.html#aaa06a2782bb02c7f81952abfac6c1a51">master</a>(_master),</div>
-<div class="line"><a name="l01975"></a><span class="lineno"> 1975</span>&#160;          <a class="code" href="structmesos_1_1internal_1_1master_1_1Master_1_1Subscribers_1_1Subscriber.html#a0bb1901deff186f05669c0a47b5dbc95">http</a>(_http),</div>
+<div class="line"><a name="l01964"></a><span class="lineno"> 1964</span>&#160;    Subscribers(<a class="code" href="classmesos_1_1internal_1_1master_1_1Master.html#a111451890cbc49fc403168624c536d7a">Master</a>* _master) : master(_master) {};</div>
+<div class="line"><a name="l01965"></a><span class="lineno"> 1965</span>&#160;</div>
+<div class="line"><a name="l01966"></a><span class="lineno"> 1966</span>&#160;    <span class="comment">// Represents a client subscribed to the &#39;api/vX&#39; endpoint.</span></div>
+<div class="line"><a name="l01967"></a><span class="lineno"> 1967</span>&#160;    <span class="comment">//</span></div>
+<div class="line"><a name="l01968"></a><span class="lineno"> 1968</span>&#160;    <span class="comment">// TODO(anand): Add support for filtering. Some subscribers</span></div>
+<div class="line"><a name="l01969"></a><span class="lineno"> 1969</span>&#160;    <span class="comment">// might only be interested in a subset of events.</span></div>
+<div class="line"><a name="l01970"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1master_1_1Master_1_1Subscribers_1_1Subscriber.html"> 1970</a></span>&#160;    <span class="keyword">struct </span><a class="code" href="structmesos_1_1internal_1_1master_1_1Master_1_1Subscribers_1_1Subscriber.html">Subscriber</a></div>
+<div class="line"><a name="l01971"></a><span class="lineno"> 1971</span>&#160;    {</div>
+<div class="line"><a name="l01972"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1master_1_1Master_1_1Subscribers_1_1Subscriber.html#a70c60ad79d73c84545ae28bc85714879"> 1972</a></span>&#160;      <a class="code" href="structmesos_1_1internal_1_1master_1_1Master_1_1Subscribers_1_1Subscriber.html#a70c60ad79d73c84545ae28bc85714879">Subscriber</a>(</div>
+<div class="line"><a name="l01973"></a><span class="lineno"> 1973</span>&#160;          <span class="keyword">const</span> <a class="code" href="structmesos_1_1internal_1_1master_1_1HttpConnection.html">HttpConnection</a>&amp; _http,</div>
+<div class="line"><a name="l01974"></a><span class="lineno"> 1974</span>&#160;          <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;process::http::authentication::Principal&gt;</a> _principal)</div>
+<div class="line"><a name="l01975"></a><span class="lineno"> 1975</span>&#160;        : <a class="code" href="structmesos_1_1internal_1_1master_1_1Master_1_1Subscribers_1_1Subscriber.html#a0bb1901deff186f05669c0a47b5dbc95">http</a>(_http),</div>
 <div class="line"><a name="l01976"></a><span class="lineno"> 1976</span>&#160;          <a class="code" href="structmesos_1_1internal_1_1master_1_1Master_1_1Subscribers_1_1Subscriber.html#a13da2ab712b9f1b041694374ebabeb92">principal</a>(_principal)</div>
 <div class="line"><a name="l01977"></a><span class="lineno"> 1977</span>&#160;      {</div>
 <div class="line"><a name="l01978"></a><span class="lineno"> 1978</span>&#160;        <a class="code" href="namespacemesos_1_1internal_1_1tests_1_1v1_1_1scheduler.html#acd3fa8addac36f513726743665631d79">mesos::master::Event</a> event;</div>
@@ -1930,984 +1930,996 @@
 <div class="line"><a name="l01991"></a><span class="lineno"> 1991</span>&#160;      }</div>
 <div class="line"><a name="l01992"></a><span class="lineno"> 1992</span>&#160;</div>
 <div class="line"><a name="l01993"></a><span class="lineno"> 1993</span>&#160;      <span class="comment">// Not copyable, not assignable.</span></div>
-<div class="line"><a name="l01994"></a><span class="lineno"> 1994</span>&#160;      <a class="code" href="structmesos_1_1internal_1_1master_1_1Master_1_1Subscribers_1_1Subscriber.html#a7846e3eb3878fd037d273fa07fe97010">Subscriber</a>(<span class="keyword">const</span> <a class="code" href="structmesos_1_1internal_1_1master_1_1Master_1_1Subscribers_1_1Subscriber.html">Subscriber</a>&amp;) = <span class="keyword">delete</span>;</div>
+<div class="line"><a name="l01994"></a><span class="lineno"> 1994</span>&#160;      <a class="code" href="structmesos_1_1internal_1_1master_1_1Master_1_1Subscribers_1_1Subscriber.html#a70c60ad79d73c84545ae28bc85714879">Subscriber</a>(<span class="keyword">const</span> <a class="code" href="structmesos_1_1internal_1_1master_1_1Master_1_1Subscribers_1_1Subscriber.html">Subscriber</a>&amp;) = <span class="keyword">delete</span>;</div>
 <div class="line"><a name="l01995"></a><span class="lineno"> 1995</span>&#160;      <a class="code" href="structmesos_1_1internal_1_1master_1_1Master_1_1Subscribers_1_1Subscriber.html">Subscriber</a>&amp; <a class="code" href="structmesos_1_1internal_1_1master_1_1Master_1_1Subscribers_1_1Subscriber.html#ad0382c412122e0f356cd01948de8fbd1">operator=</a>(<span class="keyword">const</span> <a class="code" href="structmesos_1_1internal_1_1master_1_1Master_1_1Subscribers_1_1Subscriber.html">Subscriber</a>&amp;) = <span class="keyword">delete</span>;</div>
 <div class="line"><a name="l01996"></a><span class="lineno"> 1996</span>&#160;</div>
-<div class="line"><a name="l01997"></a><span class="lineno"> 1997</span>&#160;      <span class="keywordtype">void</span> <a class="code" href="structmesos_1_1internal_1_1master_1_1Master_1_1Subscribers_1_1Subscriber.html#a05f31b779169c3611afbc3e1c8326f0f">send</a>(<span class="keyword">const</span> <a class="code" href="namespacemesos_1_1internal_1_1tests_1_1v1_1_1scheduler.html#acd3fa8addac36f513726743665631d79">mesos::master::Event</a>&amp; event,</div>
-<div class="line"><a name="l01998"></a><span class="lineno"> 1998</span>&#160;          <span class="keyword">const</span> <a class="code" href="classprocess_1_1Owned.html">process::Owned&lt;AuthorizationAcceptor&gt;</a>&amp; authorizeRole,</div>
-<div class="line"><a name="l01999"></a><span class="lineno"> 1999</span>&#160;          <span class="keyword">const</span> <a class="code" href="classprocess_1_1Owned.html">process::Owned&lt;AuthorizationAcceptor&gt;</a>&amp; <a class="code" href="classmesos_1_1internal_1_1master_1_1Master.html#a2e681b1f2c827a85d66a207cfdedf5c3">authorizeFramework</a>,</div>
-<div class="line"><a name="l02000"></a><span class="lineno"> 2000</span>&#160;          <span class="keyword">const</span> <a class="code" href="classprocess_1_1Owned.html">process::Owned&lt;AuthorizationAcceptor&gt;</a>&amp; <a class="code" href="classmesos_1_1internal_1_1master_1_1Master.html#aee6c20e5ab98744a50a2cb783af6b686">authorizeTask</a>,</div>
-<div class="line"><a name="l02001"></a><span class="lineno"> 2001</span>&#160;          <span class="keyword">const</span> <a class="code" href="classprocess_1_1Owned.html">process::Owned&lt;AuthorizationAcceptor&gt;</a>&amp; authorizeExecutor);</div>
-<div class="line"><a name="l02002"></a><span class="lineno"> 2002</span>&#160;</div>
-<div class="line"><a name="l02003"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1master_1_1Master_1_1Subscribers_1_1Subscriber.html#a86ef4d728349aedb9d28a20860bb735f"> 2003</a></span>&#160;      <a class="code" href="structmesos_1_1internal_1_1master_1_1Master_1_1Subscribers_1_1Subscriber.html#a86ef4d728349aedb9d28a20860bb735f">~Subscriber</a>()</div>
-<div class="line"><a name="l02004"></a><span class="lineno"> 2004</span>&#160;      {</div>
-<div class="line"><a name="l02005"></a><span class="lineno"> 2005</span>&#160;        <span class="comment">// TODO(anand): Refactor `HttpConnection` to being a RAII class instead.</span></div>
-<div class="line"><a name="l02006"></a><span class="lineno"> 2006</span>&#160;        <span class="comment">// It is possible that a caller might accidentally invoke `close()`</span></div>
-<div class="line"><a name="l02007"></a><span class="lineno"> 2007</span>&#160;        <span class="comment">// after passing ownership to the `Subscriber` object. See MESOS-5843</span></div>
-<div class="line"><a name="l02008"></a><span class="lineno"> 2008</span>&#160;        <span class="comment">// for more details.</span></div>
-<div class="line"><a name="l02009"></a><span class="lineno"> 2009</span>&#160;        <a class="code" href="structmesos_1_1internal_1_1master_1_1Master_1_1Subscribers_1_1Subscriber.html#a0bb1901deff186f05669c0a47b5dbc95">http</a>.<a class="code" href="structmesos_1_1internal_1_1master_1_1HttpConnection.html#a2347c2f4d88f6f0043690aba6dfac27f">close</a>();</div>
-<div class="line"><a name="l02010"></a><span class="lineno"> 2010</span>&#160;</div>
-<div class="line"><a name="l02011"></a><span class="lineno"> 2011</span>&#160;        <a class="code" href="namespaceprocess.html#a20443908afa3212215166e26065349e5">terminate</a>(<a class="code" href="structmesos_1_1internal_1_1master_1_1Master_1_1Subscribers_1_1Subscriber.html#aeae44540ead81669d5381fc80f472780">heartbeater</a>.get());</div>
-<div class="line"><a name="l02012"></a><span class="lineno"> 2012</span>&#160;        <a class="code" href="namespaceprocess.html#a07833fb41a8b0c1f18fa5485ca8c18d4">wait</a>(<a class="code" href="structmesos_1_1internal_1_1master_1_1Master_1_1Subscribers_1_1Subscriber.html#aeae44540ead81669d5381fc80f472780">heartbeater</a>.get());</div>
-<div class="line"><a name="l02013"></a><span class="lineno"> 2013</span>&#160;      }</div>
-<div class="line"><a name="l02014"></a><span class="lineno"> 2014</span>&#160;</div>
-<div class="line"><a name="l02015"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1master_1_1Master_1_1Subscribers_1_1Subscriber.html#aaa06a2782bb02c7f81952abfac6c1a51"> 2015</a></span>&#160;      <a class="code" href="classmesos_1_1internal_1_1master_1_1Master.html">Master</a>* <a class="code" href="structmesos_1_1internal_1_1master_1_1Master_1_1Subscribers_1_1Subscriber.html#aaa06a2782bb02c7f81952abfac6c1a51">master</a>;</div>
-<div class="line"><a name="l02016"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1master_1_1Master_1_1Subscribers_1_1Subscriber.html#a0bb1901deff186f05669c0a47b5dbc95"> 2016</a></span>&#160;      <a class="code" href="structmesos_1_1internal_1_1master_1_1HttpConnection.html">HttpConnection</a> <a class="code" href="structmesos_1_1internal_1_1master_1_1Master_1_1Subscribers_1_1Subscriber.html#a0bb1901deff186f05669c0a47b5dbc95">http</a>;</div>
-<div class="line"><a name="l02017"></a><span class="lineno"> 2017</span>&#160;      <a class="code" href="classprocess_1_1Owned.html">process::Owned&lt;Heartbeater&lt;mesos::master::Event, v1::master::Event&gt;</a>&gt;</div>
-<div class="line"><a name="l02018"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1master_1_1Master_1_1Subscribers_1_1Subscriber.html#aeae44540ead81669d5381fc80f472780"> 2018</a></span>&#160;        <a class="code" href="structmesos_1_1internal_1_1master_1_1Master_1_1Subscribers_1_1Subscriber.html#aeae44540ead81669d5381fc80f472780">heartbeater</a>;</div>
-<div class="line"><a name="l02019"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1master_1_1Master_1_1Subscribers_1_1Subscriber.html#a13da2ab712b9f1b041694374ebabeb92"> 2019</a></span>&#160;      <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;process::http::authentication::Principal&gt;</a> <a class="code" href="structmesos_1_1internal_1_1master_1_1Master_1_1Subscribers_1_1Subscriber.html#a13da2ab712b9f1b041694374ebabeb92">principal</a>;</div>
-<div class="line"><a name="l02020"></a><span class="lineno"> 2020</span>&#160;    };</div>
-<div class="line"><a name="l02021"></a><span class="lineno"> 2021</span>&#160;</div>
-<div class="line"><a name="l02022"></a><span class="lineno"> 2022</span>&#160;    <span class="comment">// Sends the event to all subscribers connected to the &#39;api/vX&#39; endpoint.</span></div>
-<div class="line"><a name="l02023"></a><span class="lineno"> 2023</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classProtobufProcess.html#a6c404fdc490a7199a0d2ad881d588e5c">send</a>(<span class="keyword">const</span> <a class="code" href="namespacemesos_1_1internal_1_1tests_1_1v1_1_1scheduler.html#acd3fa8addac36f513726743665631d79">mesos::master::Event</a>&amp; event);</div>
-<div class="line"><a name="l02024"></a><span class="lineno"> 2024</span>&#160;</div>
-<div class="line"><a name="l02025"></a><span class="lineno"> 2025</span>&#160;    <span class="comment">// Active subscribers to the &#39;api/vX&#39; endpoint keyed by the stream</span></div>
-<div class="line"><a name="l02026"></a><span class="lineno"> 2026</span>&#160;    <span class="comment">// identifier.</span></div>
-<div class="line"><a name="l02027"></a><span class="lineno"> 2027</span>&#160;    <a class="code" href="classhashmap.html">hashmap&lt;id::UUID, process::Owned&lt;Subscriber&gt;</a>&gt; subscribed;</div>
-<div class="line"><a name="l02028"></a><span class="lineno"> 2028</span>&#160;  } subscribers;</div>
+<div class="line"><a name="l01997"></a><span class="lineno"> 1997</span>&#160;      <span class="comment">// The `AuthorizationAcceptor` parameters here are not all required for</span></div>
+<div class="line"><a name="l01998"></a><span class="lineno"> 1998</span>&#160;      <span class="comment">// every event, but we currently construct and pass them all regardless</span></div>
+<div class="line"><a name="l01999"></a><span class="lineno"> 1999</span>&#160;      <span class="comment">// of the event type.</span></div>
+<div class="line"><a name="l02000"></a><span class="lineno"> 2000</span>&#160;      <span class="comment">//</span></div>
+<div class="line"><a name="l02001"></a><span class="lineno"> 2001</span>&#160;      <span class="comment">// TODO(greggomann): Refactor this function into multiple event-specific</span></div>
+<div class="line"><a name="l02002"></a><span class="lineno"> 2002</span>&#160;      <span class="comment">// overloads. See MESOS-8475.</span></div>
+<div class="line"><a name="l02003"></a><span class="lineno"> 2003</span>&#160;      <span class="keywordtype">void</span> <a class="code" href="structmesos_1_1internal_1_1master_1_1Master_1_1Subscribers_1_1Subscriber.html#abd5463aa37d13bef42a96f722e28e9e2">send</a>(</div>
+<div class="line"><a name="l02004"></a><span class="lineno"> 2004</span>&#160;          <span class="keyword">const</span> <a class="code" href="classprocess_1_1Shared.html">process::Shared&lt;mesos::master::Event&gt;</a>&amp; event,</div>
+<div class="line"><a name="l02005"></a><span class="lineno"> 2005</span>&#160;          <span class="keyword">const</span> <a class="code" href="classprocess_1_1Owned.html">process::Owned&lt;AuthorizationAcceptor&gt;</a>&amp; authorizeRole,</div>
+<div class="line"><a name="l02006"></a><span class="lineno"> 2006</span>&#160;          <span class="keyword">const</span> <a class="code" href="classprocess_1_1Owned.html">process::Owned&lt;AuthorizationAcceptor&gt;</a>&amp; <a class="code" href="classmesos_1_1internal_1_1master_1_1Master.html#a2e681b1f2c827a85d66a207cfdedf5c3">authorizeFramework</a>,</div>
+<div class="line"><a name="l02007"></a><span class="lineno"> 2007</span>&#160;          <span class="keyword">const</span> <a class="code" href="classprocess_1_1Owned.html">process::Owned&lt;AuthorizationAcceptor&gt;</a>&amp; <a class="code" href="classmesos_1_1internal_1_1master_1_1Master.html#aee6c20e5ab98744a50a2cb783af6b686">authorizeTask</a>,</div>
+<div class="line"><a name="l02008"></a><span class="lineno"> 2008</span>&#160;          <span class="keyword">const</span> <a class="code" href="classprocess_1_1Owned.html">process::Owned&lt;AuthorizationAcceptor&gt;</a>&amp; authorizeExecutor,</div>
+<div class="line"><a name="l02009"></a><span class="lineno"> 2009</span>&#160;          <span class="keyword">const</span> <a class="code" href="classOption.html">Option</a>&lt;<a class="code" href="classprocess_1_1Shared.html">process::Shared&lt;FrameworkInfo&gt;</a>&gt;&amp; frameworkInfo,</div>
+<div class="line"><a name="l02010"></a><span class="lineno"> 2010</span>&#160;          <span class="keyword">const</span> <a class="code" href="classOption.html">Option</a>&lt;<a class="code" href="classprocess_1_1Shared.html">process::Shared&lt;Task&gt;</a>&gt;&amp; task);</div>
+<div class="line"><a name="l02011"></a><span class="lineno"> 2011</span>&#160;</div>
+<div class="line"><a name="l02012"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1master_1_1Master_1_1Subscribers_1_1Subscriber.html#a86ef4d728349aedb9d28a20860bb735f"> 2012</a></span>&#160;      <a class="code" href="structmesos_1_1internal_1_1master_1_1Master_1_1Subscribers_1_1Subscriber.html#a86ef4d728349aedb9d28a20860bb735f">~Subscriber</a>()</div>
+<div class="line"><a name="l02013"></a><span class="lineno"> 2013</span>&#160;      {</div>
+<div class="line"><a name="l02014"></a><span class="lineno"> 2014</span>&#160;        <span class="comment">// TODO(anand): Refactor `HttpConnection` to being a RAII class instead.</span></div>
+<div class="line"><a name="l02015"></a><span class="lineno"> 2015</span>&#160;        <span class="comment">// It is possible that a caller might accidentally invoke `close()`</span></div>
+<div class="line"><a name="l02016"></a><span class="lineno"> 2016</span>&#160;        <span class="comment">// after passing ownership to the `Subscriber` object. See MESOS-5843</span></div>
+<div class="line"><a name="l02017"></a><span class="lineno"> 2017</span>&#160;        <span class="comment">// for more details.</span></div>
+<div class="line"><a name="l02018"></a><span class="lineno"> 2018</span>&#160;        <a class="code" href="structmesos_1_1internal_1_1master_1_1Master_1_1Subscribers_1_1Subscriber.html#a0bb1901deff186f05669c0a47b5dbc95">http</a>.<a class="code" href="structmesos_1_1internal_1_1master_1_1HttpConnection.html#a2347c2f4d88f6f0043690aba6dfac27f">close</a>();</div>
+<div class="line"><a name="l02019"></a><span class="lineno"> 2019</span>&#160;</div>
+<div class="line"><a name="l02020"></a><span class="lineno"> 2020</span>&#160;        <a class="code" href="namespaceprocess.html#a20443908afa3212215166e26065349e5">terminate</a>(<a class="code" href="structmesos_1_1internal_1_1master_1_1Master_1_1Subscribers_1_1Subscriber.html#aeae44540ead81669d5381fc80f472780">heartbeater</a>.get());</div>
+<div class="line"><a name="l02021"></a><span class="lineno"> 2021</span>&#160;        <a class="code" href="namespaceprocess.html#a07833fb41a8b0c1f18fa5485ca8c18d4">wait</a>(<a class="code" href="structmesos_1_1internal_1_1master_1_1Master_1_1Subscribers_1_1Subscriber.html#aeae44540ead81669d5381fc80f472780">heartbeater</a>.get());</div>
+<div class="line"><a name="l02022"></a><span class="lineno"> 2022</span>&#160;      }</div>
+<div class="line"><a name="l02023"></a><span class="lineno"> 2023</span>&#160;</div>
+<div class="line"><a name="l02024"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1master_1_1Master_1_1Subscribers_1_1Subscriber.html#a0bb1901deff186f05669c0a47b5dbc95"> 2024</a></span>&#160;      <a class="code" href="structmesos_1_1internal_1_1master_1_1HttpConnection.html">HttpConnection</a> <a class="code" href="structmesos_1_1internal_1_1master_1_1Master_1_1Subscribers_1_1Subscriber.html#a0bb1901deff186f05669c0a47b5dbc95">http</a>;</div>
+<div class="line"><a name="l02025"></a><span class="lineno"> 2025</span>&#160;      <a class="code" href="classprocess_1_1Owned.html">process::Owned&lt;Heartbeater&lt;mesos::master::Event, v1::master::Event&gt;</a>&gt;</div>
+<div class="line"><a name="l02026"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1master_1_1Master_1_1Subscribers_1_1Subscriber.html#aeae44540ead81669d5381fc80f472780"> 2026</a></span>&#160;        <a class="code" href="structmesos_1_1internal_1_1master_1_1Master_1_1Subscribers_1_1Subscriber.html#aeae44540ead81669d5381fc80f472780">heartbeater</a>;</div>
+<div class="line"><a name="l02027"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1master_1_1Master_1_1Subscribers_1_1Subscriber.html#a13da2ab712b9f1b041694374ebabeb92"> 2027</a></span>&#160;      <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;process::http::authentication::Principal&gt;</a> <a class="code" href="structmesos_1_1internal_1_1master_1_1Master_1_1Subscribers_1_1Subscriber.html#a13da2ab712b9f1b041694374ebabeb92">principal</a>;</div>
+<div class="line"><a name="l02028"></a><span class="lineno"> 2028</span>&#160;    };</div>
 <div class="line"><a name="l02029"></a><span class="lineno"> 2029</span>&#160;</div>
-<div class="line"><a name="l02030"></a><span class="lineno"> 2030</span>&#160;  <a class="code" href="classhashmap.html">hashmap&lt;OfferID, Offer*&gt;</a> offers;</div>
-<div class="line"><a name="l02031"></a><span class="lineno"> 2031</span>&#160;  <a class="code" href="classhashmap.html">hashmap&lt;OfferID, process::Timer&gt;</a> offerTimers;</div>
+<div class="line"><a name="l02030"></a><span class="lineno"> 2030</span>&#160;    <span class="comment">// Sends the event to all subscribers connected to the &#39;api/vX&#39; endpoint.</span></div>
+<div class="line"><a name="l02031"></a><span class="lineno"> 2031</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classProtobufProcess.html#a6c404fdc490a7199a0d2ad881d588e5c">send</a>(<a class="code" href="namespacemesos_1_1internal_1_1tests_1_1v1_1_1scheduler.html#acd3fa8addac36f513726743665631d79">mesos::master::Event</a>&amp;&amp; event);</div>
 <div class="line"><a name="l02032"></a><span class="lineno"> 2032</span>&#160;</div>
-<div class="line"><a name="l02033"></a><span class="lineno"> 2033</span>&#160;  <a class="code" href="classhashmap.html">hashmap&lt;OfferID, InverseOffer*&gt;</a> inverseOffers;</div>
-<div class="line"><a name="l02034"></a><span class="lineno"> 2034</span>&#160;  <a class="code" href="classhashmap.html">hashmap&lt;OfferID, process::Timer&gt;</a> inverseOfferTimers;</div>
-<div class="line"><a name="l02035"></a><span class="lineno"> 2035</span>&#160;</div>
-<div class="line"><a name="l02036"></a><span class="lineno"> 2036</span>&#160;  <span class="comment">// We track information about roles that we&#39;re aware of in the system.</span></div>
-<div class="line"><a name="l02037"></a><span class="lineno"> 2037</span>&#160;  <span class="comment">// Specifically, we keep track of the roles when a framework subscribes to</span></div>
-<div class="line"><a name="l02038"></a><span class="lineno"> 2038</span>&#160;  <span class="comment">// the role, and/or when there are resources allocated to the role</span></div>
-<div class="line"><a name="l02039"></a><span class="lineno"> 2039</span>&#160;  <span class="comment">// (e.g. some tasks and/or executors are consuming resources under the role).</span></div>
-<div class="line"><a name="l02040"></a><span class="lineno"> 2040</span>&#160;  <a class="code" href="classhashmap.html">hashmap&lt;std::string, Role*&gt;</a> roles;</div>
+<div class="line"><a name="l02033"></a><span class="lineno"> 2033</span>&#160;    <a class="code" href="classmesos_1_1internal_1_1master_1_1Master.html">Master</a>* master;</div>
+<div class="line"><a name="l02034"></a><span class="lineno"> 2034</span>&#160;</div>
+<div class="line"><a name="l02035"></a><span class="lineno"> 2035</span>&#160;    <span class="comment">// Active subscribers to the &#39;api/vX&#39; endpoint keyed by the stream</span></div>
+<div class="line"><a name="l02036"></a><span class="lineno"> 2036</span>&#160;    <span class="comment">// identifier.</span></div>
+<div class="line"><a name="l02037"></a><span class="lineno"> 2037</span>&#160;    <a class="code" href="classhashmap.html">hashmap&lt;id::UUID, process::Owned&lt;Subscriber&gt;</a>&gt; subscribed;</div>
+<div class="line"><a name="l02038"></a><span class="lineno"> 2038</span>&#160;  };</div>
+<div class="line"><a name="l02039"></a><span class="lineno"> 2039</span>&#160;</div>
+<div class="line"><a name="l02040"></a><span class="lineno"> 2040</span>&#160;  Subscribers subscribers;</div>
 <div class="line"><a name="l02041"></a><span class="lineno"> 2041</span>&#160;</div>
-<div class="line"><a name="l02042"></a><span class="lineno"> 2042</span>&#160;  <span class="comment">// Configured role whitelist if using the (deprecated) &quot;explicit</span></div>
-<div class="line"><a name="l02043"></a><span class="lineno"> 2043</span>&#160;  <span class="comment">// roles&quot; feature. If this is `None`, any role is allowed.</span></div>
-<div class="line"><a name="l02044"></a><span class="lineno"> 2044</span>&#160;  <a class="code" href="classOption.html">Option&lt;hashset&lt;std::string&gt;</a>&gt; roleWhitelist;</div>
-<div class="line"><a name="l02045"></a><span class="lineno"> 2045</span>&#160;</div>
-<div class="line"><a name="l02046"></a><span class="lineno"> 2046</span>&#160;  <span class="comment">// Configured weight for each role, if any. If a role does not</span></div>
-<div class="line"><a name="l02047"></a><span class="lineno"> 2047</span>&#160;  <span class="comment">// appear here, it has the default weight of 1.</span></div>
-<div class="line"><a name="l02048"></a><span class="lineno"> 2048</span>&#160;  <a class="code" href="classhashmap.html">hashmap&lt;std::string, double&gt;</a> weights;</div>
-<div class="line"><a name="l02049"></a><span class="lineno"> 2049</span>&#160;</div>
-<div class="line"><a name="l02050"></a><span class="lineno"> 2050</span>&#160;  <span class="comment">// Configured quota for each role, if any. We store quotas by role</span></div>
-<div class="line"><a name="l02051"></a><span class="lineno"> 2051</span>&#160;  <span class="comment">// because we set them at the role level.</span></div>
-<div class="line"><a name="l02052"></a><span class="lineno"> 2052</span>&#160;  <a class="code" href="classhashmap.html">hashmap&lt;std::string, Quota&gt;</a> quotas;</div>
+<div class="line"><a name="l02042"></a><span class="lineno"> 2042</span>&#160;  <a class="code" href="classhashmap.html">hashmap&lt;OfferID, Offer*&gt;</a> offers;</div>
+<div class="line"><a name="l02043"></a><span class="lineno"> 2043</span>&#160;  <a class="code" href="classhashmap.html">hashmap&lt;OfferID, process::Timer&gt;</a> offerTimers;</div>
+<div class="line"><a name="l02044"></a><span class="lineno"> 2044</span>&#160;</div>
+<div class="line"><a name="l02045"></a><span class="lineno"> 2045</span>&#160;  <a class="code" href="classhashmap.html">hashmap&lt;OfferID, InverseOffer*&gt;</a> inverseOffers;</div>
+<div class="line"><a name="l02046"></a><span class="lineno"> 2046</span>&#160;  <a class="code" href="classhashmap.html">hashmap&lt;OfferID, process::Timer&gt;</a> inverseOfferTimers;</div>
+<div class="line"><a name="l02047"></a><span class="lineno"> 2047</span>&#160;</div>
+<div class="line"><a name="l02048"></a><span class="lineno"> 2048</span>&#160;  <span class="comment">// We track information about roles that we&#39;re aware of in the system.</span></div>
+<div class="line"><a name="l02049"></a><span class="lineno"> 2049</span>&#160;  <span class="comment">// Specifically, we keep track of the roles when a framework subscribes to</span></div>
+<div class="line"><a name="l02050"></a><span class="lineno"> 2050</span>&#160;  <span class="comment">// the role, and/or when there are resources allocated to the role</span></div>
+<div class="line"><a name="l02051"></a><span class="lineno"> 2051</span>&#160;  <span class="comment">// (e.g. some tasks and/or executors are consuming resources under the role).</span></div>
+<div class="line"><a name="l02052"></a><span class="lineno"> 2052</span>&#160;  <a class="code" href="classhashmap.html">hashmap&lt;std::string, Role*&gt;</a> roles;</div>
 <div class="line"><a name="l02053"></a><span class="lineno"> 2053</span>&#160;</div>
-<div class="line"><a name="l02054"></a><span class="lineno"> 2054</span>&#160;  <span class="comment">// Authenticator names as supplied via flags.</span></div>
-<div class="line"><a name="l02055"></a><span class="lineno"> 2055</span>&#160;  std::vector&lt;std::string&gt; authenticatorNames;</div>
-<div class="line"><a name="l02056"></a><span class="lineno"> 2056</span>&#160;</div>
-<div class="line"><a name="l02057"></a><span class="lineno"> 2057</span>&#160;  <a class="code" href="classOption.html">Option&lt;Authenticator*&gt;</a> authenticator;</div>
-<div class="line"><a name="l02058"></a><span class="lineno"> 2058</span>&#160;</div>
-<div class="line"><a name="l02059"></a><span class="lineno"> 2059</span>&#160;  <span class="comment">// Frameworks/slaves that are currently in the process of authentication.</span></div>
-<div class="line"><a name="l02060"></a><span class="lineno"> 2060</span>&#160;  <span class="comment">// &#39;authenticating&#39; future is completed when authenticator</span></div>
-<div class="line"><a name="l02061"></a><span class="lineno"> 2061</span>&#160;  <span class="comment">// completes authentication.</span></div>
-<div class="line"><a name="l02062"></a><span class="lineno"> 2062</span>&#160;  <span class="comment">// The future is removed from the map when master completes authentication.</span></div>
-<div class="line"><a name="l02063"></a><span class="lineno"> 2063</span>&#160;  <a class="code" href="classhashmap.html">hashmap&lt;process::UPID, process::Future&lt;Option&lt;std::string&gt;</a>&gt;&gt; authenticating;</div>
-<div class="line"><a name="l02064"></a><span class="lineno"> 2064</span>&#160;</div>
-<div class="line"><a name="l02065"></a><span class="lineno"> 2065</span>&#160;  <span class="comment">// Principals of authenticated frameworks/slaves keyed by PID.</span></div>
-<div class="line"><a name="l02066"></a><span class="lineno"> 2066</span>&#160;  <a class="code" href="classhashmap.html">hashmap&lt;process::UPID, std::string&gt;</a> authenticated;</div>
-<div class="line"><a name="l02067"></a><span class="lineno"> 2067</span>&#160;</div>
-<div class="line"><a name="l02068"></a><span class="lineno"> 2068</span>&#160;  int64_t nextFrameworkId; <span class="comment">// Used to give each framework a unique ID.</span></div>
-<div class="line"><a name="l02069"></a><span class="lineno"> 2069</span>&#160;  int64_t nextOfferId;     <span class="comment">// Used to give each slot offer a unique ID.</span></div>
-<div class="line"><a name="l02070"></a><span class="lineno"> 2070</span>&#160;  int64_t nextSlaveId;     <span class="comment">// Used to give each slave a unique ID.</span></div>
-<div class="line"><a name="l02071"></a><span class="lineno"> 2071</span>&#160;</div>
-<div class="line"><a name="l02072"></a><span class="lineno"> 2072</span>&#160;  <span class="comment">// NOTE: It is safe to use a &#39;shared_ptr&#39; because &#39;Metrics&#39; is</span></div>
-<div class="line"><a name="l02073"></a><span class="lineno"> 2073</span>&#160;  <span class="comment">// thread safe.</span></div>
-<div class="line"><a name="l02074"></a><span class="lineno"> 2074</span>&#160;  <span class="comment">// TODO(dhamon): This does not need to be a shared_ptr. Metrics contains</span></div>
-<div class="line"><a name="l02075"></a><span class="lineno"> 2075</span>&#160;  <span class="comment">// copyable metric types only.</span></div>
-<div class="line"><a name="l02076"></a><span class="lineno"> 2076</span>&#160;  std::shared_ptr&lt;Metrics&gt; metrics;</div>
-<div class="line"><a name="l02077"></a><span class="lineno"> 2077</span>&#160;</div>
-<div class="line"><a name="l02078"></a><span class="lineno"> 2078</span>&#160;  <span class="comment">// Gauge handlers.</span></div>
-<div class="line"><a name="l02079"></a><span class="lineno"> 2079</span>&#160;  <span class="keywordtype">double</span> _uptime_secs()</div>
-<div class="line"><a name="l02080"></a><span class="lineno"> 2080</span>&#160;  {</div>
-<div class="line"><a name="l02081"></a><span class="lineno"> 2081</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="l02082"></a><span class="lineno"> 2082</span>&#160;  }</div>
+<div class="line"><a name="l02054"></a><span class="lineno"> 2054</span>&#160;  <span class="comment">// Configured role whitelist if using the (deprecated) &quot;explicit</span></div>
+<div class="line"><a name="l02055"></a><span class="lineno"> 2055</span>&#160;  <span class="comment">// roles&quot; feature. If this is `None`, any role is allowed.</span></div>
+<div class="line"><a name="l02056"></a><span class="lineno"> 2056</span>&#160;  <a class="code" href="classOption.html">Option&lt;hashset&lt;std::string&gt;</a>&gt; roleWhitelist;</div>
+<div class="line"><a name="l02057"></a><span class="lineno"> 2057</span>&#160;</div>
+<div class="line"><a name="l02058"></a><span class="lineno"> 2058</span>&#160;  <span class="comment">// Configured weight for each role, if any. If a role does not</span></div>
+<div class="line"><a name="l02059"></a><span class="lineno"> 2059</span>&#160;  <span class="comment">// appear here, it has the default weight of 1.</span></div>
+<div class="line"><a name="l02060"></a><span class="lineno"> 2060</span>&#160;  <a class="code" href="classhashmap.html">hashmap&lt;std::string, double&gt;</a> weights;</div>
+<div class="line"><a name="l02061"></a><span class="lineno"> 2061</span>&#160;</div>
+<div class="line"><a name="l02062"></a><span class="lineno"> 2062</span>&#160;  <span class="comment">// Configured quota for each role, if any. We store quotas by role</span></div>
+<div class="line"><a name="l02063"></a><span class="lineno"> 2063</span>&#160;  <span class="comment">// because we set them at the role level.</span></div>
+<div class="line"><a name="l02064"></a><span class="lineno"> 2064</span>&#160;  <a class="code" href="classhashmap.html">hashmap&lt;std::string, Quota&gt;</a> quotas;</div>
+<div class="line"><a name="l02065"></a><span class="lineno"> 2065</span>&#160;</div>
+<div class="line"><a name="l02066"></a><span class="lineno"> 2066</span>&#160;  <span class="comment">// Authenticator names as supplied via flags.</span></div>
+<div class="line"><a name="l02067"></a><span class="lineno"> 2067</span>&#160;  std::vector&lt;std::string&gt; authenticatorNames;</div>
+<div class="line"><a name="l02068"></a><span class="lineno"> 2068</span>&#160;</div>
+<div class="line"><a name="l02069"></a><span class="lineno"> 2069</span>&#160;  <a class="code" href="classOption.html">Option&lt;Authenticator*&gt;</a> authenticator;</div>
+<div class="line"><a name="l02070"></a><span class="lineno"> 2070</span>&#160;</div>
+<div class="line"><a name="l02071"></a><span class="lineno"> 2071</span>&#160;  <span class="comment">// Frameworks/slaves that are currently in the process of authentication.</span></div>
+<div class="line"><a name="l02072"></a><span class="lineno"> 2072</span>&#160;  <span class="comment">// &#39;authenticating&#39; future is completed when authenticator</span></div>
+<div class="line"><a name="l02073"></a><span class="lineno"> 2073</span>&#160;  <span class="comment">// completes authentication.</span></div>
+<div class="line"><a name="l02074"></a><span class="lineno"> 2074</span>&#160;  <span class="comment">// The future is removed from the map when master completes authentication.</span></div>
+<div class="line"><a name="l02075"></a><span class="lineno"> 2075</span>&#160;  <a class="code" href="classhashmap.html">hashmap&lt;process::UPID, process::Future&lt;Option&lt;std::string&gt;</a>&gt;&gt; authenticating;</div>
+<div class="line"><a name="l02076"></a><span class="lineno"> 2076</span>&#160;</div>
+<div class="line"><a name="l02077"></a><span class="lineno"> 2077</span>&#160;  <span class="comment">// Principals of authenticated frameworks/slaves keyed by PID.</span></div>
+<div class="line"><a name="l02078"></a><span class="lineno"> 2078</span>&#160;  <a class="code" href="classhashmap.html">hashmap&lt;process::UPID, std::string&gt;</a> authenticated;</div>
+<div class="line"><a name="l02079"></a><span class="lineno"> 2079</span>&#160;</div>
+<div class="line"><a name="l02080"></a><span class="lineno"> 2080</span>&#160;  int64_t nextFrameworkId; <span class="comment">// Used to give each framework a unique ID.</span></div>
+<div class="line"><a name="l02081"></a><span class="lineno"> 2081</span>&#160;  int64_t nextOfferId;     <span class="comment">// Used to give each slot offer a unique ID.</span></div>
+<div class="line"><a name="l02082"></a><span class="lineno"> 2082</span>&#160;  int64_t nextSlaveId;     <span class="comment">// Used to give each slave a unique ID.</span></div>
 <div class="line"><a name="l02083"></a><span class="lineno"> 2083</span>&#160;</div>
-<div class="line"><a name="l02084"></a><span class="lineno"> 2084</span>&#160;  <span class="keywordtype">double</span> _elected()</div>
-<div class="line"><a name="l02085"></a><span class="lineno"> 2085</span>&#160;  {</div>
-<div class="line"><a name="l02086"></a><span class="lineno"> 2086</span>&#160;    <span class="keywordflow">return</span> elected() ? 1 : 0;</div>
-<div class="line"><a name="l02087"></a><span class="lineno"> 2087</span>&#160;  }</div>
-<div class="line"><a name="l02088"></a><span class="lineno"> 2088</span>&#160;</div>
-<div class="line"><a name="l02089"></a><span class="lineno"> 2089</span>&#160;  <span class="keywordtype">double</span> _slaves_connected();</div>
-<div class="line"><a name="l02090"></a><span class="lineno"> 2090</span>&#160;  <span class="keywordtype">double</span> _slaves_disconnected();</div>
-<div class="line"><a name="l02091"></a><span class="lineno"> 2091</span>&#160;  <span class="keywordtype">double</span> _slaves_active();</div>
-<div class="line"><a name="l02092"></a><span class="lineno"> 2092</span>&#160;  <span class="keywordtype">double</span> _slaves_inactive();</div>
-<div class="line"><a name="l02093"></a><span class="lineno"> 2093</span>&#160;  <span class="keywordtype">double</span> _slaves_unreachable();</div>
-<div class="line"><a name="l02094"></a><span class="lineno"> 2094</span>&#160;</div>
-<div class="line"><a name="l02095"></a><span class="lineno"> 2095</span>&#160;  <span class="keywordtype">double</span> _frameworks_connected();</div>
-<div class="line"><a name="l02096"></a><span class="lineno"> 2096</span>&#160;  <span class="keywordtype">double</span> _frameworks_disconnected();</div>
-<div class="line"><a name="l02097"></a><span class="lineno"> 2097</span>&#160;  <span class="keywordtype">double</span> _frameworks_active();</div>
-<div class="line"><a name="l02098"></a><span class="lineno"> 2098</span>&#160;  <span class="keywordtype">double</span> _frameworks_inactive();</div>
-<div class="line"><a name="l02099"></a><span class="lineno"> 2099</span>&#160;</div>
-<div class="line"><a name="l02100"></a><span class="lineno"> 2100</span>&#160;  <span class="keywordtype">double</span> _outstanding_offers()</div>
-<div class="line"><a name="l02101"></a><span class="lineno"> 2101</span>&#160;  {</div>
-<div class="line"><a name="l02102"></a><span class="lineno"> 2102</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span><span class="keywordtype">double</span><span class="keyword">&gt;</span>(offers.size());</div>
-<div class="line"><a name="l02103"></a><span class="lineno"> 2103</span>&#160;  }</div>
-<div class="line"><a name="l02104"></a><span class="lineno"> 2104</span>&#160;</div>
-<div class="line"><a name="l02105"></a><span class="lineno"> 2105</span>&#160;  <span class="keywordtype">double</span> _event_queue_messages()</div>
-<div class="line"><a name="l02106"></a><span class="lineno"> 2106</span>&#160;  {</div>
-<div class="line"><a name="l02107"></a><span class="lineno"> 2107</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span><span class="keywordtype">double</span><span class="keyword">&gt;</span>(eventCount&lt;process::MessageEvent&gt;());</div>
-<div class="line"><a name="l02108"></a><span class="lineno"> 2108</span>&#160;  }</div>
-<div class="line"><a name="l02109"></a><span class="lineno"> 2109</span>&#160;</div>
-<div class="line"><a name="l02110"></a><span class="lineno"> 2110</span>&#160;  <span class="keywordtype">double</span> _event_queue_dispatches()</div>
-<div class="line"><a name="l02111"></a><span class="lineno"> 2111</span>&#160;  {</div>
-<div class="line"><a name="l02112"></a><span class="lineno"> 2112</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span><span class="keywordtype">double</span><span class="keyword">&gt;</span>(eventCount&lt;process::DispatchEvent&gt;());</div>
-<div class="line"><a name="l02113"></a><span class="lineno"> 2113</span>&#160;  }</div>
-<div class="line"><a name="l02114"></a><span class="lineno"> 2114</span>&#160;</div>
-<div class="line"><a name="l02115"></a><span class="lineno"> 2115</span>&#160;  <span class="keywordtype">double</span> _event_queue_http_requests()</div>
-<div class="line"><a name="l02116"></a><span class="lineno"> 2116</span>&#160;  {</div>
-<div class="line"><a name="l02117"></a><span class="lineno"> 2117</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span><span class="keywordtype">double</span><span class="keyword">&gt;</span>(eventCount&lt;process::HttpEvent&gt;());</div>
-<div class="line"><a name="l02118"></a><span class="lineno"> 2118</span>&#160;  }</div>
-<div class="line"><a name="l02119"></a><span class="lineno"> 2119</span>&#160;</div>
-<div class="line"><a name="l02120"></a><span class="lineno"> 2120</span>&#160;  <span class="keywordtype">double</span> _tasks_staging();</div>
-<div class="line"><a name="l02121"></a><span class="lineno"> 2121</span>&#160;  <span class="keywordtype">double</span> _tasks_starting();</div>
-<div class="line"><a name="l02122"></a><span class="lineno"> 2122</span>&#160;  <span class="keywordtype">double</span> _tasks_running();</div>
-<div class="line"><a name="l02123"></a><span class="lineno"> 2123</span>&#160;  <span class="keywordtype">double</span> _tasks_unreachable();</div>
-<div class="line"><a name="l02124"></a><span class="lineno"> 2124</span>&#160;  <span class="keywordtype">double</span> _tasks_killing();</div>
-<div class="line"><a name="l02125"></a><span class="lineno"> 2125</span>&#160;</div>
-<div class="line"><a name="l02126"></a><span class="lineno"> 2126</span>&#160;  <span class="keywordtype">double</span> _resources_total(<span class="keyword">const</span> std::string&amp; name);</div>
-<div class="line"><a name="l02127"></a><span class="lineno"> 2127</span>&#160;  <span class="keywordtype">double</span> _resources_used(<span class="keyword">const</span> std::string&amp; name);</div>
-<div class="line"><a name="l02128"></a><span class="lineno"> 2128</span>&#160;  <span class="keywordtype">double</span> _resources_percent(<span class="keyword">const</span> std::string&amp; name);</div>
-<div class="line"><a name="l02129"></a><span class="lineno"> 2129</span>&#160;</div>
-<div class="line"><a name="l02130"></a><span class="lineno"> 2130</span>&#160;  <span class="keywordtype">double</span> _resources_revocable_total(<span class="keyword">const</span> std::string&amp; name);</div>
-<div class="line"><a name="l02131"></a><span class="lineno"> 2131</span>&#160;  <span class="keywordtype">double</span> _resources_revocable_used(<span class="keyword">const</span> std::string&amp; name);</div>
-<div class="line"><a name="l02132"></a><span class="lineno"> 2132</span>&#160;  <span class="keywordtype">double</span> _resources_revocable_percent(<span class="keyword">const</span> std::string&amp; name);</div>
-<div class="line"><a name="l02133"></a><span class="lineno"> 2133</span>&#160;</div>
-<div class="line"><a name="l02134"></a><span class="lineno"> 2134</span>&#160;  <a class="code" href="classprocess_1_1Time.html">process::Time</a> startTime; <span class="comment">// Start time used to calculate uptime.</span></div>
-<div class="line"><a name="l02135"></a><span class="lineno"> 2135</span>&#160;</div>
-<div class="line"><a name="l02136"></a><span class="lineno"> 2136</span>&#160;  <a class="code" href="classOption.html">Option&lt;process::Time&gt;</a> electedTime; <span class="comment">// Time when this master is elected.</span></div>
+<div class="line"><a name="l02084"></a><span class="lineno"> 2084</span>&#160;  <span class="comment">// NOTE: It is safe to use a &#39;shared_ptr&#39; because &#39;Metrics&#39; is</span></div>
+<div class="line"><a name="l02085"></a><span class="lineno"> 2085</span>&#160;  <span class="comment">// thread safe.</span></div>
+<div class="line"><a name="l02086"></a><span class="lineno"> 2086</span>&#160;  <span class="comment">// TODO(dhamon): This does not need to be a shared_ptr. Metrics contains</span></div>
+<div class="line"><a name="l02087"></a><span class="lineno"> 2087</span>&#160;  <span class="comment">// copyable metric types only.</span></div>
+<div class="line"><a name="l02088"></a><span class="lineno"> 2088</span>&#160;  std::shared_ptr&lt;Metrics&gt; metrics;</div>
+<div class="line"><a name="l02089"></a><span class="lineno"> 2089</span>&#160;</div>
+<div class="line"><a name="l02090"></a><span class="lineno"> 2090</span>&#160;  <span class="comment">// Gauge handlers.</span></div>
+<div class="line"><a name="l02091"></a><span class="lineno"> 2091</span>&#160;  <span class="keywordtype">double</span> _uptime_secs()</div>
+<div class="line"><a name="l02092"></a><span class="lineno"> 2092</span>&#160;  {</div>
+<div class="line"><a name="l02093"></a><span class="lineno"> 2093</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="l02094"></a><span class="lineno"> 2094</span>&#160;  }</div>
+<div class="line"><a name="l02095"></a><span class="lineno"> 2095</span>&#160;</div>
+<div class="line"><a name="l02096"></a><span class="lineno"> 2096</span>&#160;  <span class="keywordtype">double</span> _elected()</div>
+<div class="line"><a name="l02097"></a><span class="lineno"> 2097</span>&#160;  {</div>
+<div class="line"><a name="l02098"></a><span class="lineno"> 2098</span>&#160;    <span class="keywordflow">return</span> elected() ? 1 : 0;</div>
+<div class="line"><a name="l02099"></a><span class="lineno"> 2099</span>&#160;  }</div>
+<div class="line"><a name="l02100"></a><span class="lineno"> 2100</span>&#160;</div>
+<div class="line"><a name="l02101"></a><span class="lineno"> 2101</span>&#160;  <span class="keywordtype">double</span> _slaves_connected();</div>
+<div class="line"><a name="l02102"></a><span class="lineno"> 2102</span>&#160;  <span class="keywordtype">double</span> _slaves_disconnected();</div>
+<div class="line"><a name="l02103"></a><span class="lineno"> 2103</span>&#160;  <span class="keywordtype">double</span> _slaves_active();</div>
+<div class="line"><a name="l02104"></a><span class="lineno"> 2104</span>&#160;  <span class="keywordtype">double</span> _slaves_inactive();</div>
+<div class="line"><a name="l02105"></a><span class="lineno"> 2105</span>&#160;  <span class="keywordtype">double</span> _slaves_unreachable();</div>
+<div class="line"><a name="l02106"></a><span class="lineno"> 2106</span>&#160;</div>
+<div class="line"><a name="l02107"></a><span class="lineno"> 2107</span>&#160;  <span class="keywordtype">double</span> _frameworks_connected();</div>
+<div class="line"><a name="l02108"></a><span class="lineno"> 2108</span>&#160;  <span class="keywordtype">double</span> _frameworks_disconnected();</div>
+<div class="line"><a name="l02109"></a><span class="lineno"> 2109</span>&#160;  <span class="keywordtype">double</span> _frameworks_active();</div>
+<div class="line"><a name="l02110"></a><span class="lineno"> 2110</span>&#160;  <span class="keywordtype">double</span> _frameworks_inactive();</div>
+<div class="line"><a name="l02111"></a><span class="lineno"> 2111</span>&#160;</div>
+<div class="line"><a name="l02112"></a><span class="lineno"> 2112</span>&#160;  <span class="keywordtype">double</span> _outstanding_offers()</div>
+<div class="line"><a name="l02113"></a><span class="lineno"> 2113</span>&#160;  {</div>
+<div class="line"><a name="l02114"></a><span class="lineno"> 2114</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span><span class="keywordtype">double</span><span class="keyword">&gt;</span>(offers.size());</div>
+<div class="line"><a name="l02115"></a><span class="lineno"> 2115</span>&#160;  }</div>
+<div class="line"><a name="l02116"></a><span class="lineno"> 2116</span>&#160;</div>
+<div class="line"><a name="l02117"></a><span class="lineno"> 2117</span>&#160;  <span class="keywordtype">double</span> _event_queue_messages()</div>
+<div class="line"><a name="l02118"></a><span class="lineno"> 2118</span>&#160;  {</div>
+<div class="line"><a name="l02119"></a><span class="lineno"> 2119</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span><span class="keywordtype">double</span><span class="keyword">&gt;</span>(eventCount&lt;process::MessageEvent&gt;());</div>
+<div class="line"><a name="l02120"></a><span class="lineno"> 2120</span>&#160;  }</div>
+<div class="line"><a name="l02121"></a><span class="lineno"> 2121</span>&#160;</div>
+<div class="line"><a name="l02122"></a><span class="lineno"> 2122</span>&#160;  <span class="keywordtype">double</span> _event_queue_dispatches()</div>
+<div class="line"><a name="l02123"></a><span class="lineno"> 2123</span>&#160;  {</div>
+<div class="line"><a name="l02124"></a><span class="lineno"> 2124</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span><span class="keywordtype">double</span><span class="keyword">&gt;</span>(eventCount&lt;process::DispatchEvent&gt;());</div>
+<div class="line"><a name="l02125"></a><span class="lineno"> 2125</span>&#160;  }</div>
+<div class="line"><a name="l02126"></a><span class="lineno"> 2126</span>&#160;</div>
+<div class="line"><a name="l02127"></a><span class="lineno"> 2127</span>&#160;  <span class="keywordtype">double</span> _event_queue_http_requests()</div>
+<div class="line"><a name="l02128"></a><span class="lineno"> 2128</span>&#160;  {</div>
+<div class="line"><a name="l02129"></a><span class="lineno"> 2129</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span><span class="keywordtype">double</span><span class="keyword">&gt;</span>(eventCount&lt;process::HttpEvent&gt;());</div>
+<div class="line"><a name="l02130"></a><span class="lineno"> 2130</span>&#160;  }</div>
+<div class="line"><a name="l02131"></a><span class="lineno"> 2131</span>&#160;</div>
+<div class="line"><a name="l02132"></a><span class="lineno"> 2132</span>&#160;  <span class="keywordtype">double</span> _tasks_staging();</div>
+<div class="line"><a name="l02133"></a><span class="lineno"> 2133</span>&#160;  <span class="keywordtype">double</span> _tasks_starting();</div>
+<div class="line"><a name="l02134"></a><span class="lineno"> 2134</span>&#160;  <span class="keywordtype">double</span> _tasks_running();</div>
+<div class="line"><a name="l02135"></a><span class="lineno"> 2135</span>&#160;  <span class="keywordtype">double</span> _tasks_unreachable();</div>
+<div class="line"><a name="l02136"></a><span class="lineno"> 2136</span>&#160;  <span class="keywordtype">double</span> _tasks_killing();</div>
 <div class="line"><a name="l02137"></a><span class="lineno"> 2137</span>&#160;</div>
-<div class="line"><a name="l02138"></a><span class="lineno"> 2138</span>&#160;  <span class="comment">// Validates the framework including authorization.</span></div>
-<div class="line"><a name="l02139"></a><span class="lineno"> 2139</span>&#160;  <span class="comment">// Returns None if the framework is valid.</span></div>
-<div class="line"><a name="l02140"></a><span class="lineno"> 2140</span>&#160;  <span class="comment">// Returns Error if the framework is invalid.</span></div>
-<div class="line"><a name="l02141"></a><span class="lineno"> 2141</span>&#160;  <span class="comment">// Returns Failure if authorization returns &#39;Failure&#39;.</span></div>
-<div class="line"><a name="l02142"></a><span class="lineno"> 2142</span>&#160;  <a class="code" href="classprocess_1_1Future.html">process::Future&lt;Option&lt;Error&gt;</a>&gt; validate(</div>
-<div class="line"><a name="l02143"></a><span class="lineno"> 2143</span>&#160;      <span class="keyword">const</span> FrameworkInfo&amp; frameworkInfo,</div>
-<div class="line"><a name="l02144"></a><span class="lineno"> 2144</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="l02145"></a><span class="lineno"> 2145</span>&#160;};</div>
-<div class="line"><a name="l02146"></a><span class="lineno"> 2146</span>&#160;</div>
+<div class="line"><a name="l02138"></a><span class="lineno"> 2138</span>&#160;  <span class="keywordtype">double</span> _resources_total(<span class="keyword">const</span> std::string&amp; name);</div>
+<div class="line"><a name="l02139"></a><span class="lineno"> 2139</span>&#160;  <span class="keywordtype">double</span> _resources_used(<span class="keyword">const</span> std::string&amp; name);</div>
+<div class="line"><a name="l02140"></a><span class="lineno"> 2140</span>&#160;  <span class="keywordtype">double</span> _resources_percent(<span class="keyword">const</span> std::string&amp; name);</div>
+<div class="line"><a name="l02141"></a><span class="lineno"> 2141</span>&#160;</div>
+<div class="line"><a name="l02142"></a><span class="lineno"> 2142</span>&#160;  <span class="keywordtype">double</span> _resources_revocable_total(<span class="keyword">const</span> std::string&amp; name);</div>
+<div class="line"><a name="l02143"></a><span class="lineno"> 2143</span>&#160;  <span class="keywordtype">double</span> _resources_revocable_used(<span class="keyword">const</span> std::string&amp; name);</div>
+<div class="line"><a name="l02144"></a><span class="lineno"> 2144</span>&#160;  <span class="keywordtype">double</span> _resources_revocable_percent(<span class="keyword">const</span> std::string&amp; name);</div>
+<div class="line"><a name="l02145"></a><span class="lineno"> 2145</span>&#160;</div>
+<div class="line"><a name="l02146"></a><span class="lineno"> 2146</span>&#160;  <a class="code" href="classprocess_1_1Time.html">process::Time</a> startTime; <span class="comment">// Start time used to calculate uptime.</span></div>
 <div class="line"><a name="l02147"></a><span class="lineno"> 2147</span>&#160;</div>
-<div class="line"><a name="l02148"></a><span class="lineno"> 2148</span>&#160;<span class="keyword">inline</span> std::ostream&amp; <a class="code" href="namespacemesos_1_1internal_1_1master.html#a222c724f5e238d743bb338c71016048d">operator&lt;&lt;</a>(</div>
-<div class="line"><a name="l02149"></a><span class="lineno"> 2149</span>&#160;    std::ostream&amp; stream,</div>
-<div class="line"><a name="l02150"></a><span class="lineno"> 2150</span>&#160;    <span class="keyword">const</span> Framework&amp; framework);</div>
-<div class="line"><a name="l02151"></a><span class="lineno"> 2151</span>&#160;</div>
-<div class="line"><a name="l02152"></a><span class="lineno"> 2152</span>&#160;</div>
-<div class="line"><a name="l02153"></a><span class="lineno"> 2153</span>&#160;<span class="comment">// TODO(bmahler): Keeping the task and executor information in sync</span></div>
-<div class="line"><a name="l02154"></a><span class="lineno"> 2154</span>&#160;<span class="comment">// across the Slave and Framework structs is error prone!</span></div>
-<div class="line"><a name="l02155"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1master_1_1Framework.html"> 2155</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structmesos_1_1internal_1_1master_1_1Framework.html">Framework</a></div>
-<div class="line"><a name="l02156"></a><span class="lineno"> 2156</span>&#160;{</div>
-<div class="line"><a name="l02157"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1master_1_1Framework.html#a96a90d8ae734d729489ba877367e6b65"> 2157</a></span>&#160;  <span class="keyword">enum</span> <a class="code" href="structmesos_1_1internal_1_1master_1_1Framework.html#a96a90d8ae734d729489ba877367e6b65">State</a></div>
-<div class="line"><a name="l02158"></a><span class="lineno"> 2158</span>&#160;  {</div>
-<div class="line"><a name="l02159"></a><span class="lineno"> 2159</span>&#160;    <span class="comment">// Framework has never connected to this master. This implies the</span></div>
-<div class="line"><a name="l02160"></a><span class="lineno"> 2160</span>&#160;    <span class="comment">// master failed over and the framework has not yet re-registered,</span></div>
-<div class="line"><a name="l02161"></a><span class="lineno"> 2161</span>&#160;    <span class="comment">// but some framework state has been recovered from re-registering</span></div>
-<div class="line"><a name="l02162"></a><span class="lineno"> 2162</span>&#160;    <span class="comment">// agents that are running tasks for the framework.</span></div>
-<div class="line"><a name="l02163"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1master_1_1Framework.html#a96a90d8ae734d729489ba877367e6b65a2781c7e12fec2c505d95224df19bbea4"> 2163</a></span>&#160;    <a class="code" href="structmesos_1_1internal_1_1master_1_1Framework.html#a96a90d8ae734d729489ba877367e6b65a2781c7e12fec2c505d95224df19bbea4">RECOVERED</a>,</div>
+<div class="line"><a name="l02148"></a><span class="lineno"> 2148</span>&#160;  <a class="code" href="classOption.html">Option&lt;process::Time&gt;</a> electedTime; <span class="comment">// Time when this master is elected.</span></div>
+<div class="line"><a name="l02149"></a><span class="lineno"> 2149</span>&#160;</div>
+<div class="line"><a name="l02150"></a><span class="lineno"> 2150</span>&#160;  <span class="comment">// Validates the framework including authorization.</span></div>
+<div class="line"><a name="l02151"></a><span class="lineno"> 2151</span>&#160;  <span class="comment">// Returns None if the framework is valid.</span></div>
+<div class="line"><a name="l02152"></a><span class="lineno"> 2152</span>&#160;  <span class="comment">// Returns Error if the framework is invalid.</span></div>
+<div class="line"><a name="l02153"></a><span class="lineno"> 2153</span>&#160;  <span class="comment">// Returns Failure if authorization returns &#39;Failure&#39;.</span></div>
+<div class="line"><a name="l02154"></a><span class="lineno"> 2154</span>&#160;  <a class="code" href="classprocess_1_1Future.html">process::Future&lt;Option&lt;Error&gt;</a>&gt; validate(</div>
+<div class="line"><a name="l02155"></a><span class="lineno"> 2155</span>&#160;      <span class="keyword">const</span> FrameworkInfo&amp; frameworkInfo,</div>
+<div class="line"><a name="l02156"></a><span class="lineno"> 2156</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="l02157"></a><span class="lineno"> 2157</span>&#160;};</div>
+<div class="line"><a name="l02158"></a><span class="lineno"> 2158</span>&#160;</div>
+<div class="line"><a name="l02159"></a><span class="lineno"> 2159</span>&#160;</div>
+<div class="line"><a name="l02160"></a><span class="lineno"> 2160</span>&#160;<span class="keyword">inline</span> std::ostream&amp; <a class="code" href="namespacemesos_1_1internal_1_1master.html#a222c724f5e238d743bb338c71016048d">operator&lt;&lt;</a>(</div>
+<div class="line"><a name="l02161"></a><span class="lineno"> 2161</span>&#160;    std::ostream&amp; stream,</div>
+<div class="line"><a name="l02162"></a><span class="lineno"> 2162</span>&#160;    <span class="keyword">const</span> Framework&amp; framework);</div>
+<div class="line"><a name="l02163"></a><span class="lineno"> 2163</span>&#160;</div>
 <div class="line"><a name="l02164"></a><span class="lineno"> 2164</span>&#160;</div>
-<div class="line"><a name="l02165"></a><span class="lineno"> 2165</span>&#160;    <span class="comment">// Framework was previously connected to this master. A framework</span></div>
-<div class="line"><a name="l02166"></a><span class="lineno"> 2166</span>&#160;    <span class="comment">// becomes disconnected when there is a socket error.</span></div>
-<div class="line"><a name="l02167"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1master_1_1Framework.html#a96a90d8ae734d729489ba877367e6b65a52b99ab13cfb61a1ed4f78cc57f974f6"> 2167</a></span>&#160;    <a class="code" href="structmesos_1_1internal_1_1master_1_1Framework.html#a96a90d8ae734d729489ba877367e6b65a52b99ab13cfb61a1ed4f78cc57f974f6">DISCONNECTED</a>,</div>
-<div class="line"><a name="l02168"></a><span class="lineno"> 2168</span>&#160;</div>
-<div class="line"><a name="l02169"></a><span class="lineno"> 2169</span>&#160;    <span class="comment">// The framework is connected but not active.</span></div>
-<div class="line"><a name="l02170"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1master_1_1Framework.html#a96a90d8ae734d729489ba877367e6b65a9564d46b6ef0e132e3856ac29e22b065"> 2170</a></span>&#160;    <a class="code" href="structmesos_1_1internal_1_1master_1_1Framework.html#a96a90d8ae734d729489ba877367e6b65a9564d46b6ef0e132e3856ac29e22b065">INACTIVE</a>,</div>
-<div class="line"><a name="l02171"></a><span class="lineno"> 2171</span>&#160;</div>
-<div class="line"><a name="l02172"></a><span class="lineno"> 2172</span>&#160;    <span class="comment">// Framework is connected and eligible to receive offers. No</span></div>
-<div class="line"><a name="l02173"></a><span class="lineno"> 2173</span>&#160;    <span class="comment">// offers will be made to frameworks that are not active.</span></div>
-<div class="line"><a name="l02174"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1master_1_1Framework.html#a96a90d8ae734d729489ba877367e6b65a6228d0b8755323f0a5d2cf44863226d5"> 2174</a></span>&#160;    <a class="code" href="structmesos_1_1internal_1_1master_1_1Framework.html#a96a90d8ae734d729489ba877367e6b65a6228d0b8755323f0a5d2cf44863226d5">ACTIVE</a></div>
-<div class="line"><a name="l02175"></a><span class="lineno"> 2175</span>&#160;  };</div>
+<div class="line"><a name="l02165"></a><span class="lineno"> 2165</span>&#160;<span class="comment">// TODO(bmahler): Keeping the task and executor information in sync</span></div>
+<div class="line"><a name="l02166"></a><span class="lineno"> 2166</span>&#160;<span class="comment">// across the Slave and Framework structs is error prone!</span></div>
+<div class="line"><a name="l02167"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1master_1_1Framework.html"> 2167</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structmesos_1_1internal_1_1master_1_1Framework.html">Framework</a></div>
+<div class="line"><a name="l02168"></a><span class="lineno"> 2168</span>&#160;{</div>
+<div class="line"><a name="l02169"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1master_1_1Framework.html#a96a90d8ae734d729489ba877367e6b65"> 2169</a></span>&#160;  <span class="keyword">enum</span> <a class="code" href="structmesos_1_1internal_1_1master_1_1Framework.html#a96a90d8ae734d729489ba877367e6b65">State</a></div>
+<div class="line"><a name="l02170"></a><span class="lineno"> 2170</span>&#160;  {</div>
+<div class="line"><a name="l02171"></a><span class="lineno"> 2171</span>&#160;    <span class="comment">// Framework has never connected to this master. This implies the</span></div>
+<div class="line"><a name="l02172"></a><span class="lineno"> 2172</span>&#160;    <span class="comment">// master failed over and the framework has not yet re-registered,</span></div>
+<div class="line"><a name="l02173"></a><span class="lineno"> 2173</span>&#160;    <span class="comment">// but some framework state has been recovered from re-registering</span></div>
+<div class="line"><a name="l02174"></a><span class="lineno"> 2174</span>&#160;    <span class="comment">// agents that are running tasks for the framework.</span></div>
+<div class="line"><a name="l02175"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1master_1_1Framework.html#a96a90d8ae734d729489ba877367e6b65a2781c7e12fec2c505d95224df19bbea4"> 2175</a></span>&#160;    <a class="code" href="structmesos_1_1internal_1_1master_1_1Framework.html#a96a90d8ae734d729489ba877367e6b65a2781c7e12fec2c505d95224df19bbea4">RECOVERED</a>,</div>
 <div class="line"><a name="l02176"></a><span class="lineno"> 2176</span>&#160;</div>
-<div class="line"><a name="l02177"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1master_1_1Framework.html#a5ca92e3fadf6870a101d9bb811d4c3a5"> 2177</a></span>&#160;  <a class="code" href="structmesos_1_1internal_1_1master_1_1Framework.html#a5ca92e3fadf6870a101d9bb811d4c3a5">Framework</a>(<a class="code" href="classmesos_1_1internal_1_1master_1_1Master.html">Master</a>* <span class="keyword">const</span> <a class="code" href="structmesos_1_1internal_1_1master_1_1Framework.html#a3b912abb827bb20ef35d46b2388ae1f0">master</a>,</div>
-<div class="line"><a name="l02178"></a><span class="lineno"> 2178</span>&#160;            <span class="keyword">const</span> <a class="code" href="classmesos_1_1internal_1_1master_1_1Flags.html">Flags</a>&amp; masterFlags,</div>
-<div class="line"><a name="l02179"></a><span class="lineno"> 2179</span>&#160;            <span class="keyword">const</span> FrameworkInfo&amp; <a class="code" href="structmesos_1_1internal_1_1master_1_1Framework.html#aaa84eaf9694ad355fdb76ff15818b295">info</a>,</div>
-<div class="line"><a name="l02180"></a><span class="lineno"> 2180</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="l02181"></a><span class="lineno"> 2181</span>&#160;            <span class="keyword">const</span> <a class="code" href="classprocess_1_1Time.html">process::Time</a>&amp; <a class="code" href="namespacecgroups_1_1blkio_1_1cfq.html#abe4d7d69fdf7ca70fb30c6cd34a953e4">time</a> = <a class="code" href="classprocess_1_1Clock.html#a24ed3f746bb6b3ddb1c52dce5e0ecd38">process::Clock::now</a>())</div>
-<div class="line"><a name="l02182"></a><span class="lineno"> 2182</span>&#160;    : <a class="code" href="structmesos_1_1internal_1_1master_1_1Framework.html">Framework</a>(master, masterFlags, info, <a class="code" href="structmesos_1_1internal_1_1master_1_1Framework.html#a96a90d8ae734d729489ba877367e6b65a6228d0b8755323f0a5d2cf44863226d5">ACTIVE</a>, <a class="code" href="namespacecgroups_1_1blkio_1_1cfq.html#abe4d7d69fdf7ca70fb30c6cd34a953e4">time</a>)</div>
-<div class="line"><a name="l02183"></a><span class="lineno"> 2183</span>&#160;  {</div>
-<div class="line"><a name="l02184"></a><span class="lineno"> 2184</span>&#160;    pid = _pid;</div>
-<div class="line"><a name="l02185"></a><span class="lineno"> 2185</span>&#160;  }</div>
-<div class="line"><a name="l02186"></a><span class="lineno"> 2186</span>&#160;</div>
-<div class="line"><a name="l02187"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1master_1_1Framework.html#a71e5518db2bb5dea0ea30c62c8875233"> 2187</a></span>&#160;  <a class="code" href="structmesos_1_1internal_1_1master_1_1Framework.html#a71e5518db2bb5dea0ea30c62c8875233">Framework</a>(<a class="code" href="classmesos_1_1internal_1_1master_1_1Master.html">Master</a>* <span class="keyword">const</span> master,</div>
-<div class="line"><a name="l02188"></a><span class="lineno"> 2188</span>&#160;            <span class="keyword">const</span> <a class="code" href="classmesos_1_1internal_1_1master_1_1Flags.html">Flags</a>&amp; masterFlags,</div>
-<div class="line"><a name="l02189"></a><span class="lineno"> 2189</span>&#160;            <span class="keyword">const</span> FrameworkInfo&amp; info,</div>
-<div class="line"><a name="l02190"></a><span class="lineno"> 2190</span>&#160;            <span class="keyword">const</span> <a class="code" href="structmesos_1_1internal_1_1master_1_1HttpConnection.html">HttpConnection</a>&amp; _http,</div>
-<div class="line"><a name="l02191"></a><span class="lineno"> 2191</span>&#160;            <span class="keyword">const</span> <a class="code" href="classprocess_1_1Time.html">process::Time</a>&amp; <a class="code" href="namespacecgroups_1_1blkio_1_1cfq.html#abe4d7d69fdf7ca70fb30c6cd34a953e4">time</a> = <a class="code" href="classprocess_1_1Clock.html#a24ed3f746bb6b3ddb1c52dce5e0ecd38">process::Clock::now</a>())</div>
-<div class="line"><a name="l02192"></a><span class="lineno"> 2192</span>&#160;    : <a class="code" href="structmesos_1_1internal_1_1master_1_1Framework.html">Framework</a>(master, masterFlags, info, <a class="code" href="structmesos_1_1internal_1_1master_1_1Framework.html#a96a90d8ae734d729489ba877367e6b65a6228d0b8755323f0a5d2cf44863226d5">ACTIVE</a>, <a class="code" href="namespacecgroups_1_1blkio_1_1cfq.html#abe4d7d69fdf7ca70fb30c6cd34a953e4">time</a>)</div>
-<div class="line"><a name="l02193"></a><span class="lineno"> 2193</span>&#160;  {</div>
-<div class="line"><a name="l02194"></a><span class="lineno"> 2194</span>&#160;    <a class="code" href="structmesos_1_1internal_1_1master_1_1Framework.html#a574beb521d564fcbbbce942e694d106c">http</a> = _http;</div>
-<div class="line"><a name="l02195"></a><span class="lineno"> 2195</span>&#160;  }</div>
-<div class="line"><a name="l02196"></a><span class="lineno"> 2196</span>&#160;</div>
-<div class="line"><a name="l02197"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1master_1_1Framework.html#ac3630efd25c454ceac2b96fb299f3db3"> 2197</a></span>&#160;  <a class="code" href="structmesos_1_1internal_1_1master_1_1Framework.html#ac3630efd25c454ceac2b96fb299f3db3">Framework</a>(<a class="code" href="classmesos_1_1internal_1_1master_1_1Master.html">Master</a>* <span class="keyword">const</span> master,</div>
-<div class="line"><a name="l02198"></a><span class="lineno"> 2198</span>&#160;            <span class="keyword">const</span> <a class="code" href="classmesos_1_1internal_1_1master_1_1Flags.html">Flags</a>&amp; masterFlags,</div>
-<div class="line"><a name="l02199"></a><span class="lineno"> 2199</span>&#160;            <span class="keyword">const</span> FrameworkInfo&amp; info)</div>
-<div class="line"><a name="l02200"></a><span class="lineno"> 2200</span>&#160;    : <a class="code" href="structmesos_1_1internal_1_1master_1_1Framework.html">Framework</a>(master, masterFlags, info, <a class="code" href="structmesos_1_1internal_1_1master_1_1Framework.html#a96a90d8ae734d729489ba877367e6b65a2781c7e12fec2c505d95224df19bbea4">RECOVERED</a>, <a class="code" href="namespaceos.html#ae19e4161a51b86a1f330f3bf1dc75389">process</a>::Time()) {}</div>
-<div class="line"><a name="l02201"></a><span class="lineno"> 2201</span>&#160;</div>
-<div class="line"><a name="l02202"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1master_1_1Framework.html#a6831b8eaa6b3f35f823663c5e71bf591"> 2202</a></span>&#160;  <a class="code" href="structmesos_1_1internal_1_1master_1_1Framework.html#a6831b8eaa6b3f35f823663c5e71bf591">~Framework</a>()</div>
-<div class="line"><a name="l02203"></a><span class="lineno"> 2203</span>&#160;  {</div>
-<div class="line"><a name="l02204"></a><span class="lineno"> 2204</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="structmesos_1_1internal_1_1master_1_1Framework.html#a574beb521d564fcbbbce942e694d106c">http</a>.isSome()) {</div>
-<div class="line"><a name="l02205"></a><span class="lineno"> 2205</span>&#160;      <a class="code" href="structmesos_1_1internal_1_1master_1_1Framework.html#a54362f290514769903a61d7cd0d6506b">closeHttpConnection</a>();</div>
-<div class="line"><a name="l02206"></a><span class="lineno"> 2206</span>&#160;    }</div>
+<div class="line"><a name="l02177"></a><span class="lineno"> 2177</span>&#160;    <span class="comment">// Framework was previously connected to this master. A framework</span></div>
+<div class="line"><a name="l02178"></a><span class="lineno"> 2178</span>&#160;    <span class="comment">// becomes disconnected when there is a socket error.</span></div>
+<div class="line"><a name="l02179"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1master_1_1Framework.html#a96a90d8ae734d729489ba877367e6b65a52b99ab13cfb61a1ed4f78cc57f974f6"> 2179</a></span>&#160;    <a class="code" href="structmesos_1_1internal_1_1master_1_1Framework.html#a96a90d8ae734d729489ba877367e6b65a52b99ab13cfb61a1ed4f78cc57f974f6">DISCONNECTED</a>,</div>
+<div class="line"><a name="l02180"></a><span class="lineno"> 2180</span>&#160;</div>
+<div class="line"><a name="l02181"></a><span class="lineno"> 2181</span>&#160;    <span class="comment">// The framework is connected but not active.</span></div>
+<div class="line"><a name="l02182"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1master_1_1Framework.html#a96a90d8ae734d729489ba877367e6b65a9564d46b6ef0e132e3856ac29e22b065"> 2182</a></span>&#160;    <a class="code" href="structmesos_1_1internal_1_1master_1_1Framework.html#a96a90d8ae734d729489ba877367e6b65a9564d46b6ef0e132e3856ac29e22b065">INACTIVE</a>,</div>
+<div class="line"><a name="l02183"></a><span class="lineno"> 2183</span>&#160;</div>
+<div class="line"><a name="l02184"></a><span class="lineno"> 2184</span>&#160;    <span class="comment">// Framework is connected and eligible to receive offers. No</span></div>
+<div class="line"><a name="l02185"></a><span class="lineno"> 2185</span>&#160;    <span class="comment">// offers will be made to frameworks that are not active.</span></div>
+<div class="line"><a name="l02186"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1master_1_1Framework.html#a96a90d8ae734d729489ba877367e6b65a6228d0b8755323f0a5d2cf44863226d5"> 2186</a></span>&#160;    <a class="code" href="structmesos_1_1internal_1_1master_1_1Framework.html#a96a90d8ae734d729489ba877367e6b65a6228d0b8755323f0a5d2cf44863226d5">ACTIVE</a></div>
+<div class="line"><a name="l02187"></a><span class="lineno"> 2187</span>&#160;  };</div>
+<div class="line"><a name="l02188"></a><span class="lineno"> 2188</span>&#160;</div>
+<div class="line"><a name="l02189"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1master_1_1Framework.html#a5ca92e3fadf6870a101d9bb811d4c3a5"> 2189</a></span>&#160;  <a class="code" href="structmesos_1_1internal_1_1master_1_1Framework.html#a5ca92e3fadf6870a101d9bb811d4c3a5">Framework</a>(<a class="code" href="classmesos_1_1internal_1_1master_1_1Master.html">Master</a>* <span class="keyword">const</span> <a class="code" href="structmesos_1_1internal_1_1master_1_1Framework.html#a3b912abb827bb20ef35d46b2388ae1f0">master</a>,</div>
+<div class="line"><a name="l02190"></a><span class="lineno"> 2190</span>&#160;            <span class="keyword">const</span> <a class="code" href="classmesos_1_1internal_1_1master_1_1Flags.html">Flags</a>&amp; masterFlags,</div>
+<div class="line"><a name="l02191"></a><span class="lineno"> 2191</span>&#160;            <span class="keyword">const</span> FrameworkInfo&amp; <a class="code" href="structmesos_1_1internal_1_1master_1_1Framework.html#aaa84eaf9694ad355fdb76ff15818b295">info</a>,</div>
+<div class="line"><a name="l02192"></a><span class="lineno"> 2192</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="l02193"></a><span class="lineno"> 2193</span>&#160;            <span class="keyword">const</span> <a class="code" href="classprocess_1_1Time.html">process::Time</a>&amp; <a class="code" href="namespacecgroups_1_1blkio_1_1cfq.html#abe4d7d69fdf7ca70fb30c6cd34a953e4">time</a> = <a class="code" href="classprocess_1_1Clock.html#a24ed3f746bb6b3ddb1c52dce5e0ecd38">process::Clock::now</a>())</div>
+<div class="line"><a name="l02194"></a><span class="lineno"> 2194</span>&#160;    : <a class="code" href="structmesos_1_1internal_1_1master_1_1Framework.html">Framework</a>(master, masterFlags, info, <a class="code" href="structmesos_1_1internal_1_1master_1_1Framework.html#a96a90d8ae734d729489ba877367e6b65a6228d0b8755323f0a5d2cf44863226d5">ACTIVE</a>, <a class="code" href="namespacecgroups_1_1blkio_1_1cfq.html#abe4d7d69fdf7ca70fb30c6cd34a953e4">time</a>)</div>
+<div class="line"><a name="l02195"></a><span class="lineno"> 2195</span>&#160;  {</div>
+<div class="line"><a name="l02196"></a><span class="lineno"> 2196</span>&#160;    pid = _pid;</div>
+<div class="line"><a name="l02197"></a><span class="lineno"> 2197</span>&#160;  }</div>
+<div class="line"><a name="l02198"></a><span class="lineno"> 2198</span>&#160;</div>
+<div class="line"><a name="l02199"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1master_1_1Framework.html#a71e5518db2bb5dea0ea30c62c8875233"> 2199</a></span>&#160;  <a class="code" href="structmesos_1_1internal_1_1master_1_1Framework.html#a71e5518db2bb5dea0ea30c62c8875233">Framework</a>(<a class="code" href="classmesos_1_1internal_1_1master_1_1Master.html">Master</a>* <span class="keyword">const</span> master,</div>
+<div class="line"><a name="l02200"></a><span class="lineno"> 2200</span>&#160;            <span class="keyword">const</span> <a class="code" href="classmesos_1_1internal_1_1master_1_1Flags.html">Flags</a>&amp; masterFlags,</div>
+<div class="line"><a name="l02201"></a><span class="lineno"> 2201</span>&#160;            <span class="keyword">const</span> FrameworkInfo&amp; info,</div>
+<div class="line"><a name="l02202"></a><span class="lineno"> 2202</span>&#160;            <span class="keyword">const</span> <a class="code" href="structmesos_1_1internal_1_1master_1_1HttpConnection.html">HttpConnection</a>&amp; _http,</div>
+<div class="line"><a name="l02203"></a><span class="lineno"> 2203</span>&#160;            <span class="keyword">const</span> <a class="code" href="classprocess_1_1Time.html">process::Time</a>&amp; <a class="code" href="namespacecgroups_1_1blkio_1_1cfq.html#abe4d7d69fdf7ca70fb30c6cd34a953e4">time</a> = <a class="code" href="classprocess_1_1Clock.html#a24ed3f746bb6b3ddb1c52dce5e0ecd38">process::Clock::now</a>())</div>
+<div class="line"><a name="l02204"></a><span class="lineno"> 2204</span>&#160;    : <a class="code" href="structmesos_1_1internal_1_1master_1_1Framework.html">Framework</a>(master, masterFlags, info, <a class="code" href="structmesos_1_1internal_1_1master_1_1Framework.html#a96a90d8ae734d729489ba877367e6b65a6228d0b8755323f0a5d2cf44863226d5">ACTIVE</a>, <a class="code" href="namespacecgroups_1_1blkio_1_1cfq.html#abe4d7d69fdf7ca70fb30c6cd34a953e4">time</a>)</div>
+<div class="line"><a name="l02205"></a><span class="lineno"> 2205</span>&#160;  {</div>
+<div class="line"><a name="l02206"></a><span class="lineno"> 2206</span>&#160;    <a class="code" href="structmesos_1_1internal_1_1master_1_1Framework.html#a574beb521d564fcbbbce942e694d106c">http</a> = _http;</div>
 <div class="line"><a name="l02207"></a><span class="lineno"> 2207</span>&#160;  }</div>
 <div class="line"><a name="l02208"></a><span class="lineno"> 2208</span>&#160;</div>
-<div class="line"><a name="l02209"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1master_1_1Framework.html#a19891551770e3337ea6b9a16eae3d582"> 2209</a></span>&#160;  Task* <a class="code" href="structmesos_1_1internal_1_1master_1_1Framework.html#a19891551770e3337ea6b9a16eae3d582">getTask</a>(<span class="keyword">const</span> TaskID&amp; taskId)</div>
-<div class="line"><a name="l02210"></a><span class="lineno"> 2210</span>&#160;  {</div>
-<div class="line"><a name="l02211"></a><span class="lineno"> 2211</span>&#160;    <span class="keywordflow">if</span> (tasks.count(taskId) &gt; 0) {</div>
-<div class="line"><a name="l02212"></a><span class="lineno"> 2212</span>&#160;      <span class="keywordflow">return</span> tasks[taskId];</div>
-<div class="line"><a name="l02213"></a><span class="lineno"> 2213</span>&#160;    }</div>
-<div class="line"><a name="l02214"></a><span class="lineno"> 2214</span>&#160;</div>
-<div class="line"><a name="l02215"></a><span class="lineno"> 2215</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
-<div class="line"><a name="l02216"></a><span class="lineno"> 2216</span>&#160;  }</div>
-<div class="line"><a name="l02217"></a><span class="lineno"> 2217</span>&#160;</div>
-<div class="line"><a name="l02218"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1master_1_1Framework.html#a4d9a5a8184f84befc507e33d0fd8750a"> 2218</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="structmesos_1_1internal_1_1master_1_1Framework.html#a4d9a5a8184f84befc507e33d0fd8750a">addTask</a>(Task* task)</div>
-<div class="line"><a name="l02219"></a><span class="lineno"> 2219</span>&#160;  {</div>
-<div class="line"><a name="l02220"></a><span class="lineno"> 2220</span>&#160;    CHECK(!tasks.contains(task-&gt;task_id()))</div>
-<div class="line"><a name="l02221"></a><span class="lineno"> 2221</span>&#160;      &lt;&lt; <span class="stringliteral">&quot;Duplicate task &quot;</span> &lt;&lt; task-&gt;task_id()</div>
-<div class="line"><a name="l02222"></a><span class="lineno"> 2222</span>&#160;      &lt;&lt; <span class="stringliteral">&quot; of framework &quot;</span> &lt;&lt; task-&gt;framework_id();</div>
-<div class="line"><a name="l02223"></a><span class="lineno"> 2223</span>&#160;</div>
-<div class="line"><a name="l02224"></a><span class="lineno"> 2224</span>&#160;    <span class="comment">// Verify that Resource.AllocationInfo is set,</span></div>
-<div class="line"><a name="l02225"></a><span class="lineno"> 2225</span>&#160;    <span class="comment">// this should be guaranteed by the master.</span></div>
-<div class="line"><a name="l02226"></a><span class="lineno"> 2226</span>&#160;    <span class="keywordflow">foreach</span> (<span class="keyword">const</span> Resource&amp; resource, task-&gt;resources()) {</div>
-<div class="line"><a name="l02227"></a><span class="lineno"> 2227</span>&#160;      CHECK(resource.has_allocation_info());</div>
-<div class="line"><a name="l02228"></a><span class="lineno"> 2228</span>&#160;    }</div>
+<div class="line"><a name="l02209"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1master_1_1Framework.html#ac3630efd25c454ceac2b96fb299f3db3"> 2209</a></span>&#160;  <a class="code" href="structmesos_1_1internal_1_1master_1_1Framework.html#ac3630efd25c454ceac2b96fb299f3db3">Framework</a>(<a class="code" href="classmesos_1_1internal_1_1master_1_1Master.html">Master</a>* <span class="keyword">const</span> master,</div>
+<div class="line"><a name="l02210"></a><span class="lineno"> 2210</span>&#160;            <span class="keyword">const</span> <a class="code" href="classmesos_1_1internal_1_1master_1_1Flags.html">Flags</a>&amp; masterFlags,</div>
+<div class="line"><a name="l02211"></a><span class="lineno"> 2211</span>&#160;            <span class="keyword">const</span> FrameworkInfo&amp; info)</div>
+<div class="line"><a name="l02212"></a><span class="lineno"> 2212</span>&#160;    : <a class="code" href="structmesos_1_1internal_1_1master_1_1Framework.html">Framework</a>(master, masterFlags, info, <a class="code" href="structmesos_1_1internal_1_1master_1_1Framework.html#a96a90d8ae734d729489ba877367e6b65a2781c7e12fec2c505d95224df19bbea4">RECOVERED</a>, <a class="code" href="namespaceos.html#ae19e4161a51b86a1f330f3bf1dc75389">process</a>::Time()) {}</div>
+<div class="line"><a name="l02213"></a><span class="lineno"> 2213</span>&#160;</div>
+<div class="line"><a name="l02214"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1master_1_1Framework.html#a6831b8eaa6b3f35f823663c5e71bf591"> 2214</a></span>&#160;  <a class="code" href="structmesos_1_1internal_1_1master_1_1Framework.html#a6831b8eaa6b3f35f823663c5e71bf591">~Framework</a>()</div>
+<div class="line"><a name="l02215"></a><span class="lineno"> 2215</span>&#160;  {</div>
+<div class="line"><a name="l02216"></a><span class="lineno"> 2216</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="structmesos_1_1internal_1_1master_1_1Framework.html#a574beb521d564fcbbbce942e694d106c">http</a>.isSome()) {</div>
+<div class="line"><a name="l02217"></a><span class="lineno"> 2217</span>&#160;      <a class="code" href="structmesos_1_1internal_1_1master_1_1Framework.html#a54362f290514769903a61d7cd0d6506b">closeHttpConnection</a>();</div>
+<div class="line"><a name="l02218"></a><span class="lineno"> 2218</span>&#160;    }</div>
+<div class="line"><a name="l02219"></a><span class="lineno"> 2219</span>&#160;  }</div>
+<div class="line"><a name="l02220"></a><span class="lineno"> 2220</span>&#160;</div>
+<div class="line"><a name="l02221"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1master_1_1Framework.html#a19891551770e3337ea6b9a16eae3d582"> 2221</a></span>&#160;  Task* <a class="code" href="structmesos_1_1internal_1_1master_1_1Framework.html#a19891551770e3337ea6b9a16eae3d582">getTask</a>(<span class="keyword">const</span> TaskID&amp; taskId)</div>
+<div class="line"><a name="l02222"></a><span class="lineno"> 2222</span>&#160;  {</div>
+<div class="line"><a name="l02223"></a><span class="lineno"> 2223</span>&#16

<TRUNCATED>