You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by gi...@apache.org on 2017/11/29 23:39:30 UTC

[2/3] mesos-site git commit: Updated the website built from mesos SHA: 9d0cadc.

http://git-wip-us.apache.org/repos/asf/mesos-site/blob/733670dd/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 aeabfdd..76711ec 100644
--- a/content/api/latest/c++/src_2master_2master_8hpp_source.html
+++ b/content/api/latest/c++/src_2master_2master_8hpp_source.html
@@ -863,2113 +863,2116 @@
 <div class="line"><a name="l00877"></a><span class="lineno">  877</span>&#160;  <span class="comment">// terminal.</span></div>
 <div class="line"><a name="l00878"></a><span class="lineno">  878</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1master_1_1Master.html#afb50f46fa9a7c640505e19f2d2136f4b">updateTask</a>(Task* task, <span class="keyword">const</span> StatusUpdate&amp; update);</div>
 <div class="line"><a name="l00879"></a><span class="lineno">  879</span>&#160;</div>
-<div class="line"><a name="l00880"></a><span class="lineno">  880</span>&#160;  <span class="comment">// Removes the task.</span></div>
-<div class="line"><a name="l00881"></a><span class="lineno">  881</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1master_1_1Master.html#a0771cec561a66be88cc0443dd571e487">removeTask</a>(Task* task);</div>
-<div class="line"><a name="l00882"></a><span class="lineno">  882</span>&#160;</div>
-<div class="line"><a name="l00883"></a><span class="lineno">  883</span>&#160;  <span class="comment">// Remove an executor and recover its resources.</span></div>
-<div class="line"><a name="l00884"></a><span class="lineno">  884</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1master_1_1Master.html#a22c33d6eb4a0d89677c6c014324d6670">removeExecutor</a>(</div>
-<div class="line"><a name="l00885"></a><span class="lineno">  885</span>&#160;      <a class="code" href="structmesos_1_1internal_1_1master_1_1Slave.html">Slave</a>* slave,</div>
-<div class="line"><a name="l00886"></a><span class="lineno">  886</span>&#160;      <span class="keyword">const</span> FrameworkID&amp; frameworkId,</div>
-<div class="line"><a name="l00887"></a><span class="lineno">  887</span>&#160;      <span class="keyword">const</span> ExecutorID&amp; executorId);</div>
-<div class="line"><a name="l00888"></a><span class="lineno">  888</span>&#160;</div>
-<div class="line"><a name="l00889"></a><span class="lineno">  889</span>&#160;  <span class="comment">// Adds the given offer operation to the framework and the agent.</span></div>
-<div class="line"><a name="l00890"></a><span class="lineno">  890</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1master_1_1Master.html#ab78dff189ae13b01cd17eeec60df5de3">addOfferOperation</a>(</div>
-<div class="line"><a name="l00891"></a><span class="lineno">  891</span>&#160;      <a class="code" href="structmesos_1_1internal_1_1master_1_1Framework.html">Framework</a>* framework,</div>
-<div class="line"><a name="l00892"></a><span class="lineno">  892</span>&#160;      <a class="code" href="structmesos_1_1internal_1_1master_1_1Slave.html">Slave</a>* slave,</div>
-<div class="line"><a name="l00893"></a><span class="lineno">  893</span>&#160;      OfferOperation* operation);</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;  <span class="comment">// Transitions the offer operation, and recovers resources if the</span></div>
-<div class="line"><a name="l00896"></a><span class="lineno">  896</span>&#160;  <span class="comment">// offer operation becomes terminal.</span></div>
-<div class="line"><a name="l00897"></a><span class="lineno">  897</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1master_1_1Master.html#a70246d422a8a4609c7bc74ab2d082b8f">updateOfferOperation</a>(</div>
-<div class="line"><a name="l00898"></a><span class="lineno">  898</span>&#160;      OfferOperation* operation,</div>
-<div class="line"><a name="l00899"></a><span class="lineno">  899</span>&#160;      <span class="keyword">const</span> OfferOperationStatusUpdate&amp; update);</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">  901</span>&#160;  <span class="comment">// Remove the offer operation.</span></div>
-<div class="line"><a name="l00902"></a><span class="lineno">  902</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1master_1_1Master.html#a2855777fbc7be44857de577774b043f8">removeOfferOperation</a>(OfferOperation* operation);</div>
+<div class="line"><a name="l00880"></a><span class="lineno">  880</span>&#160;  <span class="comment">// Removes the task. `unreachable` indicates whether the task is removed due</span></div>
+<div class="line"><a name="l00881"></a><span class="lineno">  881</span>&#160;  <span class="comment">// to being unreachable. Note that we cannot rely on the task state because</span></div>
+<div class="line"><a name="l00882"></a><span class="lineno">  882</span>&#160;  <span class="comment">// it may not reflect unreachability due to being set to TASK_LOST for</span></div>
+<div class="line"><a name="l00883"></a><span class="lineno">  883</span>&#160;  <span class="comment">// backwards compatibility.</span></div>
+<div class="line"><a name="l00884"></a><span class="lineno">  884</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1master_1_1Master.html#a22774b62c9986cd2b18ce56c5c4a177e">removeTask</a>(Task* task, <span class="keywordtype">bool</span> unreachable = <span class="keyword">false</span>);</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">// Remove an executor and recover its resources.</span></div>
+<div class="line"><a name="l00887"></a><span class="lineno">  887</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1master_1_1Master.html#a22c33d6eb4a0d89677c6c014324d6670">removeExecutor</a>(</div>
+<div class="line"><a name="l00888"></a><span class="lineno">  888</span>&#160;      <a class="code" href="structmesos_1_1internal_1_1master_1_1Slave.html">Slave</a>* slave,</div>
+<div class="line"><a name="l00889"></a><span class="lineno">  889</span>&#160;      <span class="keyword">const</span> FrameworkID&amp; frameworkId,</div>
+<div class="line"><a name="l00890"></a><span class="lineno">  890</span>&#160;      <span class="keyword">const</span> ExecutorID&amp; executorId);</div>
+<div class="line"><a name="l00891"></a><span class="lineno">  891</span>&#160;</div>
+<div class="line"><a name="l00892"></a><span class="lineno">  892</span>&#160;  <span class="comment">// Adds the given offer operation to the framework and the agent.</span></div>
+<div class="line"><a name="l00893"></a><span class="lineno">  893</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1master_1_1Master.html#ab78dff189ae13b01cd17eeec60df5de3">addOfferOperation</a>(</div>
+<div class="line"><a name="l00894"></a><span class="lineno">  894</span>&#160;      <a class="code" href="structmesos_1_1internal_1_1master_1_1Framework.html">Framework</a>* framework,</div>
+<div class="line"><a name="l00895"></a><span class="lineno">  895</span>&#160;      <a class="code" href="structmesos_1_1internal_1_1master_1_1Slave.html">Slave</a>* slave,</div>
+<div class="line"><a name="l00896"></a><span class="lineno">  896</span>&#160;      OfferOperation* operation);</div>
+<div class="line"><a name="l00897"></a><span class="lineno">  897</span>&#160;</div>
+<div class="line"><a name="l00898"></a><span class="lineno">  898</span>&#160;  <span class="comment">// Transitions the offer operation, and recovers resources if the</span></div>
+<div class="line"><a name="l00899"></a><span class="lineno">  899</span>&#160;  <span class="comment">// offer operation becomes terminal.</span></div>
+<div class="line"><a name="l00900"></a><span class="lineno">  900</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1master_1_1Master.html#a70246d422a8a4609c7bc74ab2d082b8f">updateOfferOperation</a>(</div>
+<div class="line"><a name="l00901"></a><span class="lineno">  901</span>&#160;      OfferOperation* operation,</div>
+<div class="line"><a name="l00902"></a><span class="lineno">  902</span>&#160;      <span class="keyword">const</span> OfferOperationStatusUpdate&amp; update);</div>
 <div class="line"><a name="l00903"></a><span class="lineno">  903</span>&#160;</div>
