332 lines
52 KiB
HTML
332 lines
52 KiB
HTML
<!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" lang="en-US">
|
||
<head>
|
||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||
<meta name="generator" content="Doxygen 1.9.6"/>
|
||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||
<title>uvw: src/uvw/loop.h Source File</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="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 id="projectrow">
|
||
<td id="projectalign">
|
||
<div id="projectname">uvw<span id="projectnumber"> 3.1.0</span>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<!-- end header part -->
|
||
<!-- Generated by Doxygen 1.9.6 -->
|
||
<script type="text/javascript">
|
||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||
/* @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:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||
$(function() {
|
||
initMenu('',true,false,'search.php','Search');
|
||
$(document).ready(function() { init_search(); });
|
||
});
|
||
/* @license-end */
|
||
</script>
|
||
<div id="main-nav"></div>
|
||
<!-- 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">
|
||
<div id="MSearchResults">
|
||
<div class="SRPage">
|
||
<div id="SRIndex">
|
||
<div id="SRResults"></div>
|
||
<div class="SRStatus" id="Loading">Loading...</div>
|
||
<div class="SRStatus" id="Searching">Searching...</div>
|
||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div id="nav-path" class="navpath">
|
||
<ul>
|
||
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_98934c98f70735fe3a272005a9eb8736.html">uvw</a></li> </ul>
|
||
</div>
|
||
</div><!-- top -->
|
||
<div class="header">
|
||
<div class="headertitle"><div class="title">loop.h</div></div>
|
||
</div><!--header-->
|
||
<div class="contents">
|
||
<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="preprocessor">#ifndef UVW_LOOP_INCLUDE_H</span></div>
|
||
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="preprocessor">#define UVW_LOOP_INCLUDE_H</span></div>
|
||
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span> </div>
|
||
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="preprocessor">#ifdef _WIN32</span></div>
|
||
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="preprocessor"># include <ciso646></span></div>
|
||
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="preprocessor">#endif</span></div>
|
||
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span> </div>
|
||
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="preprocessor">#include <chrono></span></div>
|
||
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="preprocessor">#include <functional></span></div>
|
||
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="preprocessor">#include <memory></span></div>
|
||
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="preprocessor">#include <type_traits></span></div>
|
||
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="preprocessor">#include <utility></span></div>
|
||
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="preprocessor">#include <uv.h></span></div>
|
||
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="preprocessor">#include "config.h"</span></div>
|
||
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="preprocessor">#include "emitter.h"</span></div>
|
||
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="preprocessor">#include "util.h"</span></div>
|
||
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> </div>
|
||
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceuvw.html">uvw</a> {</div>
|
||
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> </div>
|
||
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="keyword">class </span>async_handle;</div>
|
||
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="keyword">class </span>check_handle;</div>
|
||
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="keyword">class </span>fs_event_handle;</div>
|
||
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span><span class="keyword">class </span>fs_poll_handle;</div>
|
||
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span><span class="keyword">class </span>idle_handle;</div>
|
||
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span><span class="keyword">class </span>pipe_handle;</div>
|
||
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span><span class="keyword">class </span>poll_handle;</div>
|
||
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span><span class="keyword">class </span>prepare_handle;</div>
|
||
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span><span class="keyword">class </span>process_handle;</div>
|
||
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span><span class="keyword">class </span>signal_handle;</div>
|
||
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span><span class="keyword">class </span>tcp_handle;</div>
|
||
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span><span class="keyword">class </span>timer_handle;</div>
|
||
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span><span class="keyword">class </span>tty_handle;</div>
|
||
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span><span class="keyword">class </span>udp_handle;</div>
|
||
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> </div>
|
||
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span><span class="keyword">namespace </span>details {</div>
|
||
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> </div>
|
||
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span><span class="keyword">enum class</span> uvw_loop_option : std::underlying_type_t<uv_loop_option> {</div>
|
||
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> BLOCK_SIGNAL = UV_LOOP_BLOCK_SIGNAL,</div>
|
||
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> IDLE_TIME = UV_METRICS_IDLE_TIME</div>
|
||
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span>};</div>
|
||
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> </div>
|
||
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span><span class="keyword">enum class</span> uvw_run_mode : std::underlying_type_t<uv_run_mode> {</div>
|
||
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> DEFAULT = UV_RUN_DEFAULT,</div>
|
||
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> ONCE = UV_RUN_ONCE,</div>
|
||
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> NOWAIT = UV_RUN_NOWAIT</div>
|
||
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span>};</div>
|
||
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> </div>
|
||
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span>} <span class="comment">// namespace details</span></div>
|
||
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> </div>
|
||
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"><a class="line" href="namespaceuvw.html#af9dde6c7d8c096633c47b47962ba91e3"> 50</a></span><span class="keyword">using </span><a class="code hl_typedef" href="namespaceuvw.html#af9dde6c7d8c096633c47b47962ba91e3">metrics_type</a> = uv_metrics_t; </div>
|
||
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"><a class="line" href="classuvw_1_1loop.html"> 60</a></span><span class="keyword">class </span><a class="code hl_class" href="classuvw_1_1loop.html">loop</a> final: <span class="keyword">public</span> <a class="code hl_class" href="classuvw_1_1emitter.html">emitter</a><loop>, <span class="keyword">public</span> std::enable_shared_from_this<loop> {</div>
|
||
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> <span class="keyword">using </span>deleter = void (*)(uv_loop_t *);</div>
|
||
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> </div>
|
||
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> <span class="keyword">template</span><<span class="keyword">typename</span>, <span class="keyword">typename</span>, <span class="keyword">typename</span>...></div>
|
||
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> <span class="keyword">friend</span> <span class="keyword">class </span><a class="code hl_class" href="classuvw_1_1resource.html">resource</a>;</div>
|
||
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> </div>
|
||
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> <span class="keyword">class </span>uv_token {</div>
|
||
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> <span class="keyword">friend</span> <span class="keyword">class </span><a class="code hl_class" href="classuvw_1_1loop.html">loop</a>;</div>
|
||
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> <span class="keyword">explicit</span> uv_token(<span class="keywordtype">int</span>) {}</div>
|
||
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> };</div>
|
||
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> </div>
|
||
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> <a class="code hl_class" href="classuvw_1_1loop.html">loop</a>(std::unique_ptr<uv_loop_t, deleter> ptr) <span class="keyword">noexcept</span>;</div>
|
||
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> </div>
|
||
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span><span class="keyword">public</span>:</div>
|
||
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> <span class="keyword">using </span>token = uv_token;</div>
|
||
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> <span class="keyword">using </span>time = std::chrono::duration<uint64_t, std::milli>;</div>
|
||
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> <span class="keyword">using </span>option = details::uvw_loop_option;</div>
|
||
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> <span class="keyword">using </span>run_mode = details::uvw_run_mode;</div>
|
||
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> </div>
|
||
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"><a class="line" href="classuvw_1_1loop.html#a77a8922defbd7643a4b18550d263a8d6"> 83</a></span> <span class="keyword">static</span> std::shared_ptr<loop> <a class="code hl_function" href="classuvw_1_1loop.html#a77a8922defbd7643a4b18550d263a8d6">create</a>();</div>
|
||
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> </div>
|
||
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"><a class="line" href="classuvw_1_1loop.html#ad4d9897ff0dbc9a534bf38731fa16b46"> 95</a></span> <span class="keyword">static</span> std::shared_ptr<loop> <a class="code hl_function" href="classuvw_1_1loop.html#ad4d9897ff0dbc9a534bf38731fa16b46">create</a>(uv_loop_t *res);</div>
|
||
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> </div>
|
||
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"><a class="line" href="classuvw_1_1loop.html#a6392ce48b55f9b5644eeec2d6ce0e6d4"> 109</a></span> <span class="keyword">static</span> std::shared_ptr<loop> <a class="code hl_function" href="classuvw_1_1loop.html#a6392ce48b55f9b5644eeec2d6ce0e6d4">get_default</a>();</div>
|
||
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> </div>
|
||
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span> <a class="code hl_class" href="classuvw_1_1loop.html">loop</a>(<span class="keyword">const</span> <a class="code hl_class" href="classuvw_1_1loop.html">loop</a> &) = <span class="keyword">delete</span>;</div>
|
||
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> <a class="code hl_class" href="classuvw_1_1loop.html">loop</a>(<a class="code hl_class" href="classuvw_1_1loop.html">loop</a> &&other) = <span class="keyword">delete</span>;</div>
|
||
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> </div>
|
||
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> <a class="code hl_class" href="classuvw_1_1loop.html">loop</a> &operator=(<span class="keyword">const</span> <a class="code hl_class" href="classuvw_1_1loop.html">loop</a> &) = <span class="keyword">delete</span>;</div>
|
||
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> <a class="code hl_class" href="classuvw_1_1loop.html">loop</a> &operator=(<a class="code hl_class" href="classuvw_1_1loop.html">loop</a> &&other) = <span class="keyword">delete</span>;</div>
|
||
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> </div>
|
||
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span> <a class="code hl_class" href="classuvw_1_1loop.html">~loop</a>() noexcept;</div>
|
||
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span> </div>
|
||
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span> template<typename... Args></div>
|
||
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"><a class="line" href="classuvw_1_1loop.html#acb38eaee2680ed1c4ba74459e5c2a84a"> 139</a></span> <span class="keywordtype">int</span> <a class="code hl_function" href="classuvw_1_1loop.html#acb38eaee2680ed1c4ba74459e5c2a84a">configure</a>(option flag, Args &&...args) {</div>
|
||
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span> <span class="keywordflow">return</span> uv_loop_configure(uv_loop.get(), <span class="keyword">static_cast<</span>uv_loop_option<span class="keyword">></span>(flag), std::forward<Args>(args)...);</div>
|
||
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span> }</div>
|
||
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> </div>
|
||
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span> <span class="keyword">template</span><<span class="keyword">typename</span> R, <span class="keyword">typename</span>... Args></div>
|
||
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"><a class="line" href="classuvw_1_1loop.html#a36e1eb17d55ab7b8d089e55823015618"> 154</a></span> std::shared_ptr<R> <a class="code hl_function" href="classuvw_1_1loop.html#a36e1eb17d55ab7b8d089e55823015618">resource</a>(Args &&...args) {</div>
|
||
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span> <span class="keyword">auto</span> ptr = uninitialized_resource<R>(std::forward<Args>(args)...);</div>
|
||
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span> ptr = (ptr->init() == 0) ? ptr : <span class="keyword">nullptr</span>;</div>
|
||
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span> <span class="keywordflow">return</span> ptr;</div>
|
||
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span> }</div>
|
||
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span> </div>
|
||
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span> <span class="keyword">template</span><<span class="keyword">typename</span> R, <span class="keyword">typename</span>... Args></div>
|
||
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"><a class="line" href="classuvw_1_1loop.html#aef0dbe4d1e82e43a8df3df1c7386efca"> 165</a></span> std::shared_ptr<R> <a class="code hl_function" href="classuvw_1_1loop.html#aef0dbe4d1e82e43a8df3df1c7386efca">uninitialized_resource</a>(Args &&...args) {</div>
|
||
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span> <span class="keywordflow">return</span> std::make_shared<R>(token{0}, shared_from_this(), std::forward<Args>(args)...);</div>
|
||
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span> }</div>
|
||
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span> </div>
|
||
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"><a class="line" href="classuvw_1_1loop.html#ac0a8719f173a417a722fe779792a52e6"> 177</a></span> <span class="keywordtype">int</span> <a class="code hl_function" href="classuvw_1_1loop.html#ac0a8719f173a417a722fe779792a52e6">close</a>();</div>
|
||
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span> </div>
|
||
<div class="line"><a id="l00197" name="l00197"></a><span class="lineno"><a class="line" href="classuvw_1_1loop.html#a199e23bce642f5618e3d0c2b1e8d0cdf"> 197</a></span> <span class="keywordtype">int</span> <a class="code hl_function" href="classuvw_1_1loop.html#a199e23bce642f5618e3d0c2b1e8d0cdf">run</a>(run_mode mode = run_mode::DEFAULT) <span class="keyword">noexcept</span>;</div>
|
||
<div class="line"><a id="l00198" name="l00198"></a><span class="lineno"> 198</span> </div>
|
||
<div class="line"><a id="l00203" name="l00203"></a><span class="lineno"><a class="line" href="classuvw_1_1loop.html#a5d56b835e022e812d4930367b0a4f210"> 203</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classuvw_1_1loop.html#a5d56b835e022e812d4930367b0a4f210">alive</a>() const noexcept;</div>
|
||
<div class="line"><a id="l00204" name="l00204"></a><span class="lineno"> 204</span> </div>
|
||
<div class="line"><a id="l00213" name="l00213"></a><span class="lineno"><a class="line" href="classuvw_1_1loop.html#aaafbdbc9022bf12d4aad3db16dcee442"> 213</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classuvw_1_1loop.html#aaafbdbc9022bf12d4aad3db16dcee442">stop</a>() noexcept;</div>
|
||
<div class="line"><a id="l00214" name="l00214"></a><span class="lineno"> 214</span> </div>
|
||
<div class="line"><a id="l00224" name="l00224"></a><span class="lineno"><a class="line" href="classuvw_1_1loop.html#addbc84b4d00e0e61cf68bff4b7560b1f"> 224</a></span> <span class="keywordtype">int</span> <a class="code hl_function" href="classuvw_1_1loop.html#addbc84b4d00e0e61cf68bff4b7560b1f">descriptor</a>() const noexcept;</div>
|
||
<div class="line"><a id="l00225" name="l00225"></a><span class="lineno"> 225</span> </div>
|
||
<div class="line"><a id="l00232" name="l00232"></a><span class="lineno"><a class="line" href="classuvw_1_1loop.html#aa358c1daf70696679edd08513e1f3e31"> 232</a></span> std::pair<<span class="keywordtype">bool</span>, time> <a class="code hl_function" href="classuvw_1_1loop.html#aa358c1daf70696679edd08513e1f3e31">timeout</a>() const noexcept;</div>
|
||
<div class="line"><a id="l00233" name="l00233"></a><span class="lineno"> 233</span> </div>
|
||
<div class="line"><a id="l00239" name="l00239"></a><span class="lineno"><a class="line" href="classuvw_1_1loop.html#aeae404d30c956b2c5fa15ec3997f47fc"> 239</a></span> time <a class="code hl_function" href="classuvw_1_1loop.html#aeae404d30c956b2c5fa15ec3997f47fc">idle_time</a>() const noexcept;</div>
|
||
<div class="line"><a id="l00240" name="l00240"></a><span class="lineno"> 240</span> </div>
|
||
<div class="line"><a id="l00245" name="l00245"></a><span class="lineno"><a class="line" href="classuvw_1_1loop.html#a22d30bda64387cb70bd348f8e3b2932d"> 245</a></span> <a class="code hl_typedef" href="namespaceuvw.html#af9dde6c7d8c096633c47b47962ba91e3">metrics_type</a> <a class="code hl_function" href="classuvw_1_1loop.html#a22d30bda64387cb70bd348f8e3b2932d">metrics</a>() const noexcept;</div>
|
||
<div class="line"><a id="l00246" name="l00246"></a><span class="lineno"> 246</span> </div>
|
||
<div class="line"><a id="l00259" name="l00259"></a><span class="lineno"><a class="line" href="classuvw_1_1loop.html#ab48abde5d862db1a856900b08ecc02dd"> 259</a></span> time <a class="code hl_function" href="classuvw_1_1loop.html#ab48abde5d862db1a856900b08ecc02dd">now</a>() const noexcept;</div>
|
||
<div class="line"><a id="l00260" name="l00260"></a><span class="lineno"> 260</span> </div>
|
||
<div class="line"><a id="l00270" name="l00270"></a><span class="lineno"><a class="line" href="classuvw_1_1loop.html#a762ed24cc491eef2c942505d1885b0aa"> 270</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classuvw_1_1loop.html#a762ed24cc491eef2c942505d1885b0aa">update</a>() const noexcept;</div>
|
||
<div class="line"><a id="l00271" name="l00271"></a><span class="lineno"> 271</span> </div>
|
||
<div class="line"><a id="l00279" name="l00279"></a><span class="lineno"> 279</span> template<typename Func></div>
|
||
<div class="line"><a id="l00280" name="l00280"></a><span class="lineno"><a class="line" href="classuvw_1_1loop.html#aa46a050e186935c0be4eca7815cd9207"> 280</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classuvw_1_1loop.html#aa46a050e186935c0be4eca7815cd9207">walk</a>(Func callback) {</div>
|
||
<div class="line"><a id="l00281" name="l00281"></a><span class="lineno"> 281</span> <span class="keyword">auto</span> func = [](uv_handle_t *hndl, <span class="keywordtype">void</span> *func) {</div>
|
||
<div class="line"><a id="l00282" name="l00282"></a><span class="lineno"> 282</span> <span class="keywordflow">if</span>(hndl->data) {</div>
|
||
<div class="line"><a id="l00283" name="l00283"></a><span class="lineno"> 283</span> <span class="keyword">auto</span> &cb = *<span class="keyword">static_cast<</span>Func *<span class="keyword">></span>(func);</div>
|
||
<div class="line"><a id="l00284" name="l00284"></a><span class="lineno"> 284</span> </div>
|
||
<div class="line"><a id="l00285" name="l00285"></a><span class="lineno"> 285</span> <span class="keywordflow">switch</span>(<a class="code hl_function" href="structuvw_1_1utilities.html#ab234bae92058e009c344eaf6a190d7f2">utilities::guess_handle</a>(<a class="code hl_typedef" href="namespaceuvw.html#a9e28e1855691dd1af105626ed11f3ac4">handle_category</a>{hndl->type})) {</div>
|
||
<div class="line"><a id="l00286" name="l00286"></a><span class="lineno"> 286</span> <span class="keywordflow">case</span> handle_type::ASYNC:</div>
|
||
<div class="line"><a id="l00287" name="l00287"></a><span class="lineno"> 287</span> cb(*<span class="keyword">static_cast<</span><a class="code hl_class" href="classuvw_1_1async__handle.html">async_handle</a> *<span class="keyword">></span>(hndl->data));</div>
|
||
<div class="line"><a id="l00288" name="l00288"></a><span class="lineno"> 288</span> <span class="keywordflow">break</span>;</div>
|
||
<div class="line"><a id="l00289" name="l00289"></a><span class="lineno"> 289</span> <span class="keywordflow">case</span> handle_type::CHECK:</div>
|
||
<div class="line"><a id="l00290" name="l00290"></a><span class="lineno"> 290</span> cb(*<span class="keyword">static_cast<</span><a class="code hl_class" href="classuvw_1_1check__handle.html">check_handle</a> *<span class="keyword">></span>(hndl->data));</div>
|
||
<div class="line"><a id="l00291" name="l00291"></a><span class="lineno"> 291</span> <span class="keywordflow">break</span>;</div>
|
||
<div class="line"><a id="l00292" name="l00292"></a><span class="lineno"> 292</span> <span class="keywordflow">case</span> handle_type::FS_EVENT:</div>
|
||
<div class="line"><a id="l00293" name="l00293"></a><span class="lineno"> 293</span> cb(*<span class="keyword">static_cast<</span><a class="code hl_class" href="classuvw_1_1fs__event__handle.html">fs_event_handle</a> *<span class="keyword">></span>(hndl->data));</div>
|
||
<div class="line"><a id="l00294" name="l00294"></a><span class="lineno"> 294</span> <span class="keywordflow">break</span>;</div>
|
||
<div class="line"><a id="l00295" name="l00295"></a><span class="lineno"> 295</span> <span class="keywordflow">case</span> handle_type::FS_POLL:</div>
|
||
<div class="line"><a id="l00296" name="l00296"></a><span class="lineno"> 296</span> cb(*<span class="keyword">static_cast<</span><a class="code hl_class" href="classuvw_1_1fs__poll__handle.html">fs_poll_handle</a> *<span class="keyword">></span>(hndl->data));</div>
|
||
<div class="line"><a id="l00297" name="l00297"></a><span class="lineno"> 297</span> <span class="keywordflow">break</span>;</div>
|
||
<div class="line"><a id="l00298" name="l00298"></a><span class="lineno"> 298</span> <span class="keywordflow">case</span> handle_type::IDLE:</div>
|
||
<div class="line"><a id="l00299" name="l00299"></a><span class="lineno"> 299</span> cb(*<span class="keyword">static_cast<</span><a class="code hl_class" href="classuvw_1_1idle__handle.html">idle_handle</a> *<span class="keyword">></span>(hndl->data));</div>
|
||
<div class="line"><a id="l00300" name="l00300"></a><span class="lineno"> 300</span> <span class="keywordflow">break</span>;</div>
|
||
<div class="line"><a id="l00301" name="l00301"></a><span class="lineno"> 301</span> <span class="keywordflow">case</span> handle_type::PIPE:</div>
|
||
<div class="line"><a id="l00302" name="l00302"></a><span class="lineno"> 302</span> cb(*<span class="keyword">static_cast<</span><a class="code hl_class" href="classuvw_1_1pipe__handle.html">pipe_handle</a> *<span class="keyword">></span>(hndl->data));</div>
|
||
<div class="line"><a id="l00303" name="l00303"></a><span class="lineno"> 303</span> <span class="keywordflow">break</span>;</div>
|
||
<div class="line"><a id="l00304" name="l00304"></a><span class="lineno"> 304</span> <span class="keywordflow">case</span> handle_type::POLL:</div>
|
||
<div class="line"><a id="l00305" name="l00305"></a><span class="lineno"> 305</span> cb(*<span class="keyword">static_cast<</span><a class="code hl_class" href="classuvw_1_1poll__handle.html">poll_handle</a> *<span class="keyword">></span>(hndl->data));</div>
|
||
<div class="line"><a id="l00306" name="l00306"></a><span class="lineno"> 306</span> <span class="keywordflow">break</span>;</div>
|
||
<div class="line"><a id="l00307" name="l00307"></a><span class="lineno"> 307</span> <span class="keywordflow">case</span> handle_type::PREPARE:</div>
|
||
<div class="line"><a id="l00308" name="l00308"></a><span class="lineno"> 308</span> cb(*<span class="keyword">static_cast<</span><a class="code hl_class" href="classuvw_1_1prepare__handle.html">prepare_handle</a> *<span class="keyword">></span>(hndl->data));</div>
|
||
<div class="line"><a id="l00309" name="l00309"></a><span class="lineno"> 309</span> <span class="keywordflow">break</span>;</div>
|
||
<div class="line"><a id="l00310" name="l00310"></a><span class="lineno"> 310</span> <span class="keywordflow">case</span> handle_type::PROCESS:</div>
|
||
<div class="line"><a id="l00311" name="l00311"></a><span class="lineno"> 311</span> cb(*<span class="keyword">static_cast<</span><a class="code hl_class" href="classuvw_1_1process__handle.html">process_handle</a> *<span class="keyword">></span>(hndl->data));</div>
|
||
<div class="line"><a id="l00312" name="l00312"></a><span class="lineno"> 312</span> <span class="keywordflow">break</span>;</div>
|
||
<div class="line"><a id="l00313" name="l00313"></a><span class="lineno"> 313</span> <span class="keywordflow">case</span> handle_type::SIGNAL:</div>
|
||
<div class="line"><a id="l00314" name="l00314"></a><span class="lineno"> 314</span> cb(*<span class="keyword">static_cast<</span><a class="code hl_class" href="classuvw_1_1signal__handle.html">signal_handle</a> *<span class="keyword">></span>(hndl->data));</div>
|
||
<div class="line"><a id="l00315" name="l00315"></a><span class="lineno"> 315</span> <span class="keywordflow">break</span>;</div>
|
||
<div class="line"><a id="l00316" name="l00316"></a><span class="lineno"> 316</span> <span class="keywordflow">case</span> handle_type::TCP:</div>
|
||
<div class="line"><a id="l00317" name="l00317"></a><span class="lineno"> 317</span> cb(*<span class="keyword">static_cast<</span><a class="code hl_class" href="classuvw_1_1tcp__handle.html">tcp_handle</a> *<span class="keyword">></span>(hndl->data));</div>
|
||
<div class="line"><a id="l00318" name="l00318"></a><span class="lineno"> 318</span> <span class="keywordflow">break</span>;</div>
|
||
<div class="line"><a id="l00319" name="l00319"></a><span class="lineno"> 319</span> <span class="keywordflow">case</span> handle_type::TIMER:</div>
|
||
<div class="line"><a id="l00320" name="l00320"></a><span class="lineno"> 320</span> cb(*<span class="keyword">static_cast<</span><a class="code hl_class" href="classuvw_1_1timer__handle.html">timer_handle</a> *<span class="keyword">></span>(hndl->data));</div>
|
||
<div class="line"><a id="l00321" name="l00321"></a><span class="lineno"> 321</span> <span class="keywordflow">break</span>;</div>
|
||
<div class="line"><a id="l00322" name="l00322"></a><span class="lineno"> 322</span> <span class="keywordflow">case</span> handle_type::TTY:</div>
|
||
<div class="line"><a id="l00323" name="l00323"></a><span class="lineno"> 323</span> cb(*<span class="keyword">static_cast<</span><a class="code hl_class" href="classuvw_1_1tty__handle.html">tty_handle</a> *<span class="keyword">></span>(hndl->data));</div>
|
||
<div class="line"><a id="l00324" name="l00324"></a><span class="lineno"> 324</span> <span class="keywordflow">break</span>;</div>
|
||
<div class="line"><a id="l00325" name="l00325"></a><span class="lineno"> 325</span> <span class="keywordflow">case</span> handle_type::UDP:</div>
|
||
<div class="line"><a id="l00326" name="l00326"></a><span class="lineno"> 326</span> cb(*<span class="keyword">static_cast<</span><a class="code hl_class" href="classuvw_1_1udp__handle.html">udp_handle</a> *<span class="keyword">></span>(hndl->data));</div>
|
||
<div class="line"><a id="l00327" name="l00327"></a><span class="lineno"> 327</span> <span class="keywordflow">break</span>;</div>
|
||
<div class="line"><a id="l00328" name="l00328"></a><span class="lineno"> 328</span> <span class="keywordflow">default</span>:</div>
|
||
<div class="line"><a id="l00329" name="l00329"></a><span class="lineno"> 329</span> <span class="comment">// this handle isn't managed by uvw, let it be...</span></div>
|
||
<div class="line"><a id="l00330" name="l00330"></a><span class="lineno"> 330</span> <span class="keywordflow">break</span>;</div>
|
||
<div class="line"><a id="l00331" name="l00331"></a><span class="lineno"> 331</span> }</div>
|
||
<div class="line"><a id="l00332" name="l00332"></a><span class="lineno"> 332</span> }</div>
|
||
<div class="line"><a id="l00333" name="l00333"></a><span class="lineno"> 333</span> };</div>
|
||
<div class="line"><a id="l00334" name="l00334"></a><span class="lineno"> 334</span> </div>
|
||
<div class="line"><a id="l00335" name="l00335"></a><span class="lineno"> 335</span> uv_walk(uv_loop.get(), func, &callback);</div>
|
||
<div class="line"><a id="l00336" name="l00336"></a><span class="lineno"> 336</span> }</div>
|
||
<div class="line"><a id="l00337" name="l00337"></a><span class="lineno"> 337</span> </div>
|
||
<div class="line"><a id="l00368" name="l00368"></a><span class="lineno"><a class="line" href="classuvw_1_1loop.html#a2a569b877ff0c1cd3f66e21d5a2ded4c"> 368</a></span> <span class="keywordtype">int</span> <a class="code hl_function" href="classuvw_1_1loop.html#a2a569b877ff0c1cd3f66e21d5a2ded4c">fork</a>() noexcept;</div>
|
||
<div class="line"><a id="l00369" name="l00369"></a><span class="lineno"> 369</span> </div>
|
||
<div class="line"><a id="l00374" name="l00374"></a><span class="lineno"> 374</span> template<typename R = <span class="keywordtype">void</span>></div>
|
||
<div class="line"><a id="l00375" name="l00375"></a><span class="lineno"><a class="line" href="classuvw_1_1loop.html#a1b1266e74e2a0edf9493394af3847bb3"> 375</a></span> std::shared_ptr<R> <a class="code hl_function" href="classuvw_1_1loop.html#a1b1266e74e2a0edf9493394af3847bb3">data</a>()<span class="keyword"> const </span>{</div>
|
||
<div class="line"><a id="l00376" name="l00376"></a><span class="lineno"> 376</span> <span class="keywordflow">return</span> std::static_pointer_cast<R>(user_data);</div>
|
||
<div class="line"><a id="l00377" name="l00377"></a><span class="lineno"> 377</span> }</div>
|
||
<div class="line"><a id="l00378" name="l00378"></a><span class="lineno"> 378</span> </div>
|
||
<div class="line"><a id="l00383" name="l00383"></a><span class="lineno"><a class="line" href="classuvw_1_1loop.html#a7b5f858b0de8daf348f89af2997063c7"> 383</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classuvw_1_1loop.html#a7b5f858b0de8daf348f89af2997063c7">data</a>(std::shared_ptr<void> ud);</div>
|
||
<div class="line"><a id="l00384" name="l00384"></a><span class="lineno"> 384</span> </div>
|
||
<div class="line"><a id="l00400" name="l00400"></a><span class="lineno"><a class="line" href="classuvw_1_1loop.html#a4e1f127cadc84b1729bc7835b697d3bf"> 400</a></span> <span class="keyword">const</span> uv_loop_t *<a class="code hl_function" href="classuvw_1_1loop.html#a4e1f127cadc84b1729bc7835b697d3bf">raw</a>() const noexcept;</div>
|
||
<div class="line"><a id="l00401" name="l00401"></a><span class="lineno"> 401</span> </div>
|
||
<div class="line"><a id="l00417" name="l00417"></a><span class="lineno"><a class="line" href="classuvw_1_1loop.html#a8be924a8e240c444c69fe7c4e754892f"> 417</a></span> uv_loop_t *<a class="code hl_function" href="classuvw_1_1loop.html#a4e1f127cadc84b1729bc7835b697d3bf">raw</a>() noexcept;</div>
|
||
<div class="line"><a id="l00418" name="l00418"></a><span class="lineno"> 418</span> </div>
|
||
<div class="line"><a id="l00419" name="l00419"></a><span class="lineno"> 419</span>private:</div>
|
||
<div class="line"><a id="l00420" name="l00420"></a><span class="lineno"> 420</span> std::unique_ptr<uv_loop_t, deleter> uv_loop;</div>
|
||
<div class="line"><a id="l00421" name="l00421"></a><span class="lineno"> 421</span> std::shared_ptr<<span class="keywordtype">void</span>> user_data{<span class="keyword">nullptr</span>};</div>
|
||
<div class="line"><a id="l00422" name="l00422"></a><span class="lineno"> 422</span>};</div>
|
||
<div class="line"><a id="l00423" name="l00423"></a><span class="lineno"> 423</span> </div>
|
||
<div class="line"><a id="l00424" name="l00424"></a><span class="lineno"> 424</span>} <span class="comment">// namespace uvw</span></div>
|
||
<div class="line"><a id="l00425" name="l00425"></a><span class="lineno"> 425</span> </div>
|
||
<div class="line"><a id="l00426" name="l00426"></a><span class="lineno"> 426</span><span class="preprocessor">#ifndef UVW_AS_LIB</span></div>
|
||
<div class="line"><a id="l00427" name="l00427"></a><span class="lineno"> 427</span><span class="preprocessor"># include "loop.cpp"</span></div>
|
||
<div class="line"><a id="l00428" name="l00428"></a><span class="lineno"> 428</span><span class="preprocessor">#endif</span></div>
|
||
<div class="line"><a id="l00429" name="l00429"></a><span class="lineno"> 429</span> </div>
|
||
<div class="line"><a id="l00430" name="l00430"></a><span class="lineno"> 430</span><span class="preprocessor">#endif </span><span class="comment">// UVW_LOOP_INCLUDE_H</span></div>
|
||
<div class="ttc" id="aclassuvw_1_1async__handle_html"><div class="ttname"><a href="classuvw_1_1async__handle.html">uvw::async_handle</a></div><div class="ttdoc">The async handle.</div><div class="ttdef"><b>Definition:</b> <a href="async_8h_source.html#l00021">async.h:21</a></div></div>
|
||
<div class="ttc" id="aclassuvw_1_1check__handle_html"><div class="ttname"><a href="classuvw_1_1check__handle.html">uvw::check_handle</a></div><div class="ttdoc">The check handle.</div><div class="ttdef"><b>Definition:</b> <a href="check_8h_source.html#l00021">check.h:21</a></div></div>
|
||
<div class="ttc" id="aclassuvw_1_1emitter_html"><div class="ttname"><a href="classuvw_1_1emitter.html">uvw::emitter</a></div><div class="ttdoc">Event emitter base class.</div><div class="ttdef"><b>Definition:</b> <a href="emitter_8h_source.html#l00083">emitter.h:83</a></div></div>
|
||
<div class="ttc" id="aclassuvw_1_1fs__event__handle_html"><div class="ttname"><a href="classuvw_1_1fs__event__handle.html">uvw::fs_event_handle</a></div><div class="ttdoc">The fs event handle.</div><div class="ttdef"><b>Definition:</b> <a href="fs__event_8h_source.html#l00067">fs_event.h:67</a></div></div>
|
||
<div class="ttc" id="aclassuvw_1_1fs__poll__handle_html"><div class="ttname"><a href="classuvw_1_1fs__poll__handle.html">uvw::fs_poll_handle</a></div><div class="ttdoc">The fs poll handle.</div><div class="ttdef"><b>Definition:</b> <a href="fs__poll_8h_source.html#l00031">fs_poll.h:31</a></div></div>
|
||
<div class="ttc" id="aclassuvw_1_1idle__handle_html"><div class="ttname"><a href="classuvw_1_1idle__handle.html">uvw::idle_handle</a></div><div class="ttdoc">The idle handle.</div><div class="ttdef"><b>Definition:</b> <a href="idle_8h_source.html#l00029">idle.h:29</a></div></div>
|
||
<div class="ttc" id="aclassuvw_1_1loop_html"><div class="ttname"><a href="classuvw_1_1loop.html">uvw::loop</a></div><div class="ttdoc">The loop class.</div><div class="ttdef"><b>Definition:</b> <a href="loop_8h_source.html#l00060">loop.h:60</a></div></div>
|
||
<div class="ttc" id="aclassuvw_1_1loop_html_a199e23bce642f5618e3d0c2b1e8d0cdf"><div class="ttname"><a href="classuvw_1_1loop.html#a199e23bce642f5618e3d0c2b1e8d0cdf">uvw::loop::run</a></div><div class="ttdeci">int run(run_mode mode=run_mode::DEFAULT) noexcept</div><div class="ttdoc">Runs the event loop.</div></div>
|
||
<div class="ttc" id="aclassuvw_1_1loop_html_a1b1266e74e2a0edf9493394af3847bb3"><div class="ttname"><a href="classuvw_1_1loop.html#a1b1266e74e2a0edf9493394af3847bb3">uvw::loop::data</a></div><div class="ttdeci">std::shared_ptr< R > data() const</div><div class="ttdoc">Gets user-defined data. uvw won't use this field in any case.</div><div class="ttdef"><b>Definition:</b> <a href="loop_8h_source.html#l00375">loop.h:375</a></div></div>
|
||
<div class="ttc" id="aclassuvw_1_1loop_html_a22d30bda64387cb70bd348f8e3b2932d"><div class="ttname"><a href="classuvw_1_1loop.html#a22d30bda64387cb70bd348f8e3b2932d">uvw::loop::metrics</a></div><div class="ttdeci">metrics_type metrics() const noexcept</div><div class="ttdoc">Tracks various internal operations of the event loop.</div></div>
|
||
<div class="ttc" id="aclassuvw_1_1loop_html_a2a569b877ff0c1cd3f66e21d5a2ded4c"><div class="ttname"><a href="classuvw_1_1loop.html#a2a569b877ff0c1cd3f66e21d5a2ded4c">uvw::loop::fork</a></div><div class="ttdeci">int fork() noexcept</div><div class="ttdoc">Reinitialize any kernel state necessary in the child process after a fork(2) system call.</div></div>
|
||
<div class="ttc" id="aclassuvw_1_1loop_html_a36e1eb17d55ab7b8d089e55823015618"><div class="ttname"><a href="classuvw_1_1loop.html#a36e1eb17d55ab7b8d089e55823015618">uvw::loop::resource</a></div><div class="ttdeci">std::shared_ptr< R > resource(Args &&...args)</div><div class="ttdoc">Creates resources of any type.</div><div class="ttdef"><b>Definition:</b> <a href="loop_8h_source.html#l00154">loop.h:154</a></div></div>
|
||
<div class="ttc" id="aclassuvw_1_1loop_html_a4e1f127cadc84b1729bc7835b697d3bf"><div class="ttname"><a href="classuvw_1_1loop.html#a4e1f127cadc84b1729bc7835b697d3bf">uvw::loop::raw</a></div><div class="ttdeci">const uv_loop_t * raw() const noexcept</div><div class="ttdoc">Gets the underlying raw data structure.</div></div>
|
||
<div class="ttc" id="aclassuvw_1_1loop_html_a5d56b835e022e812d4930367b0a4f210"><div class="ttname"><a href="classuvw_1_1loop.html#a5d56b835e022e812d4930367b0a4f210">uvw::loop::alive</a></div><div class="ttdeci">bool alive() const noexcept</div><div class="ttdoc">Checks if there are active resources.</div></div>
|
||
<div class="ttc" id="aclassuvw_1_1loop_html_a6392ce48b55f9b5644eeec2d6ce0e6d4"><div class="ttname"><a href="classuvw_1_1loop.html#a6392ce48b55f9b5644eeec2d6ce0e6d4">uvw::loop::get_default</a></div><div class="ttdeci">static std::shared_ptr< loop > get_default()</div><div class="ttdoc">Gets the initialized default loop.</div></div>
|
||
<div class="ttc" id="aclassuvw_1_1loop_html_a762ed24cc491eef2c942505d1885b0aa"><div class="ttname"><a href="classuvw_1_1loop.html#a762ed24cc491eef2c942505d1885b0aa">uvw::loop::update</a></div><div class="ttdeci">void update() const noexcept</div><div class="ttdoc">Updates the event loop’s concept of now.</div></div>
|
||
<div class="ttc" id="aclassuvw_1_1loop_html_a77a8922defbd7643a4b18550d263a8d6"><div class="ttname"><a href="classuvw_1_1loop.html#a77a8922defbd7643a4b18550d263a8d6">uvw::loop::create</a></div><div class="ttdeci">static std::shared_ptr< loop > create()</div><div class="ttdoc">Initializes a new loop instance.</div></div>
|
||
<div class="ttc" id="aclassuvw_1_1loop_html_a7b5f858b0de8daf348f89af2997063c7"><div class="ttname"><a href="classuvw_1_1loop.html#a7b5f858b0de8daf348f89af2997063c7">uvw::loop::data</a></div><div class="ttdeci">void data(std::shared_ptr< void > ud)</div><div class="ttdoc">Sets arbitrary data. uvw won't use this field in any case.</div></div>
|
||
<div class="ttc" id="aclassuvw_1_1loop_html_aa358c1daf70696679edd08513e1f3e31"><div class="ttname"><a href="classuvw_1_1loop.html#aa358c1daf70696679edd08513e1f3e31">uvw::loop::timeout</a></div><div class="ttdeci">std::pair< bool, time > timeout() const noexcept</div><div class="ttdoc">Gets the poll timeout.</div></div>
|
||
<div class="ttc" id="aclassuvw_1_1loop_html_aa46a050e186935c0be4eca7815cd9207"><div class="ttname"><a href="classuvw_1_1loop.html#aa46a050e186935c0be4eca7815cd9207">uvw::loop::walk</a></div><div class="ttdeci">void walk(Func callback)</div><div class="ttdoc">Walks the list of handles.</div><div class="ttdef"><b>Definition:</b> <a href="loop_8h_source.html#l00280">loop.h:280</a></div></div>
|
||
<div class="ttc" id="aclassuvw_1_1loop_html_aaafbdbc9022bf12d4aad3db16dcee442"><div class="ttname"><a href="classuvw_1_1loop.html#aaafbdbc9022bf12d4aad3db16dcee442">uvw::loop::stop</a></div><div class="ttdeci">void stop() noexcept</div><div class="ttdoc">Stops the event loop.</div></div>
|
||
<div class="ttc" id="aclassuvw_1_1loop_html_ab48abde5d862db1a856900b08ecc02dd"><div class="ttname"><a href="classuvw_1_1loop.html#ab48abde5d862db1a856900b08ecc02dd">uvw::loop::now</a></div><div class="ttdeci">time now() const noexcept</div><div class="ttdoc">Returns the current timestamp in milliseconds.</div></div>
|
||
<div class="ttc" id="aclassuvw_1_1loop_html_ac0a8719f173a417a722fe779792a52e6"><div class="ttname"><a href="classuvw_1_1loop.html#ac0a8719f173a417a722fe779792a52e6">uvw::loop::close</a></div><div class="ttdeci">int close()</div><div class="ttdoc">Releases all internal loop resources.</div></div>
|
||
<div class="ttc" id="aclassuvw_1_1loop_html_acb38eaee2680ed1c4ba74459e5c2a84a"><div class="ttname"><a href="classuvw_1_1loop.html#acb38eaee2680ed1c4ba74459e5c2a84a">uvw::loop::configure</a></div><div class="ttdeci">int configure(option flag, Args &&...args)</div><div class="ttdoc">Sets additional loop options.</div><div class="ttdef"><b>Definition:</b> <a href="loop_8h_source.html#l00139">loop.h:139</a></div></div>
|
||
<div class="ttc" id="aclassuvw_1_1loop_html_ad4d9897ff0dbc9a534bf38731fa16b46"><div class="ttname"><a href="classuvw_1_1loop.html#ad4d9897ff0dbc9a534bf38731fa16b46">uvw::loop::create</a></div><div class="ttdeci">static std::shared_ptr< loop > create(uv_loop_t *res)</div><div class="ttdoc">Initializes a new loop instance from an existing resource.</div></div>
|
||
<div class="ttc" id="aclassuvw_1_1loop_html_addbc84b4d00e0e61cf68bff4b7560b1f"><div class="ttname"><a href="classuvw_1_1loop.html#addbc84b4d00e0e61cf68bff4b7560b1f">uvw::loop::descriptor</a></div><div class="ttdeci">int descriptor() const noexcept</div><div class="ttdoc">Get backend file descriptor.</div></div>
|
||
<div class="ttc" id="aclassuvw_1_1loop_html_aeae404d30c956b2c5fa15ec3997f47fc"><div class="ttname"><a href="classuvw_1_1loop.html#aeae404d30c956b2c5fa15ec3997f47fc">uvw::loop::idle_time</a></div><div class="ttdeci">time idle_time() const noexcept</div><div class="ttdoc">Returns the amount of time the event loop has been idle. The call is thread safe.</div></div>
|
||
<div class="ttc" id="aclassuvw_1_1loop_html_aef0dbe4d1e82e43a8df3df1c7386efca"><div class="ttname"><a href="classuvw_1_1loop.html#aef0dbe4d1e82e43a8df3df1c7386efca">uvw::loop::uninitialized_resource</a></div><div class="ttdeci">std::shared_ptr< R > uninitialized_resource(Args &&...args)</div><div class="ttdoc">Creates uninitialized resources of any type.</div><div class="ttdef"><b>Definition:</b> <a href="loop_8h_source.html#l00165">loop.h:165</a></div></div>
|
||
<div class="ttc" id="aclassuvw_1_1pipe__handle_html"><div class="ttname"><a href="classuvw_1_1pipe__handle.html">uvw::pipe_handle</a></div><div class="ttdoc">The pipe handle.</div><div class="ttdef"><b>Definition:</b> <a href="pipe_8h_source.html#l00038">pipe.h:38</a></div></div>
|
||
<div class="ttc" id="aclassuvw_1_1poll__handle_html"><div class="ttname"><a href="classuvw_1_1poll__handle.html">uvw::poll_handle</a></div><div class="ttdoc">The poll handle.</div><div class="ttdef"><b>Definition:</b> <a href="poll_8h_source.html#l00059">poll.h:59</a></div></div>
|
||
<div class="ttc" id="aclassuvw_1_1prepare__handle_html"><div class="ttname"><a href="classuvw_1_1prepare__handle.html">uvw::prepare_handle</a></div><div class="ttdoc">The prepare handle.</div><div class="ttdef"><b>Definition:</b> <a href="prepare_8h_source.html#l00021">prepare.h:21</a></div></div>
|
||
<div class="ttc" id="aclassuvw_1_1process__handle_html"><div class="ttname"><a href="classuvw_1_1process__handle.html">uvw::process_handle</a></div><div class="ttdoc">The process handle.</div><div class="ttdef"><b>Definition:</b> <a href="process_8h_source.html#l00058">process.h:58</a></div></div>
|
||
<div class="ttc" id="aclassuvw_1_1resource_html"><div class="ttname"><a href="classuvw_1_1resource.html">uvw::resource</a></div><div class="ttdoc">Common class for almost all the resources available in uvw.</div><div class="ttdef"><b>Definition:</b> <a href="resource_8hpp_source.html#l00018">resource.hpp:18</a></div></div>
|
||
<div class="ttc" id="aclassuvw_1_1signal__handle_html"><div class="ttname"><a href="classuvw_1_1signal__handle.html">uvw::signal_handle</a></div><div class="ttdoc">The signal handle.</div><div class="ttdef"><b>Definition:</b> <a href="signal_8h_source.html#l00031">signal.h:31</a></div></div>
|
||
<div class="ttc" id="aclassuvw_1_1tcp__handle_html"><div class="ttname"><a href="classuvw_1_1tcp__handle.html">uvw::tcp_handle</a></div><div class="ttdoc">The TCP handle.</div><div class="ttdef"><b>Definition:</b> <a href="tcp_8h_source.html#l00043">tcp.h:43</a></div></div>
|
||
<div class="ttc" id="aclassuvw_1_1timer__handle_html"><div class="ttname"><a href="classuvw_1_1timer__handle.html">uvw::timer_handle</a></div><div class="ttdoc">The timer handle.</div><div class="ttdef"><b>Definition:</b> <a href="timer_8h_source.html#l00022">timer.h:22</a></div></div>
|
||
<div class="ttc" id="aclassuvw_1_1tty__handle_html"><div class="ttname"><a href="classuvw_1_1tty__handle.html">uvw::tty_handle</a></div><div class="ttdoc">The tty handle.</div><div class="ttdef"><b>Definition:</b> <a href="tty_8h_source.html#l00050">tty.h:50</a></div></div>
|
||
<div class="ttc" id="aclassuvw_1_1udp__handle_html"><div class="ttname"><a href="classuvw_1_1udp__handle.html">uvw::udp_handle</a></div><div class="ttdoc">The UDP handle.</div><div class="ttdef"><b>Definition:</b> <a href="udp_8h_source.html#l00082">udp.h:82</a></div></div>
|
||
<div class="ttc" id="anamespaceuvw_html"><div class="ttname"><a href="namespaceuvw.html">uvw</a></div><div class="ttdoc">uvw default namespace.</div><div class="ttdef"><b>Definition:</b> <a href="async_8h_source.html#l00008">async.h:8</a></div></div>
|
||
<div class="ttc" id="anamespaceuvw_html_a9e28e1855691dd1af105626ed11f3ac4"><div class="ttname"><a href="namespaceuvw.html#a9e28e1855691dd1af105626ed11f3ac4">uvw::handle_category</a></div><div class="ttdeci">details::uv_type_wrapper< uv_handle_type > handle_category</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00084">util.h:84</a></div></div>
|
||
<div class="ttc" id="anamespaceuvw_html_af9dde6c7d8c096633c47b47962ba91e3"><div class="ttname"><a href="namespaceuvw.html#af9dde6c7d8c096633c47b47962ba91e3">uvw::metrics_type</a></div><div class="ttdeci">uv_metrics_t metrics_type</div><div class="ttdef"><b>Definition:</b> <a href="loop_8h_source.html#l00050">loop.h:50</a></div></div>
|
||
<div class="ttc" id="astructuvw_1_1utilities_html_ab234bae92058e009c344eaf6a190d7f2"><div class="ttname"><a href="structuvw_1_1utilities.html#ab234bae92058e009c344eaf6a190d7f2">uvw::utilities::guess_handle</a></div><div class="ttdeci">static handle_type guess_handle(handle_category category) noexcept</div><div class="ttdoc">Gets the type of the handle given a category.</div></div>
|
||
</div><!-- fragment --></div><!-- contents -->
|
||
<!-- start footer part -->
|
||
<hr class="footer"/><address class="footer"><small>
|
||
Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.6
|
||
</small></address>
|
||
</body>
|
||
</html>
|