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:
Diffstat (limited to 'structllfio__v2__xxx_1_1io__multiplexer_1_1awaitable.html')
-rw-r--r--structllfio__v2__xxx_1_1io__multiplexer_1_1awaitable.html256
1 files changed, 256 insertions, 0 deletions
diff --git a/structllfio__v2__xxx_1_1io__multiplexer_1_1awaitable.html b/structllfio__v2__xxx_1_1io__multiplexer_1_1awaitable.html
new file mode 100644
index 00000000..c474c12c
--- /dev/null
+++ b/structllfio__v2__xxx_1_1io__multiplexer_1_1awaitable.html
@@ -0,0 +1,256 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.17"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>LLFIO: llfio_v2_xxx::io_multiplexer::awaitable&lt; T &gt; Struct Template Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">LLFIO
+ &#160;<span id="projectnumber">v2.00 late beta</span>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.17 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(document).ready(function(){initNavTree('structllfio__v2__xxx_1_1io__multiplexer_1_1awaitable.html',''); initResizable(); });
+/* @license-end */
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pub-types">Public Types</a> &#124;
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pub-attribs">Public Attributes</a> &#124;
+<a href="#pub-static-attribs">Static Public Attributes</a> &#124;
+<a href="#pro-types">Protected Types</a> &#124;
+<a href="#pro-methods">Protected Member Functions</a> &#124;
+<a href="#friends">Friends</a> &#124;
+<a href="structllfio__v2__xxx_1_1io__multiplexer_1_1awaitable-members.html">List of all members</a> </div>
+ <div class="headertitle">
+<div class="title">llfio_v2_xxx::io_multiplexer::awaitable&lt; T &gt; Struct Template Reference<span class="mlabels"><span class="mlabel">final</span></span></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>A convenience coroutine awaitable type returned by <code>.co_read()</code>, <code>.co_write()</code> and <code>.co_barrier()</code>. <b>Blocks execution</b> if no i/o multiplexer has been set on this handle!
+ <a href="structllfio__v2__xxx_1_1io__multiplexer_1_1awaitable.html#details">More...</a></p>
+
+<p><code>#include &quot;io_multiplexer.hpp&quot;</code></p>
+<div class="dynheader">
+Inheritance diagram for llfio_v2_xxx::io_multiplexer::awaitable&lt; T &gt;:</div>
+<div class="dyncontent">
+ <div class="center">
+ <img src="structllfio__v2__xxx_1_1io__multiplexer_1_1awaitable.png" usemap="#llfio_5Fv2_5Fxxx::io_5Fmultiplexer::awaitable_3C_20T_20_3E_map" alt=""/>
+ <map id="llfio_5Fv2_5Fxxx::io_5Fmultiplexer::awaitable_3C_20T_20_3E_map" name="llfio_5Fv2_5Fxxx::io_5Fmultiplexer::awaitable_3C_20T_20_3E_map">
+<area href="structllfio__v2__xxx_1_1io__multiplexer_1_1io__operation__state__visitor.html" title="Called by an i/o operation state to inform you of state change. Note that the i/o operation state loc..." alt="llfio_v2_xxx::io_multiplexer::io_operation_state_visitor" shape="rect" coords="0,0,311,24"/>
+ </map>
+</div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
+Public Types</h2></td></tr>
+<tr class="memitem:a59fab1c0f3063106623f94e4ec42aab4"><td class="memItemLeft" align="right" valign="top"><a id="a59fab1c0f3063106623f94e4ec42aab4"></a>
+using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structllfio__v2__xxx_1_1io__multiplexer_1_1awaitable.html#a59fab1c0f3063106623f94e4ec42aab4">result_type</a> = T</td></tr>
+<tr class="memdesc:a59fab1c0f3063106623f94e4ec42aab4"><td class="mdescLeft">&#160;</td><td class="mdescRight">The result type of this awaitable. <br /></td></tr>
+<tr class="separator:a59fab1c0f3063106623f94e4ec42aab4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aca180155e6c98895c953ca2b96276c77"><td class="memItemLeft" align="right" valign="top"><a id="aca180155e6c98895c953ca2b96276c77"></a>
+using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structllfio__v2__xxx_1_1io__multiplexer_1_1awaitable.html#aca180155e6c98895c953ca2b96276c77">buffers_type</a> = typename result_type::value_type</td></tr>
+<tr class="memdesc:aca180155e6c98895c953ca2b96276c77"><td class="mdescLeft">&#160;</td><td class="mdescRight">The buffers type of this awaitable. <br /></td></tr>
+<tr class="separator:aca180155e6c98895c953ca2b96276c77"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a8087d33fb104dac1261abbe4ba58b979"><td class="memItemLeft" align="right" valign="top"><a id="a8087d33fb104dac1261abbe4ba58b979"></a>
+constexpr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structllfio__v2__xxx_1_1io__multiplexer_1_1awaitable.html#a8087d33fb104dac1261abbe4ba58b979">awaitable</a> ()</td></tr>
+<tr class="memdesc:a8087d33fb104dac1261abbe4ba58b979"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default constructor. <br /></td></tr>
+<tr class="separator:a8087d33fb104dac1261abbe4ba58b979"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a65537aacf96416de702e47cbde6b36c7"><td class="memItemLeft" align="right" valign="top"><a id="a65537aacf96416de702e47cbde6b36c7"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structllfio__v2__xxx_1_1io__multiplexer_1_1awaitable.html#a65537aacf96416de702e47cbde6b36c7">awaitable</a> (<a class="el" href="structllfio__v2__xxx_1_1io__multiplexer_1_1awaitable.html#a59fab1c0f3063106623f94e4ec42aab4">result_type</a> &amp;&amp;res) noexcept</td></tr>
+<tr class="memdesc:a65537aacf96416de702e47cbde6b36c7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs an immediately finished awaitable. <br /></td></tr>
+<tr class="separator:a65537aacf96416de702e47cbde6b36c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a71f45f3dc4b6aeae4bca751758e69423"><td class="memItemLeft" align="right" valign="top"><a id="a71f45f3dc4b6aeae4bca751758e69423"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>awaitable</b> (const <a class="el" href="structllfio__v2__xxx_1_1io__multiplexer_1_1awaitable.html">awaitable</a> &amp;)=delete</td></tr>
+<tr class="separator:a71f45f3dc4b6aeae4bca751758e69423"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8f7eb5f31a556f508b1109edda19bac6"><td class="memItemLeft" align="right" valign="top"><a id="a8f7eb5f31a556f508b1109edda19bac6"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structllfio__v2__xxx_1_1io__multiplexer_1_1awaitable.html#a8f7eb5f31a556f508b1109edda19bac6">awaitable</a> (<a class="el" href="structllfio__v2__xxx_1_1io__multiplexer_1_1awaitable.html">awaitable</a> &amp;&amp;o) noexcept</td></tr>
+<tr class="memdesc:a8f7eb5f31a556f508b1109edda19bac6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move construction, terminates the process if the i/o is in progress. <br /></td></tr>
+<tr class="separator:a8f7eb5f31a556f508b1109edda19bac6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a09f4f17a00a8fb700fd5cbb0b73d6d1d"><td class="memItemLeft" align="right" valign="top"><a id="a09f4f17a00a8fb700fd5cbb0b73d6d1d"></a>
+<a class="el" href="structllfio__v2__xxx_1_1io__multiplexer_1_1awaitable.html">awaitable</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (const <a class="el" href="structllfio__v2__xxx_1_1io__multiplexer_1_1awaitable.html">awaitable</a> &amp;)=delete</td></tr>
+<tr class="separator:a09f4f17a00a8fb700fd5cbb0b73d6d1d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acd04e91854d57489ae87872fc8f73065"><td class="memItemLeft" align="right" valign="top"><a id="acd04e91854d57489ae87872fc8f73065"></a>
+<a class="el" href="structllfio__v2__xxx_1_1io__multiplexer_1_1awaitable.html">awaitable</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (<a class="el" href="structllfio__v2__xxx_1_1io__multiplexer_1_1awaitable.html">awaitable</a> &amp;&amp;o) noexcept</td></tr>
+<tr class="separator:acd04e91854d57489ae87872fc8f73065"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a298a3769fcea4e3cb54fe59f7402cdee"><td class="memItemLeft" align="right" valign="top"><a id="a298a3769fcea4e3cb54fe59f7402cdee"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structllfio__v2__xxx_1_1io__multiplexer_1_1awaitable.html#a298a3769fcea4e3cb54fe59f7402cdee">~awaitable</a> ()</td></tr>
+<tr class="memdesc:a298a3769fcea4e3cb54fe59f7402cdee"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor, blocks if the i/o is in progress. <br /></td></tr>
+<tr class="separator:a298a3769fcea4e3cb54fe59f7402cdee"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a687e302e266f2666dd4186d0f9c74abc"><td class="memItemLeft" align="right" valign="top"><a id="a687e302e266f2666dd4186d0f9c74abc"></a>
+bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structllfio__v2__xxx_1_1io__multiplexer_1_1awaitable.html#a687e302e266f2666dd4186d0f9c74abc">await_ready</a> () noexcept</td></tr>
+<tr class="memdesc:a687e302e266f2666dd4186d0f9c74abc"><td class="mdescLeft">&#160;</td><td class="mdescRight">True if the i/o state is finished. Begins the i/o if it is not initiated yet. <br /></td></tr>
+<tr class="separator:a687e302e266f2666dd4186d0f9c74abc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aee7e418ca902b7b6096097ed771e8f33"><td class="memItemLeft" align="right" valign="top"><a id="aee7e418ca902b7b6096097ed771e8f33"></a>
+<a class="el" href="structllfio__v2__xxx_1_1io__multiplexer_1_1awaitable.html#a59fab1c0f3063106623f94e4ec42aab4">result_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structllfio__v2__xxx_1_1io__multiplexer_1_1awaitable.html#aee7e418ca902b7b6096097ed771e8f33">await_resume</a> ()</td></tr>
+<tr class="memdesc:aee7e418ca902b7b6096097ed771e8f33"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the result of the i/o. <br /></td></tr>
+<tr class="separator:aee7e418ca902b7b6096097ed771e8f33"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9054c8b05776c4eba914048cc745d6cf"><td class="memItemLeft" align="right" valign="top"><a id="a9054c8b05776c4eba914048cc745d6cf"></a>
+bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structllfio__v2__xxx_1_1io__multiplexer_1_1awaitable.html#a9054c8b05776c4eba914048cc745d6cf">operator&lt;</a> (const <a class="el" href="structllfio__v2__xxx_1_1io__multiplexer_1_1awaitable.html">awaitable</a> &amp;o) const noexcept</td></tr>
+<tr class="memdesc:a9054c8b05776c4eba914048cc745d6cf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides ordering, so awaitables can be placed into maps. <br /></td></tr>
+<tr class="separator:a9054c8b05776c4eba914048cc745d6cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7b32495a7a51102de1392d574324db57"><td class="memItemLeft" align="right" valign="top"><a id="a7b32495a7a51102de1392d574324db57"></a>
+bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structllfio__v2__xxx_1_1io__multiplexer_1_1awaitable.html#a7b32495a7a51102de1392d574324db57">operator==</a> (const <a class="el" href="structllfio__v2__xxx_1_1io__multiplexer_1_1awaitable.html">awaitable</a> &amp;o) const noexcept</td></tr>
+<tr class="memdesc:a7b32495a7a51102de1392d574324db57"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides equality, so awaitables can be placed into maps. <br /></td></tr>
+<tr class="separator:a7b32495a7a51102de1392d574324db57"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Public Attributes</h2></td></tr>
+<tr class="memitem:a1cc023b82293762fbd472346fe41fdff"><td class="memItemLeft" align="right" valign="top"><a id="a1cc023b82293762fbd472346fe41fdff"></a>
+byte&#160;</td><td class="memItemRight" valign="bottom"><b>_state_storage</b> [_state_storage_bytes]</td></tr>
+<tr class="separator:a1cc023b82293762fbd472346fe41fdff"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a828cc275944ca7a542ff9ca6084eb06b"><td class="memItemLeft" align="right" valign="top"><a id="a828cc275944ca7a542ff9ca6084eb06b"></a>
+<a class="el" href="structllfio__v2__xxx_1_1io__multiplexer_1_1io__operation__state.html">io_operation_state</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>_state</b> {nullptr}</td></tr>
+<tr class="separator:a828cc275944ca7a542ff9ca6084eb06b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-attribs"></a>
+Static Public Attributes</h2></td></tr>
+<tr class="memitem:a6358b4767ee20f0d0db2a2810fa53efd"><td class="memItemLeft" align="right" valign="top"><a id="a6358b4767ee20f0d0db2a2810fa53efd"></a>
+static constexpr size_t&#160;</td><td class="memItemRight" valign="bottom"><b>_state_storage_bytes</b> = _awaitable_size - sizeof(void *) - sizeof(<a class="el" href="structllfio__v2__xxx_1_1io__multiplexer_1_1io__operation__state.html">io_operation_state</a> *)</td></tr>
+<tr class="separator:a6358b4767ee20f0d0db2a2810fa53efd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-types"></a>
+Protected Types</h2></td></tr>
+<tr class="memitem:ab290d8f6ae07e4bcc37b1de73f4457c0"><td class="memItemLeft" align="right" valign="top"><a id="ab290d8f6ae07e4bcc37b1de73f4457c0"></a>
+using&#160;</td><td class="memItemRight" valign="bottom"><b>lock_guard</b> = <a class="el" href="structllfio__v2__xxx_1_1io__multiplexer_1_1io__operation__state_1_1lock__guard.html">io_operation_state::lock_guard</a></td></tr>
+<tr class="separator:ab290d8f6ae07e4bcc37b1de73f4457c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
+Protected Member Functions</h2></td></tr>
+<tr class="memitem:a20be335e45bf3d9c3f4369ba5692f247"><td class="memItemLeft" align="right" valign="top"><a id="a20be335e45bf3d9c3f4369ba5692f247"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>set_state</b> (<a class="el" href="structllfio__v2__xxx_1_1io__multiplexer_1_1io__operation__state.html">io_operation_state</a> *state) noexcept</td></tr>
+<tr class="separator:a20be335e45bf3d9c3f4369ba5692f247"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6424df9fe1b12b3120433ab4835a6ddc"><td class="memItemLeft" align="right" valign="top"><a id="a6424df9fe1b12b3120433ab4835a6ddc"></a>
+virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structllfio__v2__xxx_1_1io__multiplexer_1_1awaitable.html#a6424df9fe1b12b3120433ab4835a6ddc">read_finished</a> (<a class="el" href="structllfio__v2__xxx_1_1io__multiplexer_1_1io__operation__state_1_1lock__guard.html">lock_guard</a> &amp;g, <a class="el" href="namespacellfio__v2__xxx.html#a8884e1fc12d34aeaa428539bf6298745">io_operation_state_type</a>) override</td></tr>
+<tr class="memdesc:a6424df9fe1b12b3120433ab4835a6ddc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called when an i/o has finished, and its state can now be destroyed. <br /></td></tr>
+<tr class="separator:a6424df9fe1b12b3120433ab4835a6ddc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4928c0ee2cb668da6fc3a3ad8205df7b"><td class="memItemLeft" align="right" valign="top"><a id="a4928c0ee2cb668da6fc3a3ad8205df7b"></a>
+virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structllfio__v2__xxx_1_1io__multiplexer_1_1awaitable.html#a4928c0ee2cb668da6fc3a3ad8205df7b">write_or_barrier_finished</a> (<a class="el" href="structllfio__v2__xxx_1_1io__multiplexer_1_1io__operation__state_1_1lock__guard.html">lock_guard</a> &amp;g, <a class="el" href="namespacellfio__v2__xxx.html#a8884e1fc12d34aeaa428539bf6298745">io_operation_state_type</a>) override</td></tr>
+<tr class="memdesc:a4928c0ee2cb668da6fc3a3ad8205df7b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called when an i/o has finished, and its state can now be destroyed. <br /></td></tr>
+<tr class="separator:a4928c0ee2cb668da6fc3a3ad8205df7b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae46b4b960372e5dad3a53d45150b01a1"><td class="memItemLeft" align="right" valign="top"><a id="ae46b4b960372e5dad3a53d45150b01a1"></a>
+virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structllfio__v2__xxx_1_1io__multiplexer_1_1io__operation__state__visitor.html#ae46b4b960372e5dad3a53d45150b01a1">read_initiated</a> (<a class="el" href="structllfio__v2__xxx_1_1io__multiplexer_1_1io__operation__state_1_1lock__guard.html">lock_guard</a> &amp;, <a class="el" href="namespacellfio__v2__xxx.html#a8884e1fc12d34aeaa428539bf6298745">io_operation_state_type</a>)</td></tr>
+<tr class="memdesc:ae46b4b960372e5dad3a53d45150b01a1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called when an i/o has been initiated, and is now being processed asynchronously. <br /></td></tr>
+<tr class="separator:ae46b4b960372e5dad3a53d45150b01a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac1b0710e718b9edc638d59efb23ee94e"><td class="memItemLeft" align="right" valign="top"><a id="ac1b0710e718b9edc638d59efb23ee94e"></a>
+virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structllfio__v2__xxx_1_1io__multiplexer_1_1io__operation__state__visitor.html#ac1b0710e718b9edc638d59efb23ee94e">read_completed</a> (<a class="el" href="structllfio__v2__xxx_1_1io__multiplexer_1_1io__operation__state_1_1lock__guard.html">lock_guard</a> &amp;, <a class="el" href="namespacellfio__v2__xxx.html#a8884e1fc12d34aeaa428539bf6298745">io_operation_state_type</a>, <a class="el" href="structllfio__v2__xxx_1_1io__multiplexer_1_1io__result.html">io_result</a>&lt; <a class="el" href="structllfio__v2__xxx_1_1io__multiplexer_1_1awaitable.html#aca180155e6c98895c953ca2b96276c77">buffers_type</a> &gt; &amp;&amp;)</td></tr>
+<tr class="memdesc:ac1b0710e718b9edc638d59efb23ee94e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called when an i/o has completed, and its result is available. Return true if you consume the result. <br /></td></tr>
+<tr class="separator:ac1b0710e718b9edc638d59efb23ee94e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0b0f655751f5fdefee3557cebe469a06"><td class="memItemLeft" align="right" valign="top"><a id="a0b0f655751f5fdefee3557cebe469a06"></a>
+virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structllfio__v2__xxx_1_1io__multiplexer_1_1io__operation__state__visitor.html#a0b0f655751f5fdefee3557cebe469a06">write_initiated</a> (<a class="el" href="structllfio__v2__xxx_1_1io__multiplexer_1_1io__operation__state_1_1lock__guard.html">lock_guard</a> &amp;, <a class="el" href="namespacellfio__v2__xxx.html#a8884e1fc12d34aeaa428539bf6298745">io_operation_state_type</a>)</td></tr>
+<tr class="memdesc:a0b0f655751f5fdefee3557cebe469a06"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called when an i/o has been initiated, and is now being processed asynchronously. <br /></td></tr>
+<tr class="separator:a0b0f655751f5fdefee3557cebe469a06"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5fc354bd51e2fbc006f2d5c7772268f1"><td class="memItemLeft" align="right" valign="top"><a id="a5fc354bd51e2fbc006f2d5c7772268f1"></a>
+virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structllfio__v2__xxx_1_1io__multiplexer_1_1io__operation__state__visitor.html#a5fc354bd51e2fbc006f2d5c7772268f1">write_completed</a> (<a class="el" href="structllfio__v2__xxx_1_1io__multiplexer_1_1io__operation__state_1_1lock__guard.html">lock_guard</a> &amp;, <a class="el" href="namespacellfio__v2__xxx.html#a8884e1fc12d34aeaa428539bf6298745">io_operation_state_type</a>, <a class="el" href="structllfio__v2__xxx_1_1io__multiplexer_1_1io__result.html">io_result</a>&lt; <a class="el" href="classllfio__v2__xxx_1_1io__multiplexer.html#abc6841b44841c72c3778a3aee296a051">const_buffers_type</a> &gt; &amp;&amp;)</td></tr>
+<tr class="memdesc:a5fc354bd51e2fbc006f2d5c7772268f1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called when an i/o has completed, and its result is available. Return true if you consume the result. <br /></td></tr>
+<tr class="separator:a5fc354bd51e2fbc006f2d5c7772268f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2782aa849f1881bd782da6714ec5435a"><td class="memItemLeft" align="right" valign="top"><a id="a2782aa849f1881bd782da6714ec5435a"></a>
+virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structllfio__v2__xxx_1_1io__multiplexer_1_1io__operation__state__visitor.html#a2782aa849f1881bd782da6714ec5435a">barrier_initiated</a> (<a class="el" href="structllfio__v2__xxx_1_1io__multiplexer_1_1io__operation__state_1_1lock__guard.html">lock_guard</a> &amp;, <a class="el" href="namespacellfio__v2__xxx.html#a8884e1fc12d34aeaa428539bf6298745">io_operation_state_type</a>)</td></tr>
+<tr class="memdesc:a2782aa849f1881bd782da6714ec5435a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called when an i/o has been initiated, and is now being processed asynchronously. <br /></td></tr>
+<tr class="separator:a2782aa849f1881bd782da6714ec5435a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad9ded29fcb56dcbb2da09a8283522fde"><td class="memItemLeft" align="right" valign="top"><a id="ad9ded29fcb56dcbb2da09a8283522fde"></a>
+virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structllfio__v2__xxx_1_1io__multiplexer_1_1io__operation__state__visitor.html#ad9ded29fcb56dcbb2da09a8283522fde">barrier_completed</a> (<a class="el" href="structllfio__v2__xxx_1_1io__multiplexer_1_1io__operation__state_1_1lock__guard.html">lock_guard</a> &amp;, <a class="el" href="namespacellfio__v2__xxx.html#a8884e1fc12d34aeaa428539bf6298745">io_operation_state_type</a>, <a class="el" href="structllfio__v2__xxx_1_1io__multiplexer_1_1io__result.html">io_result</a>&lt; <a class="el" href="classllfio__v2__xxx_1_1io__multiplexer.html#abc6841b44841c72c3778a3aee296a051">const_buffers_type</a> &gt; &amp;&amp;)</td></tr>
+<tr class="memdesc:ad9ded29fcb56dcbb2da09a8283522fde"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called when an i/o has completed, and its result is available. Return true if you consume the result. <br /></td></tr>
+<tr class="separator:ad9ded29fcb56dcbb2da09a8283522fde"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a>
+Friends</h2></td></tr>
+<tr class="memitem:a954c5d5a2b4f91a7af3caf7f36dbbdbe"><td class="memItemLeft" align="right" valign="top"><a id="a954c5d5a2b4f91a7af3caf7f36dbbdbe"></a>
+class&#160;</td><td class="memItemRight" valign="bottom"><b>io_handle</b></td></tr>
+<tr class="separator:a954c5d5a2b4f91a7af3caf7f36dbbdbe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><h3>template&lt;class T&gt;<br />
+struct llfio_v2_xxx::io_multiplexer::awaitable&lt; T &gt;</h3>
+
+<p>A convenience coroutine awaitable type returned by <code>.co_read()</code>, <code>.co_write()</code> and <code>.co_barrier()</code>. <b>Blocks execution</b> if no i/o multiplexer has been set on this handle! </p>
+<p>Upon first <code>.await_ready()</code>, the awaitable initiates the i/o. If the i/o completes immediately, the awaitable is immediately ready and no coroutine suspension occurs.</p>
+<p>If the i/o does not complete immediately, the coroutine is suspended. To cause resumption of execution, you will need to pump the associated i/o multiplexer for completions using <code>io_multiplexer::check_for_any_completed_io()</code>. </p>
+</div><hr/>The documentation for this struct was generated from the following files:<ul>
+<li>include/llfio/v2.0/io_multiplexer.hpp</li>
+<li>include/llfio/v2.0/<a class="el" href="io__handle_8hpp.html">io_handle.hpp</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="namespacellfio__v2__xxx.html">llfio_v2_xxx</a></li><li class="navelem"><a class="el" href="classllfio__v2__xxx_1_1io__multiplexer.html">io_multiplexer</a></li><li class="navelem"><a class="el" href="structllfio__v2__xxx_1_1io__multiplexer_1_1awaitable.html">awaitable</a></li>
+ <li class="footer">Generated by
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
+ </ul>
+</div>
+</body>
+</html>