-<div class="line"><a name="l00904"></a><span class="lineno">  904</span>&#160;  <span class="comment">// Attempts to update the allocator by applying the given operation.</span></div>
-<div class="line"><a name="l00905"></a><span class="lineno">  905</span>&#160;  <span class="comment">// If successful, updates the slave&#39;s resources, sends a</span></div>
-<div class="line"><a name="l00906"></a><span class="lineno">  906</span>&#160;  <span class="comment">// &#39;CheckpointResourcesMessage&#39; to the slave with the updated</span></div>
-<div class="line"><a name="l00907"></a><span class="lineno">  907</span>&#160;  <span class="comment">// checkpointed resources, and returns a &#39;Future&#39; with &#39;Nothing&#39;.</span></div>
-<div class="line"><a name="l00908"></a><span class="lineno">  908</span>&#160;  <span class="comment">// Otherwise, no action is taken and returns a failed &#39;Future&#39;.</span></div>
-<div class="line"><a name="l00909"></a><span class="lineno">  909</span>&#160;  <a class="code" href="classprocess_1_1Future.html">process::Future&lt;Nothing&gt;</a> <a class="code" href="classmesos_1_1internal_1_1master_1_1Master.html#a4c1d22d45625587227f8dd12ee21c6db">apply</a>(</div>
-<div class="line"><a name="l00910"></a><span class="lineno">  910</span>&#160;      <a class="code" href="structmesos_1_1internal_1_1master_1_1Slave.html">Slave</a>* slave,</div>
-<div class="line"><a name="l00911"></a><span class="lineno">  911</span>&#160;      <span class="keyword">const</span> <a class="code" href="namespacecgroups_1_1blkio.html#a350b1eb57318afaea7700ab7786b55ef">Offer::Operation</a>&amp; operation);</div>
-<div class="line"><a name="l00912"></a><span class="lineno">  912</span>&#160;</div>
-<div class="line"><a name="l00913"></a><span class="lineno">  913</span>&#160;  <span class="comment">// Forwards the update to the framework.</span></div>
-<div class="line"><a name="l00914"></a><span class="lineno">  914</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1master_1_1Master.html#a879105430a69dad6986d348cf47348a1">forward</a>(</div>
-<div class="line"><a name="l00915"></a><span class="lineno">  915</span>&#160;      <span class="keyword">const</span> StatusUpdate&amp; update,</div>
-<div class="line"><a name="l00916"></a><span class="lineno">  916</span>&#160;      <span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">process::UPID</a>&amp; acknowledgee,</div>
-<div class="line"><a name="l00917"></a><span class="lineno">  917</span>&#160;      <a class="code" href="structmesos_1_1internal_1_1master_1_1Framework.html">Framework</a>* framework);</div>
-<div class="line"><a name="l00918"></a><span class="lineno">  918</span>&#160;</div>
-<div class="line"><a name="l00919"></a><span class="lineno">  919</span>&#160;  <span class="comment">// Remove an offer after specified timeout</span></div>
-<div class="line"><a name="l00920"></a><span class="lineno">  920</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1master_1_1Master.html#af0a2cc7f6e412270d8049d8ee8c18fb1">offerTimeout</a>(<span class="keyword">const</span> OfferID&amp; offerId);</div>
+<div class="line"><a name="l00904"></a><span class="lineno">  904</span>&#160;  <span class="comment">// Remove the offer operation.</span></div>
+<div class="line"><a name="l00905"></a><span class="lineno">  905</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1master_1_1Master.html#a2855777fbc7be44857de577774b043f8">removeOfferOperation</a>(OfferOperation* operation);</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;  <span class="comment">// Attempts to update the allocator by applying the given operation.</span></div>
+<div class="line"><a name="l00908"></a><span class="lineno">  908</span>&#160;  <span class="comment">// If successful, updates the slave&#39;s resources, sends a</span></div>
+<div class="line"><a name="l00909"></a><span class="lineno">  909</span>&#160;  <span class="comment">// &#39;CheckpointResourcesMessage&#39; to the slave with the updated</span></div>
+<div class="line"><a name="l00910"></a><span class="lineno">  910</span>&#160;  <span class="comment">// checkpointed resources, and returns a &#39;Future&#39; with &#39;Nothing&#39;.</span></div>
+<div class="line"><a name="l00911"></a><span class="lineno">  911</span>&#160;  <span class="comment">// Otherwise, no action is taken and returns a failed &#39;Future&#39;.</span></div>
+<div class="line"><a name="l00912"></a><span class="lineno">  912</span>&#160;  <a class="code" href="classprocess_1_1Future.html">process::Future&lt;Nothing&gt;</a> <a class="code" href="classmesos_1_1internal_1_1master_1_1Master.html#a4c1d22d45625587227f8dd12ee21c6db">apply</a>(</div>
+<div class="line"><a name="l00913"></a><span class="lineno">  913</span>&#160;      <a class="code" href="structmesos_1_1internal_1_1master_1_1Slave.html">Slave</a>* slave,</div>
+<div class="line"><a name="l00914"></a><span class="lineno">  914</span>&#160;      <span class="keyword">const</span> <a class="code" href="namespacecgroups_1_1blkio.html#a350b1eb57318afaea7700ab7786b55ef">Offer::Operation</a>&amp; operation);</div>
+<div class="line"><a name="l00915"></a><span class="lineno">  915</span>&#160;</div>
+<div class="line"><a name="l00916"></a><span class="lineno">  916</span>&#160;  <span class="comment">// Forwards the update to the framework.</span></div>
+<div class="line"><a name="l00917"></a><span class="lineno">  917</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1master_1_1Master.html#a879105430a69dad6986d348cf47348a1">forward</a>(</div>
+<div class="line"><a name="l00918"></a><span class="lineno">  918</span>&#160;      <span class="keyword">const</span> StatusUpdate&amp; update,</div>
+<div class="line"><a name="l00919"></a><span class="lineno">  919</span>&#160;      <span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">process::UPID</a>&amp; acknowledgee,</div>
+<div class="line"><a name="l00920"></a><span class="lineno">  920</span>&#160;      <a class="code" href="structmesos_1_1internal_1_1master_1_1Framework.html">Framework</a>* framework);</div>
 <div class="line"><a name="l00921"></a><span class="lineno">  921</span>&#160;</div>
-<div class="line"><a name="l00922"></a><span class="lineno">  922</span>&#160;  <span class="comment">// Remove an offer and optionally rescind the offer as well.</span></div>
-<div class="line"><a name="l00923"></a><span class="lineno">  923</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1master_1_1Master.html#a58c5b558f390db608257a39361f5b4ef">removeOffer</a>(Offer* offer, <span class="keywordtype">bool</span> rescind = <span class="keyword">false</span>);</div>
+<div class="line"><a name="l00922"></a><span class="lineno">  922</span>&#160;  <span class="comment">// Remove an offer after specified timeout</span></div>
+<div class="line"><a name="l00923"></a><span class="lineno">  923</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1master_1_1Master.html#af0a2cc7f6e412270d8049d8ee8c18fb1">offerTimeout</a>(<span class="keyword">const</span> OfferID&amp; offerId);</div>
 <div class="line"><a name="l00924"></a><span class="lineno">  924</span>&#160;</div>
-<div class="line"><a name="l00925"></a><span class="lineno">  925</span>&#160;  <span class="comment">// Remove an inverse offer after specified timeout</span></div>
-<div class="line"><a name="l00926"></a><span class="lineno">  926</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1master_1_1Master.html#ab3b08c310b38fab6b4ad8d3666abf60b">inverseOfferTimeout</a>(<span class="keyword">const</span> OfferID&amp; inverseOfferId);</div>
+<div class="line"><a name="l00925"></a><span class="lineno">  925</span>&#160;  <span class="comment">// Remove an offer and optionally rescind the offer as well.</span></div>
+<div class="line"><a name="l00926"></a><span class="lineno">  926</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1master_1_1Master.html#a58c5b558f390db608257a39361f5b4ef">removeOffer</a>(Offer* offer, <span class="keywordtype">bool</span> rescind = <span class="keyword">false</span>);</div>
 <div class="line"><a name="l00927"></a><span class="lineno">  927</span>&#160;</div>
-<div class="line"><a name="l00928"></a><span class="lineno">  928</span>&#160;  <span class="comment">// Remove an inverse offer and optionally rescind it as well.</span></div>
-<div class="line"><a name="l00929"></a><span class="lineno">  929</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1master_1_1Master.html#a077f836136559b7d1846fe3c1edb2a60">removeInverseOffer</a>(InverseOffer* inverseOffer, <span class="keywordtype">bool</span> rescind = <span class="keyword">false</span>);</div>
+<div class="line"><a name="l00928"></a><span class="lineno">  928</span>&#160;  <span class="comment">// Remove an inverse offer after specified timeout</span></div>
+<div class="line"><a name="l00929"></a><span class="lineno">  929</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1master_1_1Master.html#ab3b08c310b38fab6b4ad8d3666abf60b">inverseOfferTimeout</a>(<span class="keyword">const</span> OfferID&amp; inverseOfferId);</div>
 <div class="line"><a name="l00930"></a><span class="lineno">  930</span>&#160;</div>
