http://git-wip-us.apache.org/repos/asf/mesos-site/blob/87badcb4/content/api/latest/c++/future_8hpp_source.html ---------------------------------------------------------------------- diff --git a/content/api/latest/c++/future_8hpp_source.html b/content/api/latest/c++/future_8hpp_source.html index c4db90c..dfb3790 100644 --- a/content/api/latest/c++/future_8hpp_source.html +++ b/content/api/latest/c++/future_8hpp_source.html @@ -1535,8 +1535,8 @@ <div class="line"><a name="l01481"></a><span class="lineno"> 1481</span> <span class="comment">// from the function 'then' whose parameter 'f' doesn't return a</span></div> <div class="line"><a name="l01482"></a><span class="lineno"> 1482</span> <span class="comment">// Future since the compiler can't properly infer otherwise.</span></div> <div class="line"><a name="l01483"></a><span class="lineno"> 1483</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, <span class="keyword">typename</span> X></div> -<div class="line"><a name="l01484"></a><span class="lineno"><a class="line" href="namespaceprocess_1_1internal.html#afca243b1724ff329e7a2582822949238"> 1484</a></span> <span class="keywordtype">void</span> <a class="code" href="namespaceprocess_1_1internal.html#afca243b1724ff329e7a2582822949238">thenf</a>(<a class="code" href="classlambda_1_1CallableOnce.html">lambda::CallableOnce</a><<a class="code" href="classprocess_1_1Future.html">Future<X></a>(<span class="keyword">const</span> T&)>&& <a class="code" href="namespaceprocess.html#a62d5333e8ec1817c249cf83e15d568b4">f</a>,</div> -<div class="line"><a name="l01485"></a><span class="lineno"> 1485</span>  <span class="keyword">const</span> std::shared_ptr<<a class="code" href="classprocess_1_1Promise.html">Promise<X></a>>& <a class="code" href="namespacemesos_1_1internal_1_1log_1_1protocol.html#a3b1f8bd7b18c51af9d1f58842950b545">promise</a>,</div> +<div class="line"><a name="l01484"></a><span class="lineno"><a class="line" href="namespaceprocess_1_1internal.html#a6ddcc193edfcb094fd22fb8e77bfb541"> 1484</a></span> <span class="keywordtype">void</span> <a class="code" href="namespaceprocess_1_1internal.html#a6ddcc193edfcb094fd22fb8e77bfb541">thenf</a>(<a class="code" href="classlambda_1_1CallableOnce.html">lambda::CallableOnce</a><<a class="code" href="classprocess_1_1Future.html">Future<X></a>(<span class="keyword">const</span> T&)>&& <a class="code" href="namespaceprocess.html#a62d5333e8ec1817c249cf83e15d568b4">f</a>,</div> +<div class="line"><a name="l01485"></a><span class="lineno"> 1485</span>  std::unique_ptr<<a class="code" href="classprocess_1_1Promise.html">Promise<X></a>> <a class="code" href="namespacemesos_1_1internal_1_1log_1_1protocol.html#a3b1f8bd7b18c51af9d1f58842950b545">promise</a>,</div> <div class="line"><a name="l01486"></a><span class="lineno"> 1486</span>  <span class="keyword">const</span> <a class="code" href="classprocess_1_1Future.html">Future<T></a>& future)</div> <div class="line"><a name="l01487"></a><span class="lineno"> 1487</span> {</div> <div class="line"><a name="l01488"></a><span class="lineno"> 1488</span>  <span class="keywordflow">if</span> (future.<a class="code" href="classprocess_1_1Future.html#a68f241961e700d0cecf982d9cc0043d7">isReady</a>()) {</div> @@ -1554,8 +1554,8 @@ <div class="line"><a name="l01500"></a><span class="lineno"> 1500</span> </div> <div class="line"><a name="l01501"></a><span class="lineno"> 1501</span> </div> <div class="line"><a name="l01502"></a><span class="lineno"> 1502</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, <span class="keyword">typename</span> X></div> -<div class="line"><a name="l01503"></a><span class="lineno"><a class="line" href="namespaceprocess_1_1internal.html#a1542f80b0189d2ba1192670553b8ba08"> 1503</a></span> <span class="keywordtype">void</span> <a class="code" href="namespaceprocess_1_1internal.html#a1542f80b0189d2ba1192670553b8ba08">then</a>(<a class="code" href="classlambda_1_1CallableOnce.html">lambda::CallableOnce</a><X(<span class="keyword">const</span> T&)>&& <a class="code" href="namespaceprocess.html#a62d5333e8ec1817c249cf83e15d568b4">f</a>,</div> -<div class="line"><a name="l01504"></a><span class="lineno"> 1504</span>  <span class="keyword">const</span> std::shared_ptr<<a class="code" href="classprocess_1_1Promise.html">Promise<X></a>>& <a class="code" href="namespacemesos_1_1internal_1_1log_1_1protocol.html#a3b1f8bd7b18c51af9d1f58842950b545">promise</a>,</div> +<div class="line"><a name="l01503"></a><span class="lineno"><a class="line" href="namespaceprocess_1_1internal.html#a7885011cf6470b707294a6ef4ec7a0a6"> 1503</a></span> <span class="keywordtype">void</span> <a class="code" href="namespaceprocess_1_1internal.html#a7885011cf6470b707294a6ef4ec7a0a6">then</a>(<a class="code" href="classlambda_1_1CallableOnce.html">lambda::CallableOnce</a><X(<span class="keyword">const</span> T&)>&& <a class="code" href="namespaceprocess.html#a62d5333e8ec1817c249cf83e15d568b4">f</a>,</div> +<div class="line"><a name="l01504"></a><span class="lineno"> 1504</span>  std::unique_ptr<<a class="code" href="classprocess_1_1Promise.html">Promise<X></a>> <a class="code" href="namespacemesos_1_1internal_1_1log_1_1protocol.html#a3b1f8bd7b18c51af9d1f58842950b545">promise</a>,</div> <div class="line"><a name="l01505"></a><span class="lineno"> 1505</span>  <span class="keyword">const</span> <a class="code" href="classprocess_1_1Future.html">Future<T></a>& future)</div> <div class="line"><a name="l01506"></a><span class="lineno"> 1506</span> {</div> <div class="line"><a name="l01507"></a><span class="lineno"> 1507</span>  <span class="keywordflow">if</span> (future.<a class="code" href="classprocess_1_1Future.html#a68f241961e700d0cecf982d9cc0043d7">isReady</a>()) {</div> @@ -1573,9 +1573,9 @@ <div class="line"><a name="l01519"></a><span class="lineno"> 1519</span> </div> <div class="line"><a name="l01520"></a><span class="lineno"> 1520</span> </div> <div class="line"><a name="l01521"></a><span class="lineno"> 1521</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div> -<div class="line"><a name="l01522"></a><span class="lineno"><a class="line" href="namespaceprocess_1_1internal.html#a8175b4c04ebc5a6f415c800541b58799"> 1522</a></span> <span class="keywordtype">void</span> <a class="code" href="namespaceprocess_1_1internal.html#a8175b4c04ebc5a6f415c800541b58799">repair</a>(</div> +<div class="line"><a name="l01522"></a><span class="lineno"><a class="line" href="namespaceprocess_1_1internal.html#a533d576e37261090c2dab1d65702bac6"> 1522</a></span> <span class="keywordtype">void</span> <a class="code" href="namespaceprocess_1_1internal.html#a533d576e37261090c2dab1d65702bac6">repair</a>(</div> <div class="line"><a name="l01523"></a><span class="lineno"> 1523</span>  <a class="code" href="classlambda_1_1CallableOnce.html">lambda::CallableOnce</a><<a class="code" href="classprocess_1_1Future.html">Future<T></a>(<span class="keyword">const</span> <a class="code" href="classprocess_1_1Future.html">Future<T></a>&)>&& <a class="code" href="namespaceprocess.html#a62d5333e8ec1817c249cf83e15d568b4">f</a>,</div> -<div class="line"><a name="l01524"></a><span class="lineno"> 1524</span>  <span class="keyword">const</span> std::shared_ptr<<a class="code" href="classprocess_1_1Promise.html">Promise<T></a>>& <a class="code" href="namespacemesos_1_1internal_1_1log_1_1protocol.html#a3b1f8bd7b18c51af9d1f58842950b545">promise</a>,</div> +<div class="line"><a name="l01524"></a><span class="lineno"> 1524</span>  std::unique_ptr<<a class="code" href="classprocess_1_1Promise.html">Promise<T></a>> <a class="code" href="namespacemesos_1_1internal_1_1log_1_1protocol.html#a3b1f8bd7b18c51af9d1f58842950b545">promise</a>,</div> <div class="line"><a name="l01525"></a><span class="lineno"> 1525</span>  <span class="keyword">const</span> <a class="code" href="classprocess_1_1Future.html">Future<T></a>& future)</div> <div class="line"><a name="l01526"></a><span class="lineno"> 1526</span> {</div> <div class="line"><a name="l01527"></a><span class="lineno"> 1527</span>  CHECK(!future.<a class="code" href="classprocess_1_1Future.html#af23884cf963eb5ec061595eb2e288903">isPending</a>());</div> @@ -1645,23 +1645,23 @@ <div class="line"><a name="l01591"></a><span class="lineno"> 1591</span> <span class="keyword">template</span> <<span class="keyword">typename</span> X></div> <div class="line"><a name="l01592"></a><span class="lineno"><a class="line" href="classprocess_1_1Future.html#a269dcc23e03e8868067c24fe70b65a41"> 1592</a></span> <a class="code" href="classprocess_1_1Future.html">Future<X></a> <a class="code" href="classprocess_1_1Future.html#a269dcc23e03e8868067c24fe70b65a41">Future<T>::then</a>(<a class="code" href="classlambda_1_1CallableOnce.html">lambda::CallableOnce</a><<a class="code" href="classprocess_1_1Future.html">Future<X></a>(<span class="keyword">const</span> T&)> <a class="code" href="namespaceprocess.html#a62d5333e8ec1817c249cf83e15d568b4">f</a>)<span class="keyword"> const</span></div> <div class="line"><a name="l01593"></a><span class="lineno"> 1593</span> <span class="keyword"></span>{</div> -<div class="line"><a name="l01594"></a><span class="lineno"> 1594</span>  std::shared_ptr<Promise<X>> <a class="code" href="namespacemesos_1_1internal_1_1log_1_1protocol.html#a3b1f8bd7b18c51af9d1f58842950b545">promise</a>(<span class="keyword">new</span> <a class="code" href="classprocess_1_1Promise.html">Promise<X></a>());</div> -<div class="line"><a name="l01595"></a><span class="lineno"> 1595</span> </div> -<div class="line"><a name="l01596"></a><span class="lineno"> 1596</span>  <a class="code" href="classlambda_1_1CallableOnce.html">lambda::CallableOnce<void(const Future<T></a>&)> <a class="code" href="namespaceprocess_1_1internal.html#afca243b1724ff329e7a2582822949238">thenf</a> =</div> -<div class="line"><a name="l01597"></a><span class="lineno"> 1597</span>  <a class="code" href="namespacelambda.html#a67028306e65f852e64b8a4b7715803d2">lambda::partial</a>(&internal::thenf<T, X>, std::move(<a class="code" href="namespaceprocess.html#a62d5333e8ec1817c249cf83e15d568b4">f</a>), <a class="code" href="namespacemesos_1_1internal_1_1log_1_1protocol.html#a3b1f8bd7b18c51af9d1f58842950b545">promise</a>, lambda::_1);</div> -<div class="line"><a name="l01598"></a><span class="lineno"> 1598</span> </div> -<div class="line"><a name="l01599"></a><span class="lineno"> 1599</span>  onAny(std::move(<a class="code" href="namespaceprocess_1_1internal.html#afca243b1724ff329e7a2582822949238">thenf</a>));</div> -<div class="line"><a name="l01600"></a><span class="lineno"> 1600</span> </div> -<div class="line"><a name="l01601"></a><span class="lineno"> 1601</span>  onAbandoned([=]() {</div> -<div class="line"><a name="l01602"></a><span class="lineno"> 1602</span>  promise->future().abandon();</div> -<div class="line"><a name="l01603"></a><span class="lineno"> 1603</span>  });</div> -<div class="line"><a name="l01604"></a><span class="lineno"> 1604</span> </div> -<div class="line"><a name="l01605"></a><span class="lineno"> 1605</span>  <span class="comment">// Propagate discarding up the chain. To avoid cyclic dependencies,</span></div> -<div class="line"><a name="l01606"></a><span class="lineno"> 1606</span>  <span class="comment">// we keep a weak future in the callback.</span></div> -<div class="line"><a name="l01607"></a><span class="lineno"> 1607</span>  promise->future().onDiscard(</div> -<div class="line"><a name="l01608"></a><span class="lineno"> 1608</span>  <a class="code" href="namespaceprocess_1_1network.html#ad067110a4b38cc83785a43f49bf6c8e2">lambda::bind</a>(&internal::discard<T>, <a class="code" href="classprocess_1_1WeakFuture.html">WeakFuture<T></a>(*<span class="keyword">this</span>)));</div> +<div class="line"><a name="l01594"></a><span class="lineno"> 1594</span>  std::unique_ptr<Promise<X>> <a class="code" href="namespacemesos_1_1internal_1_1log_1_1protocol.html#a3b1f8bd7b18c51af9d1f58842950b545">promise</a>(<span class="keyword">new</span> <a class="code" href="classprocess_1_1Promise.html">Promise<X></a>());</div> +<div class="line"><a name="l01595"></a><span class="lineno"> 1595</span>  <a class="code" href="classprocess_1_1Future.html">Future<X></a> future = promise->future();</div> +<div class="line"><a name="l01596"></a><span class="lineno"> 1596</span> </div> +<div class="line"><a name="l01597"></a><span class="lineno"> 1597</span>  <a class="code" href="classlambda_1_1CallableOnce.html">lambda::CallableOnce<void(const Future<T></a>&)> <a class="code" href="namespaceprocess_1_1internal.html#a6ddcc193edfcb094fd22fb8e77bfb541">thenf</a> = <a class="code" href="namespacelambda.html#a67028306e65f852e64b8a4b7715803d2">lambda::partial</a>(</div> +<div class="line"><a name="l01598"></a><span class="lineno"> 1598</span>  &internal::thenf<T, X>, std::move(<a class="code" href="namespaceprocess.html#a62d5333e8ec1817c249cf83e15d568b4">f</a>), std::move(promise), lambda::_1);</div> +<div class="line"><a name="l01599"></a><span class="lineno"> 1599</span> </div> +<div class="line"><a name="l01600"></a><span class="lineno"> 1600</span>  onAny(std::move(<a class="code" href="namespaceprocess_1_1internal.html#a6ddcc193edfcb094fd22fb8e77bfb541">thenf</a>));</div> +<div class="line"><a name="l01601"></a><span class="lineno"> 1601</span> </div> +<div class="line"><a name="l01602"></a><span class="lineno"> 1602</span>  onAbandoned([=]() <span class="keyword">mutable</span> {</div> +<div class="line"><a name="l01603"></a><span class="lineno"> 1603</span>  future.abandon();</div> +<div class="line"><a name="l01604"></a><span class="lineno"> 1604</span>  });</div> +<div class="line"><a name="l01605"></a><span class="lineno"> 1605</span> </div> +<div class="line"><a name="l01606"></a><span class="lineno"> 1606</span>  <span class="comment">// Propagate discarding up the chain. To avoid cyclic dependencies,</span></div> +<div class="line"><a name="l01607"></a><span class="lineno"> 1607</span>  <span class="comment">// we keep a weak future in the callback.</span></div> +<div class="line"><a name="l01608"></a><span class="lineno"> 1608</span>  future.<a class="code" href="classprocess_1_1Future.html#a1b80bf321358be44880d9c6bae5d9a2d">onDiscard</a>(<a class="code" href="namespaceprocess_1_1network.html#ad067110a4b38cc83785a43f49bf6c8e2">lambda::bind</a>(&internal::discard<T>, <a class="code" href="classprocess_1_1WeakFuture.html">WeakFuture<T></a>(*<span class="keyword">this</span>)));</div> <div class="line"><a name="l01609"></a><span class="lineno"> 1609</span> </div> -<div class="line"><a name="l01610"></a><span class="lineno"> 1610</span>  <span class="keywordflow">return</span> promise->future();</div> +<div class="line"><a name="l01610"></a><span class="lineno"> 1610</span>  <span class="keywordflow">return</span> future;</div> <div class="line"><a name="l01611"></a><span class="lineno"> 1611</span> }</div> <div class="line"><a name="l01612"></a><span class="lineno"> 1612</span> </div> <div class="line"><a name="l01613"></a><span class="lineno"> 1613</span> </div> @@ -1669,23 +1669,23 @@ <div class="line"><a name="l01615"></a><span class="lineno"> 1615</span> <span class="keyword">template</span> <<span class="keyword">typename</span> X></div> <div class="line"><a name="l01616"></a><span class="lineno"><a class="line" href="classprocess_1_1Future.html#a25cfc59148749fac3deaaab1119a2717"> 1616</a></span> <a class="code" href="classprocess_1_1Future.html">Future<X></a> <a class="code" href="classprocess_1_1Future.html#a269dcc23e03e8868067c24fe70b65a41">Future<T>::then</a>(<a class="code" href="classlambda_1_1CallableOnce.html">lambda::CallableOnce</a><X(<span class="keyword">const</span> T&)> <a class="code" href="namespaceprocess.html#a62d5333e8ec1817c249cf83e15d568b4">f</a>)<span class="keyword"> const</span></div> <div class="line"><a name="l01617"></a><span class="lineno"> 1617</span> <span class="keyword"></span>{</div> -<div class="line"><a name="l01618"></a><span class="lineno"> 1618</span>  std::shared_ptr<Promise<X>> <a class="code" href="namespacemesos_1_1internal_1_1log_1_1protocol.html#a3b1f8bd7b18c51af9d1f58842950b545">promise</a>(<span class="keyword">new</span> <a class="code" href="classprocess_1_1Promise.html">Promise<X></a>());</div> -<div class="line"><a name="l01619"></a><span class="lineno"> 1619</span> </div> -<div class="line"><a name="l01620"></a><span class="lineno"> 1620</span>  <a class="code" href="classlambda_1_1CallableOnce.html">lambda::CallableOnce<void(const Future<T></a>&)> <a class="code" href="namespaceprocess_1_1internal.html#a1542f80b0189d2ba1192670553b8ba08">then</a> =</div> -<div class="line"><a name="l01621"></a><span class="lineno"> 1621</span>  <a class="code" href="namespacelambda.html#a67028306e65f852e64b8a4b7715803d2">lambda::partial</a>(&internal::then<T, X>, std::move(<a class="code" href="namespaceprocess.html#a62d5333e8ec1817c249cf83e15d568b4">f</a>), <a class="code" href="namespacemesos_1_1internal_1_1log_1_1protocol.html#a3b1f8bd7b18c51af9d1f58842950b545">promise</a>, lambda::_1);</div> -<div class="line"><a name="l01622"></a><span class="lineno"> 1622</span> </div> -<div class="line"><a name="l01623"></a><span class="lineno"> 1623</span>  onAny(std::move(<a class="code" href="namespaceprocess_1_1internal.html#a1542f80b0189d2ba1192670553b8ba08">then</a>));</div> -<div class="line"><a name="l01624"></a><span class="lineno"> 1624</span> </div> -<div class="line"><a name="l01625"></a><span class="lineno"> 1625</span>  onAbandoned([=]() {</div> -<div class="line"><a name="l01626"></a><span class="lineno"> 1626</span>  promise->future().abandon();</div> -<div class="line"><a name="l01627"></a><span class="lineno"> 1627</span>  });</div> -<div class="line"><a name="l01628"></a><span class="lineno"> 1628</span> </div> -<div class="line"><a name="l01629"></a><span class="lineno"> 1629</span>  <span class="comment">// Propagate discarding up the chain. To avoid cyclic dependencies,</span></div> -<div class="line"><a name="l01630"></a><span class="lineno"> 1630</span>  <span class="comment">// we keep a weak future in the callback.</span></div> -<div class="line"><a name="l01631"></a><span class="lineno"> 1631</span>  promise->future().onDiscard(</div> -<div class="line"><a name="l01632"></a><span class="lineno"> 1632</span>  <a class="code" href="namespaceprocess_1_1network.html#ad067110a4b38cc83785a43f49bf6c8e2">lambda::bind</a>(&internal::discard<T>, <a class="code" href="classprocess_1_1WeakFuture.html">WeakFuture<T></a>(*<span class="keyword">this</span>)));</div> +<div class="line"><a name="l01618"></a><span class="lineno"> 1618</span>  std::unique_ptr<Promise<X>> <a class="code" href="namespacemesos_1_1internal_1_1log_1_1protocol.html#a3b1f8bd7b18c51af9d1f58842950b545">promise</a>(<span class="keyword">new</span> <a class="code" href="classprocess_1_1Promise.html">Promise<X></a>());</div> +<div class="line"><a name="l01619"></a><span class="lineno"> 1619</span>  <a class="code" href="classprocess_1_1Future.html">Future<X></a> future = promise->future();</div> +<div class="line"><a name="l01620"></a><span class="lineno"> 1620</span> </div> +<div class="line"><a name="l01621"></a><span class="lineno"> 1621</span>  <a class="code" href="classlambda_1_1CallableOnce.html">lambda::CallableOnce<void(const Future<T></a>&)> <a class="code" href="namespaceprocess_1_1internal.html#a7885011cf6470b707294a6ef4ec7a0a6">then</a> = <a class="code" href="namespacelambda.html#a67028306e65f852e64b8a4b7715803d2">lambda::partial</a>(</div> +<div class="line"><a name="l01622"></a><span class="lineno"> 1622</span>  &internal::then<T, X>, std::move(<a class="code" href="namespaceprocess.html#a62d5333e8ec1817c249cf83e15d568b4">f</a>), std::move(promise), lambda::_1);</div> +<div class="line"><a name="l01623"></a><span class="lineno"> 1623</span> </div> +<div class="line"><a name="l01624"></a><span class="lineno"> 1624</span>  onAny(std::move(<a class="code" href="namespaceprocess_1_1internal.html#a7885011cf6470b707294a6ef4ec7a0a6">then</a>));</div> +<div class="line"><a name="l01625"></a><span class="lineno"> 1625</span> </div> +<div class="line"><a name="l01626"></a><span class="lineno"> 1626</span>  onAbandoned([=]() <span class="keyword">mutable</span> {</div> +<div class="line"><a name="l01627"></a><span class="lineno"> 1627</span>  future.abandon();</div> +<div class="line"><a name="l01628"></a><span class="lineno"> 1628</span>  });</div> +<div class="line"><a name="l01629"></a><span class="lineno"> 1629</span> </div> +<div class="line"><a name="l01630"></a><span class="lineno"> 1630</span>  <span class="comment">// Propagate discarding up the chain. To avoid cyclic dependencies,</span></div> +<div class="line"><a name="l01631"></a><span class="lineno"> 1631</span>  <span class="comment">// we keep a weak future in the callback.</span></div> +<div class="line"><a name="l01632"></a><span class="lineno"> 1632</span>  future.<a class="code" href="classprocess_1_1Future.html#a1b80bf321358be44880d9c6bae5d9a2d">onDiscard</a>(<a class="code" href="namespaceprocess_1_1network.html#ad067110a4b38cc83785a43f49bf6c8e2">lambda::bind</a>(&internal::discard<T>, <a class="code" href="classprocess_1_1WeakFuture.html">WeakFuture<T></a>(*<span class="keyword">this</span>)));</div> <div class="line"><a name="l01633"></a><span class="lineno"> 1633</span> </div> -<div class="line"><a name="l01634"></a><span class="lineno"> 1634</span>  <span class="keywordflow">return</span> promise->future();</div> +<div class="line"><a name="l01634"></a><span class="lineno"> 1634</span>  <span class="keywordflow">return</span> future;</div> <div class="line"><a name="l01635"></a><span class="lineno"> 1635</span> }</div> <div class="line"><a name="l01636"></a><span class="lineno"> 1636</span> </div> <div class="line"><a name="l01637"></a><span class="lineno"> 1637</span> </div> @@ -1740,21 +1740,21 @@ <div class="line"><a name="l01686"></a><span class="lineno"><a class="line" href="classprocess_1_1Future.html#acab408956a173e5efd35076fa713cbb7"> 1686</a></span> <a class="code" href="classprocess_1_1Future.html">Future<T></a> <a class="code" href="classprocess_1_1Future.html#acab408956a173e5efd35076fa713cbb7">Future<T>::repair</a>(</div> <div class="line"><a name="l01687"></a><span class="lineno"> 1687</span>  <a class="code" href="classlambda_1_1CallableOnce.html">lambda::CallableOnce</a><<a class="code" href="classprocess_1_1Future.html">Future<T></a>(<span class="keyword">const</span> <a class="code" href="classprocess_1_1Future.html">Future<T></a>&)> <a class="code" href="namespaceprocess.html#a62d5333e8ec1817c249cf83e15d568b4">f</a>)<span class="keyword"> const</span></div> <div class="line"><a name="l01688"></a><span class="lineno"> 1688</span> <span class="keyword"></span>{</div> -<div class="line"><a name="l01689"></a><span class="lineno"> 1689</span>  std::shared_ptr<Promise<T>> <a class="code" href="namespacemesos_1_1internal_1_1log_1_1protocol.html#a3b1f8bd7b18c51af9d1f58842950b545">promise</a>(<span class="keyword">new</span> <a class="code" href="classprocess_1_1Promise.html">Promise<T></a>());</div> -<div class="line"><a name="l01690"></a><span class="lineno"> 1690</span> </div> -<div class="line"><a name="l01691"></a><span class="lineno"> 1691</span>  onAny(</div> -<div class="line"><a name="l01692"></a><span class="lineno"> 1692</span>  <a class="code" href="namespacelambda.html#a67028306e65f852e64b8a4b7715803d2">lambda::partial</a>(&internal::repair<T>, std::move(<a class="code" href="namespaceprocess.html#a62d5333e8ec1817c249cf83e15d568b4">f</a>), promise, lambda::_1));</div> -<div class="line"><a name="l01693"></a><span class="lineno"> 1693</span> </div> -<div class="line"><a name="l01694"></a><span class="lineno"> 1694</span>  onAbandoned([=]() {</div> -<div class="line"><a name="l01695"></a><span class="lineno"> 1695</span>  promise->future().abandon();</div> -<div class="line"><a name="l01696"></a><span class="lineno"> 1696</span>  });</div> -<div class="line"><a name="l01697"></a><span class="lineno"> 1697</span> </div> -<div class="line"><a name="l01698"></a><span class="lineno"> 1698</span>  <span class="comment">// Propagate discarding up the chain. To avoid cyclic dependencies,</span></div> -<div class="line"><a name="l01699"></a><span class="lineno"> 1699</span>  <span class="comment">// we keep a weak future in the callback.</span></div> -<div class="line"><a name="l01700"></a><span class="lineno"> 1700</span>  promise->future().onDiscard(</div> -<div class="line"><a name="l01701"></a><span class="lineno"> 1701</span>  <a class="code" href="namespaceprocess_1_1network.html#ad067110a4b38cc83785a43f49bf6c8e2">lambda::bind</a>(&internal::discard<T>, <a class="code" href="classprocess_1_1WeakFuture.html">WeakFuture<T></a>(*<span class="keyword">this</span>)));</div> +<div class="line"><a name="l01689"></a><span class="lineno"> 1689</span>  std::unique_ptr<Promise<T>> <a class="code" href="namespacemesos_1_1internal_1_1log_1_1protocol.html#a3b1f8bd7b18c51af9d1f58842950b545">promise</a>(<span class="keyword">new</span> <a class="code" href="classprocess_1_1Promise.html">Promise<T></a>());</div> +<div class="line"><a name="l01690"></a><span class="lineno"> 1690</span>  <a class="code" href="classprocess_1_1Future.html">Future<T></a> future = promise->future();</div> +<div class="line"><a name="l01691"></a><span class="lineno"> 1691</span> </div> +<div class="line"><a name="l01692"></a><span class="lineno"> 1692</span>  onAny(<a class="code" href="namespacelambda.html#a67028306e65f852e64b8a4b7715803d2">lambda::partial</a>(</div> +<div class="line"><a name="l01693"></a><span class="lineno"> 1693</span>  &internal::repair<T>, std::move(<a class="code" href="namespaceprocess.html#a62d5333e8ec1817c249cf83e15d568b4">f</a>), std::move(promise), lambda::_1));</div> +<div class="line"><a name="l01694"></a><span class="lineno"> 1694</span> </div> +<div class="line"><a name="l01695"></a><span class="lineno"> 1695</span>  onAbandoned([=]() <span class="keyword">mutable</span> {</div> +<div class="line"><a name="l01696"></a><span class="lineno"> 1696</span>  future.abandon();</div> +<div class="line"><a name="l01697"></a><span class="lineno"> 1697</span>  });</div> +<div class="line"><a name="l01698"></a><span class="lineno"> 1698</span> </div> +<div class="line"><a name="l01699"></a><span class="lineno"> 1699</span>  <span class="comment">// Propagate discarding up the chain. To avoid cyclic dependencies,</span></div> +<div class="line"><a name="l01700"></a><span class="lineno"> 1700</span>  <span class="comment">// we keep a weak future in the callback.</span></div> +<div class="line"><a name="l01701"></a><span class="lineno"> 1701</span>  future.<a class="code" href="classprocess_1_1Future.html#a1b80bf321358be44880d9c6bae5d9a2d">onDiscard</a>(<a class="code" href="namespaceprocess_1_1network.html#ad067110a4b38cc83785a43f49bf6c8e2">lambda::bind</a>(&internal::discard<T>, <a class="code" href="classprocess_1_1WeakFuture.html">WeakFuture<T></a>(*<span class="keyword">this</span>)));</div> <div class="line"><a name="l01702"></a><span class="lineno"> 1702</span> </div> -<div class="line"><a name="l01703"></a><span class="lineno"> 1703</span>  <span class="keywordflow">return</span> promise->future();</div> +<div class="line"><a name="l01703"></a><span class="lineno"> 1703</span>  <span class="keywordflow">return</span> future;</div> <div class="line"><a name="l01704"></a><span class="lineno"> 1704</span> }</div> <div class="line"><a name="l01705"></a><span class="lineno"> 1705</span> </div> <div class="line"><a name="l01706"></a><span class="lineno"> 1706</span> </div> @@ -1994,76 +1994,80 @@ <div class="line"><a name="l01940"></a><span class="lineno"> 1940</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div> <div class="line"><a name="l01941"></a><span class="lineno"><a class="line" href="namespaceprocess.html#a3bf988425025cc1f778727e61bc6d523"> 1941</a></span> <a class="code" href="classprocess_1_1Future.html">Future<T></a> <a class="code" href="namespaceprocess.html#a3bf988425025cc1f778727e61bc6d523">undiscardable</a>(<span class="keyword">const</span> <a class="code" href="classprocess_1_1Future.html">Future<T></a>& future)</div> <div class="line"><a name="l01942"></a><span class="lineno"> 1942</span> {</div> -<div class="line"><a name="l01943"></a><span class="lineno"> 1943</span>  std::shared_ptr<Promise<T>> <a class="code" href="namespacemesos_1_1internal_1_1log_1_1protocol.html#a3b1f8bd7b18c51af9d1f58842950b545">promise</a>(<span class="keyword">new</span> <a class="code" href="classprocess_1_1Promise.html">Promise<T></a>());</div> -<div class="line"><a name="l01944"></a><span class="lineno"> 1944</span>  future.<a class="code" href="classprocess_1_1Future.html#a71bde220aed3c725cef2040f63adf42a">onAny</a>([promise](<span class="keyword">const</span> <a class="code" href="classprocess_1_1Future.html">Future<T></a>& future) {</div> -<div class="line"><a name="l01945"></a><span class="lineno"> 1945</span>  promise->associate(future);</div> -<div class="line"><a name="l01946"></a><span class="lineno"> 1946</span>  });</div> -<div class="line"><a name="l01947"></a><span class="lineno"> 1947</span>  <span class="keywordflow">return</span> promise->future();</div> -<div class="line"><a name="l01948"></a><span class="lineno"> 1948</span> }</div> -<div class="line"><a name="l01949"></a><span class="lineno"> 1949</span> </div> -<div class="line"><a name="l01950"></a><span class="lineno"> 1950</span> </div> -<div class="line"><a name="l01951"></a><span class="lineno"> 1951</span> <span class="comment">// Decorator that for some callable `f` invokes</span></div> -<div class="line"><a name="l01952"></a><span class="lineno"> 1952</span> <span class="comment">// `undiscardable(f(args))` for some `args`. This is used by the</span></div> -<div class="line"><a name="l01953"></a><span class="lineno"> 1953</span> <span class="comment">// overload of `undiscardable()` that takes callables instead of a</span></div> -<div class="line"><a name="l01954"></a><span class="lineno"> 1954</span> <span class="comment">// specialization of `Future`.</span></div> -<div class="line"><a name="l01955"></a><span class="lineno"> 1955</span> <span class="comment">//</span></div> -<div class="line"><a name="l01956"></a><span class="lineno"> 1956</span> <span class="comment">// TODO(benh): Factor out a generic decorator pattern to be used in</span></div> -<div class="line"><a name="l01957"></a><span class="lineno"> 1957</span> <span class="comment">// other circumstances, e.g., to replace `_Deferred`.</span></div> -<div class="line"><a name="l01958"></a><span class="lineno"> 1958</span> <span class="keyword">template</span> <<span class="keyword">typename</span> F></div> -<div class="line"><a name="l01959"></a><span class="lineno"><a class="line" href="structprocess_1_1UndiscardableDecorator.html"> 1959</a></span> <span class="keyword">struct </span><a class="code" href="structprocess_1_1UndiscardableDecorator.html">UndiscardableDecorator</a></div> -<div class="line"><a name="l01960"></a><span class="lineno"> 1960</span> {</div> -<div class="line"><a name="l01961"></a><span class="lineno"> 1961</span>  <span class="keyword">template</span> <</div> -<div class="line"><a name="l01962"></a><span class="lineno"> 1962</span>  <span class="keyword">typename</span> G,</div> -<div class="line"><a name="l01963"></a><span class="lineno"> 1963</span>  <span class="keyword">typename</span> std::enable_if<</div> -<div class="line"><a name="l01964"></a><span class="lineno"> 1964</span>  std::is_constructible<F, G>::value, <span class="keywordtype">int</span>><a class="code" href="namespacemesos_1_1internal_1_1fs.html#a2343e2642db514496ba8380776487fba">::type</a> = 0></div> -<div class="line"><a name="l01965"></a><span class="lineno"><a class="line" href="structprocess_1_1UndiscardableDecorator.html#afc1bae35c8b0e91cd215bceb4d8e038b"> 1965</a></span>  <a class="code" href="structprocess_1_1UndiscardableDecorator.html#afc1bae35c8b0e91cd215bceb4d8e038b">UndiscardableDecorator</a>(G&& g) : <a class="code" href="structprocess_1_1UndiscardableDecorator.html#af431c54e30cf9f0862ab1618ab2130e2">f</a>(std::forward<G>(g)) {}</div> -<div class="line"><a name="l01966"></a><span class="lineno"> 1966</span> </div> -<div class="line"><a name="l01967"></a><span class="lineno"> 1967</span>  <span class="keyword">template</span> <<span class="keyword">typename</span>... Args></div> -<div class="line"><a name="l01968"></a><span class="lineno"><a class="line" href="structprocess_1_1UndiscardableDecorator.html#ac43b6c7b67a337a0008ecabe188fe8e3"> 1968</a></span>  <span class="keyword">auto</span> <a class="code" href="structprocess_1_1UndiscardableDecorator.html#ac43b6c7b67a337a0008ecabe188fe8e3">operator()</a>(Args&&... args)</div> -<div class="line"><a name="l01969"></a><span class="lineno"> 1969</span>  -> decltype(std::declval<F&>()(std::forward<Args>(args)...))</div> -<div class="line"><a name="l01970"></a><span class="lineno"> 1970</span>  {</div> -<div class="line"><a name="l01971"></a><span class="lineno"> 1971</span>  <span class="keyword">using</span> <a class="code" href="classResult.html">Result</a> =</div> -<div class="line"><a name="l01972"></a><span class="lineno"> 1972</span>  <span class="keyword">typename</span> std::decay<decltype(f(std::forward<Args>(args)...))>::<a class="code" href="namespacemesos_1_1internal_1_1fs.html#a2343e2642db514496ba8380776487fba">type</a>;</div> -<div class="line"><a name="l01973"></a><span class="lineno"> 1973</span> </div> -<div class="line"><a name="l01974"></a><span class="lineno"> 1974</span>  static_assert(</div> -<div class="line"><a name="l01975"></a><span class="lineno"> 1975</span>  <a class="code" href="structis__specialization__of.html">is_specialization_of<Future, Result>::value</a>,</div> -<div class="line"><a name="l01976"></a><span class="lineno"> 1976</span>  <span class="stringliteral">"Expecting Future<T> to be returned from undiscarded(...)"</span>);</div> +<div class="line"><a name="l01943"></a><span class="lineno"> 1943</span>  std::unique_ptr<Promise<T>> <a class="code" href="namespacemesos_1_1internal_1_1log_1_1protocol.html#a3b1f8bd7b18c51af9d1f58842950b545">promise</a>(<span class="keyword">new</span> <a class="code" href="classprocess_1_1Promise.html">Promise<T></a>());</div> +<div class="line"><a name="l01944"></a><span class="lineno"> 1944</span>  <a class="code" href="classprocess_1_1Future.html">Future<T></a> future_ = promise->future();</div> +<div class="line"><a name="l01945"></a><span class="lineno"> 1945</span>  future.<a class="code" href="classprocess_1_1Future.html#a71bde220aed3c725cef2040f63adf42a">onAny</a>(<a class="code" href="namespacelambda.html#a67028306e65f852e64b8a4b7715803d2">lambda::partial</a>(</div> +<div class="line"><a name="l01946"></a><span class="lineno"> 1946</span>  [](std::unique_ptr<<a class="code" href="classprocess_1_1Promise.html">Promise<T></a>> promise, <span class="keyword">const</span> <a class="code" href="classprocess_1_1Future.html">Future<T></a>& future) {</div> +<div class="line"><a name="l01947"></a><span class="lineno"> 1947</span>  promise->associate(future);</div> +<div class="line"><a name="l01948"></a><span class="lineno"> 1948</span>  },</div> +<div class="line"><a name="l01949"></a><span class="lineno"> 1949</span>  std::move(promise),</div> +<div class="line"><a name="l01950"></a><span class="lineno"> 1950</span>  lambda::_1));</div> +<div class="line"><a name="l01951"></a><span class="lineno"> 1951</span>  <span class="keywordflow">return</span> future_;</div> +<div class="line"><a name="l01952"></a><span class="lineno"> 1952</span> }</div> +<div class="line"><a name="l01953"></a><span class="lineno"> 1953</span> </div> +<div class="line"><a name="l01954"></a><span class="lineno"> 1954</span> </div> +<div class="line"><a name="l01955"></a><span class="lineno"> 1955</span> <span class="comment">// Decorator that for some callable `f` invokes</span></div> +<div class="line"><a name="l01956"></a><span class="lineno"> 1956</span> <span class="comment">// `undiscardable(f(args))` for some `args`. This is used by the</span></div> +<div class="line"><a name="l01957"></a><span class="lineno"> 1957</span> <span class="comment">// overload of `undiscardable()` that takes callables instead of a</span></div> +<div class="line"><a name="l01958"></a><span class="lineno"> 1958</span> <span class="comment">// specialization of `Future`.</span></div> +<div class="line"><a name="l01959"></a><span class="lineno"> 1959</span> <span class="comment">//</span></div> +<div class="line"><a name="l01960"></a><span class="lineno"> 1960</span> <span class="comment">// TODO(benh): Factor out a generic decorator pattern to be used in</span></div> +<div class="line"><a name="l01961"></a><span class="lineno"> 1961</span> <span class="comment">// other circumstances, e.g., to replace `_Deferred`.</span></div> +<div class="line"><a name="l01962"></a><span class="lineno"> 1962</span> <span class="keyword">template</span> <<span class="keyword">typename</span> F></div> +<div class="line"><a name="l01963"></a><span class="lineno"><a class="line" href="structprocess_1_1UndiscardableDecorator.html"> 1963</a></span> <span class="keyword">struct </span><a class="code" href="structprocess_1_1UndiscardableDecorator.html">UndiscardableDecorator</a></div> +<div class="line"><a name="l01964"></a><span class="lineno"> 1964</span> {</div> +<div class="line"><a name="l01965"></a><span class="lineno"> 1965</span>  <span class="keyword">template</span> <</div> +<div class="line"><a name="l01966"></a><span class="lineno"> 1966</span>  <span class="keyword">typename</span> G,</div> +<div class="line"><a name="l01967"></a><span class="lineno"> 1967</span>  <span class="keyword">typename</span> std::enable_if<</div> +<div class="line"><a name="l01968"></a><span class="lineno"> 1968</span>  std::is_constructible<F, G>::value, <span class="keywordtype">int</span>><a class="code" href="namespacemesos_1_1internal_1_1fs.html#a2343e2642db514496ba8380776487fba">::type</a> = 0></div> +<div class="line"><a name="l01969"></a><span class="lineno"><a class="line" href="structprocess_1_1UndiscardableDecorator.html#afc1bae35c8b0e91cd215bceb4d8e038b"> 1969</a></span>  <a class="code" href="structprocess_1_1UndiscardableDecorator.html#afc1bae35c8b0e91cd215bceb4d8e038b">UndiscardableDecorator</a>(G&& g) : <a class="code" href="structprocess_1_1UndiscardableDecorator.html#af431c54e30cf9f0862ab1618ab2130e2">f</a>(std::forward<G>(g)) {}</div> +<div class="line"><a name="l01970"></a><span class="lineno"> 1970</span> </div> +<div class="line"><a name="l01971"></a><span class="lineno"> 1971</span>  <span class="keyword">template</span> <<span class="keyword">typename</span>... Args></div> +<div class="line"><a name="l01972"></a><span class="lineno"><a class="line" href="structprocess_1_1UndiscardableDecorator.html#ac43b6c7b67a337a0008ecabe188fe8e3"> 1972</a></span>  <span class="keyword">auto</span> <a class="code" href="structprocess_1_1UndiscardableDecorator.html#ac43b6c7b67a337a0008ecabe188fe8e3">operator()</a>(Args&&... args)</div> +<div class="line"><a name="l01973"></a><span class="lineno"> 1973</span>  -> decltype(std::declval<F&>()(std::forward<Args>(args)...))</div> +<div class="line"><a name="l01974"></a><span class="lineno"> 1974</span>  {</div> +<div class="line"><a name="l01975"></a><span class="lineno"> 1975</span>  <span class="keyword">using</span> <a class="code" href="classResult.html">Result</a> =</div> +<div class="line"><a name="l01976"></a><span class="lineno"> 1976</span>  <span class="keyword">typename</span> std::decay<decltype(f(std::forward<Args>(args)...))>::<a class="code" href="namespacemesos_1_1internal_1_1fs.html#a2343e2642db514496ba8380776487fba">type</a>;</div> <div class="line"><a name="l01977"></a><span class="lineno"> 1977</span> </div> -<div class="line"><a name="l01978"></a><span class="lineno"> 1978</span>  <span class="keywordflow">return</span> <a class="code" href="namespaceprocess.html#a3bf988425025cc1f778727e61bc6d523">undiscardable</a>(<a class="code" href="structprocess_1_1UndiscardableDecorator.html#af431c54e30cf9f0862ab1618ab2130e2">f</a>(std::forward<Args>(args)...));</div> -<div class="line"><a name="l01979"></a><span class="lineno"> 1979</span>  }</div> -<div class="line"><a name="l01980"></a><span class="lineno"> 1980</span> </div> -<div class="line"><a name="l01981"></a><span class="lineno"><a class="line" href="structprocess_1_1UndiscardableDecorator.html#af431c54e30cf9f0862ab1618ab2130e2"> 1981</a></span>  F <a class="code" href="structprocess_1_1UndiscardableDecorator.html#af431c54e30cf9f0862ab1618ab2130e2">f</a>;</div> -<div class="line"><a name="l01982"></a><span class="lineno"> 1982</span> };</div> -<div class="line"><a name="l01983"></a><span class="lineno"> 1983</span> </div> +<div class="line"><a name="l01978"></a><span class="lineno"> 1978</span>  static_assert(</div> +<div class="line"><a name="l01979"></a><span class="lineno"> 1979</span>  <a class="code" href="structis__specialization__of.html">is_specialization_of<Future, Result>::value</a>,</div> +<div class="line"><a name="l01980"></a><span class="lineno"> 1980</span>  <span class="stringliteral">"Expecting Future<T> to be returned from undiscarded(...)"</span>);</div> +<div class="line"><a name="l01981"></a><span class="lineno"> 1981</span> </div> +<div class="line"><a name="l01982"></a><span class="lineno"> 1982</span>  <span class="keywordflow">return</span> <a class="code" href="namespaceprocess.html#a3bf988425025cc1f778727e61bc6d523">undiscardable</a>(<a class="code" href="structprocess_1_1UndiscardableDecorator.html#af431c54e30cf9f0862ab1618ab2130e2">f</a>(std::forward<Args>(args)...));</div> +<div class="line"><a name="l01983"></a><span class="lineno"> 1983</span>  }</div> <div class="line"><a name="l01984"></a><span class="lineno"> 1984</span> </div> -<div class="line"><a name="l01985"></a><span class="lineno"> 1985</span> <span class="comment">// An overload of `undiscardable()` above that takes and returns a</span></div> -<div class="line"><a name="l01986"></a><span class="lineno"> 1986</span> <span class="comment">// callable. The returned callable has decorated the provided callable</span></div> -<div class="line"><a name="l01987"></a><span class="lineno"> 1987</span> <span class="comment">// `f` such that when the returned callable is invoked it will in turn</span></div> -<div class="line"><a name="l01988"></a><span class="lineno"> 1988</span> <span class="comment">// invoke `undiscardable(f(args))` for some `args`. See</span></div> -<div class="line"><a name="l01989"></a><span class="lineno"> 1989</span> <span class="comment">// `UndiscardableDecorator` above for more details.</span></div> -<div class="line"><a name="l01990"></a><span class="lineno"> 1990</span> <span class="comment">//</span></div> -<div class="line"><a name="l01991"></a><span class="lineno"> 1991</span> <span class="comment">// Example:</span></div> -<div class="line"><a name="l01992"></a><span class="lineno"> 1992</span> <span class="comment">//</span></div> -<div class="line"><a name="l01993"></a><span class="lineno"> 1993</span> <span class="comment">// Future<int> future = foo()</span></div> -<div class="line"><a name="l01994"></a><span class="lineno"> 1994</span> <span class="comment">// .then(undiscardable([]() { ...; }));</span></div> -<div class="line"><a name="l01995"></a><span class="lineno"> 1995</span> <span class="comment">//</span></div> -<div class="line"><a name="l01996"></a><span class="lineno"> 1996</span> <span class="comment">// This guarantees that even if `future` is discarded the discard will</span></div> -<div class="line"><a name="l01997"></a><span class="lineno"> 1997</span> <span class="comment">// not propagate into the lambda passed into `.then()`.</span></div> -<div class="line"><a name="l01998"></a><span class="lineno"> 1998</span> <span class="keyword">template</span> <</div> -<div class="line"><a name="l01999"></a><span class="lineno"> 1999</span>  <span class="keyword">typename</span> F,</div> -<div class="line"><a name="l02000"></a><span class="lineno"> 2000</span>  <span class="keyword">typename</span> std::enable_if<</div> -<div class="line"><a name="l02001"></a><span class="lineno"> 2001</span>  !<a class="code" href="structis__specialization__of.html">is_specialization_of</a><</div> -<div class="line"><a name="l02002"></a><span class="lineno"> 2002</span>  <a class="code" href="classprocess_1_1Future.html">Future</a>,</div> -<div class="line"><a name="l02003"></a><span class="lineno"> 2003</span>  <span class="keyword">typename</span> <a class="code" href="namespacemesos_1_1internal_1_1fs.html#a2343e2642db514496ba8380776487fba">std::decay<F>::type</a>>::value, <span class="keywordtype">int</span>><a class="code" href="namespacemesos_1_1internal_1_1fs.html#a2343e2642db514496ba8380776487fba">::type</a> = 0></div> -<div class="line"><a name="l02004"></a><span class="lineno"><a class="line" href="namespaceprocess.html#a75a00f108c8067c629ad5c587a92eb55"> 2004</a></span> <a class="code" href="structprocess_1_1UndiscardableDecorator.html">UndiscardableDecorator<typename std::decay<F>::type</a>> <a class="code" href="namespaceprocess.html#a3bf988425025cc1f778727e61bc6d523">undiscardable</a>(F&& <a class="code" href="namespaceprocess.html#a62d5333e8ec1817c249cf83e15d568b4">f</a>)</div> -<div class="line"><a name="l02005"></a><span class="lineno"> 2005</span> {</div> -<div class="line"><a name="l02006"></a><span class="lineno"> 2006</span>  <span class="keywordflow">return</span> <a class="code" href="structprocess_1_1UndiscardableDecorator.html">UndiscardableDecorator</a><</div> -<div class="line"><a name="l02007"></a><span class="lineno"> 2007</span>  <span class="keyword">typename</span> <a class="code" href="namespacemesos_1_1internal_1_1fs.html#a2343e2642db514496ba8380776487fba">std::decay<F>::type</a>>(std::forward<F>(<a class="code" href="namespaceprocess.html#a62d5333e8ec1817c249cf83e15d568b4">f</a>));</div> -<div class="line"><a name="l02008"></a><span class="lineno"> 2008</span> }</div> -<div class="line"><a name="l02009"></a><span class="lineno"> 2009</span> </div> -<div class="line"><a name="l02010"></a><span class="lineno"> 2010</span> } <span class="comment">// namespace process {</span></div> -<div class="line"><a name="l02011"></a><span class="lineno"> 2011</span> </div> -<div class="line"><a name="l02012"></a><span class="lineno"> 2012</span> <span class="preprocessor">#endif // __PROCESS_FUTURE_HPP__</span></div> +<div class="line"><a name="l01985"></a><span class="lineno"><a class="line" href="structprocess_1_1UndiscardableDecorator.html#af431c54e30cf9f0862ab1618ab2130e2"> 1985</a></span>  F <a class="code" href="structprocess_1_1UndiscardableDecorator.html#af431c54e30cf9f0862ab1618ab2130e2">f</a>;</div> +<div class="line"><a name="l01986"></a><span class="lineno"> 1986</span> };</div> +<div class="line"><a name="l01987"></a><span class="lineno"> 1987</span> </div> +<div class="line"><a name="l01988"></a><span class="lineno"> 1988</span> </div> +<div class="line"><a name="l01989"></a><span class="lineno"> 1989</span> <span class="comment">// An overload of `undiscardable()` above that takes and returns a</span></div> +<div class="line"><a name="l01990"></a><span class="lineno"> 1990</span> <span class="comment">// callable. The returned callable has decorated the provided callable</span></div> +<div class="line"><a name="l01991"></a><span class="lineno"> 1991</span> <span class="comment">// `f` such that when the returned callable is invoked it will in turn</span></div> +<div class="line"><a name="l01992"></a><span class="lineno"> 1992</span> <span class="comment">// invoke `undiscardable(f(args))` for some `args`. See</span></div> +<div class="line"><a name="l01993"></a><span class="lineno"> 1993</span> <span class="comment">// `UndiscardableDecorator` above for more details.</span></div> +<div class="line"><a name="l01994"></a><span class="lineno"> 1994</span> <span class="comment">//</span></div> +<div class="line"><a name="l01995"></a><span class="lineno"> 1995</span> <span class="comment">// Example:</span></div> +<div class="line"><a name="l01996"></a><span class="lineno"> 1996</span> <span class="comment">//</span></div> +<div class="line"><a name="l01997"></a><span class="lineno"> 1997</span> <span class="comment">// Future<int> future = foo()</span></div> +<div class="line"><a name="l01998"></a><span class="lineno"> 1998</span> <span class="comment">// .then(undiscardable([]() { ...; }));</span></div> +<div class="line"><a name="l01999"></a><span class="lineno"> 1999</span> <span class="comment">//</span></div> +<div class="line"><a name="l02000"></a><span class="lineno"> 2000</span> <span class="comment">// This guarantees that even if `future` is discarded the discard will</span></div> +<div class="line"><a name="l02001"></a><span class="lineno"> 2001</span> <span class="comment">// not propagate into the lambda passed into `.then()`.</span></div> +<div class="line"><a name="l02002"></a><span class="lineno"> 2002</span> <span class="keyword">template</span> <</div> +<div class="line"><a name="l02003"></a><span class="lineno"> 2003</span>  <span class="keyword">typename</span> F,</div> +<div class="line"><a name="l02004"></a><span class="lineno"> 2004</span>  <span class="keyword">typename</span> std::enable_if<</div> +<div class="line"><a name="l02005"></a><span class="lineno"> 2005</span>  !<a class="code" href="structis__specialization__of.html">is_specialization_of</a><</div> +<div class="line"><a name="l02006"></a><span class="lineno"> 2006</span>  <a class="code" href="classprocess_1_1Future.html">Future</a>,</div> +<div class="line"><a name="l02007"></a><span class="lineno"> 2007</span>  <span class="keyword">typename</span> <a class="code" href="namespacemesos_1_1internal_1_1fs.html#a2343e2642db514496ba8380776487fba">std::decay<F>::type</a>>::value, <span class="keywordtype">int</span>><a class="code" href="namespacemesos_1_1internal_1_1fs.html#a2343e2642db514496ba8380776487fba">::type</a> = 0></div> +<div class="line"><a name="l02008"></a><span class="lineno"><a class="line" href="namespaceprocess.html#a75a00f108c8067c629ad5c587a92eb55"> 2008</a></span> <a class="code" href="structprocess_1_1UndiscardableDecorator.html">UndiscardableDecorator<typename std::decay<F>::type</a>> <a class="code" href="namespaceprocess.html#a3bf988425025cc1f778727e61bc6d523">undiscardable</a>(F&& <a class="code" href="namespaceprocess.html#a62d5333e8ec1817c249cf83e15d568b4">f</a>)</div> +<div class="line"><a name="l02009"></a><span class="lineno"> 2009</span> {</div> +<div class="line"><a name="l02010"></a><span class="lineno"> 2010</span>  <span class="keywordflow">return</span> <a class="code" href="structprocess_1_1UndiscardableDecorator.html">UndiscardableDecorator</a><</div> +<div class="line"><a name="l02011"></a><span class="lineno"> 2011</span>  <span class="keyword">typename</span> <a class="code" href="namespacemesos_1_1internal_1_1fs.html#a2343e2642db514496ba8380776487fba">std::decay<F>::type</a>>(std::forward<F>(<a class="code" href="namespaceprocess.html#a62d5333e8ec1817c249cf83e15d568b4">f</a>));</div> +<div class="line"><a name="l02012"></a><span class="lineno"> 2012</span> }</div> +<div class="line"><a name="l02013"></a><span class="lineno"> 2013</span> </div> +<div class="line"><a name="l02014"></a><span class="lineno"> 2014</span> } <span class="comment">// namespace process {</span></div> +<div class="line"><a name="l02015"></a><span class="lineno"> 2015</span> </div> +<div class="line"><a name="l02016"></a><span class="lineno"> 2016</span> <span class="preprocessor">#endif // __PROCESS_FUTURE_HPP__</span></div> <div class="ttc" id="namespaceprocess_1_1internal_html_ae0eecf64520fb955719d8edce806cc9b"><div class="ttname"><a href="namespaceprocess_1_1internal.html#ae0eecf64520fb955719d8edce806cc9b">process::internal::select</a></div><div class="ttdeci">void select(const Future< T > &future, std::shared_ptr< Promise< Future< T >>> promise)</div><div class="ttdef"><b>Definition:</b> future.hpp:950</div></div> <div class="ttc" id="synchronized_8hpp_html"><div class="ttname"><a href="synchronized_8hpp.html">synchronized.hpp</a></div></div> <div class="ttc" id="classprocess_1_1Future_html_a68f241961e700d0cecf982d9cc0043d7"><div class="ttname"><a href="classprocess_1_1Future.html#a68f241961e700d0cecf982d9cc0043d7">process::Future::isReady</a></div><div class="ttdeci">bool isReady() const </div><div class="ttdef"><b>Definition:</b> future.hpp:1231</div></div> @@ -2076,7 +2080,6 @@ <div class="ttc" id="classprocess_1_1Future_html_a79919e2b8fded40f30f720c521c98ded"><div class="ttname"><a href="classprocess_1_1Future.html#a79919e2b8fded40f30f720c521c98ded">process::Future::onAny</a></div><div class="ttdeci">const Future< T > & onAny(F &&f) const </div><div class="ttdef"><b>Definition:</b> future.hpp:379</div></div> <div class="ttc" id="classprocess_1_1Future_html_af451893e5d06180aaeee5c42df0930c1"><div class="ttname"><a href="classprocess_1_1Future.html#af451893e5d06180aaeee5c42df0930c1">process::Future::DiscardedCallback</a></div><div class="ttdeci">lambda::CallableOnce< void()> DiscardedCallback</div><div class="ttdef"><b>Definition:</b> future.hpp:166</div></div> <div class="ttc" id="classprocess_1_1Future_html_aa78977d3b585a5f5ccd682c1e9e2ddc4"><div class="ttname"><a href="classprocess_1_1Future.html#aa78977d3b585a5f5ccd682c1e9e2ddc4">process::Future::get</a></div><div class="ttdeci">const T & get() const </div><div class="ttdef"><b>Definition:</b> future.hpp:1310</div></div> -<div class="ttc" id="namespaceprocess_1_1internal_html_a1542f80b0189d2ba1192670553b8ba08"><div class="ttname"><a href="namespaceprocess_1_1internal.html#a1542f80b0189d2ba1192670553b8ba08">process::internal::then</a></div><div class="ttdeci">void then(lambda::CallableOnce< X(const T &)> &&f, const std::shared_ptr< Promise< X >> &promise, const Future< T > &future)</div><div class="ttdef"><b>Definition:</b> future.hpp:1503</div></div> <div class="ttc" id="classprocess_1_1Promise_html_a989b8dfa7eb2633de3f0f25ac2b87943"><div class="ttname"><a href="classprocess_1_1Promise.html#a989b8dfa7eb2633de3f0f25ac2b87943">process::Promise::set</a></div><div class="ttdeci">bool set(const T &_t)</div><div class="ttdef"><b>Definition:</b> future.hpp:826</div></div> <div class="ttc" id="structprocess_1_1internal_1_1unwrap_html_a42055ebfe5f79c5139c8811f9866cce9"><div class="ttname"><a href="structprocess_1_1internal_1_1unwrap.html#a42055ebfe5f79c5139c8811f9866cce9">process::internal::unwrap::type</a></div><div class="ttdeci">T type</div><div class="ttdef"><b>Definition:</b> future.hpp:938</div></div> <div class="ttc" id="structprocess_1_1Failure_html_a8c4300d075059c3cc5b2ee745f44954b"><div class="ttname"><a href="structprocess_1_1Failure.html#a8c4300d075059c3cc5b2ee745f44954b">process::Failure::Failure</a></div><div class="ttdeci">Failure(const std::string &_message)</div><div class="ttdef"><b>Definition:</b> future.hpp:666</div></div> @@ -2099,8 +2102,9 @@ <div class="ttc" id="classprocess_1_1Future_html_a8c5395e292096cc9e91047ab6958564a"><div class="ttname"><a href="classprocess_1_1Future.html#a8c5395e292096cc9e91047ab6958564a">process::Future::onFailed</a></div><div class="ttdeci">const Future< T > & onFailed(F &&f) const </div><div class="ttdef"><b>Definition:</b> future.hpp:362</div></div> <div class="ttc" id="stout_2include_2stout_2check_8hpp_html_a7d338bde94559d47319226f4ccbc0bda"><div class="ttname"><a href="stout_2include_2stout_2check_8hpp.html#a7d338bde94559d47319226f4ccbc0bda">CHECK_ERROR</a></div><div class="ttdeci">#define CHECK_ERROR(expression)</div><div class="ttdef"><b>Definition:</b> check.hpp:52</div></div> <div class="ttc" id="classprocess_1_1Future_html_a1e09668bb029e2e3cc3a2d9cf1075812"><div class="ttname"><a href="classprocess_1_1Future.html#a1e09668bb029e2e3cc3a2d9cf1075812">process::Future::operator!=</a></div><div class="ttdeci">bool operator!=(const Future< T > &that) const </div><div class="ttdef"><b>Definition:</b> future.hpp:1159</div></div> +<div class="ttc" id="namespaceprocess_1_1internal_html_a6ddcc193edfcb094fd22fb8e77bfb541"><div class="ttname"><a href="namespaceprocess_1_1internal.html#a6ddcc193edfcb094fd22fb8e77bfb541">process::internal::thenf</a></div><div class="ttdeci">void thenf(lambda::CallableOnce< Future< X >(const T &)> &&f, std::unique_ptr< Promise< X >> promise, const Future< T > &future)</div><div class="ttdef"><b>Definition:</b> future.hpp:1484</div></div> <div class="ttc" id="classprocess_1_1Future_html_a4012f3faa6191fc13874dca62c14ced0"><div class="ttname"><a href="classprocess_1_1Future.html#a4012f3faa6191fc13874dca62c14ced0">process::Future::discard</a></div><div class="ttdeci">bool discard()</div><div class="ttdef"><b>Definition:</b> future.hpp:1173</div></div> -<div class="ttc" id="structprocess_1_1UndiscardableDecorator_html_afc1bae35c8b0e91cd215bceb4d8e038b"><div class="ttname"><a href="structprocess_1_1UndiscardableDecorator.html#afc1bae35c8b0e91cd215bceb4d8e038b">process::UndiscardableDecorator::UndiscardableDecorator</a></div><div class="ttdeci">UndiscardableDecorator(G &&g)</div><div class="ttdef"><b>Definition:</b> future.hpp:1965</div></div> +<div class="ttc" id="structprocess_1_1UndiscardableDecorator_html_afc1bae35c8b0e91cd215bceb4d8e038b"><div class="ttname"><a href="structprocess_1_1UndiscardableDecorator.html#afc1bae35c8b0e91cd215bceb4d8e038b">process::UndiscardableDecorator::UndiscardableDecorator</a></div><div class="ttdeci">UndiscardableDecorator(G &&g)</div><div class="ttdef"><b>Definition:</b> future.hpp:1969</div></div> <div class="ttc" id="namespaceprocess_1_1internal_html_a64e590c9a40c4ead4b969d6a64cd8181"><div class="ttname"><a href="namespaceprocess_1_1internal.html#a64e590c9a40c4ead4b969d6a64cd8181">process::internal::expired</a></div><div class="ttdeci">void expired(const std::shared_ptr< lambda::CallableOnce< Future< T >(const Future< T > &)>> &f, const std::shared_ptr< Latch > &latch, const std::shared_ptr< Promise< T >> &promise, const std::shared_ptr< Option< Timer >> &timer, const Future< T > &future)</div><div class="ttdef"><b>Definition:</b> future.hpp:1537</div></div> <div class="ttc" id="namespaceprocess_html_a47aeae3952eb3e90da58eca3375b2142"><div class="ttname"><a href="namespaceprocess.html#a47aeae3952eb3e90da58eca3375b2142">process::failPromises</a></div><div class="ttdeci">void failPromises(std::set< Promise< T > * > *promises, const std::string &failure)</div><div class="ttdef"><b>Definition:</b> future.hpp:1883</div></div> <div class="ttc" id="classprocess_1_1Future_html_a32e4b21c80168bb3f809da93b669b98f"><div class="ttname"><a href="classprocess_1_1Future.html#a32e4b21c80168bb3f809da93b669b98f">process::Future::operator=</a></div><div class="ttdeci">Future< T > & operator=(const Future< T > &that)</div><div class="ttdef"><b>Definition:</b> future.hpp:1142</div></div> @@ -2126,7 +2130,7 @@ <div class="ttc" id="classprocess_1_1Future_html_a066172ff3324966119049bb9feac95ac"><div class="ttname"><a href="classprocess_1_1Future.html#a066172ff3324966119049bb9feac95ac">process::Future::onDiscarded</a></div><div class="ttdeci">const Future< T > & onDiscarded(DiscardedCallback &&callback) const </div><div class="ttdef"><b>Definition:</b> future.hpp:1436</div></div> <div class="ttc" id="classprocess_1_1Future_html_a8af6d072946de82f639c488872ab4db8"><div class="ttname"><a href="classprocess_1_1Future.html#a8af6d072946de82f639c488872ab4db8">process::Future::onFailed</a></div><div class="ttdeci">const Future< T > & onFailed(_Deferred< F > &&deferred) const </div><div class="ttdef"><b>Definition:</b> future.hpp:203</div></div> <div class="ttc" id="classprocess_1_1Future_html_aeea5927a465c7b6e7f0f8b91f1e65461"><div class="ttname"><a href="classprocess_1_1Future.html#aeea5927a465c7b6e7f0f8b91f1e65461">process::Future::onDiscard</a></div><div class="ttdeci">const Future< T > & onDiscard(_Deferred< F > &&deferred) const </div><div class="ttdef"><b>Definition:</b> future.hpp:189</div></div> -<div class="ttc" id="structprocess_1_1UndiscardableDecorator_html_af431c54e30cf9f0862ab1618ab2130e2"><div class="ttname"><a href="structprocess_1_1UndiscardableDecorator.html#af431c54e30cf9f0862ab1618ab2130e2">process::UndiscardableDecorator::f</a></div><div class="ttdeci">F f</div><div class="ttdef"><b>Definition:</b> future.hpp:1981</div></div> +<div class="ttc" id="structprocess_1_1UndiscardableDecorator_html_af431c54e30cf9f0862ab1618ab2130e2"><div class="ttname"><a href="structprocess_1_1UndiscardableDecorator.html#af431c54e30cf9f0862ab1618ab2130e2">process::UndiscardableDecorator::f</a></div><div class="ttdeci">F f</div><div class="ttdef"><b>Definition:</b> future.hpp:1985</div></div> <div class="ttc" id="classprocess_1_1Future_html_a71bde220aed3c725cef2040f63adf42a"><div class="ttname"><a href="classprocess_1_1Future.html#a71bde220aed3c725cef2040f63adf42a">process::Future::onAny</a></div><div class="ttdeci">const Future< T > & onAny(AnyCallback &&callback) const </div><div class="ttdef"><b>Definition:</b> future.hpp:1458</div></div> <div class="ttc" id="structprocess_1_1__Deferred_html"><div class="ttname"><a href="structprocess_1_1__Deferred.html">process::_Deferred</a></div><div class="ttdef"><b>Definition:</b> deferred.hpp:64</div></div> <div class="ttc" id="classprocess_1_1Future_html_a10a044e48b430d4f87e9cade748bfe90"><div class="ttname"><a href="classprocess_1_1Future.html#a10a044e48b430d4f87e9cade748bfe90">process::Future::ReadyCallback</a></div><div class="ttdeci">lambda::CallableOnce< void(const T &)> ReadyCallback</div><div class="ttdef"><b>Definition:</b> future.hpp:164</div></div> @@ -2140,6 +2144,7 @@ <div class="ttc" id="3rdparty_2libprocess_2include_2process_2pid_8hpp_html"><div class="ttname"><a href="3rdparty_2libprocess_2include_2process_2pid_8hpp.html">pid.hpp</a></div></div> <div class="ttc" id="classprocess_1_1Future_html_ad002735b3459454f81f77bc9604903ba"><div class="ttname"><a href="classprocess_1_1Future.html#ad002735b3459454f81f77bc9604903ba">process::Future::onReady</a></div><div class="ttdeci">const Future< T > & onReady(F &&f) const </div><div class="ttdef"><b>Definition:</b> future.hpp:356</div></div> <div class="ttc" id="classprocess_1_1Future_html_a3ef51b1f7e70860758e47c39ed7660f1"><div class="ttname"><a href="classprocess_1_1Future.html#a3ef51b1f7e70860758e47c39ed7660f1">process::Future::onAbandoned</a></div><div class="ttdeci">const Future< T > & onAbandoned(AbandonedCallback &&callback) const </div><div class="ttdef"><b>Definition:</b> future.hpp:1348</div></div> +<div class="ttc" id="namespaceprocess_1_1internal_html_a533d576e37261090c2dab1d65702bac6"><div class="ttname"><a href="namespaceprocess_1_1internal.html#a533d576e37261090c2dab1d65702bac6">process::internal::repair</a></div><div class="ttdeci">void repair(lambda::CallableOnce< Future< T >(const Future< T > &)> &&f, std::unique_ptr< Promise< T >> promise, const Future< T > &future)</div><div class="ttdef"><b>Definition:</b> future.hpp:1522</div></div> <div class="ttc" id="classTry_html_a6543d7d5db4f298bcd673bf3cd509acc"><div class="ttname"><a href="classTry.html#a6543d7d5db4f298bcd673bf3cd509acc">Try::isSome</a></div><div class="ttdeci">bool isSome() const </div><div class="ttdef"><b>Definition:</b> try.hpp:70</div></div> <div class="ttc" id="structprocess_1_1Failure_html_aa1aa7664c7f91fe3dc3909c5e60d768b"><div class="ttname"><a href="structprocess_1_1Failure.html#aa1aa7664c7f91fe3dc3909c5e60d768b">process::Failure::Failure</a></div><div class="ttdeci">Failure(const Error &error)</div><div class="ttdef"><b>Definition:</b> future.hpp:667</div></div> <div class="ttc" id="classprocess_1_1Future_html_a907cb66509cf2e07bff8cf919507f745"><div class="ttname"><a href="classprocess_1_1Future.html#a907cb66509cf2e07bff8cf919507f745">process::Future::onDiscard</a></div><div class="ttdeci">const Future< T > & onDiscard(F &&f) const </div><div class="ttdef"><b>Definition:</b> future.hpp:345</div></div> @@ -2170,6 +2175,7 @@ <div class="ttc" id="classprocess_1_1Future_html_a00e8cb9299d48b5b59fba301894b019f"><div class="ttname"><a href="classprocess_1_1Future.html#a00e8cb9299d48b5b59fba301894b019f">process::Future::then</a></div><div class="ttdeci">Future< X > then(lambda::CallableOnce< Future< X >()> f) const </div><div class="ttdef"><b>Definition:</b> future.hpp:394</div></div> <div class="ttc" id="namespacemesos_1_1internal_1_1slave_1_1cni_1_1spec_html_ae58e703656ab4a1bd5d9870441236727"><div class="ttname"><a href="namespacemesos_1_1internal_1_1slave_1_1cni_1_1spec.html#ae58e703656ab4a1bd5d9870441236727">mesos::internal::slave::cni::spec::error</a></div><div class="ttdeci">std::string error(const std::string &msg, uint32_t code)</div></div> <div class="ttc" id="classprocess_1_1Future_html_a97e42f6b06e3bda93cdfbed6e8fa9093"><div class="ttname"><a href="classprocess_1_1Future.html#a97e42f6b06e3bda93cdfbed6e8fa9093">process::Future::FailedCallback</a></div><div class="ttdeci">lambda::CallableOnce< void(const std::string &)> FailedCallback</div><div class="ttdef"><b>Definition:</b> future.hpp:165</div></div> +<div class="ttc" id="namespaceprocess_1_1internal_html_a7885011cf6470b707294a6ef4ec7a0a6"><div class="ttname"><a href="namespaceprocess_1_1internal.html#a7885011cf6470b707294a6ef4ec7a0a6">process::internal::then</a></div><div class="ttdeci">void then(lambda::CallableOnce< X(const T &)> &&f, std::unique_ptr< Promise< X >> promise, const Future< T > &future)</div><div class="ttdef"><b>Definition:</b> future.hpp:1503</div></div> <div class="ttc" id="structprocess_1_1ErrnoFailure_html_a00efa849b3939db5db715378c750301d"><div class="ttname"><a href="structprocess_1_1ErrnoFailure.html#a00efa849b3939db5db715378c750301d">process::ErrnoFailure::code</a></div><div class="ttdeci">const int code</div><div class="ttdef"><b>Definition:</b> future.hpp:686</div></div> <div class="ttc" id="try_8hpp_html"><div class="ttname"><a href="try_8hpp.html">try.hpp</a></div></div> <div class="ttc" id="classprocess_1_1Promise_html_ad96eae1c1003a896e34b6a4c66e23c39"><div class="ttname"><a href="classprocess_1_1Promise.html#ad96eae1c1003a896e34b6a4c66e23c39">process::Promise::Promise</a></div><div class="ttdeci">Promise()</div><div class="ttdef"><b>Definition:</b> future.hpp:776</div></div> @@ -2181,7 +2187,6 @@ <div class="ttc" id="classprocess_1_1Future_html_a6bba7bac2b511c021028ee59efefb1f5"><div class="ttname"><a href="classprocess_1_1Future.html#a6bba7bac2b511c021028ee59efefb1f5">process::Future::then</a></div><div class="ttdeci">auto then(F &&f) const -> decltype(this->then(std::forward< F >(f), Prefer()))</div><div class="ttdef"><b>Definition:</b> future.hpp:464</div></div> <div class="ttc" id="classprocess_1_1Promise_html_a8f50fcfd7ddb6dd39ec2cd468377cd5d"><div class="ttname"><a href="classprocess_1_1Promise.html#a8f50fcfd7ddb6dd39ec2cd468377cd5d">process::Promise::discard</a></div><div class="ttdeci">bool discard()</div><div class="ttdef"><b>Definition:</b> future.hpp:809</div></div> <div class="ttc" id="namespacemesos_1_1internal_1_1fs_html_a2343e2642db514496ba8380776487fba"><div class="ttname"><a href="namespacemesos_1_1internal_1_1fs.html#a2343e2642db514496ba8380776487fba">mesos::internal::fs::type</a></div><div class="ttdeci">Try< uint32_t > type(const std::string &path)</div></div> -<div class="ttc" id="namespaceprocess_1_1internal_html_a8175b4c04ebc5a6f415c800541b58799"><div class="ttname"><a href="namespaceprocess_1_1internal.html#a8175b4c04ebc5a6f415c800541b58799">process::internal::repair</a></div><div class="ttdeci">void repair(lambda::CallableOnce< Future< T >(const Future< T > &)> &&f, const std::shared_ptr< Promise< T >> &promise, const Future< T > &future)</div><div class="ttdef"><b>Definition:</b> future.hpp:1522</div></div> <div class="ttc" id="classprocess_1_1Future_html_a7818051e0d3d4ef9aa6a25d9246312ea"><div class="ttname"><a href="classprocess_1_1Future.html#a7818051e0d3d4ef9aa6a25d9246312ea">process::Future::after</a></div><div class="ttdeci">Future< T > after(const Duration &duration, lambda::CallableOnce< Future< T >(const Future< T > &)> f) const </div><div class="ttdef"><b>Definition:</b> future.hpp:1708</div></div> <div class="ttc" id="classprocess_1_1Future_html_a613272cbaf42a527d3473b2eb1c70e5d"><div class="ttname"><a href="classprocess_1_1Future.html#a613272cbaf42a527d3473b2eb1c70e5d">process::Future::onAbandoned</a></div><div class="ttdeci">const Future< T > & onAbandoned(F &&f) const </div><div class="ttdef"><b>Definition:</b> future.hpp:334</div></div> <div class="ttc" id="classprocess_1_1Future_html_aff9a28bc06c115d1e59063c15e526739"><div class="ttname"><a href="classprocess_1_1Future.html#aff9a28bc06c115d1e59063c15e526739">process::Future::isAbandoned</a></div><div class="ttdeci">bool isAbandoned() const </div><div class="ttdef"><b>Definition:</b> future.hpp:1252</div></div> @@ -2197,7 +2202,7 @@ <div class="ttc" id="classprocess_1_1Future_html_ae0483b70dae75d7a75c97839130f6886"><div class="ttname"><a href="classprocess_1_1Future.html#ae0483b70dae75d7a75c97839130f6886">process::Future::~Future</a></div><div class="ttdeci">~Future()=default</div></div> <div class="ttc" id="classprocess_1_1Future_html_a4492bc5e02252a90087bcda3a9113f66"><div class="ttname"><a href="classprocess_1_1Future.html#a4492bc5e02252a90087bcda3a9113f66">process::Future::onReady</a></div><div class="ttdeci">const Future< T > & onReady(_Deferred< F > &&deferred) const </div><div class="ttdef"><b>Definition:</b> future.hpp:196</div></div> <div class="ttc" id="classprocess_1_1Owned_html"><div class="ttname"><a href="classprocess_1_1Owned.html">process::Owned</a></div><div class="ttdef"><b>Definition:</b> owned.hpp:35</div></div> -<div class="ttc" id="structprocess_1_1UndiscardableDecorator_html"><div class="ttname"><a href="structprocess_1_1UndiscardableDecorator.html">process::UndiscardableDecorator</a></div><div class="ttdef"><b>Definition:</b> future.hpp:1959</div></div> +<div class="ttc" id="structprocess_1_1UndiscardableDecorator_html"><div class="ttname"><a href="structprocess_1_1UndiscardableDecorator.html">process::UndiscardableDecorator</a></div><div class="ttdef"><b>Definition:</b> future.hpp:1963</div></div> <div class="ttc" id="classprocess_1_1Latch_html"><div class="ttname"><a href="classprocess_1_1Latch.html">process::Latch</a></div><div class="ttdef"><b>Definition:</b> latch.hpp:24</div></div> <div class="ttc" id="classprocess_1_1Future_html_ac24932d40d46827beb624695ff08a428"><div class="ttname"><a href="classprocess_1_1Future.html#ac24932d40d46827beb624695ff08a428">process::Future::failed</a></div><div class="ttdeci">static Future< T > failed(const std::string &message)</div><div class="ttdef"><b>Definition:</b> future.hpp:1039</div></div> <div class="ttc" id="result__of_8hpp_html"><div class="ttname"><a href="result__of_8hpp.html">result_of.hpp</a></div></div> @@ -2209,8 +2214,7 @@ <div class="ttc" id="classprocess_1_1Promise_html_aa218de27008dceaab89f594b341614ca"><div class="ttname"><a href="classprocess_1_1Promise.html#aa218de27008dceaab89f594b341614ca">process::Promise::~Promise</a></div><div class="ttdeci">virtual ~Promise()</div><div class="ttdef"><b>Definition:</b> future.hpp:790</div></div> <div class="ttc" id="classprocess_1_1Future_html_a92429370a26a7c933ddc12866101f8ce"><div class="ttname"><a href="classprocess_1_1Future.html#a92429370a26a7c933ddc12866101f8ce">process::Future::onAbandoned</a></div><div class="ttdeci">const Future< T > & onAbandoned(_Deferred< F > &&deferred) const </div><div class="ttdef"><b>Definition:</b> future.hpp:182</div></div> <div class="ttc" id="classlambda_1_1CallableOnce_html"><div class="ttname"><a href="classlambda_1_1CallableOnce.html">lambda::CallableOnce</a></div><div class="ttdef"><b>Definition:</b> lambda.hpp:341</div></div> -<div class="ttc" id="structprocess_1_1UndiscardableDecorator_html_ac43b6c7b67a337a0008ecabe188fe8e3"><div class="ttname"><a href="structprocess_1_1UndiscardableDecorator.html#ac43b6c7b67a337a0008ecabe188fe8e3">process::UndiscardableDecorator::operator()</a></div><div class="ttdeci">auto operator()(Args &&...args) -> decltype(std::declval< F & >()(std::forward< Args >(args)...))</div><div class="ttdef"><b>Definition:</b> future.hpp:1968</div></div> -<div class="ttc" id="namespaceprocess_1_1internal_html_afca243b1724ff329e7a2582822949238"><div class="ttname"><a href="namespaceprocess_1_1internal.html#afca243b1724ff329e7a2582822949238">process::internal::thenf</a></div><div class="ttdeci">void thenf(lambda::CallableOnce< Future< X >(const T &)> &&f, const std::shared_ptr< Promise< X >> &promise, const Future< T > &future)</div><div class="ttdef"><b>Definition:</b> future.hpp:1484</div></div> +<div class="ttc" id="structprocess_1_1UndiscardableDecorator_html_ac43b6c7b67a337a0008ecabe188fe8e3"><div class="ttname"><a href="structprocess_1_1UndiscardableDecorator.html#ac43b6c7b67a337a0008ecabe188fe8e3">process::UndiscardableDecorator::operator()</a></div><div class="ttdeci">auto operator()(Args &&...args) -> decltype(std::declval< F & >()(std::forward< Args >(args)...))</div><div class="ttdef"><b>Definition:</b> future.hpp:1972</div></div> <div class="ttc" id="namespaceprocess_html_ac263ad6d2909a96a948ee94594013847"><div class="ttname"><a href="namespaceprocess.html#ac263ad6d2909a96a948ee94594013847">process::setPromises</a></div><div class="ttdeci">void setPromises(std::set< Promise< T > * > *promises, const T &t)</div><div class="ttdef"><b>Definition:</b> future.hpp:1871</div></div> <div class="ttc" id="classprocess_1_1Future_html_ade35e2593ea7486d0d6cd26584960704"><div class="ttname"><a href="classprocess_1_1Future.html#ade35e2593ea7486d0d6cd26584960704">process::Future::operator-></a></div><div class="ttdeci">const T * operator->() const </div><div class="ttdef"><b>Definition:</b> future.hpp:1329</div></div> <div class="ttc" id="classprocess_1_1Future_html_a493227e57f8848e37777b89c0f81e2ec"><div class="ttname"><a href="classprocess_1_1Future.html#a493227e57f8848e37777b89c0f81e2ec">process::Future::isFailed</a></div><div class="ttdeci">bool isFailed() const </div><div class="ttdef"><b>Definition:</b> future.hpp:1245</div></div>
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/87badcb4/content/api/latest/c++/http__connection_8hpp_source.html ---------------------------------------------------------------------- diff --git a/content/api/latest/c++/http__connection_8hpp_source.html b/content/api/latest/c++/http__connection_8hpp_source.html index b4d28c6..e8b3523 100644 --- a/content/api/latest/c++/http__connection_8hpp_source.html +++ b/content/api/latest/c++/http__connection_8hpp_source.html @@ -255,7 +255,7 @@ <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>  connectionId = <a class="code" href="namespaceos.html#aede9f61dcb4b7d1f276302a7bce37446">UUID::random</a>();</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>  <a class="code" href="namespaceprocess_1_1internal.html#ab863b0922b3133630bec9cc010ddb261">dispatch</a>(<span class="keyword">self</span>(), &<a class="code" href="classmesos_1_1internal_1_1HttpConnectionProcess.html#ad53eb7c846b84480e2d18d4837a2d802">Self::connect</a>, connectionId.<a class="code" href="classOption.html#a21358442c0fac1cc978a67a9a9089a79">get</a>());</div> +<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  <a class="code" href="namespaceprocess_1_1internal.html#ac34bccdf47fcfa46cedf2a03771eb221">dispatch</a>(<span class="keyword">self</span>(), &<a class="code" href="classmesos_1_1internal_1_1HttpConnectionProcess.html#ad53eb7c846b84480e2d18d4837a2d802">Self::connect</a>, connectionId.<a class="code" href="classOption.html#a21358442c0fac1cc978a67a9a9089a79">get</a>());</div> <div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  }</div> <div class="line"><a name="l00227"></a><span class="lineno"> 227</span> </div> <div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  detection = detector->detect(endpoint)</div> @@ -649,12 +649,12 @@ <div class="ttc" id="classmesos_1_1internal_1_1HttpConnectionProcess_html_aa5d1d7deac2035597a715a0c115ca38e"><div class="ttname"><a href="classmesos_1_1internal_1_1HttpConnectionProcess.html#aa5d1d7deac2035597a715a0c115ca38e">mesos::internal::HttpConnectionProcess::HttpConnectionProcess</a></div><div class="ttdeci">HttpConnectionProcess(const std::string &prefix, process::Owned< EndpointDetector > _detector, ContentType _contentType, const std::function< Option< Error >(const Call &)> &validate, const std::function< void(void)> &connected, const std::function< void(void)> &disconnected, const std::function< void(const std::queue< Event > &)> &received)</div><div class="ttdoc">Construct a HTTP connection process. </div><div class="ttdef"><b>Definition:</b> http_connection.hpp:84</div></div> <div class="ttc" id="classOption_html_a21358442c0fac1cc978a67a9a9089a79"><div class="ttname"><a href="classOption.html#a21358442c0fac1cc978a67a9a9089a79">Option::get</a></div><div class="ttdeci">const T & get() const &</div><div class="ttdef"><b>Definition:</b> option.hpp:114</div></div> <div class="ttc" id="namespaceprocess_1_1http_html_a54e53c8006298fe99e3fb5f55c0e8c41"><div class="ttname"><a href="namespaceprocess_1_1http.html#a54e53c8006298fe99e3fb5f55c0e8c41">process::http::connect</a></div><div class="ttdeci">Future< Connection > connect(const network::Address &address, Scheme scheme)</div></div> -<div class="ttc" id="namespaceprocess_1_1internal_html_ab863b0922b3133630bec9cc010ddb261"><div class="ttname"><a href="namespaceprocess_1_1internal.html#ab863b0922b3133630bec9cc010ddb261">process::internal::dispatch</a></div><div class="ttdeci">void dispatch(const UPID &pid, const std::shared_ptr< lambda::CallableOnce< void(ProcessBase *)>> &f, const Option< const std::type_info * > &functionType=None())</div></div> <div class="ttc" id="namespaceos_html_aede9f61dcb4b7d1f276302a7bce37446"><div class="ttname"><a href="namespaceos.html#aede9f61dcb4b7d1f276302a7bce37446">os::random</a></div><div class="ttdeci">int random()</div><div class="ttdef"><b>Definition:</b> os.hpp:635</div></div> <div class="ttc" id="structprocess_1_1http_1_1Request_html_a3a459e9dbce042511e6359533f6925d4"><div class="ttname"><a href="structprocess_1_1http_1_1Request.html#a3a459e9dbce042511e6359533f6925d4">process::http::Request::keepAlive</a></div><div class="ttdeci">bool keepAlive</div><div class="ttdef"><b>Definition:</b> http.hpp:543</div></div> <div class="ttc" id="3rdparty_2stout_2include_2stout_2recordio_8hpp_html"><div class="ttname"><a href="3rdparty_2stout_2include_2stout_2recordio_8hpp.html">recordio.hpp</a></div></div> <div class="ttc" id="structprocess_1_1http_1_1Status_html_ae105d018cfcf82f5c19c79196101fd9b"><div class="ttname"><a href="structprocess_1_1http_1_1Status.html#ae105d018cfcf82f5c19c79196101fd9b">process::http::Status::OK</a></div><div class="ttdeci">static const uint16_t OK</div><div class="ttdef"><b>Definition:</b> http.hpp:218</div></div> <div class="ttc" id="classmesos_1_1internal_1_1HttpConnectionProcess_html_ad53eb7c846b84480e2d18d4837a2d802"><div class="ttname"><a href="classmesos_1_1internal_1_1HttpConnectionProcess.html#ad53eb7c846b84480e2d18d4837a2d802">mesos::internal::HttpConnectionProcess::connect</a></div><div class="ttdeci">void connect(const UUID &_connectionId)</div><div class="ttdef"><b>Definition:</b> http_connection.hpp:232</div></div> +<div class="ttc" id="namespaceprocess_1_1internal_html_ac34bccdf47fcfa46cedf2a03771eb221"><div class="ttname"><a href="namespaceprocess_1_1internal.html#ac34bccdf47fcfa46cedf2a03771eb221">process::internal::dispatch</a></div><div class="ttdeci">void dispatch(const UPID &pid, std::unique_ptr< lambda::CallableOnce< void(ProcessBase *)>> f, const Option< const std::type_info * > &functionType=None())</div></div> <div class="ttc" id="namespaceprocess_html_a92b69ab22f734498cfe8cf6edd92fd2a"><div class="ttname"><a href="namespaceprocess.html#a92b69ab22f734498cfe8cf6edd92fd2a">process::async</a></div><div class="ttdeci">Future< typename result_of< F()>::type > async(const F &f, typename std::enable_if<!std::is_void< typename result_of< F()>::type >::value >::type *=nullptr)</div><div class="ttdef"><b>Definition:</b> async.hpp:238</div></div> <div class="ttc" id="unreachable_8hpp_html_a0bc63b24b654ca433be7b97a3edde132"><div class="ttname"><a href="unreachable_8hpp.html#a0bc63b24b654ca433be7b97a3edde132">UNREACHABLE</a></div><div class="ttdeci">#define UNREACHABLE()</div><div class="ttdef"><b>Definition:</b> unreachable.hpp:22</div></div> <div class="ttc" id="classmesos_1_1internal_1_1HttpConnectionProcess_html_aae8683e301cded923007452565426324"><div class="ttname"><a href="classmesos_1_1internal_1_1HttpConnectionProcess.html#aae8683e301cded923007452565426324">mesos::internal::HttpConnectionProcess::finalize</a></div><div class="ttdeci">void finalize() override</div><div class="ttdoc">Invoked when a process is terminated. </div><div class="ttdef"><b>Definition:</b> http_connection.hpp:177</div></div>