569 lines
96 KiB
HTML
569 lines
96 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">
|
||
<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>uvw: src/uvw/util.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 style="height: 56px;">
|
||
<td id="projectalign" style="padding-left: 0.5em;">
|
||
<div id="projectname">uvw
|
||
 <span id="projectnumber">2.6.0</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&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&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>
|
||
<!-- 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 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">util.h</div> </div>
|
||
</div><!--header-->
|
||
<div class="contents">
|
||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="preprocessor">#ifndef UVW_UTIL_INCLUDE_H</span></div>
|
||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="preprocessor">#define UVW_UTIL_INCLUDE_H</span></div>
|
||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>  </div>
|
||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>  </div>
|
||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="preprocessor">#include <string_view></span></div>
|
||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="preprocessor">#include <type_traits></span></div>
|
||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="preprocessor">#include <cstddef></span></div>
|
||
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="preprocessor">#include <utility></span></div>
|
||
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#include <string></span></div>
|
||
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor">#include <vector></span></div>
|
||
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="preprocessor">#include <memory></span></div>
|
||
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#include <array></span></div>
|
||
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#include <uv.h></span></div>
|
||
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>  </div>
|
||
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>  </div>
|
||
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="keyword">namespace </span><a class="code" href="namespaceuvw.html">uvw</a> {</div>
|
||
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>  </div>
|
||
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>  </div>
|
||
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="keyword">namespace </span>details {</div>
|
||
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>  </div>
|
||
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>  </div>
|
||
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="keyword">enum class</span> UVHandleType: std::underlying_type_t<uv_handle_type> {</div>
|
||
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>  UNKNOWN = UV_UNKNOWN_HANDLE,</div>
|
||
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>  ASYNC = UV_ASYNC,</div>
|
||
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>  CHECK = UV_CHECK,</div>
|
||
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  FS_EVENT = UV_FS_EVENT,</div>
|
||
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  FS_POLL = UV_FS_POLL,</div>
|
||
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  HANDLE = UV_HANDLE,</div>
|
||
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  IDLE = UV_IDLE,</div>
|
||
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  PIPE = UV_NAMED_PIPE,</div>
|
||
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  POLL = UV_POLL,</div>
|
||
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  PREPARE = UV_PREPARE,</div>
|
||
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  PROCESS = UV_PROCESS,</div>
|
||
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  STREAM = UV_STREAM,</div>
|
||
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  TCP = UV_TCP,</div>
|
||
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  TIMER = UV_TIMER,</div>
|
||
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  TTY = UV_TTY,</div>
|
||
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  UDP = UV_UDP,</div>
|
||
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  SIGNAL = UV_SIGNAL,</div>
|
||
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  FILE = UV_FILE</div>
|
||
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> };</div>
|
||
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  </div>
|
||
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  </div>
|
||
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
|
||
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="keyword">struct </span>UVTypeWrapper {</div>
|
||
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <span class="keyword">using</span> Type = T;</div>
|
||
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  </div>
|
||
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  constexpr UVTypeWrapper(): value{} {}</div>
|
||
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  constexpr UVTypeWrapper(Type val): value{val} {}</div>
|
||
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  </div>
|
||
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  constexpr <span class="keyword">operator</span> Type() const noexcept { <span class="keywordflow">return</span> value; }</div>
|
||
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  </div>
|
||
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <span class="keywordtype">bool</span> operator==(UVTypeWrapper other) <span class="keyword">const</span> noexcept {</div>
|
||
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <span class="keywordflow">return</span> value == other.value;</div>
|
||
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  }</div>
|
||
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  </div>
|
||
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="keyword">private</span>:</div>
|
||
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <span class="keyword">const</span> Type value;</div>
|
||
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> };</div>
|
||
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  </div>
|
||
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  </div>
|
||
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
|
||
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="keywordtype">bool</span> operator==(UVTypeWrapper<T> lhs, UVTypeWrapper<T> rhs) {</div>
|
||
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <span class="keywordflow">return</span> !(lhs == rhs);</div>
|
||
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> }</div>
|
||
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  </div>
|
||
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  </div>
|
||
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> }</div>
|
||
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  </div>
|
||
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  </div>
|
||
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="keyword">template</span><<span class="keyword">typename</span> E></div>
|
||
<div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="classuvw_1_1Flags.html"> 82</a></span> <span class="keyword">class </span><a class="code" href="classuvw_1_1Flags.html">Flags</a> final {</div>
|
||
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <span class="keyword">using</span> InnerType = std::underlying_type_t<E>;</div>
|
||
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  </div>
|
||
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  constexpr InnerType toInnerType(E flag) <span class="keyword">const</span> noexcept { <span class="keywordflow">return</span> <span class="keyword">static_cast<</span>InnerType<span class="keyword">></span>(flag); }</div>
|
||
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  </div>
|
||
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="keyword">public</span>:</div>
|
||
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <span class="keyword">using</span> Type = InnerType;</div>
|
||
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  </div>
|
||
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <span class="keyword">template</span><E... V></div>
|
||
<div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="classuvw_1_1Flags.html#a03dcc52240c349a73523d67975ed3de2"> 95</a></span>  <span class="keyword">static</span> constexpr <a class="code" href="classuvw_1_1Flags.html">Flags<E></a> <a class="code" href="classuvw_1_1Flags.html#a03dcc52240c349a73523d67975ed3de2">from</a>() {</div>
|
||
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <span class="keywordflow">return</span> (<a class="code" href="classuvw_1_1Flags.html">Flags<E></a>{} | ... | V);</div>
|
||
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  }</div>
|
||
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  </div>
|
||
<div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="classuvw_1_1Flags.html#af2989a7bce87fa62ed5c05c6eed724cf"> 103</a></span>  constexpr <a class="code" href="classuvw_1_1Flags.html#af2989a7bce87fa62ed5c05c6eed724cf">Flags</a>(E flag) noexcept: flags{toInnerType(flag)} {}</div>
|
||
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  </div>
|
||
<div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="classuvw_1_1Flags.html#a5cb93c65ae7a839a917c4e789e67390f"> 110</a></span>  constexpr <a class="code" href="classuvw_1_1Flags.html#a5cb93c65ae7a839a917c4e789e67390f">Flags</a>(Type f): flags{f} {}</div>
|
||
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  </div>
|
||
<div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="classuvw_1_1Flags.html#a028a318b0a3a2a0558b671c00ec892a5"> 115</a></span>  constexpr <a class="code" href="classuvw_1_1Flags.html#a028a318b0a3a2a0558b671c00ec892a5">Flags</a>(): flags{} {}</div>
|
||
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  </div>
|
||
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  constexpr <a class="code" href="classuvw_1_1Flags.html#a028a318b0a3a2a0558b671c00ec892a5">Flags</a>(<span class="keyword">const</span> <a class="code" href="classuvw_1_1Flags.html#a028a318b0a3a2a0558b671c00ec892a5">Flags</a> &f) noexcept: flags{f.flags} { }</div>
|
||
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  constexpr <a class="code" href="classuvw_1_1Flags.html#a028a318b0a3a2a0558b671c00ec892a5">Flags</a>(<a class="code" href="classuvw_1_1Flags.html#a028a318b0a3a2a0558b671c00ec892a5">Flags</a> &&f) noexcept: flags{std::move(f.flags)} { }</div>
|
||
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  </div>
|
||
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  ~<a class="code" href="classuvw_1_1Flags.html#a028a318b0a3a2a0558b671c00ec892a5">Flags</a>() noexcept { static_assert(std::is_enum_v<E>); }</div>
|
||
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  </div>
|
||
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  constexpr <a class="code" href="classuvw_1_1Flags.html#a028a318b0a3a2a0558b671c00ec892a5">Flags</a> & operator=(<span class="keyword">const</span> <a class="code" href="classuvw_1_1Flags.html#a028a318b0a3a2a0558b671c00ec892a5">Flags</a> &f) noexcept {</div>
|
||
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  flags = f.flags;</div>
|
||
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
|
||
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  }</div>
|
||
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  </div>
|
||
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  constexpr <a class="code" href="classuvw_1_1Flags.html#a028a318b0a3a2a0558b671c00ec892a5">Flags</a> & operator=(<a class="code" href="classuvw_1_1Flags.html#a028a318b0a3a2a0558b671c00ec892a5">Flags</a> &&f) noexcept {</div>
|
||
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  flags = std::move(f.flags);</div>
|
||
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
|
||
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  }</div>
|
||
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  </div>
|
||
<div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="classuvw_1_1Flags.html#a46803acc3e3c66e3ca85de90f1d87c67"> 137</a></span>  constexpr <a class="code" href="classuvw_1_1Flags.html">Flags</a> <a class="code" href="classuvw_1_1Flags.html#a46803acc3e3c66e3ca85de90f1d87c67">operator|</a>(<span class="keyword">const</span> <a class="code" href="classuvw_1_1Flags.html">Flags</a> &f) <span class="keyword">const</span> noexcept { <span class="keywordflow">return</span> <a class="code" href="classuvw_1_1Flags.html">Flags</a>{flags | f.flags}; }</div>
|
||
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  </div>
|
||
<div class="line"><a name="l00144"></a><span class="lineno"><a class="line" href="classuvw_1_1Flags.html#a6969afc42416c957a9b17ac8bf64addd"> 144</a></span>  constexpr <a class="code" href="classuvw_1_1Flags.html">Flags</a> <a class="code" href="classuvw_1_1Flags.html#a6969afc42416c957a9b17ac8bf64addd">operator|</a>(E flag) <span class="keyword">const</span> noexcept { <span class="keywordflow">return</span> <a class="code" href="classuvw_1_1Flags.html">Flags</a>{flags | toInnerType(flag)}; }</div>
|
||
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  </div>
|
||
<div class="line"><a name="l00151"></a><span class="lineno"><a class="line" href="classuvw_1_1Flags.html#ab6c20105a3ba232a6c8448fd7408a63d"> 151</a></span>  constexpr <a class="code" href="classuvw_1_1Flags.html">Flags</a> <a class="code" href="classuvw_1_1Flags.html#ab6c20105a3ba232a6c8448fd7408a63d">operator&</a>(<span class="keyword">const</span> <a class="code" href="classuvw_1_1Flags.html">Flags</a> &f) <span class="keyword">const</span> noexcept { <span class="keywordflow">return</span> <a class="code" href="classuvw_1_1Flags.html">Flags</a>{flags & f.flags}; }</div>
|
||
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  </div>
|
||
<div class="line"><a name="l00158"></a><span class="lineno"><a class="line" href="classuvw_1_1Flags.html#afc2eae3a5233ac37f1470dc30eb54919"> 158</a></span>  constexpr <a class="code" href="classuvw_1_1Flags.html">Flags</a> <a class="code" href="classuvw_1_1Flags.html#afc2eae3a5233ac37f1470dc30eb54919">operator&</a>(E flag) <span class="keyword">const</span> noexcept { <span class="keywordflow">return</span> <a class="code" href="classuvw_1_1Flags.html">Flags</a>{flags & toInnerType(flag)}; }</div>
|
||
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  </div>
|
||
<div class="line"><a name="l00164"></a><span class="lineno"><a class="line" href="classuvw_1_1Flags.html#aa15b3b3535eeeaf78124b0abdfd10c3d"> 164</a></span>  <span class="keyword">explicit</span> constexpr <span class="keyword">operator</span> bool() const noexcept { <span class="keywordflow">return</span> !(flags == InnerType{}); }</div>
|
||
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  </div>
|
||
<div class="line"><a name="l00170"></a><span class="lineno"><a class="line" href="classuvw_1_1Flags.html#a3db2ea081de06e27b64ac506abf495a4"> 170</a></span>  constexpr <span class="keyword">operator</span> Type() const noexcept { <span class="keywordflow">return</span> flags; }</div>
|
||
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  </div>
|
||
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> <span class="keyword">private</span>:</div>
|
||
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  InnerType flags;</div>
|
||
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> };</div>
|
||
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  </div>
|
||
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  </div>
|
||
<div class="line"><a name="l00180"></a><span class="lineno"><a class="line" href="structuvw_1_1WinSize.html"> 180</a></span> <span class="keyword">struct </span><a class="code" href="structuvw_1_1WinSize.html">WinSize</a> {</div>
|
||
<div class="line"><a name="l00181"></a><span class="lineno"><a class="line" href="structuvw_1_1WinSize.html#a40f10b779ddb8c2fc30e56f98fb432d7"> 181</a></span>  <span class="keywordtype">int</span> <a class="code" href="structuvw_1_1WinSize.html#a40f10b779ddb8c2fc30e56f98fb432d7">width</a>; </div>
|
||
<div class="line"><a name="l00182"></a><span class="lineno"><a class="line" href="structuvw_1_1WinSize.html#a3a3bdb2c69635beaa384d7259b26cd80"> 182</a></span>  <span class="keywordtype">int</span> <a class="code" href="structuvw_1_1WinSize.html#a3a3bdb2c69635beaa384d7259b26cd80">height</a>; </div>
|
||
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> };</div>
|
||
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  </div>
|
||
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  </div>
|
||
<div class="line"><a name="l00186"></a><span class="lineno"><a class="line" href="namespaceuvw.html#ad8b4c4aaf16bbe0b08218b42fbf32f0e"> 186</a></span> <span class="keyword">using</span> HandleType = details::UVHandleType; </div>
|
||
<div class="line"><a name="l00188"></a><span class="lineno"><a class="line" href="namespaceuvw.html#aa3ae4a038de60a69b2513a039add1e48"> 188</a></span> <span class="keyword">using</span> <a class="code" href="namespaceuvw.html#aa3ae4a038de60a69b2513a039add1e48">HandleCategory</a> = details::UVTypeWrapper<uv_handle_type>; </div>
|
||
<div class="line"><a name="l00189"></a><span class="lineno"><a class="line" href="namespaceuvw.html#a02b7ef3b5a65b0bec1602ef434806a27"> 189</a></span> <span class="keyword">using</span> <a class="code" href="namespaceuvw.html#a02b7ef3b5a65b0bec1602ef434806a27">FileHandle</a> = details::UVTypeWrapper<uv_file>; </div>
|
||
<div class="line"><a name="l00190"></a><span class="lineno"><a class="line" href="namespaceuvw.html#a2df38e5bba10fc959ef37074cf580097"> 190</a></span> <span class="keyword">using</span> <a class="code" href="namespaceuvw.html#a2df38e5bba10fc959ef37074cf580097">OSSocketHandle</a> = details::UVTypeWrapper<uv_os_sock_t>; </div>
|
||
<div class="line"><a name="l00191"></a><span class="lineno"><a class="line" href="namespaceuvw.html#ad4b1016f485b28ad7dfd320a593b152b"> 191</a></span> <span class="keyword">using</span> <a class="code" href="namespaceuvw.html#ad4b1016f485b28ad7dfd320a593b152b">OSFileDescriptor</a> = details::UVTypeWrapper<uv_os_fd_t>; </div>
|
||
<div class="line"><a name="l00192"></a><span class="lineno"><a class="line" href="namespaceuvw.html#aad24ed8fb712caa655da6e3d7cb95bdd"> 192</a></span> <span class="keyword">using</span> <a class="code" href="namespaceuvw.html#aad24ed8fb712caa655da6e3d7cb95bdd">PidType</a> = details::UVTypeWrapper<uv_pid_t>; </div>
|
||
<div class="line"><a name="l00194"></a><span class="lineno"><a class="line" href="namespaceuvw.html#a4e050aae48eaf10709216c0dae8af8a9"> 194</a></span> constexpr <a class="code" href="namespaceuvw.html#a02b7ef3b5a65b0bec1602ef434806a27">FileHandle</a> <a class="code" href="namespaceuvw.html#a4e050aae48eaf10709216c0dae8af8a9">StdIN</a>{0}; </div>
|
||
<div class="line"><a name="l00195"></a><span class="lineno"><a class="line" href="namespaceuvw.html#a96e64f11b96529c3a65d5b22cc56cdf0"> 195</a></span> constexpr <a class="code" href="namespaceuvw.html#a02b7ef3b5a65b0bec1602ef434806a27">FileHandle</a> <a class="code" href="namespaceuvw.html#a96e64f11b96529c3a65d5b22cc56cdf0">StdOUT</a>{1}; </div>
|
||
<div class="line"><a name="l00196"></a><span class="lineno"><a class="line" href="namespaceuvw.html#ab60d2d4534e3369bc372c47843f9d4b9"> 196</a></span> constexpr <a class="code" href="namespaceuvw.html#a02b7ef3b5a65b0bec1602ef434806a27">FileHandle</a> <a class="code" href="namespaceuvw.html#ab60d2d4534e3369bc372c47843f9d4b9">StdERR</a>{2}; </div>
|
||
<div class="line"><a name="l00198"></a><span class="lineno"><a class="line" href="namespaceuvw.html#a54075b41a774f40d65861b0d97068c17"> 198</a></span> <span class="keyword">using</span> <a class="code" href="namespaceuvw.html#a54075b41a774f40d65861b0d97068c17">TimeSpec</a> = uv_timespec_t; </div>
|
||
<div class="line"><a name="l00199"></a><span class="lineno"><a class="line" href="namespaceuvw.html#ad3e2552cab7a68ba72e447f7656f01d7"> 199</a></span> <span class="keyword">using</span> <a class="code" href="namespaceuvw.html#ad3e2552cab7a68ba72e447f7656f01d7">Stat</a> = uv_stat_t; </div>
|
||
<div class="line"><a name="l00200"></a><span class="lineno"><a class="line" href="namespaceuvw.html#a07d54a7bee71b802435fac9ce4ec3b41"> 200</a></span> <span class="keyword">using</span> <a class="code" href="namespaceuvw.html#a07d54a7bee71b802435fac9ce4ec3b41">Statfs</a> = uv_statfs_t; </div>
|
||
<div class="line"><a name="l00201"></a><span class="lineno"><a class="line" href="namespaceuvw.html#a01d13fc4b5d1b58c936fdbf15c4d0a10"> 201</a></span> <span class="keyword">using</span> <a class="code" href="namespaceuvw.html#a01d13fc4b5d1b58c936fdbf15c4d0a10">Uid</a> = uv_uid_t; </div>
|
||
<div class="line"><a name="l00202"></a><span class="lineno"><a class="line" href="namespaceuvw.html#a82c74b9200b97f2e1668fe2719eef72e"> 202</a></span> <span class="keyword">using</span> <a class="code" href="namespaceuvw.html#a82c74b9200b97f2e1668fe2719eef72e">Gid</a> = uv_gid_t; </div>
|
||
<div class="line"><a name="l00204"></a><span class="lineno"><a class="line" href="namespaceuvw.html#a6a9c7b7d247c0873d9aac07d63f8360b"> 204</a></span> <span class="keyword">using</span> <a class="code" href="namespaceuvw.html#a6a9c7b7d247c0873d9aac07d63f8360b">TimeVal</a> = uv_timeval_t; </div>
|
||
<div class="line"><a name="l00205"></a><span class="lineno"><a class="line" href="namespaceuvw.html#ae7c2e4a87f2213a9509f99e3149c3e65"> 205</a></span> <span class="keyword">using</span> <a class="code" href="namespaceuvw.html#ae7c2e4a87f2213a9509f99e3149c3e65">TimeVal64</a> = uv_timeval64_t; </div>
|
||
<div class="line"><a name="l00206"></a><span class="lineno"><a class="line" href="namespaceuvw.html#a9a25d3f086b078e4b9b370fe5c4316a2"> 206</a></span> <span class="keyword">using</span> <a class="code" href="namespaceuvw.html#a9a25d3f086b078e4b9b370fe5c4316a2">RUsage</a> = uv_rusage_t; </div>
|
||
<div class="line"><a name="l00217"></a><span class="lineno"><a class="line" href="structuvw_1_1Passwd.html"> 217</a></span> <span class="keyword">struct </span><a class="code" href="structuvw_1_1Passwd.html">Passwd</a> {</div>
|
||
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  <a class="code" href="structuvw_1_1Passwd.html">Passwd</a>(std::shared_ptr<uv_passwd_t> pwd);</div>
|
||
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  </div>
|
||
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  std::string <a class="code" href="structuvw_1_1Passwd.html#a32fb64ac957376ca92248767db8bc9eb">username</a>() <span class="keyword">const</span> noexcept;</div>
|
||
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  </div>
|
||
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  decltype(uv_passwd_t::uid) <a class="code" href="structuvw_1_1Passwd.html#ac8dd15961556c4bc375a579a84d37948">uid</a>() <span class="keyword">const</span> noexcept;</div>
|
||
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  </div>
|
||
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  decltype(uv_passwd_t::gid) <a class="code" href="structuvw_1_1Passwd.html#a8e5ebc93fbc036d8cd559ef6a80447ba">gid</a>() <span class="keyword">const</span> noexcept;</div>
|
||
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  </div>
|
||
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  std::string <a class="code" href="structuvw_1_1Passwd.html#ad817256d676d8de38eaa89ff6f8d5620">shell</a>() <span class="keyword">const</span> noexcept;</div>
|
||
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  </div>
|
||
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  std::string <a class="code" href="structuvw_1_1Passwd.html#a1af30054a044b2d897dbcc517f54cfbe">homedir</a>() <span class="keyword">const</span> noexcept;</div>
|
||
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  </div>
|
||
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  <span class="keyword">operator</span> bool() <span class="keyword">const</span> noexcept;</div>
|
||
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  </div>
|
||
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span> <span class="keyword">private</span>:</div>
|
||
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  std::shared_ptr<uv_passwd_t> passwd;</div>
|
||
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span> };</div>
|
||
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  </div>
|
||
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  </div>
|
||
<div class="line"><a name="l00270"></a><span class="lineno"><a class="line" href="structuvw_1_1UtsName.html"> 270</a></span> <span class="keyword">struct </span><a class="code" href="structuvw_1_1UtsName.html">UtsName</a> {</div>
|
||
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  <a class="code" href="structuvw_1_1UtsName.html">UtsName</a>(std::shared_ptr<uv_utsname_t> utsname);</div>
|
||
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  </div>
|
||
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  std::string <a class="code" href="structuvw_1_1UtsName.html#a760372654deba31614051e0278177fa4">sysname</a>() <span class="keyword">const</span> noexcept;</div>
|
||
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  </div>
|
||
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  std::string <a class="code" href="structuvw_1_1UtsName.html#a9d5308ac9eb875fc68c1f5fcb9a4465d">release</a>() <span class="keyword">const</span> noexcept;</div>
|
||
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  </div>
|
||
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  std::string <a class="code" href="structuvw_1_1UtsName.html#a22cd76f23cd9a67dfc8be6098c9e3368">version</a>() <span class="keyword">const</span> noexcept;</div>
|
||
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  </div>
|
||
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  std::string <a class="code" href="structuvw_1_1UtsName.html#a83fe14ee40fcbf533ebfa379067aa395">machine</a>() <span class="keyword">const</span> noexcept;</div>
|
||
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  </div>
|
||
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span> <span class="keyword">private</span>:</div>
|
||
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  std::shared_ptr<uv_utsname_t> utsname;</div>
|
||
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span> };</div>
|
||
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  </div>
|
||
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  </div>
|
||
<div class="line"><a name="l00307"></a><span class="lineno"><a class="line" href="structuvw_1_1IPv4.html"> 307</a></span> <span class="keyword">struct </span><a class="code" href="structuvw_1_1IPv4.html">IPv4</a> {};</div>
|
||
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  </div>
|
||
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  </div>
|
||
<div class="line"><a name="l00315"></a><span class="lineno"><a class="line" href="structuvw_1_1IPv6.html"> 315</a></span> <span class="keyword">struct </span><a class="code" href="structuvw_1_1IPv6.html">IPv6</a> {};</div>
|
||
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  </div>
|
||
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  </div>
|
||
<div class="line"><a name="l00321"></a><span class="lineno"><a class="line" href="structuvw_1_1Addr.html"> 321</a></span> <span class="keyword">struct </span><a class="code" href="structuvw_1_1Addr.html">Addr</a> {</div>
|
||
<div class="line"><a name="l00322"></a><span class="lineno"><a class="line" href="structuvw_1_1Addr.html#a398a3805b87c8c2b64baf94cdc586fef"> 322</a></span>  std::string <a class="code" href="structuvw_1_1Addr.html#a398a3805b87c8c2b64baf94cdc586fef">ip</a>; </div>
|
||
<div class="line"><a name="l00323"></a><span class="lineno"><a class="line" href="structuvw_1_1Addr.html#a2069fc52d0ad91f65d76f558b8b7673f"> 323</a></span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structuvw_1_1Addr.html#a2069fc52d0ad91f65d76f558b8b7673f">port</a>; </div>
|
||
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span> };</div>
|
||
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>  </div>
|
||
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  </div>
|
||
<div class="line"><a name="l00330"></a><span class="lineno"><a class="line" href="structuvw_1_1CPUInfo.html"> 330</a></span> <span class="keyword">struct </span><a class="code" href="structuvw_1_1CPUInfo.html">CPUInfo</a> {</div>
|
||
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>  <span class="keyword">using</span> CPUTime = decltype(uv_cpu_info_t::cpu_times);</div>
|
||
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  </div>
|
||
<div class="line"><a name="l00333"></a><span class="lineno"><a class="line" href="structuvw_1_1CPUInfo.html#a83982b37fbb833b690f7d4a8de7e162c"> 333</a></span>  std::string <a class="code" href="structuvw_1_1CPUInfo.html#a83982b37fbb833b690f7d4a8de7e162c">model</a>; </div>
|
||
<div class="line"><a name="l00334"></a><span class="lineno"><a class="line" href="structuvw_1_1CPUInfo.html#a85d9d0dbf6d941f5c8cd3bbe0452a466"> 334</a></span>  <span class="keywordtype">int</span> <a class="code" href="structuvw_1_1CPUInfo.html#a85d9d0dbf6d941f5c8cd3bbe0452a466">speed</a>; </div>
|
||
<div class="line"><a name="l00342"></a><span class="lineno"><a class="line" href="structuvw_1_1CPUInfo.html#a821240a35b1bda6b7085362f6cbc14ea"> 342</a></span>  CPUTime <a class="code" href="structuvw_1_1CPUInfo.html#a821240a35b1bda6b7085362f6cbc14ea">times</a>;</div>
|
||
<div class="line"><a name="l00343"></a><span class="lineno"> 343</span> };</div>
|
||
<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>  </div>
|
||
<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>  </div>
|
||
<div class="line"><a name="l00349"></a><span class="lineno"><a class="line" href="structuvw_1_1InterfaceAddress.html"> 349</a></span> <span class="keyword">struct </span><a class="code" href="structuvw_1_1InterfaceAddress.html">InterfaceAddress</a> {</div>
|
||
<div class="line"><a name="l00350"></a><span class="lineno"><a class="line" href="structuvw_1_1InterfaceAddress.html#abfec6ae9914c03ef90f9d08c0c82759e"> 350</a></span>  std::string <a class="code" href="structuvw_1_1InterfaceAddress.html#abfec6ae9914c03ef90f9d08c0c82759e">name</a>; </div>
|
||
<div class="line"><a name="l00351"></a><span class="lineno"><a class="line" href="structuvw_1_1InterfaceAddress.html#ada32da6e30e1b616d25a85d4db8923a2"> 351</a></span>  <span class="keywordtype">char</span> <a class="code" href="structuvw_1_1InterfaceAddress.html#ada32da6e30e1b616d25a85d4db8923a2">physical</a>[6]; </div>
|
||
<div class="line"><a name="l00352"></a><span class="lineno"><a class="line" href="structuvw_1_1InterfaceAddress.html#a402b5972c6175874d2e075e5d330192d"> 352</a></span>  <span class="keywordtype">bool</span> <span class="keyword">internal</span>; </div>
|
||
<div class="line"><a name="l00353"></a><span class="lineno"><a class="line" href="structuvw_1_1InterfaceAddress.html#a5dc17416f46b0e5e5255404c5858c85e"> 353</a></span>  <a class="code" href="structuvw_1_1Addr.html">Addr</a> <a class="code" href="structuvw_1_1InterfaceAddress.html#a5dc17416f46b0e5e5255404c5858c85e">address</a>; </div>
|
||
<div class="line"><a name="l00354"></a><span class="lineno"><a class="line" href="structuvw_1_1InterfaceAddress.html#ae49c9d7b92ed40cfdf61d846e20eaefa"> 354</a></span>  <a class="code" href="structuvw_1_1Addr.html">Addr</a> <a class="code" href="structuvw_1_1InterfaceAddress.html#ae49c9d7b92ed40cfdf61d846e20eaefa">netmask</a>; </div>
|
||
<div class="line"><a name="l00355"></a><span class="lineno"> 355</span> };</div>
|
||
<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  </div>
|
||
<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  </div>
|
||
<div class="line"><a name="l00358"></a><span class="lineno"> 358</span> <span class="keyword">namespace </span>details {</div>
|
||
<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>  </div>
|
||
<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  </div>
|
||
<div class="line"><a name="l00361"></a><span class="lineno"> 361</span> <span class="keyword">static</span> constexpr std::size_t DEFAULT_SIZE = 128;</div>
|
||
<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>  </div>
|
||
<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>  </div>
|
||
<div class="line"><a name="l00364"></a><span class="lineno"> 364</span> <span class="keyword">template</span><<span class="keyword">typename</span>></div>
|
||
<div class="line"><a name="l00365"></a><span class="lineno"> 365</span> <span class="keyword">struct </span>IpTraits;</div>
|
||
<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>  </div>
|
||
<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>  </div>
|
||
<div class="line"><a name="l00368"></a><span class="lineno"> 368</span> <span class="keyword">template</span><></div>
|
||
<div class="line"><a name="l00369"></a><span class="lineno"> 369</span> <span class="keyword">struct </span>IpTraits<<a class="code" href="structuvw_1_1IPv4.html">IPv4</a>> {</div>
|
||
<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>  <span class="keyword">using</span> Type = sockaddr_in;</div>
|
||
<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>  <span class="keyword">using</span> AddrFuncType = int(*)(<span class="keyword">const</span> <span class="keywordtype">char</span> *, int, Type *);</div>
|
||
<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>  <span class="keyword">using</span> NameFuncType = int(*)(<span class="keyword">const</span> Type *, <span class="keywordtype">char</span> *, std::size_t);</div>
|
||
<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>  <span class="keyword">static</span> constexpr AddrFuncType addrFunc = &uv_ip4_addr;</div>
|
||
<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>  <span class="keyword">static</span> constexpr NameFuncType nameFunc = &uv_ip4_name;</div>
|
||
<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>  <span class="keyword">static</span> constexpr <span class="keyword">auto</span> sinPort(<span class="keyword">const</span> Type *addr) { <span class="keywordflow">return</span> addr->sin_port; }</div>
|
||
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span> };</div>
|
||
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>  </div>
|
||
<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  </div>
|
||
<div class="line"><a name="l00379"></a><span class="lineno"> 379</span> <span class="keyword">template</span><></div>
|
||
<div class="line"><a name="l00380"></a><span class="lineno"> 380</span> <span class="keyword">struct </span>IpTraits<IPv6> {</div>
|
||
<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>  <span class="keyword">using</span> Type = sockaddr_in6;</div>
|
||
<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>  <span class="keyword">using</span> AddrFuncType = int(*)(<span class="keyword">const</span> <span class="keywordtype">char</span> *, int, Type *);</div>
|
||
<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>  <span class="keyword">using</span> NameFuncType = int(*)(<span class="keyword">const</span> Type *, <span class="keywordtype">char</span> *, std::size_t);</div>
|
||
<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>  <span class="keyword">static</span> constexpr AddrFuncType addrFunc = &uv_ip6_addr;</div>
|
||
<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>  <span class="keyword">static</span> constexpr NameFuncType nameFunc = &uv_ip6_name;</div>
|
||
<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>  <span class="keyword">static</span> constexpr <span class="keyword">auto</span> sinPort(<span class="keyword">const</span> Type *addr) { <span class="keywordflow">return</span> addr->sin6_port; }</div>
|
||
<div class="line"><a name="l00387"></a><span class="lineno"> 387</span> };</div>
|
||
<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  </div>
|
||
<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  </div>
|
||
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span> <span class="keyword">template</span><<span class="keyword">typename</span> I></div>
|
||
<div class="line"><a name="l00391"></a><span class="lineno"> 391</span> Addr address(<span class="keyword">const</span> <span class="keyword">typename</span> details::IpTraits<I>::Type *aptr) noexcept {</div>
|
||
<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>  Addr addr;</div>
|
||
<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>  <span class="keywordtype">char</span> name[DEFAULT_SIZE];</div>
|
||
<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>  </div>
|
||
<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>  <span class="keywordtype">int</span> err = details::IpTraits<I>::nameFunc(aptr, name, DEFAULT_SIZE);</div>
|
||
<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>  </div>
|
||
<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>  <span class="keywordflow">if</span>(0 == err) {</div>
|
||
<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>  addr.port = ntohs(details::IpTraits<I>::sinPort(aptr));</div>
|
||
<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  addr.ip = std::string{name};</div>
|
||
<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  }</div>
|
||
<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  </div>
|
||
<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>  <span class="keywordflow">return</span> addr;</div>
|
||
<div class="line"><a name="l00403"></a><span class="lineno"> 403</span> }</div>
|
||
<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>  </div>
|
||
<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>  </div>
|
||
<div class="line"><a name="l00406"></a><span class="lineno"> 406</span> <span class="keyword">template</span><<span class="keyword">typename</span> I, <span class="keyword">typename</span> F, <span class="keyword">typename</span> H></div>
|
||
<div class="line"><a name="l00407"></a><span class="lineno"> 407</span> Addr address(F &&f, <span class="keyword">const</span> H *handle) noexcept {</div>
|
||
<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>  sockaddr_storage ssto;</div>
|
||
<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>  <span class="keywordtype">int</span> len = <span class="keyword">sizeof</span>(ssto);</div>
|
||
<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>  Addr addr{};</div>
|
||
<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>  </div>
|
||
<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>  <span class="keywordtype">int</span> err = std::forward<F>(f)(handle, <span class="keyword">reinterpret_cast<</span>sockaddr *<span class="keyword">></span>(&ssto), &len);</div>
|
||
<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>  </div>
|
||
<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>  <span class="keywordflow">if</span>(0 == err) {</div>
|
||
<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>  <span class="keyword">typename</span> IpTraits<I>::Type *aptr = <span class="keyword">reinterpret_cast<</span>typename IpTraits<I>::Type *<span class="keyword">></span>(&ssto);</div>
|
||
<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>  addr = address<I>(aptr);</div>
|
||
<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>  }</div>
|
||
<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  </div>
|
||
<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>  <span class="keywordflow">return</span> addr;</div>
|
||
<div class="line"><a name="l00420"></a><span class="lineno"> 420</span> }</div>
|
||
<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>  </div>
|
||
<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>  </div>
|
||
<div class="line"><a name="l00423"></a><span class="lineno"> 423</span> <span class="keyword">template</span><<span class="keyword">typename</span> F, <span class="keyword">typename</span>... Args></div>
|
||
<div class="line"><a name="l00424"></a><span class="lineno"> 424</span> std::string tryRead(F &&f, Args&&... args) noexcept {</div>
|
||
<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>  std::size_t size = DEFAULT_SIZE;</div>
|
||
<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>  <span class="keywordtype">char</span> buf[DEFAULT_SIZE];</div>
|
||
<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>  std::string str{};</div>
|
||
<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>  <span class="keyword">auto</span> err = std::forward<F>(f)(args..., buf, &size);</div>
|
||
<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>  </div>
|
||
<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>  <span class="keywordflow">if</span>(UV_ENOBUFS == err) {</div>
|
||
<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>  std::unique_ptr<char[]> data{<span class="keyword">new</span> <span class="keywordtype">char</span>[size]};</div>
|
||
<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>  err = std::forward<F>(f)(args..., data.get(), &size);</div>
|
||
<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>  </div>
|
||
<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>  <span class="keywordflow">if</span>(0 == err) {</div>
|
||
<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>  str = data.get();</div>
|
||
<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>  }</div>
|
||
<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>  } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(0 == err) {</div>
|
||
<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>  str.assign(buf, size);</div>
|
||
<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>  }</div>
|
||
<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>  </div>
|
||
<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>  <span class="keywordflow">return</span> str;</div>
|
||
<div class="line"><a name="l00442"></a><span class="lineno"> 442</span> }</div>
|
||
<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>  </div>
|
||
<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>  </div>
|
||
<div class="line"><a name="l00445"></a><span class="lineno"> 445</span> }</div>
|
||
<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>  </div>
|
||
<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>  </div>
|
||
<div class="line"><a name="l00453"></a><span class="lineno"><a class="line" href="structuvw_1_1Utilities.html"> 453</a></span> <span class="keyword">struct </span><a class="code" href="structuvw_1_1Utilities.html">Utilities</a> {</div>
|
||
<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>  <span class="keyword">using</span> MallocFuncType = <span class="keywordtype">void</span>*(*)(size_t);</div>
|
||
<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>  <span class="keyword">using</span> ReallocFuncType = <span class="keywordtype">void</span>*(*)(<span class="keywordtype">void</span>*, size_t);</div>
|
||
<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>  <span class="keyword">using</span> CallocFuncType = <span class="keywordtype">void</span>*(*)(size_t, size_t);</div>
|
||
<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>  <span class="keyword">using</span> FreeFuncType = void(*)(<span class="keywordtype">void</span>*);</div>
|
||
<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>  </div>
|
||
<div class="line"><a name="l00462"></a><span class="lineno"><a class="line" href="structuvw_1_1Utilities_1_1OS.html"> 462</a></span>  <span class="keyword">struct </span><a class="code" href="structuvw_1_1Utilities_1_1OS.html">OS</a> {</div>
|
||
<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>  <span class="keyword">static</span> <a class="code" href="namespaceuvw.html#aad24ed8fb712caa655da6e3d7cb95bdd">PidType</a> <a class="code" href="structuvw_1_1Utilities_1_1OS.html#a60f780bc1b7778d64706cb6a4877795c">pid</a>() noexcept;</div>
|
||
<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>  </div>
|
||
<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>  <span class="keyword">static</span> <a class="code" href="namespaceuvw.html#aad24ed8fb712caa655da6e3d7cb95bdd">PidType</a> <a class="code" href="structuvw_1_1Utilities_1_1OS.html#a2145593521219f0184522ea6b7b6d790">parent</a>() noexcept;</div>
|
||
<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>  </div>
|
||
<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>  <span class="keyword">static</span> std::string <a class="code" href="structuvw_1_1Utilities_1_1OS.html#a770ab48231aa27f3868516b0fdf3cacd">homedir</a>() noexcept;</div>
|
||
<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>  </div>
|
||
<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>  <span class="keyword">static</span> std::string <a class="code" href="structuvw_1_1Utilities_1_1OS.html#a8f7125f1eecdbedeea3322453114eeb8">tmpdir</a>() noexcept;</div>
|
||
<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>  </div>
|
||
<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>  <span class="keyword">static</span> std::string <a class="code" href="structuvw_1_1Utilities_1_1OS.html#a973646ae5f6c0cd5b079bb8e201357f5">env</a>(<span class="keyword">const</span> std::string &name) noexcept;</div>
|
||
<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>  </div>
|
||
<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>  <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="structuvw_1_1Utilities_1_1OS.html#a973646ae5f6c0cd5b079bb8e201357f5">env</a>(<span class="keyword">const</span> std::string &name, <span class="keyword">const</span> std::string &value) noexcept;</div>
|
||
<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>  </div>
|
||
<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>  <span class="keyword">template</span><<span class="keyword">typename</span> Func></div>
|
||
<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>  <span class="keyword">static</span> std::enable_if_t<std::is_invocable_v<Func, std::string_view, std::string_view>, <span class="keywordtype">bool</span>></div>
|
||
<div class="line"><a name="l00540"></a><span class="lineno"><a class="line" href="structuvw_1_1Utilities_1_1OS.html#a34e900dcf071f0a6aada453c97e300b7"> 540</a></span>  <a class="code" href="structuvw_1_1Utilities_1_1OS.html#a34e900dcf071f0a6aada453c97e300b7">env</a>(Func func) noexcept {</div>
|
||
<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>  uv_env_item_t *items = <span class="keyword">nullptr</span>;</div>
|
||
<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>  <span class="keywordtype">int</span> count{};</div>
|
||
<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>  </div>
|
||
<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>  <span class="keyword">const</span> <span class="keywordtype">bool</span> ret = (uv_os_environ(&items, &count) == 0);</div>
|
||
<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>  </div>
|
||
<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>  <span class="keywordflow">if</span>(ret) {</div>
|
||
<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> pos = 0; pos < count; ++pos) {</div>
|
||
<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>  func(std::string_view{items[pos].name}, std::string_view{items[pos].value});</div>
|
||
<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>  }</div>
|
||
<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>  </div>
|
||
<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>  uv_os_free_environ(items, count);</div>
|
||
<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>  }</div>
|
||
<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>  </div>
|
||
<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>  <span class="keywordflow">return</span> ret;</div>
|
||
<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>  }</div>
|
||
<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>  </div>
|
||
<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>  <span class="keyword">static</span> std::string <a class="code" href="structuvw_1_1Utilities_1_1OS.html#a3bdfdaceed79abba7c456e761702ce31">hostname</a>() noexcept;</div>
|
||
<div class="line"><a name="l00562"></a><span class="lineno"> 562</span>  </div>
|
||
<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>  static <a class="code" href="structuvw_1_1UtsName.html">UtsName</a> <a class="code" href="structuvw_1_1Utilities_1_1OS.html#a1550cb8ea2a033653b89830911acd246">uname</a>() noexcept;</div>
|
||
<div class="line"><a name="l00573"></a><span class="lineno"> 573</span>  </div>
|
||
<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>  static <a class="code" href="structuvw_1_1Passwd.html">Passwd</a> <a class="code" href="structuvw_1_1Utilities_1_1OS.html#a9d2504b52c450da8620741a835eae70b">passwd</a>() noexcept;</div>
|
||
<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>  };</div>
|
||
<div class="line"><a name="l00588"></a><span class="lineno"> 588</span>  </div>
|
||
<div class="line"><a name="l00602"></a><span class="lineno"> 602</span>  static <span class="keywordtype">int</span> <a class="code" href="structuvw_1_1Utilities.html#aa243055b6c24734e7e7ba35386ea5e90">osPriority</a>(<a class="code" href="namespaceuvw.html#aad24ed8fb712caa655da6e3d7cb95bdd">PidType</a> <a class="code" href="structuvw_1_1Utilities_1_1OS.html#a60f780bc1b7778d64706cb6a4877795c">pid</a>);</div>
|
||
<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>  </div>
|
||
<div class="line"><a name="l00619"></a><span class="lineno"> 619</span>  static <span class="keywordtype">bool</span> <a class="code" href="structuvw_1_1Utilities.html#aa243055b6c24734e7e7ba35386ea5e90">osPriority</a>(<a class="code" href="namespaceuvw.html#aad24ed8fb712caa655da6e3d7cb95bdd">PidType</a> <a class="code" href="structuvw_1_1Utilities_1_1OS.html#a60f780bc1b7778d64706cb6a4877795c">pid</a>, <span class="keywordtype">int</span> prio);</div>
|
||
<div class="line"><a name="l00620"></a><span class="lineno"> 620</span>  </div>
|
||
<div class="line"><a name="l00626"></a><span class="lineno"> 626</span>  static HandleType <a class="code" href="structuvw_1_1Utilities.html#a2a05286add192e595f5d7d5d3db682fb">guessHandle</a>(<a class="code" href="namespaceuvw.html#aa3ae4a038de60a69b2513a039add1e48">HandleCategory</a> category) noexcept;</div>
|
||
<div class="line"><a name="l00627"></a><span class="lineno"> 627</span>  </div>
|
||
<div class="line"><a name="l00646"></a><span class="lineno"> 646</span>  static HandleType <a class="code" href="structuvw_1_1Utilities.html#a2a05286add192e595f5d7d5d3db682fb">guessHandle</a>(<a class="code" href="namespaceuvw.html#a02b7ef3b5a65b0bec1602ef434806a27">FileHandle</a> file) noexcept;</div>
|
||
<div class="line"><a name="l00647"></a><span class="lineno"> 647</span>  </div>
|
||
<div class="line"><a name="l00655"></a><span class="lineno"> 655</span>  static std::vector<<a class="code" href="structuvw_1_1CPUInfo.html">CPUInfo</a>> <a class="code" href="structuvw_1_1Utilities.html#a9fc20cb272b9302a631535034e6b2999">cpuInfo</a>() noexcept;</div>
|
||
<div class="line"><a name="l00656"></a><span class="lineno"> 656</span>  </div>
|
||
<div class="line"><a name="l00665"></a><span class="lineno"> 665</span>  static std::vector<<a class="code" href="structuvw_1_1InterfaceAddress.html">InterfaceAddress</a>> <a class="code" href="structuvw_1_1Utilities.html#a5e37faecdeb8048bf71314f8a8f38909">interfaceAddresses</a>() noexcept;</div>
|
||
<div class="line"><a name="l00666"></a><span class="lineno"> 666</span>  </div>
|
||
<div class="line"><a name="l00680"></a><span class="lineno"> 680</span>  static std::<span class="keywordtype">string</span> <a class="code" href="structuvw_1_1Utilities.html#a8fc14b10d78dc6ad37fd4a99f0959352">indexToName</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> index) noexcept;</div>
|
||
<div class="line"><a name="l00681"></a><span class="lineno"> 681</span>  </div>
|
||
<div class="line"><a name="l00692"></a><span class="lineno"> 692</span>  static std::<span class="keywordtype">string</span> <a class="code" href="structuvw_1_1Utilities.html#a85459cc57e1f14ae6f89599cb87d036f">indexToIid</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> index) noexcept;</div>
|
||
<div class="line"><a name="l00693"></a><span class="lineno"> 693</span>  </div>
|
||
<div class="line"><a name="l00717"></a><span class="lineno"> 717</span>  static <span class="keywordtype">bool</span> <a class="code" href="structuvw_1_1Utilities.html#a602f623c81e84e8d947187a8815956a4">replaceAllocator</a>(MallocFuncType mallocFunc, ReallocFuncType reallocFunc, CallocFuncType callocFunc, FreeFuncType freeFunc) noexcept;</div>
|
||
<div class="line"><a name="l00718"></a><span class="lineno"> 718</span>  </div>
|
||
<div class="line"><a name="l00723"></a><span class="lineno"> 723</span>  static std::array<<span class="keywordtype">double</span>, 3> <a class="code" href="structuvw_1_1Utilities.html#ad7b5f2ac88ab77355ab0a21307145864">loadAverage</a>() noexcept;</div>
|
||
<div class="line"><a name="l00724"></a><span class="lineno"> 724</span>  </div>
|
||
<div class="line"><a name="l00732"></a><span class="lineno"> 732</span>  static <span class="keywordtype">char</span> ** <a class="code" href="structuvw_1_1Utilities.html#ae7e6b1b44125ea2cf529a8d88d135fa4">setupArgs</a>(<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span>** argv);</div>
|
||
<div class="line"><a name="l00733"></a><span class="lineno"> 733</span>  </div>
|
||
<div class="line"><a name="l00738"></a><span class="lineno"> 738</span>  static std::<span class="keywordtype">string</span> <a class="code" href="structuvw_1_1Utilities.html#a08d83152d4f1baaf56802b26e9881508">processTitle</a>();</div>
|
||
<div class="line"><a name="l00739"></a><span class="lineno"> 739</span>  </div>
|
||
<div class="line"><a name="l00745"></a><span class="lineno"> 745</span>  static <span class="keywordtype">bool</span> <a class="code" href="structuvw_1_1Utilities.html#a08d83152d4f1baaf56802b26e9881508">processTitle</a>(std::<span class="keywordtype">string</span> title);</div>
|
||
<div class="line"><a name="l00746"></a><span class="lineno"> 746</span>  </div>
|
||
<div class="line"><a name="l00751"></a><span class="lineno"> 751</span>  static uint64_t <a class="code" href="structuvw_1_1Utilities.html#acd553ee275a0e28a10250fcb2f6b993a">totalMemory</a>() noexcept;</div>
|
||
<div class="line"><a name="l00752"></a><span class="lineno"> 752</span>  </div>
|
||
<div class="line"><a name="l00764"></a><span class="lineno"> 764</span>  static uint64_t <a class="code" href="structuvw_1_1Utilities.html#a7ac9418167cafe920c1cac353216d47c">constrainedMemory</a>() noexcept;</div>
|
||
<div class="line"><a name="l00765"></a><span class="lineno"> 765</span>  </div>
|
||
<div class="line"><a name="l00770"></a><span class="lineno"> 770</span>  static <span class="keywordtype">double</span> <a class="code" href="structuvw_1_1Utilities.html#ae2b405d1b5d8de4bbb3e9a2707b9ec3a">uptime</a>() noexcept;</div>
|
||
<div class="line"><a name="l00771"></a><span class="lineno"> 771</span>  </div>
|
||
<div class="line"><a name="l00776"></a><span class="lineno"> 776</span>  static <a class="code" href="namespaceuvw.html#a9a25d3f086b078e4b9b370fe5c4316a2">RUsage</a> <a class="code" href="structuvw_1_1Utilities.html#afdc2eb87f4fa129fa3c48b883c09579f">rusage</a>() noexcept;</div>
|
||
<div class="line"><a name="l00777"></a><span class="lineno"> 777</span>  </div>
|
||
<div class="line"><a name="l00788"></a><span class="lineno"> 788</span>  static uint64_t <a class="code" href="structuvw_1_1Utilities.html#afd89c84fce9a9cdb4d9dcd885fa8f3fc">hrtime</a>() noexcept;</div>
|
||
<div class="line"><a name="l00789"></a><span class="lineno"> 789</span>  </div>
|
||
<div class="line"><a name="l00794"></a><span class="lineno"> 794</span>  static std::<span class="keywordtype">string</span> <a class="code" href="structuvw_1_1Utilities.html#a93c08c9616de565c4b34d7f580f94fb8">path</a>() noexcept;</div>
|
||
<div class="line"><a name="l00795"></a><span class="lineno"> 795</span>  </div>
|
||
<div class="line"><a name="l00800"></a><span class="lineno"> 800</span>  static std::<span class="keywordtype">string</span> <a class="code" href="structuvw_1_1Utilities.html#ac0f1805b8adf93066a8c4df190f5c6a2">cwd</a>() noexcept;</div>
|
||
<div class="line"><a name="l00801"></a><span class="lineno"> 801</span>  </div>
|
||
<div class="line"><a name="l00807"></a><span class="lineno"> 807</span>  static <span class="keywordtype">bool</span> <a class="code" href="structuvw_1_1Utilities.html#a1fabc7507a23df71a3baf0894be8ee65">chdir</a>(const std::<span class="keywordtype">string</span> &dir) noexcept;</div>
|
||
<div class="line"><a name="l00808"></a><span class="lineno"> 808</span>  </div>
|
||
<div class="line"><a name="l00814"></a><span class="lineno"> 814</span>  static <a class="code" href="namespaceuvw.html#ae7c2e4a87f2213a9509f99e3149c3e65">TimeVal64</a> <a class="code" href="structuvw_1_1Utilities.html#adbc40acfd4792dde69e3bcf1469224f0">timeOfDay</a>() noexcept;</div>
|
||
<div class="line"><a name="l00815"></a><span class="lineno"> 815</span>  </div>
|
||
<div class="line"><a name="l00820"></a><span class="lineno"> 820</span>  static <span class="keywordtype">void</span> <a class="code" href="structuvw_1_1Utilities.html#a1350ba6a8e8bbea124003281d96ffb6c">sleep</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> msec) noexcept;</div>
|
||
<div class="line"><a name="l00821"></a><span class="lineno"> 821</span> };</div>
|
||
<div class="line"><a name="l00822"></a><span class="lineno"> 822</span>  </div>
|
||
<div class="line"><a name="l00823"></a><span class="lineno"> 823</span>  </div>
|
||
<div class="line"><a name="l00824"></a><span class="lineno"> 824</span> }</div>
|
||
<div class="line"><a name="l00825"></a><span class="lineno"> 825</span>  </div>
|
||
<div class="line"><a name="l00826"></a><span class="lineno"> 826</span>  </div>
|
||
<div class="line"><a name="l00827"></a><span class="lineno"> 827</span> <span class="preprocessor">#ifndef UVW_AS_LIB</span></div>
|
||
<div class="line"><a name="l00828"></a><span class="lineno"> 828</span> <span class="preprocessor">#include "util.cpp"</span></div>
|
||
<div class="line"><a name="l00829"></a><span class="lineno"> 829</span> <span class="preprocessor">#endif</span></div>
|
||
<div class="line"><a name="l00830"></a><span class="lineno"> 830</span>  </div>
|
||
<div class="line"><a name="l00831"></a><span class="lineno"> 831</span> <span class="preprocessor">#endif // UVW_UTIL_INCLUDE_H</span></div>
|
||
</div><!-- fragment --></div><!-- contents -->
|
||
<div class="ttc" id="astructuvw_1_1Utilities_1_1OS_html_a973646ae5f6c0cd5b079bb8e201357f5"><div class="ttname"><a href="structuvw_1_1Utilities_1_1OS.html#a973646ae5f6c0cd5b079bb8e201357f5">uvw::Utilities::OS::env</a></div><div class="ttdeci">static std::string env(const std::string &name) noexcept</div><div class="ttdoc">Retrieves an environment variable.</div></div>
|
||
<div class="ttc" id="astructuvw_1_1WinSize_html_a40f10b779ddb8c2fc30e56f98fb432d7"><div class="ttname"><a href="structuvw_1_1WinSize.html#a40f10b779ddb8c2fc30e56f98fb432d7">uvw::WinSize::width</a></div><div class="ttdeci">int width</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00181">util.h:181</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#l00010">async.h:10</a></div></div>
|
||
<div class="ttc" id="astructuvw_1_1Utilities_html_aa243055b6c24734e7e7ba35386ea5e90"><div class="ttname"><a href="structuvw_1_1Utilities.html#aa243055b6c24734e7e7ba35386ea5e90">uvw::Utilities::osPriority</a></div><div class="ttdeci">static int osPriority(PidType pid)</div><div class="ttdoc">Retrieves the scheduling priority of a process.</div></div>
|
||
<div class="ttc" id="astructuvw_1_1Utilities_html_a85459cc57e1f14ae6f89599cb87d036f"><div class="ttname"><a href="structuvw_1_1Utilities.html#a85459cc57e1f14ae6f89599cb87d036f">uvw::Utilities::indexToIid</a></div><div class="ttdeci">static std::string indexToIid(unsigned int index) noexcept</div><div class="ttdoc">Retrieves a network interface identifier.</div></div>
|
||
<div class="ttc" id="astructuvw_1_1WinSize_html"><div class="ttname"><a href="structuvw_1_1WinSize.html">uvw::WinSize</a></div><div class="ttdoc">Windows size representation.</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00180">util.h:180</a></div></div>
|
||
<div class="ttc" id="anamespaceuvw_html_ad3e2552cab7a68ba72e447f7656f01d7"><div class="ttname"><a href="namespaceuvw.html#ad3e2552cab7a68ba72e447f7656f01d7">uvw::Stat</a></div><div class="ttdeci">uv_stat_t Stat</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00199">util.h:199</a></div></div>
|
||
<div class="ttc" id="astructuvw_1_1UtsName_html_a83fe14ee40fcbf533ebfa379067aa395"><div class="ttname"><a href="structuvw_1_1UtsName.html#a83fe14ee40fcbf533ebfa379067aa395">uvw::UtsName::machine</a></div><div class="ttdeci">std::string machine() const noexcept</div><div class="ttdoc">Gets the hardware identifier.</div></div>
|
||
<div class="ttc" id="astructuvw_1_1Utilities_html_a1350ba6a8e8bbea124003281d96ffb6c"><div class="ttname"><a href="structuvw_1_1Utilities.html#a1350ba6a8e8bbea124003281d96ffb6c">uvw::Utilities::sleep</a></div><div class="ttdeci">static void sleep(unsigned int msec) noexcept</div><div class="ttdoc">Causes the calling thread to sleep for a while.</div></div>
|
||
<div class="ttc" id="astructuvw_1_1Utilities_1_1OS_html_a770ab48231aa27f3868516b0fdf3cacd"><div class="ttname"><a href="structuvw_1_1Utilities_1_1OS.html#a770ab48231aa27f3868516b0fdf3cacd">uvw::Utilities::OS::homedir</a></div><div class="ttdeci">static std::string homedir() noexcept</div><div class="ttdoc">Gets the current user's home directory.</div></div>
|
||
<div class="ttc" id="anamespaceuvw_html_a4e050aae48eaf10709216c0dae8af8a9"><div class="ttname"><a href="namespaceuvw.html#a4e050aae48eaf10709216c0dae8af8a9">uvw::StdIN</a></div><div class="ttdeci">constexpr FileHandle StdIN</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00194">util.h:194</a></div></div>
|
||
<div class="ttc" id="aclassuvw_1_1Flags_html_a028a318b0a3a2a0558b671c00ec892a5"><div class="ttname"><a href="classuvw_1_1Flags.html#a028a318b0a3a2a0558b671c00ec892a5">uvw::Flags::Flags</a></div><div class="ttdeci">constexpr Flags()</div><div class="ttdoc">Constructs an uninitialized Flags object.</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00115">util.h:115</a></div></div>
|
||
<div class="ttc" id="aclassuvw_1_1Flags_html_ab6c20105a3ba232a6c8448fd7408a63d"><div class="ttname"><a href="classuvw_1_1Flags.html#ab6c20105a3ba232a6c8448fd7408a63d">uvw::Flags::operator&</a></div><div class="ttdeci">constexpr Flags operator&(const Flags &f) const noexcept</div><div class="ttdoc">And operator.</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00151">util.h:151</a></div></div>
|
||
<div class="ttc" id="astructuvw_1_1Utilities_html_adbc40acfd4792dde69e3bcf1469224f0"><div class="ttname"><a href="structuvw_1_1Utilities.html#adbc40acfd4792dde69e3bcf1469224f0">uvw::Utilities::timeOfDay</a></div><div class="ttdeci">static TimeVal64 timeOfDay() noexcept</div><div class="ttdoc">Cross-platform implementation of gettimeofday</div></div>
|
||
<div class="ttc" id="astructuvw_1_1Utilities_1_1OS_html_a8f7125f1eecdbedeea3322453114eeb8"><div class="ttname"><a href="structuvw_1_1Utilities_1_1OS.html#a8f7125f1eecdbedeea3322453114eeb8">uvw::Utilities::OS::tmpdir</a></div><div class="ttdeci">static std::string tmpdir() noexcept</div><div class="ttdoc">Gets the temp directory.</div></div>
|
||
<div class="ttc" id="astructuvw_1_1Utilities_html_a8fc14b10d78dc6ad37fd4a99f0959352"><div class="ttname"><a href="structuvw_1_1Utilities.html#a8fc14b10d78dc6ad37fd4a99f0959352">uvw::Utilities::indexToName</a></div><div class="ttdeci">static std::string indexToName(unsigned int index) noexcept</div><div class="ttdoc">IPv6-capable implementation of if_indextoname.</div></div>
|
||
<div class="ttc" id="astructuvw_1_1Utilities_1_1OS_html_a60f780bc1b7778d64706cb6a4877795c"><div class="ttname"><a href="structuvw_1_1Utilities_1_1OS.html#a60f780bc1b7778d64706cb6a4877795c">uvw::Utilities::OS::pid</a></div><div class="ttdeci">static PidType pid() noexcept</div><div class="ttdoc">Returns the current process id.</div></div>
|
||
<div class="ttc" id="astructuvw_1_1InterfaceAddress_html_ada32da6e30e1b616d25a85d4db8923a2"><div class="ttname"><a href="structuvw_1_1InterfaceAddress.html#ada32da6e30e1b616d25a85d4db8923a2">uvw::InterfaceAddress::physical</a></div><div class="ttdeci">char physical[6]</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00351">util.h:351</a></div></div>
|
||
<div class="ttc" id="astructuvw_1_1Utilities_1_1OS_html_a9d2504b52c450da8620741a835eae70b"><div class="ttname"><a href="structuvw_1_1Utilities_1_1OS.html#a9d2504b52c450da8620741a835eae70b">uvw::Utilities::OS::passwd</a></div><div class="ttdeci">static Passwd passwd() noexcept</div><div class="ttdoc">Gets a subset of the password file entry.</div></div>
|
||
<div class="ttc" id="aclassuvw_1_1Flags_html_a5cb93c65ae7a839a917c4e789e67390f"><div class="ttname"><a href="classuvw_1_1Flags.html#a5cb93c65ae7a839a917c4e789e67390f">uvw::Flags::Flags</a></div><div class="ttdeci">constexpr Flags(Type f)</div><div class="ttdoc">Constructs a Flags object from an instance of the underlying type of the enum E.</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00110">util.h:110</a></div></div>
|
||
<div class="ttc" id="astructuvw_1_1InterfaceAddress_html"><div class="ttname"><a href="structuvw_1_1InterfaceAddress.html">uvw::InterfaceAddress</a></div><div class="ttdoc">Interface address.</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00349">util.h:349</a></div></div>
|
||
<div class="ttc" id="anamespaceuvw_html_a6a9c7b7d247c0873d9aac07d63f8360b"><div class="ttname"><a href="namespaceuvw.html#a6a9c7b7d247c0873d9aac07d63f8360b">uvw::TimeVal</a></div><div class="ttdeci">uv_timeval_t TimeVal</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00204">util.h:204</a></div></div>
|
||
<div class="ttc" id="astructuvw_1_1Addr_html_a2069fc52d0ad91f65d76f558b8b7673f"><div class="ttname"><a href="structuvw_1_1Addr.html#a2069fc52d0ad91f65d76f558b8b7673f">uvw::Addr::port</a></div><div class="ttdeci">unsigned int port</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00323">util.h:323</a></div></div>
|
||
<div class="ttc" id="astructuvw_1_1Utilities_html_afdc2eb87f4fa129fa3c48b883c09579f"><div class="ttname"><a href="structuvw_1_1Utilities.html#afdc2eb87f4fa129fa3c48b883c09579f">uvw::Utilities::rusage</a></div><div class="ttdeci">static RUsage rusage() noexcept</div><div class="ttdoc">Gets the resource usage measures for the current process.</div></div>
|
||
<div class="ttc" id="astructuvw_1_1Passwd_html_a1af30054a044b2d897dbcc517f54cfbe"><div class="ttname"><a href="structuvw_1_1Passwd.html#a1af30054a044b2d897dbcc517f54cfbe">uvw::Passwd::homedir</a></div><div class="ttdeci">std::string homedir() const noexcept</div><div class="ttdoc">Gets the homedir.</div></div>
|
||
<div class="ttc" id="astructuvw_1_1Utilities_1_1OS_html_a34e900dcf071f0a6aada453c97e300b7"><div class="ttname"><a href="structuvw_1_1Utilities_1_1OS.html#a34e900dcf071f0a6aada453c97e300b7">uvw::Utilities::OS::env</a></div><div class="ttdeci">static std::enable_if_t< std::is_invocable_v< Func, std::string_view, std::string_view >, bool > env(Func func) noexcept</div><div class="ttdoc">Retrieves all environment variables and iterates them.</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00540">util.h:540</a></div></div>
|
||
<div class="ttc" id="astructuvw_1_1Utilities_html_ad7b5f2ac88ab77355ab0a21307145864"><div class="ttname"><a href="structuvw_1_1Utilities.html#ad7b5f2ac88ab77355ab0a21307145864">uvw::Utilities::loadAverage</a></div><div class="ttdeci">static std::array< double, 3 > loadAverage() noexcept</div><div class="ttdoc">Gets the load average.</div></div>
|
||
<div class="ttc" id="astructuvw_1_1Utilities_html_a602f623c81e84e8d947187a8815956a4"><div class="ttname"><a href="structuvw_1_1Utilities.html#a602f623c81e84e8d947187a8815956a4">uvw::Utilities::replaceAllocator</a></div><div class="ttdeci">static bool replaceAllocator(MallocFuncType mallocFunc, ReallocFuncType reallocFunc, CallocFuncType callocFunc, FreeFuncType freeFunc) noexcept</div><div class="ttdoc">Override the use of some standard library’s functions.</div></div>
|
||
<div class="ttc" id="anamespaceuvw_html_a9a25d3f086b078e4b9b370fe5c4316a2"><div class="ttname"><a href="namespaceuvw.html#a9a25d3f086b078e4b9b370fe5c4316a2">uvw::RUsage</a></div><div class="ttdeci">uv_rusage_t RUsage</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00206">util.h:206</a></div></div>
|
||
<div class="ttc" id="anamespaceuvw_html_a82c74b9200b97f2e1668fe2719eef72e"><div class="ttname"><a href="namespaceuvw.html#a82c74b9200b97f2e1668fe2719eef72e">uvw::Gid</a></div><div class="ttdeci">uv_gid_t Gid</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00202">util.h:202</a></div></div>
|
||
<div class="ttc" id="astructuvw_1_1Passwd_html_a32fb64ac957376ca92248767db8bc9eb"><div class="ttname"><a href="structuvw_1_1Passwd.html#a32fb64ac957376ca92248767db8bc9eb">uvw::Passwd::username</a></div><div class="ttdeci">std::string username() const noexcept</div><div class="ttdoc">Gets the username.</div></div>
|
||
<div class="ttc" id="astructuvw_1_1Utilities_html_a5e37faecdeb8048bf71314f8a8f38909"><div class="ttname"><a href="structuvw_1_1Utilities.html#a5e37faecdeb8048bf71314f8a8f38909">uvw::Utilities::interfaceAddresses</a></div><div class="ttdeci">static std::vector< InterfaceAddress > interfaceAddresses() noexcept</div><div class="ttdoc">Gets a set of descriptors of all the available interfaces.</div></div>
|
||
<div class="ttc" id="aclassuvw_1_1Flags_html_a03dcc52240c349a73523d67975ed3de2"><div class="ttname"><a href="classuvw_1_1Flags.html#a03dcc52240c349a73523d67975ed3de2">uvw::Flags::from</a></div><div class="ttdeci">static constexpr Flags< E > from()</div><div class="ttdoc">Utility factory method to pack a set of values all at once.</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00095">util.h:95</a></div></div>
|
||
<div class="ttc" id="anamespaceuvw_html_ab60d2d4534e3369bc372c47843f9d4b9"><div class="ttname"><a href="namespaceuvw.html#ab60d2d4534e3369bc372c47843f9d4b9">uvw::StdERR</a></div><div class="ttdeci">constexpr FileHandle StdERR</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00196">util.h:196</a></div></div>
|
||
<div class="ttc" id="astructuvw_1_1UtsName_html_a760372654deba31614051e0278177fa4"><div class="ttname"><a href="structuvw_1_1UtsName.html#a760372654deba31614051e0278177fa4">uvw::UtsName::sysname</a></div><div class="ttdeci">std::string sysname() const noexcept</div><div class="ttdoc">Gets the operating system name (like "Linux").</div></div>
|
||
<div class="ttc" id="astructuvw_1_1InterfaceAddress_html_a5dc17416f46b0e5e5255404c5858c85e"><div class="ttname"><a href="structuvw_1_1InterfaceAddress.html#a5dc17416f46b0e5e5255404c5858c85e">uvw::InterfaceAddress::address</a></div><div class="ttdeci">Addr address</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00353">util.h:353</a></div></div>
|
||
<div class="ttc" id="astructuvw_1_1CPUInfo_html"><div class="ttname"><a href="structuvw_1_1CPUInfo.html">uvw::CPUInfo</a></div><div class="ttdoc">CPU information.</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00330">util.h:330</a></div></div>
|
||
<div class="ttc" id="anamespaceuvw_html_ad4b1016f485b28ad7dfd320a593b152b"><div class="ttname"><a href="namespaceuvw.html#ad4b1016f485b28ad7dfd320a593b152b">uvw::OSFileDescriptor</a></div><div class="ttdeci">details::UVTypeWrapper< uv_os_fd_t > OSFileDescriptor</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00191">util.h:191</a></div></div>
|
||
<div class="ttc" id="anamespaceuvw_html_a07d54a7bee71b802435fac9ce4ec3b41"><div class="ttname"><a href="namespaceuvw.html#a07d54a7bee71b802435fac9ce4ec3b41">uvw::Statfs</a></div><div class="ttdeci">uv_statfs_t Statfs</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00200">util.h:200</a></div></div>
|
||
<div class="ttc" id="astructuvw_1_1Utilities_html_afd89c84fce9a9cdb4d9dcd885fa8f3fc"><div class="ttname"><a href="structuvw_1_1Utilities.html#afd89c84fce9a9cdb4d9dcd885fa8f3fc">uvw::Utilities::hrtime</a></div><div class="ttdeci">static uint64_t hrtime() noexcept</div><div class="ttdoc">Gets the current high-resolution real time.</div></div>
|
||
<div class="ttc" id="astructuvw_1_1Utilities_html_ae7e6b1b44125ea2cf529a8d88d135fa4"><div class="ttname"><a href="structuvw_1_1Utilities.html#ae7e6b1b44125ea2cf529a8d88d135fa4">uvw::Utilities::setupArgs</a></div><div class="ttdeci">static char ** setupArgs(int argc, char **argv)</div><div class="ttdoc">Store the program arguments.</div></div>
|
||
<div class="ttc" id="astructuvw_1_1CPUInfo_html_a85d9d0dbf6d941f5c8cd3bbe0452a466"><div class="ttname"><a href="structuvw_1_1CPUInfo.html#a85d9d0dbf6d941f5c8cd3bbe0452a466">uvw::CPUInfo::speed</a></div><div class="ttdeci">int speed</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00334">util.h:334</a></div></div>
|
||
<div class="ttc" id="astructuvw_1_1Utilities_html_a93c08c9616de565c4b34d7f580f94fb8"><div class="ttname"><a href="structuvw_1_1Utilities.html#a93c08c9616de565c4b34d7f580f94fb8">uvw::Utilities::path</a></div><div class="ttdeci">static std::string path() noexcept</div><div class="ttdoc">Gets the executable path.</div></div>
|
||
<div class="ttc" id="astructuvw_1_1IPv4_html"><div class="ttname"><a href="structuvw_1_1IPv4.html">uvw::IPv4</a></div><div class="ttdoc">The IPv4 tag.</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00307">util.h:307</a></div></div>
|
||
<div class="ttc" id="astructuvw_1_1Utilities_1_1OS_html_a1550cb8ea2a033653b89830911acd246"><div class="ttname"><a href="structuvw_1_1Utilities_1_1OS.html#a1550cb8ea2a033653b89830911acd246">uvw::Utilities::OS::uname</a></div><div class="ttdeci">static UtsName uname() noexcept</div><div class="ttdoc">Gets name and information about the current kernel.</div></div>
|
||
<div class="ttc" id="astructuvw_1_1Utilities_html"><div class="ttname"><a href="structuvw_1_1Utilities.html">uvw::Utilities</a></div><div class="ttdoc">Miscellaneous utilities.</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00453">util.h:453</a></div></div>
|
||
<div class="ttc" id="astructuvw_1_1Utilities_html_a9fc20cb272b9302a631535034e6b2999"><div class="ttname"><a href="structuvw_1_1Utilities.html#a9fc20cb272b9302a631535034e6b2999">uvw::Utilities::cpuInfo</a></div><div class="ttdeci">static std::vector< CPUInfo > cpuInfo() noexcept</div><div class="ttdoc">Gets information about the CPUs on the system.</div></div>
|
||
<div class="ttc" id="aclassuvw_1_1Flags_html_a46803acc3e3c66e3ca85de90f1d87c67"><div class="ttname"><a href="classuvw_1_1Flags.html#a46803acc3e3c66e3ca85de90f1d87c67">uvw::Flags::operator|</a></div><div class="ttdeci">constexpr Flags operator|(const Flags &f) const noexcept</div><div class="ttdoc">Or operator.</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00137">util.h:137</a></div></div>
|
||
<div class="ttc" id="astructuvw_1_1Addr_html_a398a3805b87c8c2b64baf94cdc586fef"><div class="ttname"><a href="structuvw_1_1Addr.html#a398a3805b87c8c2b64baf94cdc586fef">uvw::Addr::ip</a></div><div class="ttdeci">std::string ip</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00322">util.h:322</a></div></div>
|
||
<div class="ttc" id="astructuvw_1_1Utilities_1_1OS_html_a2145593521219f0184522ea6b7b6d790"><div class="ttname"><a href="structuvw_1_1Utilities_1_1OS.html#a2145593521219f0184522ea6b7b6d790">uvw::Utilities::OS::parent</a></div><div class="ttdeci">static PidType parent() noexcept</div><div class="ttdoc">Returns the parent process id.</div></div>
|
||
<div class="ttc" id="astructuvw_1_1WinSize_html_a3a3bdb2c69635beaa384d7259b26cd80"><div class="ttname"><a href="structuvw_1_1WinSize.html#a3a3bdb2c69635beaa384d7259b26cd80">uvw::WinSize::height</a></div><div class="ttdeci">int height</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00182">util.h:182</a></div></div>
|
||
<div class="ttc" id="aclassuvw_1_1Flags_html"><div class="ttname"><a href="classuvw_1_1Flags.html">uvw::Flags</a></div><div class="ttdoc">Utility class to handle flags.</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00082">util.h:82</a></div></div>
|
||
<div class="ttc" id="anamespaceuvw_html_aa3ae4a038de60a69b2513a039add1e48"><div class="ttname"><a href="namespaceuvw.html#aa3ae4a038de60a69b2513a039add1e48">uvw::HandleCategory</a></div><div class="ttdeci">details::UVTypeWrapper< uv_handle_type > HandleCategory</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00188">util.h:188</a></div></div>
|
||
<div class="ttc" id="aclassuvw_1_1Flags_html_afc2eae3a5233ac37f1470dc30eb54919"><div class="ttname"><a href="classuvw_1_1Flags.html#afc2eae3a5233ac37f1470dc30eb54919">uvw::Flags::operator&</a></div><div class="ttdeci">constexpr Flags operator&(E flag) const noexcept</div><div class="ttdoc">And operator.</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00158">util.h:158</a></div></div>
|
||
<div class="ttc" id="aclassuvw_1_1Flags_html_a6969afc42416c957a9b17ac8bf64addd"><div class="ttname"><a href="classuvw_1_1Flags.html#a6969afc42416c957a9b17ac8bf64addd">uvw::Flags::operator|</a></div><div class="ttdeci">constexpr Flags operator|(E flag) const noexcept</div><div class="ttdoc">Or operator.</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00144">util.h:144</a></div></div>
|
||
<div class="ttc" id="astructuvw_1_1InterfaceAddress_html_ae49c9d7b92ed40cfdf61d846e20eaefa"><div class="ttname"><a href="structuvw_1_1InterfaceAddress.html#ae49c9d7b92ed40cfdf61d846e20eaefa">uvw::InterfaceAddress::netmask</a></div><div class="ttdeci">Addr netmask</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00354">util.h:354</a></div></div>
|
||
<div class="ttc" id="astructuvw_1_1Passwd_html_a8e5ebc93fbc036d8cd559ef6a80447ba"><div class="ttname"><a href="structuvw_1_1Passwd.html#a8e5ebc93fbc036d8cd559ef6a80447ba">uvw::Passwd::gid</a></div><div class="ttdeci">decltype(uv_passwd_t::gid) gid() const noexcept</div><div class="ttdoc">Gets the gid.</div></div>
|
||
<div class="ttc" id="astructuvw_1_1UtsName_html_a22cd76f23cd9a67dfc8be6098c9e3368"><div class="ttname"><a href="structuvw_1_1UtsName.html#a22cd76f23cd9a67dfc8be6098c9e3368">uvw::UtsName::version</a></div><div class="ttdeci">std::string version() const noexcept</div><div class="ttdoc">Gets the operating system version.</div></div>
|
||
<div class="ttc" id="astructuvw_1_1Addr_html"><div class="ttname"><a href="structuvw_1_1Addr.html">uvw::Addr</a></div><div class="ttdoc">Address representation.</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00321">util.h:321</a></div></div>
|
||
<div class="ttc" id="anamespaceuvw_html_ae7c2e4a87f2213a9509f99e3149c3e65"><div class="ttname"><a href="namespaceuvw.html#ae7c2e4a87f2213a9509f99e3149c3e65">uvw::TimeVal64</a></div><div class="ttdeci">uv_timeval64_t TimeVal64</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00205">util.h:205</a></div></div>
|
||
<div class="ttc" id="anamespaceuvw_html_a96e64f11b96529c3a65d5b22cc56cdf0"><div class="ttname"><a href="namespaceuvw.html#a96e64f11b96529c3a65d5b22cc56cdf0">uvw::StdOUT</a></div><div class="ttdeci">constexpr FileHandle StdOUT</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00195">util.h:195</a></div></div>
|
||
<div class="ttc" id="astructuvw_1_1Utilities_html_a08d83152d4f1baaf56802b26e9881508"><div class="ttname"><a href="structuvw_1_1Utilities.html#a08d83152d4f1baaf56802b26e9881508">uvw::Utilities::processTitle</a></div><div class="ttdeci">static std::string processTitle()</div><div class="ttdoc">Gets the title of the current process.</div></div>
|
||
<div class="ttc" id="astructuvw_1_1Utilities_html_ae2b405d1b5d8de4bbb3e9a2707b9ec3a"><div class="ttname"><a href="structuvw_1_1Utilities.html#ae2b405d1b5d8de4bbb3e9a2707b9ec3a">uvw::Utilities::uptime</a></div><div class="ttdeci">static double uptime() noexcept</div><div class="ttdoc">Gets the current system uptime.</div></div>
|
||
<div class="ttc" id="anamespaceuvw_html_a02b7ef3b5a65b0bec1602ef434806a27"><div class="ttname"><a href="namespaceuvw.html#a02b7ef3b5a65b0bec1602ef434806a27">uvw::FileHandle</a></div><div class="ttdeci">details::UVTypeWrapper< uv_file > FileHandle</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00189">util.h:189</a></div></div>
|
||
<div class="ttc" id="astructuvw_1_1Utilities_html_a2a05286add192e595f5d7d5d3db682fb"><div class="ttname"><a href="structuvw_1_1Utilities.html#a2a05286add192e595f5d7d5d3db682fb">uvw::Utilities::guessHandle</a></div><div class="ttdeci">static HandleType guessHandle(HandleCategory category) noexcept</div><div class="ttdoc">Gets the type of the handle given a category.</div></div>
|
||
<div class="ttc" id="astructuvw_1_1CPUInfo_html_a83982b37fbb833b690f7d4a8de7e162c"><div class="ttname"><a href="structuvw_1_1CPUInfo.html#a83982b37fbb833b690f7d4a8de7e162c">uvw::CPUInfo::model</a></div><div class="ttdeci">std::string model</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00333">util.h:333</a></div></div>
|
||
<div class="ttc" id="astructuvw_1_1Passwd_html"><div class="ttname"><a href="structuvw_1_1Passwd.html">uvw::Passwd</a></div><div class="ttdoc">Utility class.</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00217">util.h:217</a></div></div>
|
||
<div class="ttc" id="aclassuvw_1_1Flags_html_af2989a7bce87fa62ed5c05c6eed724cf"><div class="ttname"><a href="classuvw_1_1Flags.html#af2989a7bce87fa62ed5c05c6eed724cf">uvw::Flags::Flags</a></div><div class="ttdeci">constexpr Flags(E flag) noexcept</div><div class="ttdoc">Constructs a Flags object from a value of the enum E.</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00103">util.h:103</a></div></div>
|
||
<div class="ttc" id="anamespaceuvw_html_a2df38e5bba10fc959ef37074cf580097"><div class="ttname"><a href="namespaceuvw.html#a2df38e5bba10fc959ef37074cf580097">uvw::OSSocketHandle</a></div><div class="ttdeci">details::UVTypeWrapper< uv_os_sock_t > OSSocketHandle</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00190">util.h:190</a></div></div>
|
||
<div class="ttc" id="astructuvw_1_1Utilities_1_1OS_html_a3bdfdaceed79abba7c456e761702ce31"><div class="ttname"><a href="structuvw_1_1Utilities_1_1OS.html#a3bdfdaceed79abba7c456e761702ce31">uvw::Utilities::OS::hostname</a></div><div class="ttdeci">static std::string hostname() noexcept</div><div class="ttdoc">Returns the hostname.</div></div>
|
||
<div class="ttc" id="astructuvw_1_1Utilities_html_a1fabc7507a23df71a3baf0894be8ee65"><div class="ttname"><a href="structuvw_1_1Utilities.html#a1fabc7507a23df71a3baf0894be8ee65">uvw::Utilities::chdir</a></div><div class="ttdeci">static bool chdir(const std::string &dir) noexcept</div><div class="ttdoc">Changes the current working directory.</div></div>
|
||
<div class="ttc" id="astructuvw_1_1Utilities_1_1OS_html"><div class="ttname"><a href="structuvw_1_1Utilities_1_1OS.html">uvw::Utilities::OS</a></div><div class="ttdoc">OS dedicated utilities.</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00462">util.h:462</a></div></div>
|
||
<div class="ttc" id="astructuvw_1_1Utilities_html_ac0f1805b8adf93066a8c4df190f5c6a2"><div class="ttname"><a href="structuvw_1_1Utilities.html#ac0f1805b8adf93066a8c4df190f5c6a2">uvw::Utilities::cwd</a></div><div class="ttdeci">static std::string cwd() noexcept</div><div class="ttdoc">Gets the current working directory.</div></div>
|
||
<div class="ttc" id="astructuvw_1_1Utilities_html_acd553ee275a0e28a10250fcb2f6b993a"><div class="ttname"><a href="structuvw_1_1Utilities.html#acd553ee275a0e28a10250fcb2f6b993a">uvw::Utilities::totalMemory</a></div><div class="ttdeci">static uint64_t totalMemory() noexcept</div><div class="ttdoc">Gets memory information (in bytes).</div></div>
|
||
<div class="ttc" id="astructuvw_1_1CPUInfo_html_a821240a35b1bda6b7085362f6cbc14ea"><div class="ttname"><a href="structuvw_1_1CPUInfo.html#a821240a35b1bda6b7085362f6cbc14ea">uvw::CPUInfo::times</a></div><div class="ttdeci">CPUTime times</div><div class="ttdoc">CPU times.</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00342">util.h:342</a></div></div>
|
||
<div class="ttc" id="astructuvw_1_1Passwd_html_ac8dd15961556c4bc375a579a84d37948"><div class="ttname"><a href="structuvw_1_1Passwd.html#ac8dd15961556c4bc375a579a84d37948">uvw::Passwd::uid</a></div><div class="ttdeci">decltype(uv_passwd_t::uid) uid() const noexcept</div><div class="ttdoc">Gets the uid.</div></div>
|
||
<div class="ttc" id="astructuvw_1_1UtsName_html_a9d5308ac9eb875fc68c1f5fcb9a4465d"><div class="ttname"><a href="structuvw_1_1UtsName.html#a9d5308ac9eb875fc68c1f5fcb9a4465d">uvw::UtsName::release</a></div><div class="ttdeci">std::string release() const noexcept</div><div class="ttdoc">Gets the operating system release (like "2.6.28").</div></div>
|
||
<div class="ttc" id="anamespaceuvw_html_a54075b41a774f40d65861b0d97068c17"><div class="ttname"><a href="namespaceuvw.html#a54075b41a774f40d65861b0d97068c17">uvw::TimeSpec</a></div><div class="ttdeci">uv_timespec_t TimeSpec</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00198">util.h:198</a></div></div>
|
||
<div class="ttc" id="anamespaceuvw_html_a01d13fc4b5d1b58c936fdbf15c4d0a10"><div class="ttname"><a href="namespaceuvw.html#a01d13fc4b5d1b58c936fdbf15c4d0a10">uvw::Uid</a></div><div class="ttdeci">uv_uid_t Uid</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00201">util.h:201</a></div></div>
|
||
<div class="ttc" id="astructuvw_1_1Utilities_html_a7ac9418167cafe920c1cac353216d47c"><div class="ttname"><a href="structuvw_1_1Utilities.html#a7ac9418167cafe920c1cac353216d47c">uvw::Utilities::constrainedMemory</a></div><div class="ttdeci">static uint64_t constrainedMemory() noexcept</div><div class="ttdoc">Gets the amount of memory available to the process (in bytes).</div></div>
|
||
<div class="ttc" id="anamespaceuvw_html_aad24ed8fb712caa655da6e3d7cb95bdd"><div class="ttname"><a href="namespaceuvw.html#aad24ed8fb712caa655da6e3d7cb95bdd">uvw::PidType</a></div><div class="ttdeci">details::UVTypeWrapper< uv_pid_t > PidType</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00192">util.h:192</a></div></div>
|
||
<div class="ttc" id="astructuvw_1_1IPv6_html"><div class="ttname"><a href="structuvw_1_1IPv6.html">uvw::IPv6</a></div><div class="ttdoc">The IPv6 tag.</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00315">util.h:315</a></div></div>
|
||
<div class="ttc" id="astructuvw_1_1UtsName_html"><div class="ttname"><a href="structuvw_1_1UtsName.html">uvw::UtsName</a></div><div class="ttdoc">Utility class.</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00270">util.h:270</a></div></div>
|
||
<div class="ttc" id="astructuvw_1_1Passwd_html_ad817256d676d8de38eaa89ff6f8d5620"><div class="ttname"><a href="structuvw_1_1Passwd.html#ad817256d676d8de38eaa89ff6f8d5620">uvw::Passwd::shell</a></div><div class="ttdeci">std::string shell() const noexcept</div><div class="ttdoc">Gets the shell.</div></div>
|
||
<div class="ttc" id="astructuvw_1_1InterfaceAddress_html_abfec6ae9914c03ef90f9d08c0c82759e"><div class="ttname"><a href="structuvw_1_1InterfaceAddress.html#abfec6ae9914c03ef90f9d08c0c82759e">uvw::InterfaceAddress::name</a></div><div class="ttdeci">std::string name</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00350">util.h:350</a></div></div>
|
||
<!-- start footer part -->
|
||
<hr class="footer"/><address class="footer"><small>
|
||
Generated by  <a href="http://www.doxygen.org/index.html">
|
||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||
</a> 1.8.17
|
||
</small></address>
|
||
</body>
|
||
</html>
|