-<div class="line"><a name="l00931"></a><span class="lineno">  931</span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classmesos_1_1internal_1_1master_1_1Master.html#adce7ba676c4f3bd04f892b8958fba3c4">isCompletedFramework</a>(<span class="keyword">const</span> FrameworkID&amp; frameworkId);</div>
-<div class="line"><a name="l00932"></a><span class="lineno">  932</span>&#160;</div>
-<div class="line"><a name="l00933"></a><span class="lineno">  933</span>&#160;  <a class="code" href="structmesos_1_1internal_1_1master_1_1Framework.html">Framework</a>* <a class="code" href="classmesos_1_1internal_1_1master_1_1Master.html#aa539a7813ecbcb146ae6d62e5f5ac74f">getFramework</a>(<span class="keyword">const</span> FrameworkID&amp; frameworkId) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00934"></a><span class="lineno">  934</span>&#160;  Offer* <a class="code" href="classmesos_1_1internal_1_1master_1_1Master.html#a5063c2bcba26123ecf78bc12e34a11db">getOffer</a>(<span class="keyword">const</span> OfferID&amp; offerId) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00935"></a><span class="lineno">  935</span>&#160;  InverseOffer* <a class="code" href="classmesos_1_1internal_1_1master_1_1Master.html#ac4b2c667417a7d3e7ce189fa3d76723b">getInverseOffer</a>(<span class="keyword">const</span> OfferID&amp; inverseOfferId) <span class="keyword">const</span>;</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;  FrameworkID <a class="code" href="classmesos_1_1internal_1_1master_1_1Master.html#a4ee609877b1309ae57fcd4ba4ba7e798">newFrameworkId</a>();</div>
-<div class="line"><a name="l00938"></a><span class="lineno">  938</span>&#160;  OfferID <a class="code" href="classmesos_1_1internal_1_1master_1_1Master.html#af6a3cda747e1f310296c51d05831dc34">newOfferId</a>();</div>
-<div class="line"><a name="l00939"></a><span class="lineno">  939</span>&#160;  SlaveID <a class="code" href="classmesos_1_1internal_1_1master_1_1Master.html#ae5fdaed6ff563268774b24b1d6813f67">newSlaveId</a>();</div>
-<div class="line"><a name="l00940"></a><span class="lineno">  940</span>&#160;</div>
-<div class="line"><a name="l00941"></a><span class="lineno">  941</span>&#160;<span class="keyword">private</span>:</div>
-<div class="line"><a name="l00942"></a><span class="lineno">  942</span>&#160;  <span class="comment">// Updates the agent&#39;s resources by applying the given operation.</span></div>
-<div class="line"><a name="l00943"></a><span class="lineno">  943</span>&#160;  <span class="comment">// Sends either `ApplyOfferOperationMessage` or</span></div>
-<div class="line"><a name="l00944"></a><span class="lineno">  944</span>&#160;  <span class="comment">// `CheckpointResourcesMessage` (with updated checkpointed</span></div>
-<div class="line"><a name="l00945"></a><span class="lineno">  945</span>&#160;  <span class="comment">// resources) to the agent depending on if the agent has</span></div>
-<div class="line"><a name="l00946"></a><span class="lineno">  946</span>&#160;  <span class="comment">// `RESOURCE_PROVIDER` capability.</span></div>
-<div class="line"><a name="l00947"></a><span class="lineno">  947</span>&#160;  <span class="keywordtype">void</span> _apply(</div>
-<div class="line"><a name="l00948"></a><span class="lineno">  948</span>&#160;      <a class="code" href="structmesos_1_1internal_1_1master_1_1Slave.html">Slave</a>* slave,</div>
-<div class="line"><a name="l00949"></a><span class="lineno">  949</span>&#160;      <a class="code" href="structmesos_1_1internal_1_1master_1_1Framework.html">Framework</a>* framework,</div>
-<div class="line"><a name="l00950"></a><span class="lineno">  950</span>&#160;      <span class="keyword">const</span> <a class="code" href="namespacecgroups_1_1blkio.html#a350b1eb57318afaea7700ab7786b55ef">Offer::Operation</a>&amp; operation);</div>
-<div class="line"><a name="l00951"></a><span class="lineno">  951</span>&#160;</div>
-<div class="line"><a name="l00952"></a><span class="lineno">  952</span>&#160;  <span class="keywordtype">void</span> drop(</div>
-<div class="line"><a name="l00953"></a><span class="lineno">  953</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="l00954"></a><span class="lineno">  954</span>&#160;      <span class="keyword">const</span> <a class="code" href="namespacemesos_1_1internal_1_1tests_1_1v1_1_1scheduler.html#acb18ceaa5f6f2338f2a9727af398eb79">scheduler::Call</a>&amp; call,</div>
-<div class="line"><a name="l00955"></a><span class="lineno">  955</span>&#160;      <span class="keyword">const</span> std::string&amp; message);</div>
-<div class="line"><a name="l00956"></a><span class="lineno">  956</span>&#160;</div>
-<div class="line"><a name="l00957"></a><span class="lineno">  957</span>&#160;  <span class="keywordtype">void</span> drop(</div>
-<div class="line"><a name="l00958"></a><span class="lineno">  958</span>&#160;      <a class="code" href="structmesos_1_1internal_1_1master_1_1Framework.html">Framework</a>* framework,</div>
-<div class="line"><a name="l00959"></a><span class="lineno">  959</span>&#160;      <span class="keyword">const</span> <a class="code" href="namespacecgroups_1_1blkio.html#a350b1eb57318afaea7700ab7786b55ef">Offer::Operation</a>&amp; operation,</div>
-<div class="line"><a name="l00960"></a><span class="lineno">  960</span>&#160;      <span class="keyword">const</span> std::string&amp; message);</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="keywordtype">void</span> drop(</div>
-<div class="line"><a name="l00963"></a><span class="lineno">  963</span>&#160;      <a class="code" href="structmesos_1_1internal_1_1master_1_1Framework.html">Framework</a>* framework,</div>
-<div class="line"><a name="l00964"></a><span class="lineno">  964</span>&#160;      <span class="keyword">const</span> <a class="code" href="namespacemesos_1_1internal_1_1tests_1_1v1_1_1scheduler.html#acb18ceaa5f6f2338f2a9727af398eb79">scheduler::Call</a>&amp; call,</div>
-<div class="line"><a name="l00965"></a><span class="lineno">  965</span>&#160;      <span class="keyword">const</span> std::string&amp; message);</div>
-<div class="line"><a name="l00966"></a><span class="lineno">  966</span>&#160;</div>
-<div class="line"><a name="l00967"></a><span class="lineno">  967</span>&#160;  <span class="keywordtype">void</span> drop(</div>
-<div class="line"><a name="l00968"></a><span class="lineno">  968</span>&#160;      <a class="code" href="structmesos_1_1internal_1_1master_1_1Framework.html">Framework</a>* framework,</div>
-<div class="line"><a name="l00969"></a><span class="lineno">  969</span>&#160;      <span class="keyword">const</span> scheduler::Call::Suppress&amp; suppress,</div>
-<div class="line"><a name="l00970"></a><span class="lineno">  970</span>&#160;      <span class="keyword">const</span> std::string&amp; message);</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="keywordtype">void</span> drop(</div>
-<div class="line"><a name="l00973"></a><span class="lineno">  973</span>&#160;      <a class="code" href="structmesos_1_1internal_1_1master_1_1Framework.html">Framework</a>* framework,</div>
-<div class="line"><a name="l00974"></a><span class="lineno">  974</span>&#160;      <span class="keyword">const</span> scheduler::Call::Revive&amp; revive,</div>
-<div class="line"><a name="l00975"></a><span class="lineno">  975</span>&#160;      <span class="keyword">const</span> std::string&amp; message);</div>
-<div class="line"><a name="l00976"></a><span class="lineno">  976</span>&#160;</div>
-<div class="line"><a name="l00977"></a><span class="lineno">  977</span>&#160;  <span class="comment">// Call handlers.</span></div>
-<div class="line"><a name="l00978"></a><span class="lineno">  978</span>&#160;  <span class="keywordtype">void</span> receive(</div>
-<div class="line"><a name="l00979"></a><span class="lineno">  979</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="l00980"></a><span class="lineno">  980</span>&#160;      <span class="keyword">const</span> <a class="code" href="namespacemesos_1_1internal_1_1tests_1_1v1_1_1scheduler.html#acb18ceaa5f6f2338f2a9727af398eb79">scheduler::Call</a>&amp; call);</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">  982</span>&#160;  <span class="keywordtype">void</span> subscribe(</div>
-<div class="line"><a name="l00983"></a><span class="lineno">  983</span>&#160;      <a class="code" href="structmesos_1_1internal_1_1master_1_1HttpConnection.html">HttpConnection</a> http,</div>
-<div class="line"><a name="l00984"></a><span class="lineno">  984</span>&#160;      <span class="keyword">const</span> scheduler::Call::Subscribe&amp; subscribe);</div>
-<div class="line"><a name="l00985"></a><span class="lineno">  985</span>&#160;</div>
-<div class="line"><a name="l00986"></a><span class="lineno">  986</span>&#160;  <span class="keywordtype">void</span> _subscribe(</div>
-<div class="line"><a name="l00987"></a><span class="lineno">  987</span>&#160;      <a class="code" href="structmesos_1_1internal_1_1master_1_1HttpConnection.html">HttpConnection</a> http,</div>
-<div class="line"><a name="l00988"></a><span class="lineno">  988</span>&#160;      <span class="keyword">const</span> FrameworkInfo&amp; frameworkInfo,</div>
-<div class="line"><a name="l00989"></a><span class="lineno">  989</span>&#160;      <span class="keywordtype">bool</span> force,</div>
-<div class="line"><a name="l00990"></a><span class="lineno">  990</span>&#160;      <span class="keyword">const</span> std::set&lt;std::string&gt;&amp; suppressedRoles,</div>
-<div class="line"><a name="l00991"></a><span class="lineno">  991</span>&#160;      <span class="keyword">const</span> <a class="code" href="classprocess_1_1Future.html">process::Future&lt;bool&gt;</a>&amp; authorized);</div>
-<div class="line"><a name="l00992"></a><span class="lineno">  992</span>&#160;</div>
-<div class="line"><a name="l00993"></a><span class="lineno">  993</span>&#160;  <span class="keywordtype">void</span> subscribe(</div>
-<div class="line"><a name="l00994"></a><span class="lineno">  994</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="l00995"></a><span class="lineno">  995</span>&#160;      <span class="keyword">const</span> scheduler::Call::Subscribe&amp; subscribe);</div>
-<div class="line"><a name="l00996"></a><span class="lineno">  996</span>&#160;</div>
-<div class="line"><a name="l00997"></a><span class="lineno">  997</span>&#160;  <span class="keywordtype">void</span> _subscribe(</div>
-<div class="line"><a name="l00998"></a><span class="lineno">  998</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="l00999"></a><span class="lineno">  999</span>&#160;      <span class="keyword">const</span> FrameworkInfo&amp; frameworkInfo,</div>
-<div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>&#160;      <span class="keywordtype">bool</span> force,</div>
-<div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>&#160;      <span class="keyword">const</span> std::set&lt;std::string&gt;&amp; suppressedRoles,</div>
-<div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>&#160;      <span class="keyword">const</span> <a class="code" href="classprocess_1_1Future.html">process::Future&lt;bool&gt;</a>&amp; authorized);</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">// Subscribes a client to the &#39;api/vX&#39; endpoint.</span></div>
-<div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>&#160;  <span class="keywordtype">void</span> subscribe(</div>
-<div class="line"><a name="l01006"></a><span class="lineno"> 1006</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="l01007"></a><span class="lineno"> 1007</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="l01008"></a><span class="lineno"> 1008</span>&#160;</div>
-<div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>&#160;  <span class="keywordtype">void</span> teardown(<a class="code" href="structmesos_1_1internal_1_1master_1_1Framework.html">Framework</a>* framework);</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="keywordtype">void</span> accept(</div>
-<div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>&#160;      <a class="code" href="structmesos_1_1internal_1_1master_1_1Framework.html">Framework</a>* framework,</div>
-<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>&#160;      scheduler::Call::Accept accept);</div>
-<div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>&#160;</div>
-<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>&#160;  <span class="keywordtype">void</span> _accept(</div>
-<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>&#160;      <span class="keyword">const</span> FrameworkID&amp; frameworkId,</div>
-<div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>&#160;      <span class="keyword">const</span> SlaveID&amp; slaveId,</div>
-<div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>&#160;      <span class="keyword">const</span> <a class="code" href="classmesos_1_1Resources.html">Resources</a>&amp; offeredResources,</div>
-<div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>&#160;      <span class="keyword">const</span> scheduler::Call::Accept&amp; accept,</div>
-<div class="line"><a name="l01020"></a><span class="lineno"> 1020</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;<a class="code" href="classprocess_1_1Future.html">process::Future&lt;bool&gt;</a>&gt;&gt;&amp; authorizations);</div>
-<div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>&#160;</div>
-<div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>&#160;  <span class="keywordtype">void</span> acceptInverseOffers(</div>
-<div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>&#160;      <a class="code" href="structmesos_1_1internal_1_1master_1_1Framework.html">Framework</a>* framework,</div>
-<div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>&#160;      <span class="keyword">const</span> scheduler::Call::AcceptInverseOffers&amp; accept);</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="keywordtype">void</span> decline(</div>
-<div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>&#160;      <a class="code" href="structmesos_1_1internal_1_1master_1_1Framework.html">Framework</a>* framework,</div>
-<div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>&#160;      <span class="keyword">const</span> scheduler::Call::Decline&amp; decline);</div>
-<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>&#160;</div>
-<div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>&#160;  <span class="keywordtype">void</span> declineInverseOffers(</div>
-<div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>&#160;      <a class="code" href="structmesos_1_1internal_1_1master_1_1Framework.html">Framework</a>* framework,</div>
-<div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>&#160;      <span class="keyword">const</span> scheduler::Call::DeclineInverseOffers&amp; decline);</div>
-<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>&#160;</div>
-<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160;  <span class="keywordtype">void</span> revive(</div>
-<div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>&#160;      <a class="code" href="structmesos_1_1internal_1_1master_1_1Framework.html">Framework</a>* framework,</div>
-<div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>&#160;      <span class="keyword">const</span> scheduler::Call::Revive&amp; revive);</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="keywordtype">void</span> kill(</div>
-<div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>&#160;      <a class="code" href="structmesos_1_1internal_1_1master_1_1Framework.html">Framework</a>* framework,</div>
-<div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>&#160;      <span class="keyword">const</span> scheduler::Call::Kill&amp; kill);</div>
-<div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>&#160;</div>
-<div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>&#160;  <span class="keywordtype">void</span> shutdown(</div>
-<div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>&#160;      <a class="code" href="structmesos_1_1internal_1_1master_1_1Framework.html">Framework</a>* framework,</div>
-<div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>&#160;      <span class="keyword">const</span> scheduler::Call::Shutdown&amp; shutdown);</div>
-<div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>&#160;</div>
-<div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>&#160;  <span class="keywordtype">void</span> acknowledge(</div>
-<div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>&#160;      <a class="code" href="structmesos_1_1internal_1_1master_1_1Framework.html">Framework</a>* framework,</div>
-<div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>&#160;      <span class="keyword">const</span> scheduler::Call::Acknowledge&amp; acknowledge);</div>
-<div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>&#160;</div>
-<div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>&#160;  <span class="keywordtype">void</span> acknowledgeOfferOperationUpdate(</div>
-<div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>&#160;      <a class="code" href="structmesos_1_1internal_1_1master_1_1Framework.html">Framework</a>* framework,</div>
-<div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>&#160;      <span class="keyword">const</span> scheduler::Call::AcknowledgeOfferOperationUpdate&amp; acknowledge);</div>
-<div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>&#160;</div>
-<div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>&#160;  <span class="keywordtype">void</span> reconcile(</div>
-<div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>&#160;      <a class="code" href="structmesos_1_1internal_1_1master_1_1Framework.html">Framework</a>* framework,</div>
-<div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>&#160;      <span class="keyword">const</span> scheduler::Call::Reconcile&amp; reconcile);</div>
-<div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>&#160;</div>
-<div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>&#160;  <span class="keywordtype">void</span> reconcileOfferOperations(</div>
-<div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>&#160;      <a class="code" href="structmesos_1_1internal_1_1master_1_1Framework.html">Framework</a>* framework,</div>
-<div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>&#160;      <span class="keyword">const</span> scheduler::Call::ReconcileOfferOperations&amp; reconcile);</div>
-<div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>&#160;</div>
-<div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>&#160;  <span class="keywordtype">void</span> message(</div>
-<div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>&#160;      <a class="code" href="structmesos_1_1internal_1_1master_1_1Framework.html">Framework</a>* framework,</div>
-<div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>&#160;      <span class="keyword">const</span> scheduler::Call::Message&amp; message);</div>
-<div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>&#160;</div>
-<div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>&#160;  <span class="keywordtype">void</span> request(</div>
-<div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>&#160;      <a class="code" href="structmesos_1_1internal_1_1master_1_1Framework.html">Framework</a>* framework,</div>
-<div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>&#160;      <span class="keyword">const</span> scheduler::Call::Request&amp; request);</div>
-<div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>&#160;</div>
-<div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>&#160;  <span class="keywordtype">void</span> suppress(</div>
-<div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>&#160;      <a class="code" href="structmesos_1_1internal_1_1master_1_1Framework.html">Framework</a>* framework,</div>
-<div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>&#160;      <span class="keyword">const</span> scheduler::Call::Suppress&amp; suppress);</div>
-<div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>&#160;</div>
-<div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>&#160;  <span class="keywordtype">bool</span> elected()<span class="keyword"> const</span></div>
-<div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>&#160;<span class="keyword">  </span>{</div>
-<div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>&#160;    <span class="keywordflow">return</span> leader.<a class="code" href="classOption.html#a4e3bf8416d95246f43c91f1b5c309323">isSome</a>() &amp;&amp; leader.<a class="code" href="classOption.html#a21358442c0fac1cc978a67a9a9089a79">get</a>() == info_;</div>
-<div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>&#160;  }</div>
-<div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>&#160;</div>
-<div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>&#160;  <span class="keywordtype">void</span> scheduleRegistryGc();</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;  <span class="keywordtype">void</span> doRegistryGc();</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="keywordtype">void</span> _doRegistryGc(</div>
-<div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>&#160;      <span class="keyword">const</span> <a class="code" href="classhashset.html">hashset&lt;SlaveID&gt;</a>&amp; toRemoveUnreachable,</div>
-<div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>&#160;      <span class="keyword">const</span> <a class="code" href="classhashset.html">hashset&lt;SlaveID&gt;</a>&amp; toRemoveGone,</div>
-<div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>&#160;      <span class="keyword">const</span> <a class="code" href="classprocess_1_1Future.html">process::Future&lt;bool&gt;</a>&amp; registrarResult);</div>
-<div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>&#160;</div>
-<div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>&#160;  <a class="code" href="classprocess_1_1Future.html">process::Future&lt;bool&gt;</a> authorizeLogAccess(</div>
-<div class="line"><a name="l01089"></a><span class="lineno"> 1089</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="l00931"></a><span class="lineno">  931</span>&#160;  <span class="comment">// Remove an inverse offer and optionally rescind it as well.</span></div>
+<div class="line"><a name="l00932"></a><span class="lineno">  932</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1master_1_1Master.html#a077f836136559b7d1846fe3c1edb2a60">removeInverseOffer</a>(InverseOffer* inverseOffer, <span class="keywordtype">bool</span> rescind = <span class="keyword">false</span>);</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="keywordtype">bool</span> <a class="code" href="classmesos_1_1internal_1_1master_1_1Master.html#adce7ba676c4f3bd04f892b8958fba3c4">isCompletedFramework</a>(<span class="keyword">const</span> FrameworkID&amp; frameworkId);</div>
+<div class="line"><a name="l00935"></a><span class="lineno">  935</span>&#160;</div>
+<div class="line"><a name="l00936"></a><span class="lineno">  936</span>&#160;  <a class="code" href="structmesos_1_1internal_1_1master_1_1Framework.html">Framework</a>* <a class="code" href="classmesos_1_1internal_1_1master_1_1Master.html#aa539a7813ecbcb146ae6d62e5f5ac74f">getFramework</a>(<span class="keyword">const</span> FrameworkID&amp; frameworkId) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00937"></a><span class="lineno">  937</span>&#160;  Offer* <a class="code" href="classmesos_1_1internal_1_1master_1_1Master.html#a5063c2bcba26123ecf78bc12e34a11db">getOffer</a>(<span class="keyword">const</span> OfferID&amp; offerId) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00938"></a><span class="lineno">  938</span>&#160;  InverseOffer* <a class="code" href="classmesos_1_1internal_1_1master_1_1Master.html#ac4b2c667417a7d3e7ce189fa3d76723b">getInverseOffer</a>(<span class="keyword">const</span> OfferID&amp; inverseOfferId) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00939"></a><span class="lineno">  939</span>&#160;</div>
+<div class="line"><a name="l00940"></a><span class="lineno">  940</span>&#160;  FrameworkID <a class="code" href="classmesos_1_1internal_1_1master_1_1Master.html#a4ee609877b1309ae57fcd4ba4ba7e798">newFrameworkId</a>();</div>
+<div class="line"><a name="l00941"></a><span class="lineno">  941</span>&#160;  OfferID <a class="code" href="classmesos_1_1internal_1_1master_1_1Master.html#af6a3cda747e1f310296c51d05831dc34">newOfferId</a>();</div>
+<div class="line"><a name="l00942"></a><span class="lineno">  942</span>&#160;  SlaveID <a class="code" href="classmesos_1_1internal_1_1master_1_1Master.html#ae5fdaed6ff563268774b24b1d6813f67">newSlaveId</a>();</div>
+<div class="line"><a name="l00943"></a><span class="lineno">  943</span>&#160;</div>
+<div class="line"><a name="l00944"></a><span class="lineno">  944</span>&#160;<span class="keyword">private</span>:</div>
+<div class="line"><a name="l00945"></a><span class="lineno">  945</span>&#160;  <span class="comment">// Updates the agent&#39;s resources by applying the given operation.</span></div>
+<div class="line"><a name="l00946"></a><span class="lineno">  946</span>&#160;  <span class="comment">// Sends either `ApplyOfferOperationMessage` or</span></div>
+<div class="line"><a name="l00947"></a><span class="lineno">  947</span>&#160;  <span class="comment">// `CheckpointResourcesMessage` (with updated checkpointed</span></div>
+<div class="line"><a name="l00948"></a><span class="lineno">  948</span>&#160;  <span class="comment">// resources) to the agent depending on if the agent has</span></div>
+<div class="line"><a name="l00949"></a><span class="lineno">  949</span>&#160;  <span class="comment">// `RESOURCE_PROVIDER` capability.</span></div>
+<div class="line"><a name="l00950"></a><span class="lineno">  950</span>&#160;  <span class="keywordtype">void</span> _apply(</div>
+<div class="line"><a name="l00951"></a><span class="lineno">  951</span>&#160;      <a class="code" href="structmesos_1_1internal_1_1master_1_1Slave.html">Slave</a>* slave,</div>
+<div class="line"><a name="l00952"></a><span class="lineno">  952</span>&#160;      <a class="code" href="structmesos_1_1internal_1_1master_1_1Framework.html">Framework</a>* framework,</div>
+<div class="line"><a name="l00953"></a><span class="lineno">  953</span>&#160;      <span class="keyword">const</span> <a class="code" href="namespacecgroups_1_1blkio.html#a350b1eb57318afaea7700ab7786b55ef">Offer::Operation</a>&amp; operation);</div>
+<div class="line"><a name="l00954"></a><span class="lineno">  954</span>&#160;</div>
+<div class="line"><a name="l00955"></a><span class="lineno">  955</span>&#160;  <span class="keywordtype">void</span> drop(</div>
+<div class="line"><a name="l00956"></a><span class="lineno">  956</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="l00957"></a><span class="lineno">  957</span>&#160;      <span class="keyword">const</span> <a class="code" href="namespacemesos_1_1internal_1_1tests_1_1v1_1_1scheduler.html#acb18ceaa5f6f2338f2a9727af398eb79">scheduler::Call</a>&amp; call,</div>
+<div class="line"><a name="l00958"></a><span class="lineno">  958</span>&#160;      <span class="keyword">const</span> std::string&amp; message);</div>
+<div class="line"><a name="l00959"></a><span class="lineno">  959</span>&#160;</div>
+<div class="line"><a name="l00960"></a><span class="lineno">  960</span>&#160;  <span class="keywordtype">void</span> drop(</div>
+<div class="line"><a name="l00961"></a><span class="lineno">  961</span>&#160;      <a class="code" href="structmesos_1_1internal_1_1master_1_1Framework.html">Framework</a>* framework,</div>
+<div class="line"><a name="l00962"></a><span class="lineno">  962</span>&#160;      <span class="keyword">const</span> <a class="code" href="namespacecgroups_1_1blkio.html#a350b1eb57318afaea7700ab7786b55ef">Offer::Operation</a>&amp; operation,</div>
+<div class="line"><a name="l00963"></a><span class="lineno">  963</span>&#160;      <span class="keyword">const</span> std::string&amp; message);</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="keywordtype">void</span> drop(</div>
+<div class="line"><a name="l00966"></a><span class="lineno">  966</span>&#160;      <a class="code" href="structmesos_1_1internal_1_1master_1_1Framework.html">Framework</a>* framework,</div>
+<div class="line"><a name="l00967"></a><span class="lineno">  967</span>&#160;      <span class="keyword">const</span> <a class="code" href="namespacemesos_1_1internal_1_1tests_1_1v1_1_1scheduler.html#acb18ceaa5f6f2338f2a9727af398eb79">scheduler::Call</a>&amp; call,</div>
+<div class="line"><a name="l00968"></a><span class="lineno">  968</span>&#160;      <span class="keyword">const</span> std::string&amp; message);</div>
+<div class="line"><a name="l00969"></a><span class="lineno">  969</span>&#160;</div>
+<div class="line"><a name="l00970"></a><span class="lineno">  970</span>&#160;  <span class="keywordtype">void</span> drop(</div>
+<div class="line"><a name="l00971"></a><span class="lineno">  971</span>&#160;      <a class="code" href="structmesos_1_1internal_1_1master_1_1Framework.html">Framework</a>* framework,</div>
+<div class="line"><a name="l00972"></a><span class="lineno">  972</span>&#160;      <span class="keyword">const</span> scheduler::Call::Suppress&amp; suppress,</div>
+<div class="line"><a name="l00973"></a><span class="lineno">  973</span>&#160;      <span class="keyword">const</span> std::string&amp; message);</div>
+<div class="line"><a name="l00974"></a><span class="lineno">  974</span>&#160;</div>
+<div class="line"><a name="l00975"></a><span class="lineno">  975</span>&#160;  <span class="keywordtype">void</span> drop(</div>
+<div class="line"><a name="l00976"></a><span class="lineno">  976</span>&#160;      <a class="code" href="structmesos_1_1internal_1_1master_1_1Framework.html">Framework</a>* framework,</div>
+<div class="line"><a name="l00977"></a><span class="lineno">  977</span>&#160;      <span class="keyword">const</span> scheduler::Call::Revive&amp; revive,</div>
+<div class="line"><a name="l00978"></a><span class="lineno">  978</span>&#160;      <span class="keyword">const</span> std::string&amp; message);</div>
+<div class="line"><a name="l00979"></a><span class="lineno">  979</span>&#160;</div>
+<div class="line"><a name="l00980"></a><span class="lineno">  980</span>&#160;  <span class="comment">// Call handlers.</span></div>
+<div class="line"><a name="l00981"></a><span class="lineno">  981</span>&#160;  <span class="keywordtype">void</span> receive(</div>
+<div class="line"><a name="l00982"></a><span class="lineno">  982</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="l00983"></a><span class="lineno">  983</span>&#160;      <span class="keyword">const</span> <a class="code" href="namespacemesos_1_1internal_1_1tests_1_1v1_1_1scheduler.html#acb18ceaa5f6f2338f2a9727af398eb79">scheduler::Call</a>&amp; call);</div>
+<div class="line"><a name="l00984"></a><span class="lineno">  984</span>&#160;</div>
+<div class="line"><a name="l00985"></a><span class="lineno">  985</span>&#160;  <span class="keywordtype">void</span> subscribe(</div>
+<div class="line"><a name="l00986"></a><span class="lineno">  986</span>&#160;      <a class="code" href="structmesos_1_1internal_1_1master_1_1HttpConnection.html">HttpConnection</a> http,</div>
+<div class="line"><a name="l00987"></a><span class="lineno">  987</span>&#160;      <span class="keyword">const</span> scheduler::Call::Subscribe&amp; subscribe);</div>
+<div class="line"><a name="l00988"></a><span class="lineno">  988</span>&#160;</div>
+<div class="line"><a name="l00989"></a><span class="lineno">  989</span>&#160;  <span class="keywordtype">void</span> _subscribe(</div>
+<div class="line"><a name="l00990"></a><span class="lineno">  990</span>&#160;      <a class="code" href="structmesos_1_1internal_1_1master_1_1HttpConnection.html">HttpConnection</a> http,</div>
+<div class="line"><a name="l00991"></a><span class="lineno">  991</span>&#160;      <span class="keyword">const</span> FrameworkInfo&amp; frameworkInfo,</div>
+<div class="line"><a name="l00992"></a><span class="lineno">  992</span>&#160;      <span class="keywordtype">bool</span> force,</div>
+<div class="line"><a name="l00993"></a><span class="lineno">  993</span>&#160;      <span class="keyword">const</span> std::set&lt;std::string&gt;&amp; suppressedRoles,</div>
+<div class="line"><a name="l00994"></a><span class="lineno">  994</span>&#160;      <span class="keyword">const</span> <a class="code" href="classprocess_1_1Future.html">process::Future&lt;bool&gt;</a>&amp; authorized);</div>
+<div class="line"><a name="l00995"></a><span class="lineno">  995</span>&#160;</div>
+<div class="line"><a name="l00996"></a><span class="lineno">  996</span>&#160;  <span class="keywordtype">void</span> subscribe(</div>
+<div class="line"><a name="l00997"></a><span class="lineno">  997</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="l00998"></a><span class="lineno">  998</span>&#160;      <span class="keyword">const</span> scheduler::Call::Subscribe&amp; subscribe);</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"> 1000</span>&#160;  <span class="keywordtype">void</span> _subscribe(</div>
+<div class="line"><a name="l01001"></a><span class="lineno"> 1001</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="l01002"></a><span class="lineno"> 1002</span>&#160;      <span class="keyword">const</span> FrameworkInfo&amp; frameworkInfo,</div>
+<div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>&#160;      <span class="keywordtype">bool</span> force,</div>
+<div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>&#160;      <span class="keyword">const</span> std::set&lt;std::string&gt;&amp; suppressedRoles,</div>
+<div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>&#160;      <span class="keyword">const</span> <a class="code" href="classprocess_1_1Future.html">process::Future&lt;bool&gt;</a>&amp; authorized);</div>
+<div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>&#160;</div>
+<div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>&#160;  <span class="comment">// Subscribes a client to the &#39;api/vX&#39; endpoint.</span></div>
+<div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>&#160;  <span class="keywordtype">void</span> subscribe(</div>
+<div class="line"><a name="l01009"></a><span class="lineno"> 1009</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="l01010"></a><span class="lineno"> 1010</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="l01011"></a><span class="lineno"> 1011</span>&#160;</div>
+<div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>&#160;  <span class="keywordtype">void</span> teardown(<a class="code" href="structmesos_1_1internal_1_1master_1_1Framework.html">Framework</a>* framework);</div>
+<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>&#160;</div>
+<div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>&#160;  <span class="keywordtype">void</span> accept(</div>
+<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>&#160;      <a class="code" href="structmesos_1_1internal_1_1master_1_1Framework.html">Framework</a>* framework,</div>
+<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>&#160;      scheduler::Call::Accept accept);</div>
+<div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>&#160;</div>
+<div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>&#160;  <span class="keywordtype">void</span> _accept(</div>
+<div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>&#160;      <span class="keyword">const</span> FrameworkID&amp; frameworkId,</div>
+<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>&#160;      <span class="keyword">const</span> SlaveID&amp; slaveId,</div>
+<div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>&#160;      <span class="keyword">const</span> <a class="code" href="classmesos_1_1Resources.html">Resources</a>&amp; offeredResources,</div>
+<div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>&#160;      <span class="keyword">const</span> scheduler::Call::Accept&amp; accept,</div>
+<div class="line"><a name="l01023"></a><span class="lineno"> 1023</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;<a class="code" href="classprocess_1_1Future.html">process::Future&lt;bool&gt;</a>&gt;&gt;&amp; authorizations);</div>
+<div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>&#160;</div>
+<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>&#160;  <span class="keywordtype">void</span> acceptInverseOffers(</div>
+<div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>&#160;      <a class="code" href="structmesos_1_1internal_1_1master_1_1Framework.html">Framework</a>* framework,</div>
+<div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>&#160;      <span class="keyword">const</span> scheduler::Call::AcceptInverseOffers&amp; accept);</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="keywordtype">void</span> decline(</div>
+<div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>&#160;      <a class="code" href="structmesos_1_1internal_1_1master_1_1Framework.html">Framework</a>* framework,</div>
+<div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>&#160;      <span class="keyword">const</span> scheduler::Call::Decline&amp; decline);</div>
+<div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>&#160;</div>
+<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>&#160;  <span class="keywordtype">void</span> declineInverseOffers(</div>
+<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160;      <a class="code" href="structmesos_1_1internal_1_1master_1_1Framework.html">Framework</a>* framework,</div>
+<div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>&#160;      <span class="keyword">const</span> scheduler::Call::DeclineInverseOffers&amp; decline);</div>
+<div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>&#160;</div>
+<div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>&#160;  <span class="keywordtype">void</span> revive(</div>
+<div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>&#160;      <a class="code" href="structmesos_1_1internal_1_1master_1_1Framework.html">Framework</a>* framework,</div>
+<div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>&#160;      <span class="keyword">const</span> scheduler::Call::Revive&amp; revive);</div>
+<div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>&#160;</div>
+<div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>&#160;  <span class="keywordtype">void</span> kill(</div>
+<div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>&#160;      <a class="code" href="structmesos_1_1internal_1_1master_1_1Framework.html">Framework</a>* framework,</div>
+<div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>&#160;      <span class="keyword">const</span> scheduler::Call::Kill&amp; kill);</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="keywordtype">void</span> shutdown(</div>
+<div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>&#160;      <a class="code" href="structmesos_1_1internal_1_1master_1_1Framework.html">Framework</a>* framework,</div>
+<div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>&#160;      <span class="keyword">const</span> scheduler::Call::Shutdown&amp; shutdown);</div>
+<div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>&#160;</div>
+<div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>&#160;  <span class="keywordtype">void</span> acknowledge(</div>
+<div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>&#160;      <a class="code" href="structmesos_1_1internal_1_1master_1_1Framework.html">Framework</a>* framework,</div>
+<div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>&#160;      <span class="keyword">const</span> scheduler::Call::Acknowledge&amp; acknowledge);</div>
+<div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>&#160;</div>
+<div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>&#160;  <span class="keywordtype">void</span> acknowledgeOfferOperationUpdate(</div>
+<div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>&#160;      <a class="code" href="structmesos_1_1internal_1_1master_1_1Framework.html">Framework</a>* framework,</div>
+<div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>&#160;      <span class="keyword">const</span> scheduler::Call::AcknowledgeOfferOperationUpdate&amp; acknowledge);</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="keywordtype">void</span> reconcile(</div>
+<div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>&#160;      <a class="code" href="structmesos_1_1internal_1_1master_1_1Framework.html">Framework</a>* framework,</div>
+<div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>&#160;      <span class="keyword">const</span> scheduler::Call::Reconcile&amp; reconcile);</div>
+<div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>&#160;</div>
+<div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>&#160;  <span class="keywordtype">void</span> reconcileOfferOperations(</div>
+<div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>&#160;      <a class="code" href="structmesos_1_1internal_1_1master_1_1Framework.html">Framework</a>* framework,</div>
+<div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>&#160;      <span class="keyword">const</span> scheduler::Call::ReconcileOfferOperations&amp; reconcile);</div>
+<div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>&#160;</div>
+<div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>&#160;  <span class="keywordtype">void</span> message(</div>
+<div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>&#160;      <a class="code" href="structmesos_1_1internal_1_1master_1_1Framework.html">Framework</a>* framework,</div>
+<div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>&#160;      <span class="keyword">const</span> scheduler::Call::Message&amp; message);</div>
+<div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>&#160;</div>
+<div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>&#160;  <span class="keywordtype">void</span> request(</div>
+<div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>&#160;      <a class="code" href="structmesos_1_1internal_1_1master_1_1Framework.html">Framework</a>* framework,</div>
+<div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>&#160;      <span class="keyword">const</span> scheduler::Call::Request&amp; request);</div>
+<div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>&#160;</div>
+<div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>&#160;  <span class="keywordtype">void</span> suppress(</div>
+<div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>&#160;      <a class="code" href="structmesos_1_1internal_1_1master_1_1Framework.html">Framework</a>* framework,</div>
+<div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>&#160;      <span class="keyword">const</span> scheduler::Call::Suppress&amp; suppress);</div>
+<div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>&#160;</div>
+<div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>&#160;  <span class="keywordtype">bool</span> elected()<span class="keyword"> const</span></div>
+<div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>&#160;<span class="keyword">  </span>{</div>
+<div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>&#160;    <span class="keywordflow">return</span> leader.<a class="code" href="classOption.html#a4e3bf8416d95246f43c91f1b5c309323">isSome</a>() &amp;&amp; leader.<a class="code" href="classOption.html#a21358442c0fac1cc978a67a9a9089a79">get</a>() == info_;</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;</div>
+<div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>&#160;  <span class="keywordtype">void</span> scheduleRegistryGc();</div>
+<div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>&#160;</div>
+<div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>&#160;  <span class="keywordtype">void</span> doRegistryGc();</div>
+<div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>&#160;</div>
+<div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>&#160;  <span class="keywordtype">void</span> _doRegistryGc(</div>
+<div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>&#160;      <span class="keyword">const</span> <a class="code" href="classhashset.html">hashset&lt;SlaveID&gt;</a>&amp; toRemoveUnreachable,</div>
+<div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>&#160;      <span class="keyword">const</span> <a class="code" href="classhashset.html">hashset&lt;SlaveID&gt;</a>&amp; toRemoveGone,</div>
+<div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>&#160;      <span class="keyword">const</span> <a class="code" href="classprocess_1_1Future.html">process::Future&lt;bool&gt;</a>&amp; registrarResult);</div>
 <div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>&#160;</div>
