You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by gi...@apache.org on 2018/01/12 20:33:33 UTC
[2/5] mesos-site git commit: Updated the website built from mesos
SHA: 49f4b2a.
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/448b5a48/content/api/latest/c++/resources_8hpp_source.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/resources_8hpp_source.html b/content/api/latest/c++/resources_8hpp_source.html
index dc021b2..7a91281 100644
--- a/content/api/latest/c++/resources_8hpp_source.html
+++ b/content/api/latest/c++/resources_8hpp_source.html
@@ -443,241 +443,246 @@
<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>  <span class="comment">// Error if the conversion cannot be applied.</span></div>
<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>  <a class="code" href="classTry.html">Try<Resources></a> <a class="code" href="classmesos_1_1Resources.html#acebab4e58f4f5073389a5e077e72fece">apply</a>(<span class="keyword">const</span> <a class="code" href="classmesos_1_1ResourceConversion.html">ResourceConversion</a>& conversion) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00494"></a><span class="lineno"> 494</span> </div>
-<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>  <span class="comment">// Obtains the conversion from the given operation and applies the</span></div>
-<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>  <span class="comment">// conversion. This method serves a syntax sugar for applying a</span></div>
-<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>  <span class="comment">// resource conversion.</span></div>
-<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>  <span class="comment">// TODO(jieyu): Consider remove this method once we updated all the</span></div>
-<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>  <span class="comment">// call sites.</span></div>
-<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>  <a class="code" href="classTry.html">Try<Resources></a> <a class="code" href="classmesos_1_1Resources.html#acebab4e58f4f5073389a5e077e72fece">apply</a>(<span class="keyword">const</span> <a class="code" href="namespacecgroups_1_1blkio.html#a350b1eb57318afaea7700ab7786b55ef">Offer::Operation</a>& operation) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00501"></a><span class="lineno"> 501</span> </div>
-<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> Iterable></div>
-<div class="line"><a name="l00503"></a><span class="lineno"><a class="line" href="classmesos_1_1Resources.html#aa0307172aed9f2a8bf5ab9852808074b"> 503</a></span>  <a class="code" href="classTry.html">Try<Resources></a> <a class="code" href="classmesos_1_1Resources.html#aa0307172aed9f2a8bf5ab9852808074b">apply</a>(<span class="keyword">const</span> Iterable& iterable)<span class="keyword"> const</span></div>
-<div class="line"><a name="l00504"></a><span class="lineno"> 504</span> <span class="keyword"> </span>{</div>
-<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>  <a class="code" href="classmesos_1_1Resources.html">Resources</a> result = *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>  <span class="comment">// Finds a resource object with the same metadata (i.e. AllocationInfo,</span></div>
+<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>  <span class="comment">// ReservationInfo, etc.) as the given one, ignoring the actual value.</span></div>
+<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>  <span class="comment">// If multiple matching resources exist, the first match is returned.</span></div>
+<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>  <a class="code" href="classOption.html">Option<Resource></a> <a class="code" href="classmesos_1_1Resources.html#a0fd76eaac0f68b60671099fedf7ba27c">match</a>(<span class="keyword">const</span> Resource& resource) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00499"></a><span class="lineno"> 499</span> </div>
+<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>  <span class="comment">// Obtains the conversion from the given operation and applies the</span></div>
+<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>  <span class="comment">// conversion. This method serves a syntax sugar for applying a</span></div>
+<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>  <span class="comment">// resource conversion.</span></div>
+<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>  <span class="comment">// TODO(jieyu): Consider remove this method once we updated all the</span></div>
+<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>  <span class="comment">// call sites.</span></div>
+<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>  <a class="code" href="classTry.html">Try<Resources></a> <a class="code" href="classmesos_1_1Resources.html#acebab4e58f4f5073389a5e077e72fece">apply</a>(<span class="keyword">const</span> <a class="code" href="namespacecgroups_1_1blkio.html#a350b1eb57318afaea7700ab7786b55ef">Offer::Operation</a>& operation) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00506"></a><span class="lineno"> 506</span> </div>
-<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>  <span class="keywordflow">foreach</span> (<span class="keyword">const</span> <span class="keyword">auto</span>& t, iterable) {</div>
-<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>  <a class="code" href="classTry.html">Try<Resources></a> converted = result.<a class="code" href="classmesos_1_1Resources.html#acebab4e58f4f5073389a5e077e72fece">apply</a>(t);</div>
-<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>  <span class="keywordflow">if</span> (converted.<a class="code" href="classTry.html#a0b98f95163b8a38daafd1651b043a276">isError</a>()) {</div>
-<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>  <span class="keywordflow">return</span> <a class="code" href="classError.html">Error</a>(converted.<a class="code" href="classTry.html#aec4a11ddd3c036e889d90b7eb6258ba7">error</a>());</div>
-<div class="line"><a name="l00511"></a><span class="lineno"> 511</span>  }</div>
-<div class="line"><a name="l00512"></a><span class="lineno"> 512</span> </div>
-<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>  result = converted.<a class="code" href="classTry.html#a7be0768038e0628632492edf6cc1515a">get</a>();</div>
-<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>  }</div>
-<div class="line"><a name="l00515"></a><span class="lineno"> 515</span> </div>
-<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>  <span class="keywordflow">return</span> result;</div>
-<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>  }</div>
-<div class="line"><a name="l00518"></a><span class="lineno"> 518</span> </div>
-<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>  <span class="comment">// Helpers to get resource values. We consider all roles here.</span></div>
-<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
-<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>  <a class="code" href="classOption.html">Option<T></a> <span class="keyword">get</span>(<span class="keyword">const</span> std::string& <a class="code" href="namespaceos_1_1Shell.html#acfe16ef2b1146ad49a8651c0a457ce46">name</a>) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00522"></a><span class="lineno"> 522</span> </div>
-<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>  <span class="comment">// Get resources of the given name.</span></div>
-<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>  <a class="code" href="classmesos_1_1Resources.html">Resources</a> <span class="keyword">get</span>(<span class="keyword">const</span> std::string& <a class="code" href="namespaceos_1_1Shell.html#acfe16ef2b1146ad49a8651c0a457ce46">name</a>) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00525"></a><span class="lineno"> 525</span> </div>
-<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>  <span class="comment">// Get all the resources that are scalars.</span></div>
-<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>  <a class="code" href="classmesos_1_1Resources.html">Resources</a> <a class="code" href="classmesos_1_1Resources.html#a19c38bf426688c0fb1fcc5552b29a729">scalars</a>() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00528"></a><span class="lineno"> 528</span> </div>
-<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>  <span class="comment">// Get the set of unique resource names.</span></div>
-<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>  std::set<std::string> <a class="code" href="classmesos_1_1Resources.html#a376ffdcf83696b9a957b8a24ce596649">names</a>() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00531"></a><span class="lineno"> 531</span> </div>
-<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>  <span class="comment">// Get the types of resources associated with each resource name.</span></div>
-<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>  <span class="comment">// NOTE: Resources of the same name must have the same type, as</span></div>
-<div class="line"><a name="l00534"></a><span class="lineno"> 534</span>  <span class="comment">// enforced by Resources::parse().</span></div>
-<div class="line"><a name="l00535"></a><span class="lineno"> 535</span>  std::map<std::string, Value_Type> <a class="code" href="classmesos_1_1Resources.html#a6c4d4a889c254fb4241644c6557d511e">types</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> Iterable></div>
+<div class="line"><a name="l00508"></a><span class="lineno"><a class="line" href="classmesos_1_1Resources.html#aa0307172aed9f2a8bf5ab9852808074b"> 508</a></span>  <a class="code" href="classTry.html">Try<Resources></a> <a class="code" href="classmesos_1_1Resources.html#aa0307172aed9f2a8bf5ab9852808074b">apply</a>(<span class="keyword">const</span> Iterable& iterable)<span class="keyword"> const</span></div>
+<div class="line"><a name="l00509"></a><span class="lineno"> 509</span> <span class="keyword"> </span>{</div>
+<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>  <a class="code" href="classmesos_1_1Resources.html">Resources</a> result = *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00511"></a><span class="lineno"> 511</span> </div>
+<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>  <span class="keywordflow">foreach</span> (<span class="keyword">const</span> <span class="keyword">auto</span>& t, iterable) {</div>
+<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>  <a class="code" href="classTry.html">Try<Resources></a> converted = result.<a class="code" href="classmesos_1_1Resources.html#acebab4e58f4f5073389a5e077e72fece">apply</a>(t);</div>
+<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>  <span class="keywordflow">if</span> (converted.<a class="code" href="classTry.html#a0b98f95163b8a38daafd1651b043a276">isError</a>()) {</div>
+<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>  <span class="keywordflow">return</span> <a class="code" href="classError.html">Error</a>(converted.<a class="code" href="classTry.html#aec4a11ddd3c036e889d90b7eb6258ba7">error</a>());</div>
+<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>  }</div>
+<div class="line"><a name="l00517"></a><span class="lineno"> 517</span> </div>
+<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>  result = converted.<a class="code" href="classTry.html#a7be0768038e0628632492edf6cc1515a">get</a>();</div>
+<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>  }</div>
+<div class="line"><a name="l00520"></a><span class="lineno"> 520</span> </div>
+<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>  <span class="keywordflow">return</span> result;</div>
+<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>  }</div>
+<div class="line"><a name="l00523"></a><span class="lineno"> 523</span> </div>
+<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>  <span class="comment">// Helpers to get resource values. We consider all roles here.</span></div>
+<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>  <a class="code" href="classOption.html">Option<T></a> <span class="keyword">get</span>(<span class="keyword">const</span> std::string& <a class="code" href="namespaceos_1_1Shell.html#acfe16ef2b1146ad49a8651c0a457ce46">name</a>) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00527"></a><span class="lineno"> 527</span> </div>
+<div class="line"><a name="l00528"></a><span class="lineno"> 528</span>  <span class="comment">// Get resources of the given name.</span></div>
+<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>  <a class="code" href="classmesos_1_1Resources.html">Resources</a> <span class="keyword">get</span>(<span class="keyword">const</span> std::string& <a class="code" href="namespaceos_1_1Shell.html#acfe16ef2b1146ad49a8651c0a457ce46">name</a>) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00530"></a><span class="lineno"> 530</span> </div>
+<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>  <span class="comment">// Get all the resources that are scalars.</span></div>
+<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>  <a class="code" href="classmesos_1_1Resources.html">Resources</a> <a class="code" href="classmesos_1_1Resources.html#a19c38bf426688c0fb1fcc5552b29a729">scalars</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00533"></a><span class="lineno"> 533</span> </div>
+<div class="line"><a name="l00534"></a><span class="lineno"> 534</span>  <span class="comment">// Get the set of unique resource names.</span></div>
+<div class="line"><a name="l00535"></a><span class="lineno"> 535</span>  std::set<std::string> <a class="code" href="classmesos_1_1Resources.html#a376ffdcf83696b9a957b8a24ce596649">names</a>() <span class="keyword">const</span>;</div>
<div class="line"><a name="l00536"></a><span class="lineno"> 536</span> </div>
-<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>  <span class="comment">// Helpers to get known resource types.</span></div>
-<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>  <span class="comment">// TODO(vinod): Fix this when we make these types as first class</span></div>
-<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>  <span class="comment">// protobufs.</span></div>
-<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>  <a class="code" href="classOption.html">Option<double></a> <a class="code" href="classmesos_1_1Resources.html#a127e7442993f5b86d03625c4ab1e8271">cpus</a>() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>  <a class="code" href="classOption.html">Option<double></a> <a class="code" href="classmesos_1_1Resources.html#ab7efb90fdd329ee238af86013584480d">gpus</a>() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>  <a class="code" href="classOption.html">Option<Bytes></a> <a class="code" href="classmesos_1_1Resources.html#afdf2dfb4dd2c53acf5cd96bb6f02140c">mem</a>() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>  <a class="code" href="classOption.html">Option<Bytes></a> <a class="code" href="classmesos_1_1Resources.html#a25edbf9ca3dc21aec283b25e48308794">disk</a>() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00544"></a><span class="lineno"> 544</span> </div>
-<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>  <span class="comment">// TODO(vinod): Provide a Ranges abstraction.</span></div>
-<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>  <a class="code" href="classOption.html">Option<Value::Ranges></a> <a class="code" href="classmesos_1_1Resources.html#af9c888191c3f7408ab11bb064e881507">ports</a>() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00547"></a><span class="lineno"> 547</span> </div>
-<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>  <span class="comment">// TODO(jieyu): Consider returning an EphemeralPorts abstraction</span></div>
-<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>  <span class="comment">// which holds the ephemeral ports allocation logic.</span></div>
-<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>  <a class="code" href="classOption.html">Option<Value::Ranges></a> <a class="code" href="classmesos_1_1Resources.html#a88a531c0e331b9a6b26ab5cedd2c87d2">ephemeral_ports</a>() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00551"></a><span class="lineno"> 551</span> </div>
-<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>  <span class="comment">// NOTE: Non-`const` `iterator`, `begin()` and `end()` are __intentionally__</span></div>
-<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>  <span class="comment">// defined with `const` semantics in order to prevent mutable access to the</span></div>
-<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>  <span class="comment">// `Resource` objects within `resources`.</span></div>
-<div class="line"><a name="l00555"></a><span class="lineno"><a class="line" href="classmesos_1_1Resources.html#a2f4bcc0de9f40c0c947d355213aaac95"> 555</a></span>  <span class="keyword">typedef</span> std::vector<Resource_>::const_iterator <a class="code" href="classmesos_1_1Resources.html#a2f4bcc0de9f40c0c947d355213aaac95">iterator</a>;</div>
-<div class="line"><a name="l00556"></a><span class="lineno"><a class="line" href="classmesos_1_1Resources.html#aead097c9cbf735bed75199745625d768"> 556</a></span>  <span class="keyword">typedef</span> std::vector<Resource_>::const_iterator <a class="code" href="classmesos_1_1Resources.html#aead097c9cbf735bed75199745625d768">const_iterator</a>;</div>
-<div class="line"><a name="l00557"></a><span class="lineno"> 557</span> </div>
-<div class="line"><a name="l00558"></a><span class="lineno"><a class="line" href="classmesos_1_1Resources.html#a62a685bb22d0916e15e019602a36659f"> 558</a></span>  <a class="code" href="classmesos_1_1Resources.html#aead097c9cbf735bed75199745625d768">const_iterator</a> <a class="code" href="classmesos_1_1Resources.html#a62a685bb22d0916e15e019602a36659f">begin</a>()</div>
-<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>  {</div>
-<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>  <span class="keywordflow">return</span> <span class="keyword">static_cast<</span><span class="keyword">const </span>std::vector<Resource_>&<span class="keyword">></span>(resources).<a class="code" href="classmesos_1_1Resources.html#a62a685bb22d0916e15e019602a36659f">begin</a>();</div>
-<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>  }</div>
+<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>  <span class="comment">// Get the types of resources associated with each resource name.</span></div>
+<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>  <span class="comment">// NOTE: Resources of the same name must have the same type, as</span></div>
+<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>  <span class="comment">// enforced by Resources::parse().</span></div>
+<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>  std::map<std::string, Value_Type> <a class="code" href="classmesos_1_1Resources.html#a6c4d4a889c254fb4241644c6557d511e">types</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00541"></a><span class="lineno"> 541</span> </div>
+<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>  <span class="comment">// Helpers to get known resource types.</span></div>
+<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>  <span class="comment">// TODO(vinod): Fix this when we make these types as first class</span></div>
+<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>  <span class="comment">// protobufs.</span></div>
+<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>  <a class="code" href="classOption.html">Option<double></a> <a class="code" href="classmesos_1_1Resources.html#a127e7442993f5b86d03625c4ab1e8271">cpus</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>  <a class="code" href="classOption.html">Option<double></a> <a class="code" href="classmesos_1_1Resources.html#ab7efb90fdd329ee238af86013584480d">gpus</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>  <a class="code" href="classOption.html">Option<Bytes></a> <a class="code" href="classmesos_1_1Resources.html#afdf2dfb4dd2c53acf5cd96bb6f02140c">mem</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>  <a class="code" href="classOption.html">Option<Bytes></a> <a class="code" href="classmesos_1_1Resources.html#a25edbf9ca3dc21aec283b25e48308794">disk</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00549"></a><span class="lineno"> 549</span> </div>
+<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>  <span class="comment">// TODO(vinod): Provide a Ranges abstraction.</span></div>
+<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>  <a class="code" href="classOption.html">Option<Value::Ranges></a> <a class="code" href="classmesos_1_1Resources.html#af9c888191c3f7408ab11bb064e881507">ports</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00552"></a><span class="lineno"> 552</span> </div>
+<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>  <span class="comment">// TODO(jieyu): Consider returning an EphemeralPorts abstraction</span></div>
+<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>  <span class="comment">// which holds the ephemeral ports allocation logic.</span></div>
+<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>  <a class="code" href="classOption.html">Option<Value::Ranges></a> <a class="code" href="classmesos_1_1Resources.html#a88a531c0e331b9a6b26ab5cedd2c87d2">ephemeral_ports</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00556"></a><span class="lineno"> 556</span> </div>
+<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>  <span class="comment">// NOTE: Non-`const` `iterator`, `begin()` and `end()` are __intentionally__</span></div>
+<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>  <span class="comment">// defined with `const` semantics in order to prevent mutable access to the</span></div>
+<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>  <span class="comment">// `Resource` objects within `resources`.</span></div>
+<div class="line"><a name="l00560"></a><span class="lineno"><a class="line" href="classmesos_1_1Resources.html#a2f4bcc0de9f40c0c947d355213aaac95"> 560</a></span>  <span class="keyword">typedef</span> std::vector<Resource_>::const_iterator <a class="code" href="classmesos_1_1Resources.html#a2f4bcc0de9f40c0c947d355213aaac95">iterator</a>;</div>
+<div class="line"><a name="l00561"></a><span class="lineno"><a class="line" href="classmesos_1_1Resources.html#aead097c9cbf735bed75199745625d768"> 561</a></span>  <span class="keyword">typedef</span> std::vector<Resource_>::const_iterator <a class="code" href="classmesos_1_1Resources.html#aead097c9cbf735bed75199745625d768">const_iterator</a>;</div>
<div class="line"><a name="l00562"></a><span class="lineno"> 562</span> </div>
-<div class="line"><a name="l00563"></a><span class="lineno"><a class="line" href="classmesos_1_1Resources.html#a07ff5813b931a26510a3343cb0c988e1"> 563</a></span>  <a class="code" href="classmesos_1_1Resources.html#aead097c9cbf735bed75199745625d768">const_iterator</a> <a class="code" href="classmesos_1_1Resources.html#a07ff5813b931a26510a3343cb0c988e1">end</a>()</div>
+<div class="line"><a name="l00563"></a><span class="lineno"><a class="line" href="classmesos_1_1Resources.html#a62a685bb22d0916e15e019602a36659f"> 563</a></span>  <a class="code" href="classmesos_1_1Resources.html#aead097c9cbf735bed75199745625d768">const_iterator</a> <a class="code" href="classmesos_1_1Resources.html#a62a685bb22d0916e15e019602a36659f">begin</a>()</div>
<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>  {</div>
-<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>  <span class="keywordflow">return</span> <span class="keyword">static_cast<</span><span class="keyword">const </span>std::vector<Resource_>&<span class="keyword">></span>(resources).<a class="code" href="classmesos_1_1Resources.html#a07ff5813b931a26510a3343cb0c988e1">end</a>();</div>
+<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>  <span class="keywordflow">return</span> <span class="keyword">static_cast<</span><span class="keyword">const </span>std::vector<Resource_>&<span class="keyword">></span>(resources).<a class="code" href="classmesos_1_1Resources.html#a62a685bb22d0916e15e019602a36659f">begin</a>();</div>
<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>  }</div>
<div class="line"><a name="l00567"></a><span class="lineno"> 567</span> </div>
-<div class="line"><a name="l00568"></a><span class="lineno"><a class="line" href="classmesos_1_1Resources.html#ae66c01db87b2a42cfee3e77c20687d56"> 568</a></span>  <a class="code" href="classmesos_1_1Resources.html#aead097c9cbf735bed75199745625d768">const_iterator</a> <a class="code" href="classmesos_1_1Resources.html#ae66c01db87b2a42cfee3e77c20687d56">begin</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> resources.begin(); }</div>
-<div class="line"><a name="l00569"></a><span class="lineno"><a class="line" href="classmesos_1_1Resources.html#a09242ab54ec91f74c67b67c7ab44036f"> 569</a></span>  <a class="code" href="classmesos_1_1Resources.html#aead097c9cbf735bed75199745625d768">const_iterator</a> <a class="code" href="classmesos_1_1Resources.html#a09242ab54ec91f74c67b67c7ab44036f">end</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> resources.end(); }</div>
-<div class="line"><a name="l00570"></a><span class="lineno"> 570</span> </div>
-<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>  <span class="comment">// Using this operator makes it easy to copy a resources object into</span></div>
-<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>  <span class="comment">// a protocol buffer field.</span></div>
-<div class="line"><a name="l00573"></a><span class="lineno"> 573</span>  <span class="comment">// Note that the google::protobuf::RepeatedPtrField<Resource> is</span></div>
-<div class="line"><a name="l00574"></a><span class="lineno"> 574</span>  <span class="comment">// generated at runtime.</span></div>
-<div class="line"><a name="l00575"></a><span class="lineno"> 575</span>  <span class="keyword">operator</span> google::protobuf::RepeatedPtrField<Resource>() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00576"></a><span class="lineno"> 576</span> </div>
-<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>  <span class="keywordtype">bool</span> <a class="code" href="classmesos_1_1Resources.html#ab5afedf0ab457c9298c251ca1ad0ce20">operator==</a>(<span class="keyword">const</span> <a class="code" href="classmesos_1_1Resources.html">Resources</a>& that) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>  <span class="keywordtype">bool</span> <a class="code" href="classmesos_1_1Resources.html#ac992e85d674e3a1346dcce492f766588">operator!=</a>(<span class="keyword">const</span> <a class="code" href="classmesos_1_1Resources.html">Resources</a>& that) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00579"></a><span class="lineno"> 579</span> </div>
-<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>  <span class="comment">// NOTE: If any error occurs (e.g., input Resource is not valid or</span></div>
-<div class="line"><a name="l00581"></a><span class="lineno"> 581</span>  <span class="comment">// the first operand is not a superset of the second operand while</span></div>
-<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>  <span class="comment">// doing subtraction), the semantics is as though the second operand</span></div>
-<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>  <span class="comment">// was actually just an empty resource (as though you didn't do the</span></div>
-<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>  <span class="comment">// operation at all).</span></div>
-<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>  <a class="code" href="classmesos_1_1Resources.html">Resources</a> <a class="code" href="classmesos_1_1Resources.html#a1bb96b91999835ce867a3a895bd7bd08">operator+</a>(<span class="keyword">const</span> Resource& that) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>  <a class="code" href="classmesos_1_1Resources.html">Resources</a> <a class="code" href="classmesos_1_1Resources.html#a1bb96b91999835ce867a3a895bd7bd08">operator+</a>(<span class="keyword">const</span> <a class="code" href="classmesos_1_1Resources.html">Resources</a>& that) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>  <a class="code" href="classmesos_1_1Resources.html">Resources</a>& <a class="code" href="classmesos_1_1Resources.html#a5e73184e5fd1818ec189fe5f7d432b25">operator+=</a>(<span class="keyword">const</span> Resource& that);</div>
-<div class="line"><a name="l00588"></a><span class="lineno"> 588</span>  <a class="code" href="classmesos_1_1Resources.html">Resources</a>& <a class="code" href="classmesos_1_1Resources.html#a5e73184e5fd1818ec189fe5f7d432b25">operator+=</a>(<span class="keyword">const</span> <a class="code" href="classmesos_1_1Resources.html">Resources</a>& that);</div>
-<div class="line"><a name="l00589"></a><span class="lineno"> 589</span> </div>
-<div class="line"><a name="l00590"></a><span class="lineno"> 590</span>  <a class="code" href="classmesos_1_1Resources.html">Resources</a> <a class="code" href="classmesos_1_1Resources.html#a2233c5eae93c7bd8629495f19346575e">operator-</a>(<span class="keyword">const</span> Resource& that) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00591"></a><span class="lineno"> 591</span>  <a class="code" href="classmesos_1_1Resources.html">Resources</a> <a class="code" href="classmesos_1_1Resources.html#a2233c5eae93c7bd8629495f19346575e">operator-</a>(<span class="keyword">const</span> <a class="code" href="classmesos_1_1Resources.html">Resources</a>& that) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>  <a class="code" href="classmesos_1_1Resources.html">Resources</a>& <a class="code" href="classmesos_1_1Resources.html#ad23628d37ce9834684a0873de2ff2cfd">operator-=</a>(<span class="keyword">const</span> Resource& that);</div>
-<div class="line"><a name="l00593"></a><span class="lineno"> 593</span>  <a class="code" href="classmesos_1_1Resources.html">Resources</a>& <a class="code" href="classmesos_1_1Resources.html#ad23628d37ce9834684a0873de2ff2cfd">operator-=</a>(<span class="keyword">const</span> <a class="code" href="classmesos_1_1Resources.html">Resources</a>& that);</div>
+<div class="line"><a name="l00568"></a><span class="lineno"><a class="line" href="classmesos_1_1Resources.html#a07ff5813b931a26510a3343cb0c988e1"> 568</a></span>  <a class="code" href="classmesos_1_1Resources.html#aead097c9cbf735bed75199745625d768">const_iterator</a> <a class="code" href="classmesos_1_1Resources.html#a07ff5813b931a26510a3343cb0c988e1">end</a>()</div>
+<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>  {</div>
+<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>  <span class="keywordflow">return</span> <span class="keyword">static_cast<</span><span class="keyword">const </span>std::vector<Resource_>&<span class="keyword">></span>(resources).<a class="code" href="classmesos_1_1Resources.html#a07ff5813b931a26510a3343cb0c988e1">end</a>();</div>
+<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>  }</div>
+<div class="line"><a name="l00572"></a><span class="lineno"> 572</span> </div>
+<div class="line"><a name="l00573"></a><span class="lineno"><a class="line" href="classmesos_1_1Resources.html#ae66c01db87b2a42cfee3e77c20687d56"> 573</a></span>  <a class="code" href="classmesos_1_1Resources.html#aead097c9cbf735bed75199745625d768">const_iterator</a> <a class="code" href="classmesos_1_1Resources.html#ae66c01db87b2a42cfee3e77c20687d56">begin</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> resources.begin(); }</div>
+<div class="line"><a name="l00574"></a><span class="lineno"><a class="line" href="classmesos_1_1Resources.html#a09242ab54ec91f74c67b67c7ab44036f"> 574</a></span>  <a class="code" href="classmesos_1_1Resources.html#aead097c9cbf735bed75199745625d768">const_iterator</a> <a class="code" href="classmesos_1_1Resources.html#a09242ab54ec91f74c67b67c7ab44036f">end</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> resources.end(); }</div>
+<div class="line"><a name="l00575"></a><span class="lineno"> 575</span> </div>
+<div class="line"><a name="l00576"></a><span class="lineno"> 576</span>  <span class="comment">// Using this operator makes it easy to copy a resources object into</span></div>
+<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>  <span class="comment">// a protocol buffer field.</span></div>
+<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>  <span class="comment">// Note that the google::protobuf::RepeatedPtrField<Resource> is</span></div>
+<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>  <span class="comment">// generated at runtime.</span></div>
+<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>  <span class="keyword">operator</span> google::protobuf::RepeatedPtrField<Resource>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00581"></a><span class="lineno"> 581</span> </div>
+<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>  <span class="keywordtype">bool</span> <a class="code" href="classmesos_1_1Resources.html#ab5afedf0ab457c9298c251ca1ad0ce20">operator==</a>(<span class="keyword">const</span> <a class="code" href="classmesos_1_1Resources.html">Resources</a>& that) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>  <span class="keywordtype">bool</span> <a class="code" href="classmesos_1_1Resources.html#ac992e85d674e3a1346dcce492f766588">operator!=</a>(<span class="keyword">const</span> <a class="code" href="classmesos_1_1Resources.html">Resources</a>& that) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00584"></a><span class="lineno"> 584</span> </div>
+<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>  <span class="comment">// NOTE: If any error occurs (e.g., input Resource is not valid or</span></div>
+<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>  <span class="comment">// the first operand is not a superset of the second operand while</span></div>
+<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>  <span class="comment">// doing subtraction), the semantics is as though the second operand</span></div>
+<div class="line"><a name="l00588"></a><span class="lineno"> 588</span>  <span class="comment">// was actually just an empty resource (as though you didn't do the</span></div>
+<div class="line"><a name="l00589"></a><span class="lineno"> 589</span>  <span class="comment">// operation at all).</span></div>
+<div class="line"><a name="l00590"></a><span class="lineno"> 590</span>  <a class="code" href="classmesos_1_1Resources.html">Resources</a> <a class="code" href="classmesos_1_1Resources.html#a1bb96b91999835ce867a3a895bd7bd08">operator+</a>(<span class="keyword">const</span> Resource& that) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00591"></a><span class="lineno"> 591</span>  <a class="code" href="classmesos_1_1Resources.html">Resources</a> <a class="code" href="classmesos_1_1Resources.html#a1bb96b91999835ce867a3a895bd7bd08">operator+</a>(<span class="keyword">const</span> <a class="code" href="classmesos_1_1Resources.html">Resources</a>& that) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>  <a class="code" href="classmesos_1_1Resources.html">Resources</a>& <a class="code" href="classmesos_1_1Resources.html#a5e73184e5fd1818ec189fe5f7d432b25">operator+=</a>(<span class="keyword">const</span> Resource& that);</div>
+<div class="line"><a name="l00593"></a><span class="lineno"> 593</span>  <a class="code" href="classmesos_1_1Resources.html">Resources</a>& <a class="code" href="classmesos_1_1Resources.html#a5e73184e5fd1818ec189fe5f7d432b25">operator+=</a>(<span class="keyword">const</span> <a class="code" href="classmesos_1_1Resources.html">Resources</a>& that);</div>
<div class="line"><a name="l00594"></a><span class="lineno"> 594</span> </div>
-<div class="line"><a name="l00595"></a><span class="lineno"> 595</span>  <span class="keyword">friend</span> std::ostream& <a class="code" href="classmesos_1_1Resources.html#ae280811800456648b43c902fa7a42d46">operator<<</a>(</div>
-<div class="line"><a name="l00596"></a><span class="lineno"> 596</span>  std::ostream& stream, <span class="keyword">const</span> Resource_& resource_);</div>
-<div class="line"><a name="l00597"></a><span class="lineno"> 597</span> </div>
-<div class="line"><a name="l00598"></a><span class="lineno"> 598</span> <span class="keyword">private</span>:</div>
-<div class="line"><a name="l00599"></a><span class="lineno"> 599</span>  <span class="comment">// Similar to 'contains(const Resource&)' but skips the validity</span></div>
-<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>  <span class="comment">// check. This can be used to avoid the performance overhead of</span></div>
-<div class="line"><a name="l00601"></a><span class="lineno"> 601</span>  <span class="comment">// calling 'contains(const Resource&)' when the resource can be</span></div>
-<div class="line"><a name="l00602"></a><span class="lineno"> 602</span>  <span class="comment">// assumed valid (e.g. it's inside a Resources).</span></div>
-<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>  <span class="comment">//</span></div>
-<div class="line"><a name="l00604"></a><span class="lineno"> 604</span>  <span class="comment">// TODO(jieyu): Measure performance overhead of validity check to</span></div>
-<div class="line"><a name="l00605"></a><span class="lineno"> 605</span>  <span class="comment">// ensure this is warranted.</span></div>
-<div class="line"><a name="l00606"></a><span class="lineno"> 606</span>  <span class="keywordtype">bool</span> _contains(<span class="keyword">const</span> Resource_& that) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00607"></a><span class="lineno"> 607</span> </div>
-<div class="line"><a name="l00608"></a><span class="lineno"> 608</span>  <span class="comment">// Similar to the public 'find', but only for a single Resource</span></div>
-<div class="line"><a name="l00609"></a><span class="lineno"> 609</span>  <span class="comment">// object. The target resource may span multiple roles, so this</span></div>
-<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>  <span class="comment">// returns Resources.</span></div>
-<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>  <a class="code" href="classOption.html">Option<Resources></a> <a class="code" href="classmesos_1_1Resources.html#a531f3b2cf4318aa421a2c9a9134992d1">find</a>(<span class="keyword">const</span> Resource& target) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00595"></a><span class="lineno"> 595</span>  <a class="code" href="classmesos_1_1Resources.html">Resources</a> <a class="code" href="classmesos_1_1Resources.html#a2233c5eae93c7bd8629495f19346575e">operator-</a>(<span class="keyword">const</span> Resource& that) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00596"></a><span class="lineno"> 596</span>  <a class="code" href="classmesos_1_1Resources.html">Resources</a> <a class="code" href="classmesos_1_1Resources.html#a2233c5eae93c7bd8629495f19346575e">operator-</a>(<span class="keyword">const</span> <a class="code" href="classmesos_1_1Resources.html">Resources</a>& that) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00597"></a><span class="lineno"> 597</span>  <a class="code" href="classmesos_1_1Resources.html">Resources</a>& <a class="code" href="classmesos_1_1Resources.html#ad23628d37ce9834684a0873de2ff2cfd">operator-=</a>(<span class="keyword">const</span> Resource& that);</div>
+<div class="line"><a name="l00598"></a><span class="lineno"> 598</span>  <a class="code" href="classmesos_1_1Resources.html">Resources</a>& <a class="code" href="classmesos_1_1Resources.html#ad23628d37ce9834684a0873de2ff2cfd">operator-=</a>(<span class="keyword">const</span> <a class="code" href="classmesos_1_1Resources.html">Resources</a>& that);</div>
+<div class="line"><a name="l00599"></a><span class="lineno"> 599</span> </div>
+<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>  <span class="keyword">friend</span> std::ostream& <a class="code" href="classmesos_1_1Resources.html#ae280811800456648b43c902fa7a42d46">operator<<</a>(</div>
+<div class="line"><a name="l00601"></a><span class="lineno"> 601</span>  std::ostream& stream, <span class="keyword">const</span> Resource_& resource_);</div>
+<div class="line"><a name="l00602"></a><span class="lineno"> 602</span> </div>
+<div class="line"><a name="l00603"></a><span class="lineno"> 603</span> <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00604"></a><span class="lineno"> 604</span>  <span class="comment">// Similar to 'contains(const Resource&)' but skips the validity</span></div>
+<div class="line"><a name="l00605"></a><span class="lineno"> 605</span>  <span class="comment">// check. This can be used to avoid the performance overhead of</span></div>
+<div class="line"><a name="l00606"></a><span class="lineno"> 606</span>  <span class="comment">// calling 'contains(const Resource&)' when the resource can be</span></div>
+<div class="line"><a name="l00607"></a><span class="lineno"> 607</span>  <span class="comment">// assumed valid (e.g. it's inside a Resources).</span></div>
+<div class="line"><a name="l00608"></a><span class="lineno"> 608</span>  <span class="comment">//</span></div>
+<div class="line"><a name="l00609"></a><span class="lineno"> 609</span>  <span class="comment">// TODO(jieyu): Measure performance overhead of validity check to</span></div>
+<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>  <span class="comment">// ensure this is warranted.</span></div>
+<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>  <span class="keywordtype">bool</span> _contains(<span class="keyword">const</span> Resource_& that) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00612"></a><span class="lineno"> 612</span> </div>
-<div class="line"><a name="l00613"></a><span class="lineno"> 613</span>  <span class="comment">// Validation-free versions of += and -= `Resource_` operators.</span></div>
-<div class="line"><a name="l00614"></a><span class="lineno"> 614</span>  <span class="comment">// These can be used when `r` is already validated.</span></div>
-<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>  <span class="comment">//</span></div>
-<div class="line"><a name="l00616"></a><span class="lineno"> 616</span>  <span class="comment">// NOTE: `Resource` objects are implicitly converted to `Resource_`</span></div>
-<div class="line"><a name="l00617"></a><span class="lineno"> 617</span>  <span class="comment">// objects, so here the API can also accept a `Resource` object.</span></div>
-<div class="line"><a name="l00618"></a><span class="lineno"> 618</span>  <span class="keywordtype">void</span> <a class="code" href="namespaceprocess_1_1metrics.html#a15af50f3f4dbcca2f7c619ccfbaa70b2">add</a>(<span class="keyword">const</span> Resource_& r);</div>
-<div class="line"><a name="l00619"></a><span class="lineno"> 619</span>  <span class="keywordtype">void</span> subtract(<span class="keyword">const</span> Resource_& r);</div>
-<div class="line"><a name="l00620"></a><span class="lineno"> 620</span> </div>
-<div class="line"><a name="l00621"></a><span class="lineno"> 621</span>  <a class="code" href="classmesos_1_1Resources.html">Resources</a> <a class="code" href="classmesos_1_1Resources.html#a1bb96b91999835ce867a3a895bd7bd08">operator+</a>(<span class="keyword">const</span> Resource_& that) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00622"></a><span class="lineno"> 622</span>  <a class="code" href="classmesos_1_1Resources.html">Resources</a>& <a class="code" href="classmesos_1_1Resources.html#a5e73184e5fd1818ec189fe5f7d432b25">operator+=</a>(<span class="keyword">const</span> Resource_& that);</div>
-<div class="line"><a name="l00623"></a><span class="lineno"> 623</span> </div>
-<div class="line"><a name="l00624"></a><span class="lineno"> 624</span>  <a class="code" href="classmesos_1_1Resources.html">Resources</a> <a class="code" href="classmesos_1_1Resources.html#a2233c5eae93c7bd8629495f19346575e">operator-</a>(<span class="keyword">const</span> Resource_& that) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00625"></a><span class="lineno"> 625</span>  <a class="code" href="classmesos_1_1Resources.html">Resources</a>& <a class="code" href="classmesos_1_1Resources.html#ad23628d37ce9834684a0873de2ff2cfd">operator-=</a>(<span class="keyword">const</span> Resource_& that);</div>
-<div class="line"><a name="l00626"></a><span class="lineno"> 626</span> </div>
-<div class="line"><a name="l00627"></a><span class="lineno"> 627</span>  std::vector<Resource_> resources;</div>
-<div class="line"><a name="l00628"></a><span class="lineno"> 628</span> };</div>
-<div class="line"><a name="l00629"></a><span class="lineno"> 629</span> </div>
-<div class="line"><a name="l00630"></a><span class="lineno"> 630</span> </div>
-<div class="line"><a name="l00631"></a><span class="lineno"> 631</span> std::ostream& <a class="code" href="namespacemesos.html#a5dc9d475094af726a46d485950cde6cb">operator<<</a>(</div>
-<div class="line"><a name="l00632"></a><span class="lineno"> 632</span>  std::ostream& stream,</div>
-<div class="line"><a name="l00633"></a><span class="lineno"> 633</span>  <span class="keyword">const</span> Resources::Resource_& resource);</div>
+<div class="line"><a name="l00613"></a><span class="lineno"> 613</span>  <span class="comment">// Similar to the public 'find', but only for a single Resource</span></div>
+<div class="line"><a name="l00614"></a><span class="lineno"> 614</span>  <span class="comment">// object. The target resource may span multiple roles, so this</span></div>
+<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>  <span class="comment">// returns Resources.</span></div>
+<div class="line"><a name="l00616"></a><span class="lineno"> 616</span>  <a class="code" href="classOption.html">Option<Resources></a> <a class="code" href="classmesos_1_1Resources.html#a531f3b2cf4318aa421a2c9a9134992d1">find</a>(<span class="keyword">const</span> Resource& target) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00617"></a><span class="lineno"> 617</span> </div>
+<div class="line"><a name="l00618"></a><span class="lineno"> 618</span>  <span class="comment">// Validation-free versions of += and -= `Resource_` operators.</span></div>
+<div class="line"><a name="l00619"></a><span class="lineno"> 619</span>  <span class="comment">// These can be used when `r` is already validated.</span></div>
+<div class="line"><a name="l00620"></a><span class="lineno"> 620</span>  <span class="comment">//</span></div>
+<div class="line"><a name="l00621"></a><span class="lineno"> 621</span>  <span class="comment">// NOTE: `Resource` objects are implicitly converted to `Resource_`</span></div>
+<div class="line"><a name="l00622"></a><span class="lineno"> 622</span>  <span class="comment">// objects, so here the API can also accept a `Resource` object.</span></div>
+<div class="line"><a name="l00623"></a><span class="lineno"> 623</span>  <span class="keywordtype">void</span> <a class="code" href="namespaceprocess_1_1metrics.html#a15af50f3f4dbcca2f7c619ccfbaa70b2">add</a>(<span class="keyword">const</span> Resource_& r);</div>
+<div class="line"><a name="l00624"></a><span class="lineno"> 624</span>  <span class="keywordtype">void</span> subtract(<span class="keyword">const</span> Resource_& r);</div>
+<div class="line"><a name="l00625"></a><span class="lineno"> 625</span> </div>
+<div class="line"><a name="l00626"></a><span class="lineno"> 626</span>  <a class="code" href="classmesos_1_1Resources.html">Resources</a> <a class="code" href="classmesos_1_1Resources.html#a1bb96b91999835ce867a3a895bd7bd08">operator+</a>(<span class="keyword">const</span> Resource_& that) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00627"></a><span class="lineno"> 627</span>  <a class="code" href="classmesos_1_1Resources.html">Resources</a>& <a class="code" href="classmesos_1_1Resources.html#a5e73184e5fd1818ec189fe5f7d432b25">operator+=</a>(<span class="keyword">const</span> Resource_& that);</div>
+<div class="line"><a name="l00628"></a><span class="lineno"> 628</span> </div>
+<div class="line"><a name="l00629"></a><span class="lineno"> 629</span>  <a class="code" href="classmesos_1_1Resources.html">Resources</a> <a class="code" href="classmesos_1_1Resources.html#a2233c5eae93c7bd8629495f19346575e">operator-</a>(<span class="keyword">const</span> Resource_& that) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00630"></a><span class="lineno"> 630</span>  <a class="code" href="classmesos_1_1Resources.html">Resources</a>& <a class="code" href="classmesos_1_1Resources.html#ad23628d37ce9834684a0873de2ff2cfd">operator-=</a>(<span class="keyword">const</span> Resource_& that);</div>
+<div class="line"><a name="l00631"></a><span class="lineno"> 631</span> </div>
+<div class="line"><a name="l00632"></a><span class="lineno"> 632</span>  std::vector<Resource_> resources;</div>
+<div class="line"><a name="l00633"></a><span class="lineno"> 633</span> };</div>
<div class="line"><a name="l00634"></a><span class="lineno"> 634</span> </div>
<div class="line"><a name="l00635"></a><span class="lineno"> 635</span> </div>
-<div class="line"><a name="l00636"></a><span class="lineno"> 636</span> std::ostream& <a class="code" href="namespacemesos.html#a5dc9d475094af726a46d485950cde6cb">operator<<</a>(std::ostream& stream, <span class="keyword">const</span> Resource& resource);</div>
-<div class="line"><a name="l00637"></a><span class="lineno"> 637</span> </div>
-<div class="line"><a name="l00638"></a><span class="lineno"> 638</span> </div>
-<div class="line"><a name="l00639"></a><span class="lineno"> 639</span> std::ostream& <a class="code" href="namespacemesos.html#a5dc9d475094af726a46d485950cde6cb">operator<<</a>(std::ostream& stream, <span class="keyword">const</span> Resources& resources);</div>
+<div class="line"><a name="l00636"></a><span class="lineno"> 636</span> std::ostream& <a class="code" href="namespacemesos.html#a5dc9d475094af726a46d485950cde6cb">operator<<</a>(</div>
+<div class="line"><a name="l00637"></a><span class="lineno"> 637</span>  std::ostream& stream,</div>
+<div class="line"><a name="l00638"></a><span class="lineno"> 638</span>  <span class="keyword">const</span> Resources::Resource_& resource);</div>
+<div class="line"><a name="l00639"></a><span class="lineno"> 639</span> </div>
<div class="line"><a name="l00640"></a><span class="lineno"> 640</span> </div>
-<div class="line"><a name="l00641"></a><span class="lineno"> 641</span> </div>
-<div class="line"><a name="l00642"></a><span class="lineno"> 642</span> std::ostream& <a class="code" href="namespacemesos.html#a5dc9d475094af726a46d485950cde6cb">operator<<</a>(</div>
-<div class="line"><a name="l00643"></a><span class="lineno"> 643</span>  std::ostream& stream,</div>
-<div class="line"><a name="l00644"></a><span class="lineno"> 644</span>  <span class="keyword">const</span> google::protobuf::RepeatedPtrField<Resource>& resources);</div>
+<div class="line"><a name="l00641"></a><span class="lineno"> 641</span> std::ostream& <a class="code" href="namespacemesos.html#a5dc9d475094af726a46d485950cde6cb">operator<<</a>(std::ostream& stream, <span class="keyword">const</span> Resource& resource);</div>
+<div class="line"><a name="l00642"></a><span class="lineno"> 642</span> </div>
+<div class="line"><a name="l00643"></a><span class="lineno"> 643</span> </div>
+<div class="line"><a name="l00644"></a><span class="lineno"> 644</span> std::ostream& <a class="code" href="namespacemesos.html#a5dc9d475094af726a46d485950cde6cb">operator<<</a>(std::ostream& stream, <span class="keyword">const</span> Resources& resources);</div>
<div class="line"><a name="l00645"></a><span class="lineno"> 645</span> </div>
<div class="line"><a name="l00646"></a><span class="lineno"> 646</span> </div>
-<div class="line"><a name="l00647"></a><span class="lineno"><a class="line" href="namespacemesos.html#ab16e1a11cb91d02d756b2ce64834f3c8"> 647</a></span> <span class="keyword">inline</span> <a class="code" href="classmesos_1_1Resources.html">Resources</a> <a class="code" href="namespacemesos.html#ab16e1a11cb91d02d756b2ce64834f3c8">operator+</a>(</div>
-<div class="line"><a name="l00648"></a><span class="lineno"> 648</span>  <span class="keyword">const</span> google::protobuf::RepeatedPtrField<Resource>& left,</div>
-<div class="line"><a name="l00649"></a><span class="lineno"> 649</span>  <span class="keyword">const</span> <a class="code" href="classmesos_1_1Resources.html">Resources</a>& right)</div>
-<div class="line"><a name="l00650"></a><span class="lineno"> 650</span> {</div>
-<div class="line"><a name="l00651"></a><span class="lineno"> 651</span>  <span class="keywordflow">return</span> <a class="code" href="classmesos_1_1Resources.html">Resources</a>(left) + right;</div>
-<div class="line"><a name="l00652"></a><span class="lineno"> 652</span> }</div>
-<div class="line"><a name="l00653"></a><span class="lineno"> 653</span> </div>
-<div class="line"><a name="l00654"></a><span class="lineno"> 654</span> </div>
-<div class="line"><a name="l00655"></a><span class="lineno"><a class="line" href="namespacemesos.html#ae80307fd2de55e858be4d47154b86f1a"> 655</a></span> <span class="keyword">inline</span> <a class="code" href="classmesos_1_1Resources.html">Resources</a> <a class="code" href="namespacemesos.html#ae80307fd2de55e858be4d47154b86f1a">operator-</a>(</div>
-<div class="line"><a name="l00656"></a><span class="lineno"> 656</span>  <span class="keyword">const</span> google::protobuf::RepeatedPtrField<Resource>& left,</div>
-<div class="line"><a name="l00657"></a><span class="lineno"> 657</span>  <span class="keyword">const</span> <a class="code" href="classmesos_1_1Resources.html">Resources</a>& right)</div>
-<div class="line"><a name="l00658"></a><span class="lineno"> 658</span> {</div>
-<div class="line"><a name="l00659"></a><span class="lineno"> 659</span>  <span class="keywordflow">return</span> <a class="code" href="classmesos_1_1Resources.html">Resources</a>(left) - right;</div>
-<div class="line"><a name="l00660"></a><span class="lineno"> 660</span> }</div>
-<div class="line"><a name="l00661"></a><span class="lineno"> 661</span> </div>
-<div class="line"><a name="l00662"></a><span class="lineno"> 662</span> </div>
-<div class="line"><a name="l00663"></a><span class="lineno"><a class="line" href="namespacemesos.html#a25baf5dc50c84275f660a602705ac4fb"> 663</a></span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespacemesos.html#a112163aa7f26794e26b67dfc187dec7f">operator==</a>(</div>
-<div class="line"><a name="l00664"></a><span class="lineno"> 664</span>  <span class="keyword">const</span> google::protobuf::RepeatedPtrField<Resource>& left,</div>
-<div class="line"><a name="l00665"></a><span class="lineno"> 665</span>  <span class="keyword">const</span> <a class="code" href="classmesos_1_1Resources.html">Resources</a>& right)</div>
-<div class="line"><a name="l00666"></a><span class="lineno"> 666</span> {</div>
-<div class="line"><a name="l00667"></a><span class="lineno"> 667</span>  <span class="keywordflow">return</span> <a class="code" href="classmesos_1_1Resources.html">Resources</a>(left) == right;</div>
-<div class="line"><a name="l00668"></a><span class="lineno"> 668</span> }</div>
-<div class="line"><a name="l00669"></a><span class="lineno"> 669</span> </div>
-<div class="line"><a name="l00670"></a><span class="lineno"> 670</span> </div>
-<div class="line"><a name="l00671"></a><span class="lineno"> 671</span> <span class="keyword">template</span> <<span class="keyword">typename</span> Key></div>
-<div class="line"><a name="l00672"></a><span class="lineno"><a class="line" href="namespacemesos.html#a05acb02d51a29432792fb088b7ee5c1f"> 672</a></span> <a class="code" href="classhashmap.html">hashmap<Key, Resources></a>& <a class="code" href="namespacemesos.html#a05acb02d51a29432792fb088b7ee5c1f">operator+=</a>(</div>
-<div class="line"><a name="l00673"></a><span class="lineno"> 673</span>  <a class="code" href="classhashmap.html">hashmap<Key, Resources></a>& left,</div>
-<div class="line"><a name="l00674"></a><span class="lineno"> 674</span>  <span class="keyword">const</span> <a class="code" href="classhashmap.html">hashmap<Key, Resources></a>& right)</div>
-<div class="line"><a name="l00675"></a><span class="lineno"> 675</span> {</div>
-<div class="line"><a name="l00676"></a><span class="lineno"> 676</span>  <a class="code" href="foreach_8hpp.html#a66900b166526abe66464d6597536b111">foreachpair</a> (<span class="keyword">const</span> Key& key, <span class="keyword">const</span> <a class="code" href="classmesos_1_1Resources.html">Resources</a>& resources, right) {</div>
-<div class="line"><a name="l00677"></a><span class="lineno"> 677</span>  left[key] += resources;</div>
-<div class="line"><a name="l00678"></a><span class="lineno"> 678</span>  }</div>
-<div class="line"><a name="l00679"></a><span class="lineno"> 679</span>  <span class="keywordflow">return</span> left;</div>
-<div class="line"><a name="l00680"></a><span class="lineno"> 680</span> }</div>
-<div class="line"><a name="l00681"></a><span class="lineno"> 681</span> </div>
-<div class="line"><a name="l00682"></a><span class="lineno"> 682</span> </div>
-<div class="line"><a name="l00683"></a><span class="lineno"> 683</span> <span class="keyword">template</span> <<span class="keyword">typename</span> Key></div>
-<div class="line"><a name="l00684"></a><span class="lineno"><a class="line" href="namespacemesos.html#a51ac11240eef25ec2059e3269a974c64"> 684</a></span> <a class="code" href="classhashmap.html">hashmap<Key, Resources></a> <a class="code" href="namespacemesos.html#ab16e1a11cb91d02d756b2ce64834f3c8">operator+</a>(</div>
-<div class="line"><a name="l00685"></a><span class="lineno"> 685</span>  <span class="keyword">const</span> <a class="code" href="classhashmap.html">hashmap<Key, Resources></a>& left,</div>
-<div class="line"><a name="l00686"></a><span class="lineno"> 686</span>  <span class="keyword">const</span> <a class="code" href="classhashmap.html">hashmap<Key, Resources></a>& right)</div>
-<div class="line"><a name="l00687"></a><span class="lineno"> 687</span> {</div>
-<div class="line"><a name="l00688"></a><span class="lineno"> 688</span>  <a class="code" href="classhashmap.html">hashmap<Key, Resources></a> result = left;</div>
-<div class="line"><a name="l00689"></a><span class="lineno"> 689</span>  result += right;</div>
-<div class="line"><a name="l00690"></a><span class="lineno"> 690</span>  <span class="keywordflow">return</span> result;</div>
-<div class="line"><a name="l00691"></a><span class="lineno"> 691</span> }</div>
-<div class="line"><a name="l00692"></a><span class="lineno"> 692</span> </div>
-<div class="line"><a name="l00693"></a><span class="lineno"> 693</span> </div>
-<div class="line"><a name="l00698"></a><span class="lineno"><a class="line" href="classmesos_1_1ResourceConversion.html"> 698</a></span> <span class="keyword">class </span><a class="code" href="classmesos_1_1ResourceConversion.html">ResourceConversion</a></div>
-<div class="line"><a name="l00699"></a><span class="lineno"> 699</span> {</div>
-<div class="line"><a name="l00700"></a><span class="lineno"> 700</span> <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00701"></a><span class="lineno"><a class="line" href="classmesos_1_1ResourceConversion.html#aa9039c86575590f50e1e03cc3f42e9e6"> 701</a></span>  <span class="keyword">typedef</span> lambda::function<Try<Nothing>(<span class="keyword">const</span> <a class="code" href="classmesos_1_1Resources.html">Resources</a>&)> <a class="code" href="classmesos_1_1ResourceConversion.html#aa9039c86575590f50e1e03cc3f42e9e6">PostValidation</a>;</div>
-<div class="line"><a name="l00702"></a><span class="lineno"> 702</span> </div>
-<div class="line"><a name="l00703"></a><span class="lineno"><a class="line" href="classmesos_1_1ResourceConversion.html#aad98a62b2681ff5a4b77f9dc20e9140b"> 703</a></span>  <a class="code" href="classmesos_1_1ResourceConversion.html#aad98a62b2681ff5a4b77f9dc20e9140b">ResourceConversion</a>(</div>
-<div class="line"><a name="l00704"></a><span class="lineno"> 704</span>  <span class="keyword">const</span> <a class="code" href="classmesos_1_1Resources.html">Resources</a>& _consumed,</div>
-<div class="line"><a name="l00705"></a><span class="lineno"> 705</span>  <span class="keyword">const</span> <a class="code" href="classmesos_1_1Resources.html">Resources</a>& _converted,</div>
-<div class="line"><a name="l00706"></a><span class="lineno"> 706</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<PostValidation></a>& _postValidation = <a class="code" href="structNone.html">None</a>())</div>
-<div class="line"><a name="l00707"></a><span class="lineno"> 707</span>  : <a class="code" href="classmesos_1_1ResourceConversion.html#afa8d5fe5c9c3f6f1588d7df710262080">consumed</a>(_consumed),</div>
-<div class="line"><a name="l00708"></a><span class="lineno"> 708</span>  <a class="code" href="classmesos_1_1ResourceConversion.html#a5a8038920d7a88ed4c0b5b096f6fce83">converted</a>(_converted),</div>
-<div class="line"><a name="l00709"></a><span class="lineno"> 709</span>  <a class="code" href="classmesos_1_1ResourceConversion.html#a08a56bacb82357b13c8fa3f03e999781">postValidation</a>(_postValidation) {}</div>
-<div class="line"><a name="l00710"></a><span class="lineno"> 710</span> </div>
-<div class="line"><a name="l00711"></a><span class="lineno"> 711</span>  <a class="code" href="classTry.html">Try<Resources></a> <a class="code" href="classmesos_1_1ResourceConversion.html#adb691cdd12b7af7db52284b0a1737533">apply</a>(<span class="keyword">const</span> <a class="code" href="classmesos_1_1Resources.html">Resources</a>& resources) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00712"></a><span class="lineno"> 712</span> </div>
-<div class="line"><a name="l00713"></a><span class="lineno"><a class="line" href="classmesos_1_1ResourceConversion.html#afa8d5fe5c9c3f6f1588d7df710262080"> 713</a></span>  <a class="code" href="classmesos_1_1Resources.html">Resources</a> <a class="code" href="classmesos_1_1ResourceConversion.html#afa8d5fe5c9c3f6f1588d7df710262080">consumed</a>;</div>
-<div class="line"><a name="l00714"></a><span class="lineno"><a class="line" href="classmesos_1_1ResourceConversion.html#a5a8038920d7a88ed4c0b5b096f6fce83"> 714</a></span>  <a class="code" href="classmesos_1_1Resources.html">Resources</a> <a class="code" href="classmesos_1_1ResourceConversion.html#a5a8038920d7a88ed4c0b5b096f6fce83">converted</a>;</div>
-<div class="line"><a name="l00715"></a><span class="lineno"><a class="line" href="classmesos_1_1ResourceConversion.html#a08a56bacb82357b13c8fa3f03e999781"> 715</a></span>  <a class="code" href="classOption.html">Option<PostValidation></a> <a class="code" href="classmesos_1_1ResourceConversion.html#a08a56bacb82357b13c8fa3f03e999781">postValidation</a>;</div>
-<div class="line"><a name="l00716"></a><span class="lineno"> 716</span> };</div>
+<div class="line"><a name="l00647"></a><span class="lineno"> 647</span> std::ostream& <a class="code" href="namespacemesos.html#a5dc9d475094af726a46d485950cde6cb">operator<<</a>(</div>
+<div class="line"><a name="l00648"></a><span class="lineno"> 648</span>  std::ostream& stream,</div>
+<div class="line"><a name="l00649"></a><span class="lineno"> 649</span>  <span class="keyword">const</span> google::protobuf::RepeatedPtrField<Resource>& resources);</div>
+<div class="line"><a name="l00650"></a><span class="lineno"> 650</span> </div>
+<div class="line"><a name="l00651"></a><span class="lineno"> 651</span> </div>
+<div class="line"><a name="l00652"></a><span class="lineno"><a class="line" href="namespacemesos.html#ab16e1a11cb91d02d756b2ce64834f3c8"> 652</a></span> <span class="keyword">inline</span> <a class="code" href="classmesos_1_1Resources.html">Resources</a> <a class="code" href="namespacemesos.html#ab16e1a11cb91d02d756b2ce64834f3c8">operator+</a>(</div>
+<div class="line"><a name="l00653"></a><span class="lineno"> 653</span>  <span class="keyword">const</span> google::protobuf::RepeatedPtrField<Resource>& left,</div>
+<div class="line"><a name="l00654"></a><span class="lineno"> 654</span>  <span class="keyword">const</span> <a class="code" href="classmesos_1_1Resources.html">Resources</a>& right)</div>
+<div class="line"><a name="l00655"></a><span class="lineno"> 655</span> {</div>
+<div class="line"><a name="l00656"></a><span class="lineno"> 656</span>  <span class="keywordflow">return</span> <a class="code" href="classmesos_1_1Resources.html">Resources</a>(left) + right;</div>
+<div class="line"><a name="l00657"></a><span class="lineno"> 657</span> }</div>
+<div class="line"><a name="l00658"></a><span class="lineno"> 658</span> </div>
+<div class="line"><a name="l00659"></a><span class="lineno"> 659</span> </div>
+<div class="line"><a name="l00660"></a><span class="lineno"><a class="line" href="namespacemesos.html#ae80307fd2de55e858be4d47154b86f1a"> 660</a></span> <span class="keyword">inline</span> <a class="code" href="classmesos_1_1Resources.html">Resources</a> <a class="code" href="namespacemesos.html#ae80307fd2de55e858be4d47154b86f1a">operator-</a>(</div>
+<div class="line"><a name="l00661"></a><span class="lineno"> 661</span>  <span class="keyword">const</span> google::protobuf::RepeatedPtrField<Resource>& left,</div>
+<div class="line"><a name="l00662"></a><span class="lineno"> 662</span>  <span class="keyword">const</span> <a class="code" href="classmesos_1_1Resources.html">Resources</a>& right)</div>
+<div class="line"><a name="l00663"></a><span class="lineno"> 663</span> {</div>
+<div class="line"><a name="l00664"></a><span class="lineno"> 664</span>  <span class="keywordflow">return</span> <a class="code" href="classmesos_1_1Resources.html">Resources</a>(left) - right;</div>
+<div class="line"><a name="l00665"></a><span class="lineno"> 665</span> }</div>
+<div class="line"><a name="l00666"></a><span class="lineno"> 666</span> </div>
+<div class="line"><a name="l00667"></a><span class="lineno"> 667</span> </div>
+<div class="line"><a name="l00668"></a><span class="lineno"><a class="line" href="namespacemesos.html#a25baf5dc50c84275f660a602705ac4fb"> 668</a></span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespacemesos.html#a112163aa7f26794e26b67dfc187dec7f">operator==</a>(</div>
+<div class="line"><a name="l00669"></a><span class="lineno"> 669</span>  <span class="keyword">const</span> google::protobuf::RepeatedPtrField<Resource>& left,</div>
+<div class="line"><a name="l00670"></a><span class="lineno"> 670</span>  <span class="keyword">const</span> <a class="code" href="classmesos_1_1Resources.html">Resources</a>& right)</div>
+<div class="line"><a name="l00671"></a><span class="lineno"> 671</span> {</div>
+<div class="line"><a name="l00672"></a><span class="lineno"> 672</span>  <span class="keywordflow">return</span> <a class="code" href="classmesos_1_1Resources.html">Resources</a>(left) == right;</div>
+<div class="line"><a name="l00673"></a><span class="lineno"> 673</span> }</div>
+<div class="line"><a name="l00674"></a><span class="lineno"> 674</span> </div>
+<div class="line"><a name="l00675"></a><span class="lineno"> 675</span> </div>
+<div class="line"><a name="l00676"></a><span class="lineno"> 676</span> <span class="keyword">template</span> <<span class="keyword">typename</span> Key></div>
+<div class="line"><a name="l00677"></a><span class="lineno"><a class="line" href="namespacemesos.html#a05acb02d51a29432792fb088b7ee5c1f"> 677</a></span> <a class="code" href="classhashmap.html">hashmap<Key, Resources></a>& <a class="code" href="namespacemesos.html#a05acb02d51a29432792fb088b7ee5c1f">operator+=</a>(</div>
+<div class="line"><a name="l00678"></a><span class="lineno"> 678</span>  <a class="code" href="classhashmap.html">hashmap<Key, Resources></a>& left,</div>
+<div class="line"><a name="l00679"></a><span class="lineno"> 679</span>  <span class="keyword">const</span> <a class="code" href="classhashmap.html">hashmap<Key, Resources></a>& right)</div>
+<div class="line"><a name="l00680"></a><span class="lineno"> 680</span> {</div>
+<div class="line"><a name="l00681"></a><span class="lineno"> 681</span>  <a class="code" href="foreach_8hpp.html#a66900b166526abe66464d6597536b111">foreachpair</a> (<span class="keyword">const</span> Key& key, <span class="keyword">const</span> <a class="code" href="classmesos_1_1Resources.html">Resources</a>& resources, right) {</div>
+<div class="line"><a name="l00682"></a><span class="lineno"> 682</span>  left[key] += resources;</div>
+<div class="line"><a name="l00683"></a><span class="lineno"> 683</span>  }</div>
+<div class="line"><a name="l00684"></a><span class="lineno"> 684</span>  <span class="keywordflow">return</span> left;</div>
+<div class="line"><a name="l00685"></a><span class="lineno"> 685</span> }</div>
+<div class="line"><a name="l00686"></a><span class="lineno"> 686</span> </div>
+<div class="line"><a name="l00687"></a><span class="lineno"> 687</span> </div>
+<div class="line"><a name="l00688"></a><span class="lineno"> 688</span> <span class="keyword">template</span> <<span class="keyword">typename</span> Key></div>
+<div class="line"><a name="l00689"></a><span class="lineno"><a class="line" href="namespacemesos.html#a51ac11240eef25ec2059e3269a974c64"> 689</a></span> <a class="code" href="classhashmap.html">hashmap<Key, Resources></a> <a class="code" href="namespacemesos.html#ab16e1a11cb91d02d756b2ce64834f3c8">operator+</a>(</div>
+<div class="line"><a name="l00690"></a><span class="lineno"> 690</span>  <span class="keyword">const</span> <a class="code" href="classhashmap.html">hashmap<Key, Resources></a>& left,</div>
+<div class="line"><a name="l00691"></a><span class="lineno"> 691</span>  <span class="keyword">const</span> <a class="code" href="classhashmap.html">hashmap<Key, Resources></a>& right)</div>
+<div class="line"><a name="l00692"></a><span class="lineno"> 692</span> {</div>
+<div class="line"><a name="l00693"></a><span class="lineno"> 693</span>  <a class="code" href="classhashmap.html">hashmap<Key, Resources></a> result = left;</div>
+<div class="line"><a name="l00694"></a><span class="lineno"> 694</span>  result += right;</div>
+<div class="line"><a name="l00695"></a><span class="lineno"> 695</span>  <span class="keywordflow">return</span> result;</div>
+<div class="line"><a name="l00696"></a><span class="lineno"> 696</span> }</div>
+<div class="line"><a name="l00697"></a><span class="lineno"> 697</span> </div>
+<div class="line"><a name="l00698"></a><span class="lineno"> 698</span> </div>
+<div class="line"><a name="l00703"></a><span class="lineno"><a class="line" href="classmesos_1_1ResourceConversion.html"> 703</a></span> <span class="keyword">class </span><a class="code" href="classmesos_1_1ResourceConversion.html">ResourceConversion</a></div>
+<div class="line"><a name="l00704"></a><span class="lineno"> 704</span> {</div>
+<div class="line"><a name="l00705"></a><span class="lineno"> 705</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00706"></a><span class="lineno"><a class="line" href="classmesos_1_1ResourceConversion.html#aa9039c86575590f50e1e03cc3f42e9e6"> 706</a></span>  <span class="keyword">typedef</span> lambda::function<Try<Nothing>(<span class="keyword">const</span> <a class="code" href="classmesos_1_1Resources.html">Resources</a>&)> <a class="code" href="classmesos_1_1ResourceConversion.html#aa9039c86575590f50e1e03cc3f42e9e6">PostValidation</a>;</div>
+<div class="line"><a name="l00707"></a><span class="lineno"> 707</span> </div>
+<div class="line"><a name="l00708"></a><span class="lineno"><a class="line" href="classmesos_1_1ResourceConversion.html#aad98a62b2681ff5a4b77f9dc20e9140b"> 708</a></span>  <a class="code" href="classmesos_1_1ResourceConversion.html#aad98a62b2681ff5a4b77f9dc20e9140b">ResourceConversion</a>(</div>
+<div class="line"><a name="l00709"></a><span class="lineno"> 709</span>  <span class="keyword">const</span> <a class="code" href="classmesos_1_1Resources.html">Resources</a>& _consumed,</div>
+<div class="line"><a name="l00710"></a><span class="lineno"> 710</span>  <span class="keyword">const</span> <a class="code" href="classmesos_1_1Resources.html">Resources</a>& _converted,</div>
+<div class="line"><a name="l00711"></a><span class="lineno"> 711</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<PostValidation></a>& _postValidation = <a class="code" href="structNone.html">None</a>())</div>
+<div class="line"><a name="l00712"></a><span class="lineno"> 712</span>  : <a class="code" href="classmesos_1_1ResourceConversion.html#afa8d5fe5c9c3f6f1588d7df710262080">consumed</a>(_consumed),</div>
+<div class="line"><a name="l00713"></a><span class="lineno"> 713</span>  <a class="code" href="classmesos_1_1ResourceConversion.html#a5a8038920d7a88ed4c0b5b096f6fce83">converted</a>(_converted),</div>
+<div class="line"><a name="l00714"></a><span class="lineno"> 714</span>  <a class="code" href="classmesos_1_1ResourceConversion.html#a08a56bacb82357b13c8fa3f03e999781">postValidation</a>(_postValidation) {}</div>
+<div class="line"><a name="l00715"></a><span class="lineno"> 715</span> </div>
+<div class="line"><a name="l00716"></a><span class="lineno"> 716</span>  <a class="code" href="classTry.html">Try<Resources></a> <a class="code" href="classmesos_1_1ResourceConversion.html#adb691cdd12b7af7db52284b0a1737533">apply</a>(<span class="keyword">const</span> <a class="code" href="classmesos_1_1Resources.html">Resources</a>& resources) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00717"></a><span class="lineno"> 717</span> </div>
-<div class="line"><a name="l00718"></a><span class="lineno"> 718</span> } <span class="comment">// namespace mesos {</span></div>
-<div class="line"><a name="l00719"></a><span class="lineno"> 719</span> </div>
-<div class="line"><a name="l00720"></a><span class="lineno"> 720</span> <span class="preprocessor">#endif // __RESOURCES_HPP__</span></div>
+<div class="line"><a name="l00718"></a><span class="lineno"><a class="line" href="classmesos_1_1ResourceConversion.html#afa8d5fe5c9c3f6f1588d7df710262080"> 718</a></span>  <a class="code" href="classmesos_1_1Resources.html">Resources</a> <a class="code" href="classmesos_1_1ResourceConversion.html#afa8d5fe5c9c3f6f1588d7df710262080">consumed</a>;</div>
+<div class="line"><a name="l00719"></a><span class="lineno"><a class="line" href="classmesos_1_1ResourceConversion.html#a5a8038920d7a88ed4c0b5b096f6fce83"> 719</a></span>  <a class="code" href="classmesos_1_1Resources.html">Resources</a> <a class="code" href="classmesos_1_1ResourceConversion.html#a5a8038920d7a88ed4c0b5b096f6fce83">converted</a>;</div>
+<div class="line"><a name="l00720"></a><span class="lineno"><a class="line" href="classmesos_1_1ResourceConversion.html#a08a56bacb82357b13c8fa3f03e999781"> 720</a></span>  <a class="code" href="classOption.html">Option<PostValidation></a> <a class="code" href="classmesos_1_1ResourceConversion.html#a08a56bacb82357b13c8fa3f03e999781">postValidation</a>;</div>
+<div class="line"><a name="l00721"></a><span class="lineno"> 721</span> };</div>
+<div class="line"><a name="l00722"></a><span class="lineno"> 722</span> </div>
+<div class="line"><a name="l00723"></a><span class="lineno"> 723</span> } <span class="comment">// namespace mesos {</span></div>
+<div class="line"><a name="l00724"></a><span class="lineno"> 724</span> </div>
+<div class="line"><a name="l00725"></a><span class="lineno"> 725</span> <span class="preprocessor">#endif // __RESOURCES_HPP__</span></div>
<div class="ttc" id="namespacemesos_html_a5dc9d475094af726a46d485950cde6cb"><div class="ttname"><a href="namespacemesos.html#a5dc9d475094af726a46d485950cde6cb">mesos::operator<<</a></div><div class="ttdeci">std::ostream & operator<<(std::ostream &stream, const Attribute &attribute)</div></div>
-<div class="ttc" id="classmesos_1_1ResourceConversion_html_aad98a62b2681ff5a4b77f9dc20e9140b"><div class="ttname"><a href="classmesos_1_1ResourceConversion.html#aad98a62b2681ff5a4b77f9dc20e9140b">mesos::ResourceConversion::ResourceConversion</a></div><div class="ttdeci">ResourceConversion(const Resources &_consumed, const Resources &_converted, const Option< PostValidation > &_postValidation=None())</div><div class="ttdef"><b>Definition:</b> resources.hpp:703</div></div>
-<div class="ttc" id="classmesos_1_1Resources_html_aead097c9cbf735bed75199745625d768"><div class="ttname"><a href="classmesos_1_1Resources.html#aead097c9cbf735bed75199745625d768">mesos::Resources::const_iterator</a></div><div class="ttdeci">std::vector< Resource_ >::const_iterator const_iterator</div><div class="ttdef"><b>Definition:</b> resources.hpp:556</div></div>
+<div class="ttc" id="classmesos_1_1ResourceConversion_html_aad98a62b2681ff5a4b77f9dc20e9140b"><div class="ttname"><a href="classmesos_1_1ResourceConversion.html#aad98a62b2681ff5a4b77f9dc20e9140b">mesos::ResourceConversion::ResourceConversion</a></div><div class="ttdeci">ResourceConversion(const Resources &_consumed, const Resources &_converted, const Option< PostValidation > &_postValidation=None())</div><div class="ttdef"><b>Definition:</b> resources.hpp:708</div></div>
+<div class="ttc" id="classmesos_1_1Resources_html_aead097c9cbf735bed75199745625d768"><div class="ttname"><a href="classmesos_1_1Resources.html#aead097c9cbf735bed75199745625d768">mesos::Resources::const_iterator</a></div><div class="ttdeci">std::vector< Resource_ >::const_iterator const_iterator</div><div class="ttdef"><b>Definition:</b> resources.hpp:561</div></div>
<div class="ttc" id="classmesos_1_1ResourceConversion_html_adb691cdd12b7af7db52284b0a1737533"><div class="ttname"><a href="classmesos_1_1ResourceConversion.html#adb691cdd12b7af7db52284b0a1737533">mesos::ResourceConversion::apply</a></div><div class="ttdeci">Try< Resources > apply(const Resources &resources) const </div></div>
<div class="ttc" id="classmesos_1_1Resources_html_af80276e0925e9e48dbf816aae62a2bb8"><div class="ttname"><a href="classmesos_1_1Resources.html#af80276e0925e9e48dbf816aae62a2bb8">mesos::Resources::isEmpty</a></div><div class="ttdeci">static bool isEmpty(const Resource &resource)</div></div>
<div class="ttc" id="classmesos_1_1Resources_html_a941fe78c62de3a6fa7c7cf977960694a"><div class="ttname"><a href="classmesos_1_1Resources.html#a941fe78c62de3a6fa7c7cf977960694a">mesos::Resources::size</a></div><div class="ttdeci">size_t size() const </div><div class="ttdef"><b>Definition:</b> resources.hpp:390</div></div>
<div class="ttc" id="classmesos_1_1Resources_html_a6c4d4a889c254fb4241644c6557d511e"><div class="ttname"><a href="classmesos_1_1Resources.html#a6c4d4a889c254fb4241644c6557d511e">mesos::Resources::types</a></div><div class="ttdeci">std::map< std::string, Value_Type > types() const </div></div>
-<div class="ttc" id="classmesos_1_1ResourceConversion_html_afa8d5fe5c9c3f6f1588d7df710262080"><div class="ttname"><a href="classmesos_1_1ResourceConversion.html#afa8d5fe5c9c3f6f1588d7df710262080">mesos::ResourceConversion::consumed</a></div><div class="ttdeci">Resources consumed</div><div class="ttdef"><b>Definition:</b> resources.hpp:713</div></div>
+<div class="ttc" id="classmesos_1_1ResourceConversion_html_afa8d5fe5c9c3f6f1588d7df710262080"><div class="ttname"><a href="classmesos_1_1ResourceConversion.html#afa8d5fe5c9c3f6f1588d7df710262080">mesos::ResourceConversion::consumed</a></div><div class="ttdeci">Resources consumed</div><div class="ttdef"><b>Definition:</b> resources.hpp:718</div></div>
<div class="ttc" id="classError_html"><div class="ttname"><a href="classError.html">Error</a></div><div class="ttdef"><b>Definition:</b> errorbase.hpp:35</div></div>
<div class="ttc" id="classmesos_1_1Resources_html_a376ffdcf83696b9a957b8a24ce596649"><div class="ttname"><a href="classmesos_1_1Resources.html#a376ffdcf83696b9a957b8a24ce596649">mesos::Resources::names</a></div><div class="ttdeci">std::set< std::string > names() const </div></div>
<div class="ttc" id="classOption_html"><div class="ttname"><a href="classOption.html">Option< Error ></a></div></div>
<div class="ttc" id="classTry_html"><div class="ttname"><a href="classTry.html">Try</a></div><div class="ttdef"><b>Definition:</b> try.hpp:34</div></div>
-<div class="ttc" id="classmesos_1_1Resources_html_a07ff5813b931a26510a3343cb0c988e1"><div class="ttname"><a href="classmesos_1_1Resources.html#a07ff5813b931a26510a3343cb0c988e1">mesos::Resources::end</a></div><div class="ttdeci">const_iterator end()</div><div class="ttdef"><b>Definition:</b> resources.hpp:563</div></div>
+<div class="ttc" id="classmesos_1_1Resources_html_a07ff5813b931a26510a3343cb0c988e1"><div class="ttname"><a href="classmesos_1_1Resources.html#a07ff5813b931a26510a3343cb0c988e1">mesos::Resources::end</a></div><div class="ttdeci">const_iterator
<TRUNCATED>