Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/windirstat/llfio.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJenkins nedprod CI <foo@nowhere>2017-09-26 01:34:49 +0300
committerJenkins nedprod CI <foo@nowhere>2017-09-26 01:34:49 +0300
commit19a51a2634ee87d8bb2ae91f14ddcb2214f3bde4 (patch)
tree8bfff5a5ae2b9bc9f0e96201daceb89b5cf641c1
parent521f8d72ea5995d686539650ff97bbb70589c1c5 (diff)
Travis CI updates documentation
-rw-r--r--classafio__v2__xxx_1_1async__file__handle.html10
-rw-r--r--namespaceafio__v2__xxx.html12
2 files changed, 11 insertions, 11 deletions
diff --git a/classafio__v2__xxx_1_1async__file__handle.html b/classafio__v2__xxx_1_1async__file__handle.html
index c84cd1d6..4fffedef 100644
--- a/classafio__v2__xxx_1_1async__file__handle.html
+++ b/classafio__v2__xxx_1_1async__file__handle.html
@@ -549,7 +549,7 @@ template&lt;class CompletionRoutine &gt; </div>
</dl>
<dl class="section user"><dt>Errors returnable</dt><dd>As for <code>barrier()</code>, plus <code>ENOMEM</code>. </dd></dl>
<dl class="section user"><dt>Memory Allocations</dt><dd>If mem is not set, one calloc, one free. The allocation is unavoidable due to the need to store a type erased completion handler of unknown type and state per buffers input. </dd></dl>
-<div class="fragment"><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; {}) noexcept</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; {</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; AFIO_LOG_FUNCTION_CALL(<span class="keyword">this</span>);</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; <span class="keyword">struct </span>completion_handler : _erased_completion_handler</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; {</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; CompletionRoutine completion;</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; completion_handler(CompletionRoutine c)</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; : completion(<a class="code" href="namespacestd.html">std</a>::move(c))</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; {</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; }</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">size_t</span> bytes() const noexcept override final { <span class="keywordflow">return</span> <span class="keyword">sizeof</span>(*this); }</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> move(_erased_completion_handler *_dest) <span class="keyword">override</span> <span class="keyword">final</span></div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; {</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; completion_handler *dest = (completion_handler *) _dest;</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; <span class="keyword">new</span>(dest) completion_handler(std::move(*<span class="keyword">this</span>));</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; }</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> operator()(_erased_io_state_type *state) <span class="keyword">override</span> <span class="keyword">final</span> { completion(state-&gt;parent, state-&gt;result.write); }</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> *address() noexcept override final { <span class="keywordflow">return</span> &amp;completion; }</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; } ch{std::forward&lt;CompletionRoutine&gt;(completion)};</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; operation_t operation;</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; <span class="keywordflow">if</span>(wait_for_device &amp;&amp; and_metadata)</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; operation = operation_t::fsync_sync;</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(!wait_for_device &amp;&amp; and_metadata)</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; operation = operation_t::fsync_async;</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(wait_for_device &amp;&amp; !and_metadata)</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; operation = operation_t::dsync_sync;</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(!wait_for_device &amp;&amp; !and_metadata)</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; operation = operation_t::dsync_async;</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; <span class="keywordflow">return</span> _begin_io(mem, operation, <span class="keyword">reinterpret_cast&lt;</span>io_request&lt;const_buffers_type&gt; &amp;<span class="keyword">&gt;</span>(reqs), std::move(ch));</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; }</div><div class="ttc" id="namespacestd_html"><div class="ttname"><a href="namespacestd.html">std</a></div><div class="ttdoc">STL namespace. </div></div>
+<div class="fragment"><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; {}) noexcept</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; {</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; AFIO_LOG_FUNCTION_CALL(<span class="keyword">this</span>);</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; <span class="keyword">struct </span>completion_handler : _erased_completion_handler</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; {</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; CompletionRoutine completion;</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; completion_handler(CompletionRoutine c)</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; : completion(<a class="code" href="namespacestd.html">std</a>::move(c))</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; {</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; }</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">size_t</span> bytes() const noexcept override final { <span class="keywordflow">return</span> <span class="keyword">sizeof</span>(*this); }</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> move(_erased_completion_handler *_dest) <span class="keyword">override</span> <span class="keyword">final</span></div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; {</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; <span class="keywordtype">void</span> *dest = (<span class="keywordtype">void</span> *) _dest;</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; <span class="keyword">new</span>(dest) completion_handler(std::move(*<span class="keyword">this</span>));</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; }</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> operator()(_erased_io_state_type *state) <span class="keyword">override</span> <span class="keyword">final</span> { completion(state-&gt;parent, state-&gt;result.write); }</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> *address() noexcept override final { <span class="keywordflow">return</span> &amp;completion; }</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; } ch{std::forward&lt;CompletionRoutine&gt;(completion)};</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; operation_t operation = operation_t::fsync_sync;</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; <span class="keywordflow">if</span>(!wait_for_device &amp;&amp; and_metadata)</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; operation = operation_t::fsync_async;</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(wait_for_device &amp;&amp; !and_metadata)</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; operation = operation_t::dsync_sync;</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(!wait_for_device &amp;&amp; !and_metadata)</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; operation = operation_t::dsync_async;</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; <span class="keywordflow">return</span> _begin_io(mem, operation, <span class="keyword">reinterpret_cast&lt;</span>io_request&lt;const_buffers_type&gt; &amp;<span class="keyword">&gt;</span>(reqs), std::move(ch));</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; }</div><div class="ttc" id="namespacestd_html"><div class="ttname"><a href="namespacestd.html">std</a></div><div class="ttdoc">STL namespace. </div></div>
</div><!-- fragment -->
</div>
</div>
@@ -750,7 +750,7 @@ template&lt;class CompletionRoutine &gt; </div>
</dl>
<dl class="section user"><dt>Errors returnable</dt><dd>As for <code>read()</code>, plus <code>ENOMEM</code>. </dd></dl>
<dl class="section user"><dt>Memory Allocations</dt><dd>If mem is not set, one calloc, one free. The allocation is unavoidable due to the need to store a type erased completion handler of unknown type and state per buffers input. </dd></dl>
-<div class="fragment"><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; {}) noexcept</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; {</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; AFIO_LOG_FUNCTION_CALL(<span class="keyword">this</span>);</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; <span class="keyword">struct </span>completion_handler : _erased_completion_handler</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; {</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; CompletionRoutine completion;</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; completion_handler(CompletionRoutine c)</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; : completion(<a class="code" href="namespacestd.html">std</a>::move(c))</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; {</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; }</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">size_t</span> bytes() const noexcept override final { <span class="keywordflow">return</span> <span class="keyword">sizeof</span>(*this); }</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> move(_erased_completion_handler *_dest) <span class="keyword">override</span> <span class="keyword">final</span></div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; {</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; completion_handler *dest = (completion_handler *) _dest;</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; <span class="keyword">new</span>(dest) completion_handler(std::move(*<span class="keyword">this</span>));</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; }</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> operator()(_erased_io_state_type *state) <span class="keyword">override</span> <span class="keyword">final</span> { completion(state-&gt;parent, state-&gt;result.read); }</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> *address() noexcept override final { <span class="keywordflow">return</span> &amp;completion; }</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; } ch{std::forward&lt;CompletionRoutine&gt;(completion)};</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; <span class="keywordflow">return</span> _begin_io(mem, operation_t::read, <span class="keyword">reinterpret_cast&lt;</span>io_request&lt;const_buffers_type&gt; &amp;<span class="keyword">&gt;</span>(reqs), std::move(ch));</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; }</div><div class="ttc" id="namespacestd_html"><div class="ttname"><a href="namespacestd.html">std</a></div><div class="ttdoc">STL namespace. </div></div>
+<div class="fragment"><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; {}) noexcept</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; {</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; AFIO_LOG_FUNCTION_CALL(<span class="keyword">this</span>);</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; <span class="keyword">struct </span>completion_handler : _erased_completion_handler</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; {</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; CompletionRoutine completion;</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; completion_handler(CompletionRoutine c)</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; : completion(<a class="code" href="namespacestd.html">std</a>::move(c))</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; {</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; }</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">size_t</span> bytes() const noexcept override final { <span class="keywordflow">return</span> <span class="keyword">sizeof</span>(*this); }</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> move(_erased_completion_handler *_dest) <span class="keyword">override</span> <span class="keyword">final</span></div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; {</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; <span class="keywordtype">void</span> *dest = (<span class="keywordtype">void</span> *) _dest;</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; <span class="keyword">new</span>(dest) completion_handler(std::move(*<span class="keyword">this</span>));</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; }</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> operator()(_erased_io_state_type *state) <span class="keyword">override</span> <span class="keyword">final</span> { completion(state-&gt;parent, state-&gt;result.read); }</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> *address() noexcept override final { <span class="keywordflow">return</span> &amp;completion; }</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; } ch{std::forward&lt;CompletionRoutine&gt;(completion)};</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; <span class="keywordflow">return</span> _begin_io(mem, operation_t::read, io_request&lt;const_buffers_type&gt;({(const_buffer_type *) reqs.buffers.data(), reqs.buffers.size()}, reqs.offset), std::move(ch));</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; }</div><div class="ttc" id="namespacestd_html"><div class="ttname"><a href="namespacestd.html">std</a></div><div class="ttdoc">STL namespace. </div></div>
</div><!-- fragment -->
</div>
</div>
@@ -930,7 +930,7 @@ template&lt;class CompletionRoutine &gt; </div>
</dl>
<dl class="section user"><dt>Errors returnable</dt><dd>As for <code>write()</code>, plus <code>ENOMEM</code>. </dd></dl>
<dl class="section user"><dt>Memory Allocations</dt><dd>If mem in not set, one calloc, one free. The allocation is unavoidable due to the need to store a type erased completion handler of unknown type and state per buffers input. </dd></dl>
-<div class="fragment"><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; {}) noexcept</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; {</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; AFIO_LOG_FUNCTION_CALL(<span class="keyword">this</span>);</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; <span class="keyword">struct </span>completion_handler : _erased_completion_handler</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; {</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; CompletionRoutine completion;</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; completion_handler(CompletionRoutine c)</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; : completion(<a class="code" href="namespacestd.html">std</a>::move(c))</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; {</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; }</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">size_t</span> bytes() const noexcept override final { <span class="keywordflow">return</span> <span class="keyword">sizeof</span>(*this); }</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> move(_erased_completion_handler *_dest) <span class="keyword">override</span> <span class="keyword">final</span></div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; {</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; completion_handler *dest = (completion_handler *) _dest;</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; <span class="keyword">new</span>(dest) completion_handler(std::move(*<span class="keyword">this</span>));</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; }</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> operator()(_erased_io_state_type *state) <span class="keyword">override</span> <span class="keyword">final</span> { completion(state-&gt;parent, state-&gt;result.write); }</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> *address() noexcept override final { <span class="keywordflow">return</span> &amp;completion; }</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; } ch{std::forward&lt;CompletionRoutine&gt;(completion)};</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; <span class="keywordflow">return</span> _begin_io(mem, operation_t::write, reqs, std::move(ch));</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; }</div><div class="ttc" id="namespacestd_html"><div class="ttname"><a href="namespacestd.html">std</a></div><div class="ttdoc">STL namespace. </div></div>
+<div class="fragment"><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; {}) noexcept</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; {</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; AFIO_LOG_FUNCTION_CALL(<span class="keyword">this</span>);</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; <span class="keyword">struct </span>completion_handler : _erased_completion_handler</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; {</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; CompletionRoutine completion;</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; completion_handler(CompletionRoutine c)</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; : completion(<a class="code" href="namespacestd.html">std</a>::move(c))</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; {</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; }</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">size_t</span> bytes() const noexcept override final { <span class="keywordflow">return</span> <span class="keyword">sizeof</span>(*this); }</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> move(_erased_completion_handler *_dest) <span class="keyword">override</span> <span class="keyword">final</span></div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; {</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; <span class="keywordtype">void</span> *dest = (<span class="keywordtype">void</span> *) _dest;</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; <span class="keyword">new</span>(dest) completion_handler(std::move(*<span class="keyword">this</span>));</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; }</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> operator()(_erased_io_state_type *state) <span class="keyword">override</span> <span class="keyword">final</span> { completion(state-&gt;parent, state-&gt;result.write); }</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> *address() noexcept override final { <span class="keywordflow">return</span> &amp;completion; }</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; } ch{std::forward&lt;CompletionRoutine&gt;(completion)};</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; <span class="keywordflow">return</span> _begin_io(mem, operation_t::write, reqs, std::move(ch));</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; }</div><div class="ttc" id="namespacestd_html"><div class="ttname"><a href="namespacestd.html">std</a></div><div class="ttdoc">STL namespace. </div></div>
</div><!-- fragment -->
</div>
</div>
@@ -1166,7 +1166,7 @@ For portability, you can only assume that barriers write order for a single hand
</dl>
<dl class="section user"><dt>Errors returnable</dt><dd>As for read(), plus ENOMEM. </dd></dl>
<dl class="section user"><dt>Memory Allocations</dt><dd>One calloc, one free. </dd></dl>
-<div class="fragment"><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; {</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; OUTCOME_TRY(r, <a class="code" href="classafio__v2__xxx_1_1async__file__handle.html#ab0a1e11a3d208319cc8fc8a9171ec33f">async_read</a>(reqs, awaitable_state&lt;buffers_type&gt;()));</div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; <span class="keywordflow">return</span> awaitable&lt;buffers_type&gt;(std::move(r));</div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; }</div><div class="ttc" id="classafio__v2__xxx_1_1async__file__handle_html_ab0a1e11a3d208319cc8fc8a9171ec33f"><div class="ttname"><a href="classafio__v2__xxx_1_1async__file__handle.html#ab0a1e11a3d208319cc8fc8a9171ec33f">afio_v2_xxx::async_file_handle::async_read</a></div><div class="ttdeci">result&lt; io_state_ptr &gt; async_read(io_request&lt; buffers_type &gt; reqs, CompletionRoutine &amp;&amp;completion, span&lt; char &gt; mem={}) noexcept</div><div class="ttdoc">Schedule a read to occur asynchronously. </div><div class="ttdef"><b>Definition:</b> async_file_handle.hpp:406</div></div>
+<div class="fragment"><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; {</div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; OUTCOME_TRY(r, <a class="code" href="classafio__v2__xxx_1_1async__file__handle.html#ab0a1e11a3d208319cc8fc8a9171ec33f">async_read</a>(reqs, awaitable_state&lt;buffers_type&gt;()));</div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; <span class="keywordflow">return</span> awaitable&lt;buffers_type&gt;(std::move(r));</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; }</div><div class="ttc" id="classafio__v2__xxx_1_1async__file__handle_html_ab0a1e11a3d208319cc8fc8a9171ec33f"><div class="ttname"><a href="classafio__v2__xxx_1_1async__file__handle.html#ab0a1e11a3d208319cc8fc8a9171ec33f">afio_v2_xxx::async_file_handle::async_read</a></div><div class="ttdeci">result&lt; io_state_ptr &gt; async_read(io_request&lt; buffers_type &gt; reqs, CompletionRoutine &amp;&amp;completion, span&lt; char &gt; mem={}) noexcept</div><div class="ttdoc">Schedule a read to occur asynchronously. </div><div class="ttdef"><b>Definition:</b> async_file_handle.hpp:404</div></div>
</div><!-- fragment -->
</div>
</div>
@@ -1204,7 +1204,7 @@ For portability, you can only assume that barriers write order for a single hand
</dl>
<dl class="section user"><dt>Errors returnable</dt><dd>As for write(), plus ENOMEM. </dd></dl>
<dl class="section user"><dt>Memory Allocations</dt><dd>One calloc, one free. </dd></dl>
-<div class="fragment"><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; {</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; OUTCOME_TRY(r, <a class="code" href="classafio__v2__xxx_1_1async__file__handle.html#ac38c4f8c4be552471c9ae07f2e247ba1">async_write</a>(reqs, awaitable_state&lt;const_buffers_type&gt;()));</div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; <span class="keywordflow">return</span> awaitable&lt;const_buffers_type&gt;(std::move(r));</div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; }</div><div class="ttc" id="classafio__v2__xxx_1_1async__file__handle_html_ac38c4f8c4be552471c9ae07f2e247ba1"><div class="ttname"><a href="classafio__v2__xxx_1_1async__file__handle.html#ac38c4f8c4be552471c9ae07f2e247ba1">afio_v2_xxx::async_file_handle::async_write</a></div><div class="ttdeci">result&lt; io_state_ptr &gt; async_write(io_request&lt; const_buffers_type &gt; reqs, CompletionRoutine &amp;&amp;completion, span&lt; char &gt; mem={}) noexcept</div><div class="ttdoc">Schedule a write to occur asynchronously. </div><div class="ttdef"><b>Definition:</b> async_file_handle.hpp:442</div></div>
+<div class="fragment"><div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160; {</div><div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; OUTCOME_TRY(r, <a class="code" href="classafio__v2__xxx_1_1async__file__handle.html#ac38c4f8c4be552471c9ae07f2e247ba1">async_write</a>(reqs, awaitable_state&lt;const_buffers_type&gt;()));</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; <span class="keywordflow">return</span> awaitable&lt;const_buffers_type&gt;(std::move(r));</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; }</div><div class="ttc" id="classafio__v2__xxx_1_1async__file__handle_html_ac38c4f8c4be552471c9ae07f2e247ba1"><div class="ttname"><a href="classafio__v2__xxx_1_1async__file__handle.html#ac38c4f8c4be552471c9ae07f2e247ba1">afio_v2_xxx::async_file_handle::async_write</a></div><div class="ttdeci">result&lt; io_state_ptr &gt; async_write(io_request&lt; const_buffers_type &gt; reqs, CompletionRoutine &amp;&amp;completion, span&lt; char &gt; mem={}) noexcept</div><div class="ttdoc">Schedule a write to occur asynchronously. </div><div class="ttdef"><b>Definition:</b> async_file_handle.hpp:440</div></div>
</div><!-- fragment -->
</div>
</div>
diff --git a/namespaceafio__v2__xxx.html b/namespaceafio__v2__xxx.html
index a0a1847a..f35329c6 100644
--- a/namespaceafio__v2__xxx.html
+++ b/namespaceafio__v2__xxx.html
@@ -485,7 +485,7 @@ std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operato
</dd>
</dl>
<dl class="section user"><dt>Errors returnable</dt><dd>Any of the values POSIX open() or CreateFile() can return. </dd></dl>
-<div class="fragment"><div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160;{</div><div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceafio__v2__xxx.html#a5b0168993998aafc342233aa782040a6">async_file_handle::async_file</a>(std::forward&lt;decltype(service)&gt;(service), std::forward&lt;decltype(base)&gt;(base), std::forward&lt;decltype(_path)&gt;(_path), std::forward&lt;decltype(_mode)&gt;(_mode), std::forward&lt;decltype(_creation)&gt;(_creation), std::forward&lt;decltype(_caching)&gt;(_caching),</div><div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160; std::forward&lt;decltype(flags)&gt;(flags));</div><div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160;}</div><div class="ttc" id="namespaceafio__v2__xxx_html_a5b0168993998aafc342233aa782040a6"><div class="ttname"><a href="namespaceafio__v2__xxx.html#a5b0168993998aafc342233aa782040a6">afio_v2_xxx::async_file</a></div><div class="ttdeci">result&lt; async_file_handle &gt; async_file(io_service &amp;service, const path_handle &amp;base, async_file_handle::path_view_type _path, async_file_handle::mode _mode=async_file_handle::mode::read, async_file_handle::creation _creation=async_file_handle::creation::open_existing, async_file_handle::caching _caching=async_file_handle::caching::only_metadata, async_file_handle::flag flags=async_file_handle::flag::none) noexcept</div><div class="ttdef"><b>Definition:</b> async_file_handle.hpp:582</div></div>
+<div class="fragment"><div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160;{</div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceafio__v2__xxx.html#a5b0168993998aafc342233aa782040a6">async_file_handle::async_file</a>(std::forward&lt;decltype(service)&gt;(service), std::forward&lt;decltype(base)&gt;(base), std::forward&lt;decltype(_path)&gt;(_path), std::forward&lt;decltype(_mode)&gt;(_mode), std::forward&lt;decltype(_creation)&gt;(_creation), std::forward&lt;decltype(_caching)&gt;(_caching),</div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; std::forward&lt;decltype(flags)&gt;(flags));</div><div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160;}</div><div class="ttc" id="namespaceafio__v2__xxx_html_a5b0168993998aafc342233aa782040a6"><div class="ttname"><a href="namespaceafio__v2__xxx.html#a5b0168993998aafc342233aa782040a6">afio_v2_xxx::async_file</a></div><div class="ttdeci">result&lt; async_file_handle &gt; async_file(io_service &amp;service, const path_handle &amp;base, async_file_handle::path_view_type _path, async_file_handle::mode _mode=async_file_handle::mode::read, async_file_handle::creation _creation=async_file_handle::creation::open_existing, async_file_handle::caching _caching=async_file_handle::caching::only_metadata, async_file_handle::flag flags=async_file_handle::flag::none) noexcept</div><div class="ttdef"><b>Definition:</b> async_file_handle.hpp:580</div></div>
</div><!-- fragment -->
</div>
</div>
@@ -542,7 +542,7 @@ std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operato
</div><div class="memdoc">
<p>Create an async file handle creating a randomly named file on a path. The file is opened exclusively with <code>creation::only_if_not_exist</code> so it will never collide with nor overwrite any existing file.</p>
<dl class="section user"><dt>Errors returnable</dt><dd>Any of the values POSIX open() or CreateFile() can return. </dd></dl>
-<div class="fragment"><div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160;{</div><div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceafio__v2__xxx.html#a40cd3a25b8d4a293a8864fe6eb585034">async_file_handle::async_random_file</a>(std::forward&lt;decltype(service)&gt;(service), std::forward&lt;decltype(dirpath)&gt;(dirpath), std::forward&lt;decltype(_mode)&gt;(_mode), std::forward&lt;decltype(_caching)&gt;(_caching), std::forward&lt;decltype(flags)&gt;(flags));</div><div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160;}</div><div class="ttc" id="namespaceafio__v2__xxx_html_a40cd3a25b8d4a293a8864fe6eb585034"><div class="ttname"><a href="namespaceafio__v2__xxx.html#a40cd3a25b8d4a293a8864fe6eb585034">afio_v2_xxx::async_random_file</a></div><div class="ttdeci">result&lt; async_file_handle &gt; async_random_file(io_service &amp;service, const path_handle &amp;dirpath, async_file_handle::mode _mode=async_file_handle::mode::write, async_file_handle::caching _caching=async_file_handle::caching::only_metadata, async_file_handle::flag flags=async_file_handle::flag::none) noexcept</div><div class="ttdef"><b>Definition:</b> async_file_handle.hpp:594</div></div>
+<div class="fragment"><div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160;{</div><div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceafio__v2__xxx.html#a40cd3a25b8d4a293a8864fe6eb585034">async_file_handle::async_random_file</a>(std::forward&lt;decltype(service)&gt;(service), std::forward&lt;decltype(dirpath)&gt;(dirpath), std::forward&lt;decltype(_mode)&gt;(_mode), std::forward&lt;decltype(_caching)&gt;(_caching), std::forward&lt;decltype(flags)&gt;(flags));</div><div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160;}</div><div class="ttc" id="namespaceafio__v2__xxx_html_a40cd3a25b8d4a293a8864fe6eb585034"><div class="ttname"><a href="namespaceafio__v2__xxx.html#a40cd3a25b8d4a293a8864fe6eb585034">afio_v2_xxx::async_random_file</a></div><div class="ttdeci">result&lt; async_file_handle &gt; async_random_file(io_service &amp;service, const path_handle &amp;dirpath, async_file_handle::mode _mode=async_file_handle::mode::write, async_file_handle::caching _caching=async_file_handle::caching::only_metadata, async_file_handle::flag flags=async_file_handle::flag::none) noexcept</div><div class="ttdef"><b>Definition:</b> async_file_handle.hpp:592</div></div>
</div><!-- fragment -->
</div>
</div>
@@ -606,7 +606,7 @@ std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operato
<p>Create an async file handle creating the named file on some path which the OS declares to be suitable for temporary files. Most OSs are very lazy about flushing changes made to these temporary files. Note the default flags are to have the newly created file deleted on first handle close. Note also that an empty name is equivalent to calling <code>async_random_file(path_discovery::storage_backed_temporary_files_directory())</code> and the creation parameter is ignored.</p>
<dl class="section note"><dt>Note</dt><dd>If the temporary file you are creating is not going to have its path sent to another process for usage, this is the WRONG function to use. Use <code>temp_inode()</code> instead, it is far more secure.</dd></dl>
<dl class="section user"><dt>Errors returnable</dt><dd>Any of the values POSIX open() or CreateFile() can return. </dd></dl>
-<div class="fragment"><div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160;{</div><div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceafio__v2__xxx.html#a0b751376f48a4fd14cb90cce03b2b491">async_file_handle::async_temp_file</a>(std::forward&lt;decltype(service)&gt;(service), std::forward&lt;decltype(name)&gt;(name), std::forward&lt;decltype(_mode)&gt;(_mode), std::forward&lt;decltype(_creation)&gt;(_creation), std::forward&lt;decltype(_caching)&gt;(_caching), std::forward&lt;decltype(flags)&gt;(flags));</div><div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160;}</div><div class="ttc" id="namespaceafio__v2__xxx_html_a0b751376f48a4fd14cb90cce03b2b491"><div class="ttname"><a href="namespaceafio__v2__xxx.html#a0b751376f48a4fd14cb90cce03b2b491">afio_v2_xxx::async_temp_file</a></div><div class="ttdeci">result&lt; async_file_handle &gt; async_temp_file(io_service &amp;service, async_file_handle::path_view_type name=async_file_handle::path_view_type(), async_file_handle::mode _mode=async_file_handle::mode::write, async_file_handle::creation _creation=async_file_handle::creation::if_needed, async_file_handle::caching _caching=async_file_handle::caching::only_metadata, async_file_handle::flag flags=async_file_handle::flag::unlink_on_close) noexcept</div><div class="ttdef"><b>Definition:</b> async_file_handle.hpp:613</div></div>
+<div class="fragment"><div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160;{</div><div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceafio__v2__xxx.html#a0b751376f48a4fd14cb90cce03b2b491">async_file_handle::async_temp_file</a>(std::forward&lt;decltype(service)&gt;(service), std::forward&lt;decltype(name)&gt;(name), std::forward&lt;decltype(_mode)&gt;(_mode), std::forward&lt;decltype(_creation)&gt;(_creation), std::forward&lt;decltype(_caching)&gt;(_caching), std::forward&lt;decltype(flags)&gt;(flags));</div><div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160;}</div><div class="ttc" id="namespaceafio__v2__xxx_html_a0b751376f48a4fd14cb90cce03b2b491"><div class="ttname"><a href="namespaceafio__v2__xxx.html#a0b751376f48a4fd14cb90cce03b2b491">afio_v2_xxx::async_temp_file</a></div><div class="ttdeci">result&lt; async_file_handle &gt; async_temp_file(io_service &amp;service, async_file_handle::path_view_type name=async_file_handle::path_view_type(), async_file_handle::mode _mode=async_file_handle::mode::write, async_file_handle::creation _creation=async_file_handle::creation::if_needed, async_file_handle::caching _caching=async_file_handle::caching::only_metadata, async_file_handle::flag flags=async_file_handle::flag::unlink_on_close) noexcept</div><div class="ttdef"><b>Definition:</b> async_file_handle.hpp:611</div></div>
</div><!-- fragment -->
</div>
</div>
@@ -657,7 +657,7 @@ std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operato
</div><div class="memdoc">
<p><em>Securely</em> create an async file handle creating a temporary anonymous inode in the filesystem referred to by <em>dirpath</em>. The inode created has no name nor accessible path on the filing system and ceases to exist as soon as the last handle is closed, making it ideal for use as a temporary file where other processes do not need to have access to its contents via some path on the filing system (a classic use case is for backing shared memory maps).</p>
<dl class="section user"><dt>Errors returnable</dt><dd>Any of the values POSIX open() or CreateFile() can return. </dd></dl>
-<div class="fragment"><div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160;{</div><div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceafio__v2__xxx.html#a5eb846433fec3c9c80336ff686c2527e">async_file_handle::async_temp_inode</a>(std::forward&lt;decltype(service)&gt;(service), std::forward&lt;decltype(dir)&gt;(dir), std::forward&lt;decltype(_mode)&gt;(_mode), std::forward&lt;decltype(flags)&gt;(flags));</div><div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160;}</div><div class="ttc" id="namespaceafio__v2__xxx_html_a5eb846433fec3c9c80336ff686c2527e"><div class="ttname"><a href="namespaceafio__v2__xxx.html#a5eb846433fec3c9c80336ff686c2527e">afio_v2_xxx::async_temp_inode</a></div><div class="ttdeci">result&lt; async_file_handle &gt; async_temp_inode(io_service &amp;service, const path_handle &amp;dir=path_discovery::storage_backed_temporary_files_directory(), async_file_handle::mode _mode=async_file_handle::mode::write, async_file_handle::flag flags=async_file_handle::flag::none) noexcept</div><div class="ttdef"><b>Definition:</b> async_file_handle.hpp:628</div></div>
+<div class="fragment"><div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160;{</div><div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceafio__v2__xxx.html#a5eb846433fec3c9c80336ff686c2527e">async_file_handle::async_temp_inode</a>(std::forward&lt;decltype(service)&gt;(service), std::forward&lt;decltype(dir)&gt;(dir), std::forward&lt;decltype(_mode)&gt;(_mode), std::forward&lt;decltype(flags)&gt;(flags));</div><div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160;}</div><div class="ttc" id="namespaceafio__v2__xxx_html_a5eb846433fec3c9c80336ff686c2527e"><div class="ttname"><a href="namespaceafio__v2__xxx.html#a5eb846433fec3c9c80336ff686c2527e">afio_v2_xxx::async_temp_inode</a></div><div class="ttdeci">result&lt; async_file_handle &gt; async_temp_inode(io_service &amp;service, const path_handle &amp;dir=path_discovery::storage_backed_temporary_files_directory(), async_file_handle::mode _mode=async_file_handle::mode::write, async_file_handle::flag flags=async_file_handle::flag::none) noexcept</div><div class="ttdef"><b>Definition:</b> async_file_handle.hpp:626</div></div>
</div><!-- fragment -->
</div>
</div>
@@ -780,7 +780,7 @@ For portability, you can only assume that barriers write order for a single hand
</dl>
<dl class="section user"><dt>Errors returnable</dt><dd>As for read(), plus ENOMEM. </dd></dl>
<dl class="section user"><dt>Memory Allocations</dt><dd>One calloc, one free. </dd></dl>
-<div class="fragment"><div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160;{</div><div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160; <span class="keywordflow">return</span> <span class="keyword">self</span>.co_read(std::forward&lt;decltype(reqs)&gt;(reqs));</div><div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160;}</div></div><!-- fragment -->
+<div class="fragment"><div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160;{</div><div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160; <span class="keywordflow">return</span> <span class="keyword">self</span>.co_read(std::forward&lt;decltype(reqs)&gt;(reqs));</div><div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160;}</div></div><!-- fragment -->
</div>
</div>
<a id="acd740f5aef6ca339575e7497fa873d06"></a>
@@ -828,7 +828,7 @@ For portability, you can only assume that barriers write order for a single hand
</dl>
<dl class="section user"><dt>Errors returnable</dt><dd>As for write(), plus ENOMEM. </dd></dl>
<dl class="section user"><dt>Memory Allocations</dt><dd>One calloc, one free. </dd></dl>
-<div class="fragment"><div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160;{</div><div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160; <span class="keywordflow">return</span> <span class="keyword">self</span>.co_write(std::forward&lt;decltype(reqs)&gt;(reqs));</div><div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160;}</div></div><!-- fragment -->
+<div class="fragment"><div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160;{</div><div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160; <span class="keywordflow">return</span> <span class="keyword">self</span>.co_write(std::forward&lt;decltype(reqs)&gt;(reqs));</div><div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160;}</div></div><!-- fragment -->
</div>
</div>
<a id="affce2389376e27ffa0565890034d209f"></a>