-<div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>&#160;  <span class="keywordtype">bool</span> isWhitelistedRole(<span class="keyword">const</span> std::string&amp; name) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>&#160;</div>
-<div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>&#160;  <span class="keyword">static</span> <span class="keywordtype">bool</span> isRemovable(<span class="keyword">const</span> TaskState&amp; state)</div>
-<div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>&#160;  {</div>
-<div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>&#160;    <span class="keywordflow">if</span> (state == TASK_UNREACHABLE) {</div>
-<div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>&#160;      <span class="keywordflow">return</span> <span class="keyword">true</span>;</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"> 1112</span>&#160;</div>
-<div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="namespacemesos_1_1internal_1_1protobuf.html#aa31907fb62769822a77c06ffbf10451f">protobuf::isTerminalState</a>(state);</div>
-<div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>&#160;  }</div>
+<div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>&#160;  <a class="code" href="classprocess_1_1Future.html">process::Future&lt;bool&gt;</a> authorizeLogAccess(</div>
+<div class="line"><a name="l01092"></a><span class="lineno"> 1092</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="l01093"></a><span class="lineno"> 1093</span>&#160;</div>
+<div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>&#160;  <span class="keywordtype">bool</span> isWhitelistedRole(<span class="keyword">const</span> std::string&amp; name) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>&#160;</div>
+<div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>&#160;  <span class="keyword">static</span> <span class="keywordtype">bool</span> isRemovable(<span class="keyword">const</span> TaskState&amp; state)</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"> 1112</span>&#160;    <span class="keywordflow">if</span> (state == TASK_UNREACHABLE) {</div>
+<div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>&#160;      <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>&#160;    }</div>
 <div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>&#160;</div>
