uvw/fs_8hpp_source.html
2019-03-21 14:15:29 +01:00

175 lines
150 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://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.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>uvw: src/uvw/fs.hpp 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
&#160;<span id="projectnumber">1.15.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
</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">fs.hpp</div> </div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;</div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &lt;utility&gt;</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="preprocessor">#include &lt;memory&gt;</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &lt;string&gt;</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor">#include &lt;chrono&gt;</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor">#include &lt;uv.h&gt;</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor">#include &quot;request.hpp&quot;</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="preprocessor">#include &quot;util.hpp&quot;</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="preprocessor">#include &quot;loop.hpp&quot;</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceuvw.html">uvw</a> {</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="keyword">namespace </span>details {</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="keyword">enum class</span> UVFsType: std::underlying_type_t&lt;uv_fs_type&gt; {</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; UNKNOWN = UV_FS_UNKNOWN,</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; CUSTOM = UV_FS_CUSTOM,</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; OPEN = UV_FS_OPEN,</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; CLOSE = UV_FS_CLOSE,</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; READ = UV_FS_READ,</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; WRITE = UV_FS_WRITE,</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; SENDFILE = UV_FS_SENDFILE,</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; STAT = UV_FS_STAT,</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; LSTAT = UV_FS_LSTAT,</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; FSTAT = UV_FS_FSTAT,</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; FTRUNCATE = UV_FS_FTRUNCATE,</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; UTIME = UV_FS_UTIME,</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; FUTIME = UV_FS_FUTIME,</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; ACCESS = UV_FS_ACCESS,</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; CHMOD = UV_FS_CHMOD,</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; FCHMOD = UV_FS_FCHMOD,</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; FSYNC = UV_FS_FSYNC,</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; FDATASYNC = UV_FS_FDATASYNC,</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; UNLINK = UV_FS_UNLINK,</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; RMDIR = UV_FS_RMDIR,</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; MKDIR = UV_FS_MKDIR,</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; MKDTEMP = UV_FS_MKDTEMP,</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; RENAME = UV_FS_RENAME,</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; SCANDIR = UV_FS_SCANDIR,</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; LINK = UV_FS_LINK,</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; SYMLINK = UV_FS_SYMLINK,</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; READLINK = UV_FS_READLINK,</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; CHOWN = UV_FS_CHOWN,</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; FCHOWN = UV_FS_FCHOWN,</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; REALPATH = UV_FS_REALPATH,</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; COPYFILE = UV_FS_COPYFILE,</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; LCHOWN = UV_FS_LCHOWN</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;};</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="keyword">enum class</span> UVDirentTypeT: std::underlying_type_t&lt;uv_dirent_type_t&gt; {</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; UNKNOWN = UV_DIRENT_UNKNOWN,</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; FILE = UV_DIRENT_FILE,</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; DIR = UV_DIRENT_DIR,</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; LINK = UV_DIRENT_LINK,</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; FIFO = UV_DIRENT_FIFO,</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; SOCKET = UV_DIRENT_SOCKET,</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; CHAR = UV_DIRENT_CHAR,</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; BLOCK = UV_DIRENT_BLOCK</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;};</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="keyword">enum class</span> UVFileOpenFlags: int {</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; APPEND = UV_FS_O_APPEND,</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; CREAT = UV_FS_O_CREAT,</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; DIRECT = UV_FS_O_DIRECT,</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; DIRECTORY = UV_FS_O_DIRECTORY,</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; DSYNC = UV_FS_O_DSYNC,</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; EXCL = UV_FS_O_EXCL,</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; EXLOCK = UV_FS_O_EXLOCK,</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; NOATIME = UV_FS_O_NOATIME,</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; NOCTTY = UV_FS_O_NOCTTY,</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; NOFOLLOW = UV_FS_O_NOFOLLOW,</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; NONBLOCK = UV_FS_O_NONBLOCK,</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; RANDOM = UV_FS_O_RANDOM,</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; RDONLY = UV_FS_O_RDONLY,</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; RDWR = UV_FS_O_RDWR,</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; SEQUENTIAL = UV_FS_O_SEQUENTIAL,</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; SHORT_LIVED = UV_FS_O_SHORT_LIVED,</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; SYMLINK = UV_FS_O_SYMLINK,</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; SYNC = UV_FS_O_SYNC,</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; TEMPORARY = UV_FS_O_TEMPORARY,</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; TRUNC = UV_FS_O_TRUNC,</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; WRONLY = UV_FS_O_WRONLY</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;};</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;<span class="keyword">enum class</span> UVCopyFileFlags: int {</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; EXCL = UV_FS_COPYFILE_EXCL,</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; FICLONE = UV_FS_COPYFILE_FICLONE,</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; FICLONE_FORCE = UV_FS_COPYFILE_FICLONE_FORCE</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;};</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;<span class="keyword">enum class</span> UVSymLinkFlags: int {</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; DIR = UV_FS_SYMLINK_DIR,</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; JUNCTION = UV_FS_SYMLINK_JUNCTION</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;};</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;}</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;<span class="keyword">template</span>&lt;details::UVFsType e&gt;</div><div class="line"><a name="l00155"></a><span class="lineno"><a class="line" href="structuvw_1_1FsEvent.html"> 155</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structuvw_1_1FsEvent.html">FsEvent</a> {</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <a class="code" href="structuvw_1_1FsEvent.html">FsEvent</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *pathname) noexcept: path{pathname} {}</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;</div><div class="line"><a name="l00158"></a><span class="lineno"><a class="line" href="structuvw_1_1FsEvent.html#a66085f0f9c89f398449180debf3a12d3"> 158</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span> * <a class="code" href="structuvw_1_1FsEvent.html#a66085f0f9c89f398449180debf3a12d3">path</a>; </div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;};</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;<span class="keyword">template</span>&lt;&gt;</div><div class="line"><a name="l00169"></a><span class="lineno"><a class="line" href="structuvw_1_1FsEvent_3_01details_1_1UVFsType_1_1READ_01_4.html"> 169</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structuvw_1_1FsEvent.html">FsEvent</a>&lt;details::UVFsType::READ&gt; {</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <a class="code" href="structuvw_1_1FsEvent.html">FsEvent</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *pathname, std::unique_ptr&lt;<span class="keyword">const</span> <span class="keywordtype">char</span>[]&gt; buf, std::size_t sz) noexcept</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; : path{pathname}, data{std::move(buf)}, size{sz}</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; {}</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;</div><div class="line"><a name="l00174"></a><span class="lineno"><a class="line" href="structuvw_1_1FsEvent_3_01details_1_1UVFsType_1_1READ_01_4.html#a7e58b2f3aa466332198e3c5c056505b1"> 174</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span> * <a class="code" href="structuvw_1_1FsEvent_3_01details_1_1UVFsType_1_1READ_01_4.html#a7e58b2f3aa466332198e3c5c056505b1">path</a>; </div><div class="line"><a name="l00175"></a><span class="lineno"><a class="line" href="structuvw_1_1FsEvent_3_01details_1_1UVFsType_1_1READ_01_4.html#a8188253040c4dd689df2b38721bf4862"> 175</a></span>&#160; std::unique_ptr&lt;const char[]&gt; <a class="code" href="structuvw_1_1FsEvent_3_01details_1_1UVFsType_1_1READ_01_4.html#a8188253040c4dd689df2b38721bf4862">data</a>; </div><div class="line"><a name="l00176"></a><span class="lineno"><a class="line" href="structuvw_1_1FsEvent_3_01details_1_1UVFsType_1_1READ_01_4.html#a3299d4a34ad076abe7c09b374e1322f9"> 176</a></span>&#160; std::size_t <a class="code" href="structuvw_1_1FsEvent_3_01details_1_1UVFsType_1_1READ_01_4.html#a3299d4a34ad076abe7c09b374e1322f9">size</a>; </div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;};</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;<span class="keyword">template</span>&lt;&gt;</div><div class="line"><a name="l00187"></a><span class="lineno"><a class="line" href="structuvw_1_1FsEvent_3_01details_1_1UVFsType_1_1WRITE_01_4.html"> 187</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structuvw_1_1FsEvent.html">FsEvent</a>&lt;details::UVFsType::WRITE&gt; {</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <a class="code" href="structuvw_1_1FsEvent.html">FsEvent</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *pathname, std::size_t sz) noexcept</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; : path{pathname}, size{sz}</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; {}</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;</div><div class="line"><a name="l00192"></a><span class="lineno"><a class="line" href="structuvw_1_1FsEvent_3_01details_1_1UVFsType_1_1WRITE_01_4.html#acf99a86ae60e6aae7f7088bddeeb932f"> 192</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span> * <a class="code" href="structuvw_1_1FsEvent_3_01details_1_1UVFsType_1_1WRITE_01_4.html#acf99a86ae60e6aae7f7088bddeeb932f">path</a>; </div><div class="line"><a name="l00193"></a><span class="lineno"><a class="line" href="structuvw_1_1FsEvent_3_01details_1_1UVFsType_1_1WRITE_01_4.html#ac701c23c5947d7336684282146414be5"> 193</a></span>&#160; std::size_t <a class="code" href="structuvw_1_1FsEvent_3_01details_1_1UVFsType_1_1WRITE_01_4.html#ac701c23c5947d7336684282146414be5">size</a>; </div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;};</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;<span class="keyword">template</span>&lt;&gt;</div><div class="line"><a name="l00204"></a><span class="lineno"><a class="line" href="structuvw_1_1FsEvent_3_01details_1_1UVFsType_1_1SENDFILE_01_4.html"> 204</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structuvw_1_1FsEvent.html">FsEvent</a>&lt;details::UVFsType::SENDFILE&gt; {</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <a class="code" href="structuvw_1_1FsEvent.html">FsEvent</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *pathname, std::size_t sz) noexcept</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; : path{pathname}, size{sz}</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; {}</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;</div><div class="line"><a name="l00209"></a><span class="lineno"><a class="line" href="structuvw_1_1FsEvent_3_01details_1_1UVFsType_1_1SENDFILE_01_4.html#a3517ca470723a8d4f4a8e5d82eff0e5f"> 209</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span> * <a class="code" href="structuvw_1_1FsEvent_3_01details_1_1UVFsType_1_1SENDFILE_01_4.html#a3517ca470723a8d4f4a8e5d82eff0e5f">path</a>; </div><div class="line"><a name="l00210"></a><span class="lineno"><a class="line" href="structuvw_1_1FsEvent_3_01details_1_1UVFsType_1_1SENDFILE_01_4.html#ad415182ea71f836fae67d7c297c327d2"> 210</a></span>&#160; std::size_t <a class="code" href="structuvw_1_1FsEvent_3_01details_1_1UVFsType_1_1SENDFILE_01_4.html#ad415182ea71f836fae67d7c297c327d2">size</a>; </div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;};</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;<span class="keyword">template</span>&lt;&gt;</div><div class="line"><a name="l00221"></a><span class="lineno"><a class="line" href="structuvw_1_1FsEvent_3_01details_1_1UVFsType_1_1STAT_01_4.html"> 221</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structuvw_1_1FsEvent.html">FsEvent</a>&lt;details::UVFsType::STAT&gt; {</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <a class="code" href="structuvw_1_1FsEvent.html">FsEvent</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *pathname, <a class="code" href="namespaceuvw.html#ad3e2552cab7a68ba72e447f7656f01d7">Stat</a> curr) noexcept</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; : path{pathname}, stat{std::move(curr)}</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; {}</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;</div><div class="line"><a name="l00226"></a><span class="lineno"><a class="line" href="structuvw_1_1FsEvent_3_01details_1_1UVFsType_1_1STAT_01_4.html#aa34306b4cb02342d72376663f7f833e5"> 226</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span> * <a class="code" href="structuvw_1_1FsEvent_3_01details_1_1UVFsType_1_1STAT_01_4.html#aa34306b4cb02342d72376663f7f833e5">path</a>; </div><div class="line"><a name="l00227"></a><span class="lineno"><a class="line" href="structuvw_1_1FsEvent_3_01details_1_1UVFsType_1_1STAT_01_4.html#afc138cecd612b3a24c717b8603102d20"> 227</a></span>&#160; <a class="code" href="namespaceuvw.html#ad3e2552cab7a68ba72e447f7656f01d7">Stat</a> <a class="code" href="structuvw_1_1FsEvent_3_01details_1_1UVFsType_1_1STAT_01_4.html#afc138cecd612b3a24c717b8603102d20">stat</a>; </div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;};</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;<span class="keyword">template</span>&lt;&gt;</div><div class="line"><a name="l00238"></a><span class="lineno"><a class="line" href="structuvw_1_1FsEvent_3_01details_1_1UVFsType_1_1FSTAT_01_4.html"> 238</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structuvw_1_1FsEvent.html">FsEvent</a>&lt;details::UVFsType::FSTAT&gt; {</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <a class="code" href="structuvw_1_1FsEvent.html">FsEvent</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *pathname, <a class="code" href="namespaceuvw.html#ad3e2552cab7a68ba72e447f7656f01d7">Stat</a> curr) noexcept</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; : path{pathname}, stat{std::move(curr)}</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; {}</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;</div><div class="line"><a name="l00243"></a><span class="lineno"><a class="line" href="structuvw_1_1FsEvent_3_01details_1_1UVFsType_1_1FSTAT_01_4.html#a9b1de3c8ba2c450694d13cbfda22bf75"> 243</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span> * <a class="code" href="structuvw_1_1FsEvent_3_01details_1_1UVFsType_1_1FSTAT_01_4.html#a9b1de3c8ba2c450694d13cbfda22bf75">path</a>; </div><div class="line"><a name="l00244"></a><span class="lineno"><a class="line" href="structuvw_1_1FsEvent_3_01details_1_1UVFsType_1_1FSTAT_01_4.html#abf3ace261d7781a528dbedc39b7971a4"> 244</a></span>&#160; <a class="code" href="namespaceuvw.html#ad3e2552cab7a68ba72e447f7656f01d7">Stat</a> <a class="code" href="structuvw_1_1FsEvent_3_01details_1_1UVFsType_1_1FSTAT_01_4.html#abf3ace261d7781a528dbedc39b7971a4">stat</a>; </div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;};</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;<span class="keyword">template</span>&lt;&gt;</div><div class="line"><a name="l00255"></a><span class="lineno"><a class="line" href="structuvw_1_1FsEvent_3_01details_1_1UVFsType_1_1LSTAT_01_4.html"> 255</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structuvw_1_1FsEvent.html">FsEvent</a>&lt;details::UVFsType::LSTAT&gt; {</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <a class="code" href="structuvw_1_1FsEvent.html">FsEvent</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *pathname, <a class="code" href="namespaceuvw.html#ad3e2552cab7a68ba72e447f7656f01d7">Stat</a> curr) noexcept</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; : path{pathname}, stat{std::move(curr)}</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; {}</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;</div><div class="line"><a name="l00260"></a><span class="lineno"><a class="line" href="structuvw_1_1FsEvent_3_01details_1_1UVFsType_1_1LSTAT_01_4.html#a1f7410e088c02e2dd1f420e8e8876845"> 260</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span> * <a class="code" href="structuvw_1_1FsEvent_3_01details_1_1UVFsType_1_1LSTAT_01_4.html#a1f7410e088c02e2dd1f420e8e8876845">path</a>; </div><div class="line"><a name="l00261"></a><span class="lineno"><a class="line" href="structuvw_1_1FsEvent_3_01details_1_1UVFsType_1_1LSTAT_01_4.html#aacd6afbcf30d80e234cf7c73651b2398"> 261</a></span>&#160; <a class="code" href="namespaceuvw.html#ad3e2552cab7a68ba72e447f7656f01d7">Stat</a> <a class="code" href="structuvw_1_1FsEvent_3_01details_1_1UVFsType_1_1LSTAT_01_4.html#aacd6afbcf30d80e234cf7c73651b2398">stat</a>; </div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;};</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;<span class="keyword">template</span>&lt;&gt;</div><div class="line"><a name="l00272"></a><span class="lineno"><a class="line" href="structuvw_1_1FsEvent_3_01details_1_1UVFsType_1_1SCANDIR_01_4.html"> 272</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structuvw_1_1FsEvent.html">FsEvent</a>&lt;details::UVFsType::SCANDIR&gt; {</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <a class="code" href="structuvw_1_1FsEvent.html">FsEvent</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *pathname, std::size_t sz) noexcept</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; : path{pathname}, size{sz}</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; {}</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;</div><div class="line"><a name="l00277"></a><span class="lineno"><a class="line" href="structuvw_1_1FsEvent_3_01details_1_1UVFsType_1_1SCANDIR_01_4.html#a64307b81aaa9d5c334199e15d26f09d5"> 277</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span> * <a class="code" href="structuvw_1_1FsEvent_3_01details_1_1UVFsType_1_1SCANDIR_01_4.html#a64307b81aaa9d5c334199e15d26f09d5">path</a>; </div><div class="line"><a name="l00278"></a><span class="lineno"><a class="line" href="structuvw_1_1FsEvent_3_01details_1_1UVFsType_1_1SCANDIR_01_4.html#a33305f8800635c30f59accf5a53567ae"> 278</a></span>&#160; std::size_t <a class="code" href="structuvw_1_1FsEvent_3_01details_1_1UVFsType_1_1SCANDIR_01_4.html#a33305f8800635c30f59accf5a53567ae">size</a>; </div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;};</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;<span class="keyword">template</span>&lt;&gt;</div><div class="line"><a name="l00289"></a><span class="lineno"><a class="line" href="structuvw_1_1FsEvent_3_01details_1_1UVFsType_1_1READLINK_01_4.html"> 289</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structuvw_1_1FsEvent.html">FsEvent</a>&lt;details::UVFsType::READLINK&gt; {</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <span class="keyword">explicit</span> <a class="code" href="structuvw_1_1FsEvent.html">FsEvent</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *pathname, <span class="keyword">const</span> <span class="keywordtype">char</span> *buf, std::size_t sz) noexcept</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; : path{pathname}, data{buf}, size{sz}</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; {}</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;</div><div class="line"><a name="l00294"></a><span class="lineno"><a class="line" href="structuvw_1_1FsEvent_3_01details_1_1UVFsType_1_1READLINK_01_4.html#ab49e97c313edbe3d9aa9cae8c6ac89f1"> 294</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span> * <a class="code" href="structuvw_1_1FsEvent_3_01details_1_1UVFsType_1_1READLINK_01_4.html#ab49e97c313edbe3d9aa9cae8c6ac89f1">path</a>; </div><div class="line"><a name="l00295"></a><span class="lineno"><a class="line" href="structuvw_1_1FsEvent_3_01details_1_1UVFsType_1_1READLINK_01_4.html#a432df89b9a83e69e693a2f791015189a"> 295</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span> * <a class="code" href="structuvw_1_1FsEvent_3_01details_1_1UVFsType_1_1READLINK_01_4.html#a432df89b9a83e69e693a2f791015189a">data</a>; </div><div class="line"><a name="l00296"></a><span class="lineno"><a class="line" href="structuvw_1_1FsEvent_3_01details_1_1UVFsType_1_1READLINK_01_4.html#a615b71ef9075e468c5f771a68bc263a6"> 296</a></span>&#160; std::size_t <a class="code" href="structuvw_1_1FsEvent_3_01details_1_1UVFsType_1_1READLINK_01_4.html#a615b71ef9075e468c5f771a68bc263a6">size</a>; </div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160;};</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160;</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div><div class="line"><a name="l00306"></a><span class="lineno"><a class="line" href="classuvw_1_1FsRequest.html"> 306</a></span>&#160;<span class="keyword">class </span><a class="code" href="classuvw_1_1FsRequest.html">FsRequest</a>: <span class="keyword">public</span> Request&lt;T, uv_fs_t&gt; {</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; <span class="keyword">template</span>&lt;details::UVFsType e&gt;</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> fsGenericCallback(uv_fs_t *req) {</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <span class="keyword">auto</span> ptr = Request&lt;T, uv_fs_t&gt;::reserve(req);</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <span class="keywordflow">if</span>(req-&gt;result &lt; 0) { ptr-&gt;publish(<a class="code" href="structuvw_1_1ErrorEvent.html">ErrorEvent</a>{req-&gt;result}); }</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; <span class="keywordflow">else</span> { ptr-&gt;publish(<a class="code" href="structuvw_1_1FsEvent.html">FsEvent&lt;e&gt;</a>{req-&gt;<a class="code" href="structuvw_1_1FsEvent.html#a66085f0f9c89f398449180debf3a12d3">path</a>}); }</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; }</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160;</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <span class="keyword">template</span>&lt;details::UVFsType e&gt;</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> fsResultCallback(uv_fs_t *req) {</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; <span class="keyword">auto</span> ptr = Request&lt;T, uv_fs_t&gt;::reserve(req);</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; <span class="keywordflow">if</span>(req-&gt;result &lt; 0) { ptr-&gt;publish(<a class="code" href="structuvw_1_1ErrorEvent.html">ErrorEvent</a>{req-&gt;result}); }</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; <span class="keywordflow">else</span> { ptr-&gt;publish(<a class="code" href="structuvw_1_1FsEvent.html">FsEvent&lt;e&gt;</a>{req-&gt;<a class="code" href="structuvw_1_1FsEvent.html#a66085f0f9c89f398449180debf3a12d3">path</a>, <span class="keyword">static_cast&lt;</span>std::size_t<span class="keyword">&gt;</span>(req-&gt;result)}); }</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; }</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160;</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; <span class="keyword">template</span>&lt;details::UVFsType e&gt;</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> fsStatCallback(uv_fs_t *req) {</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; <span class="keyword">auto</span> ptr = Request&lt;T, uv_fs_t&gt;::reserve(req);</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; <span class="keywordflow">if</span>(req-&gt;result &lt; 0) { ptr-&gt;publish(<a class="code" href="structuvw_1_1ErrorEvent.html">ErrorEvent</a>{req-&gt;result}); }</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <span class="keywordflow">else</span> { ptr-&gt;publish(<a class="code" href="structuvw_1_1FsEvent.html">FsEvent&lt;e&gt;</a>{req-&gt;<a class="code" href="structuvw_1_1FsEvent.html#a66085f0f9c89f398449180debf3a12d3">path</a>, req-&gt;statbuf}); }</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; }</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span>... Args&gt;</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; <span class="keywordtype">void</span> cleanupAndInvoke(Args&amp;&amp;... args) {</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; uv_fs_req_cleanup(this-&gt;<span class="keyword">get</span>());</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; this-&gt;invoke(std::forward&lt;Args&gt;(args)...);</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; }</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160;</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> F, <span class="keyword">typename</span>... Args&gt;</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; <span class="keywordtype">void</span> cleanupAndInvokeSync(F &amp;&amp;f, Args&amp;&amp;... args) {</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; uv_fs_req_cleanup(this-&gt;<span class="keyword">get</span>());</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; std::forward&lt;F&gt;(f)(std::forward&lt;Args&gt;(args)..., <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; }</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160;</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; <span class="keyword">using</span> Time = std::chrono::duration&lt;double&gt;;</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; <span class="keyword">using</span> Type = details::UVFsType;</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; <span class="keyword">using</span> EntryType = details::UVDirentTypeT;</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; <span class="keyword">using</span> Entry = std::pair&lt;EntryType, std::string&gt;;</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160;</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; <span class="keyword">using</span> Request&lt;T, uv_fs_t&gt;::Request;</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160;};</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160;</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160;</div><div class="line"><a name="l00363"></a><span class="lineno"><a class="line" href="classuvw_1_1FileReq.html"> 363</a></span>&#160;<span class="keyword">class </span><a class="code" href="classuvw_1_1FileReq.html">FileReq</a> final: <span class="keyword">public</span> <a class="code" href="classuvw_1_1FsRequest.html">FsRequest</a>&lt;FileReq&gt; {</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; <span class="keyword">static</span> constexpr uv_file BAD_FD = -1;</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160;</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> fsOpenCallback(uv_fs_t *req) {</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; <span class="keyword">auto</span> ptr = reserve(req);</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160;</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; <span class="keywordflow">if</span>(req-&gt;result &lt; 0) {</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; ptr-&gt;publish(<a class="code" href="structuvw_1_1ErrorEvent.html">ErrorEvent</a>{req-&gt;result});</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; ptr-&gt;file = <span class="keyword">static_cast&lt;</span>uv_file<span class="keyword">&gt;</span>(req-&gt;result);</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; ptr-&gt;publish(<a class="code" href="structuvw_1_1FsEvent.html">FsEvent&lt;Type::OPEN&gt;</a>{req-&gt;<a class="code" href="structuvw_1_1FsEvent.html#a66085f0f9c89f398449180debf3a12d3">path</a>});</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; }</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; }</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160;</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> fsCloseCallback(uv_fs_t *req) {</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; <span class="keyword">auto</span> ptr = reserve(req);</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160;</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; <span class="keywordflow">if</span>(req-&gt;result &lt; 0) {</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; ptr-&gt;publish(<a class="code" href="structuvw_1_1ErrorEvent.html">ErrorEvent</a>{req-&gt;result});</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; ptr-&gt;file = BAD_FD;</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; ptr-&gt;publish(<a class="code" href="structuvw_1_1FsEvent.html">FsEvent&lt;Type::CLOSE&gt;</a>{req-&gt;<a class="code" href="structuvw_1_1FsEvent.html#a66085f0f9c89f398449180debf3a12d3">path</a>});</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; }</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; }</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160;</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> fsReadCallback(uv_fs_t *req) {</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; <span class="keyword">auto</span> ptr = reserve(req);</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; <span class="keywordflow">if</span>(req-&gt;result &lt; 0) { ptr-&gt;publish(<a class="code" href="structuvw_1_1ErrorEvent.html">ErrorEvent</a>{req-&gt;result}); }</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; <span class="keywordflow">else</span> { ptr-&gt;publish(<a class="code" href="structuvw_1_1FsEvent.html">FsEvent&lt;Type::READ&gt;</a>{req-&gt;<a class="code" href="structuvw_1_1FsEvent.html#a66085f0f9c89f398449180debf3a12d3">path</a>, std::move(ptr-&gt;current), <span class="keyword">static_cast&lt;</span>std::size_t<span class="keyword">&gt;</span>(req-&gt;result)}); }</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; }</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160;</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; <span class="keyword">using</span> FileOpen = details::UVFileOpenFlags;</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160;</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; <span class="keyword">using</span> FsRequest::FsRequest;</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160;</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; ~<a class="code" href="classuvw_1_1FileReq.html">FileReq</a>() noexcept {</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; uv_fs_req_cleanup(<span class="keyword">get</span>());</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; }</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160;</div><div class="line"><a name="l00409"></a><span class="lineno"><a class="line" href="classuvw_1_1FileReq.html#a88f20c4c68999e57e23eac208ff73a35"> 409</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classuvw_1_1FileReq.html#a88f20c4c68999e57e23eac208ff73a35">close</a>() {</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; cleanupAndInvoke(&amp;uv_fs_close, parent(), <span class="keyword">get</span>(), file, &amp;fsCloseCallback);</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; }</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160;</div><div class="line"><a name="l00417"></a><span class="lineno"><a class="line" href="classuvw_1_1FileReq.html#a6a7a53cc446b7da0210bf38f1bbd64bf"> 417</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classuvw_1_1FileReq.html#a6a7a53cc446b7da0210bf38f1bbd64bf">closeSync</a>() {</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; <span class="keyword">auto</span> req = <span class="keyword">get</span>();</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; cleanupAndInvokeSync(&amp;uv_fs_close, parent(), req, file);</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; <span class="keywordflow">if</span>(req-&gt;result &gt;= 0) { file = BAD_FD; }</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; <span class="keywordflow">return</span> !(req-&gt;result &lt; 0);</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; }</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160;</div><div class="line"><a name="l00462"></a><span class="lineno"><a class="line" href="classuvw_1_1FileReq.html#af3dec41ec463768d57e8577f25abde2b"> 462</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classuvw_1_1FileReq.html#af3dec41ec463768d57e8577f25abde2b">open</a>(std::string path, <a class="code" href="classuvw_1_1Flags.html">Flags&lt;FileOpen&gt;</a> flags, <span class="keywordtype">int</span> mode) {</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; cleanupAndInvoke(&amp;uv_fs_open, parent(), <span class="keyword">get</span>(), path.data(), flags, mode, &amp;fsOpenCallback);</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; }</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160;</div><div class="line"><a name="l00502"></a><span class="lineno"><a class="line" href="classuvw_1_1FileReq.html#af736e79ca10967b98cc63100b5e0ef71"> 502</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classuvw_1_1FileReq.html#af736e79ca10967b98cc63100b5e0ef71">openSync</a>(std::string path, <a class="code" href="classuvw_1_1Flags.html">Flags&lt;FileOpen&gt;</a> flags, <span class="keywordtype">int</span> mode) {</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; <span class="keyword">auto</span> req = <span class="keyword">get</span>();</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; cleanupAndInvokeSync(&amp;uv_fs_open, parent(), req, path.data(), flags, mode);</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; <span class="keywordflow">if</span>(req-&gt;result &gt;= 0) { file = <span class="keyword">static_cast&lt;</span>uv_file<span class="keyword">&gt;</span>(req-&gt;result); }</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; <span class="keywordflow">return</span> !(req-&gt;result &lt; 0);</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; }</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160;</div><div class="line"><a name="l00518"></a><span class="lineno"><a class="line" href="classuvw_1_1FileReq.html#a9eff819bdc6c56b9a05d6e3228e176fc"> 518</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classuvw_1_1FileReq.html#a9eff819bdc6c56b9a05d6e3228e176fc">read</a>(int64_t offset, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> len) {</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; current = std::unique_ptr&lt;char[]&gt;{<span class="keyword">new</span> <span class="keywordtype">char</span>[len]};</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; buffer = uv_buf_init(current.get(), len);</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; uv_buf_t bufs[] = { buffer };</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160; cleanupAndInvoke(&amp;uv_fs_read, parent(), <span class="keyword">get</span>(), file, bufs, 1, offset, &amp;fsReadCallback);</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; }</div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160;</div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; std::pair&lt;bool, std::pair&lt;std::unique_ptr&lt;const char[]&gt;, std::size_t&gt;&gt;</div><div class="line"><a name="l00538"></a><span class="lineno"><a class="line" href="classuvw_1_1FileReq.html#a4455e109576e0c34859f450f0cccde7e"> 538</a></span>&#160; <a class="code" href="classuvw_1_1FileReq.html#a4455e109576e0c34859f450f0cccde7e">readSync</a>(int64_t offset, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> len) {</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; current = std::unique_ptr&lt;char[]&gt;{<span class="keyword">new</span> <span class="keywordtype">char</span>[len]};</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; buffer = uv_buf_init(current.get(), len);</div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160; uv_buf_t bufs[] = { buffer };</div><div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; <span class="keyword">auto</span> req = <span class="keyword">get</span>();</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; cleanupAndInvokeSync(&amp;uv_fs_read, parent(), req, file, bufs, 1, offset);</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; <span class="keywordtype">bool</span> err = req-&gt;result &lt; 0;</div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; <span class="keywordflow">return</span> std::make_pair(!err, std::make_pair(std::move(current), err ? 0 : std::size_t(req-&gt;result)));</div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; }</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160;</div><div class="line"><a name="l00561"></a><span class="lineno"><a class="line" href="classuvw_1_1FileReq.html#ab5ef91c4638b52af13a8a77a2343b413"> 561</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classuvw_1_1FileReq.html#ab5ef91c4638b52af13a8a77a2343b413">write</a>(std::unique_ptr&lt;<span class="keywordtype">char</span>[]&gt; buf, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> len, int64_t offset) {</div><div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; current = std::move(buf);</div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; uv_buf_t bufs[] = { uv_buf_init(current.get(), len) };</div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; cleanupAndInvoke(&amp;uv_fs_write, parent(), <span class="keyword">get</span>(), file, bufs, 1, offset, &amp;fsResultCallback&lt;Type::WRITE&gt;);</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; }</div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160;</div><div class="line"><a name="l00580"></a><span class="lineno"><a class="line" href="classuvw_1_1FileReq.html#aa9e84393e87644e066be5625dec438ac"> 580</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classuvw_1_1FileReq.html#aa9e84393e87644e066be5625dec438ac">write</a>(<span class="keywordtype">char</span> *buf, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> len, int64_t offset) {</div><div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; uv_buf_t bufs[] = { uv_buf_init(buf, len) };</div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; cleanupAndInvoke(&amp;uv_fs_write, parent(), <span class="keyword">get</span>(), file, bufs, 1, offset, &amp;fsResultCallback&lt;Type::WRITE&gt;);</div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; }</div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160;</div><div class="line"><a name="l00596"></a><span class="lineno"><a class="line" href="classuvw_1_1FileReq.html#a387579205e35a358c8f756424f165849"> 596</a></span>&#160; std::pair&lt;bool, std::size_t&gt; <a class="code" href="classuvw_1_1FileReq.html#a387579205e35a358c8f756424f165849">writeSync</a>(std::unique_ptr&lt;<span class="keywordtype">char</span>[]&gt; buf, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> len, int64_t offset) {</div><div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160; current = std::move(buf);</div><div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160; uv_buf_t bufs[] = { uv_buf_init(current.get(), len) };</div><div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160; <span class="keyword">auto</span> req = <span class="keyword">get</span>();</div><div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160; cleanupAndInvokeSync(&amp;uv_fs_write, parent(), req, file, bufs, 1, offset);</div><div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160; <span class="keywordtype">bool</span> err = req-&gt;result &lt; 0;</div><div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160; <span class="keywordflow">return</span> std::make_pair(!err, err ? 0 : std::size_t(req-&gt;result));</div><div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160; }</div><div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160;</div><div class="line"><a name="l00611"></a><span class="lineno"><a class="line" href="classuvw_1_1FileReq.html#a8946af1c2071a7fd89e79e3a3c9f409e"> 611</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classuvw_1_1FileReq.html#a8946af1c2071a7fd89e79e3a3c9f409e">stat</a>() {</div><div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160; cleanupAndInvoke(&amp;uv_fs_fstat, parent(), <span class="keyword">get</span>(), file, &amp;fsStatCallback&lt;Type::FSTAT&gt;);</div><div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160; }</div><div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160;</div><div class="line"><a name="l00622"></a><span class="lineno"><a class="line" href="classuvw_1_1FileReq.html#a6d8b78f0fb64a8fee0e3a874f2dc2455"> 622</a></span>&#160; std::pair&lt;bool, Stat&gt; <a class="code" href="classuvw_1_1FileReq.html#a6d8b78f0fb64a8fee0e3a874f2dc2455">statSync</a>() {</div><div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160; <span class="keyword">auto</span> req = <span class="keyword">get</span>();</div><div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160; cleanupAndInvokeSync(&amp;uv_fs_fstat, parent(), req, file);</div><div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160; <span class="keywordflow">return</span> std::make_pair(!(req-&gt;result &lt; 0), req-&gt;statbuf);</div><div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160; }</div><div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160;</div><div class="line"><a name="l00634"></a><span class="lineno"><a class="line" href="classuvw_1_1FileReq.html#a70356eb203b8617bc554ba0c37fa680f"> 634</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classuvw_1_1FileReq.html#a70356eb203b8617bc554ba0c37fa680f">sync</a>() {</div><div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160; cleanupAndInvoke(&amp;uv_fs_fsync, parent(), <span class="keyword">get</span>(), file, &amp;fsGenericCallback&lt;Type::FSYNC&gt;);</div><div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160; }</div><div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160;</div><div class="line"><a name="l00642"></a><span class="lineno"><a class="line" href="classuvw_1_1FileReq.html#a55c257e01bd448b09be66406ab43f165"> 642</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classuvw_1_1FileReq.html#a55c257e01bd448b09be66406ab43f165">syncSync</a>() {</div><div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160; <span class="keyword">auto</span> req = <span class="keyword">get</span>();</div><div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160; cleanupAndInvokeSync(&amp;uv_fs_fsync, parent(), req, file);</div><div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160; <span class="keywordflow">return</span> !(req-&gt;result &lt; 0);</div><div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160; }</div><div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160;</div><div class="line"><a name="l00654"></a><span class="lineno"><a class="line" href="classuvw_1_1FileReq.html#a23bc385a7ebdb6eb149b3311cb630ab3"> 654</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classuvw_1_1FileReq.html#a23bc385a7ebdb6eb149b3311cb630ab3">datasync</a>() {</div><div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160; cleanupAndInvoke(&amp;uv_fs_fdatasync, parent(), <span class="keyword">get</span>(), file, &amp;fsGenericCallback&lt;Type::FDATASYNC&gt;);</div><div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160; }</div><div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160;</div><div class="line"><a name="l00662"></a><span class="lineno"><a class="line" href="classuvw_1_1FileReq.html#a99c13abb2aae436a94ce1d83affb7a6b"> 662</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classuvw_1_1FileReq.html#a99c13abb2aae436a94ce1d83affb7a6b">datasyncSync</a>() {</div><div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160; <span class="keyword">auto</span> req = <span class="keyword">get</span>();</div><div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160; cleanupAndInvokeSync(&amp;uv_fs_fdatasync, parent(), req, file);</div><div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160; <span class="keywordflow">return</span> !(req-&gt;result &lt; 0);</div><div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160; }</div><div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160;</div><div class="line"><a name="l00676"></a><span class="lineno"><a class="line" href="classuvw_1_1FileReq.html#a222bb36d1317171e08a13779a20f4239"> 676</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classuvw_1_1FileReq.html#a222bb36d1317171e08a13779a20f4239">truncate</a>(int64_t offset) {</div><div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160; cleanupAndInvoke(&amp;uv_fs_ftruncate, parent(), <span class="keyword">get</span>(), file, offset, &amp;fsGenericCallback&lt;Type::FTRUNCATE&gt;);</div><div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160; }</div><div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160;</div><div class="line"><a name="l00685"></a><span class="lineno"><a class="line" href="classuvw_1_1FileReq.html#a167e0932b8ad887e0f07299f3f05f9e8"> 685</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classuvw_1_1FileReq.html#a167e0932b8ad887e0f07299f3f05f9e8">truncateSync</a>(int64_t offset) {</div><div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160; <span class="keyword">auto</span> req = <span class="keyword">get</span>();</div><div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160; cleanupAndInvokeSync(&amp;uv_fs_ftruncate, parent(), req, file, offset);</div><div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160; <span class="keywordflow">return</span> !(req-&gt;result &lt; 0);</div><div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160; }</div><div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160;</div><div class="line"><a name="l00701"></a><span class="lineno"><a class="line" href="classuvw_1_1FileReq.html#a9dc41646b349bafd6685b6690a181c09"> 701</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classuvw_1_1FileReq.html#a9dc41646b349bafd6685b6690a181c09">sendfile</a>(<a class="code" href="namespaceuvw.html#a02b7ef3b5a65b0bec1602ef434806a27">FileHandle</a> out, int64_t offset, std::size_t length) {</div><div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160; cleanupAndInvoke(&amp;uv_fs_sendfile, parent(), <span class="keyword">get</span>(), out, file, offset, length, &amp;fsResultCallback&lt;Type::SENDFILE&gt;);</div><div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160; }</div><div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160;</div><div class="line"><a name="l00716"></a><span class="lineno"><a class="line" href="classuvw_1_1FileReq.html#a0839e8352179af6604493aee4b69cb2d"> 716</a></span>&#160; std::pair&lt;bool, std::size_t&gt; <a class="code" href="classuvw_1_1FileReq.html#a0839e8352179af6604493aee4b69cb2d">sendfileSync</a>(<a class="code" href="namespaceuvw.html#a02b7ef3b5a65b0bec1602ef434806a27">FileHandle</a> out, int64_t offset, std::size_t length) {</div><div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160; <span class="keyword">auto</span> req = <span class="keyword">get</span>();</div><div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160; cleanupAndInvokeSync(&amp;uv_fs_sendfile, parent(), req, out, file, offset, length);</div><div class="line"><a name="l00719"></a><span class="lineno"> 719</span>&#160; <span class="keywordtype">bool</span> err = req-&gt;result &lt; 0;</div><div class="line"><a name="l00720"></a><span class="lineno"> 720</span>&#160; <span class="keywordflow">return</span> std::make_pair(!err, err ? 0 : std::size_t(req-&gt;result));</div><div class="line"><a name="l00721"></a><span class="lineno"> 721</span>&#160; }</div><div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160;</div><div class="line"><a name="l00731"></a><span class="lineno"><a class="line" href="classuvw_1_1FileReq.html#a24884d3d814759dcc079f29720b6056c"> 731</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classuvw_1_1FileReq.html#a24884d3d814759dcc079f29720b6056c">chmod</a>(<span class="keywordtype">int</span> mode) {</div><div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160; cleanupAndInvoke(&amp;uv_fs_fchmod, parent(), <span class="keyword">get</span>(), file, mode, &amp;fsGenericCallback&lt;Type::FCHMOD&gt;);</div><div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160; }</div><div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160;</div><div class="line"><a name="l00740"></a><span class="lineno"><a class="line" href="classuvw_1_1FileReq.html#a2c09c5b523f648fd77250d08689ba85c"> 740</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classuvw_1_1FileReq.html#a2c09c5b523f648fd77250d08689ba85c">chmodSync</a>(<span class="keywordtype">int</span> mode) {</div><div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160; <span class="keyword">auto</span> req = <span class="keyword">get</span>();</div><div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160; cleanupAndInvokeSync(&amp;uv_fs_fchmod, parent(), req, file, mode);</div><div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160; <span class="keywordflow">return</span> !(req-&gt;result &lt; 0);</div><div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160; }</div><div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160;</div><div class="line"><a name="l00757"></a><span class="lineno"><a class="line" href="classuvw_1_1FileReq.html#a8c7e40372ca19806f5864576278ed82e"> 757</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classuvw_1_1FileReq.html#a8c7e40372ca19806f5864576278ed82e">utime</a>(Time atime, Time mtime) {</div><div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160; cleanupAndInvoke(&amp;uv_fs_futime, parent(), <span class="keyword">get</span>(), file, atime.count(), mtime.count(), &amp;fsGenericCallback&lt;Type::FUTIME&gt;);</div><div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160; }</div><div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160;</div><div class="line"><a name="l00769"></a><span class="lineno"><a class="line" href="classuvw_1_1FileReq.html#a5ced5c83df512a180bdba11f3509085e"> 769</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classuvw_1_1FileReq.html#a5ced5c83df512a180bdba11f3509085e">utimeSync</a>(Time atime, Time mtime) {</div><div class="line"><a name="l00770"></a><span class="lineno"> 770</span>&#160; <span class="keyword">auto</span> req = <span class="keyword">get</span>();</div><div class="line"><a name="l00771"></a><span class="lineno"> 771</span>&#160; cleanupAndInvokeSync(&amp;uv_fs_futime, parent(), req, file, atime.count(), mtime.count());</div><div class="line"><a name="l00772"></a><span class="lineno"> 772</span>&#160; <span class="keywordflow">return</span> !(req-&gt;result &lt; 0);</div><div class="line"><a name="l00773"></a><span class="lineno"> 773</span>&#160; }</div><div class="line"><a name="l00774"></a><span class="lineno"> 774</span>&#160;</div><div class="line"><a name="l00784"></a><span class="lineno"><a class="line" href="classuvw_1_1FileReq.html#a522d13b83943aa9f6854f9f81b083c09"> 784</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classuvw_1_1FileReq.html#a522d13b83943aa9f6854f9f81b083c09">chown</a>(<a class="code" href="namespaceuvw.html#a01d13fc4b5d1b58c936fdbf15c4d0a10">Uid</a> uid, <a class="code" href="namespaceuvw.html#a82c74b9200b97f2e1668fe2719eef72e">Gid</a> gid) {</div><div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160; cleanupAndInvoke(&amp;uv_fs_fchown, parent(), <span class="keyword">get</span>(), file, uid, gid, &amp;fsGenericCallback&lt;Type::FCHOWN&gt;);</div><div class="line"><a name="l00786"></a><span class="lineno"> 786</span>&#160; }</div><div class="line"><a name="l00787"></a><span class="lineno"> 787</span>&#160;</div><div class="line"><a name="l00794"></a><span class="lineno"><a class="line" href="classuvw_1_1FileReq.html#a7480624e5ca058037e3fa987251b84da"> 794</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classuvw_1_1FileReq.html#a7480624e5ca058037e3fa987251b84da">chownSync</a>(<a class="code" href="namespaceuvw.html#a01d13fc4b5d1b58c936fdbf15c4d0a10">Uid</a> uid, <a class="code" href="namespaceuvw.html#a82c74b9200b97f2e1668fe2719eef72e">Gid</a> gid) {</div><div class="line"><a name="l00795"></a><span class="lineno"> 795</span>&#160; <span class="keyword">auto</span> req = <span class="keyword">get</span>();</div><div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160; cleanupAndInvokeSync(&amp;uv_fs_fchown, parent(), req, file, uid, gid);</div><div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160; <span class="keywordflow">return</span> !(req-&gt;result &lt; 0);</div><div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160; }</div><div class="line"><a name="l00799"></a><span class="lineno"> 799</span>&#160;</div><div class="line"><a name="l00808"></a><span class="lineno"><a class="line" href="classuvw_1_1FileReq.html#af7206dc10429feb75d826d5c289c0856"> 808</a></span>&#160; <span class="keyword">operator</span> <a class="code" href="namespaceuvw.html#a02b7ef3b5a65b0bec1602ef434806a27">FileHandle</a>() const noexcept { <span class="keywordflow">return</span> file; }</div><div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160;</div><div class="line"><a name="l00810"></a><span class="lineno"> 810</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160; std::unique_ptr&lt;char[]&gt; current{<span class="keyword">nullptr</span>};</div><div class="line"><a name="l00812"></a><span class="lineno"> 812</span>&#160; uv_buf_t buffer{};</div><div class="line"><a name="l00813"></a><span class="lineno"> 813</span>&#160; uv_file file{BAD_FD};</div><div class="line"><a name="l00814"></a><span class="lineno"> 814</span>&#160;};</div><div class="line"><a name="l00815"></a><span class="lineno"> 815</span>&#160;</div><div class="line"><a name="l00816"></a><span class="lineno"> 816</span>&#160;</div><div class="line"><a name="l00829"></a><span class="lineno"><a class="line" href="classuvw_1_1FsReq.html"> 829</a></span>&#160;<span class="keyword">class </span><a class="code" href="classuvw_1_1FsReq.html">FsReq</a> final: <span class="keyword">public</span> <a class="code" href="classuvw_1_1FsRequest.html">FsRequest</a>&lt;FsReq&gt; {</div><div class="line"><a name="l00830"></a><span class="lineno"> 830</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> fsReadlinkCallback(uv_fs_t *req) {</div><div class="line"><a name="l00831"></a><span class="lineno"> 831</span>&#160; <span class="keyword">auto</span> ptr = reserve(req);</div><div class="line"><a name="l00832"></a><span class="lineno"> 832</span>&#160; <span class="keywordflow">if</span>(req-&gt;result &lt; 0) { ptr-&gt;publish(<a class="code" href="structuvw_1_1ErrorEvent.html">ErrorEvent</a>{req-&gt;result}); }</div><div class="line"><a name="l00833"></a><span class="lineno"> 833</span>&#160; <span class="keywordflow">else</span> { ptr-&gt;publish(<a class="code" href="structuvw_1_1FsEvent.html">FsEvent&lt;Type::READLINK&gt;</a>{req-&gt;<a class="code" href="structuvw_1_1FsEvent.html#a66085f0f9c89f398449180debf3a12d3">path</a>, <span class="keyword">static_cast&lt;</span><span class="keywordtype">char</span> *<span class="keyword">&gt;</span>(req-&gt;ptr), static_cast&lt;std::size_t&gt;(req-&gt;result)}); }</div><div class="line"><a name="l00834"></a><span class="lineno"> 834</span>&#160; }</div><div class="line"><a name="l00835"></a><span class="lineno"> 835</span>&#160;</div><div class="line"><a name="l00836"></a><span class="lineno"> 836</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00837"></a><span class="lineno"> 837</span>&#160; <span class="keyword">using</span> CopyFile = details::UVCopyFileFlags;</div><div class="line"><a name="l00838"></a><span class="lineno"> 838</span>&#160; <span class="keyword">using</span> SymLink = details::UVSymLinkFlags;</div><div class="line"><a name="l00839"></a><span class="lineno"> 839</span>&#160;</div><div class="line"><a name="l00840"></a><span class="lineno"> 840</span>&#160; <span class="keyword">using</span> FsRequest::FsRequest;</div><div class="line"><a name="l00841"></a><span class="lineno"> 841</span>&#160;</div><div class="line"><a name="l00842"></a><span class="lineno"> 842</span>&#160; ~<a class="code" href="classuvw_1_1FsReq.html">FsReq</a>() noexcept {</div><div class="line"><a name="l00843"></a><span class="lineno"> 843</span>&#160; uv_fs_req_cleanup(<span class="keyword">get</span>());</div><div class="line"><a name="l00844"></a><span class="lineno"> 844</span>&#160; }</div><div class="line"><a name="l00845"></a><span class="lineno"> 845</span>&#160;</div><div class="line"><a name="l00854"></a><span class="lineno"><a class="line" href="classuvw_1_1FsReq.html#a39106328d144083174374792b8239bae"> 854</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classuvw_1_1FsReq.html#a39106328d144083174374792b8239bae">unlink</a>(std::string path) {</div><div class="line"><a name="l00855"></a><span class="lineno"> 855</span>&#160; cleanupAndInvoke(&amp;uv_fs_unlink, parent(), <span class="keyword">get</span>(), path.data(), &amp;fsGenericCallback&lt;Type::UNLINK&gt;);</div><div class="line"><a name="l00856"></a><span class="lineno"> 856</span>&#160; }</div><div class="line"><a name="l00857"></a><span class="lineno"> 857</span>&#160;</div><div class="line"><a name="l00863"></a><span class="lineno"><a class="line" href="classuvw_1_1FsReq.html#aed77b6a35a13e6b0c2065626aea32a66"> 863</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classuvw_1_1FsReq.html#aed77b6a35a13e6b0c2065626aea32a66">unlinkSync</a>(std::string path) {</div><div class="line"><a name="l00864"></a><span class="lineno"> 864</span>&#160; <span class="keyword">auto</span> req = <span class="keyword">get</span>();</div><div class="line"><a name="l00865"></a><span class="lineno"> 865</span>&#160; cleanupAndInvokeSync(&amp;uv_fs_unlink, parent(), req, path.data());</div><div class="line"><a name="l00866"></a><span class="lineno"> 866</span>&#160; <span class="keywordflow">return</span> !(req-&gt;result &lt; 0);</div><div class="line"><a name="l00867"></a><span class="lineno"> 867</span>&#160; }</div><div class="line"><a name="l00868"></a><span class="lineno"> 868</span>&#160;</div><div class="line"><a name="l00878"></a><span class="lineno"><a class="line" href="classuvw_1_1FsReq.html#a7fd7083a410ac2c7181dcdc809fee90a"> 878</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classuvw_1_1FsReq.html#a7fd7083a410ac2c7181dcdc809fee90a">mkdir</a>(std::string path, <span class="keywordtype">int</span> mode) {</div><div class="line"><a name="l00879"></a><span class="lineno"> 879</span>&#160; cleanupAndInvoke(&amp;uv_fs_mkdir, parent(), <span class="keyword">get</span>(), path.data(), mode, &amp;fsGenericCallback&lt;Type::MKDIR&gt;);</div><div class="line"><a name="l00880"></a><span class="lineno"> 880</span>&#160; }</div><div class="line"><a name="l00881"></a><span class="lineno"> 881</span>&#160;</div><div class="line"><a name="l00888"></a><span class="lineno"><a class="line" href="classuvw_1_1FsReq.html#a13e84b77215ee9addf1c4a5bfa20f533"> 888</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classuvw_1_1FsReq.html#a13e84b77215ee9addf1c4a5bfa20f533">mkdirSync</a>(std::string path, <span class="keywordtype">int</span> mode) {</div><div class="line"><a name="l00889"></a><span class="lineno"> 889</span>&#160; <span class="keyword">auto</span> req = <span class="keyword">get</span>();</div><div class="line"><a name="l00890"></a><span class="lineno"> 890</span>&#160; cleanupAndInvokeSync(&amp;uv_fs_mkdir, parent(), req, path.data(), mode);</div><div class="line"><a name="l00891"></a><span class="lineno"> 891</span>&#160; <span class="keywordflow">return</span> !(req-&gt;result &lt; 0);</div><div class="line"><a name="l00892"></a><span class="lineno"> 892</span>&#160; }</div><div class="line"><a name="l00893"></a><span class="lineno"> 893</span>&#160;</div><div class="line"><a name="l00902"></a><span class="lineno"><a class="line" href="classuvw_1_1FsReq.html#a8b19c4cfea989183c42ad399ee99096f"> 902</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classuvw_1_1FsReq.html#a8b19c4cfea989183c42ad399ee99096f">mkdtemp</a>(std::string tpl) {</div><div class="line"><a name="l00903"></a><span class="lineno"> 903</span>&#160; cleanupAndInvoke(&amp;uv_fs_mkdtemp, parent(), <span class="keyword">get</span>(), tpl.data(), &amp;fsGenericCallback&lt;Type::MKDTEMP&gt;);</div><div class="line"><a name="l00904"></a><span class="lineno"> 904</span>&#160; }</div><div class="line"><a name="l00905"></a><span class="lineno"> 905</span>&#160;</div><div class="line"><a name="l00915"></a><span class="lineno"><a class="line" href="classuvw_1_1FsReq.html#aa70a69613e49bb83e3873eaf37dddf3f"> 915</a></span>&#160; std::pair&lt;bool, const char *&gt; <a class="code" href="classuvw_1_1FsReq.html#aa70a69613e49bb83e3873eaf37dddf3f">mkdtempSync</a>(std::string tpl) {</div><div class="line"><a name="l00916"></a><span class="lineno"> 916</span>&#160; <span class="keyword">auto</span> req = <span class="keyword">get</span>();</div><div class="line"><a name="l00917"></a><span class="lineno"> 917</span>&#160; cleanupAndInvokeSync(&amp;uv_fs_mkdtemp, parent(), req, tpl.data());</div><div class="line"><a name="l00918"></a><span class="lineno"> 918</span>&#160; <span class="keywordflow">return</span> std::make_pair(!(req-&gt;result &lt; 0), req-&gt;path);</div><div class="line"><a name="l00919"></a><span class="lineno"> 919</span>&#160; }</div><div class="line"><a name="l00920"></a><span class="lineno"> 920</span>&#160;</div><div class="line"><a name="l00929"></a><span class="lineno"><a class="line" href="classuvw_1_1FsReq.html#aab396c17423fb9a4e235bccd3bbe4ca7"> 929</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classuvw_1_1FsReq.html#aab396c17423fb9a4e235bccd3bbe4ca7">rmdir</a>(std::string path) {</div><div class="line"><a name="l00930"></a><span class="lineno"> 930</span>&#160; cleanupAndInvoke(&amp;uv_fs_rmdir, parent(), <span class="keyword">get</span>(), path.data(), &amp;fsGenericCallback&lt;Type::RMDIR&gt;);</div><div class="line"><a name="l00931"></a><span class="lineno"> 931</span>&#160; }</div><div class="line"><a name="l00932"></a><span class="lineno"> 932</span>&#160;</div><div class="line"><a name="l00938"></a><span class="lineno"><a class="line" href="classuvw_1_1FsReq.html#a00a7b04ee79f86789567a6f5c638cc7b"> 938</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classuvw_1_1FsReq.html#a00a7b04ee79f86789567a6f5c638cc7b">rmdirSync</a>(std::string path) {</div><div class="line"><a name="l00939"></a><span class="lineno"> 939</span>&#160; <span class="keyword">auto</span> req = <span class="keyword">get</span>();</div><div class="line"><a name="l00940"></a><span class="lineno"> 940</span>&#160; cleanupAndInvokeSync(&amp;uv_fs_rmdir, parent(), req, path.data());</div><div class="line"><a name="l00941"></a><span class="lineno"> 941</span>&#160; <span class="keywordflow">return</span> !(req-&gt;result &lt; 0);</div><div class="line"><a name="l00942"></a><span class="lineno"> 942</span>&#160; }</div><div class="line"><a name="l00943"></a><span class="lineno"> 943</span>&#160;</div><div class="line"><a name="l00953"></a><span class="lineno"><a class="line" href="classuvw_1_1FsReq.html#ac38dd1e2182572e8b6b1c8be769e4123"> 953</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classuvw_1_1FsReq.html#ac38dd1e2182572e8b6b1c8be769e4123">scandir</a>(std::string path, <span class="keywordtype">int</span> flags) {</div><div class="line"><a name="l00954"></a><span class="lineno"> 954</span>&#160; cleanupAndInvoke(&amp;uv_fs_scandir, parent(), <span class="keyword">get</span>(), path.data(), flags, &amp;fsResultCallback&lt;Type::SCANDIR&gt;);</div><div class="line"><a name="l00955"></a><span class="lineno"> 955</span>&#160; }</div><div class="line"><a name="l00956"></a><span class="lineno"> 956</span>&#160;</div><div class="line"><a name="l00967"></a><span class="lineno"><a class="line" href="classuvw_1_1FsReq.html#a3503daf23c25d49714fd78796f4c0d36"> 967</a></span>&#160; std::pair&lt;bool, std::size_t&gt; <a class="code" href="classuvw_1_1FsReq.html#a3503daf23c25d49714fd78796f4c0d36">scandirSync</a>(std::string path, <span class="keywordtype">int</span> flags) {</div><div class="line"><a name="l00968"></a><span class="lineno"> 968</span>&#160; <span class="keyword">auto</span> req = <span class="keyword">get</span>();</div><div class="line"><a name="l00969"></a><span class="lineno"> 969</span>&#160; cleanupAndInvokeSync(&amp;uv_fs_scandir, parent(), req, path.data(), flags);</div><div class="line"><a name="l00970"></a><span class="lineno"> 970</span>&#160; <span class="keywordtype">bool</span> err = req-&gt;result &lt; 0;</div><div class="line"><a name="l00971"></a><span class="lineno"> 971</span>&#160; <span class="keywordflow">return</span> std::make_pair(!err, err ? 0 : std::size_t(req-&gt;result));</div><div class="line"><a name="l00972"></a><span class="lineno"> 972</span>&#160; }</div><div class="line"><a name="l00973"></a><span class="lineno"> 973</span>&#160;</div><div class="line"><a name="l01003"></a><span class="lineno"><a class="line" href="classuvw_1_1FsReq.html#a43777f251d2e81046403ddde8b61b3bc"> 1003</a></span>&#160; std::pair&lt;bool, Entry&gt; <a class="code" href="classuvw_1_1FsReq.html#a43777f251d2e81046403ddde8b61b3bc">scandirNext</a>() {</div><div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>&#160; uv_dirent_t dirent;</div><div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>&#160; std::pair&lt;bool, Entry&gt; ret{<span class="keyword">false</span>, { EntryType::UNKNOWN, <span class="stringliteral">&quot;&quot;</span> }};</div><div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>&#160; <span class="keyword">auto</span> res = uv_fs_scandir_next(<span class="keyword">get</span>(), &amp;dirent);</div><div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>&#160;</div><div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>&#160; <span class="keywordflow">if</span>(UV_EOF != res) {</div><div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>&#160; ret.second.first = <span class="keyword">static_cast&lt;</span>EntryType<span class="keyword">&gt;</span>(dirent.type);</div><div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>&#160; ret.second.second = dirent.name;</div><div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>&#160; ret.first = <span class="keyword">true</span>;</div><div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>&#160; }</div><div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>&#160;</div><div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>&#160; <span class="keywordflow">return</span> ret;</div><div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>&#160; }</div><div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>&#160;</div><div class="line"><a name="l01025"></a><span class="lineno"><a class="line" href="classuvw_1_1FsReq.html#a46f27584db373c0f1d5d49a11f8d4789"> 1025</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classuvw_1_1FsReq.html#a46f27584db373c0f1d5d49a11f8d4789">stat</a>(std::string path) {</div><div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>&#160; cleanupAndInvoke(&amp;uv_fs_stat, parent(), <span class="keyword">get</span>(), path.data(), &amp;fsStatCallback&lt;Type::STAT&gt;);</div><div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>&#160; }</div><div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>&#160;</div><div class="line"><a name="l01038"></a><span class="lineno"><a class="line" href="classuvw_1_1FsReq.html#aa6f0e37f3a94b73129887f7c25a55103"> 1038</a></span>&#160; std::pair&lt;bool, Stat&gt; <a class="code" href="classuvw_1_1FsReq.html#aa6f0e37f3a94b73129887f7c25a55103">statSync</a>(std::string path) {</div><div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>&#160; <span class="keyword">auto</span> req = <span class="keyword">get</span>();</div><div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>&#160; cleanupAndInvokeSync(&amp;uv_fs_stat, parent(), req, path.data());</div><div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>&#160; <span class="keywordflow">return</span> std::make_pair(!(req-&gt;result &lt; 0), req-&gt;statbuf);</div><div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>&#160; }</div><div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>&#160;</div><div class="line"><a name="l01052"></a><span class="lineno"><a class="line" href="classuvw_1_1FsReq.html#af17350e99079cf7359f9ba1e5e825578"> 1052</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classuvw_1_1FsReq.html#af17350e99079cf7359f9ba1e5e825578">lstat</a>(std::string path) {</div><div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>&#160; cleanupAndInvoke(&amp;uv_fs_lstat, parent(), <span class="keyword">get</span>(), path.data(), &amp;fsStatCallback&lt;Type::LSTAT&gt;);</div><div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>&#160; }</div><div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>&#160;</div><div class="line"><a name="l01065"></a><span class="lineno"><a class="line" href="classuvw_1_1FsReq.html#a7b34491e0169ff5e80b27a508b6aa1f3"> 1065</a></span>&#160; std::pair&lt;bool, Stat&gt; <a class="code" href="classuvw_1_1FsReq.html#a7b34491e0169ff5e80b27a508b6aa1f3">lstatSync</a>(std::string path) {</div><div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>&#160; <span class="keyword">auto</span> req = <span class="keyword">get</span>();</div><div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>&#160; cleanupAndInvokeSync(&amp;uv_fs_lstat, parent(), req, path.data());</div><div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>&#160; <span class="keywordflow">return</span> std::make_pair(!(req-&gt;result &lt; 0), req-&gt;statbuf);</div><div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>&#160; }</div><div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>&#160;</div><div class="line"><a name="l01080"></a><span class="lineno"><a class="line" href="classuvw_1_1FsReq.html#aa1b5c7c02f39ea85fd605a2ee4892f0d"> 1080</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classuvw_1_1FsReq.html#aa1b5c7c02f39ea85fd605a2ee4892f0d">rename</a>(std::string old, std::string path) {</div><div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>&#160; cleanupAndInvoke(&amp;uv_fs_rename, parent(), <span class="keyword">get</span>(), old.data(), path.data(), &amp;fsGenericCallback&lt;Type::RENAME&gt;);</div><div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>&#160; }</div><div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>&#160;</div><div class="line"><a name="l01090"></a><span class="lineno"><a class="line" href="classuvw_1_1FsReq.html#a7ca6e1a9454cf174dbd3776623fcf118"> 1090</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classuvw_1_1FsReq.html#a7ca6e1a9454cf174dbd3776623fcf118">renameSync</a>(std::string old, std::string path) {</div><div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>&#160; <span class="keyword">auto</span> req = <span class="keyword">get</span>();</div><div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>&#160; cleanupAndInvokeSync(&amp;uv_fs_rename, parent(), req, old.data(), path.data());</div><div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>&#160; <span class="keywordflow">return</span> !(req-&gt;result &lt; 0);</div><div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>&#160; }</div><div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>&#160;</div><div class="line"><a name="l01125"></a><span class="lineno"><a class="line" href="classuvw_1_1FsReq.html#a438fa29b48973093b2d08854f09faab3"> 1125</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classuvw_1_1FsReq.html#a438fa29b48973093b2d08854f09faab3">copyfile</a>(std::string old, std::string path, <a class="code" href="classuvw_1_1Flags.html">Flags&lt;CopyFile&gt;</a> flags = <a class="code" href="classuvw_1_1Flags.html">Flags&lt;CopyFile&gt;</a>{}) {</div><div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>&#160; cleanupAndInvoke(&amp;uv_fs_copyfile, parent(), <span class="keyword">get</span>(), old.data(), path.data(), flags, &amp;fsGenericCallback&lt;Type::COPYFILE&gt;);</div><div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>&#160; }</div><div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>&#160;</div><div class="line"><a name="l01148"></a><span class="lineno"><a class="line" href="classuvw_1_1FsReq.html#ae092009fbd3ea78675be886ed282b8da"> 1148</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classuvw_1_1FsReq.html#ae092009fbd3ea78675be886ed282b8da">copyfileSync</a>(std::string old, std::string path, <a class="code" href="classuvw_1_1Flags.html">Flags&lt;CopyFile&gt;</a> flags = <a class="code" href="classuvw_1_1Flags.html">Flags&lt;CopyFile&gt;</a>{}) {</div><div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>&#160; <span class="keyword">auto</span> req = <span class="keyword">get</span>();</div><div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>&#160; cleanupAndInvokeSync(&amp;uv_fs_copyfile, parent(), <span class="keyword">get</span>(), old.data(), path.data(), flags);</div><div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>&#160; <span class="keywordflow">return</span> !(req-&gt;result &lt; 0);</div><div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>&#160; }</div><div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>&#160;</div><div class="line"><a name="l01163"></a><span class="lineno"><a class="line" href="classuvw_1_1FsReq.html#a72c47c990b174b4cbf9ab77edc300272"> 1163</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classuvw_1_1FsReq.html#a72c47c990b174b4cbf9ab77edc300272">access</a>(std::string path, <span class="keywordtype">int</span> mode) {</div><div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>&#160; cleanupAndInvoke(&amp;uv_fs_access, parent(), <span class="keyword">get</span>(), path.data(), mode, &amp;fsGenericCallback&lt;Type::ACCESS&gt;);</div><div class="line"><a name="l01165"></a><span class="lineno"> 1165</span>&#160; }</div><div class="line"><a name="l01166"></a><span class="lineno"> 1166</span>&#160;</div><div class="line"><a name="l01173"></a><span class="lineno"><a class="line" href="classuvw_1_1FsReq.html#ac8fc49c377fff5dd36196fe9563aa0ce"> 1173</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classuvw_1_1FsReq.html#ac8fc49c377fff5dd36196fe9563aa0ce">accessSync</a>(std::string path, <span class="keywordtype">int</span> mode) {</div><div class="line"><a name="l01174"></a><span class="lineno"> 1174</span>&#160; <span class="keyword">auto</span> req = <span class="keyword">get</span>();</div><div class="line"><a name="l01175"></a><span class="lineno"> 1175</span>&#160; cleanupAndInvokeSync(&amp;uv_fs_access, parent(), req, path.data(), mode);</div><div class="line"><a name="l01176"></a><span class="lineno"> 1176</span>&#160; <span class="keywordflow">return</span> !(req-&gt;result &lt; 0);</div><div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>&#160; }</div><div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>&#160;</div><div class="line"><a name="l01188"></a><span class="lineno"><a class="line" href="classuvw_1_1FsReq.html#ad8605ac6a15ac3a2cc7f01a78649ef44"> 1188</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classuvw_1_1FsReq.html#ad8605ac6a15ac3a2cc7f01a78649ef44">chmod</a>(std::string path, <span class="keywordtype">int</span> mode) {</div><div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>&#160; cleanupAndInvoke(&amp;uv_fs_chmod, parent(), <span class="keyword">get</span>(), path.data(), mode, &amp;fsGenericCallback&lt;Type::CHMOD&gt;);</div><div class="line"><a name="l01190"></a><span class="lineno"> 1190</span>&#160; }</div><div class="line"><a name="l01191"></a><span class="lineno"> 1191</span>&#160;</div><div class="line"><a name="l01198"></a><span class="lineno"><a class="line" href="classuvw_1_1FsReq.html#acdb6c21ea26624e727d2a1862e6e004a"> 1198</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classuvw_1_1FsReq.html#acdb6c21ea26624e727d2a1862e6e004a">chmodSync</a>(std::string path, <span class="keywordtype">int</span> mode) {</div><div class="line"><a name="l01199"></a><span class="lineno"> 1199</span>&#160; <span class="keyword">auto</span> req = <span class="keyword">get</span>();</div><div class="line"><a name="l01200"></a><span class="lineno"> 1200</span>&#160; cleanupAndInvokeSync(&amp;uv_fs_chmod, parent(), req, path.data(), mode);</div><div class="line"><a name="l01201"></a><span class="lineno"> 1201</span>&#160; <span class="keywordflow">return</span> !(req-&gt;result &lt; 0);</div><div class="line"><a name="l01202"></a><span class="lineno"> 1202</span>&#160; }</div><div class="line"><a name="l01203"></a><span class="lineno"> 1203</span>&#160;</div><div class="line"><a name="l01216"></a><span class="lineno"><a class="line" href="classuvw_1_1FsReq.html#aabb98930481b954e0f2ad9046f1ab0b7"> 1216</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classuvw_1_1FsReq.html#aabb98930481b954e0f2ad9046f1ab0b7">utime</a>(std::string path, Time atime, Time mtime) {</div><div class="line"><a name="l01217"></a><span class="lineno"> 1217</span>&#160; cleanupAndInvoke(&amp;uv_fs_utime, parent(), <span class="keyword">get</span>(), path.data(), atime.count(), mtime.count(), &amp;fsGenericCallback&lt;Type::UTIME&gt;);</div><div class="line"><a name="l01218"></a><span class="lineno"> 1218</span>&#160; }</div><div class="line"><a name="l01219"></a><span class="lineno"> 1219</span>&#160;</div><div class="line"><a name="l01229"></a><span class="lineno"><a class="line" href="classuvw_1_1FsReq.html#a88cede82fc90238aee034f6c24c66d1f"> 1229</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classuvw_1_1FsReq.html#a88cede82fc90238aee034f6c24c66d1f">utimeSync</a>(std::string path, Time atime, Time mtime) {</div><div class="line"><a name="l01230"></a><span class="lineno"> 1230</span>&#160; <span class="keyword">auto</span> req = <span class="keyword">get</span>();</div><div class="line"><a name="l01231"></a><span class="lineno"> 1231</span>&#160; cleanupAndInvokeSync(&amp;uv_fs_utime, parent(), req, path.data(), atime.count(), mtime.count());</div><div class="line"><a name="l01232"></a><span class="lineno"> 1232</span>&#160; <span class="keywordflow">return</span> !(req-&gt;result &lt; 0);</div><div class="line"><a name="l01233"></a><span class="lineno"> 1233</span>&#160; }</div><div class="line"><a name="l01234"></a><span class="lineno"> 1234</span>&#160;</div><div class="line"><a name="l01244"></a><span class="lineno"><a class="line" href="classuvw_1_1FsReq.html#a7e0183c8a94d4acb064e2b665caae85d"> 1244</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classuvw_1_1FsReq.html#a7e0183c8a94d4acb064e2b665caae85d">link</a>(std::string old, std::string path) {</div><div class="line"><a name="l01245"></a><span class="lineno"> 1245</span>&#160; cleanupAndInvoke(&amp;uv_fs_link, parent(), <span class="keyword">get</span>(), old.data(), path.data(), &amp;fsGenericCallback&lt;Type::LINK&gt;);</div><div class="line"><a name="l01246"></a><span class="lineno"> 1246</span>&#160; }</div><div class="line"><a name="l01247"></a><span class="lineno"> 1247</span>&#160;</div><div class="line"><a name="l01254"></a><span class="lineno"><a class="line" href="classuvw_1_1FsReq.html#a42522dc4f9f94d711b74d048d0d59fd5"> 1254</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classuvw_1_1FsReq.html#a42522dc4f9f94d711b74d048d0d59fd5">linkSync</a>(std::string old, std::string path) {</div><div class="line"><a name="l01255"></a><span class="lineno"> 1255</span>&#160; <span class="keyword">auto</span> req = <span class="keyword">get</span>();</div><div class="line"><a name="l01256"></a><span class="lineno"> 1256</span>&#160; cleanupAndInvokeSync(&amp;uv_fs_link, parent(), req, old.data(), path.data());</div><div class="line"><a name="l01257"></a><span class="lineno"> 1257</span>&#160; <span class="keywordflow">return</span> !(req-&gt;result &lt; 0);</div><div class="line"><a name="l01258"></a><span class="lineno"> 1258</span>&#160; }</div><div class="line"><a name="l01259"></a><span class="lineno"> 1259</span>&#160;</div><div class="line"><a name="l01277"></a><span class="lineno"><a class="line" href="classuvw_1_1FsReq.html#a2c68210c3af3022d692b8089f44f2938"> 1277</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classuvw_1_1FsReq.html#a2c68210c3af3022d692b8089f44f2938">symlink</a>(std::string old, std::string path, <a class="code" href="classuvw_1_1Flags.html">Flags&lt;SymLink&gt;</a> flags = <a class="code" href="classuvw_1_1Flags.html">Flags&lt;SymLink&gt;</a>{}) {</div><div class="line"><a name="l01278"></a><span class="lineno"> 1278</span>&#160; cleanupAndInvoke(&amp;uv_fs_symlink, parent(), <span class="keyword">get</span>(), old.data(), path.data(), flags, &amp;fsGenericCallback&lt;Type::SYMLINK&gt;);</div><div class="line"><a name="l01279"></a><span class="lineno"> 1279</span>&#160; }</div><div class="line"><a name="l01280"></a><span class="lineno"> 1280</span>&#160;</div><div class="line"><a name="l01296"></a><span class="lineno"><a class="line" href="classuvw_1_1FsReq.html#a6253ea10b84b9524c756a3dfea6c0cfb"> 1296</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classuvw_1_1FsReq.html#a6253ea10b84b9524c756a3dfea6c0cfb">symlinkSync</a>(std::string old, std::string path, <a class="code" href="classuvw_1_1Flags.html">Flags&lt;SymLink&gt;</a> flags = <a class="code" href="classuvw_1_1Flags.html">Flags&lt;SymLink&gt;</a>{}) {</div><div class="line"><a name="l01297"></a><span class="lineno"> 1297</span>&#160; <span class="keyword">auto</span> req = <span class="keyword">get</span>();</div><div class="line"><a name="l01298"></a><span class="lineno"> 1298</span>&#160; cleanupAndInvokeSync(&amp;uv_fs_symlink, parent(), req, old.data(), path.data(), flags);</div><div class="line"><a name="l01299"></a><span class="lineno"> 1299</span>&#160; <span class="keywordflow">return</span> !(req-&gt;result &lt; 0);</div><div class="line"><a name="l01300"></a><span class="lineno"> 1300</span>&#160; }</div><div class="line"><a name="l01301"></a><span class="lineno"> 1301</span>&#160;</div><div class="line"><a name="l01310"></a><span class="lineno"><a class="line" href="classuvw_1_1FsReq.html#ae6092d3602b2f2601a8476dbfdcd7fad"> 1310</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classuvw_1_1FsReq.html#ae6092d3602b2f2601a8476dbfdcd7fad">readlink</a>(std::string path) {</div><div class="line"><a name="l01311"></a><span class="lineno"> 1311</span>&#160; cleanupAndInvoke(&amp;uv_fs_readlink, parent(), <span class="keyword">get</span>(), path.data(), &amp;fsReadlinkCallback);</div><div class="line"><a name="l01312"></a><span class="lineno"> 1312</span>&#160; }</div><div class="line"><a name="l01313"></a><span class="lineno"> 1313</span>&#160;</div><div class="line"><a name="l01325"></a><span class="lineno"> 1325</span>&#160; std::pair&lt;bool, std::pair&lt;const char *, std::size_t&gt;&gt;</div><div class="line"><a name="l01326"></a><span class="lineno"><a class="line" href="classuvw_1_1FsReq.html#ad0f4a7e6cb8e58ed76f05f6fcc2cc6ac"> 1326</a></span>&#160; <a class="code" href="classuvw_1_1FsReq.html#ad0f4a7e6cb8e58ed76f05f6fcc2cc6ac">readlinkSync</a>(std::string path) {</div><div class="line"><a name="l01327"></a><span class="lineno"> 1327</span>&#160; <span class="keyword">auto</span> req = <span class="keyword">get</span>();</div><div class="line"><a name="l01328"></a><span class="lineno"> 1328</span>&#160; cleanupAndInvokeSync(&amp;uv_fs_readlink, parent(), req, path.data());</div><div class="line"><a name="l01329"></a><span class="lineno"> 1329</span>&#160; <span class="keywordtype">bool</span> err = req-&gt;result &lt; 0;</div><div class="line"><a name="l01330"></a><span class="lineno"> 1330</span>&#160; <span class="keywordflow">return</span> std::make_pair(!err, std::make_pair(static_cast&lt;char *&gt;(req-&gt;ptr), err ? 0 : std::size_t(req-&gt;result)));</div><div class="line"><a name="l01331"></a><span class="lineno"> 1331</span>&#160; }</div><div class="line"><a name="l01332"></a><span class="lineno"> 1332</span>&#160;</div><div class="line"><a name="l01341"></a><span class="lineno"><a class="line" href="classuvw_1_1FsReq.html#a28d902dd9cf40ac2d5435887ae158c86"> 1341</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classuvw_1_1FsReq.html#a28d902dd9cf40ac2d5435887ae158c86">realpath</a>(std::string path) {</div><div class="line"><a name="l01342"></a><span class="lineno"> 1342</span>&#160; cleanupAndInvoke(&amp;uv_fs_realpath, parent(), <span class="keyword">get</span>(), path.data(), &amp;fsGenericCallback&lt;Type::REALPATH&gt;);</div><div class="line"><a name="l01343"></a><span class="lineno"> 1343</span>&#160; }</div><div class="line"><a name="l01344"></a><span class="lineno"> 1344</span>&#160;</div><div class="line"><a name="l01354"></a><span class="lineno"><a class="line" href="classuvw_1_1FsReq.html#ad76955cf2c6605f1e5dbfa0046978453"> 1354</a></span>&#160; std::pair&lt;bool, const char *&gt; <a class="code" href="classuvw_1_1FsReq.html#ad76955cf2c6605f1e5dbfa0046978453">realpathSync</a>(std::string path) {</div><div class="line"><a name="l01355"></a><span class="lineno"> 1355</span>&#160; <span class="keyword">auto</span> req = <span class="keyword">get</span>();</div><div class="line"><a name="l01356"></a><span class="lineno"> 1356</span>&#160; cleanupAndInvokeSync(&amp;uv_fs_realpath, parent(), req, path.data());</div><div class="line"><a name="l01357"></a><span class="lineno"> 1357</span>&#160; <span class="keywordflow">return</span> std::make_pair(!(req-&gt;result &lt; 0), req-&gt;path);</div><div class="line"><a name="l01358"></a><span class="lineno"> 1358</span>&#160; }</div><div class="line"><a name="l01359"></a><span class="lineno"> 1359</span>&#160;</div><div class="line"><a name="l01370"></a><span class="lineno"><a class="line" href="classuvw_1_1FsReq.html#a23709516bc1d4a04d3416c7f28fe25ae"> 1370</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classuvw_1_1FsReq.html#a23709516bc1d4a04d3416c7f28fe25ae">chown</a>(std::string path, <a class="code" href="namespaceuvw.html#a01d13fc4b5d1b58c936fdbf15c4d0a10">Uid</a> uid, <a class="code" href="namespaceuvw.html#a82c74b9200b97f2e1668fe2719eef72e">Gid</a> gid) {</div><div class="line"><a name="l01371"></a><span class="lineno"> 1371</span>&#160; cleanupAndInvoke(&amp;uv_fs_chown, parent(), <span class="keyword">get</span>(), path.data(), uid, gid, &amp;fsGenericCallback&lt;Type::CHOWN&gt;);</div><div class="line"><a name="l01372"></a><span class="lineno"> 1372</span>&#160; }</div><div class="line"><a name="l01373"></a><span class="lineno"> 1373</span>&#160;</div><div class="line"><a name="l01381"></a><span class="lineno"><a class="line" href="classuvw_1_1FsReq.html#a0adb8408a8d2f707d2f9c045788011e9"> 1381</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classuvw_1_1FsReq.html#a0adb8408a8d2f707d2f9c045788011e9">chownSync</a>(std::string path, <a class="code" href="namespaceuvw.html#a01d13fc4b5d1b58c936fdbf15c4d0a10">Uid</a> uid, <a class="code" href="namespaceuvw.html#a82c74b9200b97f2e1668fe2719eef72e">Gid</a> gid) {</div><div class="line"><a name="l01382"></a><span class="lineno"> 1382</span>&#160; <span class="keyword">auto</span> req = <span class="keyword">get</span>();</div><div class="line"><a name="l01383"></a><span class="lineno"> 1383</span>&#160; cleanupAndInvokeSync(&amp;uv_fs_chown, parent(), req, path.data(), uid, gid);</div><div class="line"><a name="l01384"></a><span class="lineno"> 1384</span>&#160; <span class="keywordflow">return</span> !(req-&gt;result &lt; 0);</div><div class="line"><a name="l01385"></a><span class="lineno"> 1385</span>&#160; }</div><div class="line"><a name="l01386"></a><span class="lineno"> 1386</span>&#160;</div><div class="line"><a name="l01397"></a><span class="lineno"><a class="line" href="classuvw_1_1FsReq.html#ac12b4c0cc91cb5704cebfc6f6b4afcb2"> 1397</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classuvw_1_1FsReq.html#ac12b4c0cc91cb5704cebfc6f6b4afcb2">lchown</a>(std::string path, <a class="code" href="namespaceuvw.html#a01d13fc4b5d1b58c936fdbf15c4d0a10">Uid</a> uid, <a class="code" href="namespaceuvw.html#a82c74b9200b97f2e1668fe2719eef72e">Gid</a> gid) {</div><div class="line"><a name="l01398"></a><span class="lineno"> 1398</span>&#160; cleanupAndInvoke(&amp;uv_fs_lchown, parent(), <span class="keyword">get</span>(), path.data(), uid, gid, &amp;fsGenericCallback&lt;Type::LCHOWN&gt;);</div><div class="line"><a name="l01399"></a><span class="lineno"> 1399</span>&#160; }</div><div class="line"><a name="l01400"></a><span class="lineno"> 1400</span>&#160;</div><div class="line"><a name="l01408"></a><span class="lineno"><a class="line" href="classuvw_1_1FsReq.html#a598f1bc27e771e1f36033a85c61a45ec"> 1408</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classuvw_1_1FsReq.html#a598f1bc27e771e1f36033a85c61a45ec">lchownSync</a>(std::string path, <a class="code" href="namespaceuvw.html#a01d13fc4b5d1b58c936fdbf15c4d0a10">Uid</a> uid, <a class="code" href="namespaceuvw.html#a82c74b9200b97f2e1668fe2719eef72e">Gid</a> gid) {</div><div class="line"><a name="l01409"></a><span class="lineno"> 1409</span>&#160; <span class="keyword">auto</span> req = <span class="keyword">get</span>();</div><div class="line"><a name="l01410"></a><span class="lineno"> 1410</span>&#160; cleanupAndInvokeSync(&amp;uv_fs_lchown, parent(), req, path.data(), uid, gid);</div><div class="line"><a name="l01411"></a><span class="lineno"> 1411</span>&#160; <span class="keywordflow">return</span> !(req-&gt;result &lt; 0);</div><div class="line"><a name="l01412"></a><span class="lineno"> 1412</span>&#160; }</div><div class="line"><a name="l01413"></a><span class="lineno"> 1413</span>&#160;};</div><div class="line"><a name="l01414"></a><span class="lineno"> 1414</span>&#160;</div><div class="line"><a name="l01415"></a><span class="lineno"> 1415</span>&#160;</div><div class="line"><a name="l01417"></a><span class="lineno"><a class="line" href="structuvw_1_1FsHelper.html"> 1417</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structuvw_1_1FsHelper.html">FsHelper</a> {</div><div class="line"><a name="l01428"></a><span class="lineno"><a class="line" href="structuvw_1_1FsHelper.html#ac961df94619778e94dd039fc657cc395"> 1428</a></span>&#160; <span class="keyword">static</span> <a class="code" href="namespaceuvw.html#ad4b1016f485b28ad7dfd320a593b152b">OSFileDescriptor</a> <a class="code" href="structuvw_1_1FsHelper.html#ac961df94619778e94dd039fc657cc395">handle</a>(<a class="code" href="namespaceuvw.html#a02b7ef3b5a65b0bec1602ef434806a27">FileHandle</a> file) noexcept {</div><div class="line"><a name="l01429"></a><span class="lineno"> 1429</span>&#160; <span class="keywordflow">return</span> uv_get_osfhandle(file);</div><div class="line"><a name="l01430"></a><span class="lineno"> 1430</span>&#160; }</div><div class="line"><a name="l01431"></a><span class="lineno"> 1431</span>&#160;</div><div class="line"><a name="l01442"></a><span class="lineno"><a class="line" href="structuvw_1_1FsHelper.html#ad0367648444b817a1836c49d2e1566e7"> 1442</a></span>&#160; <span class="keyword">static</span> <a class="code" href="namespaceuvw.html#a02b7ef3b5a65b0bec1602ef434806a27">FileHandle</a> <a class="code" href="structuvw_1_1FsHelper.html#ad0367648444b817a1836c49d2e1566e7">open</a>(<a class="code" href="namespaceuvw.html#ad4b1016f485b28ad7dfd320a593b152b">OSFileDescriptor</a> descriptor) noexcept {</div><div class="line"><a name="l01443"></a><span class="lineno"> 1443</span>&#160; <span class="keywordflow">return</span> uv_open_osfhandle(descriptor);</div><div class="line"><a name="l01444"></a><span class="lineno"> 1444</span>&#160; }</div><div class="line"><a name="l01445"></a><span class="lineno"> 1445</span>&#160;};</div><div class="line"><a name="l01446"></a><span class="lineno"> 1446</span>&#160;</div><div class="line"><a name="l01447"></a><span class="lineno"> 1447</span>&#160;</div><div class="line"><a name="l01448"></a><span class="lineno"> 1448</span>&#160;}</div><div class="ttc" id="classuvw_1_1FsReq_html_aabb98930481b954e0f2ad9046f1ab0b7"><div class="ttname"><a href="classuvw_1_1FsReq.html#aabb98930481b954e0f2ad9046f1ab0b7">uvw::FsReq::utime</a></div><div class="ttdeci">void utime(std::string path, Time atime, Time mtime)</div><div class="ttdoc">Async utime. </div><div class="ttdef"><b>Definition:</b> <a href="fs_8hpp_source.html#l01216">fs.hpp:1216</a></div></div>
<div class="ttc" id="classuvw_1_1FileReq_html"><div class="ttname"><a href="classuvw_1_1FileReq.html">uvw::FileReq</a></div><div class="ttdoc">The FileReq request. </div><div class="ttdef"><b>Definition:</b> <a href="fs_8hpp_source.html#l00363">fs.hpp:363</a></div></div>
<div class="ttc" id="structuvw_1_1FsEvent_3_01details_1_1UVFsType_1_1WRITE_01_4_html_acf99a86ae60e6aae7f7088bddeeb932f"><div class="ttname"><a href="structuvw_1_1FsEvent_3_01details_1_1UVFsType_1_1WRITE_01_4.html#acf99a86ae60e6aae7f7088bddeeb932f">uvw::FsEvent&lt; details::UVFsType::WRITE &gt;::path</a></div><div class="ttdeci">const char * path</div><div class="ttdef"><b>Definition:</b> <a href="fs_8hpp_source.html#l00192">fs.hpp:192</a></div></div>
<div class="ttc" id="structuvw_1_1FsEvent_3_01details_1_1UVFsType_1_1SCANDIR_01_4_html_a33305f8800635c30f59accf5a53567ae"><div class="ttname"><a href="structuvw_1_1FsEvent_3_01details_1_1UVFsType_1_1SCANDIR_01_4.html#a33305f8800635c30f59accf5a53567ae">uvw::FsEvent&lt; details::UVFsType::SCANDIR &gt;::size</a></div><div class="ttdeci">std::size_t size</div><div class="ttdef"><b>Definition:</b> <a href="fs_8hpp_source.html#l00278">fs.hpp:278</a></div></div>
<div class="ttc" id="classuvw_1_1FsReq_html_a2c68210c3af3022d692b8089f44f2938"><div class="ttname"><a href="classuvw_1_1FsReq.html#a2c68210c3af3022d692b8089f44f2938">uvw::FsReq::symlink</a></div><div class="ttdeci">void symlink(std::string old, std::string path, Flags&lt; SymLink &gt; flags=Flags&lt; SymLink &gt;{})</div><div class="ttdoc">Async symlink. </div><div class="ttdef"><b>Definition:</b> <a href="fs_8hpp_source.html#l01277">fs.hpp:1277</a></div></div>
<div class="ttc" id="structuvw_1_1FsHelper_html_ac961df94619778e94dd039fc657cc395"><div class="ttname"><a href="structuvw_1_1FsHelper.html#ac961df94619778e94dd039fc657cc395">uvw::FsHelper::handle</a></div><div class="ttdeci">static OSFileDescriptor handle(FileHandle file) noexcept</div><div class="ttdoc">Gets the OS dependent handle. </div><div class="ttdef"><b>Definition:</b> <a href="fs_8hpp_source.html#l01428">fs.hpp:1428</a></div></div>
<div class="ttc" id="classuvw_1_1FileReq_html_a167e0932b8ad887e0f07299f3f05f9e8"><div class="ttname"><a href="classuvw_1_1FileReq.html#a167e0932b8ad887e0f07299f3f05f9e8">uvw::FileReq::truncateSync</a></div><div class="ttdeci">bool truncateSync(int64_t offset)</div><div class="ttdoc">Sync ftruncate. </div><div class="ttdef"><b>Definition:</b> <a href="fs_8hpp_source.html#l00685">fs.hpp:685</a></div></div>
<div class="ttc" id="structuvw_1_1FsEvent_3_01details_1_1UVFsType_1_1READ_01_4_html_a3299d4a34ad076abe7c09b374e1322f9"><div class="ttname"><a href="structuvw_1_1FsEvent_3_01details_1_1UVFsType_1_1READ_01_4.html#a3299d4a34ad076abe7c09b374e1322f9">uvw::FsEvent&lt; details::UVFsType::READ &gt;::size</a></div><div class="ttdeci">std::size_t size</div><div class="ttdef"><b>Definition:</b> <a href="fs_8hpp_source.html#l00176">fs.hpp:176</a></div></div>
<div class="ttc" id="classuvw_1_1FsReq_html_aed77b6a35a13e6b0c2065626aea32a66"><div class="ttname"><a href="classuvw_1_1FsReq.html#aed77b6a35a13e6b0c2065626aea32a66">uvw::FsReq::unlinkSync</a></div><div class="ttdeci">bool unlinkSync(std::string path)</div><div class="ttdoc">Sync unlink. </div><div class="ttdef"><b>Definition:</b> <a href="fs_8hpp_source.html#l00863">fs.hpp:863</a></div></div>
<div class="ttc" id="classuvw_1_1FileReq_html_a522d13b83943aa9f6854f9f81b083c09"><div class="ttname"><a href="classuvw_1_1FileReq.html#a522d13b83943aa9f6854f9f81b083c09">uvw::FileReq::chown</a></div><div class="ttdeci">void chown(Uid uid, Gid gid)</div><div class="ttdoc">Async fchown. </div><div class="ttdef"><b>Definition:</b> <a href="fs_8hpp_source.html#l00784">fs.hpp:784</a></div></div>
<div class="ttc" id="structuvw_1_1FsEvent_3_01details_1_1UVFsType_1_1SENDFILE_01_4_html_a3517ca470723a8d4f4a8e5d82eff0e5f"><div class="ttname"><a href="structuvw_1_1FsEvent_3_01details_1_1UVFsType_1_1SENDFILE_01_4.html#a3517ca470723a8d4f4a8e5d82eff0e5f">uvw::FsEvent&lt; details::UVFsType::SENDFILE &gt;::path</a></div><div class="ttdeci">const char * path</div><div class="ttdef"><b>Definition:</b> <a href="fs_8hpp_source.html#l00209">fs.hpp:209</a></div></div>
<div class="ttc" id="classuvw_1_1FsReq_html_ad0f4a7e6cb8e58ed76f05f6fcc2cc6ac"><div class="ttname"><a href="classuvw_1_1FsReq.html#ad0f4a7e6cb8e58ed76f05f6fcc2cc6ac">uvw::FsReq::readlinkSync</a></div><div class="ttdeci">std::pair&lt; bool, std::pair&lt; const char *, std::size_t &gt; &gt; readlinkSync(std::string path)</div><div class="ttdoc">Sync readlink. </div><div class="ttdef"><b>Definition:</b> <a href="fs_8hpp_source.html#l01326">fs.hpp:1326</a></div></div>
<div class="ttc" id="classuvw_1_1FsReq_html_a72c47c990b174b4cbf9ab77edc300272"><div class="ttname"><a href="classuvw_1_1FsReq.html#a72c47c990b174b4cbf9ab77edc300272">uvw::FsReq::access</a></div><div class="ttdeci">void access(std::string path, int mode)</div><div class="ttdoc">Async access. </div><div class="ttdef"><b>Definition:</b> <a href="fs_8hpp_source.html#l01163">fs.hpp:1163</a></div></div>
<div class="ttc" id="classuvw_1_1FileReq_html_a99c13abb2aae436a94ce1d83affb7a6b"><div class="ttname"><a href="classuvw_1_1FileReq.html#a99c13abb2aae436a94ce1d83affb7a6b">uvw::FileReq::datasyncSync</a></div><div class="ttdeci">bool datasyncSync()</div><div class="ttdoc">Sync fdatasync. </div><div class="ttdef"><b>Definition:</b> <a href="fs_8hpp_source.html#l00662">fs.hpp:662</a></div></div>
<div class="ttc" id="namespaceuvw_html_a02b7ef3b5a65b0bec1602ef434806a27"><div class="ttname"><a href="namespaceuvw.html#a02b7ef3b5a65b0bec1602ef434806a27">uvw::FileHandle</a></div><div class="ttdeci">details::UVTypeWrapper&lt; uv_file &gt; FileHandle</div><div class="ttdef"><b>Definition:</b> <a href="util_8hpp_source.html#l00199">util.hpp:199</a></div></div>
<div class="ttc" id="structuvw_1_1FsEvent_3_01details_1_1UVFsType_1_1LSTAT_01_4_html_aacd6afbcf30d80e234cf7c73651b2398"><div class="ttname"><a href="structuvw_1_1FsEvent_3_01details_1_1UVFsType_1_1LSTAT_01_4.html#aacd6afbcf30d80e234cf7c73651b2398">uvw::FsEvent&lt; details::UVFsType::LSTAT &gt;::stat</a></div><div class="ttdeci">Stat stat</div><div class="ttdef"><b>Definition:</b> <a href="fs_8hpp_source.html#l00261">fs.hpp:261</a></div></div>
<div class="ttc" id="structuvw_1_1FsEvent_3_01details_1_1UVFsType_1_1STAT_01_4_html_afc138cecd612b3a24c717b8603102d20"><div class="ttname"><a href="structuvw_1_1FsEvent_3_01details_1_1UVFsType_1_1STAT_01_4.html#afc138cecd612b3a24c717b8603102d20">uvw::FsEvent&lt; details::UVFsType::STAT &gt;::stat</a></div><div class="ttdeci">Stat stat</div><div class="ttdef"><b>Definition:</b> <a href="fs_8hpp_source.html#l00227">fs.hpp:227</a></div></div>
<div class="ttc" id="classuvw_1_1FsReq_html_ac8fc49c377fff5dd36196fe9563aa0ce"><div class="ttname"><a href="classuvw_1_1FsReq.html#ac8fc49c377fff5dd36196fe9563aa0ce">uvw::FsReq::accessSync</a></div><div class="ttdeci">bool accessSync(std::string path, int mode)</div><div class="ttdoc">Sync access. </div><div class="ttdef"><b>Definition:</b> <a href="fs_8hpp_source.html#l01173">fs.hpp:1173</a></div></div>
<div class="ttc" id="classuvw_1_1FsReq_html_aa6f0e37f3a94b73129887f7c25a55103"><div class="ttname"><a href="classuvw_1_1FsReq.html#aa6f0e37f3a94b73129887f7c25a55103">uvw::FsReq::statSync</a></div><div class="ttdeci">std::pair&lt; bool, Stat &gt; statSync(std::string path)</div><div class="ttdoc">Sync stat. </div><div class="ttdef"><b>Definition:</b> <a href="fs_8hpp_source.html#l01038">fs.hpp:1038</a></div></div>
<div class="ttc" id="classuvw_1_1FileReq_html_af3dec41ec463768d57e8577f25abde2b"><div class="ttname"><a href="classuvw_1_1FileReq.html#af3dec41ec463768d57e8577f25abde2b">uvw::FileReq::open</a></div><div class="ttdeci">void open(std::string path, Flags&lt; FileOpen &gt; flags, int mode)</div><div class="ttdoc">Async open. </div><div class="ttdef"><b>Definition:</b> <a href="fs_8hpp_source.html#l00462">fs.hpp:462</a></div></div>
<div class="ttc" id="classuvw_1_1FsReq_html_ad8605ac6a15ac3a2cc7f01a78649ef44"><div class="ttname"><a href="classuvw_1_1FsReq.html#ad8605ac6a15ac3a2cc7f01a78649ef44">uvw::FsReq::chmod</a></div><div class="ttdeci">void chmod(std::string path, int mode)</div><div class="ttdoc">Async chmod. </div><div class="ttdef"><b>Definition:</b> <a href="fs_8hpp_source.html#l01188">fs.hpp:1188</a></div></div>
<div class="ttc" id="classuvw_1_1FileReq_html_a5ced5c83df512a180bdba11f3509085e"><div class="ttname"><a href="classuvw_1_1FileReq.html#a5ced5c83df512a180bdba11f3509085e">uvw::FileReq::utimeSync</a></div><div class="ttdeci">bool utimeSync(Time atime, Time mtime)</div><div class="ttdoc">Sync futime. </div><div class="ttdef"><b>Definition:</b> <a href="fs_8hpp_source.html#l00769">fs.hpp:769</a></div></div>
<div class="ttc" id="classuvw_1_1FsReq_html"><div class="ttname"><a href="classuvw_1_1FsReq.html">uvw::FsReq</a></div><div class="ttdoc">The FsReq request. </div><div class="ttdef"><b>Definition:</b> <a href="fs_8hpp_source.html#l00829">fs.hpp:829</a></div></div>
<div class="ttc" id="classuvw_1_1FsReq_html_aab396c17423fb9a4e235bccd3bbe4ca7"><div class="ttname"><a href="classuvw_1_1FsReq.html#aab396c17423fb9a4e235bccd3bbe4ca7">uvw::FsReq::rmdir</a></div><div class="ttdeci">void rmdir(std::string path)</div><div class="ttdoc">Async rmdir. </div><div class="ttdef"><b>Definition:</b> <a href="fs_8hpp_source.html#l00929">fs.hpp:929</a></div></div>
<div class="ttc" id="classuvw_1_1FsReq_html_acdb6c21ea26624e727d2a1862e6e004a"><div class="ttname"><a href="classuvw_1_1FsReq.html#acdb6c21ea26624e727d2a1862e6e004a">uvw::FsReq::chmodSync</a></div><div class="ttdeci">bool chmodSync(std::string path, int mode)</div><div class="ttdoc">Sync chmod. </div><div class="ttdef"><b>Definition:</b> <a href="fs_8hpp_source.html#l01198">fs.hpp:1198</a></div></div>
<div class="ttc" id="classuvw_1_1FsReq_html_a7b34491e0169ff5e80b27a508b6aa1f3"><div class="ttname"><a href="classuvw_1_1FsReq.html#a7b34491e0169ff5e80b27a508b6aa1f3">uvw::FsReq::lstatSync</a></div><div class="ttdeci">std::pair&lt; bool, Stat &gt; lstatSync(std::string path)</div><div class="ttdoc">Sync lstat. </div><div class="ttdef"><b>Definition:</b> <a href="fs_8hpp_source.html#l01065">fs.hpp:1065</a></div></div>
<div class="ttc" id="classuvw_1_1FsReq_html_a88cede82fc90238aee034f6c24c66d1f"><div class="ttname"><a href="classuvw_1_1FsReq.html#a88cede82fc90238aee034f6c24c66d1f">uvw::FsReq::utimeSync</a></div><div class="ttdeci">bool utimeSync(std::string path, Time atime, Time mtime)</div><div class="ttdoc">Sync utime. </div><div class="ttdef"><b>Definition:</b> <a href="fs_8hpp_source.html#l01229">fs.hpp:1229</a></div></div>
<div class="ttc" id="structuvw_1_1FsEvent_3_01details_1_1UVFsType_1_1READ_01_4_html_a7e58b2f3aa466332198e3c5c056505b1"><div class="ttname"><a href="structuvw_1_1FsEvent_3_01details_1_1UVFsType_1_1READ_01_4.html#a7e58b2f3aa466332198e3c5c056505b1">uvw::FsEvent&lt; details::UVFsType::READ &gt;::path</a></div><div class="ttdeci">const char * path</div><div class="ttdef"><b>Definition:</b> <a href="fs_8hpp_source.html#l00174">fs.hpp:174</a></div></div>
<div class="ttc" id="structuvw_1_1FsEvent_3_01details_1_1UVFsType_1_1READ_01_4_html_a8188253040c4dd689df2b38721bf4862"><div class="ttname"><a href="structuvw_1_1FsEvent_3_01details_1_1UVFsType_1_1READ_01_4.html#a8188253040c4dd689df2b38721bf4862">uvw::FsEvent&lt; details::UVFsType::READ &gt;::data</a></div><div class="ttdeci">std::unique_ptr&lt; const char[]&gt; data</div><div class="ttdef"><b>Definition:</b> <a href="fs_8hpp_source.html#l00175">fs.hpp:175</a></div></div>
<div class="ttc" id="structuvw_1_1FsEvent_html"><div class="ttname"><a href="structuvw_1_1FsEvent.html">uvw::FsEvent</a></div><div class="ttdoc">Default FsEvent event. </div><div class="ttdef"><b>Definition:</b> <a href="fs_8hpp_source.html#l00155">fs.hpp:155</a></div></div>
<div class="ttc" id="structuvw_1_1FsEvent_3_01details_1_1UVFsType_1_1STAT_01_4_html_aa34306b4cb02342d72376663f7f833e5"><div class="ttname"><a href="structuvw_1_1FsEvent_3_01details_1_1UVFsType_1_1STAT_01_4.html#aa34306b4cb02342d72376663f7f833e5">uvw::FsEvent&lt; details::UVFsType::STAT &gt;::path</a></div><div class="ttdeci">const char * path</div><div class="ttdef"><b>Definition:</b> <a href="fs_8hpp_source.html#l00226">fs.hpp:226</a></div></div>
<div class="ttc" id="classuvw_1_1FsRequest_html"><div class="ttname"><a href="classuvw_1_1FsRequest.html">uvw::FsRequest</a></div><div class="ttdoc">Base class for FsReq and/or FileReq. </div><div class="ttdef"><b>Definition:</b> <a href="fs_8hpp_source.html#l00306">fs.hpp:306</a></div></div>
<div class="ttc" id="classuvw_1_1FsReq_html_a13e84b77215ee9addf1c4a5bfa20f533"><div class="ttname"><a href="classuvw_1_1FsReq.html#a13e84b77215ee9addf1c4a5bfa20f533">uvw::FsReq::mkdirSync</a></div><div class="ttdeci">bool mkdirSync(std::string path, int mode)</div><div class="ttdoc">Sync mkdir. </div><div class="ttdef"><b>Definition:</b> <a href="fs_8hpp_source.html#l00888">fs.hpp:888</a></div></div>
<div class="ttc" id="namespaceuvw_html_ad4b1016f485b28ad7dfd320a593b152b"><div class="ttname"><a href="namespaceuvw.html#ad4b1016f485b28ad7dfd320a593b152b">uvw::OSFileDescriptor</a></div><div class="ttdeci">details::UVTypeWrapper&lt; uv_os_fd_t &gt; OSFileDescriptor</div><div class="ttdef"><b>Definition:</b> <a href="util_8hpp_source.html#l00201">util.hpp:201</a></div></div>
<div class="ttc" id="classuvw_1_1FsReq_html_ad76955cf2c6605f1e5dbfa0046978453"><div class="ttname"><a href="classuvw_1_1FsReq.html#ad76955cf2c6605f1e5dbfa0046978453">uvw::FsReq::realpathSync</a></div><div class="ttdeci">std::pair&lt; bool, const char * &gt; realpathSync(std::string path)</div><div class="ttdoc">Sync realpath. </div><div class="ttdef"><b>Definition:</b> <a href="fs_8hpp_source.html#l01354">fs.hpp:1354</a></div></div>
<div class="ttc" id="structuvw_1_1FsEvent_3_01details_1_1UVFsType_1_1READLINK_01_4_html_ab49e97c313edbe3d9aa9cae8c6ac89f1"><div class="ttname"><a href="structuvw_1_1FsEvent_3_01details_1_1UVFsType_1_1READLINK_01_4.html#ab49e97c313edbe3d9aa9cae8c6ac89f1">uvw::FsEvent&lt; details::UVFsType::READLINK &gt;::path</a></div><div class="ttdeci">const char * path</div><div class="ttdef"><b>Definition:</b> <a href="fs_8hpp_source.html#l00294">fs.hpp:294</a></div></div>
<div class="ttc" id="classuvw_1_1FileReq_html_ab5ef91c4638b52af13a8a77a2343b413"><div class="ttname"><a href="classuvw_1_1FileReq.html#ab5ef91c4638b52af13a8a77a2343b413">uvw::FileReq::write</a></div><div class="ttdeci">void write(std::unique_ptr&lt; char[]&gt; buf, unsigned int len, int64_t offset)</div><div class="ttdoc">Async write. </div><div class="ttdef"><b>Definition:</b> <a href="fs_8hpp_source.html#l00561">fs.hpp:561</a></div></div>
<div class="ttc" id="classuvw_1_1FsReq_html_a0adb8408a8d2f707d2f9c045788011e9"><div class="ttname"><a href="classuvw_1_1FsReq.html#a0adb8408a8d2f707d2f9c045788011e9">uvw::FsReq::chownSync</a></div><div class="ttdeci">bool chownSync(std::string path, Uid uid, Gid gid)</div><div class="ttdoc">Sync chown. </div><div class="ttdef"><b>Definition:</b> <a href="fs_8hpp_source.html#l01381">fs.hpp:1381</a></div></div>
<div class="ttc" id="classuvw_1_1FileReq_html_a24884d3d814759dcc079f29720b6056c"><div class="ttname"><a href="classuvw_1_1FileReq.html#a24884d3d814759dcc079f29720b6056c">uvw::FileReq::chmod</a></div><div class="ttdeci">void chmod(int mode)</div><div class="ttdoc">Async fchmod. </div><div class="ttdef"><b>Definition:</b> <a href="fs_8hpp_source.html#l00731">fs.hpp:731</a></div></div>
<div class="ttc" id="classuvw_1_1FsReq_html_aa1b5c7c02f39ea85fd605a2ee4892f0d"><div class="ttname"><a href="classuvw_1_1FsReq.html#aa1b5c7c02f39ea85fd605a2ee4892f0d">uvw::FsReq::rename</a></div><div class="ttdeci">void rename(std::string old, std::string path)</div><div class="ttdoc">Async rename. </div><div class="ttdef"><b>Definition:</b> <a href="fs_8hpp_source.html#l01080">fs.hpp:1080</a></div></div>
<div class="ttc" id="classuvw_1_1FileReq_html_a88f20c4c68999e57e23eac208ff73a35"><div class="ttname"><a href="classuvw_1_1FileReq.html#a88f20c4c68999e57e23eac208ff73a35">uvw::FileReq::close</a></div><div class="ttdeci">void close()</div><div class="ttdoc">Async close. </div><div class="ttdef"><b>Definition:</b> <a href="fs_8hpp_source.html#l00409">fs.hpp:409</a></div></div>
<div class="ttc" id="structuvw_1_1FsEvent_3_01details_1_1UVFsType_1_1READLINK_01_4_html_a615b71ef9075e468c5f771a68bc263a6"><div class="ttname"><a href="structuvw_1_1FsEvent_3_01details_1_1UVFsType_1_1READLINK_01_4.html#a615b71ef9075e468c5f771a68bc263a6">uvw::FsEvent&lt; details::UVFsType::READLINK &gt;::size</a></div><div class="ttdeci">std::size_t size</div><div class="ttdef"><b>Definition:</b> <a href="fs_8hpp_source.html#l00296">fs.hpp:296</a></div></div>
<div class="ttc" id="classuvw_1_1FsReq_html_ac38dd1e2182572e8b6b1c8be769e4123"><div class="ttname"><a href="classuvw_1_1FsReq.html#ac38dd1e2182572e8b6b1c8be769e4123">uvw::FsReq::scandir</a></div><div class="ttdeci">void scandir(std::string path, int flags)</div><div class="ttdoc">Async scandir. </div><div class="ttdef"><b>Definition:</b> <a href="fs_8hpp_source.html#l00953">fs.hpp:953</a></div></div>
<div class="ttc" id="classuvw_1_1FsReq_html_a43777f251d2e81046403ddde8b61b3bc"><div class="ttname"><a href="classuvw_1_1FsReq.html#a43777f251d2e81046403ddde8b61b3bc">uvw::FsReq::scandirNext</a></div><div class="ttdeci">std::pair&lt; bool, Entry &gt; scandirNext()</div><div class="ttdoc">Gets entries populated with the next directory entry data. </div><div class="ttdef"><b>Definition:</b> <a href="fs_8hpp_source.html#l01003">fs.hpp:1003</a></div></div>
<div class="ttc" id="classuvw_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_8hpp_source.html#l00090">util.hpp:90</a></div></div>
<div class="ttc" id="classuvw_1_1FsReq_html_aa70a69613e49bb83e3873eaf37dddf3f"><div class="ttname"><a href="classuvw_1_1FsReq.html#aa70a69613e49bb83e3873eaf37dddf3f">uvw::FsReq::mkdtempSync</a></div><div class="ttdeci">std::pair&lt; bool, const char * &gt; mkdtempSync(std::string tpl)</div><div class="ttdoc">Sync mktemp. </div><div class="ttdef"><b>Definition:</b> <a href="fs_8hpp_source.html#l00915">fs.hpp:915</a></div></div>
<div class="ttc" id="classuvw_1_1FsReq_html_ac12b4c0cc91cb5704cebfc6f6b4afcb2"><div class="ttname"><a href="classuvw_1_1FsReq.html#ac12b4c0cc91cb5704cebfc6f6b4afcb2">uvw::FsReq::lchown</a></div><div class="ttdeci">void lchown(std::string path, Uid uid, Gid gid)</div><div class="ttdoc">Async lchown. </div><div class="ttdef"><b>Definition:</b> <a href="fs_8hpp_source.html#l01397">fs.hpp:1397</a></div></div>
<div class="ttc" id="structuvw_1_1FsHelper_html_ad0367648444b817a1836c49d2e1566e7"><div class="ttname"><a href="structuvw_1_1FsHelper.html#ad0367648444b817a1836c49d2e1566e7">uvw::FsHelper::open</a></div><div class="ttdeci">static FileHandle open(OSFileDescriptor descriptor) noexcept</div><div class="ttdoc">Gets the file descriptor. </div><div class="ttdef"><b>Definition:</b> <a href="fs_8hpp_source.html#l01442">fs.hpp:1442</a></div></div>
<div class="ttc" id="classuvw_1_1FsReq_html_a6253ea10b84b9524c756a3dfea6c0cfb"><div class="ttname"><a href="classuvw_1_1FsReq.html#a6253ea10b84b9524c756a3dfea6c0cfb">uvw::FsReq::symlinkSync</a></div><div class="ttdeci">bool symlinkSync(std::string old, std::string path, Flags&lt; SymLink &gt; flags=Flags&lt; SymLink &gt;{})</div><div class="ttdoc">Sync symlink. </div><div class="ttdef"><b>Definition:</b> <a href="fs_8hpp_source.html#l01296">fs.hpp:1296</a></div></div>
<div class="ttc" id="classuvw_1_1FsReq_html_a7fd7083a410ac2c7181dcdc809fee90a"><div class="ttname"><a href="classuvw_1_1FsReq.html#a7fd7083a410ac2c7181dcdc809fee90a">uvw::FsReq::mkdir</a></div><div class="ttdeci">void mkdir(std::string path, int mode)</div><div class="ttdoc">Async mkdir. </div><div class="ttdef"><b>Definition:</b> <a href="fs_8hpp_source.html#l00878">fs.hpp:878</a></div></div>
<div class="ttc" id="classuvw_1_1FsReq_html_a39106328d144083174374792b8239bae"><div class="ttname"><a href="classuvw_1_1FsReq.html#a39106328d144083174374792b8239bae">uvw::FsReq::unlink</a></div><div class="ttdeci">void unlink(std::string path)</div><div class="ttdoc">Async unlink. </div><div class="ttdef"><b>Definition:</b> <a href="fs_8hpp_source.html#l00854">fs.hpp:854</a></div></div>
<div class="ttc" id="structuvw_1_1FsEvent_3_01details_1_1UVFsType_1_1SCANDIR_01_4_html_a64307b81aaa9d5c334199e15d26f09d5"><div class="ttname"><a href="structuvw_1_1FsEvent_3_01details_1_1UVFsType_1_1SCANDIR_01_4.html#a64307b81aaa9d5c334199e15d26f09d5">uvw::FsEvent&lt; details::UVFsType::SCANDIR &gt;::path</a></div><div class="ttdeci">const char * path</div><div class="ttdef"><b>Definition:</b> <a href="fs_8hpp_source.html#l00277">fs.hpp:277</a></div></div>
<div class="ttc" id="classuvw_1_1FileReq_html_a6d8b78f0fb64a8fee0e3a874f2dc2455"><div class="ttname"><a href="classuvw_1_1FileReq.html#a6d8b78f0fb64a8fee0e3a874f2dc2455">uvw::FileReq::statSync</a></div><div class="ttdeci">std::pair&lt; bool, Stat &gt; statSync()</div><div class="ttdoc">Sync fstat. </div><div class="ttdef"><b>Definition:</b> <a href="fs_8hpp_source.html#l00622">fs.hpp:622</a></div></div>
<div class="ttc" id="classuvw_1_1FileReq_html_a70356eb203b8617bc554ba0c37fa680f"><div class="ttname"><a href="classuvw_1_1FileReq.html#a70356eb203b8617bc554ba0c37fa680f">uvw::FileReq::sync</a></div><div class="ttdeci">void sync()</div><div class="ttdoc">Async fsync. </div><div class="ttdef"><b>Definition:</b> <a href="fs_8hpp_source.html#l00634">fs.hpp:634</a></div></div>
<div class="ttc" id="classuvw_1_1FileReq_html_a8946af1c2071a7fd89e79e3a3c9f409e"><div class="ttname"><a href="classuvw_1_1FileReq.html#a8946af1c2071a7fd89e79e3a3c9f409e">uvw::FileReq::stat</a></div><div class="ttdeci">void stat()</div><div class="ttdoc">Async fstat. </div><div class="ttdef"><b>Definition:</b> <a href="fs_8hpp_source.html#l00611">fs.hpp:611</a></div></div>
<div class="ttc" id="classuvw_1_1FileReq_html_a387579205e35a358c8f756424f165849"><div class="ttname"><a href="classuvw_1_1FileReq.html#a387579205e35a358c8f756424f165849">uvw::FileReq::writeSync</a></div><div class="ttdeci">std::pair&lt; bool, std::size_t &gt; writeSync(std::unique_ptr&lt; char[]&gt; buf, unsigned int len, int64_t offset)</div><div class="ttdoc">Sync write. </div><div class="ttdef"><b>Definition:</b> <a href="fs_8hpp_source.html#l00596">fs.hpp:596</a></div></div>
<div class="ttc" id="classuvw_1_1FileReq_html_a55c257e01bd448b09be66406ab43f165"><div class="ttname"><a href="classuvw_1_1FileReq.html#a55c257e01bd448b09be66406ab43f165">uvw::FileReq::syncSync</a></div><div class="ttdeci">bool syncSync()</div><div class="ttdoc">Sync fsync. </div><div class="ttdef"><b>Definition:</b> <a href="fs_8hpp_source.html#l00642">fs.hpp:642</a></div></div>
<div class="ttc" id="classuvw_1_1FileReq_html_a8c7e40372ca19806f5864576278ed82e"><div class="ttname"><a href="classuvw_1_1FileReq.html#a8c7e40372ca19806f5864576278ed82e">uvw::FileReq::utime</a></div><div class="ttdeci">void utime(Time atime, Time mtime)</div><div class="ttdoc">Async futime. </div><div class="ttdef"><b>Definition:</b> <a href="fs_8hpp_source.html#l00757">fs.hpp:757</a></div></div>
<div class="ttc" id="structuvw_1_1FsEvent_3_01details_1_1UVFsType_1_1FSTAT_01_4_html_abf3ace261d7781a528dbedc39b7971a4"><div class="ttname"><a href="structuvw_1_1FsEvent_3_01details_1_1UVFsType_1_1FSTAT_01_4.html#abf3ace261d7781a528dbedc39b7971a4">uvw::FsEvent&lt; details::UVFsType::FSTAT &gt;::stat</a></div><div class="ttdeci">Stat stat</div><div class="ttdef"><b>Definition:</b> <a href="fs_8hpp_source.html#l00244">fs.hpp:244</a></div></div>
<div class="ttc" id="classuvw_1_1FsReq_html_a00a7b04ee79f86789567a6f5c638cc7b"><div class="ttname"><a href="classuvw_1_1FsReq.html#a00a7b04ee79f86789567a6f5c638cc7b">uvw::FsReq::rmdirSync</a></div><div class="ttdeci">bool rmdirSync(std::string path)</div><div class="ttdoc">Sync rmdir. </div><div class="ttdef"><b>Definition:</b> <a href="fs_8hpp_source.html#l00938">fs.hpp:938</a></div></div>
<div class="ttc" id="classuvw_1_1FileReq_html_af736e79ca10967b98cc63100b5e0ef71"><div class="ttname"><a href="classuvw_1_1FileReq.html#af736e79ca10967b98cc63100b5e0ef71">uvw::FileReq::openSync</a></div><div class="ttdeci">bool openSync(std::string path, Flags&lt; FileOpen &gt; flags, int mode)</div><div class="ttdoc">Sync open. </div><div class="ttdef"><b>Definition:</b> <a href="fs_8hpp_source.html#l00502">fs.hpp:502</a></div></div>
<div class="ttc" id="classuvw_1_1FileReq_html_a23bc385a7ebdb6eb149b3311cb630ab3"><div class="ttname"><a href="classuvw_1_1FileReq.html#a23bc385a7ebdb6eb149b3311cb630ab3">uvw::FileReq::datasync</a></div><div class="ttdeci">void datasync()</div><div class="ttdoc">Async fdatasync. </div><div class="ttdef"><b>Definition:</b> <a href="fs_8hpp_source.html#l00654">fs.hpp:654</a></div></div>
<div class="ttc" id="namespaceuvw_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_8hpp_source.html#l00211">util.hpp:211</a></div></div>
<div class="ttc" id="namespaceuvw_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_8hpp_source.html#l00210">util.hpp:210</a></div></div>
<div class="ttc" id="classuvw_1_1FsReq_html_ae6092d3602b2f2601a8476dbfdcd7fad"><div class="ttname"><a href="classuvw_1_1FsReq.html#ae6092d3602b2f2601a8476dbfdcd7fad">uvw::FsReq::readlink</a></div><div class="ttdeci">void readlink(std::string path)</div><div class="ttdoc">Async readlink. </div><div class="ttdef"><b>Definition:</b> <a href="fs_8hpp_source.html#l01310">fs.hpp:1310</a></div></div>
<div class="ttc" id="classuvw_1_1FileReq_html_a6a7a53cc446b7da0210bf38f1bbd64bf"><div class="ttname"><a href="classuvw_1_1FileReq.html#a6a7a53cc446b7da0210bf38f1bbd64bf">uvw::FileReq::closeSync</a></div><div class="ttdeci">bool closeSync()</div><div class="ttdoc">Sync close. </div><div class="ttdef"><b>Definition:</b> <a href="fs_8hpp_source.html#l00417">fs.hpp:417</a></div></div>
<div class="ttc" id="classuvw_1_1FileReq_html_a4455e109576e0c34859f450f0cccde7e"><div class="ttname"><a href="classuvw_1_1FileReq.html#a4455e109576e0c34859f450f0cccde7e">uvw::FileReq::readSync</a></div><div class="ttdeci">std::pair&lt; bool, std::pair&lt; std::unique_ptr&lt; const char[]&gt;, std::size_t &gt; &gt; readSync(int64_t offset, unsigned int len)</div><div class="ttdoc">Sync read. </div><div class="ttdef"><b>Definition:</b> <a href="fs_8hpp_source.html#l00538">fs.hpp:538</a></div></div>
<div class="ttc" id="classuvw_1_1FileReq_html_a2c09c5b523f648fd77250d08689ba85c"><div class="ttname"><a href="classuvw_1_1FileReq.html#a2c09c5b523f648fd77250d08689ba85c">uvw::FileReq::chmodSync</a></div><div class="ttdeci">bool chmodSync(int mode)</div><div class="ttdoc">Sync fchmod. </div><div class="ttdef"><b>Definition:</b> <a href="fs_8hpp_source.html#l00740">fs.hpp:740</a></div></div>
<div class="ttc" id="classuvw_1_1FsReq_html_af17350e99079cf7359f9ba1e5e825578"><div class="ttname"><a href="classuvw_1_1FsReq.html#af17350e99079cf7359f9ba1e5e825578">uvw::FsReq::lstat</a></div><div class="ttdeci">void lstat(std::string path)</div><div class="ttdoc">Async lstat. </div><div class="ttdef"><b>Definition:</b> <a href="fs_8hpp_source.html#l01052">fs.hpp:1052</a></div></div>
<div class="ttc" id="classuvw_1_1FsReq_html_a598f1bc27e771e1f36033a85c61a45ec"><div class="ttname"><a href="classuvw_1_1FsReq.html#a598f1bc27e771e1f36033a85c61a45ec">uvw::FsReq::lchownSync</a></div><div class="ttdeci">bool lchownSync(std::string path, Uid uid, Gid gid)</div><div class="ttdoc">Sync lchown. </div><div class="ttdef"><b>Definition:</b> <a href="fs_8hpp_source.html#l01408">fs.hpp:1408</a></div></div>
<div class="ttc" id="structuvw_1_1ErrorEvent_html"><div class="ttname"><a href="structuvw_1_1ErrorEvent.html">uvw::ErrorEvent</a></div><div class="ttdoc">The ErrorEvent event. </div><div class="ttdef"><b>Definition:</b> <a href="emitter_8hpp_source.html#l00023">emitter.hpp:23</a></div></div>
<div class="ttc" id="classuvw_1_1FileReq_html_a0839e8352179af6604493aee4b69cb2d"><div class="ttname"><a href="classuvw_1_1FileReq.html#a0839e8352179af6604493aee4b69cb2d">uvw::FileReq::sendfileSync</a></div><div class="ttdeci">std::pair&lt; bool, std::size_t &gt; sendfileSync(FileHandle out, int64_t offset, std::size_t length)</div><div class="ttdoc">Sync sendfile. </div><div class="ttdef"><b>Definition:</b> <a href="fs_8hpp_source.html#l00716">fs.hpp:716</a></div></div>
<div class="ttc" id="classuvw_1_1FsReq_html_a8b19c4cfea989183c42ad399ee99096f"><div class="ttname"><a href="classuvw_1_1FsReq.html#a8b19c4cfea989183c42ad399ee99096f">uvw::FsReq::mkdtemp</a></div><div class="ttdeci">void mkdtemp(std::string tpl)</div><div class="ttdoc">Async mktemp. </div><div class="ttdef"><b>Definition:</b> <a href="fs_8hpp_source.html#l00902">fs.hpp:902</a></div></div>
<div class="ttc" id="classuvw_1_1FsReq_html_a7e0183c8a94d4acb064e2b665caae85d"><div class="ttname"><a href="classuvw_1_1FsReq.html#a7e0183c8a94d4acb064e2b665caae85d">uvw::FsReq::link</a></div><div class="ttdeci">void link(std::string old, std::string path)</div><div class="ttdoc">Async link. </div><div class="ttdef"><b>Definition:</b> <a href="fs_8hpp_source.html#l01244">fs.hpp:1244</a></div></div>
<div class="ttc" id="structuvw_1_1FsEvent_3_01details_1_1UVFsType_1_1READLINK_01_4_html_a432df89b9a83e69e693a2f791015189a"><div class="ttname"><a href="structuvw_1_1FsEvent_3_01details_1_1UVFsType_1_1READLINK_01_4.html#a432df89b9a83e69e693a2f791015189a">uvw::FsEvent&lt; details::UVFsType::READLINK &gt;::data</a></div><div class="ttdeci">const char * data</div><div class="ttdef"><b>Definition:</b> <a href="fs_8hpp_source.html#l00295">fs.hpp:295</a></div></div>
<div class="ttc" id="classuvw_1_1FsReq_html_a23709516bc1d4a04d3416c7f28fe25ae"><div class="ttname"><a href="classuvw_1_1FsReq.html#a23709516bc1d4a04d3416c7f28fe25ae">uvw::FsReq::chown</a></div><div class="ttdeci">void chown(std::string path, Uid uid, Gid gid)</div><div class="ttdoc">Async chown. </div><div class="ttdef"><b>Definition:</b> <a href="fs_8hpp_source.html#l01370">fs.hpp:1370</a></div></div>
<div class="ttc" id="classuvw_1_1FsReq_html_a7ca6e1a9454cf174dbd3776623fcf118"><div class="ttname"><a href="classuvw_1_1FsReq.html#a7ca6e1a9454cf174dbd3776623fcf118">uvw::FsReq::renameSync</a></div><div class="ttdeci">bool renameSync(std::string old, std::string path)</div><div class="ttdoc">Sync rename. </div><div class="ttdef"><b>Definition:</b> <a href="fs_8hpp_source.html#l01090">fs.hpp:1090</a></div></div>
<div class="ttc" id="structuvw_1_1FsEvent_3_01details_1_1UVFsType_1_1SENDFILE_01_4_html_ad415182ea71f836fae67d7c297c327d2"><div class="ttname"><a href="structuvw_1_1FsEvent_3_01details_1_1UVFsType_1_1SENDFILE_01_4.html#ad415182ea71f836fae67d7c297c327d2">uvw::FsEvent&lt; details::UVFsType::SENDFILE &gt;::size</a></div><div class="ttdeci">std::size_t size</div><div class="ttdef"><b>Definition:</b> <a href="fs_8hpp_source.html#l00210">fs.hpp:210</a></div></div>
<div class="ttc" id="classuvw_1_1FileReq_html_a222bb36d1317171e08a13779a20f4239"><div class="ttname"><a href="classuvw_1_1FileReq.html#a222bb36d1317171e08a13779a20f4239">uvw::FileReq::truncate</a></div><div class="ttdeci">void truncate(int64_t offset)</div><div class="ttdoc">Async ftruncate. </div><div class="ttdef"><b>Definition:</b> <a href="fs_8hpp_source.html#l00676">fs.hpp:676</a></div></div>
<div class="ttc" id="classuvw_1_1FsReq_html_a42522dc4f9f94d711b74d048d0d59fd5"><div class="ttname"><a href="classuvw_1_1FsReq.html#a42522dc4f9f94d711b74d048d0d59fd5">uvw::FsReq::linkSync</a></div><div class="ttdeci">bool linkSync(std::string old, std::string path)</div><div class="ttdoc">Sync link. </div><div class="ttdef"><b>Definition:</b> <a href="fs_8hpp_source.html#l01254">fs.hpp:1254</a></div></div>
<div class="ttc" id="structuvw_1_1FsEvent_html_a66085f0f9c89f398449180debf3a12d3"><div class="ttname"><a href="structuvw_1_1FsEvent.html#a66085f0f9c89f398449180debf3a12d3">uvw::FsEvent::path</a></div><div class="ttdeci">const char * path</div><div class="ttdef"><b>Definition:</b> <a href="fs_8hpp_source.html#l00158">fs.hpp:158</a></div></div>
<div class="ttc" id="classuvw_1_1FsReq_html_a28d902dd9cf40ac2d5435887ae158c86"><div class="ttname"><a href="classuvw_1_1FsReq.html#a28d902dd9cf40ac2d5435887ae158c86">uvw::FsReq::realpath</a></div><div class="ttdeci">void realpath(std::string path)</div><div class="ttdoc">Async realpath. </div><div class="ttdef"><b>Definition:</b> <a href="fs_8hpp_source.html#l01341">fs.hpp:1341</a></div></div>
<div class="ttc" id="classuvw_1_1FsReq_html_a438fa29b48973093b2d08854f09faab3"><div class="ttname"><a href="classuvw_1_1FsReq.html#a438fa29b48973093b2d08854f09faab3">uvw::FsReq::copyfile</a></div><div class="ttdeci">void copyfile(std::string old, std::string path, Flags&lt; CopyFile &gt; flags=Flags&lt; CopyFile &gt;{})</div><div class="ttdoc">Copies a file asynchronously from a path to a new one. </div><div class="ttdef"><b>Definition:</b> <a href="fs_8hpp_source.html#l01125">fs.hpp:1125</a></div></div>
<div class="ttc" id="classuvw_1_1FileReq_html_a9eff819bdc6c56b9a05d6e3228e176fc"><div class="ttname"><a href="classuvw_1_1FileReq.html#a9eff819bdc6c56b9a05d6e3228e176fc">uvw::FileReq::read</a></div><div class="ttdeci">void read(int64_t offset, unsigned int len)</div><div class="ttdoc">Async read. </div><div class="ttdef"><b>Definition:</b> <a href="fs_8hpp_source.html#l00518">fs.hpp:518</a></div></div>
<div class="ttc" id="structuvw_1_1FsEvent_3_01details_1_1UVFsType_1_1WRITE_01_4_html_ac701c23c5947d7336684282146414be5"><div class="ttname"><a href="structuvw_1_1FsEvent_3_01details_1_1UVFsType_1_1WRITE_01_4.html#ac701c23c5947d7336684282146414be5">uvw::FsEvent&lt; details::UVFsType::WRITE &gt;::size</a></div><div class="ttdeci">std::size_t size</div><div class="ttdef"><b>Definition:</b> <a href="fs_8hpp_source.html#l00193">fs.hpp:193</a></div></div>
<div class="ttc" id="classuvw_1_1FileReq_html_aa9e84393e87644e066be5625dec438ac"><div class="ttname"><a href="classuvw_1_1FileReq.html#aa9e84393e87644e066be5625dec438ac">uvw::FileReq::write</a></div><div class="ttdeci">void write(char *buf, unsigned int len, int64_t offset)</div><div class="ttdoc">Async write. </div><div class="ttdef"><b>Definition:</b> <a href="fs_8hpp_source.html#l00580">fs.hpp:580</a></div></div>
<div class="ttc" id="namespaceuvw_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_8hpp_source.html#l00209">util.hpp:209</a></div></div>
<div class="ttc" id="structuvw_1_1FsHelper_html"><div class="ttname"><a href="structuvw_1_1FsHelper.html">uvw::FsHelper</a></div><div class="ttdoc">Helper functions. </div><div class="ttdef"><b>Definition:</b> <a href="fs_8hpp_source.html#l01417">fs.hpp:1417</a></div></div>
<div class="ttc" id="classuvw_1_1FsReq_html_a46f27584db373c0f1d5d49a11f8d4789"><div class="ttname"><a href="classuvw_1_1FsReq.html#a46f27584db373c0f1d5d49a11f8d4789">uvw::FsReq::stat</a></div><div class="ttdeci">void stat(std::string path)</div><div class="ttdoc">Async stat. </div><div class="ttdef"><b>Definition:</b> <a href="fs_8hpp_source.html#l01025">fs.hpp:1025</a></div></div>
<div class="ttc" id="classuvw_1_1FsReq_html_ae092009fbd3ea78675be886ed282b8da"><div class="ttname"><a href="classuvw_1_1FsReq.html#ae092009fbd3ea78675be886ed282b8da">uvw::FsReq::copyfileSync</a></div><div class="ttdeci">bool copyfileSync(std::string old, std::string path, Flags&lt; CopyFile &gt; flags=Flags&lt; CopyFile &gt;{})</div><div class="ttdoc">Copies a file synchronously from a path to a new one. </div><div class="ttdef"><b>Definition:</b> <a href="fs_8hpp_source.html#l01148">fs.hpp:1148</a></div></div>
<div class="ttc" id="structuvw_1_1FsEvent_3_01details_1_1UVFsType_1_1FSTAT_01_4_html_a9b1de3c8ba2c450694d13cbfda22bf75"><div class="ttname"><a href="structuvw_1_1FsEvent_3_01details_1_1UVFsType_1_1FSTAT_01_4.html#a9b1de3c8ba2c450694d13cbfda22bf75">uvw::FsEvent&lt; details::UVFsType::FSTAT &gt;::path</a></div><div class="ttdeci">const char * path</div><div class="ttdef"><b>Definition:</b> <a href="fs_8hpp_source.html#l00243">fs.hpp:243</a></div></div>
<div class="ttc" id="classuvw_1_1FileReq_html_a9dc41646b349bafd6685b6690a181c09"><div class="ttname"><a href="classuvw_1_1FileReq.html#a9dc41646b349bafd6685b6690a181c09">uvw::FileReq::sendfile</a></div><div class="ttdeci">void sendfile(FileHandle out, int64_t offset, std::size_t length)</div><div class="ttdoc">Async sendfile. </div><div class="ttdef"><b>Definition:</b> <a href="fs_8hpp_source.html#l00701">fs.hpp:701</a></div></div>
<div class="ttc" id="structuvw_1_1FsEvent_3_01details_1_1UVFsType_1_1LSTAT_01_4_html_a1f7410e088c02e2dd1f420e8e8876845"><div class="ttname"><a href="structuvw_1_1FsEvent_3_01details_1_1UVFsType_1_1LSTAT_01_4.html#a1f7410e088c02e2dd1f420e8e8876845">uvw::FsEvent&lt; details::UVFsType::LSTAT &gt;::path</a></div><div class="ttdeci">const char * path</div><div class="ttdef"><b>Definition:</b> <a href="fs_8hpp_source.html#l00260">fs.hpp:260</a></div></div>
<div class="ttc" id="classuvw_1_1FsReq_html_a3503daf23c25d49714fd78796f4c0d36"><div class="ttname"><a href="classuvw_1_1FsReq.html#a3503daf23c25d49714fd78796f4c0d36">uvw::FsReq::scandirSync</a></div><div class="ttdeci">std::pair&lt; bool, std::size_t &gt; scandirSync(std::string path, int flags)</div><div class="ttdoc">Sync scandir. </div><div class="ttdef"><b>Definition:</b> <a href="fs_8hpp_source.html#l00967">fs.hpp:967</a></div></div>
<div class="ttc" id="classuvw_1_1FileReq_html_a7480624e5ca058037e3fa987251b84da"><div class="ttname"><a href="classuvw_1_1FileReq.html#a7480624e5ca058037e3fa987251b84da">uvw::FileReq::chownSync</a></div><div class="ttdeci">bool chownSync(Uid uid, Gid gid)</div><div class="ttdoc">Sync fchown. </div><div class="ttdef"><b>Definition:</b> <a href="fs_8hpp_source.html#l00794">fs.hpp:794</a></div></div>
<div class="ttc" id="namespaceuvw_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_8hpp_source.html#l00011">async.hpp:11</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
</body>
</html>