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/10/30 15:39:08 UTC
[22/48] mesos-site git commit: Updated the website built from mesos
SHA: 8687b92.
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/529f48dc/content/api/latest/c++/protobuf__utils_8hpp_source.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/protobuf__utils_8hpp_source.html b/content/api/latest/c++/protobuf__utils_8hpp_source.html
index a05eba0..fd6f63e 100644
--- a/content/api/latest/c++/protobuf__utils_8hpp_source.html
+++ b/content/api/latest/c++/protobuf__utils_8hpp_source.html
@@ -203,273 +203,278 @@
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> <a class="code" href="classOption.html">Option<ContainerStatus></a> <a class="code" href="namespacemesos_1_1internal_1_1protobuf.html#ae2c95da054d42be4ebf9eb6156db1841">getTaskContainerStatus</a>(<span class="keyword">const</span> Task& task);</div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> </div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> </div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> <span class="comment">// Helper function that creates a MasterInfo from UPID.</span></div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> MasterInfo <a class="code" href="namespacemesos_1_1internal_1_1protobuf.html#a638bffc6be26057ab5f2054bd5d467e3">createMasterInfo</a>(<span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">process::UPID</a>& pid);</div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> </div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> OfferOperation <a class="code" href="namespacemesos_1_1internal_1_1protobuf.html#a171fb0158aea7478b0550021cc828cc6">createOfferOperation</a>(</div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  <span class="keyword">const</span> <a class="code" href="namespacecgroups_1_1blkio.html#a350b1eb57318afaea7700ab7786b55ef">Offer::Operation</a>& info,</div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  <span class="keyword">const</span> FrameworkID& frameworkId);</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> </div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> Label <a class="code" href="namespacemesos_1_1internal_1_1protobuf.html#afbc28e67bfbbed45cad7350a47088229">createLabel</a>(</div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  <span class="keyword">const</span> std::string& key,</div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<std::string></a>& value = <a class="code" href="structNone.html">None</a>());</div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> </div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> <span class="comment">// Helper function that creates a MasterInfo from UPID.</span></div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> MasterInfo <a class="code" href="namespacemesos_1_1internal_1_1protobuf.html#a638bffc6be26057ab5f2054bd5d467e3">createMasterInfo</a>(<span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">process::UPID</a>& pid);</div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> </div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> </div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> <span class="comment">// Previously, `Resource` did not contain `AllocationInfo`.</span></div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> <span class="comment">// So for backwards compatibility with old schedulers and</span></div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> <span class="comment">// tooling, we must allow operations to contain `Resource`s</span></div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> <span class="comment">// without an `AllocationInfo`. This allows the master to</span></div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> <span class="comment">// inject the offer's `AllocationInfo` into the operation's</span></div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> <span class="comment">// resources.</span></div>
-<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> <span class="keywordtype">void</span> <a class="code" href="namespacemesos_1_1internal_1_1protobuf.html#ab560acb5a4bdd25ab0e00b8b9350562a">injectAllocationInfo</a>(</div>
-<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  <a class="code" href="namespacecgroups_1_1blkio.html#a350b1eb57318afaea7700ab7786b55ef">Offer::Operation</a>* operation,</div>
-<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <span class="keyword">const</span> Resource::AllocationInfo& allocationInfo);</div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> </div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> </div>
-<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> <span class="comment">// This strips the Resource::AllocationInfo from all</span></div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> <span class="comment">// Resource objects contained within the operation.</span></div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> <span class="keywordtype">void</span> <a class="code" href="namespacemesos_1_1internal_1_1protobuf.html#a6a6794c6ee6ec11bcd78fcb625faebe1">stripAllocationInfo</a>(<a class="code" href="namespacecgroups_1_1blkio.html#a350b1eb57318afaea7700ab7786b55ef">Offer::Operation</a>* operation);</div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> Label <a class="code" href="namespacemesos_1_1internal_1_1protobuf.html#afbc28e67bfbbed45cad7350a47088229">createLabel</a>(</div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  <span class="keyword">const</span> std::string& key,</div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<std::string></a>& value = <a class="code" href="structNone.html">None</a>());</div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> </div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> </div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> <span class="comment">// Previously, `Resource` did not contain `AllocationInfo`.</span></div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> <span class="comment">// So for backwards compatibility with old schedulers and</span></div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> <span class="comment">// tooling, we must allow operations to contain `Resource`s</span></div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> <span class="comment">// without an `AllocationInfo`. This allows the master to</span></div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> <span class="comment">// inject the offer's `AllocationInfo` into the operation's</span></div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> <span class="comment">// resources.</span></div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> <span class="keywordtype">void</span> <a class="code" href="namespacemesos_1_1internal_1_1protobuf.html#ab560acb5a4bdd25ab0e00b8b9350562a">injectAllocationInfo</a>(</div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  <a class="code" href="namespacecgroups_1_1blkio.html#a350b1eb57318afaea7700ab7786b55ef">Offer::Operation</a>* operation,</div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  <span class="keyword">const</span> Resource::AllocationInfo& allocationInfo);</div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> </div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> </div>
-<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> <span class="comment">// Helper function that fills in a TimeInfo from the current time.</span></div>
-<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> TimeInfo <a class="code" href="namespacemesos_1_1internal_1_1protobuf.html#a4a9e9b7ab44f03e60e1650ab6e1cea25">getCurrentTime</a>();</div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> </div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> <span class="comment">// This strips the Resource::AllocationInfo from all</span></div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> <span class="comment">// Resource objects contained within the operation.</span></div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> <span class="keywordtype">void</span> <a class="code" href="namespacemesos_1_1internal_1_1protobuf.html#a6a6794c6ee6ec11bcd78fcb625faebe1">stripAllocationInfo</a>(<a class="code" href="namespacecgroups_1_1blkio.html#a350b1eb57318afaea7700ab7786b55ef">Offer::Operation</a>* operation);</div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> </div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> <span class="comment">// Helper function that creates a `FileInfo` from data returned by `stat()`.</span></div>
-<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> FileInfo <a class="code" href="namespacemesos_1_1internal_1_1protobuf.html#a2eefacd53f893b58a35ab9f16fa1b494">createFileInfo</a>(<span class="keyword">const</span> std::string& path, <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="namespacecgroups.html#a78e3c7ca2e422779908eec45f859d757">stat</a>& s);</div>
-<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> </div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> </div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> <span class="comment">// Helper function that fills in a TimeInfo from the current time.</span></div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> TimeInfo <a class="code" href="namespacemesos_1_1internal_1_1protobuf.html#a4a9e9b7ab44f03e60e1650ab6e1cea25">getCurrentTime</a>();</div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> </div>
-<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> ContainerID <a class="code" href="namespacemesos_1_1internal_1_1protobuf.html#a59b2fa160b16134c19df0b38e1becf27">getRootContainerId</a>(<span class="keyword">const</span> ContainerID& containerId);</div>
-<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> </div>
-<div class="line"><a name="l00187"></a><span class="lineno"><a class="line" href="namespacemesos_1_1internal_1_1protobuf_1_1slave.html"> 187</a></span> <span class="keyword">namespace </span>slave {</div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> </div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> <span class="comment">// Helper function that creates a `FileInfo` from data returned by `stat()`.</span></div>
+<div class="line"><a name="l00187"></a><span class="lineno"> 187</span> FileInfo <a class="code" href="namespacemesos_1_1internal_1_1protobuf.html#a2eefacd53f893b58a35ab9f16fa1b494">createFileInfo</a>(<span class="keyword">const</span> std::string& path, <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="namespacecgroups.html#a78e3c7ca2e422779908eec45f859d757">stat</a>& s);</div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> </div>
-<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> <span class="comment">// TODO(bmahler): Store the repeated field within this so that we</span></div>
-<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> <span class="comment">// don't drop unknown capabilities.</span></div>
-<div class="line"><a name="l00191"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1protobuf_1_1slave_1_1Capabilities.html"> 191</a></span> <span class="keyword">struct </span><a class="code" href="structmesos_1_1internal_1_1protobuf_1_1slave_1_1Capabilities.html">Capabilities</a></div>
-<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> {</div>
-<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  <a class="code" href="structmesos_1_1internal_1_1protobuf_1_1slave_1_1Capabilities.html#a5956ae2274a72932e0101ec7e303df6a">Capabilities</a>() = <span class="keywordflow">default</span>;</div>
-<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> </div>
-<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> Iterable></div>
-<div class="line"><a name="l00196"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1protobuf_1_1slave_1_1Capabilities.html#af31bbd9308f44e99ec47756b93ba580c"> 196</a></span>  <a class="code" href="structmesos_1_1internal_1_1protobuf_1_1slave_1_1Capabilities.html#af31bbd9308f44e99ec47756b93ba580c">Capabilities</a>(<span class="keyword">const</span> Iterable& capabilities)</div>
-<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  {</div>
-<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  <span class="keywordflow">foreach</span> (<span class="keyword">const</span> <a class="code" href="namespacemesos_1_1internal_1_1capabilities.html#abf44ee3490d4ec99e8549060bb8c9f58">SlaveInfo::Capability</a>& capability, capabilities) {</div>
-<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  <span class="keywordflow">switch</span> (capability.type()) {</div>
-<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  <span class="keywordflow">case</span> <a class="code" href="namespacerouting_1_1diagnosis_1_1socket_1_1state.html#a4cceb5a8a4b3f5e1323fdf4a14c5d2a6">SlaveInfo::Capability::UNKNOWN</a>:</div>
-<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  <span class="keywordflow">case</span> SlaveInfo::Capability::MULTI_ROLE:</div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  <a class="code" href="structmesos_1_1internal_1_1protobuf_1_1slave_1_1Capabilities.html#a074c9f963e06924b5b2385e7bd2367cb">multiRole</a> = <span class="keyword">true</span>;</div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  <span class="keywordflow">case</span> SlaveInfo::Capability::HIERARCHICAL_ROLE:</div>
-<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  <a class="code" href="structmesos_1_1internal_1_1protobuf_1_1slave_1_1Capabilities.html#a93bdb4564eb9ca64045614a788c6791c">hierarchicalRole</a> = <span class="keyword">true</span>;</div>
-<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  <span class="keywordflow">case</span> SlaveInfo::Capability::RESERVATION_REFINEMENT:</div>
-<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  <a class="code" href="structmesos_1_1internal_1_1protobuf_1_1slave_1_1Capabilities.html#ab4a7dde0c75069bfc2880624a218e2f4">reservationRefinement</a> = <span class="keyword">true</span>;</div>
-<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  <span class="keywordflow">case</span> SlaveInfo::Capability::RESOURCE_PROVIDER:</div>
-<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  <a class="code" href="structmesos_1_1internal_1_1protobuf_1_1slave_1_1Capabilities.html#ac7ae64c25e62bbe1ec798f0c3203e3d8">resourceProvider</a> = <span class="keyword">true</span>;</div>
-<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  <span class="comment">// If adding another case here be sure to update the</span></div>
-<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  <span class="comment">// equality operator.</span></div>
-<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  }</div>
-<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  }</div>
-<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  }</div>
-<div class="line"><a name="l00219"></a><span class="lineno"> 219</span> </div>
-<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  <span class="comment">// See mesos.proto for the meaning of agent capabilities.</span></div>
-<div class="line"><a name="l00221"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1protobuf_1_1slave_1_1Capabilities.html#a074c9f963e06924b5b2385e7bd2367cb"> 221</a></span>  <span class="keywordtype">bool</span> <a class="code" href="structmesos_1_1internal_1_1protobuf_1_1slave_1_1Capabilities.html#a074c9f963e06924b5b2385e7bd2367cb">multiRole</a> = <span class="keyword">false</span>;</div>
-<div class="line"><a name="l00222"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1protobuf_1_1slave_1_1Capabilities.html#a93bdb4564eb9ca64045614a788c6791c"> 222</a></span>  <span class="keywordtype">bool</span> <a class="code" href="structmesos_1_1internal_1_1protobuf_1_1slave_1_1Capabilities.html#a93bdb4564eb9ca64045614a788c6791c">hierarchicalRole</a> = <span class="keyword">false</span>;</div>
-<div class="line"><a name="l00223"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1protobuf_1_1slave_1_1Capabilities.html#ab4a7dde0c75069bfc2880624a218e2f4"> 223</a></span>  <span class="keywordtype">bool</span> <a class="code" href="structmesos_1_1internal_1_1protobuf_1_1slave_1_1Capabilities.html#ab4a7dde0c75069bfc2880624a218e2f4">reservationRefinement</a> = <span class="keyword">false</span>;</div>
-<div class="line"><a name="l00224"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1protobuf_1_1slave_1_1Capabilities.html#ac7ae64c25e62bbe1ec798f0c3203e3d8"> 224</a></span>  <span class="keywordtype">bool</span> <a class="code" href="structmesos_1_1internal_1_1protobuf_1_1slave_1_1Capabilities.html#ac7ae64c25e62bbe1ec798f0c3203e3d8">resourceProvider</a> = <span class="keyword">false</span>;</div>
-<div class="line"><a name="l00225"></a><span class="lineno"> 225</span> </div>
-<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  google::protobuf::RepeatedPtrField<SlaveInfo::Capability></div>
-<div class="line"><a name="l00227"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1protobuf_1_1slave_1_1Capabilities.html#a805d49839e5dfe48601afad099dfdc67"> 227</a></span>  <a class="code" href="structmesos_1_1internal_1_1protobuf_1_1slave_1_1Capabilities.html#a805d49839e5dfe48601afad099dfdc67">toRepeatedPtrField</a>()<span class="keyword"> const</span></div>
-<div class="line"><a name="l00228"></a><span class="lineno"> 228</span> <span class="keyword"> </span>{</div>
-<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  google::protobuf::RepeatedPtrField<SlaveInfo::Capability> result;</div>
-<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  <span class="keywordflow">if</span> (<a class="code" href="structmesos_1_1internal_1_1protobuf_1_1slave_1_1Capabilities.html#a074c9f963e06924b5b2385e7bd2367cb">multiRole</a>) {</div>
-<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  result.Add()->set_type(SlaveInfo::Capability::MULTI_ROLE);</div>
-<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  }</div>
-<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  <span class="keywordflow">if</span> (<a class="code" href="structmesos_1_1internal_1_1protobuf_1_1slave_1_1Capabilities.html#a93bdb4564eb9ca64045614a788c6791c">hierarchicalRole</a>) {</div>
-<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  result.Add()->set_type(SlaveInfo::Capability::HIERARCHICAL_ROLE);</div>
-<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  }</div>
-<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  <span class="keywordflow">if</span> (<a class="code" href="structmesos_1_1internal_1_1protobuf_1_1slave_1_1Capabilities.html#ab4a7dde0c75069bfc2880624a218e2f4">reservationRefinement</a>) {</div>
-<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  result.Add()->set_type(SlaveInfo::Capability::RESERVATION_REFINEMENT);</div>
-<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  }</div>
-<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  <span class="keywordflow">if</span> (<a class="code" href="structmesos_1_1internal_1_1protobuf_1_1slave_1_1Capabilities.html#ac7ae64c25e62bbe1ec798f0c3203e3d8">resourceProvider</a>) {</div>
-<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  result.Add()->set_type(SlaveInfo::Capability::RESOURCE_PROVIDER);</div>
-<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  }</div>
-<div class="line"><a name="l00242"></a><span class="lineno"> 242</span> </div>
-<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  <span class="keywordflow">return</span> result;</div>
-<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  }</div>
-<div class="line"><a name="l00245"></a><span class="lineno"> 245</span> };</div>
-<div class="line"><a name="l00246"></a><span class="lineno"> 246</span> </div>
+<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> </div>
+<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> ContainerID <a class="code" href="namespacemesos_1_1internal_1_1protobuf.html#a59b2fa160b16134c19df0b38e1becf27">getRootContainerId</a>(<span class="keyword">const</span> ContainerID& containerId);</div>
+<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> </div>
+<div class="line"><a name="l00192"></a><span class="lineno"><a class="line" href="namespacemesos_1_1internal_1_1protobuf_1_1slave.html"> 192</a></span> <span class="keyword">namespace </span>slave {</div>
+<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> </div>
+<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> <span class="comment">// TODO(bmahler): Store the repeated field within this so that we</span></div>
+<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> <span class="comment">// don't drop unknown capabilities.</span></div>
+<div class="line"><a name="l00196"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1protobuf_1_1slave_1_1Capabilities.html"> 196</a></span> <span class="keyword">struct </span><a class="code" href="structmesos_1_1internal_1_1protobuf_1_1slave_1_1Capabilities.html">Capabilities</a></div>
+<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> {</div>
+<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  <a class="code" href="structmesos_1_1internal_1_1protobuf_1_1slave_1_1Capabilities.html#a5956ae2274a72932e0101ec7e303df6a">Capabilities</a>() = <span class="keywordflow">default</span>;</div>
+<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> </div>
+<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> Iterable></div>
+<div class="line"><a name="l00201"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1protobuf_1_1slave_1_1Capabilities.html#af31bbd9308f44e99ec47756b93ba580c"> 201</a></span>  <a class="code" href="structmesos_1_1internal_1_1protobuf_1_1slave_1_1Capabilities.html#af31bbd9308f44e99ec47756b93ba580c">Capabilities</a>(<span class="keyword">const</span> Iterable& capabilities)</div>
+<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  {</div>
+<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  <span class="keywordflow">foreach</span> (<span class="keyword">const</span> <a class="code" href="namespacemesos_1_1internal_1_1capabilities.html#abf44ee3490d4ec99e8549060bb8c9f58">SlaveInfo::Capability</a>& capability, capabilities) {</div>
+<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  <span class="keywordflow">switch</span> (capability.type()) {</div>
+<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  <span class="keywordflow">case</span> <a class="code" href="namespacerouting_1_1diagnosis_1_1socket_1_1state.html#a4cceb5a8a4b3f5e1323fdf4a14c5d2a6">SlaveInfo::Capability::UNKNOWN</a>:</div>
+<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  <span class="keywordflow">case</span> SlaveInfo::Capability::MULTI_ROLE:</div>
+<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  <a class="code" href="structmesos_1_1internal_1_1protobuf_1_1slave_1_1Capabilities.html#a074c9f963e06924b5b2385e7bd2367cb">multiRole</a> = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  <span class="keywordflow">case</span> SlaveInfo::Capability::HIERARCHICAL_ROLE:</div>
+<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  <a class="code" href="structmesos_1_1internal_1_1protobuf_1_1slave_1_1Capabilities.html#a93bdb4564eb9ca64045614a788c6791c">hierarchicalRole</a> = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  <span class="keywordflow">case</span> SlaveInfo::Capability::RESERVATION_REFINEMENT:</div>
+<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  <a class="code" href="structmesos_1_1internal_1_1protobuf_1_1slave_1_1Capabilities.html#ab4a7dde0c75069bfc2880624a218e2f4">reservationRefinement</a> = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  <span class="keywordflow">case</span> SlaveInfo::Capability::RESOURCE_PROVIDER:</div>
+<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  <a class="code" href="structmesos_1_1internal_1_1protobuf_1_1slave_1_1Capabilities.html#ac7ae64c25e62bbe1ec798f0c3203e3d8">resourceProvider</a> = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  <span class="comment">// If adding another case here be sure to update the</span></div>
+<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  <span class="comment">// equality operator.</span></div>
+<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  }</div>
+<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  }</div>
+<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  }</div>
+<div class="line"><a name="l00224"></a><span class="lineno"> 224</span> </div>
+<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  <span class="comment">// See mesos.proto for the meaning of agent capabilities.</span></div>
+<div class="line"><a name="l00226"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1protobuf_1_1slave_1_1Capabilities.html#a074c9f963e06924b5b2385e7bd2367cb"> 226</a></span>  <span class="keywordtype">bool</span> <a class="code" href="structmesos_1_1internal_1_1protobuf_1_1slave_1_1Capabilities.html#a074c9f963e06924b5b2385e7bd2367cb">multiRole</a> = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00227"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1protobuf_1_1slave_1_1Capabilities.html#a93bdb4564eb9ca64045614a788c6791c"> 227</a></span>  <span class="keywordtype">bool</span> <a class="code" href="structmesos_1_1internal_1_1protobuf_1_1slave_1_1Capabilities.html#a93bdb4564eb9ca64045614a788c6791c">hierarchicalRole</a> = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00228"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1protobuf_1_1slave_1_1Capabilities.html#ab4a7dde0c75069bfc2880624a218e2f4"> 228</a></span>  <span class="keywordtype">bool</span> <a class="code" href="structmesos_1_1internal_1_1protobuf_1_1slave_1_1Capabilities.html#ab4a7dde0c75069bfc2880624a218e2f4">reservationRefinement</a> = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00229"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1protobuf_1_1slave_1_1Capabilities.html#ac7ae64c25e62bbe1ec798f0c3203e3d8"> 229</a></span>  <span class="keywordtype">bool</span> <a class="code" href="structmesos_1_1internal_1_1protobuf_1_1slave_1_1Capabilities.html#ac7ae64c25e62bbe1ec798f0c3203e3d8">resourceProvider</a> = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00230"></a><span class="lineno"> 230</span> </div>
+<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  google::protobuf::RepeatedPtrField<SlaveInfo::Capability></div>
+<div class="line"><a name="l00232"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1protobuf_1_1slave_1_1Capabilities.html#a805d49839e5dfe48601afad099dfdc67"> 232</a></span>  <a class="code" href="structmesos_1_1internal_1_1protobuf_1_1slave_1_1Capabilities.html#a805d49839e5dfe48601afad099dfdc67">toRepeatedPtrField</a>()<span class="keyword"> const</span></div>
+<div class="line"><a name="l00233"></a><span class="lineno"> 233</span> <span class="keyword"> </span>{</div>
+<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  google::protobuf::RepeatedPtrField<SlaveInfo::Capability> result;</div>
+<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  <span class="keywordflow">if</span> (<a class="code" href="structmesos_1_1internal_1_1protobuf_1_1slave_1_1Capabilities.html#a074c9f963e06924b5b2385e7bd2367cb">multiRole</a>) {</div>
+<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  result.Add()->set_type(SlaveInfo::Capability::MULTI_ROLE);</div>
+<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  }</div>
+<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  <span class="keywordflow">if</span> (<a class="code" href="structmesos_1_1internal_1_1protobuf_1_1slave_1_1Capabilities.html#a93bdb4564eb9ca64045614a788c6791c">hierarchicalRole</a>) {</div>
+<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  result.Add()->set_type(SlaveInfo::Capability::HIERARCHICAL_ROLE);</div>
+<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  }</div>
+<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  <span class="keywordflow">if</span> (<a class="code" href="structmesos_1_1internal_1_1protobuf_1_1slave_1_1Capabilities.html#ab4a7dde0c75069bfc2880624a218e2f4">reservationRefinement</a>) {</div>
+<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  result.Add()->set_type(SlaveInfo::Capability::RESERVATION_REFINEMENT);</div>
+<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  }</div>
+<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  <span class="keywordflow">if</span> (<a class="code" href="structmesos_1_1internal_1_1protobuf_1_1slave_1_1Capabilities.html#ac7ae64c25e62bbe1ec798f0c3203e3d8">resourceProvider</a>) {</div>
+<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  result.Add()->set_type(SlaveInfo::Capability::RESOURCE_PROVIDER);</div>
+<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  }</div>
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span> </div>
-<div class="line"><a name="l00248"></a><span class="lineno"> 248</span> <span class="keywordtype">bool</span> <a class="code" href="namespacemesos_1_1internal_1_1protobuf_1_1slave.html#a565284f0eb182e88dd3930225c028a0e">operator==</a>(<span class="keyword">const</span> Capabilities& left, <span class="keyword">const</span> Capabilities& right);</div>
-<div class="line"><a name="l00249"></a><span class="lineno"> 249</span> <span class="keywordtype">bool</span> <a class="code" href="namespacemesos_1_1internal_1_1protobuf_1_1slave.html#acf9146f09a5cc0dc59ead525d8a45147">operator!=</a>(<span class="keyword">const</span> Capabilities& left, <span class="keyword">const</span> Capabilities& right);</div>
-<div class="line"><a name="l00250"></a><span class="lineno"> 250</span> std::ostream& <a class="code" href="namespacemesos_1_1internal_1_1protobuf_1_1slave.html#a92e7b9534b178d3b0eaa7ea23106f225">operator<<</a>(std::ostream& stream, <span class="keyword">const</span> Capabilities& c);</div>
+<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  <span class="keywordflow">return</span> result;</div>
+<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  }</div>
+<div class="line"><a name="l00250"></a><span class="lineno"> 250</span> };</div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span> </div>
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span> </div>
-<div class="line"><a name="l00253"></a><span class="lineno"> 253</span> mesos::slave::ContainerLimitation <a class="code" href="namespacemesos_1_1internal_1_1protobuf_1_1slave.html#ab481a7d4ff89ad7e92d086389261e53c">createContainerLimitation</a>(</div>
-<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  <span class="keyword">const</span> <a class="code" href="classmesos_1_1Resources.html">Resources</a>& resources,</div>
-<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  <span class="keyword">const</span> std::string& message,</div>
-<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  <span class="keyword">const</span> TaskStatus::Reason& reason);</div>
+<div class="line"><a name="l00253"></a><span class="lineno"> 253</span> <span class="keywordtype">bool</span> <a class="code" href="namespacemesos_1_1internal_1_1protobuf_1_1slave.html#a565284f0eb182e88dd3930225c028a0e">operator==</a>(<span class="keyword">const</span> Capabilities& left, <span class="keyword">const</span> Capabilities& right);</div>
+<div class="line"><a name="l00254"></a><span class="lineno"> 254</span> <span class="keywordtype">bool</span> <a class="code" href="namespacemesos_1_1internal_1_1protobuf_1_1slave.html#acf9146f09a5cc0dc59ead525d8a45147">operator!=</a>(<span class="keyword">const</span> Capabilities& left, <span class="keyword">const</span> Capabilities& right);</div>
+<div class="line"><a name="l00255"></a><span class="lineno"> 255</span> std::ostream& <a class="code" href="namespacemesos_1_1internal_1_1protobuf_1_1slave.html#a92e7b9534b178d3b0eaa7ea23106f225">operator<<</a>(std::ostream& stream, <span class="keyword">const</span> Capabilities& c);</div>
+<div class="line"><a name="l00256"></a><span class="lineno"> 256</span> </div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span> </div>
-<div class="line"><a name="l00258"></a><span class="lineno"> 258</span> </div>
-<div class="line"><a name="l00259"></a><span class="lineno"> 259</span> mesos::slave::ContainerState <a class="code" href="namespacemesos_1_1internal_1_1protobuf_1_1slave.html#a2ec7a33e80d320e4dbf4d89ae1b8ace1">createContainerState</a>(</div>
-<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<ExecutorInfo></a>& executorInfo,</div>
-<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  <span class="keyword">const</span> ContainerID& <span class="keywordtype">id</span>,</div>
-<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  <a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ab03ced250ed239bc3b50b669493997f9">pid_t</a> pid,</div>
-<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  <span class="keyword">const</span> std::string& directory);</div>
-<div class="line"><a name="l00264"></a><span class="lineno"> 264</span> </div>
-<div class="line"><a name="l00265"></a><span class="lineno"> 265</span> } <span class="comment">// namespace slave {</span></div>
-<div class="line"><a name="l00266"></a><span class="lineno"> 266</span> </div>
-<div class="line"><a name="l00267"></a><span class="lineno"><a class="line" href="namespacemesos_1_1internal_1_1protobuf_1_1maintenance.html"> 267</a></span> <span class="keyword">namespace </span>maintenance {</div>
-<div class="line"><a name="l00268"></a><span class="lineno"> 268</span> </div>
-<div class="line"><a name="l00272"></a><span class="lineno"> 272</span> Unavailability <a class="code" href="namespacemesos_1_1internal_1_1protobuf_1_1maintenance.html#ab815502946fdd10320bf5bbd5d6a861e">createUnavailability</a>(</div>
-<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  <span class="keyword">const</span> <a class="code" href="classprocess_1_1Time.html">process::Time</a>& <a class="code" href="namespacesystemd_1_1slices.html#a95aa197d8eed9f20dacb44f433b15f01">start</a>,</div>
-<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<Duration></a>& duration = <a class="code" href="structNone.html">None</a>());</div>
-<div class="line"><a name="l00275"></a><span class="lineno"> 275</span> </div>
-<div class="line"><a name="l00276"></a><span class="lineno"> 276</span> </div>
-<div class="line"><a name="l00280"></a><span class="lineno"> 280</span> google::protobuf::RepeatedPtrField<MachineID> <a class="code" href="namespacemesos_1_1internal_1_1protobuf_1_1maintenance.html#acaaf550110b9c5e305e48525f9e5ddc0">createMachineList</a>(</div>
-<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  std::initializer_list<MachineID> ids);</div>
-<div class="line"><a name="l00282"></a><span class="lineno"> 282</span> </div>
-<div class="line"><a name="l00283"></a><span class="lineno"> 283</span> </div>
-<div class="line"><a name="l00288"></a><span class="lineno"> 288</span> mesos::maintenance::Window <a class="code" href="namespacemesos_1_1internal_1_1protobuf_1_1maintenance.html#a3fa93ed41b8e957b26d4224eed6ee4a0">createWindow</a>(</div>
-<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  std::initializer_list<MachineID> ids,</div>
-<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  <span class="keyword">const</span> Unavailability& <a class="code" href="namespacemesos_1_1internal_1_1master_1_1maintenance_1_1validation.html#a766d3749f894fce457b084746f0ba868">unavailability</a>);</div>
-<div class="line"><a name="l00291"></a><span class="lineno"> 291</span> </div>
-<div class="line"><a name="l00292"></a><span class="lineno"> 292</span> </div>
-<div class="line"><a name="l00297"></a><span class="lineno"> 297</span> mesos::maintenance::Schedule <a class="code" href="namespacemesos_1_1internal_1_1protobuf_1_1maintenance.html#a1669caee9ef867397eca668ad1cf89f0">createSchedule</a>(</div>
-<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  std::initializer_list<mesos::maintenance::Window> windows);</div>
-<div class="line"><a name="l00299"></a><span class="lineno"> 299</span> </div>
-<div class="line"><a name="l00300"></a><span class="lineno"> 300</span> } <span class="comment">// namespace maintenance {</span></div>
-<div class="line"><a name="l00301"></a><span class="lineno"> 301</span> </div>
-<div class="line"><a name="l00302"></a><span class="lineno"><a class="line" href="namespacemesos_1_1internal_1_1protobuf_1_1master.html"> 302</a></span> <span class="keyword">namespace </span>master {</div>
-<div class="line"><a name="l00303"></a><span class="lineno"><a class="line" href="namespacemesos_1_1internal_1_1protobuf_1_1master_1_1event.html"> 303</a></span> <span class="keyword">namespace </span>event {</div>
+<div class="line"><a name="l00258"></a><span class="lineno"> 258</span> mesos::slave::ContainerLimitation <a class="code" href="namespacemesos_1_1internal_1_1protobuf_1_1slave.html#ab481a7d4ff89ad7e92d086389261e53c">createContainerLimitation</a>(</div>
+<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  <span class="keyword">const</span> <a class="code" href="classmesos_1_1Resources.html">Resources</a>& resources,</div>
+<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  <span class="keyword">const</span> std::string& message,</div>
+<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  <span class="keyword">const</span> TaskStatus::Reason& reason);</div>
+<div class="line"><a name="l00262"></a><span class="lineno"> 262</span> </div>
+<div class="line"><a name="l00263"></a><span class="lineno"> 263</span> </div>
+<div class="line"><a name="l00264"></a><span class="lineno"> 264</span> mesos::slave::ContainerState <a class="code" href="namespacemesos_1_1internal_1_1protobuf_1_1slave.html#a2ec7a33e80d320e4dbf4d89ae1b8ace1">createContainerState</a>(</div>
+<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<ExecutorInfo></a>& executorInfo,</div>
+<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  <span class="keyword">const</span> ContainerID& <span class="keywordtype">id</span>,</div>
+<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  <a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ab03ced250ed239bc3b50b669493997f9">pid_t</a> pid,</div>
+<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  <span class="keyword">const</span> std::string& directory);</div>
+<div class="line"><a name="l00269"></a><span class="lineno"> 269</span> </div>
+<div class="line"><a name="l00270"></a><span class="lineno"> 270</span> } <span class="comment">// namespace slave {</span></div>
+<div class="line"><a name="l00271"></a><span class="lineno"> 271</span> </div>
+<div class="line"><a name="l00272"></a><span class="lineno"><a class="line" href="namespacemesos_1_1internal_1_1protobuf_1_1maintenance.html"> 272</a></span> <span class="keyword">namespace </span>maintenance {</div>
+<div class="line"><a name="l00273"></a><span class="lineno"> 273</span> </div>
+<div class="line"><a name="l00277"></a><span class="lineno"> 277</span> Unavailability <a class="code" href="namespacemesos_1_1internal_1_1protobuf_1_1maintenance.html#ab815502946fdd10320bf5bbd5d6a861e">createUnavailability</a>(</div>
+<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  <span class="keyword">const</span> <a class="code" href="classprocess_1_1Time.html">process::Time</a>& <a class="code" href="namespacesystemd_1_1slices.html#a95aa197d8eed9f20dacb44f433b15f01">start</a>,</div>
+<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<Duration></a>& duration = <a class="code" href="structNone.html">None</a>());</div>
+<div class="line"><a name="l00280"></a><span class="lineno"> 280</span> </div>
+<div class="line"><a name="l00281"></a><span class="lineno"> 281</span> </div>
+<div class="line"><a name="l00285"></a><span class="lineno"> 285</span> google::protobuf::RepeatedPtrField<MachineID> <a class="code" href="namespacemesos_1_1internal_1_1protobuf_1_1maintenance.html#acaaf550110b9c5e305e48525f9e5ddc0">createMachineList</a>(</div>
+<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  std::initializer_list<MachineID> ids);</div>
+<div class="line"><a name="l00287"></a><span class="lineno"> 287</span> </div>
+<div class="line"><a name="l00288"></a><span class="lineno"> 288</span> </div>
+<div class="line"><a name="l00293"></a><span class="lineno"> 293</span> mesos::maintenance::Window <a class="code" href="namespacemesos_1_1internal_1_1protobuf_1_1maintenance.html#a3fa93ed41b8e957b26d4224eed6ee4a0">createWindow</a>(</div>
+<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  std::initializer_list<MachineID> ids,</div>
+<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  <span class="keyword">const</span> Unavailability& <a class="code" href="namespacemesos_1_1internal_1_1master_1_1maintenance_1_1validation.html#a766d3749f894fce457b084746f0ba868">unavailability</a>);</div>
+<div class="line"><a name="l00296"></a><span class="lineno"> 296</span> </div>
+<div class="line"><a name="l00297"></a><span class="lineno"> 297</span> </div>
+<div class="line"><a name="l00302"></a><span class="lineno"> 302</span> mesos::maintenance::Schedule <a class="code" href="namespacemesos_1_1internal_1_1protobuf_1_1maintenance.html#a1669caee9ef867397eca668ad1cf89f0">createSchedule</a>(</div>
+<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  std::initializer_list<mesos::maintenance::Window> windows);</div>
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span> </div>
-<div class="line"><a name="l00305"></a><span class="lineno"> 305</span> <span class="comment">// Helper for creating a `TASK_UPDATED` event from a `Task`, its</span></div>
-<div class="line"><a name="l00306"></a><span class="lineno"> 306</span> <span class="comment">// latest state according to the agent, and its status corresponding</span></div>
-<div class="line"><a name="l00307"></a><span class="lineno"> 307</span> <span class="comment">// to the last status update acknowledged from the scheduler.</span></div>
-<div class="line"><a name="l00308"></a><span class="lineno"> 308</span> <a class="code" href="namespacemesos_1_1internal_1_1tests_1_1v1_1_1scheduler.html#acd3fa8addac36f513726743665631d79">mesos::master::Event</a> <a class="code" href="namespacemesos_1_1internal_1_1protobuf_1_1master_1_1event.html#a6afd8a21c1cf14d6ab80abeb476720bc">createTaskUpdated</a>(</div>
-<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  <span class="keyword">const</span> Task& task,</div>
-<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  <span class="keyword">const</span> TaskState& state,</div>
-<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  <span class="keyword">const</span> TaskStatus& status);</div>
-<div class="line"><a name="l00312"></a><span class="lineno"> 312</span> </div>
-<div class="line"><a name="l00313"></a><span class="lineno"> 313</span> </div>
-<div class="line"><a name="l00314"></a><span class="lineno"> 314</span> <span class="comment">// Helper for creating a `TASK_ADDED` event from a `Task`.</span></div>
-<div class="line"><a name="l00315"></a><span class="lineno"> 315</span> <a class="code" href="namespacemesos_1_1internal_1_1tests_1_1v1_1_1scheduler.html#acd3fa8addac36f513726743665631d79">mesos::master::Event</a> <a class="code" href="namespacemesos_1_1internal_1_1protobuf_1_1master_1_1event.html#a69703958853b44f22fbf6123be76e0a2">createTaskAdded</a>(<span class="keyword">const</span> Task& task);</div>
-<div class="line"><a name="l00316"></a><span class="lineno"> 316</span> </div>
+<div class="line"><a name="l00305"></a><span class="lineno"> 305</span> } <span class="comment">// namespace maintenance {</span></div>
+<div class="line"><a name="l00306"></a><span class="lineno"> 306</span> </div>
+<div class="line"><a name="l00307"></a><span class="lineno"><a class="line" href="namespacemesos_1_1internal_1_1protobuf_1_1master.html"> 307</a></span> <span class="keyword">namespace </span>master {</div>
+<div class="line"><a name="l00308"></a><span class="lineno"><a class="line" href="namespacemesos_1_1internal_1_1protobuf_1_1master_1_1event.html"> 308</a></span> <span class="keyword">namespace </span>event {</div>
+<div class="line"><a name="l00309"></a><span class="lineno"> 309</span> </div>
+<div class="line"><a name="l00310"></a><span class="lineno"> 310</span> <span class="comment">// Helper for creating a `TASK_UPDATED` event from a `Task`, its</span></div>
+<div class="line"><a name="l00311"></a><span class="lineno"> 311</span> <span class="comment">// latest state according to the agent, and its status corresponding</span></div>
+<div class="line"><a name="l00312"></a><span class="lineno"> 312</span> <span class="comment">// to the last status update acknowledged from the scheduler.</span></div>
+<div class="line"><a name="l00313"></a><span class="lineno"> 313</span> <a class="code" href="namespacemesos_1_1internal_1_1tests_1_1v1_1_1scheduler.html#acd3fa8addac36f513726743665631d79">mesos::master::Event</a> <a class="code" href="namespacemesos_1_1internal_1_1protobuf_1_1master_1_1event.html#a6afd8a21c1cf14d6ab80abeb476720bc">createTaskUpdated</a>(</div>
+<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  <span class="keyword">const</span> Task& task,</div>
+<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  <span class="keyword">const</span> TaskState& state,</div>
+<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  <span class="keyword">const</span> TaskStatus& status);</div>
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span> </div>
-<div class="line"><a name="l00318"></a><span class="lineno"> 318</span> <span class="comment">// Helper for creating a 'FRAMEWORK_ADDED' event from a `Framework`.</span></div>
-<div class="line"><a name="l00319"></a><span class="lineno"> 319</span> <a class="code" href="namespacemesos_1_1internal_1_1tests_1_1v1_1_1scheduler.html#acd3fa8addac36f513726743665631d79">mesos::master::Event</a> <a class="code" href="namespacemesos_1_1internal_1_1protobuf_1_1master_1_1event.html#a57627d6cffb087c80f8139ab67c343f2">createFrameworkAdded</a>(</div>
-<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  <span class="keyword">const</span> <a class="code" href="structmesos_1_1internal_1_1master_1_1Framework.html">mesos::internal::master::Framework</a>& framework);</div>
+<div class="line"><a name="l00318"></a><span class="lineno"> 318</span> </div>
+<div class="line"><a name="l00319"></a><span class="lineno"> 319</span> <span class="comment">// Helper for creating a `TASK_ADDED` event from a `Task`.</span></div>
+<div class="line"><a name="l00320"></a><span class="lineno"> 320</span> <a class="code" href="namespacemesos_1_1internal_1_1tests_1_1v1_1_1scheduler.html#acd3fa8addac36f513726743665631d79">mesos::master::Event</a> <a class="code" href="namespacemesos_1_1internal_1_1protobuf_1_1master_1_1event.html#a69703958853b44f22fbf6123be76e0a2">createTaskAdded</a>(<span class="keyword">const</span> Task& task);</div>
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span> </div>
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span> </div>
-<div class="line"><a name="l00323"></a><span class="lineno"> 323</span> <span class="comment">// Helper for creating a 'FRAMEWORK_UPDATED' event from a `Framework`.</span></div>
-<div class="line"><a name="l00324"></a><span class="lineno"> 324</span> <a class="code" href="namespacemesos_1_1internal_1_1tests_1_1v1_1_1scheduler.html#acd3fa8addac36f513726743665631d79">mesos::master::Event</a> <a class="code" href="namespacemesos_1_1internal_1_1protobuf_1_1master_1_1event.html#ad2a0a4314ebe887ce1ee3e7d52880169">createFrameworkUpdated</a>(</div>
+<div class="line"><a name="l00323"></a><span class="lineno"> 323</span> <span class="comment">// Helper for creating a 'FRAMEWORK_ADDED' event from a `Framework`.</span></div>
+<div class="line"><a name="l00324"></a><span class="lineno"> 324</span> <a class="code" href="namespacemesos_1_1internal_1_1tests_1_1v1_1_1scheduler.html#acd3fa8addac36f513726743665631d79">mesos::master::Event</a> <a class="code" href="namespacemesos_1_1internal_1_1protobuf_1_1master_1_1event.html#a57627d6cffb087c80f8139ab67c343f2">createFrameworkAdded</a>(</div>
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>  <span class="keyword">const</span> <a class="code" href="structmesos_1_1internal_1_1master_1_1Framework.html">mesos::internal::master::Framework</a>& framework);</div>
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span> </div>
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span> </div>
-<div class="line"><a name="l00328"></a><span class="lineno"> 328</span> <span class="comment">// Helper for creating a 'FRAMEWORK_REMOVED' event from a `FrameworkInfo`.</span></div>
-<div class="line"><a name="l00329"></a><span class="lineno"> 329</span> <a class="code" href="namespacemesos_1_1internal_1_1tests_1_1v1_1_1scheduler.html#acd3fa8addac36f513726743665631d79">mesos::master::Event</a> <a class="code" href="namespacemesos_1_1internal_1_1protobuf_1_1master_1_1event.html#abfb70e9c628c704e940554fd37917d0d">createFrameworkRemoved</a>(<span class="keyword">const</span> FrameworkInfo& frameworkInfo);</div>
-<div class="line"><a name="l00330"></a><span class="lineno"> 330</span> </div>
+<div class="line"><a name="l00328"></a><span class="lineno"> 328</span> <span class="comment">// Helper for creating a 'FRAMEWORK_UPDATED' event from a `Framework`.</span></div>
+<div class="line"><a name="l00329"></a><span class="lineno"> 329</span> <a class="code" href="namespacemesos_1_1internal_1_1tests_1_1v1_1_1scheduler.html#acd3fa8addac36f513726743665631d79">mesos::master::Event</a> <a class="code" href="namespacemesos_1_1internal_1_1protobuf_1_1master_1_1event.html#ad2a0a4314ebe887ce1ee3e7d52880169">createFrameworkUpdated</a>(</div>
+<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  <span class="keyword">const</span> <a class="code" href="structmesos_1_1internal_1_1master_1_1Framework.html">mesos::internal::master::Framework</a>& framework);</div>
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span> </div>
-<div class="line"><a name="l00332"></a><span class="lineno"> 332</span> <span class="comment">// Helper for creating an `Agent` response.</span></div>
-<div class="line"><a name="l00333"></a><span class="lineno"> 333</span> mesos::master::Response::GetAgents::Agent <a class="code" href="namespacemesos_1_1internal_1_1protobuf_1_1master_1_1event.html#ab86d482d83e4db8a81fabf703f35821e">createAgentResponse</a>(</div>
-<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>  <span class="keyword">const</span> <a class="code" href="structmesos_1_1internal_1_1master_1_1Slave.html">mesos::internal::master::Slave</a>& slave,</div>
-<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option</a><<a class="code" href="classprocess_1_1Owned.html">process::Owned<AuthorizationAcceptor></a>>& rolesAcceptor =</div>
-<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>  <a class="code" href="structNone.html">None</a>());</div>
-<div class="line"><a name="l00337"></a><span class="lineno"> 337</span> </div>
-<div class="line"><a name="l00338"></a><span class="lineno"> 338</span> </div>
-<div class="line"><a name="l00339"></a><span class="lineno"> 339</span> <span class="comment">// Helper for creating an `AGENT_ADDED` event from a `Slave`.</span></div>
-<div class="line"><a name="l00340"></a><span class="lineno"> 340</span> <a class="code" href="namespacemesos_1_1internal_1_1tests_1_1v1_1_1scheduler.html#acd3fa8addac36f513726743665631d79">mesos::master::Event</a> <a class="code" href="namespacemesos_1_1internal_1_1protobuf_1_1master_1_1event.html#aeb9968659f36fcbedba61c010305d252">createAgentAdded</a>(</div>
-<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>  <span class="keyword">const</span> <a class="code" href="structmesos_1_1internal_1_1master_1_1Slave.html">mesos::internal::master::Slave</a>& slave);</div>
+<div class="line"><a name="l00332"></a><span class="lineno"> 332</span> </div>
+<div class="line"><a name="l00333"></a><span class="lineno"> 333</span> <span class="comment">// Helper for creating a 'FRAMEWORK_REMOVED' event from a `FrameworkInfo`.</span></div>
+<div class="line"><a name="l00334"></a><span class="lineno"> 334</span> <a class="code" href="namespacemesos_1_1internal_1_1tests_1_1v1_1_1scheduler.html#acd3fa8addac36f513726743665631d79">mesos::master::Event</a> <a class="code" href="namespacemesos_1_1internal_1_1protobuf_1_1master_1_1event.html#abfb70e9c628c704e940554fd37917d0d">createFrameworkRemoved</a>(<span class="keyword">const</span> FrameworkInfo& frameworkInfo);</div>
+<div class="line"><a name="l00335"></a><span class="lineno"> 335</span> </div>
+<div class="line"><a name="l00336"></a><span class="lineno"> 336</span> </div>
+<div class="line"><a name="l00337"></a><span class="lineno"> 337</span> <span class="comment">// Helper for creating an `Agent` response.</span></div>
+<div class="line"><a name="l00338"></a><span class="lineno"> 338</span> mesos::master::Response::GetAgents::Agent <a class="code" href="namespacemesos_1_1internal_1_1protobuf_1_1master_1_1event.html#ab86d482d83e4db8a81fabf703f35821e">createAgentResponse</a>(</div>
+<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>  <span class="keyword">const</span> <a class="code" href="structmesos_1_1internal_1_1master_1_1Slave.html">mesos::internal::master::Slave</a>& slave,</div>
+<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option</a><<a class="code" href="classprocess_1_1Owned.html">process::Owned<AuthorizationAcceptor></a>>& rolesAcceptor =</div>
+<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>  <a class="code" href="structNone.html">None</a>());</div>
<div class="line"><a name="l00342"></a><span class="lineno"> 342</span> </div>
<div class="line"><a name="l00343"></a><span class="lineno"> 343</span> </div>
-<div class="line"><a name="l00344"></a><span class="lineno"> 344</span> <span class="comment">// Helper for creating an `AGENT_REMOVED` event from a `SlaveID`.</span></div>
-<div class="line"><a name="l00345"></a><span class="lineno"> 345</span> <a class="code" href="namespacemesos_1_1internal_1_1tests_1_1v1_1_1scheduler.html#acd3fa8addac36f513726743665631d79">mesos::master::Event</a> <a class="code" href="namespacemesos_1_1internal_1_1protobuf_1_1master_1_1event.html#ada82f1b351124b2e2ed859dabac94933">createAgentRemoved</a>(<span class="keyword">const</span> SlaveID& slaveId);</div>
-<div class="line"><a name="l00346"></a><span class="lineno"> 346</span> </div>
-<div class="line"><a name="l00347"></a><span class="lineno"> 347</span> } <span class="comment">// namespace event {</span></div>
-<div class="line"><a name="l00348"></a><span class="lineno"> 348</span> } <span class="comment">// namespace master {</span></div>
-<div class="line"><a name="l00349"></a><span class="lineno"> 349</span> </div>
-<div class="line"><a name="l00350"></a><span class="lineno"><a class="line" href="namespacemesos_1_1internal_1_1protobuf_1_1framework.html"> 350</a></span> <span class="keyword">namespace </span>framework {</div>
+<div class="line"><a name="l00344"></a><span class="lineno"> 344</span> <span class="comment">// Helper for creating an `AGENT_ADDED` event from a `Slave`.</span></div>
+<div class="line"><a name="l00345"></a><span class="lineno"> 345</span> <a class="code" href="namespacemesos_1_1internal_1_1tests_1_1v1_1_1scheduler.html#acd3fa8addac36f513726743665631d79">mesos::master::Event</a> <a class="code" href="namespacemesos_1_1internal_1_1protobuf_1_1master_1_1event.html#aeb9968659f36fcbedba61c010305d252">createAgentAdded</a>(</div>
+<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>  <span class="keyword">const</span> <a class="code" href="structmesos_1_1internal_1_1master_1_1Slave.html">mesos::internal::master::Slave</a>& slave);</div>
+<div class="line"><a name="l00347"></a><span class="lineno"> 347</span> </div>
+<div class="line"><a name="l00348"></a><span class="lineno"> 348</span> </div>
+<div class="line"><a name="l00349"></a><span class="lineno"> 349</span> <span class="comment">// Helper for creating an `AGENT_REMOVED` event from a `SlaveID`.</span></div>
+<div class="line"><a name="l00350"></a><span class="lineno"> 350</span> <a class="code" href="namespacemesos_1_1internal_1_1tests_1_1v1_1_1scheduler.html#acd3fa8addac36f513726743665631d79">mesos::master::Event</a> <a class="code" href="namespacemesos_1_1internal_1_1protobuf_1_1master_1_1event.html#ada82f1b351124b2e2ed859dabac94933">createAgentRemoved</a>(<span class="keyword">const</span> SlaveID& slaveId);</div>
<div class="line"><a name="l00351"></a><span class="lineno"> 351</span> </div>
-<div class="line"><a name="l00352"></a><span class="lineno"> 352</span> <span class="comment">// TODO(bmahler): Store the repeated field within this so that we</span></div>
-<div class="line"><a name="l00353"></a><span class="lineno"> 353</span> <span class="comment">// don't drop unknown capabilities.</span></div>
-<div class="line"><a name="l00354"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1protobuf_1_1framework_1_1Capabilities.html"> 354</a></span> <span class="keyword">struct </span><a class="code" href="structmesos_1_1internal_1_1protobuf_1_1framework_1_1Capabilities.html">Capabilities</a></div>
-<div class="line"><a name="l00355"></a><span class="lineno"> 355</span> {</div>
-<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  <a class="code" href="structmesos_1_1internal_1_1protobuf_1_1framework_1_1Capabilities.html#a1419488295b7be75f8a37067d4cb4a9c">Capabilities</a>() = <span class="keywordflow">default</span>;</div>
-<div class="line"><a name="l00357"></a><span class="lineno"> 357</span> </div>
-<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> Iterable></div>
-<div class="line"><a name="l00359"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1protobuf_1_1framework_1_1Capabilities.html#aad0128d18048818ccede75dbd3d3ad43"> 359</a></span>  <a class="code" href="structmesos_1_1internal_1_1protobuf_1_1framework_1_1Capabilities.html#aad0128d18048818ccede75dbd3d3ad43">Capabilities</a>(<span class="keyword">const</span> Iterable& capabilities)</div>
-<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  {</div>
-<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>  <span class="keywordflow">foreach</span> (<span class="keyword">const</span> <a class="code" href="namespacemesos_1_1internal_1_1capabilities.html#abf44ee3490d4ec99e8549060bb8c9f58">FrameworkInfo::Capability</a>& capability, capabilities) {</div>
-<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>  <span class="keywordflow">switch</span> (capability.type()) {</div>
-<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>  <span class="keywordflow">case</span> <a class="code" href="namespacerouting_1_1diagnosis_1_1socket_1_1state.html#a4cceb5a8a4b3f5e1323fdf4a14c5d2a6">FrameworkInfo::Capability::UNKNOWN</a>:</div>
-<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>  <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>  <span class="keywordflow">case</span> FrameworkInfo::Capability::REVOCABLE_RESOURCES:</div>
-<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>  <a class="code" href="structmesos_1_1internal_1_1protobuf_1_1framework_1_1Capabilities.html#a9a94be1c011c55b0ed30eca00b52cfb9">revocableResources</a> = <span class="keyword">true</span>;</div>
-<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>  <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>  <span class="keywordflow">case</span> FrameworkInfo::Capability::TASK_KILLING_STATE:</div>
-<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  <a class="code" href="structmesos_1_1internal_1_1protobuf_1_1framework_1_1Capabilities.html#a3b40f0ffb725e3a1d8ebe92ca3574da8">taskKillingState</a> = <span class="keyword">true</span>;</div>
-<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>  <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>  <span class="keywordflow">case</span> FrameworkInfo::Capability::GPU_RESOURCES:</div>
-<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>  <a class="code" href="structmesos_1_1internal_1_1protobuf_1_1framework_1_1Capabilities.html#a6940917a2f1d687602cbf6437da4e532">gpuResources</a> = <span class="keyword">true</span>;</div>
-<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>  <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>  <span class="keywordflow">case</span> FrameworkInfo::Capability::SHARED_RESOURCES:</div>
-<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>  <a class="code" href="structmesos_1_1internal_1_1protobuf_1_1framework_1_1Capabilities.html#a5e08482b78a570f4ea9ac0105da9ba3b">sharedResources</a> = <span class="keyword">true</span>;</div>
-<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>  <span class="keywordflow">case</span> FrameworkInfo::Capability::PARTITION_AWARE:</div>
-<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  <a class="code" href="structmesos_1_1internal_1_1protobuf_1_1framework_1_1Capabilities.html#a639eef6e6f88e44c76da56fd8919dc09">partitionAware</a> = <span class="keyword">true</span>;</div>
-<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>  <span class="keywordflow">case</span> FrameworkInfo::Capability::MULTI_ROLE:</div>
-<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>  <a class="code" href="structmesos_1_1internal_1_1protobuf_1_1framework_1_1Capabilities.html#a134591f666f03cb9d0e9a13f5a72592b">multiRole</a> = <span class="keyword">true</span>;</div>
-<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>  <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>  <span class="keywordflow">case</span> FrameworkInfo::Capability::RESERVATION_REFINEMENT:</div>
-<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>  <a class="code" href="structmesos_1_1internal_1_1protobuf_1_1framework_1_1Capabilities.html#adc73ff01a1f99456add6a59426bf65e5">reservationRefinement</a> = <span class="keyword">true</span>;</div>
-<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>  <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>  <span class="keywordflow">case</span> FrameworkInfo::Capability::REGION_AWARE:</div>
-<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>  <a class="code" href="structmesos_1_1internal_1_1protobuf_1_1framework_1_1Capabilities.html#aef5088e1b5fb2b16fdd9adf0a12f6c99">regionAware</a> = <span class="keyword">true</span>;</div>
-<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  }</div>
-<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  }</div>
-<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>  }</div>
-<div class="line"><a name="l00392"></a><span class="lineno"> 392</span> </div>
-<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>  <span class="comment">// See mesos.proto for the meaning of these capabilities.</span></div>
-<div class="line"><a name="l00394"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1protobuf_1_1framework_1_1Capabilities.html#a9a94be1c011c55b0ed30eca00b52cfb9"> 394</a></span>  <span class="keywordtype">bool</span> <a class="code" href="structmesos_1_1internal_1_1protobuf_1_1framework_1_1Capabilities.html#a9a94be1c011c55b0ed30eca00b52cfb9">revocableResources</a> = <span class="keyword">false</span>;</div>
-<div class="line"><a name="l00395"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1protobuf_1_1framework_1_1Capabilities.html#a3b40f0ffb725e3a1d8ebe92ca3574da8"> 395</a></span>  <span class="keywordtype">bool</span> <a class="code" href="structmesos_1_1internal_1_1protobuf_1_1framework_1_1Capabilities.html#a3b40f0ffb725e3a1d8ebe92ca3574da8">taskKillingState</a> = <span class="keyword">false</span>;</div>
-<div class="line"><a name="l00396"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1protobuf_1_1framework_1_1Capabilities.html#a6940917a2f1d687602cbf6437da4e532"> 396</a></span>  <span class="keywordtype">bool</span> <a class="code" href="structmesos_1_1internal_1_1protobuf_1_1framework_1_1Capabilities.html#a6940917a2f1d687602cbf6437da4e532">gpuResources</a> = <span class="keyword">false</span>;</div>
-<div class="line"><a name="l00397"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1protobuf_1_1framework_1_1Capabilities.html#a5e08482b78a570f4ea9ac0105da9ba3b"> 397</a></span>  <span class="keywordtype">bool</span> <a class="code" href="structmesos_1_1internal_1_1protobuf_1_1framework_1_1Capabilities.html#a5e08482b78a570f4ea9ac0105da9ba3b">sharedResources</a> = <span class="keyword">false</span>;</div>
-<div class="line"><a name="l00398"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1protobuf_1_1framework_1_1Capabilities.html#a639eef6e6f88e44c76da56fd8919dc09"> 398</a></span>  <span class="keywordtype">bool</span> <a class="code" href="structmesos_1_1internal_1_1protobuf_1_1framework_1_1Capabilities.html#a639eef6e6f88e44c76da56fd8919dc09">partitionAware</a> = <span class="keyword">false</span>;</div>
-<div class="line"><a name="l00399"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1protobuf_1_1framework_1_1Capabilities.html#a134591f666f03cb9d0e9a13f5a72592b"> 399</a></span>  <span class="keywordtype">bool</span> <a class="code" href="structmesos_1_1internal_1_1protobuf_1_1framework_1_1Capabilities.html#a134591f666f03cb9d0e9a13f5a72592b">multiRole</a> = <span class="keyword">false</span>;</div>
-<div class="line"><a name="l00400"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1protobuf_1_1framework_1_1Capabilities.html#adc73ff01a1f99456add6a59426bf65e5"> 400</a></span>  <span class="keywordtype">bool</span> <a class="code" href="structmesos_1_1internal_1_1protobuf_1_1framework_1_1Capabilities.html#adc73ff01a1f99456add6a59426bf65e5">reservationRefinement</a> = <span class="keyword">false</span>;</div>
-<div class="line"><a name="l00401"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1protobuf_1_1framework_1_1Capabilities.html#aef5088e1b5fb2b16fdd9adf0a12f6c99"> 401</a></span>  <span class="keywordtype">bool</span> <a class="code" href="structmesos_1_1internal_1_1protobuf_1_1framework_1_1Capabilities.html#aef5088e1b5fb2b16fdd9adf0a12f6c99">regionAware</a> = <span class="keyword">false</span>;</div>
-<div class="line"><a name="l00402"></a><span class="lineno"> 402</span> };</div>
-<div class="line"><a name="l00403"></a><span class="lineno"> 403</span> </div>
-<div class="line"><a name="l00404"></a><span class="lineno"> 404</span> </div>
-<div class="line"><a name="l00405"></a><span class="lineno"> 405</span> <span class="comment">// Helper to get roles from FrameworkInfo based on the</span></div>
-<div class="line"><a name="l00406"></a><span class="lineno"> 406</span> <span class="comment">// presence of the MULTI_ROLE capability.</span></div>
-<div class="line"><a name="l00407"></a><span class="lineno"> 407</span> std::set<std::string> <a class="code" href="namespacemesos_1_1internal_1_1protobuf_1_1framework.html#a34d007aecebcd1c9dbd3ee0ad1d39155">getRoles</a>(<span class="keyword">const</span> FrameworkInfo& frameworkInfo);</div>
+<div class="line"><a name="l00352"></a><span class="lineno"> 352</span> } <span class="comment">// namespace event {</span></div>
+<div class="line"><a name="l00353"></a><span class="lineno"> 353</span> } <span class="comment">// namespace master {</span></div>
+<div class="line"><a name="l00354"></a><span class="lineno"> 354</span> </div>
+<div class="line"><a name="l00355"></a><span class="lineno"><a class="line" href="namespacemesos_1_1internal_1_1protobuf_1_1framework.html"> 355</a></span> <span class="keyword">namespace </span>framework {</div>
+<div class="line"><a name="l00356"></a><span class="lineno"> 356</span> </div>
+<div class="line"><a name="l00357"></a><span class="lineno"> 357</span> <span class="comment">// TODO(bmahler): Store the repeated field within this so that we</span></div>
+<div class="line"><a name="l00358"></a><span class="lineno"> 358</span> <span class="comment">// don't drop unknown capabilities.</span></div>
+<div class="line"><a name="l00359"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1protobuf_1_1framework_1_1Capabilities.html"> 359</a></span> <span class="keyword">struct </span><a class="code" href="structmesos_1_1internal_1_1protobuf_1_1framework_1_1Capabilities.html">Capabilities</a></div>
+<div class="line"><a name="l00360"></a><span class="lineno"> 360</span> {</div>
+<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>  <a class="code" href="structmesos_1_1internal_1_1protobuf_1_1framework_1_1Capabilities.html#a1419488295b7be75f8a37067d4cb4a9c">Capabilities</a>() = <span class="keywordflow">default</span>;</div>
+<div class="line"><a name="l00362"></a><span class="lineno"> 362</span> </div>
+<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> Iterable></div>
+<div class="line"><a name="l00364"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1protobuf_1_1framework_1_1Capabilities.html#aad0128d18048818ccede75dbd3d3ad43"> 364</a></span>  <a class="code" href="structmesos_1_1internal_1_1protobuf_1_1framework_1_1Capabilities.html#aad0128d18048818ccede75dbd3d3ad43">Capabilities</a>(<span class="keyword">const</span> Iterable& capabilities)</div>
+<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>  {</div>
+<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>  <span class="keywordflow">foreach</span> (<span class="keyword">const</span> <a class="code" href="namespacemesos_1_1internal_1_1capabilities.html#abf44ee3490d4ec99e8549060bb8c9f58">FrameworkInfo::Capability</a>& capability, capabilities) {</div>
+<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>  <span class="keywordflow">switch</span> (capability.type()) {</div>
+<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>  <span class="keywordflow">case</span> <a class="code" href="namespacerouting_1_1diagnosis_1_1socket_1_1state.html#a4cceb5a8a4b3f5e1323fdf4a14c5d2a6">FrameworkInfo::Capability::UNKNOWN</a>:</div>
+<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>  <span class="keywordflow">case</span> FrameworkInfo::Capability::REVOCABLE_RESOURCES:</div>
+<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>  <a class="code" href="structmesos_1_1internal_1_1protobuf_1_1framework_1_1Capabilities.html#a9a94be1c011c55b0ed30eca00b52cfb9">revocableResources</a> = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>  <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>  <span class="keywordflow">case</span> FrameworkInfo::Capability::TASK_KILLING_STATE:</div>
+<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>  <a class="code" href="structmesos_1_1internal_1_1protobuf_1_1framework_1_1Capabilities.html#a3b40f0ffb725e3a1d8ebe92ca3574da8">taskKillingState</a> = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>  <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  <span class="keywordflow">case</span> FrameworkInfo::Capability::GPU_RESOURCES:</div>
+<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>  <a class="code" href="structmesos_1_1internal_1_1protobuf_1_1framework_1_1Capabilities.html#a6940917a2f1d687602cbf6437da4e532">gpuResources</a> = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  <span class="keywordflow">case</span> FrameworkInfo::Capability::SHARED_RESOURCES:</div>
+<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>  <a class="code" href="structmesos_1_1internal_1_1protobuf_1_1framework_1_1Capabilities.html#a5e08482b78a570f4ea9ac0105da9ba3b">sharedResources</a> = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>  <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>  <span class="keywordflow">case</span> FrameworkInfo::Capability::PARTITION_AWARE:</div>
+<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>  <a class="code" href="structmesos_1_1internal_1_1protobuf_1_1framework_1_1Capabilities.html#a639eef6e6f88e44c76da56fd8919dc09">partitionAware</a> = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>  <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>  <span class="keywordflow">case</span> FrameworkInfo::Capability::MULTI_ROLE:</div>
+<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>  <a class="code" href="structmesos_1_1internal_1_1protobuf_1_1framework_1_1Capabilities.html#a134591f666f03cb9d0e9a13f5a72592b">multiRole</a> = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>  <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  <span class="keywordflow">case</span> FrameworkInfo::Capability::RESERVATION_REFINEMENT:</div>
+<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  <a class="code" href="structmesos_1_1internal_1_1protobuf_1_1framework_1_1Capabilities.html#adc73ff01a1f99456add6a59426bf65e5">reservationRefinement</a> = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>  <span class="keywordflow">case</span> FrameworkInfo::Capability::REGION_AWARE:</div>
+<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>  <a class="code" href="structmesos_1_1internal_1_1protobuf_1_1framework_1_1Capabilities.html#aef5088e1b5fb2b16fdd9adf0a12f6c99">regionAware</a> = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>  <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>  }</div>
+<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>  }</div>
+<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>  }</div>
+<div class="line"><a name="l00397"></a><span class="lineno"> 397</span> </div>
+<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>  <span class="comment">// See mesos.proto for the meaning of these capabilities.</span></div>
+<div class="line"><a name="l00399"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1protobuf_1_1framework_1_1Capabilities.html#a9a94be1c011c55b0ed30eca00b52cfb9"> 399</a></span>  <span class="keywordtype">bool</span> <a class="code" href="structmesos_1_1internal_1_1protobuf_1_1framework_1_1Capabilities.html#a9a94be1c011c55b0ed30eca00b52cfb9">revocableResources</a> = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00400"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1protobuf_1_1framework_1_1Capabilities.html#a3b40f0ffb725e3a1d8ebe92ca3574da8"> 400</a></span>  <span class="keywordtype">bool</span> <a class="code" href="structmesos_1_1internal_1_1protobuf_1_1framework_1_1Capabilities.html#a3b40f0ffb725e3a1d8ebe92ca3574da8">taskKillingState</a> = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00401"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1protobuf_1_1framework_1_1Capabilities.html#a6940917a2f1d687602cbf6437da4e532"> 401</a></span>  <span class="keywordtype">bool</span> <a class="code" href="structmesos_1_1internal_1_1protobuf_1_1framework_1_1Capabilities.html#a6940917a2f1d687602cbf6437da4e532">gpuResources</a> = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00402"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1protobuf_1_1framework_1_1Capabilities.html#a5e08482b78a570f4ea9ac0105da9ba3b"> 402</a></span>  <span class="keywordtype">bool</span> <a class="code" href="structmesos_1_1internal_1_1protobuf_1_1framework_1_1Capabilities.html#a5e08482b78a570f4ea9ac0105da9ba3b">sharedResources</a> = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00403"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1protobuf_1_1framework_1_1Capabilities.html#a639eef6e6f88e44c76da56fd8919dc09"> 403</a></span>  <span class="keywordtype">bool</span> <a class="code" href="structmesos_1_1internal_1_1protobuf_1_1framework_1_1Capabilities.html#a639eef6e6f88e44c76da56fd8919dc09">partitionAware</a> = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00404"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1protobuf_1_1framework_1_1Capabilities.html#a134591f666f03cb9d0e9a13f5a72592b"> 404</a></span>  <span class="keywordtype">bool</span> <a class="code" href="structmesos_1_1internal_1_1protobuf_1_1framework_1_1Capabili
<TRUNCATED>