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

github.com/windirstat/llfio.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'classllfio__v2__xxx_1_1directory__handle.html')
-rw-r--r--classllfio__v2__xxx_1_1directory__handle.html75
1 files changed, 43 insertions, 32 deletions
diff --git a/classllfio__v2__xxx_1_1directory__handle.html b/classllfio__v2__xxx_1_1directory__handle.html
index 30c959f2..f3f88dc7 100644
--- a/classllfio__v2__xxx_1_1directory__handle.html
+++ b/classllfio__v2__xxx_1_1directory__handle.html
@@ -228,14 +228,18 @@ virtual result&lt; void &gt;&#160;</td><td class="memItemRight" valign="bottom">
<tr class="separator:aa0b7dc541e6188fed2950444089fed6c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af7f8ed6432546aa2a26bb98fc719d96a"><td class="memItemLeft" align="right" valign="top">virtual result&lt; <a class="el" href="structllfio__v2__xxx_1_1directory__handle_1_1enumerate__info.html">enumerate_info</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classllfio__v2__xxx_1_1directory__handle.html#af7f8ed6432546aa2a26bb98fc719d96a">enumerate</a> (<a class="el" href="structllfio__v2__xxx_1_1directory__handle_1_1buffers__type.html">buffers_type</a> &amp;&amp;tofill, <a class="el" href="classllfio__v2__xxx_1_1path__view.html">path_view_type</a> glob=<a class="el" href="classllfio__v2__xxx_1_1path__view.html">path_view_type</a>(), <a class="el" href="classllfio__v2__xxx_1_1directory__handle.html#a54d63e0972dee77ef1f0ff14bd4f9207">filter</a> filtering=<a class="el" href="classllfio__v2__xxx_1_1directory__handle.html#a54d63e0972dee77ef1f0ff14bd4f9207a14847befc159c1492671b53718fc46f8">filter::fastdeleted</a>, span&lt; char &gt; kernelbuffer=span&lt; char &gt;()) const noexcept</td></tr>
<tr class="separator:af7f8ed6432546aa2a26bb98fc719d96a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8752c5e4f4189c7bdfcd6eccb637bef9"><td class="memItemLeft" align="right" valign="top"><a id="a8752c5e4f4189c7bdfcd6eccb637bef9"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classllfio__v2__xxx_1_1path__handle.html#a8752c5e4f4189c7bdfcd6eccb637bef9">swap</a> (<a class="el" href="classllfio__v2__xxx_1_1path__handle.html">path_handle</a> &amp;o) noexcept</td></tr>
+<tr class="memdesc:a8752c5e4f4189c7bdfcd6eccb637bef9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Swap with another instance. <br /></td></tr>
+<tr class="separator:a8752c5e4f4189c7bdfcd6eccb637bef9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4716696b8700953889006251e0678aa4"><td class="memItemLeft" align="right" valign="top"><a id="a4716696b8700953889006251e0678aa4"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classllfio__v2__xxx_1_1handle.html#a4716696b8700953889006251e0678aa4">swap</a> (<a class="el" href="classllfio__v2__xxx_1_1handle.html">handle</a> &amp;o) noexcept</td></tr>
<tr class="memdesc:a4716696b8700953889006251e0678aa4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Swap with another instance. <br /></td></tr>
<tr class="separator:a4716696b8700953889006251e0678aa4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae260bf811da1b17c142f51fbb53476bf"><td class="memItemLeft" align="right" valign="top">result&lt; <a class="el" href="classllfio__v2__xxx_1_1path__handle.html">path_handle</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classllfio__v2__xxx_1_1path__handle.html#ae260bf811da1b17c142f51fbb53476bf">clone</a> () const noexcept</td></tr>
+<tr class="separator:ae260bf811da1b17c142f51fbb53476bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a00a85eec5a41f7edb2c574d40cf04535"><td class="memItemLeft" align="right" valign="top">virtual result&lt; path_type &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classllfio__v2__xxx_1_1handle.html#a00a85eec5a41f7edb2c574d40cf04535">current_path</a> () const noexcept</td></tr>
<tr class="separator:a00a85eec5a41f7edb2c574d40cf04535"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aeea4389189021b94dde6d8f2c3ccc5b3"><td class="memItemLeft" align="right" valign="top">result&lt; <a class="el" href="classllfio__v2__xxx_1_1handle.html">handle</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classllfio__v2__xxx_1_1handle.html#aeea4389189021b94dde6d8f2c3ccc5b3">clone</a> () const noexcept</td></tr>
-<tr class="separator:aeea4389189021b94dde6d8f2c3ccc5b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1d273e38c061eb11f5012f624e9a202e"><td class="memItemLeft" align="right" valign="top"><a id="a1d273e38c061eb11f5012f624e9a202e"></a>
virtual <a class="el" href="structllfio__v2__xxx_1_1native__handle__type.html">native_handle_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classllfio__v2__xxx_1_1handle.html#a1d273e38c061eb11f5012f624e9a202e">release</a> () noexcept</td></tr>
<tr class="memdesc:a1d273e38c061eb11f5012f624e9a202e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Release the native handle type managed by this handle. <br /></td></tr>
@@ -477,8 +481,36 @@ ino_t&#160;</td><td class="memItemRight" valign="bottom"><b>_inode</b> {0}</td><
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
+<a id="ae260bf811da1b17c142f51fbb53476bf"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ae260bf811da1b17c142f51fbb53476bf">&#9670;&nbsp;</a></span>clone() <span class="overload">[1/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">result&lt;<a class="el" href="classllfio__v2__xxx_1_1path__handle.html">path_handle</a>&gt; llfio_v2_xxx::path_handle::clone </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span><span class="mlabel">inherited</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<p>Clone this handle (copy constructor is disabled to avoid accidental copying). </p>
+<div class="fragment"><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; {</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keyword">auto</span> *h = <span class="keyword">static_cast&lt;</span><span class="keyword">const </span><a class="code" href="classllfio__v2__xxx_1_1handle.html#aea43917ff5cc28f3da3c622c0b3382c4">handle</a> *<span class="keyword">&gt;</span>(<span class="keyword">this</span>);</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; OUTCOME_TRY(ret, h-&gt;clone());</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keyword">auto</span> nativeh = ret.release();</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classllfio__v2__xxx_1_1path__handle.html#a01603d237d7f48f649abebd25bb7daaf">path_handle</a>(nativeh);</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; }</div><div class="ttc" id="classllfio__v2__xxx_1_1handle_html_aea43917ff5cc28f3da3c622c0b3382c4"><div class="ttname"><a href="classllfio__v2__xxx_1_1handle.html#aea43917ff5cc28f3da3c622c0b3382c4">llfio_v2_xxx::handle::handle</a></div><div class="ttdeci">constexpr handle()</div><div class="ttdoc">Default constructor. </div><div class="ttdef"><b>Definition:</b> handle.hpp:180</div></div>
+<div class="ttc" id="classllfio__v2__xxx_1_1path__handle_html_a01603d237d7f48f649abebd25bb7daaf"><div class="ttname"><a href="classllfio__v2__xxx_1_1path__handle.html#a01603d237d7f48f649abebd25bb7daaf">llfio_v2_xxx::path_handle::path_handle</a></div><div class="ttdeci">constexpr path_handle()</div><div class="ttdoc">Default constructor. </div><div class="ttdef"><b>Definition:</b> path_handle.hpp:66</div></div>
+</div><!-- fragment -->
+</div>
+</div>
<a id="a7c4b83dfd27ddf3c0551fd795d4a5817"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a7c4b83dfd27ddf3c0551fd795d4a5817">&#9670;&nbsp;</a></span>clone() <span class="overload">[1/2]</span></h2>
+<h2 class="memtitle"><span class="permalink"><a href="#a7c4b83dfd27ddf3c0551fd795d4a5817">&#9670;&nbsp;</a></span>clone() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
@@ -523,33 +555,6 @@ ino_t&#160;</td><td class="memItemRight" valign="bottom"><b>_inode</b> {0}</td><
</div>
</div>
-<a id="aeea4389189021b94dde6d8f2c3ccc5b3"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#aeea4389189021b94dde6d8f2c3ccc5b3">&#9670;&nbsp;</a></span>clone() <span class="overload">[2/2]</span></h2>
-
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">result&lt;<a class="el" href="classllfio__v2__xxx_1_1handle.html">handle</a>&gt; llfio_v2_xxx::handle::clone </td>
- <td>(</td>
- <td class="paramname"></td><td>)</td>
- <td> const</td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span><span class="mlabel">inherited</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-<p>Clone this handle (copy constructor is disabled to avoid accidental copying)</p>
-<dl class="section user"><dt>Errors returnable</dt><dd>Any of the values POSIX dup() or DuplicateHandle() can return. </dd></dl>
-
-</div>
-</div>
<a id="aa0b7dc541e6188fed2950444089fed6c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa0b7dc541e6188fed2950444089fed6c">&#9670;&nbsp;</a></span>clone_to_path_handle()</h2>
@@ -607,6 +612,8 @@ ino_t&#160;</td><td class="memItemRight" valign="bottom"><b>_inode</b> {0}</td><
<dl class="section user"><dt>Memory Allocations</dt><dd>At least one malloc for the <code>path_type</code>, likely several more. </dd></dl>
<dl class="section see"><dt>See also</dt><dd><code>algorithm::cached_parent_handle_adapter&lt;T&gt;</code> which overrides this with an implementation based on retrieving the current path of a cached handle to the parent directory. On platforms with instability or failure to retrieve the correct current path for regular files, the cached parent handle adapter works around the problem by taking advantage of directory inodes not having the same instability problems on any platform. </dd></dl>
+<p>Reimplemented in <a class="el" href="classllfio__v2__xxx_1_1symlink__handle.html#aea44ed050acfd8e4f9dec59ff194c746">llfio_v2_xxx::symlink_handle</a>.</p>
+
</div>
</div>
<a id="a1acc9714116df8fbb0651d912a870495"></a>
@@ -824,7 +831,7 @@ ino_t&#160;</td><td class="memItemRight" valign="bottom"><b>_inode</b> {0}</td><
</table>
</div><div class="memdoc">
<p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p>
-<div class="fragment"><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;{ <span class="keywordflow">return</span> <a class="code" href="classllfio__v2__xxx_1_1path__handle.html#a579c3752604c65325d16a6f8c818c6ab">path</a>(<a class="code" href="classllfio__v2__xxx_1_1path__handle.html#a01603d237d7f48f649abebd25bb7daaf">path_handle</a>(), _path); }</div><div class="ttc" id="classllfio__v2__xxx_1_1path__handle_html_a01603d237d7f48f649abebd25bb7daaf"><div class="ttname"><a href="classllfio__v2__xxx_1_1path__handle.html#a01603d237d7f48f649abebd25bb7daaf">llfio_v2_xxx::path_handle::path_handle</a></div><div class="ttdeci">constexpr path_handle()</div><div class="ttdoc">Default constructor. </div><div class="ttdef"><b>Definition:</b> path_handle.hpp:66</div></div>
+<div class="fragment"><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;{ <span class="keywordflow">return</span> <a class="code" href="classllfio__v2__xxx_1_1path__handle.html#a579c3752604c65325d16a6f8c818c6ab">path</a>(<a class="code" href="classllfio__v2__xxx_1_1path__handle.html#a01603d237d7f48f649abebd25bb7daaf">path_handle</a>(), _path); }</div><div class="ttc" id="classllfio__v2__xxx_1_1path__handle_html_a01603d237d7f48f649abebd25bb7daaf"><div class="ttname"><a href="classllfio__v2__xxx_1_1path__handle.html#a01603d237d7f48f649abebd25bb7daaf">llfio_v2_xxx::path_handle::path_handle</a></div><div class="ttdeci">constexpr path_handle()</div><div class="ttdoc">Default constructor. </div><div class="ttdef"><b>Definition:</b> path_handle.hpp:66</div></div>
<div class="ttc" id="classllfio__v2__xxx_1_1path__handle_html_a579c3752604c65325d16a6f8c818c6ab"><div class="ttname"><a href="classllfio__v2__xxx_1_1path__handle.html#a579c3752604c65325d16a6f8c818c6ab">llfio_v2_xxx::path_handle::path</a></div><div class="ttdeci">static result&lt; path_handle &gt; path(const path_handle &amp;base, path_view_type path) noexcept</div></div>
</div><!-- fragment -->
</div>
@@ -877,7 +884,7 @@ ino_t&#160;</td><td class="memItemRight" valign="bottom"><b>_inode</b> {0}</td><
<p>Create a directory handle creating a randomly named file on a path. The file is opened exclusively with <code>creation::only_if_not_exist</code> so it will never collide with nor overwrite any existing entry.</p>
<dl class="section user"><dt>Errors returnable</dt><dd>Any of the values POSIX open() or CreateFile() can return. </dd></dl>
<div class="fragment"><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; {</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keywordflow">try</span></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; <span class="keywordflow">for</span>(;;)</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; {</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keyword">auto</span> randomname = <a class="code" href="namespacellfio__v2__xxx_1_1utils.html#a6a29cf29a4b097411f6c1e5274bfb417">utils::random_string</a>(32);</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; result&lt;directory_handle&gt; ret = <a class="code" href="classllfio__v2__xxx_1_1directory__handle.html#a1acc9714116df8fbb0651d912a870495">directory</a>(dirpath, randomname, _mode, creation::only_if_not_exist, _caching, <a class="code" href="classllfio__v2__xxx_1_1handle.html#a013936bc1254b1a47567fe29698d1b1c">flags</a>);</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keywordflow">if</span>(ret || (!ret &amp;&amp; ret.error() != errc::file_exists))</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; {</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keywordflow">return</span> ret;</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; }</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; }</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; }</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keywordflow">catch</span>(...)</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; <span class="keywordflow">return</span> error_from_exception();</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; }</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; }</div><div class="ttc" id="classllfio__v2__xxx_1_1handle_html_a013936bc1254b1a47567fe29698d1b1c"><div class="ttname"><a href="classllfio__v2__xxx_1_1handle.html#a013936bc1254b1a47567fe29698d1b1c">llfio_v2_xxx::handle::flags</a></div><div class="ttdeci">flag flags() const noexcept</div><div class="ttdoc">The flags this handle was opened with. </div><div class="ttdef"><b>Definition:</b> handle.hpp:315</div></div>
-<div class="ttc" id="namespacellfio__v2__xxx_1_1utils_html_a6a29cf29a4b097411f6c1e5274bfb417"><div class="ttname"><a href="namespacellfio__v2__xxx_1_1utils.html#a6a29cf29a4b097411f6c1e5274bfb417">llfio_v2_xxx::utils::random_string</a></div><div class="ttdeci">std::string random_string(size_t randomlen)</div><div class="ttdoc">Returns a cryptographically random string capable of being used as a filename. Essentially random_fil...</div><div class="ttdef"><b>Definition:</b> utils.hpp:134</div></div>
+<div class="ttc" id="namespacellfio__v2__xxx_1_1utils_html_a6a29cf29a4b097411f6c1e5274bfb417"><div class="ttname"><a href="namespacellfio__v2__xxx_1_1utils.html#a6a29cf29a4b097411f6c1e5274bfb417">llfio_v2_xxx::utils::random_string</a></div><div class="ttdeci">std::string random_string(size_t randomlen)</div><div class="ttdoc">Returns a cryptographically random string capable of being used as a filename. Essentially random_fil...</div><div class="ttdef"><b>Definition:</b> utils.hpp:133</div></div>
<div class="ttc" id="classllfio__v2__xxx_1_1directory__handle_html_a1acc9714116df8fbb0651d912a870495"><div class="ttname"><a href="classllfio__v2__xxx_1_1directory__handle.html#a1acc9714116df8fbb0651d912a870495">llfio_v2_xxx::directory_handle::directory</a></div><div class="ttdeci">static result&lt; directory_handle &gt; directory(const path_handle &amp;base, path_view_type path, mode _mode=mode::read, creation _creation=creation::open_existing, caching _caching=caching::all, flag flags=flag::none) noexcept</div></div>
</div><!-- fragment -->
</div>
@@ -940,6 +947,8 @@ ino_t&#160;</td><td class="memItemRight" valign="bottom"><b>_inode</b> {0}</td><
</dl>
<dl class="section user"><dt>Memory Allocations</dt><dd>Except on platforms with race free syscalls for renaming open handles (Windows), calls <code>current_path()</code> via <code>parent_path_handle()</code> and thus is both expensive and calls malloc many times. </dd></dl>
+<p>Reimplemented in <a class="el" href="classllfio__v2__xxx_1_1symlink__handle.html#afea9ef2b36cac3f6dfcae7555ca3303c">llfio_v2_xxx::symlink_handle</a>.</p>
+
</div>
</div>
<a id="a101620e9fff0c0e8c346af0e9de58b6a"></a>
@@ -1065,6 +1074,8 @@ ino_t&#160;</td><td class="memItemRight" valign="bottom"><b>_inode</b> {0}</td><
</dl>
<dl class="section user"><dt>Memory Allocations</dt><dd>Except on platforms with race free syscalls for unlinking open handles (Windows), calls <code>current_path()</code> and thus is both expensive and calls malloc many times. On Windows, also calls <code>current_path()</code> if <code>flag::disable_safety_unlinks</code> is not set. </dd></dl>
+<p>Reimplemented in <a class="el" href="classllfio__v2__xxx_1_1symlink__handle.html#a002c9dab669604d58e08aa8f4dbc99c8">llfio_v2_xxx::symlink_handle</a>.</p>
+
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>