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 'classafio__v2__xxx_1_1section__handle.html')
-rw-r--r--classafio__v2__xxx_1_1section__handle.html16
1 files changed, 10 insertions, 6 deletions
diff --git a/classafio__v2__xxx_1_1section__handle.html b/classafio__v2__xxx_1_1section__handle.html
index 15680883..bee5fea2 100644
--- a/classafio__v2__xxx_1_1section__handle.html
+++ b/classafio__v2__xxx_1_1section__handle.html
@@ -200,6 +200,10 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
flag&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1section__handle.html#a0f95ed462d97954df59e6b56625ce899">section_flags</a> () const noexcept</td></tr>
<tr class="memdesc:a0f95ed462d97954df59e6b56625ce899"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the memory section's flags. <br /></td></tr>
<tr class="separator:a0f95ed462d97954df59e6b56625ce899"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a111bb9698b6180e9f211e27816f8a4da"><td class="memItemLeft" align="right" valign="top"><a id="a111bb9698b6180e9f211e27816f8a4da"></a>
+bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1section__handle.html#a111bb9698b6180e9f211e27816f8a4da">is_nvram</a> () const noexcept</td></tr>
+<tr class="memdesc:a111bb9698b6180e9f211e27816f8a4da"><td class="mdescLeft">&#160;</td><td class="mdescRight">True if the section reflects non-volatile RAM. <br /></td></tr>
+<tr class="separator:a111bb9698b6180e9f211e27816f8a4da"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acdebf8de23e97950968d3fba84141366"><td class="memItemLeft" align="right" valign="top"><a id="acdebf8de23e97950968d3fba84141366"></a>
<a class="el" href="classafio__v2__xxx_1_1file__handle.html">file_handle</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1section__handle.html#acdebf8de23e97950968d3fba84141366">backing</a> () const noexcept</td></tr>
<tr class="memdesc:acdebf8de23e97950968d3fba84141366"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the borrowed handle backing this section, if any. <br /></td></tr>
@@ -344,7 +348,7 @@ flag&#160;</td><td class="memItemRight" valign="bottom"><b>_flags</b> {flag::non
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>A handle to a source of mapped memory. </p>
-<p>There are two configurations of section handle, one where the user supplies the file backing for the section and the other where an internal file descriptor to an unnamed inode in a tmpfs or ramfs based temporary directory is kept and managed. The latter is merely a convenience for creating an anonymous source of memory which can be resized whilst preserving contents: see <code>algorithm::trivial_vector&lt;T&gt;</code>.</p>
+<p>There are two configurations of section handle, one where the user supplies the file backing for the section, and the other where an internal file descriptor to an unnamed inode in a tmpfs or ramfs based temporary directory is kept and managed. The latter is merely a convenience for creating an anonymous source of memory which can be resized whilst preserving contents: see <code>algorithm::trivial_vector&lt;T&gt;</code>.</p>
<p>On Windows the native handle of this handle is that of the NT kernel section object. On POSIX it is a cloned file descriptor of the backing storage if there is backing storage, else it will be the aforementioned file descriptor to an unnamed inode. </p>
</div><h2 class="groupheader">Member Enumeration Documentation</h2>
<a id="a6f7e37c73271968271c2342023f58c9e"></a>
@@ -412,7 +416,7 @@ flag&#160;</td><td class="memItemRight" valign="bottom"><b>_flags</b> {flag::non
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a45ff5c1c5662623d99156870dfeee0a7a244f58cf07c35fd48d7524b289551e5c"></a>truncate&#160;</td><td class="fielddoc"><p>Atomically truncate on open, leaving creation date unmodified. </p>
</td></tr>
</table>
-<div class="fragment"><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; : <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span></div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; {</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; open_existing = 0,</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; only_if_not_exist,</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; if_needed,</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <a class="code" href="namespaceafio__v2__xxx.html#a84d22c966fcabe50de30ad8cf26c7241">truncate</a> <span class="comment">//!&lt; Atomically truncate on open, leaving creation date unmodified.</span></div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="comment"></span> <span class="comment">// NOTE: IF UPDATING THIS UPDATE THE std::ostream PRINTER BELOW!!!</span></div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; };</div><div class="ttc" id="namespaceafio__v2__xxx_html_a84d22c966fcabe50de30ad8cf26c7241"><div class="ttname"><a href="namespaceafio__v2__xxx.html#a84d22c966fcabe50de30ad8cf26c7241">afio_v2_xxx::truncate</a></div><div class="ttdeci">result&lt; file_handle::extent_type &gt; truncate(file_handle &amp;self, file_handle::extent_type newsize) noexcept</div><div class="ttdef"><b>Definition:</b> file_handle.hpp:375</div></div>
+<div class="fragment"><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; : <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span></div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; {</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; open_existing = 0,</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; only_if_not_exist,</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; if_needed,</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <a class="code" href="namespaceafio__v2__xxx.html#a84d22c966fcabe50de30ad8cf26c7241">truncate</a> <span class="comment">//!&lt; Atomically truncate on open, leaving creation date unmodified.</span></div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="comment"></span> <span class="comment">// NOTE: IF UPDATING THIS UPDATE THE std::ostream PRINTER BELOW!!!</span></div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; };</div><div class="ttc" id="namespaceafio__v2__xxx_html_a84d22c966fcabe50de30ad8cf26c7241"><div class="ttname"><a href="namespaceafio__v2__xxx.html#a84d22c966fcabe50de30ad8cf26c7241">afio_v2_xxx::truncate</a></div><div class="ttdeci">result&lt; file_handle::extent_type &gt; truncate(file_handle &amp;self, file_handle::extent_type newsize) noexcept</div><div class="ttdef"><b>Definition:</b> file_handle.hpp:373</div></div>
</div><!-- fragment -->
</div>
</div>
@@ -451,8 +455,8 @@ flag&#160;</td><td class="memItemRight" valign="bottom"><b>_flags</b> {flag::non
<tr><td class="fieldname"><a id="a0489b6c1e25cd2bad2ba1ec86e1aaf18a9516dfb15f51c7ee19a4d46b8c0dbe1d"></a>append&#160;</td><td class="fielddoc"><p>All mainstream OSs and CIFS guarantee this is atomic with respect to all other appenders (FILE_APPEND_DATA|SYNCHRONISE or O_APPEND) </p>
</td></tr>
</table>
-<div class="fragment"><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; : <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <span class="comment">// bit 0 set means writable</span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; {</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; unchanged = 0,</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; none = 2, <span class="comment">//!&lt; No ability to read or write anything, but can synchronise (SYNCHRONIZE or 0)</span></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="comment"></span> attr_read = 4, <span class="comment">//!&lt; Ability to read attributes (FILE_READ_ATTRIBUTES|SYNCHRONIZE or O_RDONLY)</span></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="comment"></span> attr_write = 5, <span class="comment">//!&lt; Ability to read and write attributes (FILE_READ_ATTRIBUTES|FILE_WRITE_ATTRIBUTES|SYNCHRONIZE or O_RDONLY)</span></div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="comment"></span> <a class="code" href="namespaceafio__v2__xxx.html#a3cff8f3910dbf47663e5df1dc7e5ba47">read</a> = 6, <span class="comment">//!&lt; Ability to read (READ_CONTROL|FILE_READ_DATA|FILE_READ_ATTRIBUTES|FILE_READ_EA|SYNCHRONISE or O_RDONLY)</span></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="comment"></span> <a class="code" href="namespaceafio__v2__xxx.html#a2d15768d28ea660ebe44901508ed3372">write</a> = 7, <span class="comment">//!&lt; Ability to read and write (READ_CONTROL|FILE_READ_DATA|FILE_READ_ATTRIBUTES|FILE_READ_EA|FILE_WRITE_DATA|FILE_WRITE_ATTRIBUTES|FILE_WRITE_EA|FILE_APPEND_DATA|SYNCHRONISE or O_RDWR)</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="comment"></span> append = 9 <span class="comment">//!&lt; All mainstream OSs and CIFS guarantee this is atomic with respect to all other appenders (FILE_APPEND_DATA|SYNCHRONISE or O_APPEND)</span></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="comment"></span> <span class="comment">// NOTE: IF UPDATING THIS UPDATE THE std::ostream PRINTER BELOW!!!</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; };</div><div class="ttc" id="namespaceafio__v2__xxx_html_a3cff8f3910dbf47663e5df1dc7e5ba47"><div class="ttname"><a href="namespaceafio__v2__xxx.html#a3cff8f3910dbf47663e5df1dc7e5ba47">afio_v2_xxx::read</a></div><div class="ttdeci">io_handle::io_result&lt; io_handle::buffers_type &gt; read(io_handle &amp;self, io_handle::io_request&lt; io_handle::buffers_type &gt; reqs, deadline d=deadline()) noexcept</div><div class="ttdoc">Read data from the open handle. </div><div class="ttdef"><b>Definition:</b> io_handle.hpp:470</div></div>
-<div class="ttc" id="namespaceafio__v2__xxx_html_a2d15768d28ea660ebe44901508ed3372"><div class="ttname"><a href="namespaceafio__v2__xxx.html#a2d15768d28ea660ebe44901508ed3372">afio_v2_xxx::write</a></div><div class="ttdeci">io_handle::io_result&lt; io_handle::const_buffers_type &gt; write(io_handle &amp;self, io_handle::io_request&lt; io_handle::const_buffers_type &gt; reqs, deadline d=deadline()) noexcept</div><div class="ttdoc">Write data to the open handle. </div><div class="ttdef"><b>Definition:</b> io_handle.hpp:496</div></div>
+<div class="fragment"><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; : <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <span class="comment">// bit 0 set means writable</span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; {</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; unchanged = 0,</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; none = 2, <span class="comment">//!&lt; No ability to read or write anything, but can synchronise (SYNCHRONIZE or 0)</span></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="comment"></span> attr_read = 4, <span class="comment">//!&lt; Ability to read attributes (FILE_READ_ATTRIBUTES|SYNCHRONIZE or O_RDONLY)</span></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="comment"></span> attr_write = 5, <span class="comment">//!&lt; Ability to read and write attributes (FILE_READ_ATTRIBUTES|FILE_WRITE_ATTRIBUTES|SYNCHRONIZE or O_RDONLY)</span></div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="comment"></span> <a class="code" href="namespaceafio__v2__xxx.html#a3cff8f3910dbf47663e5df1dc7e5ba47">read</a> = 6, <span class="comment">//!&lt; Ability to read (READ_CONTROL|FILE_READ_DATA|FILE_READ_ATTRIBUTES|FILE_READ_EA|SYNCHRONISE or O_RDONLY)</span></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="comment"></span> <a class="code" href="namespaceafio__v2__xxx.html#a2d15768d28ea660ebe44901508ed3372">write</a> = 7, <span class="comment">//!&lt; Ability to read and write (READ_CONTROL|FILE_READ_DATA|FILE_READ_ATTRIBUTES|FILE_READ_EA|FILE_WRITE_DATA|FILE_WRITE_ATTRIBUTES|FILE_WRITE_EA|FILE_APPEND_DATA|SYNCHRONISE or O_RDWR)</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="comment"></span> append = 9 <span class="comment">//!&lt; All mainstream OSs and CIFS guarantee this is atomic with respect to all other appenders (FILE_APPEND_DATA|SYNCHRONISE or O_APPEND)</span></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="comment"></span> <span class="comment">// NOTE: IF UPDATING THIS UPDATE THE std::ostream PRINTER BELOW!!!</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; };</div><div class="ttc" id="namespaceafio__v2__xxx_html_a3cff8f3910dbf47663e5df1dc7e5ba47"><div class="ttname"><a href="namespaceafio__v2__xxx.html#a3cff8f3910dbf47663e5df1dc7e5ba47">afio_v2_xxx::read</a></div><div class="ttdeci">io_handle::io_result&lt; io_handle::buffers_type &gt; read(io_handle &amp;self, io_handle::io_request&lt; io_handle::buffers_type &gt; reqs, deadline d=deadline()) noexcept</div><div class="ttdoc">Read data from the open handle. </div><div class="ttdef"><b>Definition:</b> io_handle.hpp:473</div></div>
+<div class="ttc" id="namespaceafio__v2__xxx_html_a2d15768d28ea660ebe44901508ed3372"><div class="ttname"><a href="namespaceafio__v2__xxx.html#a2d15768d28ea660ebe44901508ed3372">afio_v2_xxx::write</a></div><div class="ttdeci">io_handle::io_result&lt; io_handle::const_buffers_type &gt; write(io_handle &amp;self, io_handle::io_request&lt; io_handle::const_buffers_type &gt; reqs, deadline d=deadline()) noexcept</div><div class="ttdoc">Write data to the open handle. </div><div class="ttdef"><b>Definition:</b> io_handle.hpp:504</div></div>
</div><!-- fragment -->
</div>
</div>
@@ -612,8 +616,8 @@ flag&#160;</td><td class="memItemRight" valign="bottom"><b>_flags</b> {flag::non
</dl>
<p>This convenience overload create a writable section if the backing file is writable, otherwise a read-only section.</p>
<dl class="section user"><dt>Errors returnable</dt><dd>Any of the values POSIX dup(), open() or NtCreateSection() can return. </dd></dl>
-<div class="fragment"><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;{ <span class="keywordflow">return</span> <a class="code" href="classafio__v2__xxx_1_1section__handle.html#a7e69ae5094da2517f2ed0bd046d18302">section</a>(<a class="code" href="classafio__v2__xxx_1_1section__handle.html#acdebf8de23e97950968d3fba84141366">backing</a>, bytes, <a class="code" href="classafio__v2__xxx_1_1section__handle.html#acdebf8de23e97950968d3fba84141366">backing</a>.<a class="code" href="classafio__v2__xxx_1_1handle.html#a5be9a526bc5c1be758b0cfc36a262f6e">is_writable</a>() ? (flag::readwrite) : (<a class="code" href="namespaceafio__v2__xxx.html#ac89289d85eff137c40d3d0084c410656">flag::read</a>)); }</div><div class="ttc" id="namespaceafio__v2__xxx_html_ac89289d85eff137c40d3d0084c410656"><div class="ttname"><a href="namespaceafio__v2__xxx.html#ac89289d85eff137c40d3d0084c410656">afio_v2_xxx::read</a></div><div class="ttdeci">map_handle::io_result&lt; map_handle::buffers_type &gt; read(map_handle &amp;self, map_handle::io_request&lt; map_handle::buffers_type &gt; reqs, deadline d=deadline()) noexcept</div><div class="ttdoc">Read data from the mapped view. </div><div class="ttdef"><b>Definition:</b> map_handle.hpp:511</div></div>
-<div class="ttc" id="classafio__v2__xxx_1_1section__handle_html_acdebf8de23e97950968d3fba84141366"><div class="ttname"><a href="classafio__v2__xxx_1_1section__handle.html#acdebf8de23e97950968d3fba84141366">afio_v2_xxx::section_handle::backing</a></div><div class="ttdeci">file_handle * backing() const noexcept</div><div class="ttdoc">Returns the borrowed handle backing this section, if any. </div><div class="ttdef"><b>Definition:</b> map_handle.hpp:152</div></div>
+<div class="fragment"><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;{ <span class="keywordflow">return</span> <a class="code" href="classafio__v2__xxx_1_1section__handle.html#a7e69ae5094da2517f2ed0bd046d18302">section</a>(<a class="code" href="classafio__v2__xxx_1_1section__handle.html#acdebf8de23e97950968d3fba84141366">backing</a>, bytes, <a class="code" href="classafio__v2__xxx_1_1section__handle.html#acdebf8de23e97950968d3fba84141366">backing</a>.<a class="code" href="classafio__v2__xxx_1_1handle.html#a5be9a526bc5c1be758b0cfc36a262f6e">is_writable</a>() ? (flag::readwrite) : (<a class="code" href="namespaceafio__v2__xxx.html#ac89289d85eff137c40d3d0084c410656">flag::read</a>)); }</div><div class="ttc" id="namespaceafio__v2__xxx_html_ac89289d85eff137c40d3d0084c410656"><div class="ttname"><a href="namespaceafio__v2__xxx.html#ac89289d85eff137c40d3d0084c410656">afio_v2_xxx::read</a></div><div class="ttdeci">map_handle::io_result&lt; map_handle::buffers_type &gt; read(map_handle &amp;self, map_handle::io_request&lt; map_handle::buffers_type &gt; reqs, deadline d=deadline()) noexcept</div><div class="ttdoc">Read data from the mapped view. </div><div class="ttdef"><b>Definition:</b> map_handle.hpp:703</div></div>
+<div class="ttc" id="classafio__v2__xxx_1_1section__handle_html_acdebf8de23e97950968d3fba84141366"><div class="ttname"><a href="classafio__v2__xxx_1_1section__handle.html#acdebf8de23e97950968d3fba84141366">afio_v2_xxx::section_handle::backing</a></div><div class="ttdeci">file_handle * backing() const noexcept</div><div class="ttdoc">Returns the borrowed handle backing this section, if any. </div><div class="ttdef"><b>Definition:</b> map_handle.hpp:155</div></div>
<div class="ttc" id="classafio__v2__xxx_1_1handle_html_a5be9a526bc5c1be758b0cfc36a262f6e"><div class="ttname"><a href="classafio__v2__xxx_1_1handle.html#a5be9a526bc5c1be758b0cfc36a262f6e">afio_v2_xxx::handle::is_writable</a></div><div class="ttdeci">bool is_writable() const noexcept</div><div class="ttdoc">True if the handle is writable. </div><div class="ttdef"><b>Definition:</b> handle.hpp:269</div></div>
<div class="ttc" id="classafio__v2__xxx_1_1section__handle_html_a7e69ae5094da2517f2ed0bd046d18302"><div class="ttname"><a href="classafio__v2__xxx_1_1section__handle.html#a7e69ae5094da2517f2ed0bd046d18302">afio_v2_xxx::section_handle::section</a></div><div class="ttdeci">static result&lt; section_handle &gt; section(file_handle &amp;backing, extent_type maximum_size, flag _flag) noexcept</div><div class="ttdoc">Create a memory section backed by a file. </div></div>
</div><!-- fragment -->