-<div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>&#160;  <span class="keyword">class </span>QuotaHandler</div>
-<div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>&#160;  {</div>
-<div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>&#160;  <span class="keyword">public</span>:</div>
-<div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>&#160;    <span class="keyword">explicit</span> QuotaHandler(<a class="code" href="classmesos_1_1internal_1_1master_1_1Master.html#a111451890cbc49fc403168624c536d7a">Master</a>* _master) : master(_master)</div>
-<div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>&#160;    {</div>
-<div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>&#160;      CHECK_NOTNULL(master);</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;</div>
-<div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>&#160;    <span class="comment">// Returns a list of set quotas.</span></div>
-<div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>&#160;    <a class="code" href="classprocess_1_1Future.html">process::Future&lt;process::http::Response&gt;</a> <a class="code" href="namespaceproc.html#a34396c6140a28f583dc13fee3c3c35d4">status</a>(</div>
-<div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>&#160;        <span class="keyword">const</span> <a class="code" href="namespacemesos_1_1internal_1_1tests_1_1v1_1_1scheduler.html#acb18ceaa5f6f2338f2a9727af398eb79">mesos::master::Call</a>&amp; call,</div>
-<div class="line"><a name="l01134"></a><span class="lineno"> 1134</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="l01135"></a><span class="lineno"> 1135</span>&#160;        <a class="code" href="namespacemesos.html#a13035ce0cc66cca4a467787b4716039e">ContentType</a> contentType) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l01136"></a><span class="lineno"> 1136</span>&#160;</div>
-<div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>&#160;    <a class="code" href="classprocess_1_1Future.html">process::Future&lt;process::http::Response&gt;</a> <a class="code" href="namespaceproc.html#a34396c6140a28f583dc13fee3c3c35d4">status</a>(</div>
-<div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>&#160;        <span class="keyword">const</span> <a class="code" href="structprocess_1_1http_1_1Request.html">process::http::Request</a>&amp; request,</div>
-<div class="line"><a name="l01139"></a><span class="lineno"> 1139</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="l01140"></a><span class="lineno"> 1140</span>&#160;            principal) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>&#160;</div>
-<div class="line"><a name="l01142"></a><span class="lineno"> 1142</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_1_1internal.html#abfdfc99e016fe858117fa1767cef2be0">set</a>(</div>
-<div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>&#160;        <span class="keyword">const</span> <a class="code" href="namespacemesos_1_1internal_1_1tests_1_1v1_1_1scheduler.html#acb18ceaa5f6f2338f2a9727af398eb79">mesos::master::Call</a>&amp; call,</div>
-<div class="line"><a name="l01144"></a><span class="lineno"> 1144</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="l01145"></a><span class="lineno"> 1145</span>&#160;            principal) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>&#160;</div>
-<div class="line"><a name="l01147"></a><span class="lineno"> 1147</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_1_1internal.html#abfdfc99e016fe858117fa1767cef2be0">set</a>(</div>
-<div class="line"><a name="l01148"></a><span class="lineno"> 1148</span>&#160;        <span class="keyword">const</span> <a class="code" href="structprocess_1_1http_1_1Request.html">process::http::Request</a>&amp; request,</div>
-<div class="line"><a name="l01149"></a><span class="lineno"> 1149</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="l01150"></a><span class="lineno"> 1150</span>&#160;            principal) <span class="keyword">const</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;    <a class="code" href="classprocess_1_1Future.html">process::Future&lt;process::http::Response&gt;</a> <span class="keyword">remove</span>(</div>
-<div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>&#160;        <span class="keyword">const</span> <a class="code" href="namespacemesos_1_1internal_1_1tests_1_1v1_1_1scheduler.html#acb18ceaa5f6f2338f2a9727af398eb79">mesos::master::Call</a>&amp; call,</div>
-<div class="line"><a name="l01154"></a><span class="lineno"> 1154</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="l01155"></a><span class="lineno"> 1155</span>&#160;            principal) <span class="keyword">const</span>;</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;    <a class="code" href="classprocess_1_1Future.html">process::Future&lt;process::http::Response&gt;</a> <span class="keyword">remove</span>(</div>
-<div class="line"><a name="l01158"></a><span class="lineno"> 1158</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="l01159"></a><span class="lineno"> 1159</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="l01160"></a><span class="lineno"> 1160</span>&#160;            principal) <span class="keyword">const</span>;</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;  <span class="keyword">private</span>:</div>
-<div class="line"><a name="l01163"></a><span class="lineno"> 1163</span>&#160;    <span class="comment">// Heuristically tries to determine whether a quota request could</span></div>
-<div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>&#160;    <span class="comment">// reasonably be satisfied given the current cluster capacity. The</span></div>
-<div class="line"><a name="l01165"></a><span class="lineno"> 1165</span>&#160;    <span class="comment">// goal is to determine whether a user may accidentally request an</span></div>
-<div class="line"><a name="l01166"></a><span class="lineno"> 1166</span>&#160;    <span class="comment">// amount of resources that would prevent frameworks without quota</span></div>
-<div class="line"><a name="l01167"></a><span class="lineno"> 1167</span>&#160;    <span class="comment">// from getting any offers. A force flag will allow users to bypass</span></div>
-<div class="line"><a name="l01168"></a><span class="lineno"> 1168</span>&#160;    <span class="comment">// this check.</span></div>
-<div class="line"><a name="l01169"></a><span class="lineno"> 1169</span>&#160;    <span class="comment">//</span></div>
-<div class="line"><a name="l01170"></a><span class="lineno"> 1170</span>&#160;    <span class="comment">// The heuristic tests whether the total quota, including the new</span></div>
-<div class="line"><a name="l01171"></a><span class="lineno"> 1171</span>&#160;    <span class="comment">// request, does not exceed the sum of non-static cluster resources,</span></div>
-<div class="line"><a name="l01172"></a><span class="lineno"> 1172</span>&#160;    <span class="comment">// i.e. the following inequality holds:</span></div>
-<div class="line"><a name="l01173"></a><span class="lineno"> 1173</span>&#160;    <span class="comment">//   total - statically reserved &gt;= total quota + quota request</span></div>
-<div class="line"><a name="l01174"></a><span class="lineno"> 1174</span>&#160;    <span class="comment">//</span></div>
-<div class="line"><a name="l01175"></a><span class="lineno"> 1175</span>&#160;    <span class="comment">// Please be advised that:</span></div>
-<div class="line"><a name="l01176"></a><span class="lineno"> 1176</span>&#160;    <span class="comment">//   * It is up to an allocator how to satisfy quota (for example,</span></div>
-<div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>&#160;    <span class="comment">//     what resources to account towards quota, as well as which</span></div>
-<div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>&#160;    <span class="comment">//     resources to consider allocatable for quota).</span></div>
-<div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>&#160;    <span class="comment">//   * Even if there are enough resources at the moment of this check,</span></div>
-<div class="line"><a name="l01180"></a><span class="lineno"> 1180</span>&#160;    <span class="comment">//     agents may terminate at any time, rendering the cluster under</span></div>
-<div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>&#160;    <span class="comment">//     quota.</span></div>
-<div class="line"><a name="l01182"></a><span class="lineno"> 1182</span>&#160;    <a class="code" href="classOption.html">Option&lt;Error&gt;</a> capacityHeuristic(</div>
-<div class="line"><a name="l01183"></a><span class="lineno"> 1183</span>&#160;        <span class="keyword">const</span> mesos::quota::QuotaInfo&amp; request) <span class="keyword">const</span>;</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">// We always want to rescind offers after the capacity heuristic. The</span></div>
-<div class="line"><a name="l01186"></a><span class="lineno"> 1186</span>&#160;    <span class="comment">// reason for this is the race between the allocator and the master:</span></div>
-<div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>&#160;    <span class="comment">// it can happen that there are not enough free resources at the</span></div>
-<div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>&#160;    <span class="comment">// allocator&#39;s disposal when it is notified about the quota request,</span></div>
-<div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>&#160;    <span class="comment">// but at this point it&#39;s too late to rescind.</span></div>
-<div class="line"><a name="l01190"></a><span class="lineno"> 1190</span>&#160;    <span class="comment">//</span></div>
-<div class="line"><a name="l01191"></a><span class="lineno"> 1191</span>&#160;    <span class="comment">// While rescinding, we adhere to the following rules:</span></div>
-<div class="line"><a name="l01192"></a><span class="lineno"> 1192</span>&#160;    <span class="comment">//   * Rescind at least as many resources as there are in the quota request.</span></div>
-<div class="line"><a name="l01193"></a><span class="lineno"> 1193</span>&#160;    <span class="comment">//   * Rescind all offers from an agent in order to make the potential</span></div>
-<div class="line"><a name="l01194"></a><span class="lineno"> 1194</span>&#160;    <span class="comment">//     offer bigger, which increases the chances that a quota&#39;ed framework</span></div>
-<div class="line"><a name="l01195"></a><span class="lineno"> 1195</span>&#160;    <span class="comment">//     will be able to use the offer.</span></div>
-<div class="line"><a name="l01196"></a><span class="lineno"> 1196</span>&#160;    <span class="comment">//   * Rescind offers from at least `numF` agents to make it possible</span></div>
-<div class="line"><a name="l01197"></a><span class="lineno"> 1197</span>&#160;    <span class="comment">//     (but not guaranteed, due to fair sharing) that each framework in</span></div>
-<div class="line"><a name="l01198"></a><span class="lineno"> 1198</span>&#160;    <span class="comment">//     the role for which quota is set gets an offer (`numF` is the</span></div>
-<div class="line"><a name="l01199"></a><span class="lineno"> 1199</span>&#160;    <span class="comment">//     number of frameworks in the quota&#39;ed role). Though this is not</span></div>
-<div class="line"><a name="l01200"></a><span class="lineno"> 1200</span>&#160;    <span class="comment">//     strictly necessary, we think this will increase the debugability</span></div>
-<div class="line"><a name="l01201"></a><span class="lineno"> 1201</span>&#160;    <span class="comment">//     and will improve user experience.</span></div>
-<div class="line"><a name="l01202"></a><span class="lineno"> 1202</span>&#160;    <span class="comment">//</span></div>
-<div class="line"><a name="l01203"></a><span class="lineno"> 1203</span>&#160;    <span class="comment">// TODO(alexr): Consider removing this function once offer management</span></div>
-<div class="line"><a name="l01204"></a><span class="lineno"> 1204</span>&#160;    <span class="comment">// (including rescinding) is moved to allocator.</span></div>
-<div class="line"><a name="l01205"></a><span class="lineno"> 1205</span>&#160;    <span class="keywordtype">void</span> rescindOffers(<span class="keyword">const</span> mesos::quota::QuotaInfo&amp; request) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l01206"></a><span class="lineno"> 1206</span>&#160;</div>
-<div class="line"><a name="l01207"></a><span class="lineno"> 1207</span>&#160;    <a class="code" href="classprocess_1_1Future.html">process::Future&lt;bool&gt;</a> authorizeGetQuota(</div>
-<div class="line"><a name="l01208"></a><span class="lineno"> 1208</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="l01209"></a><span class="lineno"> 1209</span>&#160;        <span class="keyword">const</span> mesos::quota::QuotaInfo&amp; <a class="code" href="namespacemesos_1_1internal_1_1master_1_1quota_1_1validation.html#aad54bc50e16c357a2aabb232448226c5">quotaInfo</a>) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l01210"></a><span class="lineno"> 1210</span>&#160;</div>
-<div class="line"><a name="l01211"></a><span class="lineno"> 1211</span>&#160;    <a class="code" href="classprocess_1_1Future.html">process::Future&lt;bool&gt;</a> authorizeUpdateQuota(</div>
-<div class="line"><a name="l01212"></a><span class="lineno"> 1212</span>&#160;        <s

<TRUNCATED>