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:
authorJenkins nedprod CI <foo@nowhere>2018-04-08 02:24:40 +0300
committerJenkins nedprod CI <foo@nowhere>2018-04-08 02:24:40 +0300
commitefcc574ee4234e6a8726e0afc0ca50ef60e64623 (patch)
tree6d388753e7b118a0e1cdb8fa7c406156ca5aee66
parent68a5111924e07f61b9f31b025062cec50b1d19de (diff)
Travis CI updates documentation
-rw-r--r--annotated.html4
-rw-r--r--async__file__handle_8hpp.html16
-rw-r--r--async__file__handle_8hpp.js5
-rw-r--r--classafio__v2__xxx_1_1algorithm_1_1cached__parent__handle__adapter.html2
-rw-r--r--classafio__v2__xxx_1_1algorithm_1_1mapped__span-members.html (renamed from classafio__v2__xxx_1_1algorithm_1_1mapped__view-members.html)18
-rw-r--r--classafio__v2__xxx_1_1algorithm_1_1mapped__span.html (renamed from classafio__v2__xxx_1_1algorithm_1_1mapped__view.html)106
-rw-r--r--classafio__v2__xxx_1_1algorithm_1_1mapped__span.js9
-rw-r--r--classafio__v2__xxx_1_1algorithm_1_1mapped__span.pngbin0 -> 701 bytes
-rw-r--r--classafio__v2__xxx_1_1algorithm_1_1mapped__view.js9
-rw-r--r--classafio__v2__xxx_1_1algorithm_1_1mapped__view.pngbin710 -> 0 bytes
-rw-r--r--classafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1atomic__append.html4
-rw-r--r--classafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html4
-rw-r--r--classafio__v2__xxx_1_1algorithm_1_1trivial__vector-members.html4
-rw-r--r--classafio__v2__xxx_1_1algorithm_1_1trivial__vector.html16
-rw-r--r--classafio__v2__xxx_1_1async__file__handle-members.html8
-rw-r--r--classafio__v2__xxx_1_1async__file__handle.html152
-rw-r--r--classafio__v2__xxx_1_1async__file__handle.js6
-rw-r--r--classafio__v2__xxx_1_1file__handle-members.html4
-rw-r--r--classafio__v2__xxx_1_1file__handle.html58
-rw-r--r--classafio__v2__xxx_1_1file__handle.js4
-rw-r--r--classafio__v2__xxx_1_1fs__handle.html2
-rw-r--r--classafio__v2__xxx_1_1handle.html8
-rw-r--r--classafio__v2__xxx_1_1io__handle-members.html4
-rw-r--r--classafio__v2__xxx_1_1io__handle.html56
-rw-r--r--classafio__v2__xxx_1_1io__handle.js4
-rw-r--r--classafio__v2__xxx_1_1map__handle-members.html80
-rw-r--r--classafio__v2__xxx_1_1map__handle.html196
-rw-r--r--classafio__v2__xxx_1_1map__handle.js10
-rw-r--r--classafio__v2__xxx_1_1mapped__file__handle-members.html4
-rw-r--r--classafio__v2__xxx_1_1mapped__file__handle.html58
-rw-r--r--classafio__v2__xxx_1_1mapped__file__handle.js4
-rw-r--r--classafio__v2__xxx_1_1section__handle-members.html73
-rw-r--r--classafio__v2__xxx_1_1section__handle.html16
-rw-r--r--classafio__v2__xxx_1_1section__handle.js1
-rw-r--r--classes.html6
-rw-r--r--config_8hpp.html15
-rw-r--r--config_8hpp.js4
-rw-r--r--dir_c7b3dfb2539fcbb9cef19e5f81ceb887.html4
-rw-r--r--dir_c7b3dfb2539fcbb9cef19e5f81ceb887.js4
-rw-r--r--directory__handle_8hpp.html4
-rw-r--r--directory__handle_8hpp.js2
-rw-r--r--file__handle_8hpp.html8
-rw-r--r--file__handle_8hpp.js4
-rw-r--r--files.html2
-rw-r--r--fs__handle_8hpp.html4
-rw-r--r--fs__handle_8hpp.js2
-rw-r--r--functions_b.html7
-rw-r--r--functions_c.html1
-rw-r--r--functions_e.html2
-rw-r--r--functions_eval.html3
-rw-r--r--functions_func_b.html5
-rw-r--r--functions_func_c.html5
-rw-r--r--functions_func_i.html4
-rw-r--r--functions_func_m.html8
-rw-r--r--functions_func_t.html1
-rw-r--r--functions_func_u.html3
-rw-r--r--functions_i.html4
-rw-r--r--functions_m.html6
-rw-r--r--functions_n.html3
-rw-r--r--functions_s.html2
-rw-r--r--functions_t.html3
-rw-r--r--functions_type.html4
-rw-r--r--functions_u.html3
-rw-r--r--hierarchy.html8
-rw-r--r--hierarchy.js4
-rw-r--r--index.html24
-rw-r--r--io__handle_8hpp.html4
-rw-r--r--io__handle_8hpp.js4
-rw-r--r--map__handle_8hpp.html17
-rw-r--r--map__handle_8hpp.js5
-rw-r--r--mapped__span_8hpp.html (renamed from mapped__view_8hpp.html)12
-rw-r--r--namespaceafio__v2__xxx.html864
-rw-r--r--namespaceafio__v2__xxx_1_1algorithm.html4
-rw-r--r--namespaceafio__v2__xxx_1_1algorithm.js2
-rw-r--r--namespacemembers.html28
-rw-r--r--namespacemembers_func.html28
-rw-r--r--navtreedata.js15
-rw-r--r--navtreeindex0.js42
-rw-r--r--navtreeindex1.js128
-rw-r--r--navtreeindex2.js52
-rw-r--r--navtreeindex3.js98
-rw-r--r--navtreeindex4.js106
-rw-r--r--navtreeindex5.js80
-rw-r--r--navtreeindex6.js52
-rw-r--r--navtreeindex7.js35
-rw-r--r--navtreeindex8.js12
-rw-r--r--path__handle_8hpp.html4
-rw-r--r--path__handle_8hpp.js2
-rw-r--r--search/all_1.js6
-rw-r--r--search/all_10.js4
-rw-r--r--search/all_11.js4
-rw-r--r--search/all_12.js2
-rw-r--r--search/all_14.js2
-rw-r--r--search/all_2.js2
-rw-r--r--search/all_3.js6
-rw-r--r--search/all_4.js2
-rw-r--r--search/all_5.js2
-rw-r--r--search/all_6.js2
-rw-r--r--search/all_8.js1
-rw-r--r--search/all_b.js4
-rw-r--r--search/all_c.js3
-rw-r--r--search/all_e.js2
-rw-r--r--search/all_f.js6
-rw-r--r--search/classes_a.js2
-rw-r--r--search/classes_d.js2
-rw-r--r--search/enumvalues_a.js3
-rw-r--r--search/files_8.js2
-rw-r--r--search/functions_1.js6
-rw-r--r--search/functions_10.js2
-rw-r--r--search/functions_11.js4
-rw-r--r--search/functions_12.js2
-rw-r--r--search/functions_14.js2
-rw-r--r--search/functions_2.js2
-rw-r--r--search/functions_3.js6
-rw-r--r--search/functions_4.js2
-rw-r--r--search/functions_6.js2
-rw-r--r--search/functions_8.js1
-rw-r--r--search/functions_b.js2
-rw-r--r--search/functions_e.js2
-rw-r--r--search/functions_f.js4
-rw-r--r--search/typedefs_4.js2
-rw-r--r--search/typedefs_a.js2
-rw-r--r--structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl-members.html4
-rw-r--r--structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl_3_01true_00_01_t_01_4-members.html4
-rw-r--r--structafio__v2__xxx_1_1error__info-members.html2
-rw-r--r--structafio__v2__xxx_1_1error__info.html6
-rw-r--r--structafio__v2__xxx_1_1section__handle_1_1flag__base-members.html11
-rw-r--r--structafio__v2__xxx_1_1section__handle_1_1flag__base.html6
-rw-r--r--structafio__v2__xxx_1_1section__handle_1_1flag__base.js1
-rw-r--r--structafio__v2__xxx_1_1storage__profile_1_1storage__profile.html30
130 files changed, 1942 insertions, 918 deletions
diff --git a/annotated.html b/annotated.html
index 10693dcf..0c5d8fed 100644
--- a/annotated.html
+++ b/annotated.html
@@ -103,7 +103,7 @@ $(document).ready(function(){initNavTree('annotated.html','');});
<tr id="row_0_0_1_5_0_" class="even"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex_1_1entities__guard.html" target="_self">entities_guard</a></td><td class="desc">RAII holder for a lock on a sequence of entities </td></tr>
<tr id="row_0_0_1_5_1_"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex_1_1entity__type.html" target="_self">entity_type</a></td><td class="desc">The type of an entity id </td></tr>
<tr id="row_0_0_2_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classafio__v2__xxx_1_1algorithm_1_1cached__parent__handle__adapter.html" target="_self">cached_parent_handle_adapter</a></td><td class="desc">Adapts any <code>construct()</code>-able implementation to cache its parent directory handle in a process wide cache </td></tr>
-<tr id="row_0_0_3_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__view.html" target="_self">mapped_view</a></td><td class="desc">Provides a typed mapped view of a <code>section_handle</code> suitable for feeding to STL algorithms or the Ranges TS by wrapping a <code>map_handle</code> into a <code>span&lt;T&gt;</code> </td></tr>
+<tr id="row_0_0_3_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__span.html" target="_self">mapped_span</a></td><td class="desc">Provides a typed mapped view of a <code>section_handle</code> suitable for feeding to STL algorithms or the Ranges TS by wrapping a <code>map_handle</code> into a <code>span&lt;T&gt;</code> </td></tr>
<tr id="row_0_0_4_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classafio__v2__xxx_1_1algorithm_1_1trivial__vector.html" target="_self">trivial_vector</a></td><td class="desc">Provides a constant time capacity expanding move-only STL vector. Requires <code>T</code> to be trivially copyable </td></tr>
<tr id="row_0_1_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_0_1_" class="arrow" onclick="toggleFolder('0_1_')">&#9660;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespaceafio__v2__xxx_1_1path__discovery.html" target="_self">path_discovery</a></td><td class="desc">Contains functions used to discover suitable paths for things </td></tr>
<tr id="row_0_1_0_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structafio__v2__xxx_1_1path__discovery_1_1discovered__path.html" target="_self">discovered_path</a></td><td class="desc">A discovered path </td></tr>
@@ -148,7 +148,7 @@ $(document).ready(function(){initNavTree('annotated.html','');});
<tr id="row_0_23_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_0_23_" class="arrow" onclick="toggleFolder('0_23_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classafio__v2__xxx_1_1io__service.html" target="_self">io_service</a></td><td class="desc">An asynchronous i/o multiplexer service </td></tr>
<tr id="row_0_23_0_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structafio__v2__xxx_1_1io__service_1_1awaitable__post__to__self.html" target="_self">awaitable_post_to_self</a></td><td class="desc"></td></tr>
<tr id="row_0_24_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classafio__v2__xxx_1_1log__level__guard.html" target="_self">log_level_guard</a></td><td class="desc">RAII class for temporarily adjusting the log level </td></tr>
-<tr id="row_0_25_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classafio__v2__xxx_1_1map__handle.html" target="_self">map_handle</a></td><td class="desc">A handle to a memory mapped region of memory </td></tr>
+<tr id="row_0_25_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classafio__v2__xxx_1_1map__handle.html" target="_self">map_handle</a></td><td class="desc">A handle to a memory mapped region of memory, either backed by the system page file or by a section </td></tr>
<tr id="row_0_26_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classafio__v2__xxx_1_1mapped__file__handle.html" target="_self">mapped_file_handle</a></td><td class="desc">A memory mapped regular file or device </td></tr>
<tr id="row_0_27_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_0_27_" class="arrow" onclick="toggleFolder('0_27_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structafio__v2__xxx_1_1native__handle__type.html" target="_self">native_handle_type</a></td><td class="desc">A native handle type used for wrapping file descriptors, process ids or HANDLEs. Unmanaged, wrap in a handle object to manage </td></tr>
<tr id="row_0_27_0_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structafio__v2__xxx_1_1native__handle__type_1_1disposition__base.html" target="_self">disposition_base</a></td><td class="desc">The type of handle </td></tr>
diff --git a/async__file__handle_8hpp.html b/async__file__handle_8hpp.html
index 470dca6f..65221227 100644
--- a/async__file__handle_8hpp.html
+++ b/async__file__handle_8hpp.html
@@ -140,12 +140,28 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="name
<tr class="memitem:a0ff925d5c5434bcec35b2167d87d5c55"><td class="memItemLeft" align="right" valign="top"><a id="a0ff925d5c5434bcec35b2167d87d5c55"></a>
async_file_handle::io_result&lt; async_file_handle::const_buffers_type &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>afio_v2_xxx::barrier</b> (async_file_handle &amp;self, async_file_handle::io_request&lt; async_file_handle::const_buffers_type &gt; reqs=async_file_handle::io_request&lt; async_file_handle::const_buffers_type &gt;(), bool wait_for_device=false, bool and_metadata=false, deadline d=deadline()) noexcept</td></tr>
<tr class="separator:a0ff925d5c5434bcec35b2167d87d5c55"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4c35fd205301d7fdd3ebb503f2d154fc"><td class="memTemplParams" colspan="2">template&lt;class CompletionRoutine &gt; </td></tr>
+<tr class="memitem:a4c35fd205301d7fdd3ebb503f2d154fc"><td class="memTemplItemLeft" align="right" valign="top">result&lt; async_file_handle::io_state_ptr &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceafio__v2__xxx.html#a4c35fd205301d7fdd3ebb503f2d154fc">afio_v2_xxx::async_barrier</a> (async_file_handle &amp;self, async_file_handle::io_request&lt; async_file_handle::const_buffers_type &gt; reqs, CompletionRoutine &amp;&amp;completion, bool wait_for_device=false, bool and_metadata=false, span&lt; char &gt; mem={}) noexcept</td></tr>
+<tr class="memdesc:a4c35fd205301d7fdd3ebb503f2d154fc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Schedule a barrier to occur asynchronously. <a href="namespaceafio__v2__xxx.html#a4c35fd205301d7fdd3ebb503f2d154fc">More...</a><br /></td></tr>
+<tr class="separator:a4c35fd205301d7fdd3ebb503f2d154fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0891bedb63147526aba998b0a2f18132"><td class="memTemplParams" colspan="2">template&lt;class CompletionRoutine &gt; </td></tr>
+<tr class="memitem:a0891bedb63147526aba998b0a2f18132"><td class="memTemplItemLeft" align="right" valign="top">result&lt; async_file_handle::io_state_ptr &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceafio__v2__xxx.html#a0891bedb63147526aba998b0a2f18132">afio_v2_xxx::async_read</a> (async_file_handle &amp;self, async_file_handle::io_request&lt; async_file_handle::buffers_type &gt; reqs, CompletionRoutine &amp;&amp;completion, span&lt; char &gt; mem={}) noexcept</td></tr>
+<tr class="memdesc:a0891bedb63147526aba998b0a2f18132"><td class="mdescLeft">&#160;</td><td class="mdescRight">Schedule a read to occur asynchronously. <a href="namespaceafio__v2__xxx.html#a0891bedb63147526aba998b0a2f18132">More...</a><br /></td></tr>
+<tr class="separator:a0891bedb63147526aba998b0a2f18132"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aded93df5ea7777b501811ec593ed5b55"><td class="memTemplParams" colspan="2">template&lt;class CompletionRoutine &gt; </td></tr>
+<tr class="memitem:aded93df5ea7777b501811ec593ed5b55"><td class="memTemplItemLeft" align="right" valign="top">result&lt; async_file_handle::io_state_ptr &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceafio__v2__xxx.html#aded93df5ea7777b501811ec593ed5b55">afio_v2_xxx::async_write</a> (async_file_handle &amp;self, async_file_handle::io_request&lt; async_file_handle::const_buffers_type &gt; reqs, CompletionRoutine &amp;&amp;completion, span&lt; char &gt; mem={}) noexcept</td></tr>
+<tr class="memdesc:aded93df5ea7777b501811ec593ed5b55"><td class="mdescLeft">&#160;</td><td class="mdescRight">Schedule a write to occur asynchronously. <a href="namespaceafio__v2__xxx.html#aded93df5ea7777b501811ec593ed5b55">More...</a><br /></td></tr>
+<tr class="separator:aded93df5ea7777b501811ec593ed5b55"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a37590ba383783ccfca30404318eb1114"><td class="memItemLeft" align="right" valign="top">result&lt; async_file_handle::awaitable&lt; async_file_handle::buffers_type &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceafio__v2__xxx.html#a37590ba383783ccfca30404318eb1114">afio_v2_xxx::co_read</a> (async_file_handle &amp;self, async_file_handle::io_request&lt; async_file_handle::buffers_type &gt; reqs) noexcept</td></tr>
<tr class="memdesc:a37590ba383783ccfca30404318eb1114"><td class="mdescLeft">&#160;</td><td class="mdescRight">Schedule a read to occur asynchronously. <a href="namespaceafio__v2__xxx.html#a37590ba383783ccfca30404318eb1114">More...</a><br /></td></tr>
<tr class="separator:a37590ba383783ccfca30404318eb1114"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac6be3e0ba22cceed22dbe455c91219dd"><td class="memItemLeft" align="right" valign="top">result&lt; async_file_handle::awaitable&lt; async_file_handle::buffers_type &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceafio__v2__xxx.html#ac6be3e0ba22cceed22dbe455c91219dd">afio_v2_xxx::co_read</a> (async_file_handle &amp;self, async_file_handle::extent_type offset, std::initializer_list&lt; async_file_handle::buffer_type &gt; lst) noexcept</td></tr>
+<tr class="separator:ac6be3e0ba22cceed22dbe455c91219dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acd740f5aef6ca339575e7497fa873d06"><td class="memItemLeft" align="right" valign="top">result&lt; async_file_handle::awaitable&lt; async_file_handle::const_buffers_type &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceafio__v2__xxx.html#acd740f5aef6ca339575e7497fa873d06">afio_v2_xxx::co_write</a> (async_file_handle &amp;self, async_file_handle::io_request&lt; async_file_handle::const_buffers_type &gt; reqs) noexcept</td></tr>
<tr class="memdesc:acd740f5aef6ca339575e7497fa873d06"><td class="mdescLeft">&#160;</td><td class="mdescRight">Schedule a write to occur asynchronously. <a href="namespaceafio__v2__xxx.html#acd740f5aef6ca339575e7497fa873d06">More...</a><br /></td></tr>
<tr class="separator:acd740f5aef6ca339575e7497fa873d06"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6e6ab37dfca4a975e6d04696948c0728"><td class="memItemLeft" align="right" valign="top">result&lt; async_file_handle::awaitable&lt; async_file_handle::const_buffers_type &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceafio__v2__xxx.html#a6e6ab37dfca4a975e6d04696948c0728">afio_v2_xxx::co_write</a> (async_file_handle &amp;self, async_file_handle::extent_type offset, std::initializer_list&lt; async_file_handle::const_buffer_type &gt; lst) noexcept</td></tr>
+<tr class="separator:a6e6ab37dfca4a975e6d04696948c0728"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Provides async_file_handle. </p>
diff --git a/async__file__handle_8hpp.js b/async__file__handle_8hpp.js
index a3e23e1f..660acc8a 100644
--- a/async__file__handle_8hpp.js
+++ b/async__file__handle_8hpp.js
@@ -6,12 +6,17 @@ var async__file__handle_8hpp =
[ "construct< async_file_handle >", "structafio__v2__xxx_1_1construct_3_01async__file__handle_01_4.html", "structafio__v2__xxx_1_1construct_3_01async__file__handle_01_4" ],
[ "AFIO_ASYNC_FILE_HANDLE_H", "async__file__handle_8hpp.html#a1dc6d0f4535e760af697884e2e809595", null ],
[ "is_invocable_r", "async__file__handle_8hpp.html#ada4ceee47a205446a171bb0570f53bc3", null ],
+ [ "async_barrier", "async__file__handle_8hpp.html#a4c35fd205301d7fdd3ebb503f2d154fc", null ],
[ "async_file", "async__file__handle_8hpp.html#a5b0168993998aafc342233aa782040a6", null ],
[ "async_random_file", "async__file__handle_8hpp.html#a40cd3a25b8d4a293a8864fe6eb585034", null ],
+ [ "async_read", "async__file__handle_8hpp.html#a0891bedb63147526aba998b0a2f18132", null ],
[ "async_temp_file", "async__file__handle_8hpp.html#a0b751376f48a4fd14cb90cce03b2b491", null ],
[ "async_temp_inode", "async__file__handle_8hpp.html#a5eb846433fec3c9c80336ff686c2527e", null ],
+ [ "async_write", "async__file__handle_8hpp.html#aded93df5ea7777b501811ec593ed5b55", null ],
[ "barrier", "async__file__handle_8hpp.html#a0ff925d5c5434bcec35b2167d87d5c55", null ],
[ "co_read", "async__file__handle_8hpp.html#a37590ba383783ccfca30404318eb1114", null ],
+ [ "co_read", "async__file__handle_8hpp.html#ac6be3e0ba22cceed22dbe455c91219dd", null ],
[ "co_write", "async__file__handle_8hpp.html#acd740f5aef6ca339575e7497fa873d06", null ],
+ [ "co_write", "async__file__handle_8hpp.html#a6e6ab37dfca4a975e6d04696948c0728", null ],
[ "swap", "async__file__handle_8hpp.html#ae927cd0656591e7763a96703da0ebebb", null ]
]; \ No newline at end of file
diff --git a/classafio__v2__xxx_1_1algorithm_1_1cached__parent__handle__adapter.html b/classafio__v2__xxx_1_1algorithm_1_1cached__parent__handle__adapter.html
index 75217097..7443f52e 100644
--- a/classafio__v2__xxx_1_1algorithm_1_1cached__parent__handle__adapter.html
+++ b/classafio__v2__xxx_1_1algorithm_1_1cached__parent__handle__adapter.html
@@ -131,7 +131,7 @@ Public Member Functions</h2></td></tr>
<a class="el" href="classafio__v2__xxx_1_1algorithm_1_1cached__parent__handle__adapter.html">cached_parent_handle_adapter</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (<a class="el" href="classafio__v2__xxx_1_1algorithm_1_1cached__parent__handle__adapter.html">cached_parent_handle_adapter</a> &amp;&amp;)=default</td></tr>
<tr class="separator:a668765377ea942eceeab0f1e7d69fb19"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aae24d7b58ece72009e5abde3ff2cda98"><td class="memItemLeft" align="right" valign="top"><a id="aae24d7b58ece72009e5abde3ff2cda98"></a>
-&#160;</td><td class="memItemRight" valign="bottom"><b>cached_parent_handle_adapter</b> (<a class="el" href="classafio__v2__xxx_1_1algorithm_1_1cached__parent__handle__adapter.html#a8650bcb7fef2623698debe2d49629d36">adapted_handle_type</a> &amp;&amp;o, const <a class="el" href="classafio__v2__xxx_1_1path__handle.html">path_handle</a> &amp;base, <a class="el" href="classafio__v2__xxx_1_1path__view.html">path_view</a> <a class="el" href="namespaceafio__v2__xxx.html#a7432c582b3af692a1f94be33aa73a00e">path</a>)</td></tr>
+&#160;</td><td class="memItemRight" valign="bottom"><b>cached_parent_handle_adapter</b> (<a class="el" href="classafio__v2__xxx_1_1algorithm_1_1cached__parent__handle__adapter.html#a8650bcb7fef2623698debe2d49629d36">adapted_handle_type</a> &amp;&amp;o, const <a class="el" href="classafio__v2__xxx_1_1path__handle.html">path_handle</a> &amp;base, <a class="el" href="classafio__v2__xxx_1_1path__view.html">path_view</a> <a class="el" href="namespaceafio__v2__xxx.html#a7a98882ead35ebd6bd0700fdf571c44a">path</a>)</td></tr>
<tr class="separator:aae24d7b58ece72009e5abde3ff2cda98"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3feee05d182ad0001862c303a0e3210d"><td class="memItemLeft" align="right" valign="top"><a id="a3feee05d182ad0001862c303a0e3210d"></a>
virtual result&lt; path_type &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>current_path</b> () const noexcept override</td></tr>
diff --git a/classafio__v2__xxx_1_1algorithm_1_1mapped__view-members.html b/classafio__v2__xxx_1_1algorithm_1_1mapped__span-members.html
index 7804d664..233d5071 100644
--- a/classafio__v2__xxx_1_1algorithm_1_1mapped__view-members.html
+++ b/classafio__v2__xxx_1_1algorithm_1_1mapped__span-members.html
@@ -62,7 +62,7 @@ $(function() {
</div>
</div>
<script type="text/javascript">
-$(document).ready(function(){initNavTree('classafio__v2__xxx_1_1algorithm_1_1mapped__view.html','');});
+$(document).ready(function(){initNavTree('classafio__v2__xxx_1_1algorithm_1_1mapped__span.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
@@ -81,18 +81,18 @@ $(document).ready(function(){initNavTree('classafio__v2__xxx_1_1algorithm_1_1map
<div class="header">
<div class="headertitle">
-<div class="title">afio_v2_xxx::algorithm::mapped_view&lt; T &gt; Member List</div> </div>
+<div class="title">afio_v2_xxx::algorithm::mapped_span&lt; T &gt; Member List</div> </div>
</div><!--header-->
<div class="contents">
-<p>This is the complete list of members for <a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__view.html">afio_v2_xxx::algorithm::mapped_view&lt; T &gt;</a>, including all inherited members.</p>
+<p>This is the complete list of members for <a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__span.html">afio_v2_xxx::algorithm::mapped_span&lt; T &gt;</a>, including all inherited members.</p>
<table class="directory">
- <tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__view.html#a0e413ca44e22e974598aa700f8fda08a">extent_type</a> typedef</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__view.html">afio_v2_xxx::algorithm::mapped_view&lt; T &gt;</a></td><td class="entry"></td></tr>
- <tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__view.html#a8ac47f0032bf486cc3ff21b0a1958d02">mapped_view</a>()</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__view.html">afio_v2_xxx::algorithm::mapped_view&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__view.html#af8a986d93d5967962763900af3f99824">mapped_view</a>(size_type length, section_handle::flag _flag=section_handle::flag::readwrite)</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__view.html">afio_v2_xxx::algorithm::mapped_view&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
- <tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__view.html#a0c63a640692c5fab81abb7572df45018">mapped_view</a>(section_handle &amp;sh, size_type length=(size_type) -1, extent_type byteoffset=0, section_handle::flag _flag=section_handle::flag::readwrite)</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__view.html">afio_v2_xxx::algorithm::mapped_view&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__view.html#a90012e57d3d7fa833f363a56cb91bcd9">mapped_view</a>(mapped_file_handle &amp;mfh, size_type length=(size_type) -1, extent_type byteoffset=0)</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__view.html">afio_v2_xxx::algorithm::mapped_view&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
- <tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__view.html#a7812759f458831ea053fed38ec46dc30">size_type</a> typedef</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__view.html">afio_v2_xxx::algorithm::mapped_view&lt; T &gt;</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__span.html#aa53a448cdf7c235bdba9252b52548b5b">extent_type</a> typedef</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__span.html">afio_v2_xxx::algorithm::mapped_span&lt; T &gt;</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__span.html#aa5b20642220613876d8be474003785e9">mapped_span</a>()</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__span.html">afio_v2_xxx::algorithm::mapped_span&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__span.html#af6a43d3c0201079dac97d407ddb00aaa">mapped_span</a>(size_type length, section_handle::flag _flag=section_handle::flag::readwrite)</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__span.html">afio_v2_xxx::algorithm::mapped_span&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__span.html#aca48ca2f9558c5d6f57e398016311fe8">mapped_span</a>(section_handle &amp;sh, size_type length=(size_type) -1, extent_type byteoffset=0, section_handle::flag _flag=section_handle::flag::readwrite)</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__span.html">afio_v2_xxx::algorithm::mapped_span&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__span.html#a236f0978be161027886300e85bf5ae8d">mapped_span</a>(mapped_file_handle &amp;mfh, size_type length=(size_type) -1, extent_type byteoffset=0)</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__span.html">afio_v2_xxx::algorithm::mapped_span&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__span.html#aa33d0ce0be15b0738c6b36341843ccb5">size_type</a> typedef</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__span.html">afio_v2_xxx::algorithm::mapped_span&lt; T &gt;</a></td><td class="entry"></td></tr>
</table></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
diff --git a/classafio__v2__xxx_1_1algorithm_1_1mapped__view.html b/classafio__v2__xxx_1_1algorithm_1_1mapped__span.html
index 76792168..4e2219ee 100644
--- a/classafio__v2__xxx_1_1algorithm_1_1mapped__view.html
+++ b/classafio__v2__xxx_1_1algorithm_1_1mapped__span.html
@@ -5,7 +5,7 @@
<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>AFIO: afio_v2_xxx::algorithm::mapped_view&lt; T &gt; Class Template Reference</title>
+<title>AFIO: afio_v2_xxx::algorithm::mapped_span&lt; T &gt; Class Template Reference</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>
@@ -62,7 +62,7 @@ $(function() {
</div>
</div>
<script type="text/javascript">
-$(document).ready(function(){initNavTree('classafio__v2__xxx_1_1algorithm_1_1mapped__view.html','');});
+$(document).ready(function(){initNavTree('classafio__v2__xxx_1_1algorithm_1_1mapped__span.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
@@ -83,58 +83,58 @@ $(document).ready(function(){initNavTree('classafio__v2__xxx_1_1algorithm_1_1map
<div class="summary">
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
-<a href="classafio__v2__xxx_1_1algorithm_1_1mapped__view-members.html">List of all members</a> </div>
+<a href="classafio__v2__xxx_1_1algorithm_1_1mapped__span-members.html">List of all members</a> </div>
<div class="headertitle">
-<div class="title">afio_v2_xxx::algorithm::mapped_view&lt; T &gt; Class Template Reference</div> </div>
+<div class="title">afio_v2_xxx::algorithm::mapped_span&lt; T &gt; Class Template Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Provides a typed mapped view of a <code>section_handle</code> suitable for feeding to STL algorithms or the Ranges TS by wrapping a <code>map_handle</code> into a <code>span&lt;T&gt;</code>.
- <a href="classafio__v2__xxx_1_1algorithm_1_1mapped__view.html#details">More...</a></p>
+ <a href="classafio__v2__xxx_1_1algorithm_1_1mapped__span.html#details">More...</a></p>
-<p><code>#include &quot;mapped_view.hpp&quot;</code></p>
+<p><code>#include &quot;mapped_span.hpp&quot;</code></p>
<div class="dynheader">
-Inheritance diagram for afio_v2_xxx::algorithm::mapped_view&lt; T &gt;:</div>
+Inheritance diagram for afio_v2_xxx::algorithm::mapped_span&lt; T &gt;:</div>
<div class="dyncontent">
<div class="center">
- <img src="classafio__v2__xxx_1_1algorithm_1_1mapped__view.png" usemap="#afio_5Fv2_5Fxxx::algorithm::mapped_5Fview_3C_20T_20_3E_map" alt=""/>
- <map id="afio_5Fv2_5Fxxx::algorithm::mapped_5Fview_3C_20T_20_3E_map" name="afio_5Fv2_5Fxxx::algorithm::mapped_5Fview_3C_20T_20_3E_map">
+ <img src="classafio__v2__xxx_1_1algorithm_1_1mapped__span.png" usemap="#afio_5Fv2_5Fxxx::algorithm::mapped_5Fspan_3C_20T_20_3E_map" alt=""/>
+ <map id="afio_5Fv2_5Fxxx::algorithm::mapped_5Fspan_3C_20T_20_3E_map" name="afio_5Fv2_5Fxxx::algorithm::mapped_5Fspan_3C_20T_20_3E_map">
</map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
-<tr class="memitem:a0e413ca44e22e974598aa700f8fda08a"><td class="memItemLeft" align="right" valign="top"><a id="a0e413ca44e22e974598aa700f8fda08a"></a>
-using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__view.html#a0e413ca44e22e974598aa700f8fda08a">extent_type</a> = typename section_handle::extent_type</td></tr>
-<tr class="memdesc:a0e413ca44e22e974598aa700f8fda08a"><td class="mdescLeft">&#160;</td><td class="mdescRight">The extent type. <br /></td></tr>
-<tr class="separator:a0e413ca44e22e974598aa700f8fda08a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a7812759f458831ea053fed38ec46dc30"><td class="memItemLeft" align="right" valign="top"><a id="a7812759f458831ea053fed38ec46dc30"></a>
-using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__view.html#a7812759f458831ea053fed38ec46dc30">size_type</a> = typename section_handle::size_type</td></tr>
-<tr class="memdesc:a7812759f458831ea053fed38ec46dc30"><td class="mdescLeft">&#160;</td><td class="mdescRight">The size type. <br /></td></tr>
-<tr class="separator:a7812759f458831ea053fed38ec46dc30"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa53a448cdf7c235bdba9252b52548b5b"><td class="memItemLeft" align="right" valign="top"><a id="aa53a448cdf7c235bdba9252b52548b5b"></a>
+using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__span.html#aa53a448cdf7c235bdba9252b52548b5b">extent_type</a> = typename section_handle::extent_type</td></tr>
+<tr class="memdesc:aa53a448cdf7c235bdba9252b52548b5b"><td class="mdescLeft">&#160;</td><td class="mdescRight">The extent type. <br /></td></tr>
+<tr class="separator:aa53a448cdf7c235bdba9252b52548b5b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa33d0ce0be15b0738c6b36341843ccb5"><td class="memItemLeft" align="right" valign="top"><a id="aa33d0ce0be15b0738c6b36341843ccb5"></a>
+using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__span.html#aa33d0ce0be15b0738c6b36341843ccb5">size_type</a> = typename section_handle::size_type</td></tr>
+<tr class="memdesc:aa33d0ce0be15b0738c6b36341843ccb5"><td class="mdescLeft">&#160;</td><td class="mdescRight">The size type. <br /></td></tr>
+<tr class="separator:aa33d0ce0be15b0738c6b36341843ccb5"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
-<tr class="memitem:a8ac47f0032bf486cc3ff21b0a1958d02"><td class="memItemLeft" align="right" valign="top"><a id="a8ac47f0032bf486cc3ff21b0a1958d02"></a>
-constexpr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__view.html#a8ac47f0032bf486cc3ff21b0a1958d02">mapped_view</a> ()</td></tr>
-<tr class="memdesc:a8ac47f0032bf486cc3ff21b0a1958d02"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default constructor. <br /></td></tr>
-<tr class="separator:a8ac47f0032bf486cc3ff21b0a1958d02"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:af8a986d93d5967962763900af3f99824"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__view.html#af8a986d93d5967962763900af3f99824">mapped_view</a> (<a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__view.html#a7812759f458831ea053fed38ec46dc30">size_type</a> <a class="el" href="namespaceafio__v2__xxx.html#afe66c5875c48c8bd172901a1159ccbdc">length</a>, section_handle::flag _flag=section_handle::flag::readwrite)</td></tr>
-<tr class="separator:af8a986d93d5967962763900af3f99824"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a0c63a640692c5fab81abb7572df45018"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__view.html#a0c63a640692c5fab81abb7572df45018">mapped_view</a> (<a class="el" href="classafio__v2__xxx_1_1section__handle.html">section_handle</a> &amp;sh, <a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__view.html#a7812759f458831ea053fed38ec46dc30">size_type</a> <a class="el" href="namespaceafio__v2__xxx.html#afe66c5875c48c8bd172901a1159ccbdc">length</a>=(<a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__view.html#a7812759f458831ea053fed38ec46dc30">size_type</a>) -1, <a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__view.html#a0e413ca44e22e974598aa700f8fda08a">extent_type</a> byteoffset=0, section_handle::flag _flag=section_handle::flag::readwrite)</td></tr>
-<tr class="separator:a0c63a640692c5fab81abb7572df45018"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a90012e57d3d7fa833f363a56cb91bcd9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__view.html#a90012e57d3d7fa833f363a56cb91bcd9">mapped_view</a> (<a class="el" href="classafio__v2__xxx_1_1mapped__file__handle.html">mapped_file_handle</a> &amp;mfh, <a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__view.html#a7812759f458831ea053fed38ec46dc30">size_type</a> <a class="el" href="namespaceafio__v2__xxx.html#afe66c5875c48c8bd172901a1159ccbdc">length</a>=(<a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__view.html#a7812759f458831ea053fed38ec46dc30">size_type</a>) -1, <a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__view.html#a0e413ca44e22e974598aa700f8fda08a">extent_type</a> byteoffset=0)</td></tr>
-<tr class="separator:a90012e57d3d7fa833f363a56cb91bcd9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa5b20642220613876d8be474003785e9"><td class="memItemLeft" align="right" valign="top"><a id="aa5b20642220613876d8be474003785e9"></a>
+constexpr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__span.html#aa5b20642220613876d8be474003785e9">mapped_span</a> ()</td></tr>
+<tr class="memdesc:aa5b20642220613876d8be474003785e9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default constructor. <br /></td></tr>
+<tr class="separator:aa5b20642220613876d8be474003785e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af6a43d3c0201079dac97d407ddb00aaa"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__span.html#af6a43d3c0201079dac97d407ddb00aaa">mapped_span</a> (<a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__span.html#aa33d0ce0be15b0738c6b36341843ccb5">size_type</a> <a class="el" href="namespaceafio__v2__xxx.html#afe66c5875c48c8bd172901a1159ccbdc">length</a>, section_handle::flag _flag=section_handle::flag::readwrite)</td></tr>
+<tr class="separator:af6a43d3c0201079dac97d407ddb00aaa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aca48ca2f9558c5d6f57e398016311fe8"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__span.html#aca48ca2f9558c5d6f57e398016311fe8">mapped_span</a> (<a class="el" href="classafio__v2__xxx_1_1section__handle.html">section_handle</a> &amp;sh, <a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__span.html#aa33d0ce0be15b0738c6b36341843ccb5">size_type</a> <a class="el" href="namespaceafio__v2__xxx.html#afe66c5875c48c8bd172901a1159ccbdc">length</a>=(<a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__span.html#aa33d0ce0be15b0738c6b36341843ccb5">size_type</a>) -1, <a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__span.html#aa53a448cdf7c235bdba9252b52548b5b">extent_type</a> byteoffset=0, section_handle::flag _flag=section_handle::flag::readwrite)</td></tr>
+<tr class="separator:aca48ca2f9558c5d6f57e398016311fe8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a236f0978be161027886300e85bf5ae8d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__span.html#a236f0978be161027886300e85bf5ae8d">mapped_span</a> (<a class="el" href="classafio__v2__xxx_1_1mapped__file__handle.html">mapped_file_handle</a> &amp;mfh, <a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__span.html#aa33d0ce0be15b0738c6b36341843ccb5">size_type</a> <a class="el" href="namespaceafio__v2__xxx.html#afe66c5875c48c8bd172901a1159ccbdc">length</a>=(<a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__span.html#aa33d0ce0be15b0738c6b36341843ccb5">size_type</a>) -1, <a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__span.html#aa53a448cdf7c235bdba9252b52548b5b">extent_type</a> byteoffset=0)</td></tr>
+<tr class="separator:a236f0978be161027886300e85bf5ae8d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template&lt;class T&gt;<br />
-class afio_v2_xxx::algorithm::mapped_view&lt; T &gt;</h3>
+class afio_v2_xxx::algorithm::mapped_span&lt; T &gt;</h3>
<p>Provides a typed mapped view of a <code>section_handle</code> suitable for feeding to STL algorithms or the Ranges TS by wrapping a <code>map_handle</code> into a <code>span&lt;T&gt;</code>. </p>
<p>Optionally can issue a blocking write barrier on destruction of the mapped view by setting the flag <code>section_handle::flag::barrier_on_close</code>, thus forcing any changes to data referred to by the view to storage before the destructor returns. </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
-<a id="af8a986d93d5967962763900af3f99824"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#af8a986d93d5967962763900af3f99824">&#9670;&nbsp;</a></span>mapped_view() <span class="overload">[1/3]</span></h2>
+<a id="af6a43d3c0201079dac97d407ddb00aaa"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af6a43d3c0201079dac97d407ddb00aaa">&#9670;&nbsp;</a></span>mapped_span() <span class="overload">[1/3]</span></h2>
<div class="memitem">
<div class="memproto">
@@ -145,9 +145,9 @@ template&lt;class T &gt; </div>
<td class="mlabels-left">
<table class="memname">
<tr>
- <td class="memname"><a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__view.html">afio_v2_xxx::algorithm::mapped_view</a>&lt; T &gt;::<a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__view.html">mapped_view</a> </td>
+ <td class="memname"><a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__span.html">afio_v2_xxx::algorithm::mapped_span</a>&lt; T &gt;::<a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__span.html">mapped_span</a> </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__view.html#a7812759f458831ea053fed38ec46dc30">size_type</a>&#160;</td>
+ <td class="paramtype"><a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__span.html#aa33d0ce0be15b0738c6b36341843ccb5">size_type</a>&#160;</td>
<td class="paramname"><em>length</em>, </td>
</tr>
<tr>
@@ -176,14 +176,14 @@ template&lt;class T &gt; </div>
</table>
</dd>
</dl>
-<div class="fragment"><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; : _mapping(<a class="code" href="classafio__v2__xxx_1_1map__handle.html#a9c43d182b257682d320f12f6e6be30b3">map_handle::map</a>(<a class="code" href="namespaceafio__v2__xxx.html#afe66c5875c48c8bd172901a1159ccbdc">length</a> * <span class="keyword">sizeof</span>(T), _flag).value())</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; {</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordtype">char</span> *addr = _mapping.<a class="code" href="classafio__v2__xxx_1_1map__handle.html#a1e9273d0c6aca7da6480437f6cf6638a">address</a>();</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keyword">static_cast&lt;</span>span&lt;T&gt; &amp;<span class="keyword">&gt;</span>(*this) = span&lt;T&gt;(<span class="keyword">reinterpret_cast&lt;</span>T *<span class="keyword">&gt;</span>(addr), <a class="code" href="namespaceafio__v2__xxx.html#afe66c5875c48c8bd172901a1159ccbdc">length</a>); <span class="comment">// NOLINT</span></div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; }</div><div class="ttc" id="classafio__v2__xxx_1_1map__handle_html_a1e9273d0c6aca7da6480437f6cf6638a"><div class="ttname"><a href="classafio__v2__xxx_1_1map__handle.html#a1e9273d0c6aca7da6480437f6cf6638a">afio_v2_xxx::map_handle::address</a></div><div class="ttdeci">char * address() const noexcept</div><div class="ttdoc">The address in memory where this mapped view resides. </div><div class="ttdef"><b>Definition:</b> map_handle.hpp:348</div></div>
-<div class="ttc" id="namespaceafio__v2__xxx_html_afe66c5875c48c8bd172901a1159ccbdc"><div class="ttname"><a href="namespaceafio__v2__xxx.html#afe66c5875c48c8bd172901a1159ccbdc">afio_v2_xxx::length</a></div><div class="ttdeci">result&lt; file_handle::extent_type &gt; length(const file_handle &amp;self) noexcept</div><div class="ttdef"><b>Definition:</b> file_handle.hpp:362</div></div>
+<div class="fragment"><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; : _mapping(<a class="code" href="classafio__v2__xxx_1_1map__handle.html#a9c43d182b257682d320f12f6e6be30b3">map_handle::map</a>(<a class="code" href="namespaceafio__v2__xxx.html#afe66c5875c48c8bd172901a1159ccbdc">length</a> * <span class="keyword">sizeof</span>(T), _flag).value())</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; {</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordtype">char</span> *addr = _mapping.<a class="code" href="classafio__v2__xxx_1_1map__handle.html#a1e9273d0c6aca7da6480437f6cf6638a">address</a>();</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keyword">static_cast&lt;</span>span&lt;T&gt; &amp;<span class="keyword">&gt;</span>(*this) = span&lt;T&gt;(<span class="keyword">reinterpret_cast&lt;</span>T *<span class="keyword">&gt;</span>(addr), <a class="code" href="namespaceafio__v2__xxx.html#afe66c5875c48c8bd172901a1159ccbdc">length</a>); <span class="comment">// NOLINT</span></div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; }</div><div class="ttc" id="classafio__v2__xxx_1_1map__handle_html_a1e9273d0c6aca7da6480437f6cf6638a"><div class="ttname"><a href="classafio__v2__xxx_1_1map__handle.html#a1e9273d0c6aca7da6480437f6cf6638a">afio_v2_xxx::map_handle::address</a></div><div class="ttdeci">char * address() const noexcept</div><div class="ttdoc">The address in memory where this mapped view resides. </div><div class="ttdef"><b>Definition:</b> map_handle.hpp:411</div></div>
+<div class="ttc" id="namespaceafio__v2__xxx_html_afe66c5875c48c8bd172901a1159ccbdc"><div class="ttname"><a href="namespaceafio__v2__xxx.html#afe66c5875c48c8bd172901a1159ccbdc">afio_v2_xxx::length</a></div><div class="ttdeci">result&lt; file_handle::extent_type &gt; length(const file_handle &amp;self) noexcept</div><div class="ttdef"><b>Definition:</b> file_handle.hpp:360</div></div>
<div class="ttc" id="classafio__v2__xxx_1_1map__handle_html_a9c43d182b257682d320f12f6e6be30b3"><div class="ttname"><a href="classafio__v2__xxx_1_1map__handle.html#a9c43d182b257682d320f12f6e6be30b3">afio_v2_xxx::map_handle::map</a></div><div class="ttdeci">static result&lt; map_handle &gt; map(size_type bytes, section_handle::flag _flag=section_handle::flag::readwrite) noexcept</div></div>
</div><!-- fragment -->
</div>
</div>
-<a id="a0c63a640692c5fab81abb7572df45018"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a0c63a640692c5fab81abb7572df45018">&#9670;&nbsp;</a></span>mapped_view() <span class="overload">[2/3]</span></h2>
+<a id="aca48ca2f9558c5d6f57e398016311fe8"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aca48ca2f9558c5d6f57e398016311fe8">&#9670;&nbsp;</a></span>mapped_span() <span class="overload">[2/3]</span></h2>
<div class="memitem">
<div class="memproto">
@@ -194,7 +194,7 @@ template&lt;class T &gt; </div>
<td class="mlabels-left">
<table class="memname">
<tr>
- <td class="memname"><a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__view.html">afio_v2_xxx::algorithm::mapped_view</a>&lt; T &gt;::<a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__view.html">mapped_view</a> </td>
+ <td class="memname"><a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__span.html">afio_v2_xxx::algorithm::mapped_span</a>&lt; T &gt;::<a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__span.html">mapped_span</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classafio__v2__xxx_1_1section__handle.html">section_handle</a> &amp;&#160;</td>
<td class="paramname"><em>sh</em>, </td>
@@ -202,13 +202,13 @@ template&lt;class T &gt; </div>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__view.html#a7812759f458831ea053fed38ec46dc30">size_type</a>&#160;</td>
- <td class="paramname"><em>length</em> = <code>(<a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__view.html#a7812759f458831ea053fed38ec46dc30">size_type</a>)&#160;-1</code>, </td>
+ <td class="paramtype"><a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__span.html#aa33d0ce0be15b0738c6b36341843ccb5">size_type</a>&#160;</td>
+ <td class="paramname"><em>length</em> = <code>(<a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__span.html#aa33d0ce0be15b0738c6b36341843ccb5">size_type</a>)&#160;-1</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__view.html#a0e413ca44e22e974598aa700f8fda08a">extent_type</a>&#160;</td>
+ <td class="paramtype"><a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__span.html#aa53a448cdf7c235bdba9252b52548b5b">extent_type</a>&#160;</td>
<td class="paramname"><em>byteoffset</em> = <code>0</code>, </td>
</tr>
<tr>
@@ -239,15 +239,15 @@ template&lt;class T &gt; </div>
</table>
</dd>
</dl>
-<div class="fragment"><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; : <a class="code" href="classafio__v2__xxx_1_1algorithm_1_1mapped__view.html#a8ac47f0032bf486cc3ff21b0a1958d02">mapped_view</a>((<a class="code" href="namespaceafio__v2__xxx.html#afe66c5875c48c8bd172901a1159ccbdc">length</a> == 0) ? <a class="code" href="classafio__v2__xxx_1_1algorithm_1_1mapped__view.html#a8ac47f0032bf486cc3ff21b0a1958d02">mapped_view</a>() : <a class="code" href="classafio__v2__xxx_1_1algorithm_1_1mapped__view.html#a8ac47f0032bf486cc3ff21b0a1958d02">mapped_view</a>(</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;#ifdef _WIN32</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; byteoffset &amp; ~65535,</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;#<span class="keywordflow">else</span></div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <a class="code" href="namespaceafio__v2__xxx_1_1utils.html#a7e0604f2e7f98b94ddb09989184968f5">utils::round_down_to_page_size</a>(byteoffset),</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;#endif</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; byteoffset, sh, (<a class="code" href="namespaceafio__v2__xxx.html#afe66c5875c48c8bd172901a1159ccbdc">length</a> == (<a class="code" href="classafio__v2__xxx_1_1algorithm_1_1mapped__view.html#a7812759f458831ea053fed38ec46dc30">size_type</a>) -1) ? 0 : <a class="code" href="namespaceafio__v2__xxx.html#afe66c5875c48c8bd172901a1159ccbdc">length</a> * <span class="keyword">sizeof</span>(T), _flag)) <span class="comment">// NOLINT</span></div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; {</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; }</div><div class="ttc" id="namespaceafio__v2__xxx_html_afe66c5875c48c8bd172901a1159ccbdc"><div class="ttname"><a href="namespaceafio__v2__xxx.html#afe66c5875c48c8bd172901a1159ccbdc">afio_v2_xxx::length</a></div><div class="ttdeci">result&lt; file_handle::extent_type &gt; length(const file_handle &amp;self) noexcept</div><div class="ttdef"><b>Definition:</b> file_handle.hpp:362</div></div>
-<div class="ttc" id="classafio__v2__xxx_1_1algorithm_1_1mapped__view_html_a7812759f458831ea053fed38ec46dc30"><div class="ttname"><a href="classafio__v2__xxx_1_1algorithm_1_1mapped__view.html#a7812759f458831ea053fed38ec46dc30">afio_v2_xxx::algorithm::mapped_view::size_type</a></div><div class="ttdeci">typename section_handle::size_type size_type</div><div class="ttdoc">The size type. </div><div class="ttdef"><b>Definition:</b> mapped_view.hpp:50</div></div>
-<div class="ttc" id="classafio__v2__xxx_1_1algorithm_1_1mapped__view_html_a8ac47f0032bf486cc3ff21b0a1958d02"><div class="ttname"><a href="classafio__v2__xxx_1_1algorithm_1_1mapped__view.html#a8ac47f0032bf486cc3ff21b0a1958d02">afio_v2_xxx::algorithm::mapped_view::mapped_view</a></div><div class="ttdeci">constexpr mapped_view()</div><div class="ttdoc">Default constructor. </div><div class="ttdef"><b>Definition:</b> mapped_view.hpp:69</div></div>
+<div class="fragment"><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; : <a class="code" href="classafio__v2__xxx_1_1algorithm_1_1mapped__span.html#aa5b20642220613876d8be474003785e9">mapped_span</a>((<a class="code" href="namespaceafio__v2__xxx.html#afe66c5875c48c8bd172901a1159ccbdc">length</a> == 0) ? <a class="code" href="classafio__v2__xxx_1_1algorithm_1_1mapped__span.html#aa5b20642220613876d8be474003785e9">mapped_span</a>() : <a class="code" href="classafio__v2__xxx_1_1algorithm_1_1mapped__span.html#aa5b20642220613876d8be474003785e9">mapped_span</a>(</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;#ifdef _WIN32</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; byteoffset &amp; ~65535,</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;#<span class="keywordflow">else</span></div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <a class="code" href="namespaceafio__v2__xxx_1_1utils.html#a7e0604f2e7f98b94ddb09989184968f5">utils::round_down_to_page_size</a>(byteoffset),</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;#endif</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; byteoffset, sh, (<a class="code" href="namespaceafio__v2__xxx.html#afe66c5875c48c8bd172901a1159ccbdc">length</a> == (<a class="code" href="classafio__v2__xxx_1_1algorithm_1_1mapped__span.html#aa33d0ce0be15b0738c6b36341843ccb5">size_type</a>) -1) ? 0 : <a class="code" href="namespaceafio__v2__xxx.html#afe66c5875c48c8bd172901a1159ccbdc">length</a> * <span class="keyword">sizeof</span>(T), _flag)) <span class="comment">// NOLINT</span></div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; {</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; }</div><div class="ttc" id="classafio__v2__xxx_1_1algorithm_1_1mapped__span_html_aa5b20642220613876d8be474003785e9"><div class="ttname"><a href="classafio__v2__xxx_1_1algorithm_1_1mapped__span.html#aa5b20642220613876d8be474003785e9">afio_v2_xxx::algorithm::mapped_span::mapped_span</a></div><div class="ttdeci">constexpr mapped_span()</div><div class="ttdoc">Default constructor. </div><div class="ttdef"><b>Definition:</b> mapped_span.hpp:69</div></div>
+<div class="ttc" id="namespaceafio__v2__xxx_html_afe66c5875c48c8bd172901a1159ccbdc"><div class="ttname"><a href="namespaceafio__v2__xxx.html#afe66c5875c48c8bd172901a1159ccbdc">afio_v2_xxx::length</a></div><div class="ttdeci">result&lt; file_handle::extent_type &gt; length(const file_handle &amp;self) noexcept</div><div class="ttdef"><b>Definition:</b> file_handle.hpp:360</div></div>
+<div class="ttc" id="classafio__v2__xxx_1_1algorithm_1_1mapped__span_html_aa33d0ce0be15b0738c6b36341843ccb5"><div class="ttname"><a href="classafio__v2__xxx_1_1algorithm_1_1mapped__span.html#aa33d0ce0be15b0738c6b36341843ccb5">afio_v2_xxx::algorithm::mapped_span::size_type</a></div><div class="ttdeci">typename section_handle::size_type size_type</div><div class="ttdoc">The size type. </div><div class="ttdef"><b>Definition:</b> mapped_span.hpp:50</div></div>
<div class="ttc" id="namespaceafio__v2__xxx_1_1utils_html_a7e0604f2e7f98b94ddb09989184968f5"><div class="ttname"><a href="namespaceafio__v2__xxx_1_1utils.html#a7e0604f2e7f98b94ddb09989184968f5">afio_v2_xxx::utils::round_down_to_page_size</a></div><div class="ttdeci">T round_down_to_page_size(T i) noexcept</div><div class="ttdoc">Round a value to its next lowest page size multiple. </div><div class="ttdef"><b>Definition:</b> utils.hpp:51</div></div>
</div><!-- fragment -->
</div>
</div>
-<a id="a90012e57d3d7fa833f363a56cb91bcd9"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a90012e57d3d7fa833f363a56cb91bcd9">&#9670;&nbsp;</a></span>mapped_view() <span class="overload">[3/3]</span></h2>
+<a id="a236f0978be161027886300e85bf5ae8d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a236f0978be161027886300e85bf5ae8d">&#9670;&nbsp;</a></span>mapped_span() <span class="overload">[3/3]</span></h2>
<div class="memitem">
<div class="memproto">
@@ -258,7 +258,7 @@ template&lt;class T &gt; </div>
<td class="mlabels-left">
<table class="memname">
<tr>
- <td class="memname"><a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__view.html">afio_v2_xxx::algorithm::mapped_view</a>&lt; T &gt;::<a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__view.html">mapped_view</a> </td>
+ <td class="memname"><a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__span.html">afio_v2_xxx::algorithm::mapped_span</a>&lt; T &gt;::<a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__span.html">mapped_span</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classafio__v2__xxx_1_1mapped__file__handle.html">mapped_file_handle</a> &amp;&#160;</td>
<td class="paramname"><em>mfh</em>, </td>
@@ -266,13 +266,13 @@ template&lt;class T &gt; </div>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__view.html#a7812759f458831ea053fed38ec46dc30">size_type</a>&#160;</td>
- <td class="paramname"><em>length</em> = <code>(<a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__view.html#a7812759f458831ea053fed38ec46dc30">size_type</a>)&#160;-1</code>, </td>
+ <td class="paramtype"><a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__span.html#aa33d0ce0be15b0738c6b36341843ccb5">size_type</a>&#160;</td>
+ <td class="paramname"><em>length</em> = <code>(<a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__span.html#aa33d0ce0be15b0738c6b36341843ccb5">size_type</a>)&#160;-1</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__view.html#a0e413ca44e22e974598aa700f8fda08a">extent_type</a>&#160;</td>
+ <td class="paramtype"><a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__span.html#aa53a448cdf7c235bdba9252b52548b5b">extent_type</a>&#160;</td>
<td class="paramname"><em>byteoffset</em> = <code>0</code>&#160;</td>
</tr>
<tr>
@@ -296,20 +296,20 @@ template&lt;class T &gt; </div>
</table>
</dd>
</dl>
-<div class="fragment"><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; : span&lt;T&gt;(<span class="keyword">reinterpret_cast&lt;</span>T *<span class="keyword">&gt;</span>(mfh.address() + byteoffset), (<a class="code" href="namespaceafio__v2__xxx.html#afe66c5875c48c8bd172901a1159ccbdc">length</a> == (<a class="code" href="classafio__v2__xxx_1_1algorithm_1_1mapped__view.html#a7812759f458831ea053fed38ec46dc30">size_type</a>) -1) ? (mfh.length().value() / <span class="keyword">sizeof</span>(T)) : <a class="code" href="namespaceafio__v2__xxx.html#afe66c5875c48c8bd172901a1159ccbdc">length</a>) <span class="comment">// NOLINT</span></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="ttc" id="namespaceafio__v2__xxx_html_afe66c5875c48c8bd172901a1159ccbdc"><div class="ttname"><a href="namespaceafio__v2__xxx.html#afe66c5875c48c8bd172901a1159ccbdc">afio_v2_xxx::length</a></div><div class="ttdeci">result&lt; file_handle::extent_type &gt; length(const file_handle &amp;self) noexcept</div><div class="ttdef"><b>Definition:</b> file_handle.hpp:362</div></div>
-<div class="ttc" id="classafio__v2__xxx_1_1algorithm_1_1mapped__view_html_a7812759f458831ea053fed38ec46dc30"><div class="ttname"><a href="classafio__v2__xxx_1_1algorithm_1_1mapped__view.html#a7812759f458831ea053fed38ec46dc30">afio_v2_xxx::algorithm::mapped_view::size_type</a></div><div class="ttdeci">typename section_handle::size_type size_type</div><div class="ttdoc">The size type. </div><div class="ttdef"><b>Definition:</b> mapped_view.hpp:50</div></div>
+<div class="fragment"><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; : span&lt;T&gt;(<span class="keyword">reinterpret_cast&lt;</span>T *<span class="keyword">&gt;</span>(mfh.address() + byteoffset), (<a class="code" href="namespaceafio__v2__xxx.html#afe66c5875c48c8bd172901a1159ccbdc">length</a> == (<a class="code" href="classafio__v2__xxx_1_1algorithm_1_1mapped__span.html#aa33d0ce0be15b0738c6b36341843ccb5">size_type</a>) -1) ? (mfh.length().value() / <span class="keyword">sizeof</span>(T)) : <a class="code" href="namespaceafio__v2__xxx.html#afe66c5875c48c8bd172901a1159ccbdc">length</a>) <span class="comment">// NOLINT</span></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="ttc" id="namespaceafio__v2__xxx_html_afe66c5875c48c8bd172901a1159ccbdc"><div class="ttname"><a href="namespaceafio__v2__xxx.html#afe66c5875c48c8bd172901a1159ccbdc">afio_v2_xxx::length</a></div><div class="ttdeci">result&lt; file_handle::extent_type &gt; length(const file_handle &amp;self) noexcept</div><div class="ttdef"><b>Definition:</b> file_handle.hpp:360</div></div>
+<div class="ttc" id="classafio__v2__xxx_1_1algorithm_1_1mapped__span_html_aa33d0ce0be15b0738c6b36341843ccb5"><div class="ttname"><a href="classafio__v2__xxx_1_1algorithm_1_1mapped__span.html#aa33d0ce0be15b0738c6b36341843ccb5">afio_v2_xxx::algorithm::mapped_span::size_type</a></div><div class="ttdeci">typename section_handle::size_type size_type</div><div class="ttdoc">The size type. </div><div class="ttdef"><b>Definition:</b> mapped_span.hpp:50</div></div>
</div><!-- fragment -->
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
-<li>include/afio/v2.0/algorithm/<a class="el" href="mapped__view_8hpp.html">mapped_view.hpp</a></li>
+<li>include/afio/v2.0/algorithm/<a class="el" href="mapped__span_8hpp.html">mapped_span.hpp</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="navelem"><a class="el" href="namespaceafio__v2__xxx.html">afio_v2_xxx</a></li><li class="navelem"><a class="el" href="namespaceafio__v2__xxx_1_1algorithm.html">algorithm</a></li><li class="navelem"><a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__view.html">mapped_view</a></li>
+ <li class="navelem"><a class="el" href="namespaceafio__v2__xxx.html">afio_v2_xxx</a></li><li class="navelem"><a class="el" href="namespaceafio__v2__xxx_1_1algorithm.html">algorithm</a></li><li class="navelem"><a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__span.html">mapped_span</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
diff --git a/classafio__v2__xxx_1_1algorithm_1_1mapped__span.js b/classafio__v2__xxx_1_1algorithm_1_1mapped__span.js
new file mode 100644
index 00000000..51f471de
--- /dev/null
+++ b/classafio__v2__xxx_1_1algorithm_1_1mapped__span.js
@@ -0,0 +1,9 @@
+var classafio__v2__xxx_1_1algorithm_1_1mapped__span =
+[
+ [ "extent_type", "classafio__v2__xxx_1_1algorithm_1_1mapped__span.html#aa53a448cdf7c235bdba9252b52548b5b", null ],
+ [ "size_type", "classafio__v2__xxx_1_1algorithm_1_1mapped__span.html#aa33d0ce0be15b0738c6b36341843ccb5", null ],
+ [ "mapped_span", "classafio__v2__xxx_1_1algorithm_1_1mapped__span.html#aa5b20642220613876d8be474003785e9", null ],
+ [ "mapped_span", "classafio__v2__xxx_1_1algorithm_1_1mapped__span.html#af6a43d3c0201079dac97d407ddb00aaa", null ],
+ [ "mapped_span", "classafio__v2__xxx_1_1algorithm_1_1mapped__span.html#aca48ca2f9558c5d6f57e398016311fe8", null ],
+ [ "mapped_span", "classafio__v2__xxx_1_1algorithm_1_1mapped__span.html#a236f0978be161027886300e85bf5ae8d", null ]
+]; \ No newline at end of file
diff --git a/classafio__v2__xxx_1_1algorithm_1_1mapped__span.png b/classafio__v2__xxx_1_1algorithm_1_1mapped__span.png
new file mode 100644
index 00000000..802dbbec
--- /dev/null
+++ b/classafio__v2__xxx_1_1algorithm_1_1mapped__span.png
Binary files differ
diff --git a/classafio__v2__xxx_1_1algorithm_1_1mapped__view.js b/classafio__v2__xxx_1_1algorithm_1_1mapped__view.js
deleted file mode 100644
index decb0465..00000000
--- a/classafio__v2__xxx_1_1algorithm_1_1mapped__view.js
+++ /dev/null
@@ -1,9 +0,0 @@
-var classafio__v2__xxx_1_1algorithm_1_1mapped__view =
-[
- [ "extent_type", "classafio__v2__xxx_1_1algorithm_1_1mapped__view.html#a0e413ca44e22e974598aa700f8fda08a", null ],
- [ "size_type", "classafio__v2__xxx_1_1algorithm_1_1mapped__view.html#a7812759f458831ea053fed38ec46dc30", null ],
- [ "mapped_view", "classafio__v2__xxx_1_1algorithm_1_1mapped__view.html#a8ac47f0032bf486cc3ff21b0a1958d02", null ],
- [ "mapped_view", "classafio__v2__xxx_1_1algorithm_1_1mapped__view.html#af8a986d93d5967962763900af3f99824", null ],
- [ "mapped_view", "classafio__v2__xxx_1_1algorithm_1_1mapped__view.html#a0c63a640692c5fab81abb7572df45018", null ],
- [ "mapped_view", "classafio__v2__xxx_1_1algorithm_1_1mapped__view.html#a90012e57d3d7fa833f363a56cb91bcd9", null ]
-]; \ No newline at end of file
diff --git a/classafio__v2__xxx_1_1algorithm_1_1mapped__view.png b/classafio__v2__xxx_1_1algorithm_1_1mapped__view.png
deleted file mode 100644
index 8736b3fd..00000000
--- a/classafio__v2__xxx_1_1algorithm_1_1mapped__view.png
+++ /dev/null
Binary files differ
diff --git a/classafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1atomic__append.html b/classafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1atomic__append.html
index 983f3523..13c07cc8 100644
--- a/classafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1atomic__append.html
+++ b/classafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1atomic__append.html
@@ -251,7 +251,7 @@ Protected Member Functions</h2></td></tr>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000006">Todo:</a></b></dt><dd>Read from header.last_known_good immediately if possible in order to avoid a duplicate read later </dd></dl>
<p>Implements <a class="el" href="classafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html">afio_v2_xxx::algorithm::shared_fs_mutex::shared_fs_mutex</a>.</p>
-<div class="fragment"><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; AFIO_LOG_FUNCTION_CALL(<span class="keyword">this</span>);</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; atomic_append_detail::lock_request lock_request;</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keywordflow">if</span>(out.entities.size() &gt; <span class="keyword">sizeof</span>(lock_request.entities) / <span class="keyword">sizeof</span>(lock_request.entities[0]))</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; <span class="keywordflow">return</span> std::errc::argument_list_too_long;</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; }</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; std::chrono::steady_clock::time_point began_steady;</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; std::chrono::system_clock::time_point end_utc;</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <span class="keywordflow">if</span>(d)</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; {</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="keywordflow">if</span>((d).steady)</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; {</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; began_steady = std::chrono::steady_clock::now();</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; }</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="keywordflow">else</span></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; end_utc = (d).to_time_point();</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; }</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; }</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="comment">// Fire this if an error occurs</span></div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keyword">auto</span> disableunlock = undoer([&amp;] { out.release(); });</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <span class="comment">// Write my lock request immediately</span></div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; memset(&amp;lock_request, 0, <span class="keyword">sizeof</span>(lock_request));</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; lock_request.unique_id = _unique_id;</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <span class="keyword">auto</span> count = std::chrono::system_clock::now() - std::chrono::system_clock::from_time_t(_header.time_offset);</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; lock_request.us_count = std::chrono::duration_cast&lt;std::chrono::microseconds&gt;(count).count();</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; lock_request.items = out.entities.size();</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; memcpy(lock_request.entities, out.entities.data(), <span class="keyword">sizeof</span>(lock_request.entities[0]) * out.entities.size());</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <span class="keywordflow">if</span>(!_skip_hashing)</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; {</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; lock_request.hash = QUICKCPPLIB_NAMESPACE::algorithm::hash::fast_hash::hash((reinterpret_cast&lt;char *&gt;(&amp;lock_request)) + 16, <span class="keyword">sizeof</span>(lock_request) - 16);</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; <span class="comment">// My lock request will be the file&#39;s current length or higher</span></div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; OUTCOME_TRY(my_lock_request_offset, _h.<a class="code" href="classafio__v2__xxx_1_1file__handle.html#a2083c37ffc746ec28f9e4d6b094d3ba5">length</a>());</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; {</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; OUTCOME_TRYV(_h.<a class="code" href="classafio__v2__xxx_1_1handle.html#af1610ec7fb0a41f039e3e17e0dc467ab">set_append_only</a>(<span class="keyword">true</span>));</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <span class="keyword">auto</span> undo = undoer([<span class="keyword">this</span>] { (void) _h.<a class="code" href="classafio__v2__xxx_1_1handle.html#af1610ec7fb0a41f039e3e17e0dc467ab">set_append_only</a>(<span class="keyword">false</span>); });</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; file_handle::extent_guard append_guard;</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <span class="keywordflow">if</span>(_nfs_compatibility)</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; {</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <span class="keyword">auto</span> lastbyte = <span class="keyword">static_cast&lt;</span>file_handle::extent_type<span class="keyword">&gt;</span>(-1);</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <span class="comment">// Lock up to the beginning of the shadow lock space</span></div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; lastbyte &amp;= ~(1ULL &lt;&lt; 63U);</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; OUTCOME_TRY(append_guard_, _h.<a class="code" href="classafio__v2__xxx_1_1io__handle.html#a88689b15e6e8b6ce1f945737dee4369e">lock</a>(my_lock_request_offset, lastbyte, <span class="keyword">true</span>));</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; append_guard = std::move(append_guard_);</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; }</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; OUTCOME_TRYV(_h.<a class="code" href="classafio__v2__xxx_1_1io__handle.html#aefac4710e5617264347f437b04732c01">write</a>(0, reinterpret_cast&lt;char *&gt;(&amp;lock_request), <span class="keyword">sizeof</span>(lock_request)));</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; }</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; <span class="comment">// Find the record I just wrote</span></div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="keyword">alignas</span>(64) <span class="keywordtype">char</span> _buffer[4096 + 2048]; <span class="comment">// 6Kb cache line aligned buffer</span></div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <span class="comment">// Read onwards from length as reported before I wrote my lock request</span></div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <span class="comment">// until I find my lock request. This loop should never actually iterate</span></div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <span class="comment">// except under extreme load conditions.</span><span class="comment"></span></div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160;<span class="comment"> //! \todo Read from header.last_known_good immediately if possible in order</span></div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;<span class="comment"> //! to avoid a duplicate read later</span></div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;<span class="comment"></span> <span class="keywordflow">for</span>(;;)</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; {</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; file_handle::io_result&lt;file_handle::buffer_type&gt; readoutcome = _h.<a class="code" href="classafio__v2__xxx_1_1io__handle.html#a71d7636f40607829cacc2c974c4a2a28">read</a>(my_lock_request_offset, _buffer, <span class="keyword">sizeof</span>(_buffer));</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <span class="comment">// Should never happen :)</span></div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <span class="keywordflow">if</span>(readoutcome.has_error())</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; {</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; AFIO_LOG_FATAL(<span class="keyword">this</span>, <span class="stringliteral">&quot;atomic_append::lock() saw an error when searching for just written data&quot;</span>);</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; std::terminate();</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; }</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <span class="keyword">const</span> atomic_append_detail::lock_request *record, *lastrecord;</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <span class="keywordflow">for</span>(record = reinterpret_cast&lt;const atomic_append_detail::lock_request *&gt;(readoutcome.value().data), lastrecord = reinterpret_cast&lt;const atomic_append_detail::lock_request *&gt;(readoutcome.value().data + readoutcome.value().len); record &lt; lastrecord &amp;&amp; record-&gt;hash != lock_request.hash; ++record)</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; {</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; my_lock_request_offset += <span class="keyword">sizeof</span>(atomic_append_detail::lock_request);</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; <span class="keywordflow">if</span>(record-&gt;hash == lock_request.hash)</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; {</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; }</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; }</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160;</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; <span class="comment">// extent_guard is now valid and will be unlocked on error</span></div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; out.hint = my_lock_request_offset;</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; disableunlock.dismiss();</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; <span class="comment">// Lock my request for writing so others can sleep on me</span></div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; file_handle::extent_guard my_request_guard;</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <span class="keywordflow">if</span>(!spin_not_sleep)</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; <span class="keyword">auto</span> lock_offset = my_lock_request_offset;</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <span class="comment">// Set the top bit to use the shadow lock space on Windows</span></div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; lock_offset |= (1ULL &lt;&lt; 63U);</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; OUTCOME_TRY(my_request_guard_, _h.<a class="code" href="classafio__v2__xxx_1_1io__handle.html#a88689b15e6e8b6ce1f945737dee4369e">lock</a>(lock_offset, <span class="keyword">sizeof</span>(lock_request), <span class="keyword">true</span>));</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; my_request_guard = std::move(my_request_guard_);</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="comment">// Read every record preceding mine until header.first_known_good inclusive</span></div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; <span class="keyword">auto</span> record_offset = my_lock_request_offset - <span class="keyword">sizeof</span>(atomic_append_detail::lock_request);</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; <span class="keywordflow">do</span></div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; {</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; reload:</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; <span class="comment">// Refresh the header and load a snapshot of everything between record_offset</span></div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; <span class="comment">// and first_known_good or -6Kb, whichever the sooner</span></div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; OUTCOME_TRYV(_read_header());</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; <span class="comment">// If there are no preceding records, we&#39;re done</span></div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; <span class="keywordflow">if</span>(record_offset &lt; _header.first_known_good)</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; {</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; }</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; <span class="keyword">auto</span> start_offset = record_offset;</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; <span class="keywordflow">if</span>(start_offset &gt; <span class="keyword">sizeof</span>(_buffer) - <span class="keyword">sizeof</span>(atomic_append_detail::lock_request))</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; {</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; start_offset -= <span class="keyword">sizeof</span>(_buffer) - <span class="keyword">sizeof</span>(atomic_append_detail::lock_request);</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; }</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; {</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; start_offset = <span class="keyword">sizeof</span>(atomic_append_detail::lock_request);</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; }</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; <span class="keywordflow">if</span>(start_offset &lt; _header.first_known_good)</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; {</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; start_offset = _header.first_known_good;</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; }</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; assert(record_offset &gt;= start_offset);</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; assert(record_offset - start_offset &lt;= <span class="keyword">sizeof</span>(_buffer));</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; OUTCOME_TRY(batchread, _h.<a class="code" href="classafio__v2__xxx_1_1io__handle.html#a71d7636f40607829cacc2c974c4a2a28">read</a>(start_offset, _buffer, (<span class="keywordtype">size_t</span>)(record_offset - start_offset) + <span class="keyword">sizeof</span>(atomic_append_detail::lock_request)));</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; assert(batchread.len == record_offset - start_offset + <span class="keyword">sizeof</span>(atomic_append_detail::lock_request));</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; <span class="keyword">const</span> atomic_append_detail::lock_request *record = <span class="keyword">reinterpret_cast&lt;</span>atomic_append_detail::lock_request *<span class="keyword">&gt;</span>(batchread.data + batchread.len - <span class="keyword">sizeof</span>(atomic_append_detail::lock_request));</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; <span class="keyword">const</span> atomic_append_detail::lock_request *firstrecord = <span class="keyword">reinterpret_cast&lt;</span>atomic_append_detail::lock_request *<span class="keyword">&gt;</span>(batchread.data);</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160;</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; <span class="comment">// Skip all completed lock requests or not mentioning any of my entities</span></div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; <span class="keywordflow">for</span>(; record &gt;= firstrecord; record_offset -= <span class="keyword">sizeof</span>(atomic_append_detail::lock_request), --record)</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; {</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; <span class="comment">// If a completed lock request, skip</span></div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; <span class="keywordflow">if</span>(!record-&gt;hash &amp;&amp; (record-&gt;unique_id == 0u))</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; {</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; <span class="keywordflow">continue</span>;</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; <span class="comment">// If record hash doesn&#39;t match contents it&#39;s a torn read, reload</span></div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; <span class="keywordflow">if</span>(!_skip_hashing)</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; {</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; <span class="keywordflow">if</span>(record-&gt;hash != QUICKCPPLIB_NAMESPACE::algorithm::hash::fast_hash::hash((reinterpret_cast&lt;const char *&gt;(record)) + 16, <span class="keyword">sizeof</span>(atomic_append_detail::lock_request) - 16))</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; {</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; <span class="keywordflow">goto</span> reload;</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; }</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; }</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160;</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; <span class="comment">// Does this record lock anything I am locking?</span></div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">const</span> <span class="keyword">auto</span> &amp;entity : out.entities)</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="keywordflow">for</span>(<span class="keywordtype">size_t</span> n = 0; n &lt; record-&gt;items; n++)</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; {</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; <span class="keywordflow">if</span>(record-&gt;entities[n].value == entity.value)</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; {</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; <span class="comment">// Is the lock I want exclusive or the lock he wants exclusive?</span></div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; <span class="comment">// If so, need to block</span></div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; <span class="keywordflow">if</span>((record-&gt;entities[n].exclusive != 0u) || (entity.exclusive != 0u))</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; {</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; <span class="keywordflow">goto</span> beginwait;</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; }</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; }</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; }</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; <span class="comment">// None of this batch of records has anything to do with my request, so keep going</span></div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160;</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; beginwait:</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; <span class="comment">// Sleep until this record is freed using a shared lock</span></div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; <span class="comment">// on the record in our way. Note there is a race here</span></div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; <span class="comment">// between when the lock requester writes the lock</span></div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; <span class="comment">// request and when he takes an exclusive lock on it,</span></div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; <span class="comment">// so if our shared lock succeeds we need to immediately</span></div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; <span class="comment">// unlock and retry based on the data.</span></div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; std::this_thread::yield();</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; <span class="keywordflow">if</span>(!spin_not_sleep)</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; {</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; deadline nd;</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; <span class="keywordflow">if</span>(d)</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; {</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; <span class="keywordflow">if</span>((d).steady)</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; {</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; std::chrono::nanoseconds ns = std::chrono::duration_cast&lt;std::chrono::nanoseconds&gt;((began_steady + std::chrono::nanoseconds((d).nsecs)) - std::chrono::steady_clock::now());</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; <span class="keywordflow">if</span>(ns.count() &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; (nd).nsecs = 0;</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; }</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; {</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; (nd).nsecs = ns.count();</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; }</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; }</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; {</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; (nd) = (d);</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; }</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; }</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; <span class="keyword">auto</span> lock_offset = record_offset;</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; <span class="comment">// Set the top bit to use the shadow lock space on Windows</span></div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; lock_offset |= (1ULL &lt;&lt; 63U);</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; OUTCOME_TRYV(_h.<a class="code" href="classafio__v2__xxx_1_1io__handle.html#a88689b15e6e8b6ce1f945737dee4369e">lock</a>(lock_offset, <span class="keyword">sizeof</span>(record), <span class="keyword">false</span>, nd));</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; }</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; <span class="comment">// Make sure we haven&#39;t timed out during this wait</span></div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; <span class="keywordflow">if</span>(d)</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; {</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; <span class="keywordflow">if</span>((d).steady)</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; {</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; <span class="keywordflow">if</span>(std::chrono::steady_clock::now() &gt;= (began_steady + std::chrono::nanoseconds((d).nsecs)))</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; {</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; <span class="keywordflow">return</span> std::errc::timed_out;</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; }</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; }</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; {</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; <span class="keywordflow">if</span>(std::chrono::system_clock::now() &gt;= end_utc)</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; {</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; <span class="keywordflow">return</span> std::errc::timed_out;</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; }</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; }</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; }</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; } <span class="keywordflow">while</span>(record_offset &gt;= _header.first_known_good);</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; <span class="keywordflow">return</span> success();</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; }</div><div class="ttc" id="classafio__v2__xxx_1_1io__handle_html_aefac4710e5617264347f437b04732c01"><div class="ttname"><a href="classafio__v2__xxx_1_1io__handle.html#aefac4710e5617264347f437b04732c01">afio_v2_xxx::io_handle::write</a></div><div class="ttdeci">virtual io_result&lt; const_buffers_type &gt; write(io_request&lt; const_buffers_type &gt; reqs, deadline d=deadline()) noexcept</div><div class="ttdoc">Write data to the open handle. </div></div>
+<div class="fragment"><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; AFIO_LOG_FUNCTION_CALL(<span class="keyword">this</span>);</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; atomic_append_detail::lock_request lock_request;</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keywordflow">if</span>(out.entities.size() &gt; <span class="keyword">sizeof</span>(lock_request.entities) / <span class="keyword">sizeof</span>(lock_request.entities[0]))</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; <span class="keywordflow">return</span> std::errc::argument_list_too_long;</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; }</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; std::chrono::steady_clock::time_point began_steady;</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; std::chrono::system_clock::time_point end_utc;</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <span class="keywordflow">if</span>(d)</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; {</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="keywordflow">if</span>((d).steady)</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; {</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; began_steady = std::chrono::steady_clock::now();</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; }</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="keywordflow">else</span></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; end_utc = (d).to_time_point();</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; }</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; }</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="comment">// Fire this if an error occurs</span></div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keyword">auto</span> disableunlock = undoer([&amp;] { out.release(); });</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <span class="comment">// Write my lock request immediately</span></div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; memset(&amp;lock_request, 0, <span class="keyword">sizeof</span>(lock_request));</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; lock_request.unique_id = _unique_id;</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <span class="keyword">auto</span> count = std::chrono::system_clock::now() - std::chrono::system_clock::from_time_t(_header.time_offset);</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; lock_request.us_count = std::chrono::duration_cast&lt;std::chrono::microseconds&gt;(count).count();</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; lock_request.items = out.entities.size();</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; memcpy(lock_request.entities, out.entities.data(), <span class="keyword">sizeof</span>(lock_request.entities[0]) * out.entities.size());</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <span class="keywordflow">if</span>(!_skip_hashing)</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; {</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; lock_request.hash = QUICKCPPLIB_NAMESPACE::algorithm::hash::fast_hash::hash((reinterpret_cast&lt;char *&gt;(&amp;lock_request)) + 16, <span class="keyword">sizeof</span>(lock_request) - 16);</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; <span class="comment">// My lock request will be the file&#39;s current length or higher</span></div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; OUTCOME_TRY(my_lock_request_offset, _h.<a class="code" href="classafio__v2__xxx_1_1file__handle.html#a2083c37ffc746ec28f9e4d6b094d3ba5">length</a>());</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; {</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; OUTCOME_TRYV(_h.<a class="code" href="classafio__v2__xxx_1_1handle.html#af1610ec7fb0a41f039e3e17e0dc467ab">set_append_only</a>(<span class="keyword">true</span>));</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <span class="keyword">auto</span> undo = undoer([<span class="keyword">this</span>] { (void) _h.<a class="code" href="classafio__v2__xxx_1_1handle.html#af1610ec7fb0a41f039e3e17e0dc467ab">set_append_only</a>(<span class="keyword">false</span>); });</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; file_handle::extent_guard append_guard;</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <span class="keywordflow">if</span>(_nfs_compatibility)</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; {</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <span class="keyword">auto</span> lastbyte = <span class="keyword">static_cast&lt;</span>file_handle::extent_type<span class="keyword">&gt;</span>(-1);</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <span class="comment">// Lock up to the beginning of the shadow lock space</span></div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; lastbyte &amp;= ~(1ULL &lt;&lt; 63U);</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; OUTCOME_TRY(append_guard_, _h.<a class="code" href="classafio__v2__xxx_1_1io__handle.html#a88689b15e6e8b6ce1f945737dee4369e">lock</a>(my_lock_request_offset, lastbyte, <span class="keyword">true</span>));</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; append_guard = std::move(append_guard_);</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; }</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; OUTCOME_TRYV(_h.<a class="code" href="classafio__v2__xxx_1_1io__handle.html#aefac4710e5617264347f437b04732c01">write</a>(0, {{reinterpret_cast&lt;char *&gt;(&amp;lock_request), sizeof(lock_request)}}));</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; }</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; <span class="comment">// Find the record I just wrote</span></div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="keyword">alignas</span>(64) <span class="keywordtype">char</span> _buffer[4096 + 2048]; <span class="comment">// 6Kb cache line aligned buffer</span></div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <span class="comment">// Read onwards from length as reported before I wrote my lock request</span></div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <span class="comment">// until I find my lock request. This loop should never actually iterate</span></div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <span class="comment">// except under extreme load conditions.</span><span class="comment"></span></div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160;<span class="comment"> //! \todo Read from header.last_known_good immediately if possible in order</span></div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;<span class="comment"> //! to avoid a duplicate read later</span></div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;<span class="comment"></span> <span class="keywordflow">for</span>(;;)</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; {</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; file_handle::io_result&lt;file_handle::buffers_type&gt; readoutcome = _h.<a class="code" href="classafio__v2__xxx_1_1io__handle.html#a71d7636f40607829cacc2c974c4a2a28">read</a>(my_lock_request_offset, {{_buffer, <span class="keyword">sizeof</span>(_buffer)}});</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <span class="comment">// Should never happen :)</span></div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <span class="keywordflow">if</span>(readoutcome.has_error())</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; {</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; AFIO_LOG_FATAL(<span class="keyword">this</span>, <span class="stringliteral">&quot;atomic_append::lock() saw an error when searching for just written data&quot;</span>);</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; std::terminate();</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; }</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <span class="keyword">const</span> atomic_append_detail::lock_request *record, *lastrecord;</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <span class="keywordflow">for</span>(record = reinterpret_cast&lt;const atomic_append_detail::lock_request *&gt;(readoutcome.value()[0].data), lastrecord = reinterpret_cast&lt;const atomic_append_detail::lock_request *&gt;(readoutcome.value()[0].data + readoutcome.value()[0].len); record &lt; lastrecord &amp;&amp; record-&gt;hash != lock_request.hash; ++record)</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; {</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; my_lock_request_offset += <span class="keyword">sizeof</span>(atomic_append_detail::lock_request);</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; <span class="keywordflow">if</span>(record-&gt;hash == lock_request.hash)</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; {</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; }</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; }</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160;</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; <span class="comment">// extent_guard is now valid and will be unlocked on error</span></div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; out.hint = my_lock_request_offset;</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; disableunlock.dismiss();</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; <span class="comment">// Lock my request for writing so others can sleep on me</span></div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; file_handle::extent_guard my_request_guard;</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <span class="keywordflow">if</span>(!spin_not_sleep)</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; <span class="keyword">auto</span> lock_offset = my_lock_request_offset;</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <span class="comment">// Set the top bit to use the shadow lock space on Windows</span></div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; lock_offset |= (1ULL &lt;&lt; 63U);</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; OUTCOME_TRY(my_request_guard_, _h.<a class="code" href="classafio__v2__xxx_1_1io__handle.html#a88689b15e6e8b6ce1f945737dee4369e">lock</a>(lock_offset, <span class="keyword">sizeof</span>(lock_request), <span class="keyword">true</span>));</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; my_request_guard = std::move(my_request_guard_);</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="comment">// Read every record preceding mine until header.first_known_good inclusive</span></div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; <span class="keyword">auto</span> record_offset = my_lock_request_offset - <span class="keyword">sizeof</span>(atomic_append_detail::lock_request);</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; <span class="keywordflow">do</span></div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; {</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; reload:</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; <span class="comment">// Refresh the header and load a snapshot of everything between record_offset</span></div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; <span class="comment">// and first_known_good or -6Kb, whichever the sooner</span></div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; OUTCOME_TRYV(_read_header());</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; <span class="comment">// If there are no preceding records, we&#39;re done</span></div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; <span class="keywordflow">if</span>(record_offset &lt; _header.first_known_good)</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; {</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; }</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; <span class="keyword">auto</span> start_offset = record_offset;</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; <span class="keywordflow">if</span>(start_offset &gt; <span class="keyword">sizeof</span>(_buffer) - <span class="keyword">sizeof</span>(atomic_append_detail::lock_request))</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; {</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; start_offset -= <span class="keyword">sizeof</span>(_buffer) - <span class="keyword">sizeof</span>(atomic_append_detail::lock_request);</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; }</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; {</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; start_offset = <span class="keyword">sizeof</span>(atomic_append_detail::lock_request);</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; }</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; <span class="keywordflow">if</span>(start_offset &lt; _header.first_known_good)</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; {</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; start_offset = _header.first_known_good;</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; }</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; assert(record_offset &gt;= start_offset);</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; assert(record_offset - start_offset &lt;= <span class="keyword">sizeof</span>(_buffer));</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; OUTCOME_TRY(batchread, _h.<a class="code" href="classafio__v2__xxx_1_1io__handle.html#a71d7636f40607829cacc2c974c4a2a28">read</a>(start_offset, {{_buffer, (size_t)(record_offset - start_offset) + sizeof(atomic_append_detail::lock_request)}}));</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; assert(batchread[0].len == record_offset - start_offset + <span class="keyword">sizeof</span>(atomic_append_detail::lock_request));</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; <span class="keyword">const</span> atomic_append_detail::lock_request *record = <span class="keyword">reinterpret_cast&lt;</span>atomic_append_detail::lock_request *<span class="keyword">&gt;</span>(batchread[0].data + batchread[0].len - <span class="keyword">sizeof</span>(atomic_append_detail::lock_request));</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; <span class="keyword">const</span> atomic_append_detail::lock_request *firstrecord = <span class="keyword">reinterpret_cast&lt;</span>atomic_append_detail::lock_request *<span class="keyword">&gt;</span>(batchread[0].data);</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160;</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; <span class="comment">// Skip all completed lock requests or not mentioning any of my entities</span></div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; <span class="keywordflow">for</span>(; record &gt;= firstrecord; record_offset -= <span class="keyword">sizeof</span>(atomic_append_detail::lock_request), --record)</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; {</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; <span class="comment">// If a completed lock request, skip</span></div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; <span class="keywordflow">if</span>(!record-&gt;hash &amp;&amp; (record-&gt;unique_id == 0u))</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; {</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; <span class="keywordflow">continue</span>;</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; <span class="comment">// If record hash doesn&#39;t match contents it&#39;s a torn read, reload</span></div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; <span class="keywordflow">if</span>(!_skip_hashing)</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; {</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; <span class="keywordflow">if</span>(record-&gt;hash != QUICKCPPLIB_NAMESPACE::algorithm::hash::fast_hash::hash((reinterpret_cast&lt;const char *&gt;(record)) + 16, <span class="keyword">sizeof</span>(atomic_append_detail::lock_request) - 16))</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; {</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; <span class="keywordflow">goto</span> reload;</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; }</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; }</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160;</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; <span class="comment">// Does this record lock anything I am locking?</span></div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">const</span> <span class="keyword">auto</span> &amp;entity : out.entities)</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="keywordflow">for</span>(<span class="keywordtype">size_t</span> n = 0; n &lt; record-&gt;items; n++)</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; {</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; <span class="keywordflow">if</span>(record-&gt;entities[n].value == entity.value)</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; {</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; <span class="comment">// Is the lock I want exclusive or the lock he wants exclusive?</span></div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; <span class="comment">// If so, need to block</span></div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; <span class="keywordflow">if</span>((record-&gt;entities[n].exclusive != 0u) || (entity.exclusive != 0u))</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; {</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; <span class="keywordflow">goto</span> beginwait;</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; }</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; }</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; }</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; <span class="comment">// None of this batch of records has anything to do with my request, so keep going</span></div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160;</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; beginwait:</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; <span class="comment">// Sleep until this record is freed using a shared lock</span></div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; <span class="comment">// on the record in our way. Note there is a race here</span></div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; <span class="comment">// between when the lock requester writes the lock</span></div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; <span class="comment">// request and when he takes an exclusive lock on it,</span></div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; <span class="comment">// so if our shared lock succeeds we need to immediately</span></div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; <span class="comment">// unlock and retry based on the data.</span></div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; std::this_thread::yield();</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; <span class="keywordflow">if</span>(!spin_not_sleep)</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; {</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; deadline nd;</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; <span class="keywordflow">if</span>(d)</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; {</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; <span class="keywordflow">if</span>((d).steady)</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; {</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; std::chrono::nanoseconds ns = std::chrono::duration_cast&lt;std::chrono::nanoseconds&gt;((began_steady + std::chrono::nanoseconds((d).nsecs)) - std::chrono::steady_clock::now());</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; <span class="keywordflow">if</span>(ns.count() &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; (nd).nsecs = 0;</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; }</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; {</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; (nd).nsecs = ns.count();</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; }</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; }</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; {</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; (nd) = (d);</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; }</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; }</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; <span class="keyword">auto</span> lock_offset = record_offset;</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; <span class="comment">// Set the top bit to use the shadow lock space on Windows</span></div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; lock_offset |= (1ULL &lt;&lt; 63U);</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; OUTCOME_TRYV(_h.<a class="code" href="classafio__v2__xxx_1_1io__handle.html#a88689b15e6e8b6ce1f945737dee4369e">lock</a>(lock_offset, <span class="keyword">sizeof</span>(*record), <span class="keyword">false</span>, nd));</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; }</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; <span class="comment">// Make sure we haven&#39;t timed out during this wait</span></div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; <span class="keywordflow">if</span>(d)</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; {</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; <span class="keywordflow">if</span>((d).steady)</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; {</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; <span class="keywordflow">if</span>(std::chrono::steady_clock::now() &gt;= (began_steady + std::chrono::nanoseconds((d).nsecs)))</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; {</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; <span class="keywordflow">return</span> std::errc::timed_out;</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; }</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; }</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; {</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; <span class="keywordflow">if</span>(std::chrono::system_clock::now() &gt;= end_utc)</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; {</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; <span class="keywordflow">return</span> std::errc::timed_out;</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; }</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; }</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; }</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; } <span class="keywordflow">while</span>(record_offset &gt;= _header.first_known_good);</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; <span class="keywordflow">return</span> success();</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; }</div><div class="ttc" id="classafio__v2__xxx_1_1io__handle_html_aefac4710e5617264347f437b04732c01"><div class="ttname"><a href="classafio__v2__xxx_1_1io__handle.html#aefac4710e5617264347f437b04732c01">afio_v2_xxx::io_handle::write</a></div><div class="ttdeci">virtual io_result&lt; const_buffers_type &gt; write(io_request&lt; const_buffers_type &gt; reqs, deadline d=deadline()) noexcept</div><div class="ttdoc">Write data to the open handle. </div></div>
<div class="ttc" id="classafio__v2__xxx_1_1handle_html_af1610ec7fb0a41f039e3e17e0dc467ab"><div class="ttname"><a href="classafio__v2__xxx_1_1handle.html#af1610ec7fb0a41f039e3e17e0dc467ab">afio_v2_xxx::handle::set_append_only</a></div><div class="ttdeci">virtual result&lt; void &gt; set_append_only(bool enable) noexcept</div></div>
<div class="ttc" id="classafio__v2__xxx_1_1file__handle_html_a2083c37ffc746ec28f9e4d6b094d3ba5"><div class="ttname"><a href="classafio__v2__xxx_1_1file__handle.html#a2083c37ffc746ec28f9e4d6b094d3ba5">afio_v2_xxx::file_handle::length</a></div><div class="ttdeci">virtual result&lt; extent_type &gt; length() const noexcept</div></div>
<div class="ttc" id="classafio__v2__xxx_1_1io__handle_html_a71d7636f40607829cacc2c974c4a2a28"><div class="ttname"><a href="classafio__v2__xxx_1_1io__handle.html#a71d7636f40607829cacc2c974c4a2a28">afio_v2_xxx::io_handle::read</a></div><div class="ttdeci">virtual io_result&lt; buffers_type &gt; read(io_request&lt; buffers_type &gt; reqs, deadline d=deadline()) noexcept</div><div class="ttdoc">Read data from the open handle. </div></div>
@@ -316,7 +316,7 @@ Protected Member Functions</h2></td></tr>
</dd>
</dl>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000005">Todo:</a></b></dt><dd>fs_mutex_append needs to check if file still exists after lock is granted, awaiting path fetching. </dd></dl>
-<div class="fragment"><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; {</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; AFIO_LOG_FUNCTION_CALL(0);</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; OUTCOME_TRY(ret, <a class="code" href="classafio__v2__xxx_1_1file__handle.html#accb36f2bfd98393dc868653798c02d34">file_handle::file</a>(base, lockfile, <a class="code" href="classafio__v2__xxx_1_1handle.html#a0489b6c1e25cd2bad2ba1ec86e1aaf18aefb2a684e4afb7d55e6147fbe5a332ee">file_handle::mode::write</a>, file_handle::creation::if_needed, <a class="code" href="classafio__v2__xxx_1_1handle.html#a6f7e37c73271968271c2342023f58c9ead5197d93c063a2b1e22d1630a39b7aef">file_handle::caching::temporary</a>));</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; atomic_append_detail::header header;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="comment">// Lock the entire header for exclusive access</span></div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keyword">auto</span> lockresult = ret.try_lock(0, <span class="keyword">sizeof</span>(header), <span class="keyword">true</span>);<span class="comment"></span></div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;<span class="comment"> //! \todo fs_mutex_append needs to check if file still exists after lock is granted, awaiting path fetching.</span></div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;<span class="comment"></span> <span class="keywordflow">if</span>(lockresult.has_error())</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; {</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keywordflow">if</span>(lockresult.error() != std::errc::timed_out)</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; {</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keywordflow">return</span> lockresult.error();</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"> 209</span>&#160; <span class="comment">// Somebody else is also using this file</span></div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; }</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keywordflow">else</span></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; <span class="comment">// I am the first person to be using this (stale?) file, so write a new header and truncate</span></div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; OUTCOME_TRYV(ret.truncate(<span class="keyword">sizeof</span>(header)));</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; memset(&amp;header, 0, <span class="keyword">sizeof</span>(header));</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; header.time_offset = std::chrono::system_clock::to_time_t(std::chrono::system_clock::now());</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; header.first_known_good = <span class="keyword">sizeof</span>(header);</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; header.first_after_hole_punch = <span class="keyword">sizeof</span>(header);</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keywordflow">if</span>(!skip_hashing)</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; {</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; header.hash = QUICKCPPLIB_NAMESPACE::algorithm::hash::fast_hash::hash((reinterpret_cast&lt;char *&gt;(&amp;header)) + 16, <span class="keyword">sizeof</span>(header) - 16);</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; }</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; OUTCOME_TRYV(ret.write(0, reinterpret_cast&lt;char *&gt;(&amp;header), <span class="keyword">sizeof</span>(header)));</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; <span class="comment">// Open a shared lock on last byte in header to prevent other users zomping the file</span></div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; OUTCOME_TRY(guard, ret.lock(<span class="keyword">sizeof</span>(header) - 1, 1, <span class="keyword">false</span>));</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="comment">// Unlock any exclusive lock I gained earlier now</span></div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="keywordflow">if</span>(lockresult)</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; lockresult.value().unlock();</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; }</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="comment">// The constructor will read and cache the header</span></div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keywordflow">return</span> atomic_append(std::move(ret), std::move(guard), nfs_compatibility, skip_hashing);</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; }</div><div class="ttc" id="classafio__v2__xxx_1_1file__handle_html_accb36f2bfd98393dc868653798c02d34"><div class="ttname"><a href="classafio__v2__xxx_1_1file__handle.html#accb36f2bfd98393dc868653798c02d34">afio_v2_xxx::file_handle::file</a></div><div class="ttdeci">static result&lt; file_handle &gt; file(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 class="fragment"><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; {</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; AFIO_LOG_FUNCTION_CALL(0);</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; OUTCOME_TRY(ret, <a class="code" href="classafio__v2__xxx_1_1file__handle.html#accb36f2bfd98393dc868653798c02d34">file_handle::file</a>(base, lockfile, <a class="code" href="classafio__v2__xxx_1_1handle.html#a0489b6c1e25cd2bad2ba1ec86e1aaf18aefb2a684e4afb7d55e6147fbe5a332ee">file_handle::mode::write</a>, file_handle::creation::if_needed, <a class="code" href="classafio__v2__xxx_1_1handle.html#a6f7e37c73271968271c2342023f58c9ead5197d93c063a2b1e22d1630a39b7aef">file_handle::caching::temporary</a>));</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; atomic_append_detail::header header;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="comment">// Lock the entire header for exclusive access</span></div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keyword">auto</span> lockresult = ret.try_lock(0, <span class="keyword">sizeof</span>(header), <span class="keyword">true</span>);<span class="comment"></span></div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;<span class="comment"> //! \todo fs_mutex_append needs to check if file still exists after lock is granted, awaiting path fetching.</span></div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;<span class="comment"></span> <span class="keywordflow">if</span>(lockresult.has_error())</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; {</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keywordflow">if</span>(lockresult.error() != std::errc::timed_out)</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; {</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keywordflow">return</span> lockresult.error();</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"> 209</span>&#160; <span class="comment">// Somebody else is also using this file</span></div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; }</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keywordflow">else</span></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; <span class="comment">// I am the first person to be using this (stale?) file, so write a new header and truncate</span></div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; OUTCOME_TRYV(ret.truncate(<span class="keyword">sizeof</span>(header)));</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; memset(&amp;header, 0, <span class="keyword">sizeof</span>(header));</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; header.time_offset = std::chrono::system_clock::to_time_t(std::chrono::system_clock::now());</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; header.first_known_good = <span class="keyword">sizeof</span>(header);</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; header.first_after_hole_punch = <span class="keyword">sizeof</span>(header);</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keywordflow">if</span>(!skip_hashing)</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; {</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; header.hash = QUICKCPPLIB_NAMESPACE::algorithm::hash::fast_hash::hash((reinterpret_cast&lt;char *&gt;(&amp;header)) + 16, <span class="keyword">sizeof</span>(header) - 16);</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; }</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; OUTCOME_TRYV(ret.write(0, {{reinterpret_cast&lt;char *&gt;(&amp;header), sizeof(header)}}));</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; <span class="comment">// Open a shared lock on last byte in header to prevent other users zomping the file</span></div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; OUTCOME_TRY(guard, ret.lock(<span class="keyword">sizeof</span>(header) - 1, 1, <span class="keyword">false</span>));</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="comment">// Unlock any exclusive lock I gained earlier now</span></div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="keywordflow">if</span>(lockresult)</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; lockresult.value().unlock();</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; }</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="comment">// The constructor will read and cache the header</span></div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keywordflow">return</span> atomic_append(std::move(ret), std::move(guard), nfs_compatibility, skip_hashing);</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; }</div><div class="ttc" id="classafio__v2__xxx_1_1file__handle_html_accb36f2bfd98393dc868653798c02d34"><div class="ttname"><a href="classafio__v2__xxx_1_1file__handle.html#accb36f2bfd98393dc868653798c02d34">afio_v2_xxx::file_handle::file</a></div><div class="ttdeci">static result&lt; file_handle &gt; file(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 class="ttc" id="classafio__v2__xxx_1_1handle_html_a0489b6c1e25cd2bad2ba1ec86e1aaf18aefb2a684e4afb7d55e6147fbe5a332ee"><div class="ttname"><a href="classafio__v2__xxx_1_1handle.html#a0489b6c1e25cd2bad2ba1ec86e1aaf18aefb2a684e4afb7d55e6147fbe5a332ee">afio_v2_xxx::handle::mode::write</a></div><div class="ttdoc">Ability to read and write (READ_CONTROL|FILE_READ_DATA|FILE_READ_ATTRIBUTES|FILE_READ_EA|FILE_WRITE_D...</div></div>
<div class="ttc" id="classafio__v2__xxx_1_1handle_html_a6f7e37c73271968271c2342023f58c9ead5197d93c063a2b1e22d1630a39b7aef"><div class="ttname"><a href="classafio__v2__xxx_1_1handle.html#a6f7e37c73271968271c2342023f58c9ead5197d93c063a2b1e22d1630a39b7aef">afio_v2_xxx::handle::caching::temporary</a></div><div class="ttdoc">Cache reads and writes of data and metadata so they complete immediately, only sending any updates to...</div></div>
</div><!-- fragment -->
diff --git a/classafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html b/classafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html
index 2bbe9e42..12c484ad 100644
--- a/classafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html
+++ b/classafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html
@@ -277,8 +277,8 @@ template&lt;template&lt; class &gt; class Hasher = QUICKCPPLIB_NAMESPACE::algori
</table>
</div><div class="memdoc">
<p>Initialises a shared filing system mutex using the file at <em>lockfile</em>. </p><dl class="section user"><dt>Errors returnable</dt><dd>Awaiting the clang result&lt;&gt; AST parser which auto generates all the error codes which could occur, but a particularly important one is <code>std::errc::no_lock_available</code> which will be returned if the lock is in use by another computer on a network. </dd></dl>
-<div class="fragment"><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; {</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; AFIO_LOG_FUNCTION_CALL(0);</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keywordflow">try</span></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; OUTCOME_TRY(ret, <a class="code" href="classafio__v2__xxx_1_1file__handle.html#accb36f2bfd98393dc868653798c02d34">file_handle::file</a>(base, lockfile, <a class="code" href="classafio__v2__xxx_1_1handle.html#a0489b6c1e25cd2bad2ba1ec86e1aaf18aefb2a684e4afb7d55e6147fbe5a332ee">file_handle::mode::write</a>, file_handle::creation::if_needed, <a class="code" href="classafio__v2__xxx_1_1handle.html#a6f7e37c73271968271c2342023f58c9ea0fb9cf5f04f61bb6f1151da57ceb1ca1">file_handle::caching::reads</a>));</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; file_handle temph;</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="comment">// Am I the first person to this file? Lock everything exclusively</span></div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keyword">auto</span> lockinuse = ret.try_lock(_initialisingoffset, 2, <span class="keyword">true</span>);</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keywordflow">if</span>(lockinuse.has_error())</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; {</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordflow">if</span>(lockinuse.error() != std::errc::timed_out)</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; {</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keywordflow">return</span> lockinuse.error();</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; }</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="comment">// Somebody else is also using this file, so try to read the hash index file I ought to use</span></div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; lockinuse = ret.lock(_lockinuseoffset, 1, <span class="keyword">false</span>); <span class="comment">// inuse shared access, blocking</span></div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keywordflow">if</span>(!lockinuse)</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"> 209</span>&#160; <span class="keywordflow">return</span> lockinuse.error();</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; }</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keywordtype">char</span> buffer[65536];</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; memset(buffer, 0, <span class="keyword">sizeof</span>(buffer));</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; OUTCOME_TRYV(ret.read(0, buffer, 65535));</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; path_view temphpath(reinterpret_cast&lt;filesystem::path::value_type *&gt;(buffer));</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; result&lt;file_handle&gt; _temph(in_place_type&lt;file_handle&gt;);</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; _temph = <a class="code" href="classafio__v2__xxx_1_1file__handle.html#accb36f2bfd98393dc868653798c02d34">file_handle::file</a>({}, temphpath, <a class="code" href="classafio__v2__xxx_1_1handle.html#a0489b6c1e25cd2bad2ba1ec86e1aaf18aefb2a684e4afb7d55e6147fbe5a332ee">file_handle::mode::write</a>, file_handle::creation::open_existing, <a class="code" href="classafio__v2__xxx_1_1handle.html#a6f7e37c73271968271c2342023f58c9ead5197d93c063a2b1e22d1630a39b7aef">file_handle::caching::temporary</a>);</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="comment">// If temp file doesn&#39;t exist, I am on a different machine</span></div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keywordflow">if</span>(!_temph)</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; {</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="comment">// Release the exclusive lock and tell caller that this lock is not available</span></div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keywordflow">return</span> std::errc::no_lock_available;</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; }</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; temph = std::move(_temph.value());</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="comment">// Map the hash index file into memory for read/write access</span></div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; OUTCOME_TRY(temphsection, <a class="code" href="classafio__v2__xxx_1_1section__handle.html#a7e69ae5094da2517f2ed0bd046d18302">section_handle::section</a>(temph, HashIndexSize));</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; OUTCOME_TRY(temphmap, <a class="code" href="classafio__v2__xxx_1_1map__handle.html#a9c43d182b257682d320f12f6e6be30b3">map_handle::map</a>(temphsection, HashIndexSize));</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="comment">// Map the path file into memory with its maximum possible size, read only</span></div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; OUTCOME_TRY(hsection, <a class="code" href="classafio__v2__xxx_1_1section__handle.html#a7e69ae5094da2517f2ed0bd046d18302">section_handle::section</a>(ret, 65536, <a class="code" href="namespaceafio__v2__xxx.html#a3cff8f3910dbf47663e5df1dc7e5ba47">section_handle::flag::read</a>));</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; OUTCOME_TRY(hmap, <a class="code" href="classafio__v2__xxx_1_1map__handle.html#a9c43d182b257682d320f12f6e6be30b3">map_handle::map</a>(hsection, 0, 0, <a class="code" href="namespaceafio__v2__xxx.html#a3cff8f3910dbf47663e5df1dc7e5ba47">section_handle::flag::read</a>));</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keywordflow">return</span> memory_map(std::move(ret), std::move(temph), std::move(lockinuse.value()), std::move(hmap), std::move(temphmap));</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; }</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="comment">// I am the first person to be using this (stale?) file, so create a new hash index file in /tmp</span></div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="keyword">auto</span> &amp;tempdirh = <a class="code" href="namespaceafio__v2__xxx_1_1path__discovery.html#ae34df4ad4e4f2c977ef99575713fd9bf">path_discovery::memory_backed_temporary_files_directory</a>().<a class="code" href="classafio__v2__xxx_1_1handle.html#a4194a05dd9694d2c47d5a45f925db1d7">is_valid</a>() ? <a class="code" href="namespaceafio__v2__xxx_1_1path__discovery.html#ae34df4ad4e4f2c977ef99575713fd9bf">path_discovery::memory_backed_temporary_files_directory</a>() : path_discovery::<a class="code" href="namespaceafio__v2__xxx_1_1path__discovery.html#af398b6c3762f60aa96cebd270879093e">storage_backed_temporary_files_directory</a>();</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; OUTCOME_TRY(_temph, <a class="code" href="classafio__v2__xxx_1_1file__handle.html#a7fdd164a8af6542c5fb80c514283c585">file_handle::random_file</a>(tempdirh));</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; temph = std::move(_temph);</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <span class="comment">// Truncate it out to the hash index size, and map it into memory for read/write access</span></div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; OUTCOME_TRYV(temph.truncate(HashIndexSize));</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; OUTCOME_TRY(temphsection, <a class="code" href="classafio__v2__xxx_1_1section__handle.html#a7e69ae5094da2517f2ed0bd046d18302">section_handle::section</a>(temph, HashIndexSize));</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; OUTCOME_TRY(temphmap, <a class="code" href="classafio__v2__xxx_1_1map__handle.html#a9c43d182b257682d320f12f6e6be30b3">map_handle::map</a>(temphsection, HashIndexSize));</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="comment">// Write the path of my new hash index file, padding zeros to the nearest page size</span></div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="comment">// multiple to work around a race condition in the Linux kernel</span></div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; OUTCOME_TRY(temppath, temph.current_path());</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keywordtype">char</span> buffer[4096];</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; memset(buffer, 0, <span class="keyword">sizeof</span>(buffer));</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="keywordtype">size_t</span> bytes = temppath.native().size() * <span class="keyword">sizeof</span>(*temppath.c_str());</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; file_handle::const_buffer_type buffers[] = {{<span class="keyword">reinterpret_cast&lt;</span><span class="keyword">const </span><span class="keywordtype">char</span> *<span class="keyword">&gt;</span>(temppath.c_str()), bytes}, {<span class="keyword">static_cast&lt;</span><span class="keyword">const </span><span class="keywordtype">char</span> *<span class="keyword">&gt;</span>(buffer), 4096 - (bytes % 4096)}};</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; OUTCOME_TRYV(ret.truncate(65536));</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; OUTCOME_TRYV(ret.write({buffers, 0}));</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <span class="comment">// Map for read the maximum possible path file size, again to avoid race problems</span></div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; OUTCOME_TRY(hsection, <a class="code" href="classafio__v2__xxx_1_1section__handle.html#a7e69ae5094da2517f2ed0bd046d18302">section_handle::section</a>(ret, 65536, <a class="code" href="namespaceafio__v2__xxx.html#a3cff8f3910dbf47663e5df1dc7e5ba47">section_handle::flag::read</a>));</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; OUTCOME_TRY(hmap, <a class="code" href="classafio__v2__xxx_1_1map__handle.html#a9c43d182b257682d320f12f6e6be30b3">map_handle::map</a>(hsection, 0, 0, <a class="code" href="namespaceafio__v2__xxx.html#a3cff8f3910dbf47663e5df1dc7e5ba47">section_handle::flag::read</a>));</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="comment">/* Take shared locks on inuse. Even if this implementation doesn&#39;t implement</span></div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;<span class="comment"> atomic downgrade of exclusive range to shared range, we&#39;re fully prepared for other users</span></div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;<span class="comment"> now. The _initialisingoffset remains exclusive to prevent double entry into this init routine.</span></div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; OUTCOME_TRY(lockinuse2, ret.lock(_lockinuseoffset, 1, <span class="keyword">false</span>));</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; lockinuse = std::move(lockinuse2); <span class="comment">// releases exclusive lock on all three offsets</span></div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="keywordflow">return</span> memory_map(std::move(ret), std::move(temph), std::move(lockinuse.value()), std::move(hmap), std::move(temphmap));</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; }</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <span class="keywordflow">catch</span>(...)</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; <span class="keywordflow">return</span> error_from_exception();</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; }</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; }</div><div class="ttc" id="classafio__v2__xxx_1_1handle_html_a6f7e37c73271968271c2342023f58c9ea0fb9cf5f04f61bb6f1151da57ceb1ca1"><div class="ttname"><a href="classafio__v2__xxx_1_1handle.html#a6f7e37c73271968271c2342023f58c9ea0fb9cf5f04f61bb6f1151da57ceb1ca1">afio_v2_xxx::handle::caching::reads</a></div><div class="ttdoc">Cache reads only. Writes of data and metadata do not complete until reaching storage (O_SYNC)...</div></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="fragment"><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; {</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; AFIO_LOG_FUNCTION_CALL(0);</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keywordflow">try</span></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; OUTCOME_TRY(ret, <a class="code" href="classafio__v2__xxx_1_1file__handle.html#accb36f2bfd98393dc868653798c02d34">file_handle::file</a>(base, lockfile, <a class="code" href="classafio__v2__xxx_1_1handle.html#a0489b6c1e25cd2bad2ba1ec86e1aaf18aefb2a684e4afb7d55e6147fbe5a332ee">file_handle::mode::write</a>, file_handle::creation::if_needed, <a class="code" href="classafio__v2__xxx_1_1handle.html#a6f7e37c73271968271c2342023f58c9ea0fb9cf5f04f61bb6f1151da57ceb1ca1">file_handle::caching::reads</a>));</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; file_handle temph;</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="comment">// Am I the first person to this file? Lock everything exclusively</span></div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keyword">auto</span> lockinuse = ret.try_lock(_initialisingoffset, 2, <span class="keyword">true</span>);</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keywordflow">if</span>(lockinuse.has_error())</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; {</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordflow">if</span>(lockinuse.error() != std::errc::timed_out)</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; {</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keywordflow">return</span> lockinuse.error();</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; }</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="comment">// Somebody else is also using this file, so try to read the hash index file I ought to use</span></div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; lockinuse = ret.lock(_lockinuseoffset, 1, <span class="keyword">false</span>); <span class="comment">// inuse shared access, blocking</span></div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keywordflow">if</span>(!lockinuse)</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"> 209</span>&#160; <span class="keywordflow">return</span> lockinuse.error();</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; }</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keywordtype">char</span> buffer[65536];</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; memset(buffer, 0, <span class="keyword">sizeof</span>(buffer));</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; OUTCOME_TRYV(ret.read(0, {{buffer, 65535}}));</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; path_view temphpath(reinterpret_cast&lt;filesystem::path::value_type *&gt;(buffer));</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; result&lt;file_handle&gt; _temph(in_place_type&lt;file_handle&gt;);</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; _temph = <a class="code" href="classafio__v2__xxx_1_1file__handle.html#accb36f2bfd98393dc868653798c02d34">file_handle::file</a>({}, temphpath, <a class="code" href="classafio__v2__xxx_1_1handle.html#a0489b6c1e25cd2bad2ba1ec86e1aaf18aefb2a684e4afb7d55e6147fbe5a332ee">file_handle::mode::write</a>, file_handle::creation::open_existing, <a class="code" href="classafio__v2__xxx_1_1handle.html#a6f7e37c73271968271c2342023f58c9ead5197d93c063a2b1e22d1630a39b7aef">file_handle::caching::temporary</a>);</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="comment">// If temp file doesn&#39;t exist, I am on a different machine</span></div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keywordflow">if</span>(!_temph)</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; {</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="comment">// Release the exclusive lock and tell caller that this lock is not available</span></div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keywordflow">return</span> std::errc::no_lock_available;</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; }</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; temph = std::move(_temph.value());</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="comment">// Map the hash index file into memory for read/write access</span></div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; OUTCOME_TRY(temphsection, <a class="code" href="classafio__v2__xxx_1_1section__handle.html#a7e69ae5094da2517f2ed0bd046d18302">section_handle::section</a>(temph, HashIndexSize));</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; OUTCOME_TRY(temphmap, <a class="code" href="classafio__v2__xxx_1_1map__handle.html#a9c43d182b257682d320f12f6e6be30b3">map_handle::map</a>(temphsection, HashIndexSize));</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="comment">// Map the path file into memory with its maximum possible size, read only</span></div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; OUTCOME_TRY(hsection, <a class="code" href="classafio__v2__xxx_1_1section__handle.html#a7e69ae5094da2517f2ed0bd046d18302">section_handle::section</a>(ret, 65536, <a class="code" href="namespaceafio__v2__xxx.html#a3cff8f3910dbf47663e5df1dc7e5ba47">section_handle::flag::read</a>));</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; OUTCOME_TRY(hmap, <a class="code" href="classafio__v2__xxx_1_1map__handle.html#a9c43d182b257682d320f12f6e6be30b3">map_handle::map</a>(hsection, 0, 0, <a class="code" href="namespaceafio__v2__xxx.html#a3cff8f3910dbf47663e5df1dc7e5ba47">section_handle::flag::read</a>));</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keywordflow">return</span> memory_map(std::move(ret), std::move(temph), std::move(lockinuse.value()), std::move(hmap), std::move(temphmap));</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; }</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="comment">// I am the first person to be using this (stale?) file, so create a new hash index file in /tmp</span></div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="keyword">auto</span> &amp;tempdirh = <a class="code" href="namespaceafio__v2__xxx_1_1path__discovery.html#ae34df4ad4e4f2c977ef99575713fd9bf">path_discovery::memory_backed_temporary_files_directory</a>().<a class="code" href="classafio__v2__xxx_1_1handle.html#a4194a05dd9694d2c47d5a45f925db1d7">is_valid</a>() ? <a class="code" href="namespaceafio__v2__xxx_1_1path__discovery.html#ae34df4ad4e4f2c977ef99575713fd9bf">path_discovery::memory_backed_temporary_files_directory</a>() : path_discovery::<a class="code" href="namespaceafio__v2__xxx_1_1path__discovery.html#af398b6c3762f60aa96cebd270879093e">storage_backed_temporary_files_directory</a>();</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; OUTCOME_TRY(_temph, <a class="code" href="classafio__v2__xxx_1_1file__handle.html#a7fdd164a8af6542c5fb80c514283c585">file_handle::random_file</a>(tempdirh));</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; temph = std::move(_temph);</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <span class="comment">// Truncate it out to the hash index size, and map it into memory for read/write access</span></div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; OUTCOME_TRYV(temph.truncate(HashIndexSize));</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; OUTCOME_TRY(temphsection, <a class="code" href="classafio__v2__xxx_1_1section__handle.html#a7e69ae5094da2517f2ed0bd046d18302">section_handle::section</a>(temph, HashIndexSize));</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; OUTCOME_TRY(temphmap, <a class="code" href="classafio__v2__xxx_1_1map__handle.html#a9c43d182b257682d320f12f6e6be30b3">map_handle::map</a>(temphsection, HashIndexSize));</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="comment">// Write the path of my new hash index file, padding zeros to the nearest page size</span></div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="comment">// multiple to work around a race condition in the Linux kernel</span></div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; OUTCOME_TRY(temppath, temph.current_path());</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keywordtype">char</span> buffer[4096];</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; memset(buffer, 0, <span class="keyword">sizeof</span>(buffer));</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="keywordtype">size_t</span> bytes = temppath.native().size() * <span class="keyword">sizeof</span>(*temppath.c_str());</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; file_handle::const_buffer_type buffers[] = {{<span class="keyword">reinterpret_cast&lt;</span><span class="keyword">const </span><span class="keywordtype">char</span> *<span class="keyword">&gt;</span>(temppath.c_str()), bytes}, {<span class="keyword">static_cast&lt;</span><span class="keyword">const </span><span class="keywordtype">char</span> *<span class="keyword">&gt;</span>(buffer), 4096 - (bytes % 4096)}};</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; OUTCOME_TRYV(ret.truncate(65536));</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; OUTCOME_TRYV(ret.write({buffers, 0}));</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <span class="comment">// Map for read the maximum possible path file size, again to avoid race problems</span></div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; OUTCOME_TRY(hsection, <a class="code" href="classafio__v2__xxx_1_1section__handle.html#a7e69ae5094da2517f2ed0bd046d18302">section_handle::section</a>(ret, 65536, <a class="code" href="namespaceafio__v2__xxx.html#a3cff8f3910dbf47663e5df1dc7e5ba47">section_handle::flag::read</a>));</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; OUTCOME_TRY(hmap, <a class="code" href="classafio__v2__xxx_1_1map__handle.html#a9c43d182b257682d320f12f6e6be30b3">map_handle::map</a>(hsection, 0, 0, <a class="code" href="namespaceafio__v2__xxx.html#a3cff8f3910dbf47663e5df1dc7e5ba47">section_handle::flag::read</a>));</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="comment">/* Take shared locks on inuse. Even if this implementation doesn&#39;t implement</span></div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;<span class="comment"> atomic downgrade of exclusive range to shared range, we&#39;re fully prepared for other users</span></div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;<span class="comment"> now. The _initialisingoffset remains exclusive to prevent double entry into this init routine.</span></div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; OUTCOME_TRY(lockinuse2, ret.lock(_lockinuseoffset, 1, <span class="keyword">false</span>));</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; lockinuse = std::move(lockinuse2); <span class="comment">// releases exclusive lock on all three offsets</span></div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="keywordflow">return</span> memory_map(std::move(ret), std::move(temph), std::move(lockinuse.value()), std::move(hmap), std::move(temphmap));</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; }</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <span class="keywordflow">catch</span>(...)</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; <span class="keywordflow">return</span> error_from_exception();</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; }</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; }</div><div class="ttc" id="classafio__v2__xxx_1_1handle_html_a6f7e37c73271968271c2342023f58c9ea0fb9cf5f04f61bb6f1151da57ceb1ca1"><div class="ttname"><a href="classafio__v2__xxx_1_1handle.html#a6f7e37c73271968271c2342023f58c9ea0fb9cf5f04f61bb6f1151da57ceb1ca1">afio_v2_xxx::handle::caching::reads</a></div><div class="ttdoc">Cache reads only. Writes of data and metadata do not complete until reaching storage (O_SYNC)...</div></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_1_1path__discovery_html_af398b6c3762f60aa96cebd270879093e"><div class="ttname"><a href="namespaceafio__v2__xxx_1_1path__discovery.html#af398b6c3762f60aa96cebd270879093e">afio_v2_xxx::path_discovery::storage_backed_temporary_files_directory</a></div><div class="ttdeci">const path_handle &amp; storage_backed_temporary_files_directory() noexcept</div><div class="ttdoc">Returns a reference to an open handle to a verified temporary directory where files created are store...</div></div>
<div class="ttc" id="namespaceafio__v2__xxx_1_1path__discovery_html_ae34df4ad4e4f2c977ef99575713fd9bf"><div class="ttname"><a href="namespaceafio__v2__xxx_1_1path__discovery.html#ae34df4ad4e4f2c977ef99575713fd9bf">afio_v2_xxx::path_discovery::memory_backed_temporary_files_directory</a></div><div class="ttdeci">const path_handle &amp; memory_backed_temporary_files_directory() noexcept</div><div class="ttdoc">Returns a reference to an open handle to a verified temporary directory where files created are store...</div></div>
<div class="ttc" id="classafio__v2__xxx_1_1file__handle_html_accb36f2bfd98393dc868653798c02d34"><div class="ttname"><a href="classafio__v2__xxx_1_1file__handle.html#accb36f2bfd98393dc868653798c02d34">afio_v2_xxx::file_handle::file</a></div><div class="ttdeci">static result&lt; file_handle &gt; file(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>
diff --git a/classafio__v2__xxx_1_1algorithm_1_1trivial__vector-members.html b/classafio__v2__xxx_1_1algorithm_1_1trivial__vector-members.html
index 444f1f1e..d04d2460 100644
--- a/classafio__v2__xxx_1_1algorithm_1_1trivial__vector-members.html
+++ b/classafio__v2__xxx_1_1algorithm_1_1trivial__vector-members.html
@@ -114,8 +114,8 @@ $(document).ready(function(){initNavTree('classafio__v2__xxx_1_1algorithm_1_1tri
<tr class="even"><td class="entry"><a class="el" href="structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#a2445e00cfeaec57852f3e8fac8833669">empty</a>() const noexcept</td><td class="entry"><a class="el" href="structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html">afio_v2_xxx::algorithm::impl::trivial_vector_impl&lt; false, T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#a6532b67d7f9bfe246bcc5d910287ee01">end</a>() noexcept</td><td class="entry"><a class="el" href="structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html">afio_v2_xxx::algorithm::impl::trivial_vector_impl&lt; false, T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#a32ee5ef5d8ee7b7e405ececfe06109e3">end</a>() const noexcept</td><td class="entry"><a class="el" href="structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html">afio_v2_xxx::algorithm::impl::trivial_vector_impl&lt; false, T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#a97d59a2919feeb1a4c2bb71dda63c2a3">erase</a>(const_iterator pos)</td><td class="entry"><a class="el" href="structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html">afio_v2_xxx::algorithm::impl::trivial_vector_impl&lt; false, T &gt;</a></td><td class="entry"></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#a782e7042f5ef8e5794566ad990418a8a">erase</a>(const_iterator first, const_iterator last)</td><td class="entry"><a class="el" href="structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html">afio_v2_xxx::algorithm::impl::trivial_vector_impl&lt; false, T &gt;</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#a97d59a2919feeb1a4c2bb71dda63c2a3">erase</a>(const_iterator pos)</td><td class="entry"><a class="el" href="structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html">afio_v2_xxx::algorithm::impl::trivial_vector_impl&lt; false, T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#a782e7042f5ef8e5794566ad990418a8a">erase</a>(const_iterator first, const_iterator last)</td><td class="entry"><a class="el" href="structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html">afio_v2_xxx::algorithm::impl::trivial_vector_impl&lt; false, T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#a829281d387d6fe30048d9bcc4a75580c">front</a>()</td><td class="entry"><a class="el" href="structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html">afio_v2_xxx::algorithm::impl::trivial_vector_impl&lt; false, T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#a5885f0a96e3bf7ebcca72dc36f0f2167">front</a>() const</td><td class="entry"><a class="el" href="structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html">afio_v2_xxx::algorithm::impl::trivial_vector_impl&lt; false, T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#ac1121f572b653ce47060d6289f95665f">insert</a>(const_iterator pos, const value_type &amp;v)</td><td class="entry"><a class="el" href="structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html">afio_v2_xxx::algorithm::impl::trivial_vector_impl&lt; false, T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
diff --git a/classafio__v2__xxx_1_1algorithm_1_1trivial__vector.html b/classafio__v2__xxx_1_1algorithm_1_1trivial__vector.html
index 51330ffd..6a2f7b66 100644
--- a/classafio__v2__xxx_1_1algorithm_1_1trivial__vector.html
+++ b/classafio__v2__xxx_1_1algorithm_1_1trivial__vector.html
@@ -347,10 +347,22 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="stru
class afio_v2_xxx::algorithm::trivial_vector&lt; T &gt;</h3>
<p>Provides a constant time capacity expanding move-only STL vector. Requires <code>T</code> to be trivially copyable. </p>
-<p>As a hand waving estimate for whether this vector implementation may be useful to you, it roughly breaks even with <code>std::vector</code> on recent Intel CPUs at around the L2 cache level. So if your vector fits into the L2 cache, this implementation will be no better, and likely slower.</p>
+<p>As a hand waving estimate for whether this vector implementation may be useful to you, it usually roughly breaks even with <code>std::vector</code> on recent Intel CPUs at around the L2 cache boundary. So if your vector fits into the L2 cache, this implementation will be no better, but no worse. If your vector fits into the L1 cache, this implementation will be worse, often considerably so.</p>
<p>Note that no STL allocator support is provided as <code>T</code> must be trivially copyable (for which most STL's simply use <code>memcpy()</code> anyway instead of the allocator's <code>construct</code>), and an internal <code>section_handle</code> is used for the storage in order to implement the constant time capacity resizing.</p>
<p>We also disable the copy constructor, as copying an entire backing file is expensive. Use the iterator based copy constructor if you really want to copy one of these.</p>
-<p>The very first item stored reserves a capacity of <code>utils::page_size()/sizeof(T)</code>. Capacity is doubled in byte terms thereafter (i.e. 8Kb, 16Kb and so on). Also be aware that the capacity of the vector needs to become reasonably large before going to the kernel to resize the <code>section_handle</code> and remapping memory becomes faster than <code>memcpy</code>. For these reasons, this vector implementation is best suited to arrays of unknown in advance, but likely large, sizes. </p>
+<p>The very first item stored reserves a capacity of <code>utils::page_size()/sizeof(T)</code> on POSIX and <code>65536/sizeof(T)</code> on Windows. Capacity is doubled in byte terms thereafter (i.e. 8Kb, 16Kb and so on). As mentioned earlier, the capacity of the vector needs to become reasonably large before going to the kernel to resize the <code>section_handle</code> and remapping memory becomes faster than <code>memcpy</code>. For these reasons, this vector implementation is best suited to arrays of unknown in advance, but likely large, sizes.</p>
+<p>Benchmarking notes for Skylake 3.1Ghz Intel Core i5 with 2133Mhz DDR3 RAM, L2 256Kb, L3 4Mb:</p><ul>
+<li>OS X with clang 5.0 and libc++<ul>
+<li>push_back(): 32768,40,59 65536,36,76 131072,78,159 262144,166,198 524288,284,299 1048576,558,572 2097152,1074,1175 4194304,2201,2394 8388608,4520,5503 16777216,9339,9327 33554432,24853,17754 67108864,55876,40973 134217728,122577,86331 268435456,269004,178751 536870912,586466,330716</li>
+<li>resize(): 8192,9,18 16384,14,20 32768,27,32 65536,66,43 131072,107,59 262144,222,131 524288,445,322 1048576,885,500 2097152,1785,1007 4194304,3623,2133 8388608,7334,4082 16777216,17096,8713 33554432,36890,18421 67108864,73593,40702</li>
+</ul>
+</li>
+<li>Windows 10 with VS2017.5:<ul>
+<li>push_back(): 8192,17,70 16384,22,108 32768,36,117 65536,51,152 131072,174,209 262144,336,309 524288,661,471 1048576,1027,787 2097152,2513,1361 4194304,5948,2595 8388608,9919,4820 16777216,23789,9716 33554432,52997,19558 67108864,86468,39240 134217728,193013,76298 268435456,450059,149644 536870912,983442,318078</li>
+<li>resize(): 8192,9,48 16384,17,44 32768,35,48 65536,62,72 131072,134,114 262144,132,168 524288,505,330 1048576,988,582 2097152,1501,1152 4194304,2972,2231 8388608,6122,4436 16777216,12483,8906 33554432,25203,17847 67108864,52005,53646 134217728,102942,86502 268435456,246367,177999 536870912,405524,294685 </li>
+</ul>
+</li>
+</ul>
</div><hr/>The documentation for this class was generated from the following file:<ul>
<li>include/afio/v2.0/algorithm/<a class="el" href="trivial__vector_8hpp.html">trivial_vector.hpp</a></li>
</ul>
diff --git a/classafio__v2__xxx_1_1async__file__handle-members.html b/classafio__v2__xxx_1_1async__file__handle-members.html
index dded9a5a..49876b60 100644
--- a/classafio__v2__xxx_1_1async__file__handle-members.html
+++ b/classafio__v2__xxx_1_1async__file__handle-members.html
@@ -120,7 +120,9 @@ $(document).ready(function(){initNavTree('classafio__v2__xxx_1_1async__file__han
<tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html#a54790e954f57372b87b095451cc79c38">afio_v2_xxx::io_handle::clone</a>() const noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html">afio_v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1file__handle.html#a6e3ce8be6683ef91e076dbffdffcba3b">close</a>() noexcept override</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1file__handle.html">afio_v2_xxx::file_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1async__file__handle.html#abca08e496e10ac6ae890793888a5e3fe">co_read</a>(io_request&lt; buffers_type &gt; reqs) noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1async__file__handle.html">afio_v2_xxx::async_file_handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1async__file__handle.html#a0cd3e4803cfe986815ed8c27a70db777">co_write</a>(io_request&lt; const_buffers_type &gt; reqs) noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1async__file__handle.html">afio_v2_xxx::async_file_handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1async__file__handle.html#acf004a49616f731287c3f57b025a9aec">co_read</a>(extent_type offset, std::initializer_list&lt; buffer_type &gt; lst) noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1async__file__handle.html">afio_v2_xxx::async_file_handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1async__file__handle.html#a0cd3e4803cfe986815ed8c27a70db777">co_write</a>(io_request&lt; const_buffers_type &gt; reqs) noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1async__file__handle.html">afio_v2_xxx::async_file_handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1async__file__handle.html#a71951654fcca9a2f9a2e747e33579fcc">co_write</a>(extent_type offset, std::initializer_list&lt; const_buffer_type &gt; lst) noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1async__file__handle.html">afio_v2_xxx::async_file_handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>const_buffer_type</b> typedef (defined in <a class="el" href="classafio__v2__xxx_1_1async__file__handle.html">afio_v2_xxx::async_file_handle</a>)</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1async__file__handle.html">afio_v2_xxx::async_file_handle</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>const_buffers_type</b> typedef (defined in <a class="el" href="classafio__v2__xxx_1_1async__file__handle.html">afio_v2_xxx::async_file_handle</a>)</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1async__file__handle.html">afio_v2_xxx::async_file_handle</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>creation</b> typedef (defined in <a class="el" href="classafio__v2__xxx_1_1async__file__handle.html">afio_v2_xxx::async_file_handle</a>)</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1async__file__handle.html">afio_v2_xxx::async_file_handle</a></td><td class="entry"></td></tr>
@@ -190,7 +192,7 @@ $(document).ready(function(){initNavTree('classafio__v2__xxx_1_1async__file__han
<tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1file__handle.html#a7fdd164a8af6542c5fb80c514283c585">random_file</a>(const path_handle &amp;dirpath, mode _mode=mode::write, caching _caching=caching::temporary, flag flags=flag::none) noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1file__handle.html">afio_v2_xxx::file_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>read</b>(io_request&lt; buffers_type &gt; reqs, deadline d=deadline()) noexcept override (defined in <a class="el" href="classafio__v2__xxx_1_1async__file__handle.html">afio_v2_xxx::async_file_handle</a>)</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1async__file__handle.html">afio_v2_xxx::async_file_handle</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html#a71d7636f40607829cacc2c974c4a2a28">afio_v2_xxx::file_handle::read</a>(io_request&lt; buffers_type &gt; reqs, deadline d=deadline()) noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html">afio_v2_xxx::io_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
- <tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html#a8af6c6dc1502d40f6aaccc83e49d5342">afio_v2_xxx::file_handle::read</a>(extent_type offset, char *data, size_type bytes, deadline d=deadline()) noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html">afio_v2_xxx::io_handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html#a928a8ab64d5b7d68dc7e2b3e5849df24">afio_v2_xxx::file_handle::read</a>(extent_type offset, std::initializer_list&lt; buffer_type &gt; lst, deadline d=deadline()) noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html">afio_v2_xxx::io_handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html#a73d5f2070bce0c3d7fa536d3cbed7b52">release</a>() noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html">afio_v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
<tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1fs__handle.html#a747962d0776c0fa9e79c9aa9b86da1c0">relink</a>(const path_handle &amp;base, path_view_type path, bool atomic_replace=true, deadline d=std::chrono::seconds(30)) noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1fs__handle.html">afio_v2_xxx::fs_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html#affb10caeeca67b804695b7378be29e23">requires_aligned_io</a>() const noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html">afio_v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
@@ -212,7 +214,7 @@ $(document).ready(function(){initNavTree('classafio__v2__xxx_1_1async__file__han
<tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html#a96b9da71ee7791fbaaa2470c936ec763">unlock</a>(extent_type offset, extent_type bytes) noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html">afio_v2_xxx::io_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>write</b>(io_request&lt; const_buffers_type &gt; reqs, deadline d=deadline()) noexcept override (defined in <a class="el" href="classafio__v2__xxx_1_1async__file__handle.html">afio_v2_xxx::async_file_handle</a>)</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1async__file__handle.html">afio_v2_xxx::async_file_handle</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html#aefac4710e5617264347f437b04732c01">afio_v2_xxx::file_handle::write</a>(io_request&lt; const_buffers_type &gt; reqs, deadline d=deadline()) noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html">afio_v2_xxx::io_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
- <tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html#ab26a3c5a18cdcc67a506533dbe55e2b3">afio_v2_xxx::file_handle::write</a>(extent_type offset, const char *data, size_type bytes, deadline d=deadline()) noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html">afio_v2_xxx::io_handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html#add161546c0769941fce4fd9f06934e03">afio_v2_xxx::file_handle::write</a>(extent_type offset, std::initializer_list&lt; const_buffer_type &gt; lst, deadline d=deadline()) noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html">afio_v2_xxx::io_handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1file__handle.html#a649aa39b0d4b60a05d4aab4be569dcb6">zero</a>(extent_type offset, extent_type bytes, deadline d=deadline()) noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1file__handle.html">afio_v2_xxx::file_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>~async_file_handle</b>()=default (defined in <a class="el" href="classafio__v2__xxx_1_1async__file__handle.html">afio_v2_xxx::async_file_handle</a>)</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1async__file__handle.html">afio_v2_xxx::async_file_handle</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>~file_handle</b>() override (defined in <a class="el" href="classafio__v2__xxx_1_1file__handle.html">afio_v2_xxx::file_handle</a>)</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1file__handle.html">afio_v2_xxx::file_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
diff --git a/classafio__v2__xxx_1_1async__file__handle.html b/classafio__v2__xxx_1_1async__file__handle.html
index 427eae7f..06434f9a 100644
--- a/classafio__v2__xxx_1_1async__file__handle.html
+++ b/classafio__v2__xxx_1_1async__file__handle.html
@@ -242,9 +242,13 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
<tr class="memitem:abca08e496e10ac6ae890793888a5e3fe"><td class="memItemLeft" align="right" valign="top">result&lt; <a class="el" href="classafio__v2__xxx_1_1async__file__handle_1_1awaitable.html">awaitable</a>&lt; buffers_type &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1async__file__handle.html#abca08e496e10ac6ae890793888a5e3fe">co_read</a> (<a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__request.html">io_request</a>&lt; buffers_type &gt; reqs) noexcept</td></tr>
<tr class="memdesc:abca08e496e10ac6ae890793888a5e3fe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Schedule a read to occur asynchronously. <a href="#abca08e496e10ac6ae890793888a5e3fe">More...</a><br /></td></tr>
<tr class="separator:abca08e496e10ac6ae890793888a5e3fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acf004a49616f731287c3f57b025a9aec"><td class="memItemLeft" align="right" valign="top">result&lt; <a class="el" href="classafio__v2__xxx_1_1async__file__handle_1_1awaitable.html">awaitable</a>&lt; buffers_type &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1async__file__handle.html#acf004a49616f731287c3f57b025a9aec">co_read</a> (extent_type offset, std::initializer_list&lt; <a class="el" href="structafio__v2__xxx_1_1io__handle_1_1buffer__type.html">buffer_type</a> &gt; lst) noexcept</td></tr>
+<tr class="separator:acf004a49616f731287c3f57b025a9aec"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0cd3e4803cfe986815ed8c27a70db777"><td class="memItemLeft" align="right" valign="top">result&lt; <a class="el" href="classafio__v2__xxx_1_1async__file__handle_1_1awaitable.html">awaitable</a>&lt; const_buffers_type &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1async__file__handle.html#a0cd3e4803cfe986815ed8c27a70db777">co_write</a> (<a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__request.html">io_request</a>&lt; const_buffers_type &gt; reqs) noexcept</td></tr>
<tr class="memdesc:a0cd3e4803cfe986815ed8c27a70db777"><td class="mdescLeft">&#160;</td><td class="mdescRight">Schedule a write to occur asynchronously. <a href="#a0cd3e4803cfe986815ed8c27a70db777">More...</a><br /></td></tr>
<tr class="separator:a0cd3e4803cfe986815ed8c27a70db777"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a71951654fcca9a2f9a2e747e33579fcc"><td class="memItemLeft" align="right" valign="top">result&lt; <a class="el" href="classafio__v2__xxx_1_1async__file__handle_1_1awaitable.html">awaitable</a>&lt; const_buffers_type &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1async__file__handle.html#a71951654fcca9a2f9a2e747e33579fcc">co_write</a> (extent_type offset, std::initializer_list&lt; <a class="el" href="structafio__v2__xxx_1_1io__handle_1_1const__buffer__type.html">const_buffer_type</a> &gt; lst) noexcept</td></tr>
+<tr class="separator:a71951654fcca9a2f9a2e747e33579fcc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae56f6754d6ad0a037ebb134d83f45dfc"><td class="memItemLeft" align="right" valign="top"><a id="ae56f6754d6ad0a037ebb134d83f45dfc"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1file__handle.html#ae56f6754d6ad0a037ebb134d83f45dfc">swap</a> (<a class="el" href="classafio__v2__xxx_1_1file__handle.html">file_handle</a> &amp;o) noexcept</td></tr>
<tr class="memdesc:ae56f6754d6ad0a037ebb134d83f45dfc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Swap with another instance. <br /></td></tr>
@@ -283,13 +287,13 @@ virtual result&lt; std::vector&lt; std::pair&lt; extent_type, extent_type &gt; &
<tr class="memitem:a71d7636f40607829cacc2c974c4a2a28"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__result.html">io_result</a>&lt; buffers_type &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1io__handle.html#a71d7636f40607829cacc2c974c4a2a28">read</a> (<a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__request.html">io_request</a>&lt; buffers_type &gt; reqs, <a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a> d=<a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a>()) noexcept</td></tr>
<tr class="memdesc:a71d7636f40607829cacc2c974c4a2a28"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read data from the open handle. <a href="#a71d7636f40607829cacc2c974c4a2a28">More...</a><br /></td></tr>
<tr class="separator:a71d7636f40607829cacc2c974c4a2a28"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a8af6c6dc1502d40f6aaccc83e49d5342"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__result.html">io_result</a>&lt; <a class="el" href="structafio__v2__xxx_1_1io__handle_1_1buffer__type.html">buffer_type</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1io__handle.html#a8af6c6dc1502d40f6aaccc83e49d5342">read</a> (extent_type offset, char *data, size_type bytes, <a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a> d=<a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a>()) noexcept</td></tr>
-<tr class="separator:a8af6c6dc1502d40f6aaccc83e49d5342"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a928a8ab64d5b7d68dc7e2b3e5849df24"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__result.html">io_result</a>&lt; buffers_type &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1io__handle.html#a928a8ab64d5b7d68dc7e2b3e5849df24">read</a> (extent_type offset, std::initializer_list&lt; <a class="el" href="structafio__v2__xxx_1_1io__handle_1_1buffer__type.html">buffer_type</a> &gt; lst, <a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a> d=<a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a>()) noexcept</td></tr>
+<tr class="separator:a928a8ab64d5b7d68dc7e2b3e5849df24"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aefac4710e5617264347f437b04732c01"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__result.html">io_result</a>&lt; const_buffers_type &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1io__handle.html#aefac4710e5617264347f437b04732c01">write</a> (<a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__request.html">io_request</a>&lt; const_buffers_type &gt; reqs, <a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a> d=<a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a>()) noexcept</td></tr>
<tr class="memdesc:aefac4710e5617264347f437b04732c01"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write data to the open handle. <a href="#aefac4710e5617264347f437b04732c01">More...</a><br /></td></tr>
<tr class="separator:aefac4710e5617264347f437b04732c01"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ab26a3c5a18cdcc67a506533dbe55e2b3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__result.html">io_result</a>&lt; <a class="el" href="structafio__v2__xxx_1_1io__handle_1_1const__buffer__type.html">const_buffer_type</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1io__handle.html#ab26a3c5a18cdcc67a506533dbe55e2b3">write</a> (extent_type offset, const char *data, size_type bytes, <a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a> d=<a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a>()) noexcept</td></tr>
-<tr class="separator:ab26a3c5a18cdcc67a506533dbe55e2b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:add161546c0769941fce4fd9f06934e03"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__result.html">io_result</a>&lt; const_buffers_type &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1io__handle.html#add161546c0769941fce4fd9f06934e03">write</a> (extent_type offset, std::initializer_list&lt; <a class="el" href="structafio__v2__xxx_1_1io__handle_1_1const__buffer__type.html">const_buffer_type</a> &gt; lst, <a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a> d=<a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a>()) noexcept</td></tr>
+<tr class="separator:add161546c0769941fce4fd9f06934e03"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a88689b15e6e8b6ce1f945737dee4369e"><td class="memItemLeft" align="right" valign="top">virtual result&lt; <a class="el" href="classafio__v2__xxx_1_1io__handle_1_1extent__guard.html">extent_guard</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1io__handle.html#a88689b15e6e8b6ce1f945737dee4369e">lock</a> (extent_type offset, extent_type bytes, bool exclusive=true, <a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a> d=<a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a>()) noexcept</td></tr>
<tr class="memdesc:a88689b15e6e8b6ce1f945737dee4369e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tries to lock the range of bytes specified for shared or exclusive access. Be aware this passes through the same semantics as the underlying OS call, including any POSIX insanity present on your platform: <a href="#a88689b15e6e8b6ce1f945737dee4369e">More...</a><br /></td></tr>
<tr class="separator:a88689b15e6e8b6ce1f945737dee4369e"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -400,7 +404,7 @@ ino_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cla
<tr class="separator:a5a5244ab1a15053aefe93f2c253db5b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaacc27a62ce0859506d7443f0d0e7adf"><td class="memItemLeft" align="right" valign="top">virtual result&lt; <a class="el" href="classafio__v2__xxx_1_1path__handle.html">path_handle</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1fs__handle.html#aaacc27a62ce0859506d7443f0d0e7adf">parent_path_handle</a> (<a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a> d=std::chrono::seconds(30)) const noexcept</td></tr>
<tr class="separator:aaacc27a62ce0859506d7443f0d0e7adf"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a747962d0776c0fa9e79c9aa9b86da1c0"><td class="memItemLeft" align="right" valign="top">virtual result&lt; void &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1fs__handle.html#a747962d0776c0fa9e79c9aa9b86da1c0">relink</a> (const <a class="el" href="classafio__v2__xxx_1_1path__handle.html">path_handle</a> &amp;base, <a class="el" href="classafio__v2__xxx_1_1path__view.html">path_view_type</a> <a class="el" href="namespaceafio__v2__xxx.html#a7432c582b3af692a1f94be33aa73a00e">path</a>, bool atomic_replace=true, <a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a> d=std::chrono::seconds(30)) noexcept</td></tr>
+<tr class="memitem:a747962d0776c0fa9e79c9aa9b86da1c0"><td class="memItemLeft" align="right" valign="top">virtual result&lt; void &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1fs__handle.html#a747962d0776c0fa9e79c9aa9b86da1c0">relink</a> (const <a class="el" href="classafio__v2__xxx_1_1path__handle.html">path_handle</a> &amp;base, <a class="el" href="classafio__v2__xxx_1_1path__view.html">path_view_type</a> <a class="el" href="namespaceafio__v2__xxx.html#a7a98882ead35ebd6bd0700fdf571c44a">path</a>, bool atomic_replace=true, <a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a> d=std::chrono::seconds(30)) noexcept</td></tr>
<tr class="separator:a747962d0776c0fa9e79c9aa9b86da1c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6860b9626adc4d8e6db3ebb92974c054"><td class="memItemLeft" align="right" valign="top">virtual result&lt; void &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1fs__handle.html#a6860b9626adc4d8e6db3ebb92974c054">unlink</a> (<a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a> d=std::chrono::seconds(30)) noexcept</td></tr>
<tr class="separator:a6860b9626adc4d8e6db3ebb92974c054"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -415,7 +419,7 @@ Static Public Member Functions</h2></td></tr>
<tr class="separator:ae6ccde1ff634c32da094b7f1b1143d55"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4e4fc1ee894e1f112cb4123a24c2289d"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="group__config.html#ga0253d527092480116edc862aac54da62">AFIO_HEADERS_ONLY_MEMFUNC_SPEC</a> result&lt; <a class="el" href="classafio__v2__xxx_1_1async__file__handle.html">async_file_handle</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1async__file__handle.html#a4e4fc1ee894e1f112cb4123a24c2289d">async_temp_inode</a> (<a class="el" href="classafio__v2__xxx_1_1io__service.html">io_service</a> &amp;<a class="el" href="classafio__v2__xxx_1_1file__handle.html#a672324d44ea84ccfb71594c1036628ac">service</a>, const <a class="el" href="classafio__v2__xxx_1_1path__handle.html">path_handle</a> &amp;dir=<a class="el" href="namespaceafio__v2__xxx_1_1path__discovery.html#af398b6c3762f60aa96cebd270879093e">path_discovery::storage_backed_temporary_files_directory</a>(), <a class="el" href="classafio__v2__xxx_1_1handle.html#a0489b6c1e25cd2bad2ba1ec86e1aaf18">mode</a> _mode=<a class="el" href="classafio__v2__xxx_1_1handle.html#a0489b6c1e25cd2bad2ba1ec86e1aaf18aefb2a684e4afb7d55e6147fbe5a332ee">mode::write</a>, flag <a class="el" href="classafio__v2__xxx_1_1handle.html#ab3d876f5996605158fd6a0582adadad6">flags</a>=flag::none) noexcept</td></tr>
<tr class="separator:a4e4fc1ee894e1f112cb4123a24c2289d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:accb36f2bfd98393dc868653798c02d34"><td class="memItemLeft" align="right" valign="top">static result&lt; <a class="el" href="classafio__v2__xxx_1_1file__handle.html">file_handle</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1file__handle.html#accb36f2bfd98393dc868653798c02d34">file</a> (const <a class="el" href="classafio__v2__xxx_1_1path__handle.html">path_handle</a> &amp;base, <a class="el" href="classafio__v2__xxx_1_1path__view.html">path_view_type</a> <a class="el" href="namespaceafio__v2__xxx.html#a7432c582b3af692a1f94be33aa73a00e">path</a>, <a class="el" href="classafio__v2__xxx_1_1handle.html#a0489b6c1e25cd2bad2ba1ec86e1aaf18">mode</a> _mode=<a class="el" href="classafio__v2__xxx_1_1handle.html#a0489b6c1e25cd2bad2ba1ec86e1aaf18aecae13117d6f0584c25a9da6c8f8415e">mode::read</a>, <a class="el" href="classafio__v2__xxx_1_1handle.html#a45ff5c1c5662623d99156870dfeee0a7">creation</a> _creation=creation::open_existing, <a class="el" href="classafio__v2__xxx_1_1handle.html#a6f7e37c73271968271c2342023f58c9e">caching</a> _caching=<a class="el" href="classafio__v2__xxx_1_1handle.html#a6f7e37c73271968271c2342023f58c9eaa181a603769c1f98ad927e7367c7aa51">caching::all</a>, flag <a class="el" href="classafio__v2__xxx_1_1handle.html#ab3d876f5996605158fd6a0582adadad6">flags</a>=flag::none) noexcept</td></tr>
+<tr class="memitem:accb36f2bfd98393dc868653798c02d34"><td class="memItemLeft" align="right" valign="top">static result&lt; <a class="el" href="classafio__v2__xxx_1_1file__handle.html">file_handle</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1file__handle.html#accb36f2bfd98393dc868653798c02d34">file</a> (const <a class="el" href="classafio__v2__xxx_1_1path__handle.html">path_handle</a> &amp;base, <a class="el" href="classafio__v2__xxx_1_1path__view.html">path_view_type</a> <a class="el" href="namespaceafio__v2__xxx.html#a7a98882ead35ebd6bd0700fdf571c44a">path</a>, <a class="el" href="classafio__v2__xxx_1_1handle.html#a0489b6c1e25cd2bad2ba1ec86e1aaf18">mode</a> _mode=<a class="el" href="classafio__v2__xxx_1_1handle.html#a0489b6c1e25cd2bad2ba1ec86e1aaf18aecae13117d6f0584c25a9da6c8f8415e">mode::read</a>, <a class="el" href="classafio__v2__xxx_1_1handle.html#a45ff5c1c5662623d99156870dfeee0a7">creation</a> _creation=creation::open_existing, <a class="el" href="classafio__v2__xxx_1_1handle.html#a6f7e37c73271968271c2342023f58c9e">caching</a> _caching=<a class="el" href="classafio__v2__xxx_1_1handle.html#a6f7e37c73271968271c2342023f58c9eaa181a603769c1f98ad927e7367c7aa51">caching::all</a>, flag <a class="el" href="classafio__v2__xxx_1_1handle.html#ab3d876f5996605158fd6a0582adadad6">flags</a>=flag::none) noexcept</td></tr>
<tr class="separator:accb36f2bfd98393dc868653798c02d34"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7fdd164a8af6542c5fb80c514283c585"><td class="memItemLeft" align="right" valign="top">static result&lt; <a class="el" href="classafio__v2__xxx_1_1file__handle.html">file_handle</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1file__handle.html#a7fdd164a8af6542c5fb80c514283c585">random_file</a> (const <a class="el" href="classafio__v2__xxx_1_1path__handle.html">path_handle</a> &amp;dirpath, <a class="el" href="classafio__v2__xxx_1_1handle.html#a0489b6c1e25cd2bad2ba1ec86e1aaf18">mode</a> _mode=<a class="el" href="classafio__v2__xxx_1_1handle.html#a0489b6c1e25cd2bad2ba1ec86e1aaf18aefb2a684e4afb7d55e6147fbe5a332ee">mode::write</a>, <a class="el" href="classafio__v2__xxx_1_1handle.html#a6f7e37c73271968271c2342023f58c9e">caching</a> _caching=<a class="el" href="classafio__v2__xxx_1_1handle.html#a6f7e37c73271968271c2342023f58c9ead5197d93c063a2b1e22d1630a39b7aef">caching::temporary</a>, flag <a class="el" href="classafio__v2__xxx_1_1handle.html#ab3d876f5996605158fd6a0582adadad6">flags</a>=flag::none) noexcept</td></tr>
<tr class="separator:a7fdd164a8af6542c5fb80c514283c585"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -748,6 +752,7 @@ template&lt;class CompletionRoutine &gt; </div>
</div><div class="memdoc">
<p>Schedule a read to occur asynchronously. </p>
+<p>Note that some OS kernels can only process a limited number async i/o operations at a time. You should therefore check for the error <code>std::errc::resource_unavailable_try_again</code> and gracefully reschedule the i/o for a later time. This temporary failure may be returned immediately, or to the completion handler and hence you ought to handle both situations.</p>
<dl class="section return"><dt>Returns</dt><dd>Either an io_state_ptr to the i/o in progress, or an error code. </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
@@ -759,7 +764,7 @@ template&lt;class CompletionRoutine &gt; </div>
</dl>
<dl class="section user"><dt>Errors returnable</dt><dd>As for <code>read()</code>, plus <code>ENOMEM</code>. </dd></dl>
<dl class="section user"><dt>Memory Allocations</dt><dd>If mem is not set, one calloc, one free. The allocation is unavoidable due to the need to store a type erased completion handler of unknown type and state per buffers input. </dd></dl>
-<div class="fragment"><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; {}) noexcept</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; {</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; AFIO_LOG_FUNCTION_CALL(<span class="keyword">this</span>);</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; <span class="keyword">struct </span>completion_handler : _erased_completion_handler</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; {</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; CompletionRoutine completion;</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; <span class="keyword">explicit</span> completion_handler(CompletionRoutine c)</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; : completion(<a class="code" href="namespacestd.html">std</a>::move(c))</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; {</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; }</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; <span class="keywordtype">size_t</span> bytes() const noexcept final { <span class="keywordflow">return</span> <span class="keyword">sizeof</span>(*this); }</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; <span class="keywordtype">void</span> move(_erased_completion_handler *_dest) <span class="keyword">final</span></div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; {</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; <span class="keyword">auto</span> *dest = <span class="keyword">reinterpret_cast&lt;</span><span class="keywordtype">void</span> *<span class="keyword">&gt;</span>(_dest);</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; <span class="keyword">new</span>(dest) completion_handler(std::move(*<span class="keyword">this</span>));</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; }</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; <span class="keywordtype">void</span> operator()(_erased_io_state_type *state) <span class="keyword">final</span> { completion(state-&gt;parent, state-&gt;result.read); }</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; <span class="keywordtype">void</span> *address() noexcept final { <span class="keywordflow">return</span> &amp;completion; }</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; } ch{std::forward&lt;CompletionRoutine&gt;(completion)};</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; <span class="keywordflow">return</span> _begin_io(mem, operation_t::read, io_request&lt;const_buffers_type&gt;({<span class="keyword">reinterpret_cast&lt;</span>const_buffer_type *<span class="keyword">&gt;</span>(reqs.buffers.data()), reqs.buffers.size()}, reqs.offset), std::move(ch));</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; }</div><div class="ttc" id="namespacestd_html"><div class="ttname"><a href="namespacestd.html">std</a></div><div class="ttdoc">STL namespace. </div></div>
+<div class="fragment"><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; {}) noexcept</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; {</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; AFIO_LOG_FUNCTION_CALL(<span class="keyword">this</span>);</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; <span class="keyword">struct </span>completion_handler : _erased_completion_handler</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; {</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; CompletionRoutine completion;</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; <span class="keyword">explicit</span> completion_handler(CompletionRoutine c)</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; : completion(<a class="code" href="namespacestd.html">std</a>::move(c))</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; {</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; }</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; <span class="keywordtype">size_t</span> bytes() const noexcept final { <span class="keywordflow">return</span> <span class="keyword">sizeof</span>(*this); }</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; <span class="keywordtype">void</span> move(_erased_completion_handler *_dest) <span class="keyword">final</span></div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; {</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; <span class="keyword">auto</span> *dest = <span class="keyword">reinterpret_cast&lt;</span><span class="keywordtype">void</span> *<span class="keyword">&gt;</span>(_dest);</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; <span class="keyword">new</span>(dest) completion_handler(std::move(*<span class="keyword">this</span>));</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; }</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; <span class="keywordtype">void</span> operator()(_erased_io_state_type *state) <span class="keyword">final</span> { completion(state-&gt;parent, state-&gt;result.read); }</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; <span class="keywordtype">void</span> *address() noexcept final { <span class="keywordflow">return</span> &amp;completion; }</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; } ch{std::forward&lt;CompletionRoutine&gt;(completion)};</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; <span class="keywordflow">return</span> _begin_io(mem, operation_t::read, io_request&lt;const_buffers_type&gt;({<span class="keyword">reinterpret_cast&lt;</span>const_buffer_type *<span class="keyword">&gt;</span>(reqs.buffers.data()), reqs.buffers.size()}, reqs.offset), std::move(ch));</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; }</div><div class="ttc" id="namespacestd_html"><div class="ttname"><a href="namespacestd.html">std</a></div><div class="ttdoc">STL namespace. </div></div>
</div><!-- fragment -->
</div>
</div>
@@ -928,6 +933,7 @@ template&lt;class CompletionRoutine &gt; </div>
</div><div class="memdoc">
<p>Schedule a write to occur asynchronously. </p>
+<p>Note that some OS kernels can only process a limited number async i/o operations at a time. You should therefore check for the error <code>std::errc::resource_unavailable_try_again</code> and gracefully reschedule the i/o for a later time. This temporary failure may be returned immediately, or to the completion handler and hence you ought to handle both situations.</p>
<dl class="section return"><dt>Returns</dt><dd>Either an io_state_ptr to the i/o in progress, or an error code. </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
@@ -939,7 +945,7 @@ template&lt;class CompletionRoutine &gt; </div>
</dl>
<dl class="section user"><dt>Errors returnable</dt><dd>As for <code>write()</code>, plus <code>ENOMEM</code>. </dd></dl>
<dl class="section user"><dt>Memory Allocations</dt><dd>If mem in not set, one calloc, one free. The allocation is unavoidable due to the need to store a type erased completion handler of unknown type and state per buffers input. </dd></dl>
-<div class="fragment"><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; {}) noexcept</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; {</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; AFIO_LOG_FUNCTION_CALL(<span class="keyword">this</span>);</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; <span class="keyword">struct </span>completion_handler : _erased_completion_handler</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; {</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; CompletionRoutine completion;</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; <span class="keyword">explicit</span> completion_handler(CompletionRoutine c)</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; : completion(<a class="code" href="namespacestd.html">std</a>::move(c))</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; {</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; }</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; <span class="keywordtype">size_t</span> bytes() const noexcept final { <span class="keywordflow">return</span> <span class="keyword">sizeof</span>(*this); }</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; <span class="keywordtype">void</span> move(_erased_completion_handler *_dest) <span class="keyword">final</span></div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; {</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; <span class="keyword">auto</span> *dest = <span class="keyword">reinterpret_cast&lt;</span><span class="keywordtype">void</span> *<span class="keyword">&gt;</span>(_dest);</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; <span class="keyword">new</span>(dest) completion_handler(std::move(*<span class="keyword">this</span>));</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; }</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; <span class="keywordtype">void</span> operator()(_erased_io_state_type *state) <span class="keyword">final</span> { completion(state-&gt;parent, state-&gt;result.write); }</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; <span class="keywordtype">void</span> *address() noexcept final { <span class="keywordflow">return</span> &amp;completion; }</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; } ch{std::forward&lt;CompletionRoutine&gt;(completion)};</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; <span class="keywordflow">return</span> _begin_io(mem, operation_t::write, reqs, std::move(ch));</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; }</div><div class="ttc" id="namespacestd_html"><div class="ttname"><a href="namespacestd.html">std</a></div><div class="ttdoc">STL namespace. </div></div>
+<div class="fragment"><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; {}) noexcept</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; {</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; AFIO_LOG_FUNCTION_CALL(<span class="keyword">this</span>);</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; <span class="keyword">struct </span>completion_handler : _erased_completion_handler</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; {</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; CompletionRoutine completion;</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; <span class="keyword">explicit</span> completion_handler(CompletionRoutine c)</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; : completion(<a class="code" href="namespacestd.html">std</a>::move(c))</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; {</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; }</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; <span class="keywordtype">size_t</span> bytes() const noexcept final { <span class="keywordflow">return</span> <span class="keyword">sizeof</span>(*this); }</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; <span class="keywordtype">void</span> move(_erased_completion_handler *_dest) <span class="keyword">final</span></div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; {</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; <span class="keyword">auto</span> *dest = <span class="keyword">reinterpret_cast&lt;</span><span class="keywordtype">void</span> *<span class="keyword">&gt;</span>(_dest);</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; <span class="keyword">new</span>(dest) completion_handler(std::move(*<span class="keyword">this</span>));</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; }</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; <span class="keywordtype">void</span> operator()(_erased_io_state_type *state) <span class="keyword">final</span> { completion(state-&gt;parent, state-&gt;result.write); }</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; <span class="keywordtype">void</span> *address() noexcept final { <span class="keywordflow">return</span> &amp;completion; }</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; } ch{std::forward&lt;CompletionRoutine&gt;(completion)};</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; <span class="keywordflow">return</span> _begin_io(mem, operation_t::write, reqs, std::move(ch));</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; }</div><div class="ttc" id="namespacestd_html"><div class="ttname"><a href="namespacestd.html">std</a></div><div class="ttdoc">STL namespace. </div></div>
</div><!-- fragment -->
</div>
</div>
@@ -1000,7 +1006,7 @@ For portability, you can only assume that barriers write order for a single hand
<table class="params">
<tr><td class="paramname">reqs</td><td>A scatter-gather and offset request for what range to barrier. May be ignored on some platforms which always write barrier the entire file. Supplying a default initialised reqs write barriers the entire file. </td></tr>
<tr><td class="paramname">wait_for_device</td><td>True if you want the call to wait until data reaches storage and that storage has acknowledged the data is physically written. Slow. </td></tr>
- <tr><td class="paramname">and_metadata</td><td>True if you want the call to sync the metadata for retrieving the writes before the barrier after a sudden power loss event. Slow. </td></tr>
+ <tr><td class="paramname">and_metadata</td><td>True if you want the call to sync the metadata for retrieving the writes before the barrier after a sudden power loss event. Slow. Setting this to false enables much faster performance, especially on non-volatile memory. </td></tr>
<tr><td class="paramname">d</td><td>An optional deadline by which the i/o must complete, else it is cancelled. Note function may return significantly after this deadline if the i/o takes long to cancel. </td></tr>
</table>
</dd>
@@ -1142,7 +1148,7 @@ For portability, you can only assume that barriers write order for a single hand
</div>
</div>
<a id="abca08e496e10ac6ae890793888a5e3fe"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#abca08e496e10ac6ae890793888a5e3fe">&#9670;&nbsp;</a></span>co_read()</h2>
+<h2 class="memtitle"><span class="permalink"><a href="#abca08e496e10ac6ae890793888a5e3fe">&#9670;&nbsp;</a></span>co_read() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
@@ -1175,12 +1181,50 @@ For portability, you can only assume that barriers write order for a single hand
</dl>
<dl class="section user"><dt>Errors returnable</dt><dd>As for read(), plus ENOMEM. </dd></dl>
<dl class="section user"><dt>Memory Allocations</dt><dd>One calloc, one free. </dd></dl>
-<div class="fragment"><div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; {</div><div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; OUTCOME_TRY(r, <a class="code" href="classafio__v2__xxx_1_1async__file__handle.html#ab0a1e11a3d208319cc8fc8a9171ec33f">async_read</a>(reqs, awaitable_state&lt;buffers_type&gt;()));</div><div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; <span class="keywordflow">return</span> awaitable&lt;buffers_type&gt;(std::move(r));</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160; }</div><div class="ttc" id="classafio__v2__xxx_1_1async__file__handle_html_ab0a1e11a3d208319cc8fc8a9171ec33f"><div class="ttname"><a href="classafio__v2__xxx_1_1async__file__handle.html#ab0a1e11a3d208319cc8fc8a9171ec33f">afio_v2_xxx::async_file_handle::async_read</a></div><div class="ttdeci">result&lt; io_state_ptr &gt; async_read(io_request&lt; buffers_type &gt; reqs, CompletionRoutine &amp;&amp;completion, span&lt; char &gt; mem={}) noexcept</div><div class="ttdoc">Schedule a read to occur asynchronously. </div><div class="ttdef"><b>Definition:</b> async_file_handle.hpp:430</div></div>
+<div class="fragment"><div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; {</div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; OUTCOME_TRY(r, <a class="code" href="classafio__v2__xxx_1_1async__file__handle.html#ab0a1e11a3d208319cc8fc8a9171ec33f">async_read</a>(reqs, awaitable_state&lt;buffers_type&gt;()));</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; <span class="keywordflow">return</span> awaitable&lt;buffers_type&gt;(std::move(r));</div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; }</div><div class="ttc" id="classafio__v2__xxx_1_1async__file__handle_html_ab0a1e11a3d208319cc8fc8a9171ec33f"><div class="ttname"><a href="classafio__v2__xxx_1_1async__file__handle.html#ab0a1e11a3d208319cc8fc8a9171ec33f">afio_v2_xxx::async_file_handle::async_read</a></div><div class="ttdeci">result&lt; io_state_ptr &gt; async_read(io_request&lt; buffers_type &gt; reqs, CompletionRoutine &amp;&amp;completion, span&lt; char &gt; mem={}) noexcept</div><div class="ttdoc">Schedule a read to occur asynchronously. </div><div class="ttdef"><b>Definition:</b> async_file_handle.hpp:436</div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a id="acf004a49616f731287c3f57b025a9aec"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#acf004a49616f731287c3f57b025a9aec">&#9670;&nbsp;</a></span>co_read() <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="classafio__v2__xxx_1_1async__file__handle_1_1awaitable.html">awaitable</a>&lt;buffers_type&gt; &gt; afio_v2_xxx::async_file_handle::co_read </td>
+ <td>(</td>
+ <td class="paramtype">extent_type&#160;</td>
+ <td class="paramname"><em>offset</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">std::initializer_list&lt; <a class="el" href="structafio__v2__xxx_1_1io__handle_1_1buffer__type.html">buffer_type</a> &gt;&#160;</td>
+ <td class="paramname"><em>lst</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
+ </tr>
+</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="l00570"></a><span class="lineno"> 570</span>&#160; {</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; buffer_type *_reqs = <span class="keyword">reinterpret_cast&lt;</span>buffer_type *<span class="keyword">&gt;</span>(alloca(<span class="keyword">sizeof</span>(buffer_type) * lst.size()));</div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; memcpy(_reqs, lst.begin(), <span class="keyword">sizeof</span>(buffer_type) * lst.size());</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160; io_request&lt;buffers_type&gt; reqs(buffers_type(_reqs, lst.size()), offset);</div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classafio__v2__xxx_1_1async__file__handle.html#abca08e496e10ac6ae890793888a5e3fe">co_read</a>(reqs);</div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160; }</div><div class="ttc" id="classafio__v2__xxx_1_1async__file__handle_html_abca08e496e10ac6ae890793888a5e3fe"><div class="ttname"><a href="classafio__v2__xxx_1_1async__file__handle.html#abca08e496e10ac6ae890793888a5e3fe">afio_v2_xxx::async_file_handle::co_read</a></div><div class="ttdeci">result&lt; awaitable&lt; buffers_type &gt; &gt; co_read(io_request&lt; buffers_type &gt; reqs) noexcept</div><div class="ttdoc">Schedule a read to occur asynchronously. </div><div class="ttdef"><b>Definition:</b> async_file_handle.hpp:562</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a0cd3e4803cfe986815ed8c27a70db777"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a0cd3e4803cfe986815ed8c27a70db777">&#9670;&nbsp;</a></span>co_write()</h2>
+<h2 class="memtitle"><span class="permalink"><a href="#a0cd3e4803cfe986815ed8c27a70db777">&#9670;&nbsp;</a></span>co_write() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
@@ -1213,7 +1257,45 @@ For portability, you can only assume that barriers write order for a single hand
</dl>
<dl class="section user"><dt>Errors returnable</dt><dd>As for write(), plus ENOMEM. </dd></dl>
<dl class="section user"><dt>Memory Allocations</dt><dd>One calloc, one free. </dd></dl>
-<div class="fragment"><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160; {</div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; OUTCOME_TRY(r, <a class="code" href="classafio__v2__xxx_1_1async__file__handle.html#ac38c4f8c4be552471c9ae07f2e247ba1">async_write</a>(reqs, awaitable_state&lt;const_buffers_type&gt;()));</div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; <span class="keywordflow">return</span> awaitable&lt;const_buffers_type&gt;(std::move(r));</div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160; }</div><div class="ttc" id="classafio__v2__xxx_1_1async__file__handle_html_ac38c4f8c4be552471c9ae07f2e247ba1"><div class="ttname"><a href="classafio__v2__xxx_1_1async__file__handle.html#ac38c4f8c4be552471c9ae07f2e247ba1">afio_v2_xxx::async_file_handle::async_write</a></div><div class="ttdeci">result&lt; io_state_ptr &gt; async_write(io_request&lt; const_buffers_type &gt; reqs, CompletionRoutine &amp;&amp;completion, span&lt; char &gt; mem={}) noexcept</div><div class="ttdoc">Schedule a write to occur asynchronously. </div><div class="ttdef"><b>Definition:</b> async_file_handle.hpp:466</div></div>
+<div class="fragment"><div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160; {</div><div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160; OUTCOME_TRY(r, <a class="code" href="classafio__v2__xxx_1_1async__file__handle.html#ac38c4f8c4be552471c9ae07f2e247ba1">async_write</a>(reqs, awaitable_state&lt;const_buffers_type&gt;()));</div><div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160; <span class="keywordflow">return</span> awaitable&lt;const_buffers_type&gt;(std::move(r));</div><div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160; }</div><div class="ttc" id="classafio__v2__xxx_1_1async__file__handle_html_ac38c4f8c4be552471c9ae07f2e247ba1"><div class="ttname"><a href="classafio__v2__xxx_1_1async__file__handle.html#ac38c4f8c4be552471c9ae07f2e247ba1">afio_v2_xxx::async_file_handle::async_write</a></div><div class="ttdeci">result&lt; io_state_ptr &gt; async_write(io_request&lt; const_buffers_type &gt; reqs, CompletionRoutine &amp;&amp;completion, span&lt; char &gt; mem={}) noexcept</div><div class="ttdoc">Schedule a write to occur asynchronously. </div><div class="ttdef"><b>Definition:</b> async_file_handle.hpp:479</div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a id="a71951654fcca9a2f9a2e747e33579fcc"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a71951654fcca9a2f9a2e747e33579fcc">&#9670;&nbsp;</a></span>co_write() <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="classafio__v2__xxx_1_1async__file__handle_1_1awaitable.html">awaitable</a>&lt;const_buffers_type&gt; &gt; afio_v2_xxx::async_file_handle::co_write </td>
+ <td>(</td>
+ <td class="paramtype">extent_type&#160;</td>
+ <td class="paramname"><em>offset</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">std::initializer_list&lt; <a class="el" href="structafio__v2__xxx_1_1io__handle_1_1const__buffer__type.html">const_buffer_type</a> &gt;&#160;</td>
+ <td class="paramname"><em>lst</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
+ </tr>
+</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="l00596"></a><span class="lineno"> 596</span>&#160; {</div><div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160; const_buffer_type *_reqs = <span class="keyword">reinterpret_cast&lt;</span>const_buffer_type *<span class="keyword">&gt;</span>(alloca(<span class="keyword">sizeof</span>(const_buffer_type) * lst.size()));</div><div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160; memcpy(_reqs, lst.begin(), <span class="keyword">sizeof</span>(const_buffer_type) * lst.size());</div><div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160; io_request&lt;const_buffers_type&gt; reqs(const_buffers_type(_reqs, lst.size()), offset);</div><div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classafio__v2__xxx_1_1async__file__handle.html#a0cd3e4803cfe986815ed8c27a70db777">co_write</a>(reqs);</div><div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160; }</div><div class="ttc" id="classafio__v2__xxx_1_1async__file__handle_html_a0cd3e4803cfe986815ed8c27a70db777"><div class="ttname"><a href="classafio__v2__xxx_1_1async__file__handle.html#a0cd3e4803cfe986815ed8c27a70db777">afio_v2_xxx::async_file_handle::co_write</a></div><div class="ttdeci">result&lt; awaitable&lt; const_buffers_type &gt; &gt; co_write(io_request&lt; const_buffers_type &gt; reqs) noexcept</div><div class="ttdoc">Schedule a write to occur asynchronously. </div><div class="ttdef"><b>Definition:</b> async_file_handle.hpp:588</div></div>
</div><!-- fragment -->
</div>
</div>
@@ -1451,7 +1533,7 @@ For portability, you can only assume that barriers write order for a single hand
</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="l00411"></a><span class="lineno"> 411</span>&#160; {</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; <span class="keywordtype">size_t</span> bytes = 0;</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> &amp;i : reqs.buffers)</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; {</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; <span class="keywordflow">if</span>(bytes + i.len &lt; bytes)</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; {</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; <span class="keywordflow">return</span> std::errc::value_too_large;</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; }</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; bytes += i.len;</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; }</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classafio__v2__xxx_1_1io__handle.html#a88689b15e6e8b6ce1f945737dee4369e">lock</a>(reqs.offset, bytes, <span class="keyword">false</span>, d);</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; }</div><div class="ttc" id="classafio__v2__xxx_1_1io__handle_html_a88689b15e6e8b6ce1f945737dee4369e"><div class="ttname"><a href="classafio__v2__xxx_1_1io__handle.html#a88689b15e6e8b6ce1f945737dee4369e">afio_v2_xxx::io_handle::lock</a></div><div class="ttdeci">virtual result&lt; extent_guard &gt; lock(extent_type offset, extent_type bytes, bool exclusive=true, deadline d=deadline()) noexcept</div><div class="ttdoc">Tries to lock the range of bytes specified for shared or exclusive access. Be aware this passes throu...</div></div>
+<div class="fragment"><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; {</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; <span class="keywordtype">size_t</span> bytes = 0;</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> &amp;i : reqs.buffers)</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; {</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; <span class="keywordflow">if</span>(bytes + i.len &lt; bytes)</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; {</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; <span class="keywordflow">return</span> std::errc::value_too_large;</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; }</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; bytes += i.len;</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; }</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classafio__v2__xxx_1_1io__handle.html#a88689b15e6e8b6ce1f945737dee4369e">lock</a>(reqs.offset, bytes, <span class="keyword">false</span>, d);</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; }</div><div class="ttc" id="classafio__v2__xxx_1_1io__handle_html_a88689b15e6e8b6ce1f945737dee4369e"><div class="ttname"><a href="classafio__v2__xxx_1_1io__handle.html#a88689b15e6e8b6ce1f945737dee4369e">afio_v2_xxx::io_handle::lock</a></div><div class="ttdeci">virtual result&lt; extent_guard &gt; lock(extent_type offset, extent_type bytes, bool exclusive=true, deadline d=deadline()) noexcept</div><div class="ttdoc">Tries to lock the range of bytes specified for shared or exclusive access. Be aware this passes throu...</div></div>
</div><!-- fragment -->
</div>
</div>
@@ -1489,7 +1571,7 @@ For portability, you can only assume that barriers write order for a single hand
</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="l00425"></a><span class="lineno"> 425</span>&#160; {</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; <span class="keywordtype">size_t</span> bytes = 0;</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> &amp;i : reqs.buffers)</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; {</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; <span class="keywordflow">if</span>(bytes + i.len &lt; bytes)</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; {</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; <span class="keywordflow">return</span> std::errc::value_too_large;</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; }</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; bytes += i.len;</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; }</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classafio__v2__xxx_1_1io__handle.html#a88689b15e6e8b6ce1f945737dee4369e">lock</a>(reqs.offset, bytes, <span class="keyword">true</span>, d);</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; }</div><div class="ttc" id="classafio__v2__xxx_1_1io__handle_html_a88689b15e6e8b6ce1f945737dee4369e"><div class="ttname"><a href="classafio__v2__xxx_1_1io__handle.html#a88689b15e6e8b6ce1f945737dee4369e">afio_v2_xxx::io_handle::lock</a></div><div class="ttdeci">virtual result&lt; extent_guard &gt; lock(extent_type offset, extent_type bytes, bool exclusive=true, deadline d=deadline()) noexcept</div><div class="ttdoc">Tries to lock the range of bytes specified for shared or exclusive access. Be aware this passes throu...</div></div>
+<div class="fragment"><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; {</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; <span class="keywordtype">size_t</span> bytes = 0;</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> &amp;i : reqs.buffers)</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; {</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; <span class="keywordflow">if</span>(bytes + i.len &lt; bytes)</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; {</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; <span class="keywordflow">return</span> std::errc::value_too_large;</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; }</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; bytes += i.len;</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; }</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classafio__v2__xxx_1_1io__handle.html#a88689b15e6e8b6ce1f945737dee4369e">lock</a>(reqs.offset, bytes, <span class="keyword">true</span>, d);</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; }</div><div class="ttc" id="classafio__v2__xxx_1_1io__handle_html_a88689b15e6e8b6ce1f945737dee4369e"><div class="ttname"><a href="classafio__v2__xxx_1_1io__handle.html#a88689b15e6e8b6ce1f945737dee4369e">afio_v2_xxx::io_handle::lock</a></div><div class="ttdeci">virtual result&lt; extent_guard &gt; lock(extent_type offset, extent_type bytes, bool exclusive=true, deadline d=deadline()) noexcept</div><div class="ttdoc">Tries to lock the range of bytes specified for shared or exclusive access. Be aware this passes throu...</div></div>
</div><!-- fragment -->
</div>
</div>
@@ -1519,7 +1601,7 @@ For portability, you can only assume that barriers write order for a single hand
<p>The <em>maximum</em> number of buffers which a single read or write syscall can process at a time for this specific open handle. On POSIX, this is known as <code>IOV_MAX</code>. </p>
<p>Note that the actual number of buffers accepted for a read or a write may be significantly lower than this system-defined limit, depending on available resources. The <code>read()</code> or <code>write()</code> call will return the buffers accepted.</p>
<p>Note also that some OSs will error out if you supply more than this limit to <code>read()</code> or <code>write()</code>, but other OSs do not. Some OSs guarantee that each i/o syscall has effects atomically visible or not to other i/o, other OSs do not.</p>
-<p>Microsoft Windows does not implement scatter-gather file i/o syscalls except for unbuffered i/o. Thus this function will always return <code>1</code> in that situation. </p>
+<p>Microsoft Windows and OS X does not implement scatter-gather file i/o syscalls. Thus this function will always return <code>1</code> in that situation. </p>
</div>
</div>
@@ -1655,8 +1737,8 @@ For portability, you can only assume that barriers write order for a single hand
</div>
</div>
-<a id="a8af6c6dc1502d40f6aaccc83e49d5342"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a8af6c6dc1502d40f6aaccc83e49d5342">&#9670;&nbsp;</a></span>read() <span class="overload">[2/2]</span></h2>
+<a id="a928a8ab64d5b7d68dc7e2b3e5849df24"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a928a8ab64d5b7d68dc7e2b3e5849df24">&#9670;&nbsp;</a></span>read() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
@@ -1665,7 +1747,7 @@ For portability, you can only assume that barriers write order for a single hand
<td class="mlabels-left">
<table class="memname">
<tr>
- <td class="memname"><a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__result.html">io_result</a>&lt;<a class="el" href="structafio__v2__xxx_1_1io__handle_1_1buffer__type.html">buffer_type</a>&gt; afio_v2_xxx::io_handle::read </td>
+ <td class="memname"><a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__result.html">io_result</a>&lt;buffers_type&gt; afio_v2_xxx::io_handle::read </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classafio__v2__xxx_1_1handle.html#a818fff07c92eaab72532092d1c2a14f9">extent_type</a>&#160;</td>
<td class="paramname"><em>offset</em>, </td>
@@ -1673,14 +1755,8 @@ For portability, you can only assume that barriers write order for a single hand
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">char *&#160;</td>
- <td class="paramname"><em>data</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="classafio__v2__xxx_1_1handle.html#a0adf7fa00e23ed561328f473986e9ccc">size_type</a>&#160;</td>
- <td class="paramname"><em>bytes</em>, </td>
+ <td class="paramtype">std::initializer_list&lt; <a class="el" href="structafio__v2__xxx_1_1io__handle_1_1buffer__type.html">buffer_type</a> &gt;&#160;</td>
+ <td class="paramname"><em>lst</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
@@ -1701,7 +1777,7 @@ For portability, you can only assume that barriers write order for a single hand
</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="l00225"></a><span class="lineno"> 225</span>&#160; {</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; buffer_type _reqs[1] = {{data, bytes}};</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; io_request&lt;buffers_type&gt; reqs(<a class="code" href="classafio__v2__xxx_1_1io__handle.html#a70a3c5e6f62efc95db81f831f3b90a2c">buffers_type</a>(_reqs), offset);</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; OUTCOME_TRY(v, <a class="code" href="classafio__v2__xxx_1_1io__handle.html#a71d7636f40607829cacc2c974c4a2a28">read</a>(reqs, d));</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="keywordflow">return</span> *v.data();</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; }</div><div class="ttc" id="classafio__v2__xxx_1_1io__handle_html_a70a3c5e6f62efc95db81f831f3b90a2c"><div class="ttname"><a href="classafio__v2__xxx_1_1io__handle.html#a70a3c5e6f62efc95db81f831f3b90a2c">afio_v2_xxx::io_handle::buffers_type</a></div><div class="ttdeci">span&lt; buffer_type &gt; buffers_type</div><div class="ttdoc">The scatter buffers type used by this handle. Guaranteed to be TrivialType apart from construction...</div><div class="ttdef"><b>Definition:</b> io_handle.hpp:76</div></div>
+<div class="fragment"><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; {</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; buffer_type *_reqs = <span class="keyword">reinterpret_cast&lt;</span>buffer_type *<span class="keyword">&gt;</span>(alloca(<span class="keyword">sizeof</span>(buffer_type) * lst.size()));</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; memcpy(_reqs, lst.begin(), <span class="keyword">sizeof</span>(buffer_type) * lst.size());</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; io_request&lt;buffers_type&gt; reqs(<a class="code" href="classafio__v2__xxx_1_1io__handle.html#a70a3c5e6f62efc95db81f831f3b90a2c">buffers_type</a>(_reqs, lst.size()), offset);</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classafio__v2__xxx_1_1io__handle.html#a71d7636f40607829cacc2c974c4a2a28">read</a>(reqs, d);</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; }</div><div class="ttc" id="classafio__v2__xxx_1_1io__handle_html_a70a3c5e6f62efc95db81f831f3b90a2c"><div class="ttname"><a href="classafio__v2__xxx_1_1io__handle.html#a70a3c5e6f62efc95db81f831f3b90a2c">afio_v2_xxx::io_handle::buffers_type</a></div><div class="ttdeci">span&lt; buffer_type &gt; buffers_type</div><div class="ttdoc">The scatter buffers type used by this handle. Guaranteed to be TrivialType apart from construction...</div><div class="ttdef"><b>Definition:</b> io_handle.hpp:76</div></div>
<div class="ttc" id="classafio__v2__xxx_1_1io__handle_html_a71d7636f40607829cacc2c974c4a2a28"><div class="ttname"><a href="classafio__v2__xxx_1_1io__handle.html#a71d7636f40607829cacc2c974c4a2a28">afio_v2_xxx::io_handle::read</a></div><div class="ttdeci">virtual io_result&lt; buffers_type &gt; read(io_request&lt; buffers_type &gt; reqs, deadline d=deadline()) noexcept</div><div class="ttdoc">Read data from the open handle. </div></div>
</div><!-- fragment -->
</div>
@@ -1978,7 +2054,7 @@ For portability, you can only assume that barriers write order for a single hand
</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="l00408"></a><span class="lineno"> 408</span>&#160;{ <span class="keywordflow">return</span> <a class="code" href="classafio__v2__xxx_1_1io__handle.html#a88689b15e6e8b6ce1f945737dee4369e">lock</a>(offset, bytes, exclusive, deadline(std::chrono::seconds(0))); }</div><div class="ttc" id="classafio__v2__xxx_1_1io__handle_html_a88689b15e6e8b6ce1f945737dee4369e"><div class="ttname"><a href="classafio__v2__xxx_1_1io__handle.html#a88689b15e6e8b6ce1f945737dee4369e">afio_v2_xxx::io_handle::lock</a></div><div class="ttdeci">virtual result&lt; extent_guard &gt; lock(extent_type offset, extent_type bytes, bool exclusive=true, deadline d=deadline()) noexcept</div><div class="ttdoc">Tries to lock the range of bytes specified for shared or exclusive access. Be aware this passes throu...</div></div>
+<div class="fragment"><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160;{ <span class="keywordflow">return</span> <a class="code" href="classafio__v2__xxx_1_1io__handle.html#a88689b15e6e8b6ce1f945737dee4369e">lock</a>(offset, bytes, exclusive, deadline(std::chrono::seconds(0))); }</div><div class="ttc" id="classafio__v2__xxx_1_1io__handle_html_a88689b15e6e8b6ce1f945737dee4369e"><div class="ttname"><a href="classafio__v2__xxx_1_1io__handle.html#a88689b15e6e8b6ce1f945737dee4369e">afio_v2_xxx::io_handle::lock</a></div><div class="ttdeci">virtual result&lt; extent_guard &gt; lock(extent_type offset, extent_type bytes, bool exclusive=true, deadline d=deadline()) noexcept</div><div class="ttdoc">Tries to lock the range of bytes specified for shared or exclusive access. Be aware this passes throu...</div></div>
</div><!-- fragment -->
</div>
</div>
@@ -2113,8 +2189,8 @@ For portability, you can only assume that barriers write order for a single hand
</div>
</div>
-<a id="ab26a3c5a18cdcc67a506533dbe55e2b3"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ab26a3c5a18cdcc67a506533dbe55e2b3">&#9670;&nbsp;</a></span>write() <span class="overload">[2/2]</span></h2>
+<a id="add161546c0769941fce4fd9f06934e03"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#add161546c0769941fce4fd9f06934e03">&#9670;&nbsp;</a></span>write() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
@@ -2123,7 +2199,7 @@ For portability, you can only assume that barriers write order for a single hand
<td class="mlabels-left">
<table class="memname">
<tr>
- <td class="memname"><a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__result.html">io_result</a>&lt;<a class="el" href="structafio__v2__xxx_1_1io__handle_1_1const__buffer__type.html">const_buffer_type</a>&gt; afio_v2_xxx::io_handle::write </td>
+ <td class="memname"><a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__result.html">io_result</a>&lt;const_buffers_type&gt; afio_v2_xxx::io_handle::write </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classafio__v2__xxx_1_1handle.html#a818fff07c92eaab72532092d1c2a14f9">extent_type</a>&#160;</td>
<td class="paramname"><em>offset</em>, </td>
@@ -2131,14 +2207,8 @@ For portability, you can only assume that barriers write order for a single hand
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">const char *&#160;</td>
- <td class="paramname"><em>data</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="classafio__v2__xxx_1_1handle.html#a0adf7fa00e23ed561328f473986e9ccc">size_type</a>&#160;</td>
- <td class="paramname"><em>bytes</em>, </td>
+ <td class="paramtype">std::initializer_list&lt; <a class="el" href="structafio__v2__xxx_1_1io__handle_1_1const__buffer__type.html">const_buffer_type</a> &gt;&#160;</td>
+ <td class="paramname"><em>lst</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
@@ -2159,7 +2229,7 @@ For portability, you can only assume that barriers write order for a single hand
</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="l00257"></a><span class="lineno"> 257</span>&#160; {</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; const_buffer_type _reqs[1] = {{data, bytes}};</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; io_request&lt;const_buffers_type&gt; reqs(<a class="code" href="classafio__v2__xxx_1_1io__handle.html#a639b8760b1b98df95e4956f6cc56f6b5">const_buffers_type</a>(_reqs), offset);</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; OUTCOME_TRY(v, <a class="code" href="classafio__v2__xxx_1_1io__handle.html#aefac4710e5617264347f437b04732c01">write</a>(reqs, d));</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <span class="keywordflow">return</span> *v.data();</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; }</div><div class="ttc" id="classafio__v2__xxx_1_1io__handle_html_a639b8760b1b98df95e4956f6cc56f6b5"><div class="ttname"><a href="classafio__v2__xxx_1_1io__handle.html#a639b8760b1b98df95e4956f6cc56f6b5">afio_v2_xxx::io_handle::const_buffers_type</a></div><div class="ttdeci">span&lt; const_buffer_type &gt; const_buffers_type</div><div class="ttdoc">The gather buffers type used by this handle. Guaranteed to be TrivialType apart from construction...</div><div class="ttdef"><b>Definition:</b> io_handle.hpp:78</div></div>
+<div class="fragment"><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; {</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; const_buffer_type *_reqs = <span class="keyword">reinterpret_cast&lt;</span>const_buffer_type *<span class="keyword">&gt;</span>(alloca(<span class="keyword">sizeof</span>(const_buffer_type) * lst.size()));</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; memcpy(_reqs, lst.begin(), <span class="keyword">sizeof</span>(const_buffer_type) * lst.size());</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; io_request&lt;const_buffers_type&gt; reqs(<a class="code" href="classafio__v2__xxx_1_1io__handle.html#a639b8760b1b98df95e4956f6cc56f6b5">const_buffers_type</a>(_reqs, lst.size()), offset);</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classafio__v2__xxx_1_1io__handle.html#aefac4710e5617264347f437b04732c01">write</a>(reqs, d);</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; }</div><div class="ttc" id="classafio__v2__xxx_1_1io__handle_html_a639b8760b1b98df95e4956f6cc56f6b5"><div class="ttname"><a href="classafio__v2__xxx_1_1io__handle.html#a639b8760b1b98df95e4956f6cc56f6b5">afio_v2_xxx::io_handle::const_buffers_type</a></div><div class="ttdeci">span&lt; const_buffer_type &gt; const_buffers_type</div><div class="ttdoc">The gather buffers type used by this handle. Guaranteed to be TrivialType apart from construction...</div><div class="ttdef"><b>Definition:</b> io_handle.hpp:78</div></div>
<div class="ttc" id="classafio__v2__xxx_1_1io__handle_html_aefac4710e5617264347f437b04732c01"><div class="ttname"><a href="classafio__v2__xxx_1_1io__handle.html#aefac4710e5617264347f437b04732c01">afio_v2_xxx::io_handle::write</a></div><div class="ttdeci">virtual io_result&lt; const_buffers_type &gt; write(io_request&lt; const_buffers_type &gt; reqs, deadline d=deadline()) noexcept</div><div class="ttdoc">Write data to the open handle. </div></div>
</div><!-- fragment -->
</div>
diff --git a/classafio__v2__xxx_1_1async__file__handle.js b/classafio__v2__xxx_1_1async__file__handle.js
index 53372790..36073f3e 100644
--- a/classafio__v2__xxx_1_1async__file__handle.js
+++ b/classafio__v2__xxx_1_1async__file__handle.js
@@ -40,7 +40,9 @@ var classafio__v2__xxx_1_1async__file__handle =
[ "clone", "classafio__v2__xxx_1_1async__file__handle.html#a54790e954f57372b87b095451cc79c38", null ],
[ "close", "classafio__v2__xxx_1_1async__file__handle.html#a6e3ce8be6683ef91e076dbffdffcba3b", null ],
[ "co_read", "classafio__v2__xxx_1_1async__file__handle.html#abca08e496e10ac6ae890793888a5e3fe", null ],
+ [ "co_read", "classafio__v2__xxx_1_1async__file__handle.html#acf004a49616f731287c3f57b025a9aec", null ],
[ "co_write", "classafio__v2__xxx_1_1async__file__handle.html#a0cd3e4803cfe986815ed8c27a70db777", null ],
+ [ "co_write", "classafio__v2__xxx_1_1async__file__handle.html#a71951654fcca9a2f9a2e747e33579fcc", null ],
[ "current_path", "classafio__v2__xxx_1_1async__file__handle.html#a616a67222676af5ec5b3aa94d7c02428", null ],
[ "extents", "classafio__v2__xxx_1_1async__file__handle.html#a03d1774e3ad8678fb4aac4ced57beeef", null ],
[ "flags", "classafio__v2__xxx_1_1async__file__handle.html#ab3d876f5996605158fd6a0582adadad6", null ],
@@ -67,7 +69,7 @@ var classafio__v2__xxx_1_1async__file__handle =
[ "operator=", "classafio__v2__xxx_1_1async__file__handle.html#a155ccc6e3386f21bda7280fcbee35a44", null ],
[ "parent_path_handle", "classafio__v2__xxx_1_1async__file__handle.html#aaacc27a62ce0859506d7443f0d0e7adf", null ],
[ "read", "classafio__v2__xxx_1_1async__file__handle.html#a71d7636f40607829cacc2c974c4a2a28", null ],
- [ "read", "classafio__v2__xxx_1_1async__file__handle.html#a8af6c6dc1502d40f6aaccc83e49d5342", null ],
+ [ "read", "classafio__v2__xxx_1_1async__file__handle.html#a928a8ab64d5b7d68dc7e2b3e5849df24", null ],
[ "read", "classafio__v2__xxx_1_1async__file__handle.html#a26697f7ce532e54b954a47f48286b2cb", null ],
[ "release", "classafio__v2__xxx_1_1async__file__handle.html#a73d5f2070bce0c3d7fa536d3cbed7b52", null ],
[ "relink", "classafio__v2__xxx_1_1async__file__handle.html#a747962d0776c0fa9e79c9aa9b86da1c0", null ],
@@ -85,7 +87,7 @@ var classafio__v2__xxx_1_1async__file__handle =
[ "unlink", "classafio__v2__xxx_1_1async__file__handle.html#a6860b9626adc4d8e6db3ebb92974c054", null ],
[ "unlock", "classafio__v2__xxx_1_1async__file__handle.html#a96b9da71ee7791fbaaa2470c936ec763", null ],
[ "write", "classafio__v2__xxx_1_1async__file__handle.html#aefac4710e5617264347f437b04732c01", null ],
- [ "write", "classafio__v2__xxx_1_1async__file__handle.html#ab26a3c5a18cdcc67a506533dbe55e2b3", null ],
+ [ "write", "classafio__v2__xxx_1_1async__file__handle.html#add161546c0769941fce4fd9f06934e03", null ],
[ "write", "classafio__v2__xxx_1_1async__file__handle.html#a33c3ff8f024e321fc02dac92d1391457", null ],
[ "zero", "classafio__v2__xxx_1_1async__file__handle.html#a649aa39b0d4b60a05d4aab4be569dcb6", null ],
[ "io_service", "classafio__v2__xxx_1_1async__file__handle.html#ae9f4f5f9cc386f5188a9977145edbe6c", null ],
diff --git a/classafio__v2__xxx_1_1file__handle-members.html b/classafio__v2__xxx_1_1file__handle-members.html
index 54c0d119..be568eaa 100644
--- a/classafio__v2__xxx_1_1file__handle-members.html
+++ b/classafio__v2__xxx_1_1file__handle-members.html
@@ -169,7 +169,7 @@ $(document).ready(function(){initNavTree('classafio__v2__xxx_1_1file__handle.htm
<tr bgcolor="#f0f0f0"><td class="entry"><b>path_view_type</b> typedef (defined in <a class="el" href="classafio__v2__xxx_1_1file__handle.html">afio_v2_xxx::file_handle</a>)</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1file__handle.html">afio_v2_xxx::file_handle</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1file__handle.html#a7fdd164a8af6542c5fb80c514283c585">random_file</a>(const path_handle &amp;dirpath, mode _mode=mode::write, caching _caching=caching::temporary, flag flags=flag::none) noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1file__handle.html">afio_v2_xxx::file_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html#a71d7636f40607829cacc2c974c4a2a28">read</a>(io_request&lt; buffers_type &gt; reqs, deadline d=deadline()) noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html">afio_v2_xxx::io_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html#a8af6c6dc1502d40f6aaccc83e49d5342">read</a>(extent_type offset, char *data, size_type bytes, deadline d=deadline()) noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html">afio_v2_xxx::io_handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html#a928a8ab64d5b7d68dc7e2b3e5849df24">read</a>(extent_type offset, std::initializer_list&lt; buffer_type &gt; lst, deadline d=deadline()) noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html">afio_v2_xxx::io_handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html#a73d5f2070bce0c3d7fa536d3cbed7b52">release</a>() noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html">afio_v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1fs__handle.html#a747962d0776c0fa9e79c9aa9b86da1c0">relink</a>(const path_handle &amp;base, path_view_type path, bool atomic_replace=true, deadline d=std::chrono::seconds(30)) noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1fs__handle.html">afio_v2_xxx::fs_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
<tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html#affb10caeeca67b804695b7378be29e23">requires_aligned_io</a>() const noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html">afio_v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
@@ -189,7 +189,7 @@ $(document).ready(function(){initNavTree('classafio__v2__xxx_1_1file__handle.htm
<tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1fs__handle.html#a6860b9626adc4d8e6db3ebb92974c054">unlink</a>(deadline d=std::chrono::seconds(30)) noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1fs__handle.html">afio_v2_xxx::fs_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html#a96b9da71ee7791fbaaa2470c936ec763">unlock</a>(extent_type offset, extent_type bytes) noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html">afio_v2_xxx::io_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
<tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html#aefac4710e5617264347f437b04732c01">write</a>(io_request&lt; const_buffers_type &gt; reqs, deadline d=deadline()) noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html">afio_v2_xxx::io_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html#ab26a3c5a18cdcc67a506533dbe55e2b3">write</a>(extent_type offset, const char *data, size_type bytes, deadline d=deadline()) noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html">afio_v2_xxx::io_handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html#add161546c0769941fce4fd9f06934e03">write</a>(extent_type offset, std::initializer_list&lt; const_buffer_type &gt; lst, deadline d=deadline()) noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html">afio_v2_xxx::io_handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1file__handle.html#a649aa39b0d4b60a05d4aab4be569dcb6">zero</a>(extent_type offset, extent_type bytes, deadline d=deadline()) noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1file__handle.html">afio_v2_xxx::file_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>~file_handle</b>() override (defined in <a class="el" href="classafio__v2__xxx_1_1file__handle.html">afio_v2_xxx::file_handle</a>)</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1file__handle.html">afio_v2_xxx::file_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>~fs_handle</b>()=default (defined in <a class="el" href="classafio__v2__xxx_1_1fs__handle.html">afio_v2_xxx::fs_handle</a>)</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1fs__handle.html">afio_v2_xxx::fs_handle</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
diff --git a/classafio__v2__xxx_1_1file__handle.html b/classafio__v2__xxx_1_1file__handle.html
index 35e6faeb..96405f70 100644
--- a/classafio__v2__xxx_1_1file__handle.html
+++ b/classafio__v2__xxx_1_1file__handle.html
@@ -231,13 +231,13 @@ virtual result&lt; std::vector&lt; std::pair&lt; extent_type, extent_type &gt; &
<tr class="memitem:a71d7636f40607829cacc2c974c4a2a28"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__result.html">io_result</a>&lt; buffers_type &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1io__handle.html#a71d7636f40607829cacc2c974c4a2a28">read</a> (<a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__request.html">io_request</a>&lt; buffers_type &gt; reqs, <a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a> d=<a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a>()) noexcept</td></tr>
<tr class="memdesc:a71d7636f40607829cacc2c974c4a2a28"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read data from the open handle. <a href="#a71d7636f40607829cacc2c974c4a2a28">More...</a><br /></td></tr>
<tr class="separator:a71d7636f40607829cacc2c974c4a2a28"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a8af6c6dc1502d40f6aaccc83e49d5342"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__result.html">io_result</a>&lt; <a class="el" href="structafio__v2__xxx_1_1io__handle_1_1buffer__type.html">buffer_type</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1io__handle.html#a8af6c6dc1502d40f6aaccc83e49d5342">read</a> (extent_type offset, char *data, size_type bytes, <a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a> d=<a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a>()) noexcept</td></tr>
-<tr class="separator:a8af6c6dc1502d40f6aaccc83e49d5342"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a928a8ab64d5b7d68dc7e2b3e5849df24"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__result.html">io_result</a>&lt; buffers_type &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1io__handle.html#a928a8ab64d5b7d68dc7e2b3e5849df24">read</a> (extent_type offset, std::initializer_list&lt; <a class="el" href="structafio__v2__xxx_1_1io__handle_1_1buffer__type.html">buffer_type</a> &gt; lst, <a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a> d=<a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a>()) noexcept</td></tr>
+<tr class="separator:a928a8ab64d5b7d68dc7e2b3e5849df24"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aefac4710e5617264347f437b04732c01"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__result.html">io_result</a>&lt; const_buffers_type &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1io__handle.html#aefac4710e5617264347f437b04732c01">write</a> (<a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__request.html">io_request</a>&lt; const_buffers_type &gt; reqs, <a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a> d=<a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a>()) noexcept</td></tr>
<tr class="memdesc:aefac4710e5617264347f437b04732c01"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write data to the open handle. <a href="#aefac4710e5617264347f437b04732c01">More...</a><br /></td></tr>
<tr class="separator:aefac4710e5617264347f437b04732c01"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ab26a3c5a18cdcc67a506533dbe55e2b3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__result.html">io_result</a>&lt; <a class="el" href="structafio__v2__xxx_1_1io__handle_1_1const__buffer__type.html">const_buffer_type</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1io__handle.html#ab26a3c5a18cdcc67a506533dbe55e2b3">write</a> (extent_type offset, const char *data, size_type bytes, <a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a> d=<a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a>()) noexcept</td></tr>
-<tr class="separator:ab26a3c5a18cdcc67a506533dbe55e2b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:add161546c0769941fce4fd9f06934e03"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__result.html">io_result</a>&lt; const_buffers_type &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1io__handle.html#add161546c0769941fce4fd9f06934e03">write</a> (extent_type offset, std::initializer_list&lt; <a class="el" href="structafio__v2__xxx_1_1io__handle_1_1const__buffer__type.html">const_buffer_type</a> &gt; lst, <a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a> d=<a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a>()) noexcept</td></tr>
+<tr class="separator:add161546c0769941fce4fd9f06934e03"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a243156928e89b8988a1412f211b3b603"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__result.html">io_result</a>&lt; const_buffers_type &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1io__handle.html#a243156928e89b8988a1412f211b3b603">barrier</a> (<a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__request.html">io_request</a>&lt; const_buffers_type &gt; reqs=<a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__request.html">io_request</a>&lt; const_buffers_type &gt;(), bool wait_for_device=false, bool and_metadata=false, <a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a> d=<a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a>()) noexcept=0</td></tr>
<tr class="memdesc:a243156928e89b8988a1412f211b3b603"><td class="mdescLeft">&#160;</td><td class="mdescRight">Issue a write reordering barrier such that writes preceding the barrier will reach storage before writes after this barrier. <a href="#a243156928e89b8988a1412f211b3b603">More...</a><br /></td></tr>
<tr class="separator:a243156928e89b8988a1412f211b3b603"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -357,14 +357,14 @@ ino_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cla
<tr class="separator:a5a5244ab1a15053aefe93f2c253db5b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaacc27a62ce0859506d7443f0d0e7adf"><td class="memItemLeft" align="right" valign="top">virtual result&lt; <a class="el" href="classafio__v2__xxx_1_1path__handle.html">path_handle</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1fs__handle.html#aaacc27a62ce0859506d7443f0d0e7adf">parent_path_handle</a> (<a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a> d=std::chrono::seconds(30)) const noexcept</td></tr>
<tr class="separator:aaacc27a62ce0859506d7443f0d0e7adf"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a747962d0776c0fa9e79c9aa9b86da1c0"><td class="memItemLeft" align="right" valign="top">virtual result&lt; void &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1fs__handle.html#a747962d0776c0fa9e79c9aa9b86da1c0">relink</a> (const <a class="el" href="classafio__v2__xxx_1_1path__handle.html">path_handle</a> &amp;base, <a class="el" href="classafio__v2__xxx_1_1path__view.html">path_view_type</a> <a class="el" href="namespaceafio__v2__xxx.html#a7432c582b3af692a1f94be33aa73a00e">path</a>, bool atomic_replace=true, <a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a> d=std::chrono::seconds(30)) noexcept</td></tr>
+<tr class="memitem:a747962d0776c0fa9e79c9aa9b86da1c0"><td class="memItemLeft" align="right" valign="top">virtual result&lt; void &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1fs__handle.html#a747962d0776c0fa9e79c9aa9b86da1c0">relink</a> (const <a class="el" href="classafio__v2__xxx_1_1path__handle.html">path_handle</a> &amp;base, <a class="el" href="classafio__v2__xxx_1_1path__view.html">path_view_type</a> <a class="el" href="namespaceafio__v2__xxx.html#a7a98882ead35ebd6bd0700fdf571c44a">path</a>, bool atomic_replace=true, <a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a> d=std::chrono::seconds(30)) noexcept</td></tr>
<tr class="separator:a747962d0776c0fa9e79c9aa9b86da1c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6860b9626adc4d8e6db3ebb92974c054"><td class="memItemLeft" align="right" valign="top">virtual result&lt; void &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1fs__handle.html#a6860b9626adc4d8e6db3ebb92974c054">unlink</a> (<a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a> d=std::chrono::seconds(30)) noexcept</td></tr>
<tr class="separator:a6860b9626adc4d8e6db3ebb92974c054"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
-<tr class="memitem:accb36f2bfd98393dc868653798c02d34"><td class="memItemLeft" align="right" valign="top">static result&lt; <a class="el" href="classafio__v2__xxx_1_1file__handle.html">file_handle</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1file__handle.html#accb36f2bfd98393dc868653798c02d34">file</a> (const <a class="el" href="classafio__v2__xxx_1_1path__handle.html">path_handle</a> &amp;base, <a class="el" href="classafio__v2__xxx_1_1path__view.html">path_view_type</a> <a class="el" href="namespaceafio__v2__xxx.html#a7432c582b3af692a1f94be33aa73a00e">path</a>, <a class="el" href="classafio__v2__xxx_1_1handle.html#a0489b6c1e25cd2bad2ba1ec86e1aaf18">mode</a> _mode=<a class="el" href="classafio__v2__xxx_1_1handle.html#a0489b6c1e25cd2bad2ba1ec86e1aaf18aecae13117d6f0584c25a9da6c8f8415e">mode::read</a>, <a class="el" href="classafio__v2__xxx_1_1handle.html#a45ff5c1c5662623d99156870dfeee0a7">creation</a> _creation=creation::open_existing, <a class="el" href="classafio__v2__xxx_1_1handle.html#a6f7e37c73271968271c2342023f58c9e">caching</a> _caching=<a class="el" href="classafio__v2__xxx_1_1handle.html#a6f7e37c73271968271c2342023f58c9eaa181a603769c1f98ad927e7367c7aa51">caching::all</a>, flag <a class="el" href="classafio__v2__xxx_1_1handle.html#ab3d876f5996605158fd6a0582adadad6">flags</a>=flag::none) noexcept</td></tr>
+<tr class="memitem:accb36f2bfd98393dc868653798c02d34"><td class="memItemLeft" align="right" valign="top">static result&lt; <a class="el" href="classafio__v2__xxx_1_1file__handle.html">file_handle</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1file__handle.html#accb36f2bfd98393dc868653798c02d34">file</a> (const <a class="el" href="classafio__v2__xxx_1_1path__handle.html">path_handle</a> &amp;base, <a class="el" href="classafio__v2__xxx_1_1path__view.html">path_view_type</a> <a class="el" href="namespaceafio__v2__xxx.html#a7a98882ead35ebd6bd0700fdf571c44a">path</a>, <a class="el" href="classafio__v2__xxx_1_1handle.html#a0489b6c1e25cd2bad2ba1ec86e1aaf18">mode</a> _mode=<a class="el" href="classafio__v2__xxx_1_1handle.html#a0489b6c1e25cd2bad2ba1ec86e1aaf18aecae13117d6f0584c25a9da6c8f8415e">mode::read</a>, <a class="el" href="classafio__v2__xxx_1_1handle.html#a45ff5c1c5662623d99156870dfeee0a7">creation</a> _creation=creation::open_existing, <a class="el" href="classafio__v2__xxx_1_1handle.html#a6f7e37c73271968271c2342023f58c9e">caching</a> _caching=<a class="el" href="classafio__v2__xxx_1_1handle.html#a6f7e37c73271968271c2342023f58c9eaa181a603769c1f98ad927e7367c7aa51">caching::all</a>, flag <a class="el" href="classafio__v2__xxx_1_1handle.html#ab3d876f5996605158fd6a0582adadad6">flags</a>=flag::none) noexcept</td></tr>
<tr class="separator:accb36f2bfd98393dc868653798c02d34"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7fdd164a8af6542c5fb80c514283c585"><td class="memItemLeft" align="right" valign="top">static result&lt; <a class="el" href="classafio__v2__xxx_1_1file__handle.html">file_handle</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1file__handle.html#a7fdd164a8af6542c5fb80c514283c585">random_file</a> (const <a class="el" href="classafio__v2__xxx_1_1path__handle.html">path_handle</a> &amp;dirpath, <a class="el" href="classafio__v2__xxx_1_1handle.html#a0489b6c1e25cd2bad2ba1ec86e1aaf18">mode</a> _mode=<a class="el" href="classafio__v2__xxx_1_1handle.html#a0489b6c1e25cd2bad2ba1ec86e1aaf18aefb2a684e4afb7d55e6147fbe5a332ee">mode::write</a>, <a class="el" href="classafio__v2__xxx_1_1handle.html#a6f7e37c73271968271c2342023f58c9e">caching</a> _caching=<a class="el" href="classafio__v2__xxx_1_1handle.html#a6f7e37c73271968271c2342023f58c9ead5197d93c063a2b1e22d1630a39b7aef">caching::temporary</a>, flag <a class="el" href="classafio__v2__xxx_1_1handle.html#ab3d876f5996605158fd6a0582adadad6">flags</a>=flag::none) noexcept</td></tr>
<tr class="separator:a7fdd164a8af6542c5fb80c514283c585"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -471,7 +471,7 @@ For portability, you can only assume that barriers write order for a single hand
<table class="params">
<tr><td class="paramname">reqs</td><td>A scatter-gather and offset request for what range to barrier. May be ignored on some platforms which always write barrier the entire file. Supplying a default initialised reqs write barriers the entire file. </td></tr>
<tr><td class="paramname">wait_for_device</td><td>True if you want the call to wait until data reaches storage and that storage has acknowledged the data is physically written. Slow. </td></tr>
- <tr><td class="paramname">and_metadata</td><td>True if you want the call to sync the metadata for retrieving the writes before the barrier after a sudden power loss event. Slow. </td></tr>
+ <tr><td class="paramname">and_metadata</td><td>True if you want the call to sync the metadata for retrieving the writes before the barrier after a sudden power loss event. Slow. Setting this to false enables much faster performance, especially on non-volatile memory. </td></tr>
<tr><td class="paramname">d</td><td>An optional deadline by which the i/o must complete, else it is cancelled. Note function may return significantly after this deadline if the i/o takes long to cancel. </td></tr>
</table>
</dd>
@@ -790,7 +790,7 @@ For portability, you can only assume that barriers write order for a single hand
</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="l00411"></a><span class="lineno"> 411</span>&#160; {</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; <span class="keywordtype">size_t</span> bytes = 0;</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> &amp;i : reqs.buffers)</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; {</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; <span class="keywordflow">if</span>(bytes + i.len &lt; bytes)</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; {</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; <span class="keywordflow">return</span> std::errc::value_too_large;</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; }</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; bytes += i.len;</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; }</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classafio__v2__xxx_1_1io__handle.html#a88689b15e6e8b6ce1f945737dee4369e">lock</a>(reqs.offset, bytes, <span class="keyword">false</span>, d);</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; }</div><div class="ttc" id="classafio__v2__xxx_1_1io__handle_html_a88689b15e6e8b6ce1f945737dee4369e"><div class="ttname"><a href="classafio__v2__xxx_1_1io__handle.html#a88689b15e6e8b6ce1f945737dee4369e">afio_v2_xxx::io_handle::lock</a></div><div class="ttdeci">virtual result&lt; extent_guard &gt; lock(extent_type offset, extent_type bytes, bool exclusive=true, deadline d=deadline()) noexcept</div><div class="ttdoc">Tries to lock the range of bytes specified for shared or exclusive access. Be aware this passes throu...</div></div>
+<div class="fragment"><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; {</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; <span class="keywordtype">size_t</span> bytes = 0;</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> &amp;i : reqs.buffers)</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; {</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; <span class="keywordflow">if</span>(bytes + i.len &lt; bytes)</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; {</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; <span class="keywordflow">return</span> std::errc::value_too_large;</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; }</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; bytes += i.len;</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; }</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classafio__v2__xxx_1_1io__handle.html#a88689b15e6e8b6ce1f945737dee4369e">lock</a>(reqs.offset, bytes, <span class="keyword">false</span>, d);</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; }</div><div class="ttc" id="classafio__v2__xxx_1_1io__handle_html_a88689b15e6e8b6ce1f945737dee4369e"><div class="ttname"><a href="classafio__v2__xxx_1_1io__handle.html#a88689b15e6e8b6ce1f945737dee4369e">afio_v2_xxx::io_handle::lock</a></div><div class="ttdeci">virtual result&lt; extent_guard &gt; lock(extent_type offset, extent_type bytes, bool exclusive=true, deadline d=deadline()) noexcept</div><div class="ttdoc">Tries to lock the range of bytes specified for shared or exclusive access. Be aware this passes throu...</div></div>
</div><!-- fragment -->
</div>
</div>
@@ -828,7 +828,7 @@ For portability, you can only assume that barriers write order for a single hand
</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="l00425"></a><span class="lineno"> 425</span>&#160; {</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; <span class="keywordtype">size_t</span> bytes = 0;</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> &amp;i : reqs.buffers)</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; {</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; <span class="keywordflow">if</span>(bytes + i.len &lt; bytes)</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; {</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; <span class="keywordflow">return</span> std::errc::value_too_large;</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; }</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; bytes += i.len;</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; }</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classafio__v2__xxx_1_1io__handle.html#a88689b15e6e8b6ce1f945737dee4369e">lock</a>(reqs.offset, bytes, <span class="keyword">true</span>, d);</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; }</div><div class="ttc" id="classafio__v2__xxx_1_1io__handle_html_a88689b15e6e8b6ce1f945737dee4369e"><div class="ttname"><a href="classafio__v2__xxx_1_1io__handle.html#a88689b15e6e8b6ce1f945737dee4369e">afio_v2_xxx::io_handle::lock</a></div><div class="ttdeci">virtual result&lt; extent_guard &gt; lock(extent_type offset, extent_type bytes, bool exclusive=true, deadline d=deadline()) noexcept</div><div class="ttdoc">Tries to lock the range of bytes specified for shared or exclusive access. Be aware this passes throu...</div></div>
+<div class="fragment"><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; {</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; <span class="keywordtype">size_t</span> bytes = 0;</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> &amp;i : reqs.buffers)</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; {</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; <span class="keywordflow">if</span>(bytes + i.len &lt; bytes)</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; {</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; <span class="keywordflow">return</span> std::errc::value_too_large;</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; }</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; bytes += i.len;</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; }</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classafio__v2__xxx_1_1io__handle.html#a88689b15e6e8b6ce1f945737dee4369e">lock</a>(reqs.offset, bytes, <span class="keyword">true</span>, d);</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; }</div><div class="ttc" id="classafio__v2__xxx_1_1io__handle_html_a88689b15e6e8b6ce1f945737dee4369e"><div class="ttname"><a href="classafio__v2__xxx_1_1io__handle.html#a88689b15e6e8b6ce1f945737dee4369e">afio_v2_xxx::io_handle::lock</a></div><div class="ttdeci">virtual result&lt; extent_guard &gt; lock(extent_type offset, extent_type bytes, bool exclusive=true, deadline d=deadline()) noexcept</div><div class="ttdoc">Tries to lock the range of bytes specified for shared or exclusive access. Be aware this passes throu...</div></div>
</div><!-- fragment -->
</div>
</div>
@@ -858,7 +858,7 @@ For portability, you can only assume that barriers write order for a single hand
<p>The <em>maximum</em> number of buffers which a single read or write syscall can process at a time for this specific open handle. On POSIX, this is known as <code>IOV_MAX</code>. </p>
<p>Note that the actual number of buffers accepted for a read or a write may be significantly lower than this system-defined limit, depending on available resources. The <code>read()</code> or <code>write()</code> call will return the buffers accepted.</p>
<p>Note also that some OSs will error out if you supply more than this limit to <code>read()</code> or <code>write()</code>, but other OSs do not. Some OSs guarantee that each i/o syscall has effects atomically visible or not to other i/o, other OSs do not.</p>
-<p>Microsoft Windows does not implement scatter-gather file i/o syscalls except for unbuffered i/o. Thus this function will always return <code>1</code> in that situation. </p>
+<p>Microsoft Windows and OS X does not implement scatter-gather file i/o syscalls. Thus this function will always return <code>1</code> in that situation. </p>
</div>
</div>
@@ -994,8 +994,8 @@ For portability, you can only assume that barriers write order for a single hand
</div>
</div>
-<a id="a8af6c6dc1502d40f6aaccc83e49d5342"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a8af6c6dc1502d40f6aaccc83e49d5342">&#9670;&nbsp;</a></span>read() <span class="overload">[2/2]</span></h2>
+<a id="a928a8ab64d5b7d68dc7e2b3e5849df24"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a928a8ab64d5b7d68dc7e2b3e5849df24">&#9670;&nbsp;</a></span>read() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
@@ -1004,7 +1004,7 @@ For portability, you can only assume that barriers write order for a single hand
<td class="mlabels-left">
<table class="memname">
<tr>
- <td class="memname"><a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__result.html">io_result</a>&lt;<a class="el" href="structafio__v2__xxx_1_1io__handle_1_1buffer__type.html">buffer_type</a>&gt; afio_v2_xxx::io_handle::read </td>
+ <td class="memname"><a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__result.html">io_result</a>&lt;buffers_type&gt; afio_v2_xxx::io_handle::read </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classafio__v2__xxx_1_1handle.html#a818fff07c92eaab72532092d1c2a14f9">extent_type</a>&#160;</td>
<td class="paramname"><em>offset</em>, </td>
@@ -1012,14 +1012,8 @@ For portability, you can only assume that barriers write order for a single hand
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">char *&#160;</td>
- <td class="paramname"><em>data</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="classafio__v2__xxx_1_1handle.html#a0adf7fa00e23ed561328f473986e9ccc">size_type</a>&#160;</td>
- <td class="paramname"><em>bytes</em>, </td>
+ <td class="paramtype">std::initializer_list&lt; <a class="el" href="structafio__v2__xxx_1_1io__handle_1_1buffer__type.html">buffer_type</a> &gt;&#160;</td>
+ <td class="paramname"><em>lst</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
@@ -1040,7 +1034,7 @@ For portability, you can only assume that barriers write order for a single hand
</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="l00225"></a><span class="lineno"> 225</span>&#160; {</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; buffer_type _reqs[1] = {{data, bytes}};</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; io_request&lt;buffers_type&gt; reqs(<a class="code" href="classafio__v2__xxx_1_1io__handle.html#a70a3c5e6f62efc95db81f831f3b90a2c">buffers_type</a>(_reqs), offset);</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; OUTCOME_TRY(v, <a class="code" href="classafio__v2__xxx_1_1io__handle.html#a71d7636f40607829cacc2c974c4a2a28">read</a>(reqs, d));</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="keywordflow">return</span> *v.data();</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; }</div><div class="ttc" id="classafio__v2__xxx_1_1io__handle_html_a70a3c5e6f62efc95db81f831f3b90a2c"><div class="ttname"><a href="classafio__v2__xxx_1_1io__handle.html#a70a3c5e6f62efc95db81f831f3b90a2c">afio_v2_xxx::io_handle::buffers_type</a></div><div class="ttdeci">span&lt; buffer_type &gt; buffers_type</div><div class="ttdoc">The scatter buffers type used by this handle. Guaranteed to be TrivialType apart from construction...</div><div class="ttdef"><b>Definition:</b> io_handle.hpp:76</div></div>
+<div class="fragment"><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; {</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; buffer_type *_reqs = <span class="keyword">reinterpret_cast&lt;</span>buffer_type *<span class="keyword">&gt;</span>(alloca(<span class="keyword">sizeof</span>(buffer_type) * lst.size()));</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; memcpy(_reqs, lst.begin(), <span class="keyword">sizeof</span>(buffer_type) * lst.size());</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; io_request&lt;buffers_type&gt; reqs(<a class="code" href="classafio__v2__xxx_1_1io__handle.html#a70a3c5e6f62efc95db81f831f3b90a2c">buffers_type</a>(_reqs, lst.size()), offset);</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classafio__v2__xxx_1_1io__handle.html#a71d7636f40607829cacc2c974c4a2a28">read</a>(reqs, d);</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; }</div><div class="ttc" id="classafio__v2__xxx_1_1io__handle_html_a70a3c5e6f62efc95db81f831f3b90a2c"><div class="ttname"><a href="classafio__v2__xxx_1_1io__handle.html#a70a3c5e6f62efc95db81f831f3b90a2c">afio_v2_xxx::io_handle::buffers_type</a></div><div class="ttdeci">span&lt; buffer_type &gt; buffers_type</div><div class="ttdoc">The scatter buffers type used by this handle. Guaranteed to be TrivialType apart from construction...</div><div class="ttdef"><b>Definition:</b> io_handle.hpp:76</div></div>
<div class="ttc" id="classafio__v2__xxx_1_1io__handle_html_a71d7636f40607829cacc2c974c4a2a28"><div class="ttname"><a href="classafio__v2__xxx_1_1io__handle.html#a71d7636f40607829cacc2c974c4a2a28">afio_v2_xxx::io_handle::read</a></div><div class="ttdeci">virtual io_result&lt; buffers_type &gt; read(io_request&lt; buffers_type &gt; reqs, deadline d=deadline()) noexcept</div><div class="ttdoc">Read data from the open handle. </div></div>
</div><!-- fragment -->
</div>
@@ -1317,7 +1311,7 @@ For portability, you can only assume that barriers write order for a single hand
</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="l00408"></a><span class="lineno"> 408</span>&#160;{ <span class="keywordflow">return</span> <a class="code" href="classafio__v2__xxx_1_1io__handle.html#a88689b15e6e8b6ce1f945737dee4369e">lock</a>(offset, bytes, exclusive, deadline(std::chrono::seconds(0))); }</div><div class="ttc" id="classafio__v2__xxx_1_1io__handle_html_a88689b15e6e8b6ce1f945737dee4369e"><div class="ttname"><a href="classafio__v2__xxx_1_1io__handle.html#a88689b15e6e8b6ce1f945737dee4369e">afio_v2_xxx::io_handle::lock</a></div><div class="ttdeci">virtual result&lt; extent_guard &gt; lock(extent_type offset, extent_type bytes, bool exclusive=true, deadline d=deadline()) noexcept</div><div class="ttdoc">Tries to lock the range of bytes specified for shared or exclusive access. Be aware this passes throu...</div></div>
+<div class="fragment"><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160;{ <span class="keywordflow">return</span> <a class="code" href="classafio__v2__xxx_1_1io__handle.html#a88689b15e6e8b6ce1f945737dee4369e">lock</a>(offset, bytes, exclusive, deadline(std::chrono::seconds(0))); }</div><div class="ttc" id="classafio__v2__xxx_1_1io__handle_html_a88689b15e6e8b6ce1f945737dee4369e"><div class="ttname"><a href="classafio__v2__xxx_1_1io__handle.html#a88689b15e6e8b6ce1f945737dee4369e">afio_v2_xxx::io_handle::lock</a></div><div class="ttdeci">virtual result&lt; extent_guard &gt; lock(extent_type offset, extent_type bytes, bool exclusive=true, deadline d=deadline()) noexcept</div><div class="ttdoc">Tries to lock the range of bytes specified for shared or exclusive access. Be aware this passes throu...</div></div>
</div><!-- fragment -->
</div>
</div>
@@ -1452,8 +1446,8 @@ For portability, you can only assume that barriers write order for a single hand
</div>
</div>
-<a id="ab26a3c5a18cdcc67a506533dbe55e2b3"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ab26a3c5a18cdcc67a506533dbe55e2b3">&#9670;&nbsp;</a></span>write() <span class="overload">[2/2]</span></h2>
+<a id="add161546c0769941fce4fd9f06934e03"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#add161546c0769941fce4fd9f06934e03">&#9670;&nbsp;</a></span>write() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
@@ -1462,7 +1456,7 @@ For portability, you can only assume that barriers write order for a single hand
<td class="mlabels-left">
<table class="memname">
<tr>
- <td class="memname"><a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__result.html">io_result</a>&lt;<a class="el" href="structafio__v2__xxx_1_1io__handle_1_1const__buffer__type.html">const_buffer_type</a>&gt; afio_v2_xxx::io_handle::write </td>
+ <td class="memname"><a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__result.html">io_result</a>&lt;const_buffers_type&gt; afio_v2_xxx::io_handle::write </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classafio__v2__xxx_1_1handle.html#a818fff07c92eaab72532092d1c2a14f9">extent_type</a>&#160;</td>
<td class="paramname"><em>offset</em>, </td>
@@ -1470,14 +1464,8 @@ For portability, you can only assume that barriers write order for a single hand
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">const char *&#160;</td>
- <td class="paramname"><em>data</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="classafio__v2__xxx_1_1handle.html#a0adf7fa00e23ed561328f473986e9ccc">size_type</a>&#160;</td>
- <td class="paramname"><em>bytes</em>, </td>
+ <td class="paramtype">std::initializer_list&lt; <a class="el" href="structafio__v2__xxx_1_1io__handle_1_1const__buffer__type.html">const_buffer_type</a> &gt;&#160;</td>
+ <td class="paramname"><em>lst</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
@@ -1498,7 +1486,7 @@ For portability, you can only assume that barriers write order for a single hand
</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="l00257"></a><span class="lineno"> 257</span>&#160; {</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; const_buffer_type _reqs[1] = {{data, bytes}};</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; io_request&lt;const_buffers_type&gt; reqs(<a class="code" href="classafio__v2__xxx_1_1io__handle.html#a639b8760b1b98df95e4956f6cc56f6b5">const_buffers_type</a>(_reqs), offset);</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; OUTCOME_TRY(v, <a class="code" href="classafio__v2__xxx_1_1io__handle.html#aefac4710e5617264347f437b04732c01">write</a>(reqs, d));</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <span class="keywordflow">return</span> *v.data();</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; }</div><div class="ttc" id="classafio__v2__xxx_1_1io__handle_html_a639b8760b1b98df95e4956f6cc56f6b5"><div class="ttname"><a href="classafio__v2__xxx_1_1io__handle.html#a639b8760b1b98df95e4956f6cc56f6b5">afio_v2_xxx::io_handle::const_buffers_type</a></div><div class="ttdeci">span&lt; const_buffer_type &gt; const_buffers_type</div><div class="ttdoc">The gather buffers type used by this handle. Guaranteed to be TrivialType apart from construction...</div><div class="ttdef"><b>Definition:</b> io_handle.hpp:78</div></div>
+<div class="fragment"><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; {</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; const_buffer_type *_reqs = <span class="keyword">reinterpret_cast&lt;</span>const_buffer_type *<span class="keyword">&gt;</span>(alloca(<span class="keyword">sizeof</span>(const_buffer_type) * lst.size()));</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; memcpy(_reqs, lst.begin(), <span class="keyword">sizeof</span>(const_buffer_type) * lst.size());</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; io_request&lt;const_buffers_type&gt; reqs(<a class="code" href="classafio__v2__xxx_1_1io__handle.html#a639b8760b1b98df95e4956f6cc56f6b5">const_buffers_type</a>(_reqs, lst.size()), offset);</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classafio__v2__xxx_1_1io__handle.html#aefac4710e5617264347f437b04732c01">write</a>(reqs, d);</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; }</div><div class="ttc" id="classafio__v2__xxx_1_1io__handle_html_a639b8760b1b98df95e4956f6cc56f6b5"><div class="ttname"><a href="classafio__v2__xxx_1_1io__handle.html#a639b8760b1b98df95e4956f6cc56f6b5">afio_v2_xxx::io_handle::const_buffers_type</a></div><div class="ttdeci">span&lt; const_buffer_type &gt; const_buffers_type</div><div class="ttdoc">The gather buffers type used by this handle. Guaranteed to be TrivialType apart from construction...</div><div class="ttdef"><b>Definition:</b> io_handle.hpp:78</div></div>
<div class="ttc" id="classafio__v2__xxx_1_1io__handle_html_aefac4710e5617264347f437b04732c01"><div class="ttname"><a href="classafio__v2__xxx_1_1io__handle.html#aefac4710e5617264347f437b04732c01">afio_v2_xxx::io_handle::write</a></div><div class="ttdeci">virtual io_result&lt; const_buffers_type &gt; write(io_request&lt; const_buffers_type &gt; reqs, deadline d=deadline()) noexcept</div><div class="ttdoc">Write data to the open handle. </div></div>
</div><!-- fragment -->
</div>
diff --git a/classafio__v2__xxx_1_1file__handle.js b/classafio__v2__xxx_1_1file__handle.js
index 2371654d..b41d680a 100644
--- a/classafio__v2__xxx_1_1file__handle.js
+++ b/classafio__v2__xxx_1_1file__handle.js
@@ -58,7 +58,7 @@ var classafio__v2__xxx_1_1file__handle =
[ "operator=", "classafio__v2__xxx_1_1file__handle.html#a03d04933669de227c1ee5af9d75175ce", null ],
[ "parent_path_handle", "classafio__v2__xxx_1_1file__handle.html#aaacc27a62ce0859506d7443f0d0e7adf", null ],
[ "read", "classafio__v2__xxx_1_1file__handle.html#a71d7636f40607829cacc2c974c4a2a28", null ],
- [ "read", "classafio__v2__xxx_1_1file__handle.html#a8af6c6dc1502d40f6aaccc83e49d5342", null ],
+ [ "read", "classafio__v2__xxx_1_1file__handle.html#a928a8ab64d5b7d68dc7e2b3e5849df24", null ],
[ "release", "classafio__v2__xxx_1_1file__handle.html#a73d5f2070bce0c3d7fa536d3cbed7b52", null ],
[ "relink", "classafio__v2__xxx_1_1file__handle.html#a747962d0776c0fa9e79c9aa9b86da1c0", null ],
[ "requires_aligned_io", "classafio__v2__xxx_1_1file__handle.html#affb10caeeca67b804695b7378be29e23", null ],
@@ -74,7 +74,7 @@ var classafio__v2__xxx_1_1file__handle =
[ "unlink", "classafio__v2__xxx_1_1file__handle.html#a6860b9626adc4d8e6db3ebb92974c054", null ],
[ "unlock", "classafio__v2__xxx_1_1file__handle.html#a96b9da71ee7791fbaaa2470c936ec763", null ],
[ "write", "classafio__v2__xxx_1_1file__handle.html#aefac4710e5617264347f437b04732c01", null ],
- [ "write", "classafio__v2__xxx_1_1file__handle.html#ab26a3c5a18cdcc67a506533dbe55e2b3", null ],
+ [ "write", "classafio__v2__xxx_1_1file__handle.html#add161546c0769941fce4fd9f06934e03", null ],
[ "zero", "classafio__v2__xxx_1_1file__handle.html#a649aa39b0d4b60a05d4aab4be569dcb6", null ],
[ "_caching", "classafio__v2__xxx_1_1file__handle.html#af024e3d92d9a01ac367734e9cdc517fb", null ],
[ "_devid", "classafio__v2__xxx_1_1file__handle.html#a03d2084c14493ccb95b19503df109bba", null ],
diff --git a/classafio__v2__xxx_1_1fs__handle.html b/classafio__v2__xxx_1_1fs__handle.html
index 108d8b66..adf9ac1c 100644
--- a/classafio__v2__xxx_1_1fs__handle.html
+++ b/classafio__v2__xxx_1_1fs__handle.html
@@ -149,7 +149,7 @@ ino_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cla
<tr class="separator:a5a5244ab1a15053aefe93f2c253db5b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaacc27a62ce0859506d7443f0d0e7adf"><td class="memItemLeft" align="right" valign="top">virtual result&lt; <a class="el" href="classafio__v2__xxx_1_1path__handle.html">path_handle</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1fs__handle.html#aaacc27a62ce0859506d7443f0d0e7adf">parent_path_handle</a> (<a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a> d=std::chrono::seconds(30)) const noexcept</td></tr>
<tr class="separator:aaacc27a62ce0859506d7443f0d0e7adf"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a747962d0776c0fa9e79c9aa9b86da1c0"><td class="memItemLeft" align="right" valign="top">virtual result&lt; void &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1fs__handle.html#a747962d0776c0fa9e79c9aa9b86da1c0">relink</a> (const <a class="el" href="classafio__v2__xxx_1_1path__handle.html">path_handle</a> &amp;base, <a class="el" href="classafio__v2__xxx_1_1fs__handle.html#ac25247b15af82faf1db557b3e45e13d7">path_view_type</a> <a class="el" href="namespaceafio__v2__xxx.html#a7432c582b3af692a1f94be33aa73a00e">path</a>, bool atomic_replace=true, <a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a> d=std::chrono::seconds(30)) noexcept</td></tr>
+<tr class="memitem:a747962d0776c0fa9e79c9aa9b86da1c0"><td class="memItemLeft" align="right" valign="top">virtual result&lt; void &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1fs__handle.html#a747962d0776c0fa9e79c9aa9b86da1c0">relink</a> (const <a class="el" href="classafio__v2__xxx_1_1path__handle.html">path_handle</a> &amp;base, <a class="el" href="classafio__v2__xxx_1_1fs__handle.html#ac25247b15af82faf1db557b3e45e13d7">path_view_type</a> <a class="el" href="namespaceafio__v2__xxx.html#a7a98882ead35ebd6bd0700fdf571c44a">path</a>, bool atomic_replace=true, <a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a> d=std::chrono::seconds(30)) noexcept</td></tr>
<tr class="separator:a747962d0776c0fa9e79c9aa9b86da1c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6860b9626adc4d8e6db3ebb92974c054"><td class="memItemLeft" align="right" valign="top">virtual result&lt; void &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1fs__handle.html#a6860b9626adc4d8e6db3ebb92974c054">unlink</a> (<a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a> d=std::chrono::seconds(30)) noexcept</td></tr>
<tr class="separator:a6860b9626adc4d8e6db3ebb92974c054"><td class="memSeparator" colspan="2">&#160;</td></tr>
diff --git a/classafio__v2__xxx_1_1handle.html b/classafio__v2__xxx_1_1handle.html
index b6d52c40..074bd167 100644
--- a/classafio__v2__xxx_1_1handle.html
+++ b/classafio__v2__xxx_1_1handle.html
@@ -106,7 +106,7 @@ Inheritance diagram for afio_v2_xxx::handle:</div>
<area href="classafio__v2__xxx_1_1path__handle.html" title="A handle to somewhere originally identified by a path on the filing system. Typically used as the lig..." alt="afio_v2_xxx::path_handle" shape="rect" coords="520,56,718,80"/>
<area href="classafio__v2__xxx_1_1section__handle.html" title="A handle to a source of mapped memory. " alt="afio_v2_xxx::section_handle" shape="rect" coords="728,56,926,80"/>
<area href="classafio__v2__xxx_1_1file__handle.html" title="A handle to a regular file or device, kept data layout compatible with async_file_handle. " alt="afio_v2_xxx::file_handle" shape="rect" coords="104,112,302,136"/>
-<area href="classafio__v2__xxx_1_1map__handle.html" title="A handle to a memory mapped region of memory. " alt="afio_v2_xxx::map_handle" shape="rect" coords="312,112,510,136"/>
+<area href="classafio__v2__xxx_1_1map__handle.html" title="A handle to a memory mapped region of memory, either backed by the system page file or by a section..." alt="afio_v2_xxx::map_handle" shape="rect" coords="312,112,510,136"/>
<area href="classafio__v2__xxx_1_1directory__handle.html" title="A handle to a directory which can be enumerated. " alt="afio_v2_xxx::directory_handle" shape="rect" coords="520,112,718,136"/>
<area href="classafio__v2__xxx_1_1async__file__handle.html" title="An asynchronous handle to an open something. " alt="afio_v2_xxx::async_file_handle" shape="rect" coords="0,168,198,192"/>
<area href="classafio__v2__xxx_1_1mapped__file__handle.html" title="A memory mapped regular file or device. " alt="afio_v2_xxx::mapped_file_handle" shape="rect" coords="208,168,406,192"/>
@@ -381,7 +381,7 @@ std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operato
<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>
@@ -420,8 +420,8 @@ std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operato
<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>
diff --git a/classafio__v2__xxx_1_1io__handle-members.html b/classafio__v2__xxx_1_1io__handle-members.html
index a52d084b..961249df 100644
--- a/classafio__v2__xxx_1_1io__handle-members.html
+++ b/classafio__v2__xxx_1_1io__handle-members.html
@@ -138,7 +138,7 @@ $(document).ready(function(){initNavTree('classafio__v2__xxx_1_1io__handle.html'
<tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html#a2a51598c2a0935d77313a772fd2f1d00">afio_v2_xxx::handle::operator=</a>(handle &amp;&amp;o) noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html">afio_v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>path_type</b> typedef (defined in <a class="el" href="classafio__v2__xxx_1_1io__handle.html">afio_v2_xxx::io_handle</a>)</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html">afio_v2_xxx::io_handle</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html#a71d7636f40607829cacc2c974c4a2a28">read</a>(io_request&lt; buffers_type &gt; reqs, deadline d=deadline()) noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html">afio_v2_xxx::io_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
- <tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html#a8af6c6dc1502d40f6aaccc83e49d5342">read</a>(extent_type offset, char *data, size_type bytes, deadline d=deadline()) noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html">afio_v2_xxx::io_handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html#a928a8ab64d5b7d68dc7e2b3e5849df24">read</a>(extent_type offset, std::initializer_list&lt; buffer_type &gt; lst, deadline d=deadline()) noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html">afio_v2_xxx::io_handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html#a73d5f2070bce0c3d7fa536d3cbed7b52">release</a>() noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html">afio_v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
<tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html#affb10caeeca67b804695b7378be29e23">requires_aligned_io</a>() const noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html">afio_v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html#af1610ec7fb0a41f039e3e17e0dc467ab">set_append_only</a>(bool enable) noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html">afio_v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
@@ -147,7 +147,7 @@ $(document).ready(function(){initNavTree('classafio__v2__xxx_1_1io__handle.html'
<tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html#a0a1c4773b9fa7bbd04fee0756075d319">try_lock</a>(extent_type offset, extent_type bytes, bool exclusive=true) noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html">afio_v2_xxx::io_handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html#a96b9da71ee7791fbaaa2470c936ec763">unlock</a>(extent_type offset, extent_type bytes) noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html">afio_v2_xxx::io_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
<tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html#aefac4710e5617264347f437b04732c01">write</a>(io_request&lt; const_buffers_type &gt; reqs, deadline d=deadline()) noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html">afio_v2_xxx::io_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html#ab26a3c5a18cdcc67a506533dbe55e2b3">write</a>(extent_type offset, const char *data, size_type bytes, deadline d=deadline()) noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html">afio_v2_xxx::io_handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html#add161546c0769941fce4fd9f06934e03">write</a>(extent_type offset, std::initializer_list&lt; const_buffer_type &gt; lst, deadline d=deadline()) noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html">afio_v2_xxx::io_handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>~handle</b>() (defined in <a class="el" href="classafio__v2__xxx_1_1handle.html">afio_v2_xxx::handle</a>)</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html">afio_v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>~io_handle</b>()=default (defined in <a class="el" href="classafio__v2__xxx_1_1io__handle.html">afio_v2_xxx::io_handle</a>)</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html">afio_v2_xxx::io_handle</a></td><td class="entry"></td></tr>
</table></div><!-- contents -->
diff --git a/classafio__v2__xxx_1_1io__handle.html b/classafio__v2__xxx_1_1io__handle.html
index b3bee933..05168a7e 100644
--- a/classafio__v2__xxx_1_1io__handle.html
+++ b/classafio__v2__xxx_1_1io__handle.html
@@ -103,7 +103,7 @@ Inheritance diagram for afio_v2_xxx::io_handle:</div>
<map id="afio_5Fv2_5Fxxx::io_5Fhandle_map" name="afio_5Fv2_5Fxxx::io_5Fhandle_map">
<area href="classafio__v2__xxx_1_1handle.html" title="A native_handle_type which is managed by the lifetime of this object instance. " alt="afio_v2_xxx::handle" shape="rect" coords="208,0,406,24"/>
<area href="classafio__v2__xxx_1_1file__handle.html" title="A handle to a regular file or device, kept data layout compatible with async_file_handle. " alt="afio_v2_xxx::file_handle" shape="rect" coords="104,112,302,136"/>
-<area href="classafio__v2__xxx_1_1map__handle.html" title="A handle to a memory mapped region of memory. " alt="afio_v2_xxx::map_handle" shape="rect" coords="312,112,510,136"/>
+<area href="classafio__v2__xxx_1_1map__handle.html" title="A handle to a memory mapped region of memory, either backed by the system page file or by a section..." alt="afio_v2_xxx::map_handle" shape="rect" coords="312,112,510,136"/>
<area href="classafio__v2__xxx_1_1async__file__handle.html" title="An asynchronous handle to an open something. " alt="afio_v2_xxx::async_file_handle" shape="rect" coords="0,168,198,192"/>
<area href="classafio__v2__xxx_1_1mapped__file__handle.html" title="A memory mapped regular file or device. " alt="afio_v2_xxx::mapped_file_handle" shape="rect" coords="208,168,406,192"/>
</map>
@@ -194,13 +194,13 @@ constexpr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href=
<tr class="memitem:a71d7636f40607829cacc2c974c4a2a28"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__result.html">io_result</a>&lt; <a class="el" href="classafio__v2__xxx_1_1io__handle.html#a70a3c5e6f62efc95db81f831f3b90a2c">buffers_type</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1io__handle.html#a71d7636f40607829cacc2c974c4a2a28">read</a> (<a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__request.html">io_request</a>&lt; <a class="el" href="classafio__v2__xxx_1_1io__handle.html#a70a3c5e6f62efc95db81f831f3b90a2c">buffers_type</a> &gt; reqs, <a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a> d=<a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a>()) noexcept</td></tr>
<tr class="memdesc:a71d7636f40607829cacc2c974c4a2a28"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read data from the open handle. <a href="#a71d7636f40607829cacc2c974c4a2a28">More...</a><br /></td></tr>
<tr class="separator:a71d7636f40607829cacc2c974c4a2a28"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a8af6c6dc1502d40f6aaccc83e49d5342"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__result.html">io_result</a>&lt; <a class="el" href="structafio__v2__xxx_1_1io__handle_1_1buffer__type.html">buffer_type</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1io__handle.html#a8af6c6dc1502d40f6aaccc83e49d5342">read</a> (<a class="el" href="classafio__v2__xxx_1_1handle.html#a818fff07c92eaab72532092d1c2a14f9">extent_type</a> offset, char *data, <a class="el" href="classafio__v2__xxx_1_1handle.html#a0adf7fa00e23ed561328f473986e9ccc">size_type</a> bytes, <a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a> d=<a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a>()) noexcept</td></tr>
-<tr class="separator:a8af6c6dc1502d40f6aaccc83e49d5342"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a928a8ab64d5b7d68dc7e2b3e5849df24"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__result.html">io_result</a>&lt; <a class="el" href="classafio__v2__xxx_1_1io__handle.html#a70a3c5e6f62efc95db81f831f3b90a2c">buffers_type</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1io__handle.html#a928a8ab64d5b7d68dc7e2b3e5849df24">read</a> (<a class="el" href="classafio__v2__xxx_1_1handle.html#a818fff07c92eaab72532092d1c2a14f9">extent_type</a> offset, std::initializer_list&lt; <a class="el" href="structafio__v2__xxx_1_1io__handle_1_1buffer__type.html">buffer_type</a> &gt; lst, <a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a> d=<a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a>()) noexcept</td></tr>
+<tr class="separator:a928a8ab64d5b7d68dc7e2b3e5849df24"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aefac4710e5617264347f437b04732c01"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__result.html">io_result</a>&lt; <a class="el" href="classafio__v2__xxx_1_1io__handle.html#a639b8760b1b98df95e4956f6cc56f6b5">const_buffers_type</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1io__handle.html#aefac4710e5617264347f437b04732c01">write</a> (<a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__request.html">io_request</a>&lt; <a class="el" href="classafio__v2__xxx_1_1io__handle.html#a639b8760b1b98df95e4956f6cc56f6b5">const_buffers_type</a> &gt; reqs, <a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a> d=<a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a>()) noexcept</td></tr>
<tr class="memdesc:aefac4710e5617264347f437b04732c01"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write data to the open handle. <a href="#aefac4710e5617264347f437b04732c01">More...</a><br /></td></tr>
<tr class="separator:aefac4710e5617264347f437b04732c01"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ab26a3c5a18cdcc67a506533dbe55e2b3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__result.html">io_result</a>&lt; <a class="el" href="structafio__v2__xxx_1_1io__handle_1_1const__buffer__type.html">const_buffer_type</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1io__handle.html#ab26a3c5a18cdcc67a506533dbe55e2b3">write</a> (<a class="el" href="classafio__v2__xxx_1_1handle.html#a818fff07c92eaab72532092d1c2a14f9">extent_type</a> offset, const char *data, <a class="el" href="classafio__v2__xxx_1_1handle.html#a0adf7fa00e23ed561328f473986e9ccc">size_type</a> bytes, <a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a> d=<a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a>()) noexcept</td></tr>
-<tr class="separator:ab26a3c5a18cdcc67a506533dbe55e2b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:add161546c0769941fce4fd9f06934e03"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__result.html">io_result</a>&lt; <a class="el" href="classafio__v2__xxx_1_1io__handle.html#a639b8760b1b98df95e4956f6cc56f6b5">const_buffers_type</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1io__handle.html#add161546c0769941fce4fd9f06934e03">write</a> (<a class="el" href="classafio__v2__xxx_1_1handle.html#a818fff07c92eaab72532092d1c2a14f9">extent_type</a> offset, std::initializer_list&lt; <a class="el" href="structafio__v2__xxx_1_1io__handle_1_1const__buffer__type.html">const_buffer_type</a> &gt; lst, <a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a> d=<a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a>()) noexcept</td></tr>
+<tr class="separator:add161546c0769941fce4fd9f06934e03"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a243156928e89b8988a1412f211b3b603"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__result.html">io_result</a>&lt; <a class="el" href="classafio__v2__xxx_1_1io__handle.html#a639b8760b1b98df95e4956f6cc56f6b5">const_buffers_type</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1io__handle.html#a243156928e89b8988a1412f211b3b603">barrier</a> (<a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__request.html">io_request</a>&lt; <a class="el" href="classafio__v2__xxx_1_1io__handle.html#a639b8760b1b98df95e4956f6cc56f6b5">const_buffers_type</a> &gt; reqs=<a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__request.html">io_request</a>&lt; <a class="el" href="classafio__v2__xxx_1_1io__handle.html#a639b8760b1b98df95e4956f6cc56f6b5">const_buffers_type</a> &gt;(), bool wait_for_device=false, bool and_metadata=false, <a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a> d=<a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a>()) noexcept=0</td></tr>
<tr class="memdesc:a243156928e89b8988a1412f211b3b603"><td class="mdescLeft">&#160;</td><td class="mdescRight">Issue a write reordering barrier such that writes preceding the barrier will reach storage before writes after this barrier. <a href="#a243156928e89b8988a1412f211b3b603">More...</a><br /></td></tr>
<tr class="separator:a243156928e89b8988a1412f211b3b603"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -412,7 +412,7 @@ For portability, you can only assume that barriers write order for a single hand
<table class="params">
<tr><td class="paramname">reqs</td><td>A scatter-gather and offset request for what range to barrier. May be ignored on some platforms which always write barrier the entire file. Supplying a default initialised reqs write barriers the entire file. </td></tr>
<tr><td class="paramname">wait_for_device</td><td>True if you want the call to wait until data reaches storage and that storage has acknowledged the data is physically written. Slow. </td></tr>
- <tr><td class="paramname">and_metadata</td><td>True if you want the call to sync the metadata for retrieving the writes before the barrier after a sudden power loss event. Slow. </td></tr>
+ <tr><td class="paramname">and_metadata</td><td>True if you want the call to sync the metadata for retrieving the writes before the barrier after a sudden power loss event. Slow. Setting this to false enables much faster performance, especially on non-volatile memory. </td></tr>
<tr><td class="paramname">d</td><td>An optional deadline by which the i/o must complete, else it is cancelled. Note function may return significantly after this deadline if the i/o takes long to cancel. </td></tr>
</table>
</dd>
@@ -582,7 +582,7 @@ For portability, you can only assume that barriers write order for a single hand
</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="l00411"></a><span class="lineno"> 411</span>&#160; {</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; <span class="keywordtype">size_t</span> bytes = 0;</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> &amp;i : reqs.buffers)</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; {</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; <span class="keywordflow">if</span>(bytes + i.len &lt; bytes)</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; {</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; <span class="keywordflow">return</span> std::errc::value_too_large;</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; }</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; bytes += i.len;</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; }</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classafio__v2__xxx_1_1io__handle.html#a88689b15e6e8b6ce1f945737dee4369e">lock</a>(reqs.offset, bytes, <span class="keyword">false</span>, d);</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; }</div><div class="ttc" id="classafio__v2__xxx_1_1io__handle_html_a88689b15e6e8b6ce1f945737dee4369e"><div class="ttname"><a href="classafio__v2__xxx_1_1io__handle.html#a88689b15e6e8b6ce1f945737dee4369e">afio_v2_xxx::io_handle::lock</a></div><div class="ttdeci">virtual result&lt; extent_guard &gt; lock(extent_type offset, extent_type bytes, bool exclusive=true, deadline d=deadline()) noexcept</div><div class="ttdoc">Tries to lock the range of bytes specified for shared or exclusive access. Be aware this passes throu...</div></div>
+<div class="fragment"><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; {</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; <span class="keywordtype">size_t</span> bytes = 0;</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> &amp;i : reqs.buffers)</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; {</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; <span class="keywordflow">if</span>(bytes + i.len &lt; bytes)</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; {</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; <span class="keywordflow">return</span> std::errc::value_too_large;</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; }</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; bytes += i.len;</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; }</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classafio__v2__xxx_1_1io__handle.html#a88689b15e6e8b6ce1f945737dee4369e">lock</a>(reqs.offset, bytes, <span class="keyword">false</span>, d);</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; }</div><div class="ttc" id="classafio__v2__xxx_1_1io__handle_html_a88689b15e6e8b6ce1f945737dee4369e"><div class="ttname"><a href="classafio__v2__xxx_1_1io__handle.html#a88689b15e6e8b6ce1f945737dee4369e">afio_v2_xxx::io_handle::lock</a></div><div class="ttdeci">virtual result&lt; extent_guard &gt; lock(extent_type offset, extent_type bytes, bool exclusive=true, deadline d=deadline()) noexcept</div><div class="ttdoc">Tries to lock the range of bytes specified for shared or exclusive access. Be aware this passes throu...</div></div>
</div><!-- fragment -->
</div>
</div>
@@ -620,7 +620,7 @@ For portability, you can only assume that barriers write order for a single hand
</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="l00425"></a><span class="lineno"> 425</span>&#160; {</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; <span class="keywordtype">size_t</span> bytes = 0;</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> &amp;i : reqs.buffers)</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; {</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; <span class="keywordflow">if</span>(bytes + i.len &lt; bytes)</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; {</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; <span class="keywordflow">return</span> std::errc::value_too_large;</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; }</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; bytes += i.len;</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; }</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classafio__v2__xxx_1_1io__handle.html#a88689b15e6e8b6ce1f945737dee4369e">lock</a>(reqs.offset, bytes, <span class="keyword">true</span>, d);</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; }</div><div class="ttc" id="classafio__v2__xxx_1_1io__handle_html_a88689b15e6e8b6ce1f945737dee4369e"><div class="ttname"><a href="classafio__v2__xxx_1_1io__handle.html#a88689b15e6e8b6ce1f945737dee4369e">afio_v2_xxx::io_handle::lock</a></div><div class="ttdeci">virtual result&lt; extent_guard &gt; lock(extent_type offset, extent_type bytes, bool exclusive=true, deadline d=deadline()) noexcept</div><div class="ttdoc">Tries to lock the range of bytes specified for shared or exclusive access. Be aware this passes throu...</div></div>
+<div class="fragment"><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; {</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; <span class="keywordtype">size_t</span> bytes = 0;</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> &amp;i : reqs.buffers)</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; {</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; <span class="keywordflow">if</span>(bytes + i.len &lt; bytes)</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; {</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; <span class="keywordflow">return</span> std::errc::value_too_large;</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; }</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; bytes += i.len;</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; }</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classafio__v2__xxx_1_1io__handle.html#a88689b15e6e8b6ce1f945737dee4369e">lock</a>(reqs.offset, bytes, <span class="keyword">true</span>, d);</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; }</div><div class="ttc" id="classafio__v2__xxx_1_1io__handle_html_a88689b15e6e8b6ce1f945737dee4369e"><div class="ttname"><a href="classafio__v2__xxx_1_1io__handle.html#a88689b15e6e8b6ce1f945737dee4369e">afio_v2_xxx::io_handle::lock</a></div><div class="ttdeci">virtual result&lt; extent_guard &gt; lock(extent_type offset, extent_type bytes, bool exclusive=true, deadline d=deadline()) noexcept</div><div class="ttdoc">Tries to lock the range of bytes specified for shared or exclusive access. Be aware this passes throu...</div></div>
</div><!-- fragment -->
</div>
</div>
@@ -650,7 +650,7 @@ For portability, you can only assume that barriers write order for a single hand
<p>The <em>maximum</em> number of buffers which a single read or write syscall can process at a time for this specific open handle. On POSIX, this is known as <code>IOV_MAX</code>. </p>
<p>Note that the actual number of buffers accepted for a read or a write may be significantly lower than this system-defined limit, depending on available resources. The <code>read()</code> or <code>write()</code> call will return the buffers accepted.</p>
<p>Note also that some OSs will error out if you supply more than this limit to <code>read()</code> or <code>write()</code>, but other OSs do not. Some OSs guarantee that each i/o syscall has effects atomically visible or not to other i/o, other OSs do not.</p>
-<p>Microsoft Windows does not implement scatter-gather file i/o syscalls except for unbuffered i/o. Thus this function will always return <code>1</code> in that situation. </p>
+<p>Microsoft Windows and OS X does not implement scatter-gather file i/o syscalls. Thus this function will always return <code>1</code> in that situation. </p>
</div>
</div>
@@ -703,8 +703,8 @@ For portability, you can only assume that barriers write order for a single hand
</div>
</div>
-<a id="a8af6c6dc1502d40f6aaccc83e49d5342"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a8af6c6dc1502d40f6aaccc83e49d5342">&#9670;&nbsp;</a></span>read() <span class="overload">[2/2]</span></h2>
+<a id="a928a8ab64d5b7d68dc7e2b3e5849df24"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a928a8ab64d5b7d68dc7e2b3e5849df24">&#9670;&nbsp;</a></span>read() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
@@ -713,7 +713,7 @@ For portability, you can only assume that barriers write order for a single hand
<td class="mlabels-left">
<table class="memname">
<tr>
- <td class="memname"><a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__result.html">io_result</a>&lt;<a class="el" href="structafio__v2__xxx_1_1io__handle_1_1buffer__type.html">buffer_type</a>&gt; afio_v2_xxx::io_handle::read </td>
+ <td class="memname"><a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__result.html">io_result</a>&lt;<a class="el" href="classafio__v2__xxx_1_1io__handle.html#a70a3c5e6f62efc95db81f831f3b90a2c">buffers_type</a>&gt; afio_v2_xxx::io_handle::read </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classafio__v2__xxx_1_1handle.html#a818fff07c92eaab72532092d1c2a14f9">extent_type</a>&#160;</td>
<td class="paramname"><em>offset</em>, </td>
@@ -721,14 +721,8 @@ For portability, you can only assume that barriers write order for a single hand
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">char *&#160;</td>
- <td class="paramname"><em>data</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="classafio__v2__xxx_1_1handle.html#a0adf7fa00e23ed561328f473986e9ccc">size_type</a>&#160;</td>
- <td class="paramname"><em>bytes</em>, </td>
+ <td class="paramtype">std::initializer_list&lt; <a class="el" href="structafio__v2__xxx_1_1io__handle_1_1buffer__type.html">buffer_type</a> &gt;&#160;</td>
+ <td class="paramname"><em>lst</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
@@ -749,7 +743,7 @@ For portability, you can only assume that barriers write order for a single hand
</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="l00225"></a><span class="lineno"> 225</span>&#160; {</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; buffer_type _reqs[1] = {{data, bytes}};</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; io_request&lt;buffers_type&gt; reqs(<a class="code" href="classafio__v2__xxx_1_1io__handle.html#a70a3c5e6f62efc95db81f831f3b90a2c">buffers_type</a>(_reqs), offset);</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; OUTCOME_TRY(v, <a class="code" href="classafio__v2__xxx_1_1io__handle.html#a71d7636f40607829cacc2c974c4a2a28">read</a>(reqs, d));</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="keywordflow">return</span> *v.data();</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; }</div><div class="ttc" id="classafio__v2__xxx_1_1io__handle_html_a70a3c5e6f62efc95db81f831f3b90a2c"><div class="ttname"><a href="classafio__v2__xxx_1_1io__handle.html#a70a3c5e6f62efc95db81f831f3b90a2c">afio_v2_xxx::io_handle::buffers_type</a></div><div class="ttdeci">span&lt; buffer_type &gt; buffers_type</div><div class="ttdoc">The scatter buffers type used by this handle. Guaranteed to be TrivialType apart from construction...</div><div class="ttdef"><b>Definition:</b> io_handle.hpp:76</div></div>
+<div class="fragment"><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; {</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; buffer_type *_reqs = <span class="keyword">reinterpret_cast&lt;</span>buffer_type *<span class="keyword">&gt;</span>(alloca(<span class="keyword">sizeof</span>(buffer_type) * lst.size()));</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; memcpy(_reqs, lst.begin(), <span class="keyword">sizeof</span>(buffer_type) * lst.size());</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; io_request&lt;buffers_type&gt; reqs(<a class="code" href="classafio__v2__xxx_1_1io__handle.html#a70a3c5e6f62efc95db81f831f3b90a2c">buffers_type</a>(_reqs, lst.size()), offset);</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classafio__v2__xxx_1_1io__handle.html#a71d7636f40607829cacc2c974c4a2a28">read</a>(reqs, d);</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; }</div><div class="ttc" id="classafio__v2__xxx_1_1io__handle_html_a70a3c5e6f62efc95db81f831f3b90a2c"><div class="ttname"><a href="classafio__v2__xxx_1_1io__handle.html#a70a3c5e6f62efc95db81f831f3b90a2c">afio_v2_xxx::io_handle::buffers_type</a></div><div class="ttdeci">span&lt; buffer_type &gt; buffers_type</div><div class="ttdoc">The scatter buffers type used by this handle. Guaranteed to be TrivialType apart from construction...</div><div class="ttdef"><b>Definition:</b> io_handle.hpp:76</div></div>
<div class="ttc" id="classafio__v2__xxx_1_1io__handle_html_a71d7636f40607829cacc2c974c4a2a28"><div class="ttname"><a href="classafio__v2__xxx_1_1io__handle.html#a71d7636f40607829cacc2c974c4a2a28">afio_v2_xxx::io_handle::read</a></div><div class="ttdeci">virtual io_result&lt; buffers_type &gt; read(io_request&lt; buffers_type &gt; reqs, deadline d=deadline()) noexcept</div><div class="ttdoc">Read data from the open handle. </div></div>
</div><!-- fragment -->
</div>
@@ -824,7 +818,7 @@ For portability, you can only assume that barriers write order for a single hand
</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="l00408"></a><span class="lineno"> 408</span>&#160;{ <span class="keywordflow">return</span> <a class="code" href="classafio__v2__xxx_1_1io__handle.html#a88689b15e6e8b6ce1f945737dee4369e">lock</a>(offset, bytes, exclusive, deadline(std::chrono::seconds(0))); }</div><div class="ttc" id="classafio__v2__xxx_1_1io__handle_html_a88689b15e6e8b6ce1f945737dee4369e"><div class="ttname"><a href="classafio__v2__xxx_1_1io__handle.html#a88689b15e6e8b6ce1f945737dee4369e">afio_v2_xxx::io_handle::lock</a></div><div class="ttdeci">virtual result&lt; extent_guard &gt; lock(extent_type offset, extent_type bytes, bool exclusive=true, deadline d=deadline()) noexcept</div><div class="ttdoc">Tries to lock the range of bytes specified for shared or exclusive access. Be aware this passes throu...</div></div>
+<div class="fragment"><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160;{ <span class="keywordflow">return</span> <a class="code" href="classafio__v2__xxx_1_1io__handle.html#a88689b15e6e8b6ce1f945737dee4369e">lock</a>(offset, bytes, exclusive, deadline(std::chrono::seconds(0))); }</div><div class="ttc" id="classafio__v2__xxx_1_1io__handle_html_a88689b15e6e8b6ce1f945737dee4369e"><div class="ttname"><a href="classafio__v2__xxx_1_1io__handle.html#a88689b15e6e8b6ce1f945737dee4369e">afio_v2_xxx::io_handle::lock</a></div><div class="ttdeci">virtual result&lt; extent_guard &gt; lock(extent_type offset, extent_type bytes, bool exclusive=true, deadline d=deadline()) noexcept</div><div class="ttdoc">Tries to lock the range of bytes specified for shared or exclusive access. Be aware this passes throu...</div></div>
</div><!-- fragment -->
</div>
</div>
@@ -924,8 +918,8 @@ For portability, you can only assume that barriers write order for a single hand
</div>
</div>
-<a id="ab26a3c5a18cdcc67a506533dbe55e2b3"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ab26a3c5a18cdcc67a506533dbe55e2b3">&#9670;&nbsp;</a></span>write() <span class="overload">[2/2]</span></h2>
+<a id="add161546c0769941fce4fd9f06934e03"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#add161546c0769941fce4fd9f06934e03">&#9670;&nbsp;</a></span>write() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
@@ -934,7 +928,7 @@ For portability, you can only assume that barriers write order for a single hand
<td class="mlabels-left">
<table class="memname">
<tr>
- <td class="memname"><a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__result.html">io_result</a>&lt;<a class="el" href="structafio__v2__xxx_1_1io__handle_1_1const__buffer__type.html">const_buffer_type</a>&gt; afio_v2_xxx::io_handle::write </td>
+ <td class="memname"><a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__result.html">io_result</a>&lt;<a class="el" href="classafio__v2__xxx_1_1io__handle.html#a639b8760b1b98df95e4956f6cc56f6b5">const_buffers_type</a>&gt; afio_v2_xxx::io_handle::write </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classafio__v2__xxx_1_1handle.html#a818fff07c92eaab72532092d1c2a14f9">extent_type</a>&#160;</td>
<td class="paramname"><em>offset</em>, </td>
@@ -942,14 +936,8 @@ For portability, you can only assume that barriers write order for a single hand
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">const char *&#160;</td>
- <td class="paramname"><em>data</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="classafio__v2__xxx_1_1handle.html#a0adf7fa00e23ed561328f473986e9ccc">size_type</a>&#160;</td>
- <td class="paramname"><em>bytes</em>, </td>
+ <td class="paramtype">std::initializer_list&lt; <a class="el" href="structafio__v2__xxx_1_1io__handle_1_1const__buffer__type.html">const_buffer_type</a> &gt;&#160;</td>
+ <td class="paramname"><em>lst</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
@@ -970,7 +958,7 @@ For portability, you can only assume that barriers write order for a single hand
</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="l00257"></a><span class="lineno"> 257</span>&#160; {</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; const_buffer_type _reqs[1] = {{data, bytes}};</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; io_request&lt;const_buffers_type&gt; reqs(<a class="code" href="classafio__v2__xxx_1_1io__handle.html#a639b8760b1b98df95e4956f6cc56f6b5">const_buffers_type</a>(_reqs), offset);</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; OUTCOME_TRY(v, <a class="code" href="classafio__v2__xxx_1_1io__handle.html#aefac4710e5617264347f437b04732c01">write</a>(reqs, d));</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <span class="keywordflow">return</span> *v.data();</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; }</div><div class="ttc" id="classafio__v2__xxx_1_1io__handle_html_a639b8760b1b98df95e4956f6cc56f6b5"><div class="ttname"><a href="classafio__v2__xxx_1_1io__handle.html#a639b8760b1b98df95e4956f6cc56f6b5">afio_v2_xxx::io_handle::const_buffers_type</a></div><div class="ttdeci">span&lt; const_buffer_type &gt; const_buffers_type</div><div class="ttdoc">The gather buffers type used by this handle. Guaranteed to be TrivialType apart from construction...</div><div class="ttdef"><b>Definition:</b> io_handle.hpp:78</div></div>
+<div class="fragment"><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; {</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; const_buffer_type *_reqs = <span class="keyword">reinterpret_cast&lt;</span>const_buffer_type *<span class="keyword">&gt;</span>(alloca(<span class="keyword">sizeof</span>(const_buffer_type) * lst.size()));</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; memcpy(_reqs, lst.begin(), <span class="keyword">sizeof</span>(const_buffer_type) * lst.size());</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; io_request&lt;const_buffers_type&gt; reqs(<a class="code" href="classafio__v2__xxx_1_1io__handle.html#a639b8760b1b98df95e4956f6cc56f6b5">const_buffers_type</a>(_reqs, lst.size()), offset);</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classafio__v2__xxx_1_1io__handle.html#aefac4710e5617264347f437b04732c01">write</a>(reqs, d);</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; }</div><div class="ttc" id="classafio__v2__xxx_1_1io__handle_html_a639b8760b1b98df95e4956f6cc56f6b5"><div class="ttname"><a href="classafio__v2__xxx_1_1io__handle.html#a639b8760b1b98df95e4956f6cc56f6b5">afio_v2_xxx::io_handle::const_buffers_type</a></div><div class="ttdeci">span&lt; const_buffer_type &gt; const_buffers_type</div><div class="ttdoc">The gather buffers type used by this handle. Guaranteed to be TrivialType apart from construction...</div><div class="ttdef"><b>Definition:</b> io_handle.hpp:78</div></div>
<div class="ttc" id="classafio__v2__xxx_1_1io__handle_html_aefac4710e5617264347f437b04732c01"><div class="ttname"><a href="classafio__v2__xxx_1_1io__handle.html#aefac4710e5617264347f437b04732c01">afio_v2_xxx::io_handle::write</a></div><div class="ttdeci">virtual io_result&lt; const_buffers_type &gt; write(io_request&lt; const_buffers_type &gt; reqs, deadline d=deadline()) noexcept</div><div class="ttdoc">Write data to the open handle. </div></div>
</div><!-- fragment -->
</div>
diff --git a/classafio__v2__xxx_1_1io__handle.js b/classafio__v2__xxx_1_1io__handle.js
index 521a9d6d..7b7608d2 100644
--- a/classafio__v2__xxx_1_1io__handle.js
+++ b/classafio__v2__xxx_1_1io__handle.js
@@ -49,7 +49,7 @@ var classafio__v2__xxx_1_1io__handle =
[ "operator=", "classafio__v2__xxx_1_1io__handle.html#aca75b76bf7cbb9add3fd9a36bcd6d42a", null ],
[ "operator=", "classafio__v2__xxx_1_1io__handle.html#a949ba240535516e0041ed46594ad54fa", null ],
[ "read", "classafio__v2__xxx_1_1io__handle.html#a71d7636f40607829cacc2c974c4a2a28", null ],
- [ "read", "classafio__v2__xxx_1_1io__handle.html#a8af6c6dc1502d40f6aaccc83e49d5342", null ],
+ [ "read", "classafio__v2__xxx_1_1io__handle.html#a928a8ab64d5b7d68dc7e2b3e5849df24", null ],
[ "release", "classafio__v2__xxx_1_1io__handle.html#a73d5f2070bce0c3d7fa536d3cbed7b52", null ],
[ "requires_aligned_io", "classafio__v2__xxx_1_1io__handle.html#affb10caeeca67b804695b7378be29e23", null ],
[ "set_append_only", "classafio__v2__xxx_1_1io__handle.html#af1610ec7fb0a41f039e3e17e0dc467ab", null ],
@@ -57,7 +57,7 @@ var classafio__v2__xxx_1_1io__handle =
[ "try_lock", "classafio__v2__xxx_1_1io__handle.html#a0a1c4773b9fa7bbd04fee0756075d319", null ],
[ "unlock", "classafio__v2__xxx_1_1io__handle.html#a96b9da71ee7791fbaaa2470c936ec763", null ],
[ "write", "classafio__v2__xxx_1_1io__handle.html#aefac4710e5617264347f437b04732c01", null ],
- [ "write", "classafio__v2__xxx_1_1io__handle.html#ab26a3c5a18cdcc67a506533dbe55e2b3", null ],
+ [ "write", "classafio__v2__xxx_1_1io__handle.html#add161546c0769941fce4fd9f06934e03", null ],
[ "_caching", "classafio__v2__xxx_1_1io__handle.html#af024e3d92d9a01ac367734e9cdc517fb", null ],
[ "_flags", "classafio__v2__xxx_1_1io__handle.html#ac46e0a296c31fcd0a996a79d78647fb6", null ],
[ "_v", "classafio__v2__xxx_1_1io__handle.html#a771ef2bf39ad784eb6265dde077792ad", null ]
diff --git a/classafio__v2__xxx_1_1map__handle-members.html b/classafio__v2__xxx_1_1map__handle-members.html
index 3a3aef17..7c34f1a1 100644
--- a/classafio__v2__xxx_1_1map__handle-members.html
+++ b/classafio__v2__xxx_1_1map__handle-members.html
@@ -93,43 +93,47 @@ $(document).ready(function(){initNavTree('classafio__v2__xxx_1_1map__handle.html
<tr bgcolor="#f0f0f0"><td class="entry"><b>_flags</b> (defined in <a class="el" href="classafio__v2__xxx_1_1handle.html">afio_v2_xxx::handle</a>)</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html">afio_v2_xxx::handle</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>_length</b> (defined in <a class="el" href="classafio__v2__xxx_1_1map__handle.html">afio_v2_xxx::map_handle</a>)</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1map__handle.html">afio_v2_xxx::map_handle</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>_offset</b> (defined in <a class="el" href="classafio__v2__xxx_1_1map__handle.html">afio_v2_xxx::map_handle</a>)</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1map__handle.html">afio_v2_xxx::map_handle</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>_section</b> (defined in <a class="el" href="classafio__v2__xxx_1_1map__handle.html">afio_v2_xxx::map_handle</a>)</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1map__handle.html">afio_v2_xxx::map_handle</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>_v</b> (defined in <a class="el" href="classafio__v2__xxx_1_1handle.html">afio_v2_xxx::handle</a>)</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html">afio_v2_xxx::handle</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1map__handle.html#a1e9273d0c6aca7da6480437f6cf6638a">address</a>() const noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1map__handle.html">afio_v2_xxx::map_handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html#a71137cb82edd9a1bcb24f64886b5826d">are_reads_from_cache</a>() const noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html">afio_v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html#a3fc7db93fac699f5ecad453642ed314e">are_safety_fsyncs_issued</a>() const noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html">afio_v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html#a97ffbbf53f51549549efef0b49e125dc">are_writes_durable</a>() const noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html">afio_v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>barrier</b>(io_request&lt; const_buffers_type &gt; reqs=io_request&lt; const_buffers_type &gt;(), bool wait_for_device=false, bool and_metadata=false, deadline d=deadline()) noexcept override (defined in <a class="el" href="classafio__v2__xxx_1_1map__handle.html">afio_v2_xxx::map_handle</a>)</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1map__handle.html">afio_v2_xxx::map_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>_reservation</b> (defined in <a class="el" href="classafio__v2__xxx_1_1map__handle.html">afio_v2_xxx::map_handle</a>)</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1map__handle.html">afio_v2_xxx::map_handle</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>_section</b> (defined in <a class="el" href="classafio__v2__xxx_1_1map__handle.html">afio_v2_xxx::map_handle</a>)</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1map__handle.html">afio_v2_xxx::map_handle</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>_v</b> (defined in <a class="el" href="classafio__v2__xxx_1_1handle.html">afio_v2_xxx::handle</a>)</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html">afio_v2_xxx::handle</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1map__handle.html#a1e9273d0c6aca7da6480437f6cf6638a">address</a>() const noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1map__handle.html">afio_v2_xxx::map_handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html#a71137cb82edd9a1bcb24f64886b5826d">are_reads_from_cache</a>() const noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html">afio_v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html#a3fc7db93fac699f5ecad453642ed314e">are_safety_fsyncs_issued</a>() const noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html">afio_v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html#a97ffbbf53f51549549efef0b49e125dc">are_writes_durable</a>() const noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html">afio_v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>barrier</b>(io_request&lt; const_buffers_type &gt; reqs=io_request&lt; const_buffers_type &gt;(), bool wait_for_device=false, bool and_metadata=false, deadline d=deadline()) noexcept override (defined in <a class="el" href="classafio__v2__xxx_1_1map__handle.html">afio_v2_xxx::map_handle</a>)</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1map__handle.html">afio_v2_xxx::map_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1map__handle.html#a7119886b920953e12340b05ea94e395d">barrier</a>(const_buffer_type req, bool evict=false) noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1map__handle.html">afio_v2_xxx::map_handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html#a243156928e89b8988a1412f211b3b603">afio_v2_xxx::io_handle::barrier</a>(io_request&lt; const_buffers_type &gt; reqs=io_request&lt; const_buffers_type &gt;(), bool wait_for_device=false, bool and_metadata=false, deadline d=deadline()) noexcept=0</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html">afio_v2_xxx::io_handle</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>buffer_type</b> typedef (defined in <a class="el" href="classafio__v2__xxx_1_1map__handle.html">afio_v2_xxx::map_handle</a>)</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1map__handle.html">afio_v2_xxx::map_handle</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>buffers_type</b> typedef (defined in <a class="el" href="classafio__v2__xxx_1_1map__handle.html">afio_v2_xxx::map_handle</a>)</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1map__handle.html">afio_v2_xxx::map_handle</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>caching</b> typedef (defined in <a class="el" href="classafio__v2__xxx_1_1map__handle.html">afio_v2_xxx::map_handle</a>)</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1map__handle.html">afio_v2_xxx::map_handle</a></td><td class="entry"></td></tr>
- <tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html#a54790e954f57372b87b095451cc79c38">clone</a>() const noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html">afio_v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1map__handle.html#aca05f73280e20cb18cc0dd7f60a1aae1">close</a>() noexcept override</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1map__handle.html">afio_v2_xxx::map_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
- <tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1map__handle.html#a4cdb7b9643da8c8e2dee0c8b01511e83">commit</a>(buffer_type region, section_handle::flag flag=section_handle::flag::readwrite) noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1map__handle.html">afio_v2_xxx::map_handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>const_buffer_type</b> typedef (defined in <a class="el" href="classafio__v2__xxx_1_1map__handle.html">afio_v2_xxx::map_handle</a>)</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1map__handle.html">afio_v2_xxx::map_handle</a></td><td class="entry"></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>const_buffers_type</b> typedef (defined in <a class="el" href="classafio__v2__xxx_1_1map__handle.html">afio_v2_xxx::map_handle</a>)</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1map__handle.html">afio_v2_xxx::map_handle</a></td><td class="entry"></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>creation</b> typedef (defined in <a class="el" href="classafio__v2__xxx_1_1map__handle.html">afio_v2_xxx::map_handle</a>)</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1map__handle.html">afio_v2_xxx::map_handle</a></td><td class="entry"></td></tr>
- <tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html#a616a67222676af5ec5b3aa94d7c02428">current_path</a>() const noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html">afio_v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1map__handle.html#a5b69e8faa8a9e47dec1b1a123c722a3e">decommit</a>(buffer_type region) noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1map__handle.html">afio_v2_xxx::map_handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1map__handle.html#aa25715985351f79e034bb1ef37f74824">do_not_store</a>(buffer_type region) noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1map__handle.html">afio_v2_xxx::map_handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>extent_type</b> typedef (defined in <a class="el" href="classafio__v2__xxx_1_1map__handle.html">afio_v2_xxx::map_handle</a>)</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1map__handle.html">afio_v2_xxx::map_handle</a></td><td class="entry"></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>flag</b> typedef (defined in <a class="el" href="classafio__v2__xxx_1_1map__handle.html">afio_v2_xxx::map_handle</a>)</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1map__handle.html">afio_v2_xxx::map_handle</a></td><td class="entry"></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html#ab3d876f5996605158fd6a0582adadad6">flags</a>() const noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html">afio_v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html#af1135a1a8f9e422a317b328ea44146eb">handle</a>()</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html">afio_v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html#a8f029c40e700b01622f9b0c4126204a8">handle</a>(native_handle_type h, caching caching=caching::none, flag flags=flag::none) noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html">afio_v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
- <tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html#a593405e371cb4012c780907bd2e1fc55">handle</a>(const handle &amp;)=delete</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html">afio_v2_xxx::handle</a></td><td class="entry"></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html#a740bdf3eb7cd766ca09e1bffb258e63a">handle</a>(handle &amp;&amp;o) noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html">afio_v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html#a540067d7350e716d73714d33716a9b63">io_handle</a>()</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html">afio_v2_xxx::io_handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html#a5e4f43f6ce4820bc483404c02fa52c5a">io_handle</a>(native_handle_type h, caching caching=caching::none, flag flags=flag::none)</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html">afio_v2_xxx::io_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
- <tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html#a1e64e30fe37476a7ac55ae73ee743b7e">io_handle</a>(handle &amp;&amp;o) noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html">afio_v2_xxx::io_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html#a0cb380330b99ebe79ebceaa04f476d2e">io_handle</a>(io_handle &amp;&amp;)=default</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html">afio_v2_xxx::io_handle</a></td><td class="entry"></td></tr>
- <tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html#ae37166cb94d69808853190e1bab5ee12">io_handle</a>(const io_handle &amp;)=delete</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html">afio_v2_xxx::io_handle</a></td><td class="entry"></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>io_request</b> typedef (defined in <a class="el" href="classafio__v2__xxx_1_1map__handle.html">afio_v2_xxx::map_handle</a>)</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1map__handle.html">afio_v2_xxx::map_handle</a></td><td class="entry"></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>io_result</b> typedef (defined in <a class="el" href="classafio__v2__xxx_1_1map__handle.html">afio_v2_xxx::map_handle</a>)</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1map__handle.html">afio_v2_xxx::map_handle</a></td><td class="entry"></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html#ae33d4d0faa1377cd371bd6a0ae0769ae">is_append_only</a>() const noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html">afio_v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html#aa53d88105df8c6be01be649829a65b14">is_directory</a>() const noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html">afio_v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html#ab790af4654f5455d8c5e1f1d397543ca">is_multiplexer</a>() const noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html">afio_v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1map__handle.html#ad29ceb1ecb38e9e74e63404b7db3a5a2">capacity</a>() const noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1map__handle.html">afio_v2_xxx::map_handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html#a54790e954f57372b87b095451cc79c38">clone</a>() const noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html">afio_v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1map__handle.html#aca05f73280e20cb18cc0dd7f60a1aae1">close</a>() noexcept override</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1map__handle.html">afio_v2_xxx::map_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1map__handle.html#a4cdb7b9643da8c8e2dee0c8b01511e83">commit</a>(buffer_type region, section_handle::flag flag=section_handle::flag::readwrite) noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1map__handle.html">afio_v2_xxx::map_handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>const_buffer_type</b> typedef (defined in <a class="el" href="classafio__v2__xxx_1_1map__handle.html">afio_v2_xxx::map_handle</a>)</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1map__handle.html">afio_v2_xxx::map_handle</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>const_buffers_type</b> typedef (defined in <a class="el" href="classafio__v2__xxx_1_1map__handle.html">afio_v2_xxx::map_handle</a>)</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1map__handle.html">afio_v2_xxx::map_handle</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>creation</b> typedef (defined in <a class="el" href="classafio__v2__xxx_1_1map__handle.html">afio_v2_xxx::map_handle</a>)</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1map__handle.html">afio_v2_xxx::map_handle</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html#a616a67222676af5ec5b3aa94d7c02428">current_path</a>() const noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html">afio_v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1map__handle.html#a5b69e8faa8a9e47dec1b1a123c722a3e">decommit</a>(buffer_type region) noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1map__handle.html">afio_v2_xxx::map_handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1map__handle.html#aa25715985351f79e034bb1ef37f74824">do_not_store</a>(buffer_type region) noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1map__handle.html">afio_v2_xxx::map_handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>extent_type</b> typedef (defined in <a class="el" href="classafio__v2__xxx_1_1map__handle.html">afio_v2_xxx::map_handle</a>)</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1map__handle.html">afio_v2_xxx::map_handle</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>flag</b> typedef (defined in <a class="el" href="classafio__v2__xxx_1_1map__handle.html">afio_v2_xxx::map_handle</a>)</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1map__handle.html">afio_v2_xxx::map_handle</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html#ab3d876f5996605158fd6a0582adadad6">flags</a>() const noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html">afio_v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html#af1135a1a8f9e422a317b328ea44146eb">handle</a>()</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html">afio_v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html#a8f029c40e700b01622f9b0c4126204a8">handle</a>(native_handle_type h, caching caching=caching::none, flag flags=flag::none) noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html">afio_v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html#a593405e371cb4012c780907bd2e1fc55">handle</a>(const handle &amp;)=delete</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html">afio_v2_xxx::handle</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html#a740bdf3eb7cd766ca09e1bffb258e63a">handle</a>(handle &amp;&amp;o) noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html">afio_v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html#a540067d7350e716d73714d33716a9b63">io_handle</a>()</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html">afio_v2_xxx::io_handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html#a5e4f43f6ce4820bc483404c02fa52c5a">io_handle</a>(native_handle_type h, caching caching=caching::none, flag flags=flag::none)</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html">afio_v2_xxx::io_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html#a1e64e30fe37476a7ac55ae73ee743b7e">io_handle</a>(handle &amp;&amp;o) noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html">afio_v2_xxx::io_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html#a0cb380330b99ebe79ebceaa04f476d2e">io_handle</a>(io_handle &amp;&amp;)=default</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html">afio_v2_xxx::io_handle</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html#ae37166cb94d69808853190e1bab5ee12">io_handle</a>(const io_handle &amp;)=delete</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html">afio_v2_xxx::io_handle</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>io_request</b> typedef (defined in <a class="el" href="classafio__v2__xxx_1_1map__handle.html">afio_v2_xxx::map_handle</a>)</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1map__handle.html">afio_v2_xxx::map_handle</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>io_result</b> typedef (defined in <a class="el" href="classafio__v2__xxx_1_1map__handle.html">afio_v2_xxx::map_handle</a>)</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1map__handle.html">afio_v2_xxx::map_handle</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html#ae33d4d0faa1377cd371bd6a0ae0769ae">is_append_only</a>() const noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html">afio_v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html#aa53d88105df8c6be01be649829a65b14">is_directory</a>() const noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html">afio_v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html#ab790af4654f5455d8c5e1f1d397543ca">is_multiplexer</a>() const noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html">afio_v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1map__handle.html#a5c57d56e5704ced94de606895a1fe9bd">is_nvram</a>() const noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1map__handle.html">afio_v2_xxx::map_handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html#af42904dd49b5517a303e7cb256eae939">is_overlapped</a>() const noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html">afio_v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html#ad02958278a0d92e4ec4fb864ba1eb35b">is_process</a>() const noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html">afio_v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html#a349e001cbe359d4e7a8f066c69e9361e">is_readable</a>() const noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html">afio_v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
@@ -166,7 +170,7 @@ $(document).ready(function(){initNavTree('classafio__v2__xxx_1_1map__handle.html
<tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1map__handle.html#ab569da5c3ffa64200f8b10dbe683bbc8">prefetch</a>(buffer_type region) noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1map__handle.html">afio_v2_xxx::map_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1map__handle.html#a4d8c8f3fcecd58b55316d42799abf6f3">read</a>(io_request&lt; buffers_type &gt; reqs, deadline d=deadline()) noexcept override</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1map__handle.html">afio_v2_xxx::map_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html#a71d7636f40607829cacc2c974c4a2a28">afio_v2_xxx::io_handle::read</a>(io_request&lt; buffers_type &gt; reqs, deadline d=deadline()) noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html">afio_v2_xxx::io_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
- <tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html#a8af6c6dc1502d40f6aaccc83e49d5342">afio_v2_xxx::io_handle::read</a>(extent_type offset, char *data, size_type bytes, deadline d=deadline()) noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html">afio_v2_xxx::io_handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html#a928a8ab64d5b7d68dc7e2b3e5849df24">afio_v2_xxx::io_handle::read</a>(extent_type offset, std::initializer_list&lt; buffer_type &gt; lst, deadline d=deadline()) noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html">afio_v2_xxx::io_handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1map__handle.html#ac484c07601be4e987b5f1332bdccfee3">release</a>() noexcept override</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1map__handle.html">afio_v2_xxx::map_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
<tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html#affb10caeeca67b804695b7378be29e23">requires_aligned_io</a>() const noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html">afio_v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1map__handle.html#ab8a43a5388161f629fef5ee7256dbbc8">section</a>() const noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1map__handle.html">afio_v2_xxx::map_handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
@@ -175,11 +179,13 @@ $(document).ready(function(){initNavTree('classafio__v2__xxx_1_1map__handle.html
<tr bgcolor="#f0f0f0"><td class="entry"><b>size_type</b> typedef (defined in <a class="el" href="classafio__v2__xxx_1_1map__handle.html">afio_v2_xxx::map_handle</a>)</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1map__handle.html">afio_v2_xxx::map_handle</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1map__handle.html#a295685127f9dacc561b5f9600d82fad5">swap</a>(map_handle &amp;o) noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1map__handle.html">afio_v2_xxx::map_handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html#a657c12a309cf02bf2351bfcc7f41463b">afio_v2_xxx::io_handle::swap</a>(handle &amp;o) noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html">afio_v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html#a0a1c4773b9fa7bbd04fee0756075d319">try_lock</a>(extent_type offset, extent_type bytes, bool exclusive=true) noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html">afio_v2_xxx::io_handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html#a96b9da71ee7791fbaaa2470c936ec763">unlock</a>(extent_type offset, extent_type bytes) noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html">afio_v2_xxx::io_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1map__handle.html#af9699a9a290ba974184f844c2f6038e8">truncate</a>(size_type newsize, bool permit_relocation=false) noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1map__handle.html">afio_v2_xxx::map_handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html#a0a1c4773b9fa7bbd04fee0756075d319">try_lock</a>(extent_type offset, extent_type bytes, bool exclusive=true) noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html">afio_v2_xxx::io_handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html#a96b9da71ee7791fbaaa2470c936ec763">unlock</a>(extent_type offset, extent_type bytes) noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html">afio_v2_xxx::io_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1map__handle.html#abaff8ae673c35e9bb150e3970dd205a5">update_map</a>() noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1map__handle.html">afio_v2_xxx::map_handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1map__handle.html#a00b7e1e99089c2641c45ee824811ebc1">write</a>(io_request&lt; const_buffers_type &gt; reqs, deadline d=deadline()) noexcept override</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1map__handle.html">afio_v2_xxx::map_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
<tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html#aefac4710e5617264347f437b04732c01">afio_v2_xxx::io_handle::write</a>(io_request&lt; const_buffers_type &gt; reqs, deadline d=deadline()) noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html">afio_v2_xxx::io_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html#ab26a3c5a18cdcc67a506533dbe55e2b3">afio_v2_xxx::io_handle::write</a>(extent_type offset, const char *data, size_type bytes, deadline d=deadline()) noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html">afio_v2_xxx::io_handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html#add161546c0769941fce4fd9f06934e03">afio_v2_xxx::io_handle::write</a>(extent_type offset, std::initializer_list&lt; const_buffer_type &gt; lst, deadline d=deadline()) noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html">afio_v2_xxx::io_handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1map__handle.html#ac35a85e8a6cca721640ddc6b5008e145">zero_memory</a>(buffer_type region) noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1map__handle.html">afio_v2_xxx::map_handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>~handle</b>() (defined in <a class="el" href="classafio__v2__xxx_1_1handle.html">afio_v2_xxx::handle</a>)</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html">afio_v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>~io_handle</b>()=default (defined in <a class="el" href="classafio__v2__xxx_1_1io__handle.html">afio_v2_xxx::io_handle</a>)</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html">afio_v2_xxx::io_handle</a></td><td class="entry"></td></tr>
diff --git a/classafio__v2__xxx_1_1map__handle.html b/classafio__v2__xxx_1_1map__handle.html
index 2228ffcb..2fd1b6bc 100644
--- a/classafio__v2__xxx_1_1map__handle.html
+++ b/classafio__v2__xxx_1_1map__handle.html
@@ -93,7 +93,7 @@ $(document).ready(function(){initNavTree('classafio__v2__xxx_1_1map__handle.html
</div><!--header-->
<div class="contents">
-<p>A handle to a memory mapped region of memory.
+<p>A handle to a memory mapped region of memory, either backed by the system page file or by a section.
<a href="classafio__v2__xxx_1_1map__handle.html#details">More...</a></p>
<p><code>#include &quot;map_handle.hpp&quot;</code></p>
@@ -189,6 +189,8 @@ virtual <a class="el" href="structafio__v2__xxx_1_1native__handle__type.html">na
<tr class="memitem:ad6ab309f4df975892f3bcbef345c779b"><td class="memItemLeft" align="right" valign="top"><a id="ad6ab309f4df975892f3bcbef345c779b"></a>
virtual <a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__result.html">io_result</a>&lt; <a class="el" href="classafio__v2__xxx_1_1io__handle.html#a639b8760b1b98df95e4956f6cc56f6b5">const_buffers_type</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>barrier</b> (<a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__request.html">io_request</a>&lt; <a class="el" href="classafio__v2__xxx_1_1io__handle.html#a639b8760b1b98df95e4956f6cc56f6b5">const_buffers_type</a> &gt; reqs=<a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__request.html">io_request</a>&lt; <a class="el" href="classafio__v2__xxx_1_1io__handle.html#a639b8760b1b98df95e4956f6cc56f6b5">const_buffers_type</a> &gt;(), bool wait_for_device=false, bool and_metadata=false, <a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a> d=<a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a>()) noexcept override</td></tr>
<tr class="separator:ad6ab309f4df975892f3bcbef345c779b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7119886b920953e12340b05ea94e395d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structafio__v2__xxx_1_1io__handle_1_1const__buffer__type.html">const_buffer_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1map__handle.html#a7119886b920953e12340b05ea94e395d">barrier</a> (<a class="el" href="structafio__v2__xxx_1_1io__handle_1_1const__buffer__type.html">const_buffer_type</a> req, bool evict=false) noexcept</td></tr>
+<tr class="separator:a7119886b920953e12340b05ea94e395d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab8a43a5388161f629fef5ee7256dbbc8"><td class="memItemLeft" align="right" valign="top"><a id="ab8a43a5388161f629fef5ee7256dbbc8"></a>
<a class="el" href="classafio__v2__xxx_1_1section__handle.html">section_handle</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1map__handle.html#ab8a43a5388161f629fef5ee7256dbbc8">section</a> () const noexcept</td></tr>
<tr class="memdesc:ab8a43a5388161f629fef5ee7256dbbc8"><td class="mdescLeft">&#160;</td><td class="mdescRight">The memory section this handle is using. <br /></td></tr>
@@ -205,10 +207,24 @@ char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cl
<a class="el" href="classafio__v2__xxx_1_1handle.html#a818fff07c92eaab72532092d1c2a14f9">extent_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1map__handle.html#ac049430769b0fa1d06c93160cef5a2f9">offset</a> () const noexcept</td></tr>
<tr class="memdesc:ac049430769b0fa1d06c93160cef5a2f9"><td class="mdescLeft">&#160;</td><td class="mdescRight">The offset of the memory map. <br /></td></tr>
<tr class="separator:ac049430769b0fa1d06c93160cef5a2f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad29ceb1ecb38e9e74e63404b7db3a5a2"><td class="memItemLeft" align="right" valign="top"><a id="ad29ceb1ecb38e9e74e63404b7db3a5a2"></a>
+<a class="el" href="classafio__v2__xxx_1_1handle.html#a0adf7fa00e23ed561328f473986e9ccc">size_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1map__handle.html#ad29ceb1ecb38e9e74e63404b7db3a5a2">capacity</a> () const noexcept</td></tr>
+<tr class="memdesc:ad29ceb1ecb38e9e74e63404b7db3a5a2"><td class="mdescLeft">&#160;</td><td class="mdescRight">The reservation size of the memory map. <br /></td></tr>
+<tr class="separator:ad29ceb1ecb38e9e74e63404b7db3a5a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aba6ebe9afaccfaf59a92c5b85c72e7d2"><td class="memItemLeft" align="right" valign="top"><a id="aba6ebe9afaccfaf59a92c5b85c72e7d2"></a>
<a class="el" href="classafio__v2__xxx_1_1handle.html#a0adf7fa00e23ed561328f473986e9ccc">size_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1map__handle.html#aba6ebe9afaccfaf59a92c5b85c72e7d2">length</a> () const noexcept</td></tr>
-<tr class="memdesc:aba6ebe9afaccfaf59a92c5b85c72e7d2"><td class="mdescLeft">&#160;</td><td class="mdescRight">The size of the memory map. <br /></td></tr>
+<tr class="memdesc:aba6ebe9afaccfaf59a92c5b85c72e7d2"><td class="mdescLeft">&#160;</td><td class="mdescRight">The size of the memory map. This is the accessible size, NOT the reservation size. <br /></td></tr>
<tr class="separator:aba6ebe9afaccfaf59a92c5b85c72e7d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5c57d56e5704ced94de606895a1fe9bd"><td class="memItemLeft" align="right" valign="top"><a id="a5c57d56e5704ced94de606895a1fe9bd"></a>
+bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1map__handle.html#a5c57d56e5704ced94de606895a1fe9bd">is_nvram</a> () const noexcept</td></tr>
+<tr class="memdesc:a5c57d56e5704ced94de606895a1fe9bd"><td class="mdescLeft">&#160;</td><td class="mdescRight">True if the map is of non-volatile RAM. <br /></td></tr>
+<tr class="separator:a5c57d56e5704ced94de606895a1fe9bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abaff8ae673c35e9bb150e3970dd205a5"><td class="memItemLeft" align="right" valign="top"><a id="abaff8ae673c35e9bb150e3970dd205a5"></a>
+result&lt; <a class="el" href="classafio__v2__xxx_1_1handle.html#a0adf7fa00e23ed561328f473986e9ccc">size_type</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1map__handle.html#abaff8ae673c35e9bb150e3970dd205a5">update_map</a> () noexcept</td></tr>
+<tr class="memdesc:abaff8ae673c35e9bb150e3970dd205a5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Update the size of the memory map to that of any backing section, up to the reservation limit. <br /></td></tr>
+<tr class="separator:abaff8ae673c35e9bb150e3970dd205a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af9699a9a290ba974184f844c2f6038e8"><td class="memItemLeft" align="right" valign="top">result&lt; <a class="el" href="classafio__v2__xxx_1_1handle.html#a0adf7fa00e23ed561328f473986e9ccc">size_type</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1map__handle.html#af9699a9a290ba974184f844c2f6038e8">truncate</a> (<a class="el" href="classafio__v2__xxx_1_1handle.html#a0adf7fa00e23ed561328f473986e9ccc">size_type</a> newsize, bool permit_relocation=false) noexcept</td></tr>
+<tr class="separator:af9699a9a290ba974184f844c2f6038e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4cdb7b9643da8c8e2dee0c8b01511e83"><td class="memItemLeft" align="right" valign="top"><a id="a4cdb7b9643da8c8e2dee0c8b01511e83"></a>
result&lt; <a class="el" href="structafio__v2__xxx_1_1io__handle_1_1buffer__type.html">buffer_type</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1map__handle.html#a4cdb7b9643da8c8e2dee0c8b01511e83">commit</a> (<a class="el" href="structafio__v2__xxx_1_1io__handle_1_1buffer__type.html">buffer_type</a> region, section_handle::flag flag=section_handle::flag::readwrite) noexcept</td></tr>
<tr class="memdesc:a4cdb7b9643da8c8e2dee0c8b01511e83"><td class="mdescLeft">&#160;</td><td class="mdescRight">Ask the system to commit the system resources to make the memory represented by the buffer available with the given permissions. addr and length should be page aligned (see utils::page_sizes()), if not the returned buffer is the region actually committed. <br /></td></tr>
@@ -233,13 +249,13 @@ result&lt; <a class="el" href="structafio__v2__xxx_1_1io__handle_1_1buffer__type
<tr class="memitem:a71d7636f40607829cacc2c974c4a2a28"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__result.html">io_result</a>&lt; <a class="el" href="classafio__v2__xxx_1_1io__handle.html#a70a3c5e6f62efc95db81f831f3b90a2c">buffers_type</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1io__handle.html#a71d7636f40607829cacc2c974c4a2a28">read</a> (<a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__request.html">io_request</a>&lt; <a class="el" href="classafio__v2__xxx_1_1io__handle.html#a70a3c5e6f62efc95db81f831f3b90a2c">buffers_type</a> &gt; reqs, <a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a> d=<a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a>()) noexcept</td></tr>
<tr class="memdesc:a71d7636f40607829cacc2c974c4a2a28"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read data from the open handle. <a href="#a71d7636f40607829cacc2c974c4a2a28">More...</a><br /></td></tr>
<tr class="separator:a71d7636f40607829cacc2c974c4a2a28"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a8af6c6dc1502d40f6aaccc83e49d5342"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__result.html">io_result</a>&lt; <a class="el" href="structafio__v2__xxx_1_1io__handle_1_1buffer__type.html">buffer_type</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1io__handle.html#a8af6c6dc1502d40f6aaccc83e49d5342">read</a> (<a class="el" href="classafio__v2__xxx_1_1handle.html#a818fff07c92eaab72532092d1c2a14f9">extent_type</a> <a class="el" href="classafio__v2__xxx_1_1map__handle.html#ac049430769b0fa1d06c93160cef5a2f9">offset</a>, char *data, <a class="el" href="classafio__v2__xxx_1_1handle.html#a0adf7fa00e23ed561328f473986e9ccc">size_type</a> bytes, <a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a> d=<a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a>()) noexcept</td></tr>
-<tr class="separator:a8af6c6dc1502d40f6aaccc83e49d5342"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a928a8ab64d5b7d68dc7e2b3e5849df24"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__result.html">io_result</a>&lt; <a class="el" href="classafio__v2__xxx_1_1io__handle.html#a70a3c5e6f62efc95db81f831f3b90a2c">buffers_type</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1io__handle.html#a928a8ab64d5b7d68dc7e2b3e5849df24">read</a> (<a class="el" href="classafio__v2__xxx_1_1handle.html#a818fff07c92eaab72532092d1c2a14f9">extent_type</a> <a class="el" href="classafio__v2__xxx_1_1map__handle.html#ac049430769b0fa1d06c93160cef5a2f9">offset</a>, std::initializer_list&lt; <a class="el" href="structafio__v2__xxx_1_1io__handle_1_1buffer__type.html">buffer_type</a> &gt; lst, <a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a> d=<a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a>()) noexcept</td></tr>
+<tr class="separator:a928a8ab64d5b7d68dc7e2b3e5849df24"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aefac4710e5617264347f437b04732c01"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__result.html">io_result</a>&lt; <a class="el" href="classafio__v2__xxx_1_1io__handle.html#a639b8760b1b98df95e4956f6cc56f6b5">const_buffers_type</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1io__handle.html#aefac4710e5617264347f437b04732c01">write</a> (<a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__request.html">io_request</a>&lt; <a class="el" href="classafio__v2__xxx_1_1io__handle.html#a639b8760b1b98df95e4956f6cc56f6b5">const_buffers_type</a> &gt; reqs, <a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a> d=<a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a>()) noexcept</td></tr>
<tr class="memdesc:aefac4710e5617264347f437b04732c01"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write data to the open handle. <a href="#aefac4710e5617264347f437b04732c01">More...</a><br /></td></tr>
<tr class="separator:aefac4710e5617264347f437b04732c01"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ab26a3c5a18cdcc67a506533dbe55e2b3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__result.html">io_result</a>&lt; <a class="el" href="structafio__v2__xxx_1_1io__handle_1_1const__buffer__type.html">const_buffer_type</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1io__handle.html#ab26a3c5a18cdcc67a506533dbe55e2b3">write</a> (<a class="el" href="classafio__v2__xxx_1_1handle.html#a818fff07c92eaab72532092d1c2a14f9">extent_type</a> <a class="el" href="classafio__v2__xxx_1_1map__handle.html#ac049430769b0fa1d06c93160cef5a2f9">offset</a>, const char *data, <a class="el" href="classafio__v2__xxx_1_1handle.html#a0adf7fa00e23ed561328f473986e9ccc">size_type</a> bytes, <a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a> d=<a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a>()) noexcept</td></tr>
-<tr class="separator:ab26a3c5a18cdcc67a506533dbe55e2b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:add161546c0769941fce4fd9f06934e03"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__result.html">io_result</a>&lt; <a class="el" href="classafio__v2__xxx_1_1io__handle.html#a639b8760b1b98df95e4956f6cc56f6b5">const_buffers_type</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1io__handle.html#add161546c0769941fce4fd9f06934e03">write</a> (<a class="el" href="classafio__v2__xxx_1_1handle.html#a818fff07c92eaab72532092d1c2a14f9">extent_type</a> <a class="el" href="classafio__v2__xxx_1_1map__handle.html#ac049430769b0fa1d06c93160cef5a2f9">offset</a>, std::initializer_list&lt; <a class="el" href="structafio__v2__xxx_1_1io__handle_1_1const__buffer__type.html">const_buffer_type</a> &gt; lst, <a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a> d=<a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a>()) noexcept</td></tr>
+<tr class="separator:add161546c0769941fce4fd9f06934e03"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a243156928e89b8988a1412f211b3b603"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__result.html">io_result</a>&lt; <a class="el" href="classafio__v2__xxx_1_1io__handle.html#a639b8760b1b98df95e4956f6cc56f6b5">const_buffers_type</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1io__handle.html#a243156928e89b8988a1412f211b3b603">barrier</a> (<a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__request.html">io_request</a>&lt; <a class="el" href="classafio__v2__xxx_1_1io__handle.html#a639b8760b1b98df95e4956f6cc56f6b5">const_buffers_type</a> &gt; reqs=<a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__request.html">io_request</a>&lt; <a class="el" href="classafio__v2__xxx_1_1io__handle.html#a639b8760b1b98df95e4956f6cc56f6b5">const_buffers_type</a> &gt;(), bool wait_for_device=false, bool and_metadata=false, <a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a> d=<a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a>()) noexcept=0</td></tr>
<tr class="memdesc:a243156928e89b8988a1412f211b3b603"><td class="mdescLeft">&#160;</td><td class="mdescRight">Issue a write reordering barrier such that writes preceding the barrier will reach storage before writes after this barrier. <a href="#a243156928e89b8988a1412f211b3b603">More...</a><br /></td></tr>
<tr class="separator:a243156928e89b8988a1412f211b3b603"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -372,6 +388,9 @@ char *&#160;</td><td class="memItemRight" valign="bottom"><b>_addr</b> {nullptr}
<tr class="memitem:a5b7bae1f24ec1ae96822fb865bfd0ea5"><td class="memItemLeft" align="right" valign="top"><a id="a5b7bae1f24ec1ae96822fb865bfd0ea5"></a>
<a class="el" href="classafio__v2__xxx_1_1handle.html#a818fff07c92eaab72532092d1c2a14f9">extent_type</a>&#160;</td><td class="memItemRight" valign="bottom"><b>_offset</b> {0}</td></tr>
<tr class="separator:a5b7bae1f24ec1ae96822fb865bfd0ea5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1d3f93b7f145af54e62e0401dc57e600"><td class="memItemLeft" align="right" valign="top"><a id="a1d3f93b7f145af54e62e0401dc57e600"></a>
+<a class="el" href="classafio__v2__xxx_1_1handle.html#a0adf7fa00e23ed561328f473986e9ccc">size_type</a>&#160;</td><td class="memItemRight" valign="bottom"><b>_reservation</b> {0}</td></tr>
+<tr class="separator:a1d3f93b7f145af54e62e0401dc57e600"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adffdff916ccf13d88a02ddb6b6a421c8"><td class="memItemLeft" align="right" valign="top"><a id="adffdff916ccf13d88a02ddb6b6a421c8"></a>
<a class="el" href="classafio__v2__xxx_1_1handle.html#a0adf7fa00e23ed561328f473986e9ccc">size_type</a>&#160;</td><td class="memItemRight" valign="bottom"><b>_length</b> {0}</td></tr>
<tr class="separator:adffdff916ccf13d88a02ddb6b6a421c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -395,12 +414,18 @@ class&#160;</td><td class="memItemRight" valign="bottom"><b>mapped_file_handle</
<tr class="separator:a04d5b12318493f32de67854714001ab2"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>A handle to a memory mapped region of memory. </p>
-<dl class="section note"><dt>Note</dt><dd>The native handle returned by this map handle is always that of the backing storage, but closing this handle does not close that of the backing storage, nor does releasing this handle release that of the backing storage. Locking byte ranges of this handle is therefore equal to locking byte ranges in the original backing storage.</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><code>mapped_file_handle</code>, <code>algorithm::mapped_view</code> </dd></dl>
+<div class="textblock"><p>A handle to a memory mapped region of memory, either backed by the system page file or by a section. </p>
+<p>An important concept to realise with mapped regions is that they can far exceed the size of their backing storage. This allows one to reserve address space for a file which may grow in the future. This is how <code>mapped_file_handle</code> is implemented to provide very fast memory mapped file i/o of a potentially growing file.</p>
+<p>The size you specify when creating the map handle is the address space reservation. The map's <code>length()</code> will return the last known <b>valid</b> length of the mapped data i.e. the backing storage's length at the time of construction. This length is used by <code>read()</code> and <code>write()</code> to prevent reading and writing off the end of the mapped region. You can update this length to the backing storage's length using <code>update_map()</code> up to the reservation limit.</p>
+<p>You can attempt to modify the address space reservation after creation using <code>truncate()</code>. If successful, this will be more efficient than tearing down the map and creating a new larger map.</p>
+<p>The native handle returned by this map handle is always that of the backing storage, but closing this handle does not close that of the backing storage, nor does releasing this handle release that of the backing storage. Locking byte ranges of this handle is therefore equal to locking byte ranges in the original backing storage, which can be very useful.</p>
+<h2>Barriers:</h2>
+<p><code>map_handle</code>, because it implements <code>io_handle</code>, implements <code>barrier()</code> in a very conservative way to account for OS differences i.e. it calls <code>msync()</code>, and then the <code>barrier()</code> implementation for the backing file (probably <code>fsync()</code> or equivalent on most platforms, which synchronises the entire file).</p>
+<p>This is vast overkill if you are using non-volatile RAM, so a special <em>inlined</em> <code>barrier()</code> implementation taking a single buffer and no other arguments is also provided. This calls the appropriate architecture-specific instructions to cause the CPU to write all preceding writes out of the write buffers and CPU caches to main memory, so for Intel CPUs this would be <code>CLWB &lt;each cache line&gt;; SFENCE;</code>. As this is inlined, it ought to produce optimal code. If your CPU does not support the requisite instructions (or AFIO has not added support), and empty buffer will be returned to indicate that nothing was barriered, same as the normal <code>barrier()</code> function.</p>
+<dl class="section see"><dt>See also</dt><dd><code>mapped_file_handle</code>, <code>algorithm::mapped_span</code> </dd></dl>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="a243156928e89b8988a1412f211b3b603"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a243156928e89b8988a1412f211b3b603">&#9670;&nbsp;</a></span>barrier()</h2>
+<h2 class="memtitle"><span class="permalink"><a href="#a243156928e89b8988a1412f211b3b603">&#9670;&nbsp;</a></span>barrier() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
@@ -456,7 +481,7 @@ For portability, you can only assume that barriers write order for a single hand
<table class="params">
<tr><td class="paramname">reqs</td><td>A scatter-gather and offset request for what range to barrier. May be ignored on some platforms which always write barrier the entire file. Supplying a default initialised reqs write barriers the entire file. </td></tr>
<tr><td class="paramname">wait_for_device</td><td>True if you want the call to wait until data reaches storage and that storage has acknowledged the data is physically written. Slow. </td></tr>
- <tr><td class="paramname">and_metadata</td><td>True if you want the call to sync the metadata for retrieving the writes before the barrier after a sudden power loss event. Slow. </td></tr>
+ <tr><td class="paramname">and_metadata</td><td>True if you want the call to sync the metadata for retrieving the writes before the barrier after a sudden power loss event. Slow. Setting this to false enables much faster performance, especially on non-volatile memory. </td></tr>
<tr><td class="paramname">d</td><td>An optional deadline by which the i/o must complete, else it is cancelled. Note function may return significantly after this deadline if the i/o takes long to cancel. </td></tr>
</table>
</dd>
@@ -466,6 +491,52 @@ For portability, you can only assume that barriers write order for a single hand
</div>
</div>
+<a id="a7119886b920953e12340b05ea94e395d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a7119886b920953e12340b05ea94e395d">&#9670;&nbsp;</a></span>barrier() <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"><a class="el" href="structafio__v2__xxx_1_1io__handle_1_1const__buffer__type.html">const_buffer_type</a> afio_v2_xxx::map_handle::barrier </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="structafio__v2__xxx_1_1io__handle_1_1const__buffer__type.html">const_buffer_type</a>&#160;</td>
+ <td class="paramname"><em>req</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">bool&#160;</td>
+ <td class="paramname"><em>evict</em> = <code>false</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<p>Lightweight inlined barrier which causes the CPU to write out all buffered writes and dirty cache lines in the request to main memory. </p><dl class="section return"><dt>Returns</dt><dd>The cache lines actually barriered. This may be empty. This function does not return an error. </dd></dl>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">req</td><td>The range of cache lines to write barrier. </td></tr>
+ <tr><td class="paramname">evict</td><td>Whether to also evict the cache lines from CPU caches, useful if they will not be used again.</td></tr>
+ </table>
+ </dd>
+</dl>
+<p>Upon return, one knows that memory in the returned buffer has been barriered (it may be empty if there is no support for this operation in AFIO, or if the current CPU does not support this operation). You may find the <code>is_nvram()</code> observer of particular use here. </p>
+<div class="fragment"><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; {</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; const_buffer_type ret{(<span class="keyword">const</span> <span class="keywordtype">char</span> *) (((uintptr_t) req.data) &amp; 31), 0};</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; ret.<a class="code" href="structafio__v2__xxx_1_1io__handle_1_1const__buffer__type.html#a18ff05ed710d3b3f210bff2f0e195885">len</a> = req.data + req.len - ret.data;</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">const</span> <span class="keywordtype">char</span> *addr = ret.data; addr &lt; ret.data + ret.len; addr += 32)</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="comment">// Slightly UB ...</span></div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; <span class="keyword">auto</span> *p = <span class="keyword">reinterpret_cast&lt;</span><span class="keyword">const </span>persistent&lt;char&gt; *<span class="keyword">&gt;</span>(addr);</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; <span class="keywordflow">if</span>(memory_flush_none == p-&gt;flush(evict ? memory_flush_evict : memory_flush_retain))</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; {</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; req.len = 0;</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; <span class="keywordflow">break</span>;</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="keywordflow">return</span> ret;</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; }</div><div class="ttc" id="structafio__v2__xxx_1_1io__handle_1_1const__buffer__type_html_a18ff05ed710d3b3f210bff2f0e195885"><div class="ttname"><a href="structafio__v2__xxx_1_1io__handle_1_1const__buffer__type.html#a18ff05ed710d3b3f210bff2f0e195885">afio_v2_xxx::io_handle::const_buffer_type::len</a></div><div class="ttdeci">size_t len</div><div class="ttdoc">The number of bytes to write from this address. Try to make this a 64 byte multiple, or ideally, a whole multiple of page_size(). </div><div class="ttdef"><b>Definition:</b> io_handle.hpp:67</div></div>
+</div><!-- fragment -->
+</div>
+</div>
<a id="a54790e954f57372b87b095451cc79c38"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a54790e954f57372b87b095451cc79c38">&#9670;&nbsp;</a></span>clone()</h2>
@@ -655,7 +726,7 @@ For portability, you can only assume that barriers write order for a single hand
</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="l00411"></a><span class="lineno"> 411</span>&#160; {</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; <span class="keywordtype">size_t</span> bytes = 0;</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> &amp;i : reqs.buffers)</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; {</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; <span class="keywordflow">if</span>(bytes + i.len &lt; bytes)</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; {</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; <span class="keywordflow">return</span> std::errc::value_too_large;</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; }</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; bytes += i.len;</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; }</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classafio__v2__xxx_1_1io__handle.html#a88689b15e6e8b6ce1f945737dee4369e">lock</a>(reqs.offset, bytes, <span class="keyword">false</span>, d);</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; }</div><div class="ttc" id="classafio__v2__xxx_1_1io__handle_html_a88689b15e6e8b6ce1f945737dee4369e"><div class="ttname"><a href="classafio__v2__xxx_1_1io__handle.html#a88689b15e6e8b6ce1f945737dee4369e">afio_v2_xxx::io_handle::lock</a></div><div class="ttdeci">virtual result&lt; extent_guard &gt; lock(extent_type offset, extent_type bytes, bool exclusive=true, deadline d=deadline()) noexcept</div><div class="ttdoc">Tries to lock the range of bytes specified for shared or exclusive access. Be aware this passes throu...</div></div>
+<div class="fragment"><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; {</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; <span class="keywordtype">size_t</span> bytes = 0;</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> &amp;i : reqs.buffers)</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; {</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; <span class="keywordflow">if</span>(bytes + i.len &lt; bytes)</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; {</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; <span class="keywordflow">return</span> std::errc::value_too_large;</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; }</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; bytes += i.len;</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; }</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classafio__v2__xxx_1_1io__handle.html#a88689b15e6e8b6ce1f945737dee4369e">lock</a>(reqs.offset, bytes, <span class="keyword">false</span>, d);</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; }</div><div class="ttc" id="classafio__v2__xxx_1_1io__handle_html_a88689b15e6e8b6ce1f945737dee4369e"><div class="ttname"><a href="classafio__v2__xxx_1_1io__handle.html#a88689b15e6e8b6ce1f945737dee4369e">afio_v2_xxx::io_handle::lock</a></div><div class="ttdeci">virtual result&lt; extent_guard &gt; lock(extent_type offset, extent_type bytes, bool exclusive=true, deadline d=deadline()) noexcept</div><div class="ttdoc">Tries to lock the range of bytes specified for shared or exclusive access. Be aware this passes throu...</div></div>
</div><!-- fragment -->
</div>
</div>
@@ -693,7 +764,7 @@ For portability, you can only assume that barriers write order for a single hand
</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="l00425"></a><span class="lineno"> 425</span>&#160; {</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; <span class="keywordtype">size_t</span> bytes = 0;</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> &amp;i : reqs.buffers)</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; {</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; <span class="keywordflow">if</span>(bytes + i.len &lt; bytes)</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; {</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; <span class="keywordflow">return</span> std::errc::value_too_large;</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; }</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; bytes += i.len;</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; }</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classafio__v2__xxx_1_1io__handle.html#a88689b15e6e8b6ce1f945737dee4369e">lock</a>(reqs.offset, bytes, <span class="keyword">true</span>, d);</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; }</div><div class="ttc" id="classafio__v2__xxx_1_1io__handle_html_a88689b15e6e8b6ce1f945737dee4369e"><div class="ttname"><a href="classafio__v2__xxx_1_1io__handle.html#a88689b15e6e8b6ce1f945737dee4369e">afio_v2_xxx::io_handle::lock</a></div><div class="ttdeci">virtual result&lt; extent_guard &gt; lock(extent_type offset, extent_type bytes, bool exclusive=true, deadline d=deadline()) noexcept</div><div class="ttdoc">Tries to lock the range of bytes specified for shared or exclusive access. Be aware this passes throu...</div></div>
+<div class="fragment"><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; {</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; <span class="keywordtype">size_t</span> bytes = 0;</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> &amp;i : reqs.buffers)</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; {</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; <span class="keywordflow">if</span>(bytes + i.len &lt; bytes)</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; {</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; <span class="keywordflow">return</span> std::errc::value_too_large;</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; }</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; bytes += i.len;</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; }</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classafio__v2__xxx_1_1io__handle.html#a88689b15e6e8b6ce1f945737dee4369e">lock</a>(reqs.offset, bytes, <span class="keyword">true</span>, d);</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; }</div><div class="ttc" id="classafio__v2__xxx_1_1io__handle_html_a88689b15e6e8b6ce1f945737dee4369e"><div class="ttname"><a href="classafio__v2__xxx_1_1io__handle.html#a88689b15e6e8b6ce1f945737dee4369e">afio_v2_xxx::io_handle::lock</a></div><div class="ttdeci">virtual result&lt; extent_guard &gt; lock(extent_type offset, extent_type bytes, bool exclusive=true, deadline d=deadline()) noexcept</div><div class="ttdoc">Tries to lock the range of bytes specified for shared or exclusive access. Be aware this passes throu...</div></div>
</div><!-- fragment -->
</div>
</div>
@@ -732,8 +803,8 @@ For portability, you can only assume that barriers write order for a single hand
</div><div class="memdoc">
<p>Create new memory and map it into view. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
- <tr><td class="paramname">bytes</td><td>How many bytes to create and map. Typically will be rounded to a multiple of the page size (see utils::page_sizes()). </td></tr>
- <tr><td class="paramname">_flag</td><td>The permissions with which to map the view which are constrained by the permissions of the memory section. <code>flag::none</code> can be useful for reserving virtual address space without committing system resources, use commit() to later change availability of memory.</td></tr>
+ <tr><td class="paramname">bytes</td><td>How many bytes to create and map. Typically will be rounded up to a multiple of the page size (see <code>utils::page_sizes()</code>) on POSIX, 64Kb on Windows. </td></tr>
+ <tr><td class="paramname">_flag</td><td>The permissions with which to map the view. <code>flag::none</code> can be useful for reserving virtual address space without committing system resources, use commit() to later change availability of memory.</td></tr>
</table>
</dd>
</dl>
@@ -787,10 +858,10 @@ For portability, you can only assume that barriers write order for a single hand
</tr>
</table>
</div><div class="memdoc">
-<p>Create a memory mapped view of a backing storage. </p><dl class="params"><dt>Parameters</dt><dd>
+<p>Create a memory mapped view of a backing storage, optionally reserving additional address space for later growth. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">section</td><td>A memory section handle specifying the backing storage to use. </td></tr>
- <tr><td class="paramname">bytes</td><td>How many bytes to map (0 = the size of the memory section). </td></tr>
+ <tr><td class="paramname">bytes</td><td>How many bytes to reserve (0 = the size of the section). Rounded up to nearest 64Kb on Windows. </td></tr>
<tr><td class="paramname">offset</td><td>The offset into the backing storage to map from. Typically needs to be at least a multiple of the page size (see utils::page_sizes()), on Windows it needs to be a multiple of the kernel memory allocation granularity (typically 64Kb). </td></tr>
<tr><td class="paramname">_flag</td><td>The permissions with which to map the view which are constrained by the permissions of the memory section. <code>flag::none</code> can be useful for reserving virtual address space without committing system resources, use commit() to later change availability of memory.</td></tr>
</table>
@@ -826,7 +897,7 @@ For portability, you can only assume that barriers write order for a single hand
<p>The <em>maximum</em> number of buffers which a single read or write syscall can process at a time for this specific open handle. On POSIX, this is known as <code>IOV_MAX</code>. </p>
<p>Note that the actual number of buffers accepted for a read or a write may be significantly lower than this system-defined limit, depending on available resources. The <code>read()</code> or <code>write()</code> call will return the buffers accepted.</p>
<p>Note also that some OSs will error out if you supply more than this limit to <code>read()</code> or <code>write()</code>, but other OSs do not. Some OSs guarantee that each i/o syscall has effects atomically visible or not to other i/o, other OSs do not.</p>
-<p>Microsoft Windows does not implement scatter-gather file i/o syscalls except for unbuffered i/o. Thus this function will always return <code>1</code> in that situation. </p>
+<p>Microsoft Windows and OS X does not implement scatter-gather file i/o syscalls. Thus this function will always return <code>1</code> in that situation. </p>
</div>
</div>
@@ -854,7 +925,7 @@ For portability, you can only assume that barriers write order for a single hand
</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="l00386"></a><span class="lineno"> 386</span>&#160; {</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; OUTCOME_TRY(ret, <a class="code" href="classafio__v2__xxx_1_1map__handle.html#ae16cb0af9b96f90f87f42318f7d35e65">prefetch</a>(span&lt;buffer_type&gt;(&amp;region, 1)));</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; <span class="keywordflow">return</span> *ret.data();</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; }</div><div class="ttc" id="classafio__v2__xxx_1_1map__handle_html_ae16cb0af9b96f90f87f42318f7d35e65"><div class="ttname"><a href="classafio__v2__xxx_1_1map__handle.html#ae16cb0af9b96f90f87f42318f7d35e65">afio_v2_xxx::map_handle::prefetch</a></div><div class="ttdeci">static result&lt; span&lt; buffer_type &gt; &gt; prefetch(span&lt; buffer_type &gt; regions) noexcept</div><div class="ttdoc">Ask the system to begin to asynchronously prefetch the span of memory regions given, returning the regions actually prefetched. Note that on Windows 7 or earlier the system call to implement this was not available, and so you will see an empty span returned. </div></div>
+<div class="fragment"><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; {</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; OUTCOME_TRY(ret, <a class="code" href="classafio__v2__xxx_1_1map__handle.html#ae16cb0af9b96f90f87f42318f7d35e65">prefetch</a>(span&lt;buffer_type&gt;(&amp;region, 1)));</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; <span class="keywordflow">return</span> *ret.data();</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; }</div><div class="ttc" id="classafio__v2__xxx_1_1map__handle_html_ae16cb0af9b96f90f87f42318f7d35e65"><div class="ttname"><a href="classafio__v2__xxx_1_1map__handle.html#ae16cb0af9b96f90f87f42318f7d35e65">afio_v2_xxx::map_handle::prefetch</a></div><div class="ttdeci">static result&lt; span&lt; buffer_type &gt; &gt; prefetch(span&lt; buffer_type &gt; regions) noexcept</div><div class="ttdoc">Ask the system to begin to asynchronously prefetch the span of memory regions given, returning the regions actually prefetched. Note that on Windows 7 or earlier the system call to implement this was not available, and so you will see an empty span returned. </div></div>
</div><!-- fragment -->
</div>
</div>
@@ -907,8 +978,8 @@ For portability, you can only assume that barriers write order for a single hand
</div>
</div>
-<a id="a8af6c6dc1502d40f6aaccc83e49d5342"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a8af6c6dc1502d40f6aaccc83e49d5342">&#9670;&nbsp;</a></span>read() <span class="overload">[2/3]</span></h2>
+<a id="a928a8ab64d5b7d68dc7e2b3e5849df24"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a928a8ab64d5b7d68dc7e2b3e5849df24">&#9670;&nbsp;</a></span>read() <span class="overload">[2/3]</span></h2>
<div class="memitem">
<div class="memproto">
@@ -917,7 +988,7 @@ For portability, you can only assume that barriers write order for a single hand
<td class="mlabels-left">
<table class="memname">
<tr>
- <td class="memname"><a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__result.html">io_result</a>&lt;<a class="el" href="structafio__v2__xxx_1_1io__handle_1_1buffer__type.html">buffer_type</a>&gt; afio_v2_xxx::io_handle::read </td>
+ <td class="memname"><a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__result.html">io_result</a>&lt;<a class="el" href="classafio__v2__xxx_1_1io__handle.html#a70a3c5e6f62efc95db81f831f3b90a2c">buffers_type</a>&gt; afio_v2_xxx::io_handle::read </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classafio__v2__xxx_1_1handle.html#a818fff07c92eaab72532092d1c2a14f9">extent_type</a>&#160;</td>
<td class="paramname"><em>offset</em>, </td>
@@ -925,14 +996,8 @@ For portability, you can only assume that barriers write order for a single hand
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">char *&#160;</td>
- <td class="paramname"><em>data</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="classafio__v2__xxx_1_1handle.html#a0adf7fa00e23ed561328f473986e9ccc">size_type</a>&#160;</td>
- <td class="paramname"><em>bytes</em>, </td>
+ <td class="paramtype">std::initializer_list&lt; <a class="el" href="structafio__v2__xxx_1_1io__handle_1_1buffer__type.html">buffer_type</a> &gt;&#160;</td>
+ <td class="paramname"><em>lst</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
@@ -953,7 +1018,7 @@ For portability, you can only assume that barriers write order for a single hand
</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="l00225"></a><span class="lineno"> 225</span>&#160; {</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; buffer_type _reqs[1] = {{data, bytes}};</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; io_request&lt;buffers_type&gt; reqs(<a class="code" href="classafio__v2__xxx_1_1io__handle.html#a70a3c5e6f62efc95db81f831f3b90a2c">buffers_type</a>(_reqs), offset);</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; OUTCOME_TRY(v, <a class="code" href="classafio__v2__xxx_1_1io__handle.html#a71d7636f40607829cacc2c974c4a2a28">read</a>(reqs, d));</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="keywordflow">return</span> *v.data();</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; }</div><div class="ttc" id="classafio__v2__xxx_1_1io__handle_html_a70a3c5e6f62efc95db81f831f3b90a2c"><div class="ttname"><a href="classafio__v2__xxx_1_1io__handle.html#a70a3c5e6f62efc95db81f831f3b90a2c">afio_v2_xxx::io_handle::buffers_type</a></div><div class="ttdeci">span&lt; buffer_type &gt; buffers_type</div><div class="ttdoc">The scatter buffers type used by this handle. Guaranteed to be TrivialType apart from construction...</div><div class="ttdef"><b>Definition:</b> io_handle.hpp:76</div></div>
+<div class="fragment"><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; {</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; buffer_type *_reqs = <span class="keyword">reinterpret_cast&lt;</span>buffer_type *<span class="keyword">&gt;</span>(alloca(<span class="keyword">sizeof</span>(buffer_type) * lst.size()));</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; memcpy(_reqs, lst.begin(), <span class="keyword">sizeof</span>(buffer_type) * lst.size());</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; io_request&lt;buffers_type&gt; reqs(<a class="code" href="classafio__v2__xxx_1_1io__handle.html#a70a3c5e6f62efc95db81f831f3b90a2c">buffers_type</a>(_reqs, lst.size()), offset);</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classafio__v2__xxx_1_1io__handle.html#a71d7636f40607829cacc2c974c4a2a28">read</a>(reqs, d);</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; }</div><div class="ttc" id="classafio__v2__xxx_1_1io__handle_html_a70a3c5e6f62efc95db81f831f3b90a2c"><div class="ttname"><a href="classafio__v2__xxx_1_1io__handle.html#a70a3c5e6f62efc95db81f831f3b90a2c">afio_v2_xxx::io_handle::buffers_type</a></div><div class="ttdeci">span&lt; buffer_type &gt; buffers_type</div><div class="ttdoc">The scatter buffers type used by this handle. Guaranteed to be TrivialType apart from construction...</div><div class="ttdef"><b>Definition:</b> io_handle.hpp:76</div></div>
<div class="ttc" id="classafio__v2__xxx_1_1io__handle_html_a71d7636f40607829cacc2c974c4a2a28"><div class="ttname"><a href="classafio__v2__xxx_1_1io__handle.html#a71d7636f40607829cacc2c974c4a2a28">afio_v2_xxx::io_handle::read</a></div><div class="ttdeci">virtual io_result&lt; buffers_type &gt; read(io_request&lt; buffers_type &gt; reqs, deadline d=deadline()) noexcept</div><div class="ttdoc">Read data from the open handle. </div></div>
</div><!-- fragment -->
</div>
@@ -1037,6 +1102,55 @@ For portability, you can only assume that barriers write order for a single hand
</div>
</div>
+<a id="af9699a9a290ba974184f844c2f6038e8"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af9699a9a290ba974184f844c2f6038e8">&#9670;&nbsp;</a></span>truncate()</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="classafio__v2__xxx_1_1handle.html#a0adf7fa00e23ed561328f473986e9ccc">size_type</a>&gt; afio_v2_xxx::map_handle::truncate </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classafio__v2__xxx_1_1handle.html#a0adf7fa00e23ed561328f473986e9ccc">size_type</a>&#160;</td>
+ <td class="paramname"><em>newsize</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">bool&#160;</td>
+ <td class="paramname"><em>permit_relocation</em> = <code>false</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<p>Resize the reservation of the memory map without changing the address (unless the map was zero sized, in which case a new address will be chosen).</p>
+<p>If shrinking, address space is released on POSIX, and on Windows if the new size is zero. If the new size is zero, the address is set to null to prevent surprises. Windows does not support modifying existing mapped regions, so if the new size is not zero, the call will probably fail. Windows should let you truncate a previous extension however, if it is exact.</p>
+<p>If expanding, an attempt is made to map in new reservation immediately after the current address reservation, thus extending the reservation. If anything else is mapped in after the current reservation, the function fails.</p>
+<dl class="section note"><dt>Note</dt><dd>On all supported platforms apart from OS X, proprietary flags exist to avoid performing a map if a map extension cannot be immediately placed after the current map. On OS X, we hint where we'd like the new map to go, but if something is already there OS X will place the map elsewhere. In this situation, we delete the new map and return failure, which is inefficient, but there is nothing else we can do.</dd></dl>
+<dl class="section return"><dt>Returns</dt><dd>The bytes actually reserved. </dd></dl>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">newsize</td><td>The bytes to truncate the map reservation to. Rounded up to the nearest page size (POSIX) or 64Kb on Windows. </td></tr>
+ <tr><td class="paramname">permit_relocation</td><td>Permit the address to change (some OSs provide a syscall for resizing a memory map). </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section user"><dt>Errors returnable</dt><dd>Any of the values POSIX <code>mremap()</code>, <code>mmap(addr)</code> or <code>VirtualAlloc(addr)</code> can return. </dd></dl>
+
+</div>
+</div>
<a id="a0a1c4773b9fa7bbd04fee0756075d319"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0a1c4773b9fa7bbd04fee0756075d319">&#9670;&nbsp;</a></span>try_lock()</h2>
@@ -1077,7 +1191,7 @@ For portability, you can only assume that barriers write order for a single hand
</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="l00408"></a><span class="lineno"> 408</span>&#160;{ <span class="keywordflow">return</span> <a class="code" href="classafio__v2__xxx_1_1io__handle.html#a88689b15e6e8b6ce1f945737dee4369e">lock</a>(offset, bytes, exclusive, deadline(std::chrono::seconds(0))); }</div><div class="ttc" id="classafio__v2__xxx_1_1io__handle_html_a88689b15e6e8b6ce1f945737dee4369e"><div class="ttname"><a href="classafio__v2__xxx_1_1io__handle.html#a88689b15e6e8b6ce1f945737dee4369e">afio_v2_xxx::io_handle::lock</a></div><div class="ttdeci">virtual result&lt; extent_guard &gt; lock(extent_type offset, extent_type bytes, bool exclusive=true, deadline d=deadline()) noexcept</div><div class="ttdoc">Tries to lock the range of bytes specified for shared or exclusive access. Be aware this passes throu...</div></div>
+<div class="fragment"><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160;{ <span class="keywordflow">return</span> <a class="code" href="classafio__v2__xxx_1_1io__handle.html#a88689b15e6e8b6ce1f945737dee4369e">lock</a>(offset, bytes, exclusive, deadline(std::chrono::seconds(0))); }</div><div class="ttc" id="classafio__v2__xxx_1_1io__handle_html_a88689b15e6e8b6ce1f945737dee4369e"><div class="ttname"><a href="classafio__v2__xxx_1_1io__handle.html#a88689b15e6e8b6ce1f945737dee4369e">afio_v2_xxx::io_handle::lock</a></div><div class="ttdeci">virtual result&lt; extent_guard &gt; lock(extent_type offset, extent_type bytes, bool exclusive=true, deadline d=deadline()) noexcept</div><div class="ttdoc">Tries to lock the range of bytes specified for shared or exclusive access. Be aware this passes throu...</div></div>
</div><!-- fragment -->
</div>
</div>
@@ -1177,8 +1291,8 @@ For portability, you can only assume that barriers write order for a single hand
</div>
</div>
-<a id="ab26a3c5a18cdcc67a506533dbe55e2b3"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ab26a3c5a18cdcc67a506533dbe55e2b3">&#9670;&nbsp;</a></span>write() <span class="overload">[2/3]</span></h2>
+<a id="add161546c0769941fce4fd9f06934e03"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#add161546c0769941fce4fd9f06934e03">&#9670;&nbsp;</a></span>write() <span class="overload">[2/3]</span></h2>
<div class="memitem">
<div class="memproto">
@@ -1187,7 +1301,7 @@ For portability, you can only assume that barriers write order for a single hand
<td class="mlabels-left">
<table class="memname">
<tr>
- <td class="memname"><a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__result.html">io_result</a>&lt;<a class="el" href="structafio__v2__xxx_1_1io__handle_1_1const__buffer__type.html">const_buffer_type</a>&gt; afio_v2_xxx::io_handle::write </td>
+ <td class="memname"><a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__result.html">io_result</a>&lt;<a class="el" href="classafio__v2__xxx_1_1io__handle.html#a639b8760b1b98df95e4956f6cc56f6b5">const_buffers_type</a>&gt; afio_v2_xxx::io_handle::write </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classafio__v2__xxx_1_1handle.html#a818fff07c92eaab72532092d1c2a14f9">extent_type</a>&#160;</td>
<td class="paramname"><em>offset</em>, </td>
@@ -1195,14 +1309,8 @@ For portability, you can only assume that barriers write order for a single hand
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">const char *&#160;</td>
- <td class="paramname"><em>data</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="classafio__v2__xxx_1_1handle.html#a0adf7fa00e23ed561328f473986e9ccc">size_type</a>&#160;</td>
- <td class="paramname"><em>bytes</em>, </td>
+ <td class="paramtype">std::initializer_list&lt; <a class="el" href="structafio__v2__xxx_1_1io__handle_1_1const__buffer__type.html">const_buffer_type</a> &gt;&#160;</td>
+ <td class="paramname"><em>lst</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
@@ -1223,7 +1331,7 @@ For portability, you can only assume that barriers write order for a single hand
</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="l00257"></a><span class="lineno"> 257</span>&#160; {</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; const_buffer_type _reqs[1] = {{data, bytes}};</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; io_request&lt;const_buffers_type&gt; reqs(<a class="code" href="classafio__v2__xxx_1_1io__handle.html#a639b8760b1b98df95e4956f6cc56f6b5">const_buffers_type</a>(_reqs), offset);</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; OUTCOME_TRY(v, <a class="code" href="classafio__v2__xxx_1_1io__handle.html#aefac4710e5617264347f437b04732c01">write</a>(reqs, d));</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <span class="keywordflow">return</span> *v.data();</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; }</div><div class="ttc" id="classafio__v2__xxx_1_1io__handle_html_a639b8760b1b98df95e4956f6cc56f6b5"><div class="ttname"><a href="classafio__v2__xxx_1_1io__handle.html#a639b8760b1b98df95e4956f6cc56f6b5">afio_v2_xxx::io_handle::const_buffers_type</a></div><div class="ttdeci">span&lt; const_buffer_type &gt; const_buffers_type</div><div class="ttdoc">The gather buffers type used by this handle. Guaranteed to be TrivialType apart from construction...</div><div class="ttdef"><b>Definition:</b> io_handle.hpp:78</div></div>
+<div class="fragment"><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; {</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; const_buffer_type *_reqs = <span class="keyword">reinterpret_cast&lt;</span>const_buffer_type *<span class="keyword">&gt;</span>(alloca(<span class="keyword">sizeof</span>(const_buffer_type) * lst.size()));</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; memcpy(_reqs, lst.begin(), <span class="keyword">sizeof</span>(const_buffer_type) * lst.size());</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; io_request&lt;const_buffers_type&gt; reqs(<a class="code" href="classafio__v2__xxx_1_1io__handle.html#a639b8760b1b98df95e4956f6cc56f6b5">const_buffers_type</a>(_reqs, lst.size()), offset);</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classafio__v2__xxx_1_1io__handle.html#aefac4710e5617264347f437b04732c01">write</a>(reqs, d);</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; }</div><div class="ttc" id="classafio__v2__xxx_1_1io__handle_html_a639b8760b1b98df95e4956f6cc56f6b5"><div class="ttname"><a href="classafio__v2__xxx_1_1io__handle.html#a639b8760b1b98df95e4956f6cc56f6b5">afio_v2_xxx::io_handle::const_buffers_type</a></div><div class="ttdeci">span&lt; const_buffer_type &gt; const_buffers_type</div><div class="ttdoc">The gather buffers type used by this handle. Guaranteed to be TrivialType apart from construction...</div><div class="ttdef"><b>Definition:</b> io_handle.hpp:78</div></div>
<div class="ttc" id="classafio__v2__xxx_1_1io__handle_html_aefac4710e5617264347f437b04732c01"><div class="ttname"><a href="classafio__v2__xxx_1_1io__handle.html#aefac4710e5617264347f437b04732c01">afio_v2_xxx::io_handle::write</a></div><div class="ttdeci">virtual io_result&lt; const_buffers_type &gt; write(io_request&lt; const_buffers_type &gt; reqs, deadline d=deadline()) noexcept</div><div class="ttdoc">Write data to the open handle. </div></div>
</div><!-- fragment -->
</div>
diff --git a/classafio__v2__xxx_1_1map__handle.js b/classafio__v2__xxx_1_1map__handle.js
index e2733d7b..859fe24e 100644
--- a/classafio__v2__xxx_1_1map__handle.js
+++ b/classafio__v2__xxx_1_1map__handle.js
@@ -24,6 +24,8 @@ var classafio__v2__xxx_1_1map__handle =
[ "are_writes_durable", "classafio__v2__xxx_1_1map__handle.html#a97ffbbf53f51549549efef0b49e125dc", null ],
[ "barrier", "classafio__v2__xxx_1_1map__handle.html#a243156928e89b8988a1412f211b3b603", null ],
[ "barrier", "classafio__v2__xxx_1_1map__handle.html#ad6ab309f4df975892f3bcbef345c779b", null ],
+ [ "barrier", "classafio__v2__xxx_1_1map__handle.html#a7119886b920953e12340b05ea94e395d", null ],
+ [ "capacity", "classafio__v2__xxx_1_1map__handle.html#ad29ceb1ecb38e9e74e63404b7db3a5a2", null ],
[ "clone", "classafio__v2__xxx_1_1map__handle.html#a54790e954f57372b87b095451cc79c38", null ],
[ "close", "classafio__v2__xxx_1_1map__handle.html#aca05f73280e20cb18cc0dd7f60a1aae1", null ],
[ "commit", "classafio__v2__xxx_1_1map__handle.html#a4cdb7b9643da8c8e2dee0c8b01511e83", null ],
@@ -34,6 +36,7 @@ var classafio__v2__xxx_1_1map__handle =
[ "is_append_only", "classafio__v2__xxx_1_1map__handle.html#ae33d4d0faa1377cd371bd6a0ae0769ae", null ],
[ "is_directory", "classafio__v2__xxx_1_1map__handle.html#aa53d88105df8c6be01be649829a65b14", null ],
[ "is_multiplexer", "classafio__v2__xxx_1_1map__handle.html#ab790af4654f5455d8c5e1f1d397543ca", null ],
+ [ "is_nvram", "classafio__v2__xxx_1_1map__handle.html#a5c57d56e5704ced94de606895a1fe9bd", null ],
[ "is_overlapped", "classafio__v2__xxx_1_1map__handle.html#af42904dd49b5517a303e7cb256eae939", null ],
[ "is_process", "classafio__v2__xxx_1_1map__handle.html#ad02958278a0d92e4ec4fb864ba1eb35b", null ],
[ "is_readable", "classafio__v2__xxx_1_1map__handle.html#a349e001cbe359d4e7a8f066c69e9361e", null ],
@@ -54,7 +57,7 @@ var classafio__v2__xxx_1_1map__handle =
[ "operator=", "classafio__v2__xxx_1_1map__handle.html#aa2de383f07c16362890a8602d6089cef", null ],
[ "operator=", "classafio__v2__xxx_1_1map__handle.html#a6643b27340d9bc8d2e29c9e085f8799c", null ],
[ "read", "classafio__v2__xxx_1_1map__handle.html#a71d7636f40607829cacc2c974c4a2a28", null ],
- [ "read", "classafio__v2__xxx_1_1map__handle.html#a8af6c6dc1502d40f6aaccc83e49d5342", null ],
+ [ "read", "classafio__v2__xxx_1_1map__handle.html#a928a8ab64d5b7d68dc7e2b3e5849df24", null ],
[ "read", "classafio__v2__xxx_1_1map__handle.html#a4d8c8f3fcecd58b55316d42799abf6f3", null ],
[ "release", "classafio__v2__xxx_1_1map__handle.html#ac484c07601be4e987b5f1332bdccfee3", null ],
[ "requires_aligned_io", "classafio__v2__xxx_1_1map__handle.html#affb10caeeca67b804695b7378be29e23", null ],
@@ -63,10 +66,12 @@ var classafio__v2__xxx_1_1map__handle =
[ "set_section", "classafio__v2__xxx_1_1map__handle.html#a127eef4449f6afcddbdb684030776868", null ],
[ "swap", "classafio__v2__xxx_1_1map__handle.html#a657c12a309cf02bf2351bfcc7f41463b", null ],
[ "swap", "classafio__v2__xxx_1_1map__handle.html#a295685127f9dacc561b5f9600d82fad5", null ],
+ [ "truncate", "classafio__v2__xxx_1_1map__handle.html#af9699a9a290ba974184f844c2f6038e8", null ],
[ "try_lock", "classafio__v2__xxx_1_1map__handle.html#a0a1c4773b9fa7bbd04fee0756075d319", null ],
[ "unlock", "classafio__v2__xxx_1_1map__handle.html#a96b9da71ee7791fbaaa2470c936ec763", null ],
+ [ "update_map", "classafio__v2__xxx_1_1map__handle.html#abaff8ae673c35e9bb150e3970dd205a5", null ],
[ "write", "classafio__v2__xxx_1_1map__handle.html#aefac4710e5617264347f437b04732c01", null ],
- [ "write", "classafio__v2__xxx_1_1map__handle.html#ab26a3c5a18cdcc67a506533dbe55e2b3", null ],
+ [ "write", "classafio__v2__xxx_1_1map__handle.html#add161546c0769941fce4fd9f06934e03", null ],
[ "write", "classafio__v2__xxx_1_1map__handle.html#a00b7e1e99089c2641c45ee824811ebc1", null ],
[ "zero_memory", "classafio__v2__xxx_1_1map__handle.html#ac35a85e8a6cca721640ddc6b5008e145", null ],
[ "mapped_file_handle", "classafio__v2__xxx_1_1map__handle.html#a04d5b12318493f32de67854714001ab2", null ],
@@ -76,6 +81,7 @@ var classafio__v2__xxx_1_1map__handle =
[ "_flags", "classafio__v2__xxx_1_1map__handle.html#ac46e0a296c31fcd0a996a79d78647fb6", null ],
[ "_length", "classafio__v2__xxx_1_1map__handle.html#adffdff916ccf13d88a02ddb6b6a421c8", null ],
[ "_offset", "classafio__v2__xxx_1_1map__handle.html#a5b7bae1f24ec1ae96822fb865bfd0ea5", null ],
+ [ "_reservation", "classafio__v2__xxx_1_1map__handle.html#a1d3f93b7f145af54e62e0401dc57e600", null ],
[ "_section", "classafio__v2__xxx_1_1map__handle.html#af776fe76eb1e2e493d9d2ddbde0b150c", null ],
[ "_v", "classafio__v2__xxx_1_1map__handle.html#a771ef2bf39ad784eb6265dde077792ad", null ]
]; \ No newline at end of file
diff --git a/classafio__v2__xxx_1_1mapped__file__handle-members.html b/classafio__v2__xxx_1_1mapped__file__handle-members.html
index beccefad..c434cc3c 100644
--- a/classafio__v2__xxx_1_1mapped__file__handle-members.html
+++ b/classafio__v2__xxx_1_1mapped__file__handle-members.html
@@ -190,7 +190,7 @@ $(document).ready(function(){initNavTree('classafio__v2__xxx_1_1mapped__file__ha
<tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1file__handle.html#a7fdd164a8af6542c5fb80c514283c585">random_file</a>(const path_handle &amp;dirpath, mode _mode=mode::write, caching _caching=caching::temporary, flag flags=flag::none) noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1file__handle.html">afio_v2_xxx::file_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1mapped__file__handle.html#af645b1c8daf7b1ce9bf5ed50d1ee83a1">read</a>(io_request&lt; buffers_type &gt; reqs, deadline d=deadline()) noexcept override</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1mapped__file__handle.html">afio_v2_xxx::mapped_file_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html#a71d7636f40607829cacc2c974c4a2a28">afio_v2_xxx::file_handle::read</a>(io_request&lt; buffers_type &gt; reqs, deadline d=deadline()) noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html">afio_v2_xxx::io_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
- <tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html#a8af6c6dc1502d40f6aaccc83e49d5342">afio_v2_xxx::file_handle::read</a>(extent_type offset, char *data, size_type bytes, deadline d=deadline()) noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html">afio_v2_xxx::io_handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html#a928a8ab64d5b7d68dc7e2b3e5849df24">afio_v2_xxx::file_handle::read</a>(extent_type offset, std::initializer_list&lt; buffer_type &gt; lst, deadline d=deadline()) noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html">afio_v2_xxx::io_handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1mapped__file__handle.html#a24f5e84e167be838a0d951bd790413a3">release</a>() noexcept override</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1mapped__file__handle.html">afio_v2_xxx::mapped_file_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
<tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1fs__handle.html#a747962d0776c0fa9e79c9aa9b86da1c0">relink</a>(const path_handle &amp;base, path_view_type path, bool atomic_replace=true, deadline d=std::chrono::seconds(30)) noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1fs__handle.html">afio_v2_xxx::fs_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html#affb10caeeca67b804695b7378be29e23">requires_aligned_io</a>() const noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html">afio_v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
@@ -217,7 +217,7 @@ $(document).ready(function(){initNavTree('classafio__v2__xxx_1_1mapped__file__ha
<tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1mapped__file__handle.html#a297b1f81b6d2875164e46a266c3f1f8a">update_map</a>() noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1mapped__file__handle.html">afio_v2_xxx::mapped_file_handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1mapped__file__handle.html#a74dfae7f50c56037cc4260227a13b6d8">write</a>(io_request&lt; const_buffers_type &gt; reqs, deadline d=deadline()) noexcept override</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1mapped__file__handle.html">afio_v2_xxx::mapped_file_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
<tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html#aefac4710e5617264347f437b04732c01">afio_v2_xxx::file_handle::write</a>(io_request&lt; const_buffers_type &gt; reqs, deadline d=deadline()) noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html">afio_v2_xxx::io_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html#ab26a3c5a18cdcc67a506533dbe55e2b3">afio_v2_xxx::file_handle::write</a>(extent_type offset, const char *data, size_type bytes, deadline d=deadline()) noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html">afio_v2_xxx::io_handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html#add161546c0769941fce4fd9f06934e03">afio_v2_xxx::file_handle::write</a>(extent_type offset, std::initializer_list&lt; const_buffer_type &gt; lst, deadline d=deadline()) noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1io__handle.html">afio_v2_xxx::io_handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1mapped__file__handle.html#a4987fc0ceef3c36f60a8b097083c22f4">zero</a>(extent_type offset, extent_type bytes, deadline=deadline()) noexcept override</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1mapped__file__handle.html">afio_v2_xxx::mapped_file_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>~file_handle</b>() override (defined in <a class="el" href="classafio__v2__xxx_1_1file__handle.html">afio_v2_xxx::file_handle</a>)</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1file__handle.html">afio_v2_xxx::file_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>~fs_handle</b>()=default (defined in <a class="el" href="classafio__v2__xxx_1_1fs__handle.html">afio_v2_xxx::fs_handle</a>)</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1fs__handle.html">afio_v2_xxx::fs_handle</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
diff --git a/classafio__v2__xxx_1_1mapped__file__handle.html b/classafio__v2__xxx_1_1mapped__file__handle.html
index f8df18c0..c80d3335 100644
--- a/classafio__v2__xxx_1_1mapped__file__handle.html
+++ b/classafio__v2__xxx_1_1mapped__file__handle.html
@@ -293,13 +293,13 @@ virtual result&lt; std::vector&lt; std::pair&lt; extent_type, extent_type &gt; &
<tr class="memitem:a71d7636f40607829cacc2c974c4a2a28"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__result.html">io_result</a>&lt; buffers_type &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1io__handle.html#a71d7636f40607829cacc2c974c4a2a28">read</a> (<a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__request.html">io_request</a>&lt; buffers_type &gt; reqs, <a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a> d=<a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a>()) noexcept</td></tr>
<tr class="memdesc:a71d7636f40607829cacc2c974c4a2a28"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read data from the open handle. <a href="#a71d7636f40607829cacc2c974c4a2a28">More...</a><br /></td></tr>
<tr class="separator:a71d7636f40607829cacc2c974c4a2a28"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a8af6c6dc1502d40f6aaccc83e49d5342"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__result.html">io_result</a>&lt; <a class="el" href="structafio__v2__xxx_1_1io__handle_1_1buffer__type.html">buffer_type</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1io__handle.html#a8af6c6dc1502d40f6aaccc83e49d5342">read</a> (extent_type offset, char *data, size_type bytes, <a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a> d=<a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a>()) noexcept</td></tr>
-<tr class="separator:a8af6c6dc1502d40f6aaccc83e49d5342"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a928a8ab64d5b7d68dc7e2b3e5849df24"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__result.html">io_result</a>&lt; buffers_type &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1io__handle.html#a928a8ab64d5b7d68dc7e2b3e5849df24">read</a> (extent_type offset, std::initializer_list&lt; <a class="el" href="structafio__v2__xxx_1_1io__handle_1_1buffer__type.html">buffer_type</a> &gt; lst, <a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a> d=<a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a>()) noexcept</td></tr>
+<tr class="separator:a928a8ab64d5b7d68dc7e2b3e5849df24"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aefac4710e5617264347f437b04732c01"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__result.html">io_result</a>&lt; const_buffers_type &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1io__handle.html#aefac4710e5617264347f437b04732c01">write</a> (<a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__request.html">io_request</a>&lt; const_buffers_type &gt; reqs, <a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a> d=<a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a>()) noexcept</td></tr>
<tr class="memdesc:aefac4710e5617264347f437b04732c01"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write data to the open handle. <a href="#aefac4710e5617264347f437b04732c01">More...</a><br /></td></tr>
<tr class="separator:aefac4710e5617264347f437b04732c01"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ab26a3c5a18cdcc67a506533dbe55e2b3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__result.html">io_result</a>&lt; <a class="el" href="structafio__v2__xxx_1_1io__handle_1_1const__buffer__type.html">const_buffer_type</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1io__handle.html#ab26a3c5a18cdcc67a506533dbe55e2b3">write</a> (extent_type offset, const char *data, size_type bytes, <a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a> d=<a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a>()) noexcept</td></tr>
-<tr class="separator:ab26a3c5a18cdcc67a506533dbe55e2b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:add161546c0769941fce4fd9f06934e03"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__result.html">io_result</a>&lt; const_buffers_type &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1io__handle.html#add161546c0769941fce4fd9f06934e03">write</a> (extent_type offset, std::initializer_list&lt; <a class="el" href="structafio__v2__xxx_1_1io__handle_1_1const__buffer__type.html">const_buffer_type</a> &gt; lst, <a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a> d=<a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a>()) noexcept</td></tr>
+<tr class="separator:add161546c0769941fce4fd9f06934e03"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a88689b15e6e8b6ce1f945737dee4369e"><td class="memItemLeft" align="right" valign="top">virtual result&lt; <a class="el" href="classafio__v2__xxx_1_1io__handle_1_1extent__guard.html">extent_guard</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1io__handle.html#a88689b15e6e8b6ce1f945737dee4369e">lock</a> (extent_type offset, extent_type bytes, bool exclusive=true, <a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a> d=<a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a>()) noexcept</td></tr>
<tr class="memdesc:a88689b15e6e8b6ce1f945737dee4369e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tries to lock the range of bytes specified for shared or exclusive access. Be aware this passes through the same semantics as the underlying OS call, including any POSIX insanity present on your platform: <a href="#a88689b15e6e8b6ce1f945737dee4369e">More...</a><br /></td></tr>
<tr class="separator:a88689b15e6e8b6ce1f945737dee4369e"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -406,7 +406,7 @@ ino_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cla
<tr class="separator:a5a5244ab1a15053aefe93f2c253db5b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaacc27a62ce0859506d7443f0d0e7adf"><td class="memItemLeft" align="right" valign="top">virtual result&lt; <a class="el" href="classafio__v2__xxx_1_1path__handle.html">path_handle</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1fs__handle.html#aaacc27a62ce0859506d7443f0d0e7adf">parent_path_handle</a> (<a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a> d=std::chrono::seconds(30)) const noexcept</td></tr>
<tr class="separator:aaacc27a62ce0859506d7443f0d0e7adf"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a747962d0776c0fa9e79c9aa9b86da1c0"><td class="memItemLeft" align="right" valign="top">virtual result&lt; void &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1fs__handle.html#a747962d0776c0fa9e79c9aa9b86da1c0">relink</a> (const <a class="el" href="classafio__v2__xxx_1_1path__handle.html">path_handle</a> &amp;base, <a class="el" href="classafio__v2__xxx_1_1path__view.html">path_view_type</a> <a class="el" href="namespaceafio__v2__xxx.html#a7432c582b3af692a1f94be33aa73a00e">path</a>, bool atomic_replace=true, <a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a> d=std::chrono::seconds(30)) noexcept</td></tr>
+<tr class="memitem:a747962d0776c0fa9e79c9aa9b86da1c0"><td class="memItemLeft" align="right" valign="top">virtual result&lt; void &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1fs__handle.html#a747962d0776c0fa9e79c9aa9b86da1c0">relink</a> (const <a class="el" href="classafio__v2__xxx_1_1path__handle.html">path_handle</a> &amp;base, <a class="el" href="classafio__v2__xxx_1_1path__view.html">path_view_type</a> <a class="el" href="namespaceafio__v2__xxx.html#a7a98882ead35ebd6bd0700fdf571c44a">path</a>, bool atomic_replace=true, <a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a> d=std::chrono::seconds(30)) noexcept</td></tr>
<tr class="separator:a747962d0776c0fa9e79c9aa9b86da1c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6860b9626adc4d8e6db3ebb92974c054"><td class="memItemLeft" align="right" valign="top">virtual result&lt; void &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1fs__handle.html#a6860b9626adc4d8e6db3ebb92974c054">unlink</a> (<a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a> d=std::chrono::seconds(30)) noexcept</td></tr>
<tr class="separator:a6860b9626adc4d8e6db3ebb92974c054"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -423,7 +423,7 @@ Static Public Member Functions</h2></td></tr>
<tr class="separator:ae19c88791bd2e0bca0d22ec576687a83"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afb68c9671a7ffb40cef4b6db0000a1a5"><td class="memItemLeft" align="right" valign="top">static result&lt; <a class="el" href="classafio__v2__xxx_1_1mapped__file__handle.html">mapped_file_handle</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1mapped__file__handle.html#afb68c9671a7ffb40cef4b6db0000a1a5">mapped_temp_inode</a> (const <a class="el" href="classafio__v2__xxx_1_1path__handle.html">path_handle</a> &amp;dir=<a class="el" href="namespaceafio__v2__xxx_1_1path__discovery.html#af398b6c3762f60aa96cebd270879093e">path_discovery::storage_backed_temporary_files_directory</a>(), <a class="el" href="classafio__v2__xxx_1_1handle.html#a0489b6c1e25cd2bad2ba1ec86e1aaf18">mode</a> _mode=<a class="el" href="classafio__v2__xxx_1_1handle.html#a0489b6c1e25cd2bad2ba1ec86e1aaf18aefb2a684e4afb7d55e6147fbe5a332ee">mode::write</a>, flag <a class="el" href="classafio__v2__xxx_1_1handle.html#ab3d876f5996605158fd6a0582adadad6">flags</a>=flag::none) noexcept</td></tr>
<tr class="separator:afb68c9671a7ffb40cef4b6db0000a1a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:accb36f2bfd98393dc868653798c02d34"><td class="memItemLeft" align="right" valign="top">static result&lt; <a class="el" href="classafio__v2__xxx_1_1file__handle.html">file_handle</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1file__handle.html#accb36f2bfd98393dc868653798c02d34">file</a> (const <a class="el" href="classafio__v2__xxx_1_1path__handle.html">path_handle</a> &amp;base, <a class="el" href="classafio__v2__xxx_1_1path__view.html">path_view_type</a> <a class="el" href="namespaceafio__v2__xxx.html#a7432c582b3af692a1f94be33aa73a00e">path</a>, <a class="el" href="classafio__v2__xxx_1_1handle.html#a0489b6c1e25cd2bad2ba1ec86e1aaf18">mode</a> _mode=<a class="el" href="classafio__v2__xxx_1_1handle.html#a0489b6c1e25cd2bad2ba1ec86e1aaf18aecae13117d6f0584c25a9da6c8f8415e">mode::read</a>, <a class="el" href="classafio__v2__xxx_1_1handle.html#a45ff5c1c5662623d99156870dfeee0a7">creation</a> _creation=creation::open_existing, <a class="el" href="classafio__v2__xxx_1_1handle.html#a6f7e37c73271968271c2342023f58c9e">caching</a> _caching=<a class="el" href="classafio__v2__xxx_1_1handle.html#a6f7e37c73271968271c2342023f58c9eaa181a603769c1f98ad927e7367c7aa51">caching::all</a>, flag <a class="el" href="classafio__v2__xxx_1_1handle.html#ab3d876f5996605158fd6a0582adadad6">flags</a>=flag::none) noexcept</td></tr>
+<tr class="memitem:accb36f2bfd98393dc868653798c02d34"><td class="memItemLeft" align="right" valign="top">static result&lt; <a class="el" href="classafio__v2__xxx_1_1file__handle.html">file_handle</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1file__handle.html#accb36f2bfd98393dc868653798c02d34">file</a> (const <a class="el" href="classafio__v2__xxx_1_1path__handle.html">path_handle</a> &amp;base, <a class="el" href="classafio__v2__xxx_1_1path__view.html">path_view_type</a> <a class="el" href="namespaceafio__v2__xxx.html#a7a98882ead35ebd6bd0700fdf571c44a">path</a>, <a class="el" href="classafio__v2__xxx_1_1handle.html#a0489b6c1e25cd2bad2ba1ec86e1aaf18">mode</a> _mode=<a class="el" href="classafio__v2__xxx_1_1handle.html#a0489b6c1e25cd2bad2ba1ec86e1aaf18aecae13117d6f0584c25a9da6c8f8415e">mode::read</a>, <a class="el" href="classafio__v2__xxx_1_1handle.html#a45ff5c1c5662623d99156870dfeee0a7">creation</a> _creation=creation::open_existing, <a class="el" href="classafio__v2__xxx_1_1handle.html#a6f7e37c73271968271c2342023f58c9e">caching</a> _caching=<a class="el" href="classafio__v2__xxx_1_1handle.html#a6f7e37c73271968271c2342023f58c9eaa181a603769c1f98ad927e7367c7aa51">caching::all</a>, flag <a class="el" href="classafio__v2__xxx_1_1handle.html#ab3d876f5996605158fd6a0582adadad6">flags</a>=flag::none) noexcept</td></tr>
<tr class="separator:accb36f2bfd98393dc868653798c02d34"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7fdd164a8af6542c5fb80c514283c585"><td class="memItemLeft" align="right" valign="top">static result&lt; <a class="el" href="classafio__v2__xxx_1_1file__handle.html">file_handle</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1file__handle.html#a7fdd164a8af6542c5fb80c514283c585">random_file</a> (const <a class="el" href="classafio__v2__xxx_1_1path__handle.html">path_handle</a> &amp;dirpath, <a class="el" href="classafio__v2__xxx_1_1handle.html#a0489b6c1e25cd2bad2ba1ec86e1aaf18">mode</a> _mode=<a class="el" href="classafio__v2__xxx_1_1handle.html#a0489b6c1e25cd2bad2ba1ec86e1aaf18aefb2a684e4afb7d55e6147fbe5a332ee">mode::write</a>, <a class="el" href="classafio__v2__xxx_1_1handle.html#a6f7e37c73271968271c2342023f58c9e">caching</a> _caching=<a class="el" href="classafio__v2__xxx_1_1handle.html#a6f7e37c73271968271c2342023f58c9ead5197d93c063a2b1e22d1630a39b7aef">caching::temporary</a>, flag <a class="el" href="classafio__v2__xxx_1_1handle.html#ab3d876f5996605158fd6a0582adadad6">flags</a>=flag::none) noexcept</td></tr>
<tr class="separator:a7fdd164a8af6542c5fb80c514283c585"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -548,7 +548,7 @@ For portability, you can only assume that barriers write order for a single hand
<table class="params">
<tr><td class="paramname">reqs</td><td>A scatter-gather and offset request for what range to barrier. May be ignored on some platforms which always write barrier the entire file. Supplying a default initialised reqs write barriers the entire file. </td></tr>
<tr><td class="paramname">wait_for_device</td><td>True if you want the call to wait until data reaches storage and that storage has acknowledged the data is physically written. Slow. </td></tr>
- <tr><td class="paramname">and_metadata</td><td>True if you want the call to sync the metadata for retrieving the writes before the barrier after a sudden power loss event. Slow. </td></tr>
+ <tr><td class="paramname">and_metadata</td><td>True if you want the call to sync the metadata for retrieving the writes before the barrier after a sudden power loss event. Slow. Setting this to false enables much faster performance, especially on non-volatile memory. </td></tr>
<tr><td class="paramname">d</td><td>An optional deadline by which the i/o must complete, else it is cancelled. Note function may return significantly after this deadline if the i/o takes long to cancel. </td></tr>
</table>
</dd>
@@ -841,7 +841,7 @@ For portability, you can only assume that barriers write order for a single hand
</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="l00411"></a><span class="lineno"> 411</span>&#160; {</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; <span class="keywordtype">size_t</span> bytes = 0;</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> &amp;i : reqs.buffers)</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; {</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; <span class="keywordflow">if</span>(bytes + i.len &lt; bytes)</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; {</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; <span class="keywordflow">return</span> std::errc::value_too_large;</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; }</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; bytes += i.len;</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; }</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classafio__v2__xxx_1_1io__handle.html#a88689b15e6e8b6ce1f945737dee4369e">lock</a>(reqs.offset, bytes, <span class="keyword">false</span>, d);</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; }</div><div class="ttc" id="classafio__v2__xxx_1_1io__handle_html_a88689b15e6e8b6ce1f945737dee4369e"><div class="ttname"><a href="classafio__v2__xxx_1_1io__handle.html#a88689b15e6e8b6ce1f945737dee4369e">afio_v2_xxx::io_handle::lock</a></div><div class="ttdeci">virtual result&lt; extent_guard &gt; lock(extent_type offset, extent_type bytes, bool exclusive=true, deadline d=deadline()) noexcept</div><div class="ttdoc">Tries to lock the range of bytes specified for shared or exclusive access. Be aware this passes throu...</div></div>
+<div class="fragment"><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; {</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; <span class="keywordtype">size_t</span> bytes = 0;</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> &amp;i : reqs.buffers)</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; {</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; <span class="keywordflow">if</span>(bytes + i.len &lt; bytes)</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; {</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; <span class="keywordflow">return</span> std::errc::value_too_large;</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; }</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; bytes += i.len;</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; }</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classafio__v2__xxx_1_1io__handle.html#a88689b15e6e8b6ce1f945737dee4369e">lock</a>(reqs.offset, bytes, <span class="keyword">false</span>, d);</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; }</div><div class="ttc" id="classafio__v2__xxx_1_1io__handle_html_a88689b15e6e8b6ce1f945737dee4369e"><div class="ttname"><a href="classafio__v2__xxx_1_1io__handle.html#a88689b15e6e8b6ce1f945737dee4369e">afio_v2_xxx::io_handle::lock</a></div><div class="ttdeci">virtual result&lt; extent_guard &gt; lock(extent_type offset, extent_type bytes, bool exclusive=true, deadline d=deadline()) noexcept</div><div class="ttdoc">Tries to lock the range of bytes specified for shared or exclusive access. Be aware this passes throu...</div></div>
</div><!-- fragment -->
</div>
</div>
@@ -879,7 +879,7 @@ For portability, you can only assume that barriers write order for a single hand
</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="l00425"></a><span class="lineno"> 425</span>&#160; {</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; <span class="keywordtype">size_t</span> bytes = 0;</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> &amp;i : reqs.buffers)</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; {</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; <span class="keywordflow">if</span>(bytes + i.len &lt; bytes)</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; {</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; <span class="keywordflow">return</span> std::errc::value_too_large;</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; }</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; bytes += i.len;</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; }</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classafio__v2__xxx_1_1io__handle.html#a88689b15e6e8b6ce1f945737dee4369e">lock</a>(reqs.offset, bytes, <span class="keyword">true</span>, d);</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; }</div><div class="ttc" id="classafio__v2__xxx_1_1io__handle_html_a88689b15e6e8b6ce1f945737dee4369e"><div class="ttname"><a href="classafio__v2__xxx_1_1io__handle.html#a88689b15e6e8b6ce1f945737dee4369e">afio_v2_xxx::io_handle::lock</a></div><div class="ttdeci">virtual result&lt; extent_guard &gt; lock(extent_type offset, extent_type bytes, bool exclusive=true, deadline d=deadline()) noexcept</div><div class="ttdoc">Tries to lock the range of bytes specified for shared or exclusive access. Be aware this passes throu...</div></div>
+<div class="fragment"><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; {</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; <span class="keywordtype">size_t</span> bytes = 0;</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> &amp;i : reqs.buffers)</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; {</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; <span class="keywordflow">if</span>(bytes + i.len &lt; bytes)</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; {</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; <span class="keywordflow">return</span> std::errc::value_too_large;</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; }</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; bytes += i.len;</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; }</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classafio__v2__xxx_1_1io__handle.html#a88689b15e6e8b6ce1f945737dee4369e">lock</a>(reqs.offset, bytes, <span class="keyword">true</span>, d);</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; }</div><div class="ttc" id="classafio__v2__xxx_1_1io__handle_html_a88689b15e6e8b6ce1f945737dee4369e"><div class="ttname"><a href="classafio__v2__xxx_1_1io__handle.html#a88689b15e6e8b6ce1f945737dee4369e">afio_v2_xxx::io_handle::lock</a></div><div class="ttdeci">virtual result&lt; extent_guard &gt; lock(extent_type offset, extent_type bytes, bool exclusive=true, deadline d=deadline()) noexcept</div><div class="ttdoc">Tries to lock the range of bytes specified for shared or exclusive access. Be aware this passes throu...</div></div>
</div><!-- fragment -->
</div>
</div>
@@ -1230,7 +1230,7 @@ For portability, you can only assume that barriers write order for a single hand
<p>The <em>maximum</em> number of buffers which a single read or write syscall can process at a time for this specific open handle. On POSIX, this is known as <code>IOV_MAX</code>. </p>
<p>Note that the actual number of buffers accepted for a read or a write may be significantly lower than this system-defined limit, depending on available resources. The <code>read()</code> or <code>write()</code> call will return the buffers accepted.</p>
<p>Note also that some OSs will error out if you supply more than this limit to <code>read()</code> or <code>write()</code>, but other OSs do not. Some OSs guarantee that each i/o syscall has effects atomically visible or not to other i/o, other OSs do not.</p>
-<p>Microsoft Windows does not implement scatter-gather file i/o syscalls except for unbuffered i/o. Thus this function will always return <code>1</code> in that situation. </p>
+<p>Microsoft Windows and OS X does not implement scatter-gather file i/o syscalls. Thus this function will always return <code>1</code> in that situation. </p>
</div>
</div>
@@ -1366,8 +1366,8 @@ For portability, you can only assume that barriers write order for a single hand
</div>
</div>
-<a id="a8af6c6dc1502d40f6aaccc83e49d5342"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a8af6c6dc1502d40f6aaccc83e49d5342">&#9670;&nbsp;</a></span>read() <span class="overload">[2/3]</span></h2>
+<a id="a928a8ab64d5b7d68dc7e2b3e5849df24"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a928a8ab64d5b7d68dc7e2b3e5849df24">&#9670;&nbsp;</a></span>read() <span class="overload">[2/3]</span></h2>
<div class="memitem">
<div class="memproto">
@@ -1376,7 +1376,7 @@ For portability, you can only assume that barriers write order for a single hand
<td class="mlabels-left">
<table class="memname">
<tr>
- <td class="memname"><a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__result.html">io_result</a>&lt;<a class="el" href="structafio__v2__xxx_1_1io__handle_1_1buffer__type.html">buffer_type</a>&gt; afio_v2_xxx::io_handle::read </td>
+ <td class="memname"><a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__result.html">io_result</a>&lt;buffers_type&gt; afio_v2_xxx::io_handle::read </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classafio__v2__xxx_1_1handle.html#a818fff07c92eaab72532092d1c2a14f9">extent_type</a>&#160;</td>
<td class="paramname"><em>offset</em>, </td>
@@ -1384,14 +1384,8 @@ For portability, you can only assume that barriers write order for a single hand
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">char *&#160;</td>
- <td class="paramname"><em>data</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="classafio__v2__xxx_1_1handle.html#a0adf7fa00e23ed561328f473986e9ccc">size_type</a>&#160;</td>
- <td class="paramname"><em>bytes</em>, </td>
+ <td class="paramtype">std::initializer_list&lt; <a class="el" href="structafio__v2__xxx_1_1io__handle_1_1buffer__type.html">buffer_type</a> &gt;&#160;</td>
+ <td class="paramname"><em>lst</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
@@ -1412,7 +1406,7 @@ For portability, you can only assume that barriers write order for a single hand
</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="l00225"></a><span class="lineno"> 225</span>&#160; {</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; buffer_type _reqs[1] = {{data, bytes}};</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; io_request&lt;buffers_type&gt; reqs(<a class="code" href="classafio__v2__xxx_1_1io__handle.html#a70a3c5e6f62efc95db81f831f3b90a2c">buffers_type</a>(_reqs), offset);</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; OUTCOME_TRY(v, <a class="code" href="classafio__v2__xxx_1_1io__handle.html#a71d7636f40607829cacc2c974c4a2a28">read</a>(reqs, d));</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="keywordflow">return</span> *v.data();</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; }</div><div class="ttc" id="classafio__v2__xxx_1_1io__handle_html_a70a3c5e6f62efc95db81f831f3b90a2c"><div class="ttname"><a href="classafio__v2__xxx_1_1io__handle.html#a70a3c5e6f62efc95db81f831f3b90a2c">afio_v2_xxx::io_handle::buffers_type</a></div><div class="ttdeci">span&lt; buffer_type &gt; buffers_type</div><div class="ttdoc">The scatter buffers type used by this handle. Guaranteed to be TrivialType apart from construction...</div><div class="ttdef"><b>Definition:</b> io_handle.hpp:76</div></div>
+<div class="fragment"><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; {</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; buffer_type *_reqs = <span class="keyword">reinterpret_cast&lt;</span>buffer_type *<span class="keyword">&gt;</span>(alloca(<span class="keyword">sizeof</span>(buffer_type) * lst.size()));</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; memcpy(_reqs, lst.begin(), <span class="keyword">sizeof</span>(buffer_type) * lst.size());</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; io_request&lt;buffers_type&gt; reqs(<a class="code" href="classafio__v2__xxx_1_1io__handle.html#a70a3c5e6f62efc95db81f831f3b90a2c">buffers_type</a>(_reqs, lst.size()), offset);</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classafio__v2__xxx_1_1io__handle.html#a71d7636f40607829cacc2c974c4a2a28">read</a>(reqs, d);</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; }</div><div class="ttc" id="classafio__v2__xxx_1_1io__handle_html_a70a3c5e6f62efc95db81f831f3b90a2c"><div class="ttname"><a href="classafio__v2__xxx_1_1io__handle.html#a70a3c5e6f62efc95db81f831f3b90a2c">afio_v2_xxx::io_handle::buffers_type</a></div><div class="ttdeci">span&lt; buffer_type &gt; buffers_type</div><div class="ttdoc">The scatter buffers type used by this handle. Guaranteed to be TrivialType apart from construction...</div><div class="ttdef"><b>Definition:</b> io_handle.hpp:76</div></div>
<div class="ttc" id="classafio__v2__xxx_1_1io__handle_html_a71d7636f40607829cacc2c974c4a2a28"><div class="ttname"><a href="classafio__v2__xxx_1_1io__handle.html#a71d7636f40607829cacc2c974c4a2a28">afio_v2_xxx::io_handle::read</a></div><div class="ttdeci">virtual io_result&lt; buffers_type &gt; read(io_request&lt; buffers_type &gt; reqs, deadline d=deadline()) noexcept</div><div class="ttdoc">Read data from the open handle. </div></div>
</div><!-- fragment -->
</div>
@@ -1776,7 +1770,7 @@ For portability, you can only assume that barriers write order for a single hand
</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="l00408"></a><span class="lineno"> 408</span>&#160;{ <span class="keywordflow">return</span> <a class="code" href="classafio__v2__xxx_1_1io__handle.html#a88689b15e6e8b6ce1f945737dee4369e">lock</a>(offset, bytes, exclusive, deadline(std::chrono::seconds(0))); }</div><div class="ttc" id="classafio__v2__xxx_1_1io__handle_html_a88689b15e6e8b6ce1f945737dee4369e"><div class="ttname"><a href="classafio__v2__xxx_1_1io__handle.html#a88689b15e6e8b6ce1f945737dee4369e">afio_v2_xxx::io_handle::lock</a></div><div class="ttdeci">virtual result&lt; extent_guard &gt; lock(extent_type offset, extent_type bytes, bool exclusive=true, deadline d=deadline()) noexcept</div><div class="ttdoc">Tries to lock the range of bytes specified for shared or exclusive access. Be aware this passes throu...</div></div>
+<div class="fragment"><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160;{ <span class="keywordflow">return</span> <a class="code" href="classafio__v2__xxx_1_1io__handle.html#a88689b15e6e8b6ce1f945737dee4369e">lock</a>(offset, bytes, exclusive, deadline(std::chrono::seconds(0))); }</div><div class="ttc" id="classafio__v2__xxx_1_1io__handle_html_a88689b15e6e8b6ce1f945737dee4369e"><div class="ttname"><a href="classafio__v2__xxx_1_1io__handle.html#a88689b15e6e8b6ce1f945737dee4369e">afio_v2_xxx::io_handle::lock</a></div><div class="ttdeci">virtual result&lt; extent_guard &gt; lock(extent_type offset, extent_type bytes, bool exclusive=true, deadline d=deadline()) noexcept</div><div class="ttdoc">Tries to lock the range of bytes specified for shared or exclusive access. Be aware this passes throu...</div></div>
</div><!-- fragment -->
</div>
</div>
@@ -1940,8 +1934,8 @@ For portability, you can only assume that barriers write order for a single hand
</div>
</div>
-<a id="ab26a3c5a18cdcc67a506533dbe55e2b3"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ab26a3c5a18cdcc67a506533dbe55e2b3">&#9670;&nbsp;</a></span>write() <span class="overload">[2/3]</span></h2>
+<a id="add161546c0769941fce4fd9f06934e03"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#add161546c0769941fce4fd9f06934e03">&#9670;&nbsp;</a></span>write() <span class="overload">[2/3]</span></h2>
<div class="memitem">
<div class="memproto">
@@ -1950,7 +1944,7 @@ For portability, you can only assume that barriers write order for a single hand
<td class="mlabels-left">
<table class="memname">
<tr>
- <td class="memname"><a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__result.html">io_result</a>&lt;<a class="el" href="structafio__v2__xxx_1_1io__handle_1_1const__buffer__type.html">const_buffer_type</a>&gt; afio_v2_xxx::io_handle::write </td>
+ <td class="memname"><a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__result.html">io_result</a>&lt;const_buffers_type&gt; afio_v2_xxx::io_handle::write </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classafio__v2__xxx_1_1handle.html#a818fff07c92eaab72532092d1c2a14f9">extent_type</a>&#160;</td>
<td class="paramname"><em>offset</em>, </td>
@@ -1958,14 +1952,8 @@ For portability, you can only assume that barriers write order for a single hand
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">const char *&#160;</td>
- <td class="paramname"><em>data</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="classafio__v2__xxx_1_1handle.html#a0adf7fa00e23ed561328f473986e9ccc">size_type</a>&#160;</td>
- <td class="paramname"><em>bytes</em>, </td>
+ <td class="paramtype">std::initializer_list&lt; <a class="el" href="structafio__v2__xxx_1_1io__handle_1_1const__buffer__type.html">const_buffer_type</a> &gt;&#160;</td>
+ <td class="paramname"><em>lst</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
@@ -1986,7 +1974,7 @@ For portability, you can only assume that barriers write order for a single hand
</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="l00257"></a><span class="lineno"> 257</span>&#160; {</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; const_buffer_type _reqs[1] = {{data, bytes}};</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; io_request&lt;const_buffers_type&gt; reqs(<a class="code" href="classafio__v2__xxx_1_1io__handle.html#a639b8760b1b98df95e4956f6cc56f6b5">const_buffers_type</a>(_reqs), offset);</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; OUTCOME_TRY(v, <a class="code" href="classafio__v2__xxx_1_1io__handle.html#aefac4710e5617264347f437b04732c01">write</a>(reqs, d));</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <span class="keywordflow">return</span> *v.data();</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; }</div><div class="ttc" id="classafio__v2__xxx_1_1io__handle_html_a639b8760b1b98df95e4956f6cc56f6b5"><div class="ttname"><a href="classafio__v2__xxx_1_1io__handle.html#a639b8760b1b98df95e4956f6cc56f6b5">afio_v2_xxx::io_handle::const_buffers_type</a></div><div class="ttdeci">span&lt; const_buffer_type &gt; const_buffers_type</div><div class="ttdoc">The gather buffers type used by this handle. Guaranteed to be TrivialType apart from construction...</div><div class="ttdef"><b>Definition:</b> io_handle.hpp:78</div></div>
+<div class="fragment"><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; {</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; const_buffer_type *_reqs = <span class="keyword">reinterpret_cast&lt;</span>const_buffer_type *<span class="keyword">&gt;</span>(alloca(<span class="keyword">sizeof</span>(const_buffer_type) * lst.size()));</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; memcpy(_reqs, lst.begin(), <span class="keyword">sizeof</span>(const_buffer_type) * lst.size());</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; io_request&lt;const_buffers_type&gt; reqs(<a class="code" href="classafio__v2__xxx_1_1io__handle.html#a639b8760b1b98df95e4956f6cc56f6b5">const_buffers_type</a>(_reqs, lst.size()), offset);</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classafio__v2__xxx_1_1io__handle.html#aefac4710e5617264347f437b04732c01">write</a>(reqs, d);</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; }</div><div class="ttc" id="classafio__v2__xxx_1_1io__handle_html_a639b8760b1b98df95e4956f6cc56f6b5"><div class="ttname"><a href="classafio__v2__xxx_1_1io__handle.html#a639b8760b1b98df95e4956f6cc56f6b5">afio_v2_xxx::io_handle::const_buffers_type</a></div><div class="ttdeci">span&lt; const_buffer_type &gt; const_buffers_type</div><div class="ttdoc">The gather buffers type used by this handle. Guaranteed to be TrivialType apart from construction...</div><div class="ttdef"><b>Definition:</b> io_handle.hpp:78</div></div>
<div class="ttc" id="classafio__v2__xxx_1_1io__handle_html_aefac4710e5617264347f437b04732c01"><div class="ttname"><a href="classafio__v2__xxx_1_1io__handle.html#aefac4710e5617264347f437b04732c01">afio_v2_xxx::io_handle::write</a></div><div class="ttdeci">virtual io_result&lt; const_buffers_type &gt; write(io_request&lt; const_buffers_type &gt; reqs, deadline d=deadline()) noexcept</div><div class="ttdoc">Write data to the open handle. </div></div>
</div><!-- fragment -->
</div>
diff --git a/classafio__v2__xxx_1_1mapped__file__handle.js b/classafio__v2__xxx_1_1mapped__file__handle.js
index e5bc7dbd..5a9b8fa0 100644
--- a/classafio__v2__xxx_1_1mapped__file__handle.js
+++ b/classafio__v2__xxx_1_1mapped__file__handle.js
@@ -63,7 +63,7 @@ var classafio__v2__xxx_1_1mapped__file__handle =
[ "operator=", "classafio__v2__xxx_1_1mapped__file__handle.html#ac7058e8556442440b6ae21bf3960b2fd", null ],
[ "parent_path_handle", "classafio__v2__xxx_1_1mapped__file__handle.html#aaacc27a62ce0859506d7443f0d0e7adf", null ],
[ "read", "classafio__v2__xxx_1_1mapped__file__handle.html#a71d7636f40607829cacc2c974c4a2a28", null ],
- [ "read", "classafio__v2__xxx_1_1mapped__file__handle.html#a8af6c6dc1502d40f6aaccc83e49d5342", null ],
+ [ "read", "classafio__v2__xxx_1_1mapped__file__handle.html#a928a8ab64d5b7d68dc7e2b3e5849df24", null ],
[ "read", "classafio__v2__xxx_1_1mapped__file__handle.html#af645b1c8daf7b1ce9bf5ed50d1ee83a1", null ],
[ "release", "classafio__v2__xxx_1_1mapped__file__handle.html#a24f5e84e167be838a0d951bd790413a3", null ],
[ "relink", "classafio__v2__xxx_1_1mapped__file__handle.html#a747962d0776c0fa9e79c9aa9b86da1c0", null ],
@@ -86,7 +86,7 @@ var classafio__v2__xxx_1_1mapped__file__handle =
[ "unlock", "classafio__v2__xxx_1_1mapped__file__handle.html#a96b9da71ee7791fbaaa2470c936ec763", null ],
[ "update_map", "classafio__v2__xxx_1_1mapped__file__handle.html#a297b1f81b6d2875164e46a266c3f1f8a", null ],
[ "write", "classafio__v2__xxx_1_1mapped__file__handle.html#aefac4710e5617264347f437b04732c01", null ],
- [ "write", "classafio__v2__xxx_1_1mapped__file__handle.html#ab26a3c5a18cdcc67a506533dbe55e2b3", null ],
+ [ "write", "classafio__v2__xxx_1_1mapped__file__handle.html#add161546c0769941fce4fd9f06934e03", null ],
[ "write", "classafio__v2__xxx_1_1mapped__file__handle.html#a74dfae7f50c56037cc4260227a13b6d8", null ],
[ "zero", "classafio__v2__xxx_1_1mapped__file__handle.html#a4987fc0ceef3c36f60a8b097083c22f4", null ],
[ "_caching", "classafio__v2__xxx_1_1mapped__file__handle.html#af024e3d92d9a01ac367734e9cdc517fb", null ],
diff --git a/classafio__v2__xxx_1_1section__handle-members.html b/classafio__v2__xxx_1_1section__handle-members.html
index 4e71e90d..0cdd4e3f 100644
--- a/classafio__v2__xxx_1_1section__handle-members.html
+++ b/classafio__v2__xxx_1_1section__handle-members.html
@@ -113,42 +113,43 @@ $(document).ready(function(){initNavTree('classafio__v2__xxx_1_1section__handle.
<tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html#ae33d4d0faa1377cd371bd6a0ae0769ae">is_append_only</a>() const noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html">afio_v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html#aa53d88105df8c6be01be649829a65b14">is_directory</a>() const noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html">afio_v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html#ab790af4654f5455d8c5e1f1d397543ca">is_multiplexer</a>() const noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html">afio_v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html#af42904dd49b5517a303e7cb256eae939">is_overlapped</a>() const noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html">afio_v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html#ad02958278a0d92e4ec4fb864ba1eb35b">is_process</a>() const noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html">afio_v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html#a349e001cbe359d4e7a8f066c69e9361e">is_readable</a>() const noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html">afio_v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html#a526c300d421155ccc071b04db4bca65d">is_regular</a>() const noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html">afio_v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html#ac5b2859fabe04dbfc37020daed618257">is_section</a>() const noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html">afio_v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html#aac62f621c42be6eeb8d9a5700da367f9">is_seekable</a>() const noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html">afio_v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html#a3c777f045dc2b0248b891d6e7811d152">is_symlink</a>() const noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html">afio_v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html#a4194a05dd9694d2c47d5a45f925db1d7">is_valid</a>() const noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html">afio_v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html#a5be9a526bc5c1be758b0cfc36a262f6e">is_writable</a>() const noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html">afio_v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html#a00f42a44de714feb3ed86dd0a175e69c">kernel_caching</a>() const noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html">afio_v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1section__handle.html#a9f0dec7d839f348c39e7a185777866ea">length</a>() const noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1section__handle.html">afio_v2_xxx::section_handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html#a0489b6c1e25cd2bad2ba1ec86e1aaf18">mode</a> enum name</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html">afio_v2_xxx::handle</a></td><td class="entry"></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html#a875440f1b368472f1840c70c266f3a48">native_handle</a>() const noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html">afio_v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1section__handle.html#a22825af99eb92a3c137dc34e3e14252a">operator=</a>(section_handle &amp;&amp;o) noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1section__handle.html">afio_v2_xxx::section_handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1section__handle.html#a9cdd4716f5c29bd733246721edcbd6bb">operator=</a>(const section_handle &amp;)=delete</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1section__handle.html">afio_v2_xxx::section_handle</a></td><td class="entry"></td></tr>
- <tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html#a01c5da24ff7dfcbd1533f325048b2838">afio_v2_xxx::handle::operator=</a>(const handle &amp;o)=delete</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html">afio_v2_xxx::handle</a></td><td class="entry"></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html#a2a51598c2a0935d77313a772fd2f1d00">afio_v2_xxx::handle::operator=</a>(handle &amp;&amp;o) noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html">afio_v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html#a6c4df2242ece6f63ba7ef4e6baafaca6">path_type</a> typedef</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html">afio_v2_xxx::handle</a></td><td class="entry"></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html#a73d5f2070bce0c3d7fa536d3cbed7b52">release</a>() noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html">afio_v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
- <tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html#affb10caeeca67b804695b7378be29e23">requires_aligned_io</a>() const noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html">afio_v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1section__handle.html#a7e69ae5094da2517f2ed0bd046d18302">section</a>(file_handle &amp;backing, extent_type maximum_size, flag _flag) noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1section__handle.html">afio_v2_xxx::section_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
- <tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1section__handle.html#abcecfb5615a710e828a11c9db78b3502">section</a>(file_handle &amp;backing, extent_type bytes=0) noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1section__handle.html">afio_v2_xxx::section_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1section__handle.html#ad3817e499d3b937c5ee57589e9cb6fd1">section</a>(extent_type bytes, const path_handle &amp;dirh=path_discovery::storage_backed_temporary_files_directory(), flag _flag=flag::read|flag::write) noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1section__handle.html">afio_v2_xxx::section_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
- <tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1section__handle.html#a0f95ed462d97954df59e6b56625ce899">section_flags</a>() const noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1section__handle.html">afio_v2_xxx::section_handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1section__handle.html#a2824f51d5726bb8015d89ac1ea7abe5f">section_handle</a>()</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1section__handle.html">afio_v2_xxx::section_handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1section__handle.html#a74e73651ebfc233e31fff3d39b3a8e1a">section_handle</a>(native_handle_type sectionh, file_handle *backing, file_handle anonymous, flag __flag)</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1section__handle.html">afio_v2_xxx::section_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1section__handle.html#a84ec7259dfb8bab518d3def875bdc6f2">section_handle</a>(section_handle &amp;&amp;o) noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1section__handle.html">afio_v2_xxx::section_handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1section__handle.html#a8f20e4f7aec4eb5545b9b223471ae1fc">section_handle</a>(const section_handle &amp;)=delete</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1section__handle.html">afio_v2_xxx::section_handle</a></td><td class="entry"></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html#af1610ec7fb0a41f039e3e17e0dc467ab">set_append_only</a>(bool enable) noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html">afio_v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
- <tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1section__handle.html#a1b77cff150e130669624b5046b35e01e">set_backing</a>(file_handle *fh) noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1section__handle.html">afio_v2_xxx::section_handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>size_type</b> typedef (defined in <a class="el" href="classafio__v2__xxx_1_1section__handle.html">afio_v2_xxx::section_handle</a>)</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1section__handle.html">afio_v2_xxx::section_handle</a></td><td class="entry"></td></tr>
- <tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1section__handle.html#a852a6b382a9e69f568977b2cd53e0496">swap</a>(section_handle &amp;o) noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1section__handle.html">afio_v2_xxx::section_handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html#a657c12a309cf02bf2351bfcc7f41463b">afio_v2_xxx::handle::swap</a>(handle &amp;o) noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html">afio_v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1section__handle.html#a229f515ed3251071d374476204e23e30">truncate</a>(extent_type newsize=0) noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1section__handle.html">afio_v2_xxx::section_handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>~handle</b>() (defined in <a class="el" href="classafio__v2__xxx_1_1handle.html">afio_v2_xxx::handle</a>)</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html">afio_v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>~section_handle</b>() override (defined in <a class="el" href="classafio__v2__xxx_1_1section__handle.html">afio_v2_xxx::section_handle</a>)</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1section__handle.html">afio_v2_xxx::section_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1section__handle.html#a111bb9698b6180e9f211e27816f8a4da">is_nvram</a>() const noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1section__handle.html">afio_v2_xxx::section_handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html#af42904dd49b5517a303e7cb256eae939">is_overlapped</a>() const noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html">afio_v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html#ad02958278a0d92e4ec4fb864ba1eb35b">is_process</a>() const noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html">afio_v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html#a349e001cbe359d4e7a8f066c69e9361e">is_readable</a>() const noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html">afio_v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html#a526c300d421155ccc071b04db4bca65d">is_regular</a>() const noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html">afio_v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html#ac5b2859fabe04dbfc37020daed618257">is_section</a>() const noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html">afio_v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html#aac62f621c42be6eeb8d9a5700da367f9">is_seekable</a>() const noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html">afio_v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html#a3c777f045dc2b0248b891d6e7811d152">is_symlink</a>() const noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html">afio_v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html#a4194a05dd9694d2c47d5a45f925db1d7">is_valid</a>() const noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html">afio_v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html#a5be9a526bc5c1be758b0cfc36a262f6e">is_writable</a>() const noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html">afio_v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html#a00f42a44de714feb3ed86dd0a175e69c">kernel_caching</a>() const noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html">afio_v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1section__handle.html#a9f0dec7d839f348c39e7a185777866ea">length</a>() const noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1section__handle.html">afio_v2_xxx::section_handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html#a0489b6c1e25cd2bad2ba1ec86e1aaf18">mode</a> enum name</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html">afio_v2_xxx::handle</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html#a875440f1b368472f1840c70c266f3a48">native_handle</a>() const noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html">afio_v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1section__handle.html#a22825af99eb92a3c137dc34e3e14252a">operator=</a>(section_handle &amp;&amp;o) noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1section__handle.html">afio_v2_xxx::section_handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1section__handle.html#a9cdd4716f5c29bd733246721edcbd6bb">operator=</a>(const section_handle &amp;)=delete</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1section__handle.html">afio_v2_xxx::section_handle</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html#a01c5da24ff7dfcbd1533f325048b2838">afio_v2_xxx::handle::operator=</a>(const handle &amp;o)=delete</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html">afio_v2_xxx::handle</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html#a2a51598c2a0935d77313a772fd2f1d00">afio_v2_xxx::handle::operator=</a>(handle &amp;&amp;o) noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html">afio_v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html#a6c4df2242ece6f63ba7ef4e6baafaca6">path_type</a> typedef</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html">afio_v2_xxx::handle</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html#a73d5f2070bce0c3d7fa536d3cbed7b52">release</a>() noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html">afio_v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html#affb10caeeca67b804695b7378be29e23">requires_aligned_io</a>() const noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html">afio_v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1section__handle.html#a7e69ae5094da2517f2ed0bd046d18302">section</a>(file_handle &amp;backing, extent_type maximum_size, flag _flag) noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1section__handle.html">afio_v2_xxx::section_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1section__handle.html#abcecfb5615a710e828a11c9db78b3502">section</a>(file_handle &amp;backing, extent_type bytes=0) noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1section__handle.html">afio_v2_xxx::section_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1section__handle.html#ad3817e499d3b937c5ee57589e9cb6fd1">section</a>(extent_type bytes, const path_handle &amp;dirh=path_discovery::storage_backed_temporary_files_directory(), flag _flag=flag::read|flag::write) noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1section__handle.html">afio_v2_xxx::section_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1section__handle.html#a0f95ed462d97954df59e6b56625ce899">section_flags</a>() const noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1section__handle.html">afio_v2_xxx::section_handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1section__handle.html#a2824f51d5726bb8015d89ac1ea7abe5f">section_handle</a>()</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1section__handle.html">afio_v2_xxx::section_handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1section__handle.html#a74e73651ebfc233e31fff3d39b3a8e1a">section_handle</a>(native_handle_type sectionh, file_handle *backing, file_handle anonymous, flag __flag)</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1section__handle.html">afio_v2_xxx::section_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1section__handle.html#a84ec7259dfb8bab518d3def875bdc6f2">section_handle</a>(section_handle &amp;&amp;o) noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1section__handle.html">afio_v2_xxx::section_handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1section__handle.html#a8f20e4f7aec4eb5545b9b223471ae1fc">section_handle</a>(const section_handle &amp;)=delete</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1section__handle.html">afio_v2_xxx::section_handle</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html#af1610ec7fb0a41f039e3e17e0dc467ab">set_append_only</a>(bool enable) noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html">afio_v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1section__handle.html#a1b77cff150e130669624b5046b35e01e">set_backing</a>(file_handle *fh) noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1section__handle.html">afio_v2_xxx::section_handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>size_type</b> typedef (defined in <a class="el" href="classafio__v2__xxx_1_1section__handle.html">afio_v2_xxx::section_handle</a>)</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1section__handle.html">afio_v2_xxx::section_handle</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1section__handle.html#a852a6b382a9e69f568977b2cd53e0496">swap</a>(section_handle &amp;o) noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1section__handle.html">afio_v2_xxx::section_handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html#a657c12a309cf02bf2351bfcc7f41463b">afio_v2_xxx::handle::swap</a>(handle &amp;o) noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html">afio_v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classafio__v2__xxx_1_1section__handle.html#a229f515ed3251071d374476204e23e30">truncate</a>(extent_type newsize=0) noexcept</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1section__handle.html">afio_v2_xxx::section_handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>~handle</b>() (defined in <a class="el" href="classafio__v2__xxx_1_1handle.html">afio_v2_xxx::handle</a>)</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1handle.html">afio_v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>~section_handle</b>() override (defined in <a class="el" href="classafio__v2__xxx_1_1section__handle.html">afio_v2_xxx::section_handle</a>)</td><td class="entry"><a class="el" href="classafio__v2__xxx_1_1section__handle.html">afio_v2_xxx::section_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
</table></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
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 -->
diff --git a/classafio__v2__xxx_1_1section__handle.js b/classafio__v2__xxx_1_1section__handle.js
index e6bf6873..d361f6f6 100644
--- a/classafio__v2__xxx_1_1section__handle.js
+++ b/classafio__v2__xxx_1_1section__handle.js
@@ -47,6 +47,7 @@ var classafio__v2__xxx_1_1section__handle =
[ "is_append_only", "classafio__v2__xxx_1_1section__handle.html#ae33d4d0faa1377cd371bd6a0ae0769ae", null ],
[ "is_directory", "classafio__v2__xxx_1_1section__handle.html#aa53d88105df8c6be01be649829a65b14", null ],
[ "is_multiplexer", "classafio__v2__xxx_1_1section__handle.html#ab790af4654f5455d8c5e1f1d397543ca", null ],
+ [ "is_nvram", "classafio__v2__xxx_1_1section__handle.html#a111bb9698b6180e9f211e27816f8a4da", null ],
[ "is_overlapped", "classafio__v2__xxx_1_1section__handle.html#af42904dd49b5517a303e7cb256eae939", null ],
[ "is_process", "classafio__v2__xxx_1_1section__handle.html#ad02958278a0d92e4ec4fb864ba1eb35b", null ],
[ "is_readable", "classafio__v2__xxx_1_1section__handle.html#a349e001cbe359d4e7a8f066c69e9361e", null ],
diff --git a/classes.html b/classes.html
index d28253d4..b5a96ab1 100644
--- a/classes.html
+++ b/classes.html
@@ -96,7 +96,7 @@ $(document).ready(function(){initNavTree('classes.html','');});
<tr><td rowspan="2" valign="bottom"><a name="letter_a"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;a&#160;&#160;</div></td></tr></table>
</td><td valign="top"><a class="el" href="structafio__v2__xxx_1_1construct_3_01map__handle_01_4.html">construct&lt; map_handle &gt;</a> (<a class="el" href="namespaceafio__v2__xxx.html">afio_v2_xxx</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structafio__v2__xxx_1_1statfs__t_1_1f__flags__t.html">statfs_t::f_flags_t</a> (<a class="el" href="namespaceafio__v2__xxx.html">afio_v2_xxx</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classafio__v2__xxx_1_1map__handle.html">map_handle</a> (<a class="el" href="namespaceafio__v2__xxx.html">afio_v2_xxx</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1safe__byte__ranges.html">safe_byte_ranges</a> (<a class="el" href="namespaceafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex.html">afio_v2_xxx::algorithm::shared_fs_mutex</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="structafio__v2__xxx_1_1construct_3_01mapped__file__handle_01_4.html">construct&lt; mapped_file_handle &gt;</a> (<a class="el" href="namespaceafio__v2__xxx.html">afio_v2_xxx</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classafio__v2__xxx_1_1file__handle.html">file_handle</a> (<a class="el" href="namespaceafio__v2__xxx.html">afio_v2_xxx</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classafio__v2__xxx_1_1mapped__file__handle.html">mapped_file_handle</a> (<a class="el" href="namespaceafio__v2__xxx.html">afio_v2_xxx</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classafio__v2__xxx_1_1section__handle.html">section_handle</a> (<a class="el" href="namespaceafio__v2__xxx.html">afio_v2_xxx</a>)&#160;&#160;&#160;</td></tr>
-<tr><td valign="top"><a class="el" href="classafio__v2__xxx_1_1async__file__handle.html">async_file_handle</a> (<a class="el" href="namespaceafio__v2__xxx.html">afio_v2_xxx</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structafio__v2__xxx_1_1construct_3_01path__handle_01_4.html">construct&lt; path_handle &gt;</a> (<a class="el" href="namespaceafio__v2__xxx.html">afio_v2_xxx</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structafio__v2__xxx_1_1handle_1_1flag__base.html">handle::flag_base</a> (<a class="el" href="namespaceafio__v2__xxx.html">afio_v2_xxx</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__view.html">mapped_view</a> (<a class="el" href="namespaceafio__v2__xxx_1_1algorithm.html">afio_v2_xxx::algorithm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html">shared_fs_mutex</a> (<a class="el" href="namespaceafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex.html">afio_v2_xxx::algorithm::shared_fs_mutex</a>)&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="classafio__v2__xxx_1_1async__file__handle.html">async_file_handle</a> (<a class="el" href="namespaceafio__v2__xxx.html">afio_v2_xxx</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structafio__v2__xxx_1_1construct_3_01path__handle_01_4.html">construct&lt; path_handle &gt;</a> (<a class="el" href="namespaceafio__v2__xxx.html">afio_v2_xxx</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structafio__v2__xxx_1_1handle_1_1flag__base.html">handle::flag_base</a> (<a class="el" href="namespaceafio__v2__xxx.html">afio_v2_xxx</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__span.html">mapped_span</a> (<a class="el" href="namespaceafio__v2__xxx_1_1algorithm.html">afio_v2_xxx::algorithm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html">shared_fs_mutex</a> (<a class="el" href="namespaceafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex.html">afio_v2_xxx::algorithm::shared_fs_mutex</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1atomic__append.html">atomic_append</a> (<a class="el" href="namespaceafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex.html">afio_v2_xxx::algorithm::shared_fs_mutex</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structafio__v2__xxx_1_1construct_3_01section__handle_01_4.html">construct&lt; section_handle &gt;</a> (<a class="el" href="namespaceafio__v2__xxx.html">afio_v2_xxx</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structafio__v2__xxx_1_1section__handle_1_1flag__base.html">section_handle::flag_base</a> (<a class="el" href="namespaceafio__v2__xxx.html">afio_v2_xxx</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html">memory_map</a> (<a class="el" href="namespaceafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex.html">afio_v2_xxx::algorithm::shared_fs_mutex</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structafio__v2__xxx_1_1stat__t.html">stat_t</a> (<a class="el" href="namespaceafio__v2__xxx.html">afio_v2_xxx</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classafio__v2__xxx_1_1async__file__handle_1_1awaitable.html">async_file_handle::awaitable</a> (<a class="el" href="namespaceafio__v2__xxx.html">afio_v2_xxx</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_d"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;d&#160;&#160;</div></td></tr></table>
</td><td valign="top"><a class="el" href="classafio__v2__xxx_1_1fs__handle.html">fs_handle</a> (<a class="el" href="namespaceafio__v2__xxx.html">afio_v2_xxx</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_n"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;n&#160;&#160;</div></td></tr></table>
@@ -121,9 +121,9 @@ $(document).ready(function(){initNavTree('classes.html','');});
<tr><td valign="top"><a class="el" href="classafio__v2__xxx_1_1algorithm_1_1cached__parent__handle__adapter.html">cached_parent_handle_adapter</a> (<a class="el" href="namespaceafio__v2__xxx_1_1algorithm.html">afio_v2_xxx::algorithm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex_1_1entity__type.html">shared_fs_mutex::entity_type</a> (<a class="el" href="namespaceafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex.html">afio_v2_xxx::algorithm::shared_fs_mutex</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structafio__v2__xxx_1_1storage__profile_1_1item.html">item</a> (<a class="el" href="namespaceafio__v2__xxx_1_1storage__profile.html">afio_v2_xxx::storage_profile</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_r"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;r&#160;&#160;</div></td></tr></table>
</td><td valign="top"><a class="el" href="structafio__v2__xxx_1_1stat__t_1_1want__base.html">stat_t::want_base</a> (<a class="el" href="namespaceafio__v2__xxx.html">afio_v2_xxx</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="structafio__v2__xxx_1_1io__handle_1_1const__buffer__type.html">io_handle::const_buffer_type</a> (<a class="el" href="namespaceafio__v2__xxx.html">afio_v2_xxx</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structafio__v2__xxx_1_1directory__handle_1_1enumerate__info.html">directory_handle::enumerate_info</a> (<a class="el" href="namespaceafio__v2__xxx.html">afio_v2_xxx</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structafio__v2__xxx_1_1storage__profile_1_1item__base.html">item_base</a> (<a class="el" href="namespaceafio__v2__xxx_1_1storage__profile.html">afio_v2_xxx::storage_profile</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structafio__v2__xxx_1_1statfs__t_1_1want__base.html">statfs_t::want_base</a> (<a class="el" href="namespaceafio__v2__xxx.html">afio_v2_xxx</a>)&#160;&#160;&#160;</td></tr>
-<tr><td valign="top"><a class="el" href="structafio__v2__xxx_1_1construct.html">construct</a> (<a class="el" href="namespaceafio__v2__xxx.html">afio_v2_xxx</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classafio__v2__xxx_1_1error.html">error</a> (<a class="el" href="namespaceafio__v2__xxx.html">afio_v2_xxx</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structafio__v2__xxx_1_1storage__profile_1_1item__erased.html">item_erased</a> (<a class="el" href="namespaceafio__v2__xxx_1_1storage__profile.html">afio_v2_xxx::storage_profile</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structafio__v2__xxx_1_1utils_1_1page__allocator_3_01void_01_4_1_1rebind.html">page_allocator&lt; void &gt;::rebind</a> (<a class="el" href="namespaceafio__v2__xxx_1_1utils.html">afio_v2_xxx::utils</a>)&#160;&#160;&#160;</td><td></td></tr>
+<tr><td valign="top"><a class="el" href="structafio__v2__xxx_1_1construct.html">construct</a> (<a class="el" href="namespaceafio__v2__xxx.html">afio_v2_xxx</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classafio__v2__xxx_1_1error.html">error</a> (<a class="el" href="namespaceafio__v2__xxx.html">afio_v2_xxx</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structafio__v2__xxx_1_1storage__profile_1_1item__erased.html">item_erased</a> (<a class="el" href="namespaceafio__v2__xxx_1_1storage__profile.html">afio_v2_xxx::storage_profile</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structafio__v2__xxx_1_1utils_1_1page__allocator_1_1rebind.html">page_allocator::rebind</a> (<a class="el" href="namespaceafio__v2__xxx_1_1utils.html">afio_v2_xxx::utils</a>)&#160;&#160;&#160;</td><td></td></tr>
<tr><td valign="top"><a class="el" href="structafio__v2__xxx_1_1construct_3_01algorithm_1_1cached__parent__handle__adapter_3_01_t_01_4_01_4.html">construct&lt; algorithm::cached_parent_handle_adapter&lt; T &gt; &gt;</a> (<a class="el" href="namespaceafio__v2__xxx.html">afio_v2_xxx</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structafio__v2__xxx_1_1error__info.html">error_info</a> (<a class="el" href="namespaceafio__v2__xxx.html">afio_v2_xxx</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_l"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;l&#160;&#160;</div></td></tr></table>
-</td><td valign="top"><a class="el" href="structafio__v2__xxx_1_1utils_1_1page__allocator_1_1rebind.html">page_allocator::rebind</a> (<a class="el" href="namespaceafio__v2__xxx_1_1utils.html">afio_v2_xxx::utils</a>)&#160;&#160;&#160;</td><td></td></tr>
+</td><td valign="top"><a class="el" href="structafio__v2__xxx_1_1utils_1_1page__allocator_3_01void_01_4_1_1rebind.html">page_allocator&lt; void &gt;::rebind</a> (<a class="el" href="namespaceafio__v2__xxx_1_1utils.html">afio_v2_xxx::utils</a>)&#160;&#160;&#160;</td><td></td></tr>
<tr><td></td><td></td><td></td><td></td></tr>
<tr><td></td><td></td><td valign="top"><a class="el" href="classafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1lock__files.html">lock_files</a> (<a class="el" href="namespaceafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex.html">afio_v2_xxx::algorithm::shared_fs_mutex</a>)&#160;&#160;&#160;</td><td></td><td></td></tr>
<tr><td></td><td></td><td></td><td></td><td></td></tr>
diff --git a/config_8hpp.html b/config_8hpp.html
index 75662496..bd8087d5 100644
--- a/config_8hpp.html
+++ b/config_8hpp.html
@@ -101,6 +101,7 @@ $(document).ready(function(){initNavTree('config_8hpp.html','');});
<code>#include &quot;quickcpplib/include/span.hpp&quot;</code><br />
<code>#include &quot;quickcpplib/include/optional.hpp&quot;</code><br />
<code>#include &quot;quickcpplib/include/string_view.hpp&quot;</code><br />
+<code>#include &quot;quickcpplib/include/persistent.hpp&quot;</code><br />
<code>#include &quot;outcome/include/outcome.hpp&quot;</code><br />
<code>#include &quot;quickcpplib/include/ringbuffer_log.hpp&quot;</code><br />
<code>#include &quot;quickcpplib/include/utils/thread.hpp&quot;</code><br />
@@ -286,15 +287,21 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><b>afio_v2_xxx::operator
<tr class="memitem:a32361fd287b7160ae34aada17191e41e"><td class="memItemLeft" align="right" valign="top"><a id="a32361fd287b7160ae34aada17191e41e"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>afio_v2_xxx::operator!=</b> (const error_info &amp;a, const error_info &amp;b)</td></tr>
<tr class="separator:a32361fd287b7160ae34aada17191e41e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2428d00bd15bd397f8eed6f8a13c3468"><td class="memItemLeft" align="right" valign="top"><a id="a2428d00bd15bd397f8eed6f8a13c3468"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>afio_v2_xxx::OUTCOME_TEMPLATE</b> (class ErrorCondEnum) OUTCOME_TREQUIRES(OUTCOME_TPRED(std</td></tr>
+<tr class="separator:a2428d00bd15bd397f8eed6f8a13c3468"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac0d5364044c4627667e827f5aaaa183f"><td class="memItemLeft" align="right" valign="top"><a id="ac0d5364044c4627667e827f5aaaa183f"></a>
std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>afio_v2_xxx::operator&lt;&lt;</b> (std::ostream &amp;s, const error_info &amp;v)</td></tr>
<tr class="separator:ac0d5364044c4627667e827f5aaaa183f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa5f11cc32803b0966fe64dfdc325a18b"><td class="memItemLeft" align="right" valign="top"><a id="aa5f11cc32803b0966fe64dfdc325a18b"></a>
std::error_code&#160;</td><td class="memItemRight" valign="bottom"><b>afio_v2_xxx::make_error_code</b> (error_info ei)</td></tr>
<tr class="separator:aa5f11cc32803b0966fe64dfdc325a18b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ae44838fe79524e9d9eb432eb072395cb"><td class="memItemLeft" align="right" valign="top"><a id="ae44838fe79524e9d9eb432eb072395cb"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><b>afio_v2_xxx::throw_as_system_error_with_payload</b> (const error_info &amp;ei)</td></tr>
-<tr class="separator:ae44838fe79524e9d9eb432eb072395cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8ef55b4834fe3a95bfa1c18c9defd261"><td class="memItemLeft" align="right" valign="top"><a id="a8ef55b4834fe3a95bfa1c18c9defd261"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>afio_v2_xxx::outcome_throw_as_system_error_with_payload</b> (const error_info &amp;ei)</td></tr>
+<tr class="separator:a8ef55b4834fe3a95bfa1c18c9defd261"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9c3fa6c24a7218493a02150e363c5e6a"><td class="memItemLeft" align="right" valign="top"><a id="a9c3fa6c24a7218493a02150e363c5e6a"></a>
+error_info&#160;</td><td class="memItemRight" valign="bottom"><b>afio_v2_xxx::error_from_exception</b> (std::exception_ptr &amp;&amp;ep=std::current_exception(), std::error_code not_matched=std::make_error_code(std::errc::resource_unavailable_try_again)) noexcept</td></tr>
+<tr class="separator:a9c3fa6c24a7218493a02150e363c5e6a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a08363b8572e6a8971a6d236d54fb8287"><td class="memItemLeft" align="right" valign="top"><a id="a08363b8572e6a8971a6d236d54fb8287"></a>
QUICKCPPLIB_NAMESPACE::ringbuffer_log::simple_ringbuffer_log&lt; <a class="el" href="group__config.html#ga7c2409ed4b38a384c422012a43423a16">AFIO_LOGGING_MEMORY</a> &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceafio__v2__xxx.html#a08363b8572e6a8971a6d236d54fb8287">afio_v2_xxx::log</a> () noexcept</td></tr>
<tr class="memdesc:a08363b8572e6a8971a6d236d54fb8287"><td class="mdescLeft">&#160;</td><td class="mdescRight">The log used by AFIO. <br /></td></tr>
@@ -336,7 +343,7 @@ template&lt;class R , class U , class... Args&gt; </td></tr>
</tr>
</table>
</div><div class="memdoc">
-<b>Value:</b><div class="fragment"><div class="line">{ <a class="code" href="namespaceafio__v2__xxx.html#a08363b8572e6a8971a6d236d54fb8287">\</a></div><div class="line"><a class="code" href="namespaceafio__v2__xxx.html#a08363b8572e6a8971a6d236d54fb8287"> AFIO_V2_NAMESPACE::log</a>().emplace_back(QUICKCPPLIB_NAMESPACE::ringbuffer_log::level::fatal, (message), AFIO_V2_NAMESPACE::detail::unsigned_integer_cast&lt;unsigned&gt;(inst), QUICKCPPLIB_NAMESPACE::utils::thread::this_thread_id(), (<a class="code" href="group__config.html#ga98c874cd585103f72c3c8338b491436b">AFIO_LOG_BACKTRACE_LEVELS</a> &amp; (1U &lt;&lt; 1U)) ? <span class="keyword">nullptr</span> : __func__, __LINE__); \</div><div class="line"> AFIO_LOG_FATAL_TO_CERR(message); \</div><div class="line"> }</div><div class="ttc" id="namespaceafio__v2__xxx_html_a08363b8572e6a8971a6d236d54fb8287"><div class="ttname"><a href="namespaceafio__v2__xxx.html#a08363b8572e6a8971a6d236d54fb8287">afio_v2_xxx::log</a></div><div class="ttdeci">QUICKCPPLIB_NAMESPACE::ringbuffer_log::simple_ringbuffer_log&lt; AFIO_LOGGING_MEMORY &gt; &amp; log() noexcept</div><div class="ttdoc">The log used by AFIO. </div><div class="ttdef"><b>Definition:</b> config.hpp:468</div></div>
+<b>Value:</b><div class="fragment"><div class="line">{ <a class="code" href="namespaceafio__v2__xxx.html#a08363b8572e6a8971a6d236d54fb8287">\</a></div><div class="line"><a class="code" href="namespaceafio__v2__xxx.html#a08363b8572e6a8971a6d236d54fb8287"> AFIO_V2_NAMESPACE::log</a>().emplace_back(QUICKCPPLIB_NAMESPACE::ringbuffer_log::level::fatal, (message), AFIO_V2_NAMESPACE::detail::unsigned_integer_cast&lt;unsigned&gt;(inst), QUICKCPPLIB_NAMESPACE::utils::thread::this_thread_id(), (<a class="code" href="group__config.html#ga98c874cd585103f72c3c8338b491436b">AFIO_LOG_BACKTRACE_LEVELS</a> &amp; (1U &lt;&lt; 1U)) ? <span class="keyword">nullptr</span> : __func__, __LINE__); \</div><div class="line"> AFIO_LOG_FATAL_TO_CERR(message); \</div><div class="line"> }</div><div class="ttc" id="namespaceafio__v2__xxx_html_a08363b8572e6a8971a6d236d54fb8287"><div class="ttname"><a href="namespaceafio__v2__xxx.html#a08363b8572e6a8971a6d236d54fb8287">afio_v2_xxx::log</a></div><div class="ttdeci">QUICKCPPLIB_NAMESPACE::ringbuffer_log::simple_ringbuffer_log&lt; AFIO_LOGGING_MEMORY &gt; &amp; log() noexcept</div><div class="ttdoc">The log used by AFIO. </div><div class="ttdef"><b>Definition:</b> config.hpp:500</div></div>
<div class="ttc" id="group__config_html_ga98c874cd585103f72c3c8338b491436b"><div class="ttname"><a href="group__config.html#ga98c874cd585103f72c3c8338b491436b">AFIO_LOG_BACKTRACE_LEVELS</a></div><div class="ttdeci">#define AFIO_LOG_BACKTRACE_LEVELS</div><div class="ttdoc">Bit mask of which log levels should be stack backtraced which will slow those logs thirty fold or so...</div><div class="ttdef"><b>Definition:</b> config.hpp:68</div></div>
</div><!-- fragment -->
</div>
diff --git a/config_8hpp.js b/config_8hpp.js
index 584cbfca..e242fb48 100644
--- a/config_8hpp.js
+++ b/config_8hpp.js
@@ -44,6 +44,7 @@ var config_8hpp =
[ "outcome", "config_8hpp.html#abacadff1ffbf16bfba8ef9a3d6fb20d8", null ],
[ "result", "config_8hpp.html#a7ca979e5ecde58384b6a964b8db006cc", null ],
[ "emplace_function_ptr", "config_8hpp.html#a0223ac96deaa57f1c6124e8ea00f987e", null ],
+ [ "error_from_exception", "config_8hpp.html#a9c3fa6c24a7218493a02150e363c5e6a", null ],
[ "log", "config_8hpp.html#a08363b8572e6a8971a6d236d54fb8287", null ],
[ "make_error_code", "config_8hpp.html#aa5f11cc32803b0966fe64dfdc325a18b", null ],
[ "make_function_ptr", "config_8hpp.html#ae11f63b07f766758e45df316122b3598", null ],
@@ -52,5 +53,6 @@ var config_8hpp =
[ "operator==", "config_8hpp.html#a14e8f43a04092eb024ced8b5909cfd88", null ],
[ "OUTCOME_TEMPLATE", "config_8hpp.html#a02415bd7a9e444399d9575e7627709f2", null ],
[ "OUTCOME_TEMPLATE", "config_8hpp.html#a01f7cebaa9daf8a041e3d362a85a7d18", null ],
- [ "throw_as_system_error_with_payload", "config_8hpp.html#ae44838fe79524e9d9eb432eb072395cb", null ]
+ [ "OUTCOME_TEMPLATE", "config_8hpp.html#a2428d00bd15bd397f8eed6f8a13c3468", null ],
+ [ "outcome_throw_as_system_error_with_payload", "config_8hpp.html#a8ef55b4834fe3a95bfa1c18c9defd261", null ]
]; \ No newline at end of file
diff --git a/dir_c7b3dfb2539fcbb9cef19e5f81ceb887.html b/dir_c7b3dfb2539fcbb9cef19e5f81ceb887.html
index c7e7ff51..27a2942e 100644
--- a/dir_c7b3dfb2539fcbb9cef19e5f81ceb887.html
+++ b/dir_c7b3dfb2539fcbb9cef19e5f81ceb887.html
@@ -93,8 +93,8 @@ Files</h2></td></tr>
<tr class="memitem:cached__parent__handle__adapter_8hpp"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cached__parent__handle__adapter_8hpp.html">cached_parent_handle_adapter.hpp</a></td></tr>
<tr class="memdesc:cached__parent__handle__adapter_8hpp"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adapts any <code>fs_handle</code> to cache its parent directory handle. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:mapped__view_8hpp"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mapped__view_8hpp.html">mapped_view.hpp</a></td></tr>
-<tr class="memdesc:mapped__view_8hpp"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides typed view of mapped section. <br /></td></tr>
+<tr class="memitem:mapped__span_8hpp"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mapped__span_8hpp.html">mapped_span.hpp</a></td></tr>
+<tr class="memdesc:mapped__span_8hpp"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides typed view of mapped section. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:trivial__vector_8hpp"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="trivial__vector_8hpp.html">trivial_vector.hpp</a></td></tr>
<tr class="memdesc:trivial__vector_8hpp"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides constant time reallocating STL vector. <br /></td></tr>
diff --git a/dir_c7b3dfb2539fcbb9cef19e5f81ceb887.js b/dir_c7b3dfb2539fcbb9cef19e5f81ceb887.js
index ac5df543..7cf6057f 100644
--- a/dir_c7b3dfb2539fcbb9cef19e5f81ceb887.js
+++ b/dir_c7b3dfb2539fcbb9cef19e5f81ceb887.js
@@ -2,8 +2,8 @@ var dir_c7b3dfb2539fcbb9cef19e5f81ceb887 =
[
[ "shared_fs_mutex", "dir_b3a6d32983111aac4350d8f0d2c59185.html", "dir_b3a6d32983111aac4350d8f0d2c59185" ],
[ "cached_parent_handle_adapter.hpp", "cached__parent__handle__adapter_8hpp.html", "cached__parent__handle__adapter_8hpp" ],
- [ "mapped_view.hpp", "mapped__view_8hpp.html", [
- [ "mapped_view", "classafio__v2__xxx_1_1algorithm_1_1mapped__view.html", "classafio__v2__xxx_1_1algorithm_1_1mapped__view" ]
+ [ "mapped_span.hpp", "mapped__span_8hpp.html", [
+ [ "mapped_span", "classafio__v2__xxx_1_1algorithm_1_1mapped__span.html", "classafio__v2__xxx_1_1algorithm_1_1mapped__span" ]
] ],
[ "trivial_vector.hpp", "trivial__vector_8hpp.html", "trivial__vector_8hpp" ]
]; \ No newline at end of file
diff --git a/directory__handle_8hpp.html b/directory__handle_8hpp.html
index cca700c5..bf38abc7 100644
--- a/directory__handle_8hpp.html
+++ b/directory__handle_8hpp.html
@@ -129,8 +129,8 @@ std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>afio_v2
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceafio__v2__xxx.html#a3ece430e8478fc6909cd7ec2fc0082b3">afio_v2_xxx::swap</a> (directory_handle &amp;self, directory_handle &amp;o) noexcept</td></tr>
<tr class="memdesc:a3ece430e8478fc6909cd7ec2fc0082b3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Swap with another instance. <br /></td></tr>
<tr class="separator:a3ece430e8478fc6909cd7ec2fc0082b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:affce2389376e27ffa0565890034d209f"><td class="memItemLeft" align="right" valign="top">result&lt; directory_handle &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceafio__v2__xxx.html#affce2389376e27ffa0565890034d209f">afio_v2_xxx::directory</a> (const path_handle &amp;base, directory_handle::path_view_type _path, directory_handle::mode _mode=directory_handle::mode::read, directory_handle::creation _creation=directory_handle::creation::open_existing, directory_handle::caching _caching=directory_handle::caching::all, directory_handle::flag flags=directory_handle::flag::none) noexcept</td></tr>
-<tr class="separator:affce2389376e27ffa0565890034d209f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a83828cb013df9d77b08ec0ac59037c85"><td class="memItemLeft" align="right" valign="top">result&lt; directory_handle &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceafio__v2__xxx.html#a83828cb013df9d77b08ec0ac59037c85">afio_v2_xxx::directory</a> (const path_handle &amp;base, directory_handle::path_view_type path, directory_handle::mode _mode=directory_handle::mode::read, directory_handle::creation _creation=directory_handle::creation::open_existing, directory_handle::caching _caching=directory_handle::caching::all, directory_handle::flag flags=directory_handle::flag::none) noexcept</td></tr>
+<tr class="separator:a83828cb013df9d77b08ec0ac59037c85"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a26a149bed05acb7e27596e84f16cd0bd"><td class="memItemLeft" align="right" valign="top">result&lt; directory_handle &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceafio__v2__xxx.html#a26a149bed05acb7e27596e84f16cd0bd">afio_v2_xxx::random_directory</a> (const path_handle &amp;dirpath, directory_handle::mode _mode=directory_handle::mode::write, directory_handle::caching _caching=directory_handle::caching::temporary, directory_handle::flag flags=directory_handle::flag::none) noexcept</td></tr>
<tr class="separator:a26a149bed05acb7e27596e84f16cd0bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac095df054e29fb086f9e7b96274c3c67"><td class="memItemLeft" align="right" valign="top">result&lt; directory_handle &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceafio__v2__xxx.html#ac095df054e29fb086f9e7b96274c3c67">afio_v2_xxx::temp_directory</a> (directory_handle::path_view_type name=directory_handle::path_view_type(), directory_handle::mode _mode=directory_handle::mode::write, directory_handle::creation _creation=directory_handle::creation::if_needed, directory_handle::caching _caching=directory_handle::caching::all, directory_handle::flag flags=directory_handle::flag::none) noexcept</td></tr>
diff --git a/directory__handle_8hpp.js b/directory__handle_8hpp.js
index 6e84f80c..fd1f686a 100644
--- a/directory__handle_8hpp.js
+++ b/directory__handle_8hpp.js
@@ -5,7 +5,7 @@ var directory__handle_8hpp =
[ "buffers_type", "structafio__v2__xxx_1_1directory__handle_1_1buffers__type.html", "structafio__v2__xxx_1_1directory__handle_1_1buffers__type" ],
[ "enumerate_info", "structafio__v2__xxx_1_1directory__handle_1_1enumerate__info.html", "structafio__v2__xxx_1_1directory__handle_1_1enumerate__info" ],
[ "construct< directory_handle >", "structafio__v2__xxx_1_1construct_3_01directory__handle_01_4.html", "structafio__v2__xxx_1_1construct_3_01directory__handle_01_4" ],
- [ "directory", "directory__handle_8hpp.html#affce2389376e27ffa0565890034d209f", null ],
+ [ "directory", "directory__handle_8hpp.html#a83828cb013df9d77b08ec0ac59037c85", null ],
[ "enumerate", "directory__handle_8hpp.html#a275b97722fe32f3946d8b23206ffb8da", null ],
[ "operator<<", "directory__handle_8hpp.html#a2cbad389de45a9893ef02eeec86dcd21", null ],
[ "operator<<", "directory__handle_8hpp.html#adc0cc191e052bf33253287e0d1baeb4c", null ],
diff --git a/file__handle_8hpp.html b/file__handle_8hpp.html
index b86b0f67..37c90ecc 100644
--- a/file__handle_8hpp.html
+++ b/file__handle_8hpp.html
@@ -116,14 +116,14 @@ Functions</h2></td></tr>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceafio__v2__xxx.html#a579d619e4d73e584fdd41e34761afa67">afio_v2_xxx::swap</a> (file_handle &amp;self, file_handle &amp;o) noexcept</td></tr>
<tr class="memdesc:a579d619e4d73e584fdd41e34761afa67"><td class="mdescLeft">&#160;</td><td class="mdescRight">Swap with another instance. <br /></td></tr>
<tr class="separator:a579d619e4d73e584fdd41e34761afa67"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a84b5a9fc93107c673160b41fff151938"><td class="memItemLeft" align="right" valign="top">result&lt; file_handle &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceafio__v2__xxx.html#a84b5a9fc93107c673160b41fff151938">afio_v2_xxx::file</a> (const path_handle &amp;base, file_handle::path_view_type _path, file_handle::mode _mode=file_handle::mode::read, file_handle::creation _creation=file_handle::creation::open_existing, file_handle::caching _caching=file_handle::caching::all, file_handle::flag flags=file_handle::flag::none) noexcept</td></tr>
-<tr class="separator:a84b5a9fc93107c673160b41fff151938"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab92ca63383ef7fe58af4620570d12803"><td class="memItemLeft" align="right" valign="top">result&lt; file_handle &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceafio__v2__xxx.html#ab92ca63383ef7fe58af4620570d12803">afio_v2_xxx::file</a> (const path_handle &amp;base, file_handle::path_view_type path, file_handle::mode _mode=file_handle::mode::read, file_handle::creation _creation=file_handle::creation::open_existing, file_handle::caching _caching=file_handle::caching::all, file_handle::flag flags=file_handle::flag::none) noexcept</td></tr>
+<tr class="separator:ab92ca63383ef7fe58af4620570d12803"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aac0b7d76c4298e86cef49c832c93edec"><td class="memItemLeft" align="right" valign="top">result&lt; file_handle &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceafio__v2__xxx.html#aac0b7d76c4298e86cef49c832c93edec">afio_v2_xxx::random_file</a> (const path_handle &amp;dirpath, file_handle::mode _mode=file_handle::mode::write, file_handle::caching _caching=file_handle::caching::temporary, file_handle::flag flags=file_handle::flag::none) noexcept</td></tr>
<tr class="separator:aac0b7d76c4298e86cef49c832c93edec"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa14b24c8bc330dd8e472f42676ba03d6"><td class="memItemLeft" align="right" valign="top">result&lt; file_handle &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceafio__v2__xxx.html#aa14b24c8bc330dd8e472f42676ba03d6">afio_v2_xxx::temp_file</a> (file_handle::path_view_type name=file_handle::path_view_type(), file_handle::mode _mode=file_handle::mode::write, file_handle::creation _creation=file_handle::creation::if_needed, file_handle::caching _caching=file_handle::caching::temporary, file_handle::flag flags=file_handle::flag::unlink_on_close) noexcept</td></tr>
<tr class="separator:aa14b24c8bc330dd8e472f42676ba03d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a2a2248a6545d55ee8f46628c8afb7946"><td class="memItemLeft" align="right" valign="top">result&lt; file_handle &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceafio__v2__xxx.html#a2a2248a6545d55ee8f46628c8afb7946">afio_v2_xxx::temp_inode</a> (const path_handle &amp;dir=path_discovery::storage_backed_temporary_files_directory(), file_handle::mode _mode=file_handle::mode::write, file_handle::flag flags=file_handle::flag::none) noexcept</td></tr>
-<tr class="separator:a2a2248a6545d55ee8f46628c8afb7946"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aca98b0cb43a2d925bb65e055b07b4a08"><td class="memItemLeft" align="right" valign="top">result&lt; file_handle &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceafio__v2__xxx.html#aca98b0cb43a2d925bb65e055b07b4a08">afio_v2_xxx::temp_inode</a> (const path_handle &amp;dirh=path_discovery::storage_backed_temporary_files_directory(), file_handle::mode _mode=file_handle::mode::write, file_handle::flag flags=file_handle::flag::none) noexcept</td></tr>
+<tr class="separator:aca98b0cb43a2d925bb65e055b07b4a08"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afe66c5875c48c8bd172901a1159ccbdc"><td class="memItemLeft" align="right" valign="top">result&lt; file_handle::extent_type &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceafio__v2__xxx.html#afe66c5875c48c8bd172901a1159ccbdc">afio_v2_xxx::length</a> (const file_handle &amp;self) noexcept</td></tr>
<tr class="separator:afe66c5875c48c8bd172901a1159ccbdc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a84d22c966fcabe50de30ad8cf26c7241"><td class="memItemLeft" align="right" valign="top">result&lt; file_handle::extent_type &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceafio__v2__xxx.html#a84d22c966fcabe50de30ad8cf26c7241">afio_v2_xxx::truncate</a> (file_handle &amp;self, file_handle::extent_type newsize) noexcept</td></tr>
diff --git a/file__handle_8hpp.js b/file__handle_8hpp.js
index 765e08eb..89fb023b 100644
--- a/file__handle_8hpp.js
+++ b/file__handle_8hpp.js
@@ -3,12 +3,12 @@ var file__handle_8hpp =
[ "file_handle", "classafio__v2__xxx_1_1file__handle.html", "classafio__v2__xxx_1_1file__handle" ],
[ "construct< file_handle >", "structafio__v2__xxx_1_1construct_3_01file__handle_01_4.html", "structafio__v2__xxx_1_1construct_3_01file__handle_01_4" ],
[ "extents", "file__handle_8hpp.html#ac3c009153d916556b991d4a79c664fe9", null ],
- [ "file", "file__handle_8hpp.html#a84b5a9fc93107c673160b41fff151938", null ],
+ [ "file", "file__handle_8hpp.html#ab92ca63383ef7fe58af4620570d12803", null ],
[ "length", "file__handle_8hpp.html#afe66c5875c48c8bd172901a1159ccbdc", null ],
[ "random_file", "file__handle_8hpp.html#aac0b7d76c4298e86cef49c832c93edec", null ],
[ "swap", "file__handle_8hpp.html#a579d619e4d73e584fdd41e34761afa67", null ],
[ "temp_file", "file__handle_8hpp.html#aa14b24c8bc330dd8e472f42676ba03d6", null ],
- [ "temp_inode", "file__handle_8hpp.html#a2a2248a6545d55ee8f46628c8afb7946", null ],
+ [ "temp_inode", "file__handle_8hpp.html#aca98b0cb43a2d925bb65e055b07b4a08", null ],
[ "truncate", "file__handle_8hpp.html#a84d22c966fcabe50de30ad8cf26c7241", null ],
[ "zero", "file__handle_8hpp.html#ae412aa7c9e37601d1814e75d09795185", null ]
]; \ No newline at end of file
diff --git a/files.html b/files.html
index ac8f5f24..97fc4b21 100644
--- a/files.html
+++ b/files.html
@@ -98,7 +98,7 @@ $(document).ready(function(){initNavTree('files.html','');});
<tr id="row_0_0_0_0_0_4_"><td class="entry"><span style="width:96px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="memory__map_8hpp.html" target="_self">memory_map.hpp</a></td><td class="desc">Provides algorithm::shared_fs_mutex::memory_map </td></tr>
<tr id="row_0_0_0_0_0_5_" class="even"><td class="entry"><span style="width:96px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="safe__byte__ranges_8hpp.html" target="_self">safe_byte_ranges.hpp</a></td><td class="desc">Provides algorithm::shared_fs_mutex::safe_byte_ranges </td></tr>
<tr id="row_0_0_0_0_1_"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="cached__parent__handle__adapter_8hpp.html" target="_self">cached_parent_handle_adapter.hpp</a></td><td class="desc">Adapts any <code>fs_handle</code> to cache its parent directory handle </td></tr>
-<tr id="row_0_0_0_0_2_" class="even"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="mapped__view_8hpp.html" target="_self">mapped_view.hpp</a></td><td class="desc">Provides typed view of mapped section </td></tr>
+<tr id="row_0_0_0_0_2_" class="even"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="mapped__span_8hpp.html" target="_self">mapped_span.hpp</a></td><td class="desc">Provides typed view of mapped section </td></tr>
<tr id="row_0_0_0_0_3_"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="trivial__vector_8hpp.html" target="_self">trivial_vector.hpp</a></td><td class="desc">Provides constant time reallocating STL vector </td></tr>
<tr id="row_0_0_0_1_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="v2_80_2afio_8hpp.html" target="_self">afio.hpp</a></td><td class="desc">The master <em>versioned</em> AFIO include file. All version specific AFIO consuming libraries should include this header only </td></tr>
<tr id="row_0_0_0_2_"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="async__file__handle_8hpp.html" target="_self">async_file_handle.hpp</a></td><td class="desc">Provides async_file_handle </td></tr>
diff --git a/fs__handle_8hpp.html b/fs__handle_8hpp.html
index 7c7d884b..bafe4fb4 100644
--- a/fs__handle_8hpp.html
+++ b/fs__handle_8hpp.html
@@ -109,8 +109,8 @@ Namespaces</h2></td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:a8d7c50561e9103968467c928f2e38f16"><td class="memItemLeft" align="right" valign="top">result&lt; void &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceafio__v2__xxx.html#a8d7c50561e9103968467c928f2e38f16">afio_v2_xxx::relink</a> (fs_handle &amp;self, const path_handle &amp;base, fs_handle::path_view_type newpath, bool atomic_replace=true, deadline d=std::chrono::seconds(30)) noexcept</td></tr>
-<tr class="separator:a8d7c50561e9103968467c928f2e38f16"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aea0fac310f773ae58f672ec4b506887d"><td class="memItemLeft" align="right" valign="top">result&lt; void &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceafio__v2__xxx.html#aea0fac310f773ae58f672ec4b506887d">afio_v2_xxx::relink</a> (fs_handle &amp;self, const path_handle &amp;base, fs_handle::path_view_type path, bool atomic_replace=true, deadline d=std::chrono::seconds(30)) noexcept</td></tr>
+<tr class="separator:aea0fac310f773ae58f672ec4b506887d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abefe1503efb01ea89200b829bcd87713"><td class="memItemLeft" align="right" valign="top">result&lt; void &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceafio__v2__xxx.html#abefe1503efb01ea89200b829bcd87713">afio_v2_xxx::unlink</a> (fs_handle &amp;self, deadline d=std::chrono::seconds(30)) noexcept</td></tr>
<tr class="separator:abefe1503efb01ea89200b829bcd87713"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
diff --git a/fs__handle_8hpp.js b/fs__handle_8hpp.js
index fb8dadb4..c882f51c 100644
--- a/fs__handle_8hpp.js
+++ b/fs__handle_8hpp.js
@@ -1,6 +1,6 @@
var fs__handle_8hpp =
[
[ "fs_handle", "classafio__v2__xxx_1_1fs__handle.html", "classafio__v2__xxx_1_1fs__handle" ],
- [ "relink", "fs__handle_8hpp.html#a8d7c50561e9103968467c928f2e38f16", null ],
+ [ "relink", "fs__handle_8hpp.html#aea0fac310f773ae58f672ec4b506887d", null ],
[ "unlink", "fs__handle_8hpp.html#abefe1503efb01ea89200b829bcd87713", null ]
]; \ No newline at end of file
diff --git a/functions_b.html b/functions_b.html
index 3dfaedcd..45602ee4 100644
--- a/functions_b.html
+++ b/functions_b.html
@@ -94,20 +94,21 @@ $(document).ready(function(){initNavTree('functions_b.html','');});
</li>
<li>barrier()
: <a class="el" href="classafio__v2__xxx_1_1io__handle.html#a243156928e89b8988a1412f211b3b603">afio_v2_xxx::io_handle</a>
+, <a class="el" href="classafio__v2__xxx_1_1map__handle.html#a7119886b920953e12340b05ea94e395d">afio_v2_xxx::map_handle</a>
</li>
<li>barrier_on_close
: <a class="el" href="structafio__v2__xxx_1_1section__handle_1_1flag__base.html#a5b790e66402ef3a07ce9464f3e1dc9d8a13b22e159d85ac0067a3aac0f7255acd">afio_v2_xxx::section_handle::flag_base</a>
</li>
<li>begin()
: <a class="el" href="structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#acebb433711065ad2b2d16d78eab4b0a0">afio_v2_xxx::algorithm::impl::trivial_vector_impl&lt; has_default_construction, T &gt;</a>
-, <a class="el" href="structafio__v2__xxx_1_1storage__profile_1_1storage__profile.html#ac36c1be86646518163e8812aff79d080">afio_v2_xxx::storage_profile::storage_profile</a>
+, <a class="el" href="structafio__v2__xxx_1_1storage__profile_1_1storage__profile.html#aa19331ff339cc1f81d42db90bdf5f1db">afio_v2_xxx::storage_profile::storage_profile</a>
</li>
<li>buffer_type
: <a class="el" href="classafio__v2__xxx_1_1directory__handle.html#ab8def17e3aca3866e7d3dbd899f23fe4">afio_v2_xxx::directory_handle</a>
, <a class="el" href="classafio__v2__xxx_1_1io__service.html#a92977b609973629357b17d2589b1212a">afio_v2_xxx::io_service</a>
</li>
<li>buffers_type()
-: <a class="el" href="structafio__v2__xxx_1_1directory__handle_1_1buffers__type.html#af509b517a1ca07431f8c13dcaf7561f7">afio_v2_xxx::directory_handle::buffers_type</a>
+: <a class="el" href="structafio__v2__xxx_1_1directory__handle_1_1buffers__type.html#ac222d9bee85db4d81c5d9072811e30f3">afio_v2_xxx::directory_handle::buffers_type</a>
, <a class="el" href="classafio__v2__xxx_1_1io__handle.html#a70a3c5e6f62efc95db81f831f3b90a2c">afio_v2_xxx::io_handle</a>
, <a class="el" href="classafio__v2__xxx_1_1io__service.html#a806f0493759968705d435a3e9f879ea9">afio_v2_xxx::io_service</a>
</li>
@@ -115,7 +116,7 @@ $(document).ready(function(){initNavTree('functions_b.html','');});
: <a class="el" href="structafio__v2__xxx_1_1handle_1_1flag__base.html#a51aaa32c78950cedbc1b7a61e1738d3eae1fcc9d8ed4b5c23601bea4dda367316">afio_v2_xxx::handle::flag_base</a>
</li>
<li>byte_ranges()
-: <a class="el" href="classafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html#a364c9875ff2249526b7450095999b2fa">afio_v2_xxx::algorithm::shared_fs_mutex::byte_ranges</a>
+: <a class="el" href="classafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html#a047dc0602663a9011edc17720c239fd2">afio_v2_xxx::algorithm::shared_fs_mutex::byte_ranges</a>
</li>
<li>bytes_transferred()
: <a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__result.html#a26abbc9936d6412d2f073069f383d5e6">afio_v2_xxx::io_handle::io_result&lt; T &gt;</a>
diff --git a/functions_c.html b/functions_c.html
index ff20e2c7..d10e6c61 100644
--- a/functions_c.html
+++ b/functions_c.html
@@ -88,6 +88,7 @@ $(document).ready(function(){initNavTree('functions_c.html','');});
</li>
<li>capacity()
: <a class="el" href="structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#a5af156c890eb50a4ab666fa5af5b7c23">afio_v2_xxx::algorithm::impl::trivial_vector_impl&lt; has_default_construction, T &gt;</a>
+, <a class="el" href="classafio__v2__xxx_1_1map__handle.html#ad29ceb1ecb38e9e74e63404b7db3a5a2">afio_v2_xxx::map_handle</a>
, <a class="el" href="classafio__v2__xxx_1_1mapped__file__handle.html#ae8e389b2dbdff1b1f155ea351f5ba9c5">afio_v2_xxx::mapped_file_handle</a>
</li>
<li>cbegin()
diff --git a/functions_e.html b/functions_e.html
index 1dadee2e..c1609eb2 100644
--- a/functions_e.html
+++ b/functions_e.html
@@ -156,7 +156,7 @@ $(document).ready(function(){initNavTree('functions_e.html','');});
: <a class="el" href="classafio__v2__xxx_1_1io__handle_1_1extent__guard.html#ad39d0d65e7497b15e5565ca5c40309bb">afio_v2_xxx::io_handle::extent_guard</a>
</li>
<li>extent_type
-: <a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__view.html#a0e413ca44e22e974598aa700f8fda08a">afio_v2_xxx::algorithm::mapped_view&lt; T &gt;</a>
+: <a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__span.html#aa53a448cdf7c235bdba9252b52548b5b">afio_v2_xxx::algorithm::mapped_span&lt; T &gt;</a>
, <a class="el" href="classafio__v2__xxx_1_1handle.html#a818fff07c92eaab72532092d1c2a14f9">afio_v2_xxx::handle</a>
, <a class="el" href="classafio__v2__xxx_1_1io__service.html#afc9f0ed0d7e0bce83023f998e95f7873">afio_v2_xxx::io_service</a>
</li>
diff --git a/functions_eval.html b/functions_eval.html
index f1169b1a..75354c46 100644
--- a/functions_eval.html
+++ b/functions_eval.html
@@ -170,6 +170,9 @@ $(document).ready(function(){initNavTree('functions_eval.html','');});
: <a class="el" href="structafio__v2__xxx_1_1handle_1_1flag__base.html#a51aaa32c78950cedbc1b7a61e1738d3eadc582374ac8ba5ca2d5dd81cc81258e9">afio_v2_xxx::handle::flag_base</a>
, <a class="el" href="structafio__v2__xxx_1_1section__handle_1_1flag__base.html#a5b790e66402ef3a07ce9464f3e1dc9d8a26c56f64a5569c048ed853c28249726d">afio_v2_xxx::section_handle::flag_base</a>
</li>
+<li>nvram
+: <a class="el" href="structafio__v2__xxx_1_1section__handle_1_1flag__base.html#a5b790e66402ef3a07ce9464f3e1dc9d8a1e60c3188179bfa97299536cd051fcb9">afio_v2_xxx::section_handle::flag_base</a>
+</li>
</ul>
diff --git a/functions_func_b.html b/functions_func_b.html
index 723c5e8f..fd81f26d 100644
--- a/functions_func_b.html
+++ b/functions_func_b.html
@@ -94,13 +94,14 @@ $(document).ready(function(){initNavTree('functions_func_b.html','');});
</li>
<li>barrier()
: <a class="el" href="classafio__v2__xxx_1_1io__handle.html#a243156928e89b8988a1412f211b3b603">afio_v2_xxx::io_handle</a>
+, <a class="el" href="classafio__v2__xxx_1_1map__handle.html#a7119886b920953e12340b05ea94e395d">afio_v2_xxx::map_handle</a>
</li>
<li>begin()
: <a class="el" href="structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#acebb433711065ad2b2d16d78eab4b0a0">afio_v2_xxx::algorithm::impl::trivial_vector_impl&lt; has_default_construction, T &gt;</a>
-, <a class="el" href="structafio__v2__xxx_1_1storage__profile_1_1storage__profile.html#aa19331ff339cc1f81d42db90bdf5f1db">afio_v2_xxx::storage_profile::storage_profile</a>
+, <a class="el" href="structafio__v2__xxx_1_1storage__profile_1_1storage__profile.html#ac36c1be86646518163e8812aff79d080">afio_v2_xxx::storage_profile::storage_profile</a>
</li>
<li>buffers_type()
-: <a class="el" href="structafio__v2__xxx_1_1directory__handle_1_1buffers__type.html#ac222d9bee85db4d81c5d9072811e30f3">afio_v2_xxx::directory_handle::buffers_type</a>
+: <a class="el" href="structafio__v2__xxx_1_1directory__handle_1_1buffers__type.html#abcc10e5221526f9a9a618dc22bbeaf70">afio_v2_xxx::directory_handle::buffers_type</a>
</li>
<li>byte_ranges()
: <a class="el" href="classafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html#a364c9875ff2249526b7450095999b2fa">afio_v2_xxx::algorithm::shared_fs_mutex::byte_ranges</a>
diff --git a/functions_func_c.html b/functions_func_c.html
index 122a3c37..276ac811 100644
--- a/functions_func_c.html
+++ b/functions_func_c.html
@@ -85,6 +85,7 @@ $(document).ready(function(){initNavTree('functions_func_c.html','');});
<h3><a id="index_c"></a>- c -</h3><ul>
<li>capacity()
: <a class="el" href="structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#a5af156c890eb50a4ab666fa5af5b7c23">afio_v2_xxx::algorithm::impl::trivial_vector_impl&lt; has_default_construction, T &gt;</a>
+, <a class="el" href="classafio__v2__xxx_1_1map__handle.html#ad29ceb1ecb38e9e74e63404b7db3a5a2">afio_v2_xxx::map_handle</a>
, <a class="el" href="classafio__v2__xxx_1_1mapped__file__handle.html#ae8e389b2dbdff1b1f155ea351f5ba9c5">afio_v2_xxx::mapped_file_handle</a>
</li>
<li>cbegin()
@@ -98,7 +99,7 @@ $(document).ready(function(){initNavTree('functions_func_c.html','');});
, <a class="el" href="structafio__v2__xxx_1_1storage__profile_1_1item.html#a5f7494ef59c8a25210953863888da1ec">afio_v2_xxx::storage_profile::item&lt; T &gt;</a>
</li>
<li>clone()
-: <a class="el" href="classafio__v2__xxx_1_1async__file__handle.html#a936a28e9d3fde456a87fd6f7b74258f8">afio_v2_xxx::async_file_handle</a>
+: <a class="el" href="classafio__v2__xxx_1_1async__file__handle.html#a8d0223e2633274060d94f68b9431dc2f">afio_v2_xxx::async_file_handle</a>
, <a class="el" href="classafio__v2__xxx_1_1directory__handle.html#a6604d66ebd96f9ed038213b8c22afede">afio_v2_xxx::directory_handle</a>
, <a class="el" href="classafio__v2__xxx_1_1file__handle.html#a917a528bb0edef02b1a0f535646b7009">afio_v2_xxx::file_handle</a>
, <a class="el" href="classafio__v2__xxx_1_1handle.html#a54790e954f57372b87b095451cc79c38">afio_v2_xxx::handle</a>
@@ -125,7 +126,7 @@ $(document).ready(function(){initNavTree('functions_func_c.html','');});
: <a class="el" href="classafio__v2__xxx_1_1map__handle.html#a4cdb7b9643da8c8e2dee0c8b01511e83">afio_v2_xxx::map_handle</a>
</li>
<li>compare()
-: <a class="el" href="classafio__v2__xxx_1_1path__view.html#a17590607917c4cf249d809ee22171225">afio_v2_xxx::path_view</a>
+: <a class="el" href="classafio__v2__xxx_1_1path__view.html#ac24b83766cf682a8aaf5da927c227f37">afio_v2_xxx::path_view</a>
</li>
<li>crbegin()
: <a class="el" href="structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#ae0c4aad06173bf46781ef4e65827976b">afio_v2_xxx::algorithm::impl::trivial_vector_impl&lt; has_default_construction, T &gt;</a>
diff --git a/functions_func_i.html b/functions_func_i.html
index 2cfe6bf8..85b6acd6 100644
--- a/functions_func_i.html
+++ b/functions_func_i.html
@@ -110,6 +110,10 @@ $(document).ready(function(){initNavTree('functions_func_i.html','');});
: <a class="el" href="classafio__v2__xxx_1_1handle.html#ab790af4654f5455d8c5e1f1d397543ca">afio_v2_xxx::handle</a>
, <a class="el" href="structafio__v2__xxx_1_1native__handle__type.html#a92b5295842f424e71367c0d9019f5d8e">afio_v2_xxx::native_handle_type</a>
</li>
+<li>is_nvram()
+: <a class="el" href="classafio__v2__xxx_1_1map__handle.html#a5c57d56e5704ced94de606895a1fe9bd">afio_v2_xxx::map_handle</a>
+, <a class="el" href="classafio__v2__xxx_1_1section__handle.html#a111bb9698b6180e9f211e27816f8a4da">afio_v2_xxx::section_handle</a>
+</li>
<li>is_overlapped()
: <a class="el" href="classafio__v2__xxx_1_1handle.html#af42904dd49b5517a303e7cb256eae939">afio_v2_xxx::handle</a>
, <a class="el" href="structafio__v2__xxx_1_1native__handle__type.html#a529a58c5d24bbafc823bffb0143d1c0b">afio_v2_xxx::native_handle_type</a>
diff --git a/functions_func_m.html b/functions_func_m.html
index 0d0039ef..7dde2d72 100644
--- a/functions_func_m.html
+++ b/functions_func_m.html
@@ -99,15 +99,15 @@ $(document).ready(function(){initNavTree('functions_func_m.html','');});
<li>mapped_random_file()
: <a class="el" href="classafio__v2__xxx_1_1mapped__file__handle.html#a00875e717f4b2725bb58ecbb5310fc6f">afio_v2_xxx::mapped_file_handle</a>
</li>
+<li>mapped_span()
+: <a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__span.html#aa5b20642220613876d8be474003785e9">afio_v2_xxx::algorithm::mapped_span&lt; T &gt;</a>
+</li>
<li>mapped_temp_file()
: <a class="el" href="classafio__v2__xxx_1_1mapped__file__handle.html#ae19c88791bd2e0bca0d22ec576687a83">afio_v2_xxx::mapped_file_handle</a>
</li>
<li>mapped_temp_inode()
: <a class="el" href="classafio__v2__xxx_1_1mapped__file__handle.html#afb68c9671a7ffb40cef4b6db0000a1a5">afio_v2_xxx::mapped_file_handle</a>
</li>
-<li>mapped_view()
-: <a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__view.html#a90012e57d3d7fa833f363a56cb91bcd9">afio_v2_xxx::algorithm::mapped_view&lt; T &gt;</a>
-</li>
<li>max_buffers()
: <a class="el" href="classafio__v2__xxx_1_1io__handle.html#a4d9cbbb7aae98704c6ad97de080c4210">afio_v2_xxx::io_handle</a>
</li>
@@ -116,7 +116,7 @@ $(document).ready(function(){initNavTree('functions_func_m.html','');});
, <a class="el" href="structafio__v2__xxx_1_1storage__profile_1_1storage__profile.html#ab6b3c4513e47e2905c8e6fe1c831d742">afio_v2_xxx::storage_profile::storage_profile</a>
</li>
<li>memory_map()
-: <a class="el" href="classafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#af066bb4d3f9f7020b60733ff0bcc99df">afio_v2_xxx::algorithm::shared_fs_mutex::memory_map&lt; Hasher, HashIndexSize, SpinlockType &gt;</a>
+: <a class="el" href="classafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#ad8731e82e929f26c38a34450fc87d7bb">afio_v2_xxx::algorithm::shared_fs_mutex::memory_map&lt; Hasher, HashIndexSize, SpinlockType &gt;</a>
</li>
<li>message()
: <a class="el" href="structafio__v2__xxx_1_1error__info.html#ae710a4b60f3da9ab91e32374f9a766d5">afio_v2_xxx::error_info</a>
diff --git a/functions_func_t.html b/functions_func_t.html
index 857e16a7..78da4e08 100644
--- a/functions_func_t.html
+++ b/functions_func_t.html
@@ -101,6 +101,7 @@ $(document).ready(function(){initNavTree('functions_func_t.html','');});
</li>
<li>truncate()
: <a class="el" href="classafio__v2__xxx_1_1file__handle.html#a45873fd0b1ab27f936f046ed14124afd">afio_v2_xxx::file_handle</a>
+, <a class="el" href="classafio__v2__xxx_1_1map__handle.html#af9699a9a290ba974184f844c2f6038e8">afio_v2_xxx::map_handle</a>
, <a class="el" href="classafio__v2__xxx_1_1mapped__file__handle.html#a64bf34a474aa4de495b38ce314fd377b">afio_v2_xxx::mapped_file_handle</a>
, <a class="el" href="classafio__v2__xxx_1_1section__handle.html#a229f515ed3251071d374476204e23e30">afio_v2_xxx::section_handle</a>
</li>
diff --git a/functions_func_u.html b/functions_func_u.html
index 311e89c9..4bd651cd 100644
--- a/functions_func_u.html
+++ b/functions_func_u.html
@@ -104,7 +104,8 @@ $(document).ready(function(){initNavTree('functions_func_u.html','');});
, <a class="el" href="classafio__v2__xxx_1_1io__handle.html#a96b9da71ee7791fbaaa2470c936ec763">afio_v2_xxx::io_handle</a>
</li>
<li>update_map()
-: <a class="el" href="classafio__v2__xxx_1_1mapped__file__handle.html#a297b1f81b6d2875164e46a266c3f1f8a">afio_v2_xxx::mapped_file_handle</a>
+: <a class="el" href="classafio__v2__xxx_1_1map__handle.html#abaff8ae673c35e9bb150e3970dd205a5">afio_v2_xxx::map_handle</a>
+, <a class="el" href="classafio__v2__xxx_1_1mapped__file__handle.html#a297b1f81b6d2875164e46a266c3f1f8a">afio_v2_xxx::mapped_file_handle</a>
</li>
<li>using_kqueues()
: <a class="el" href="classafio__v2__xxx_1_1io__service.html#a692d937b87fa783803c5342f993fede1">afio_v2_xxx::io_service</a>
diff --git a/functions_i.html b/functions_i.html
index a3e7fa0d..5ebec087 100644
--- a/functions_i.html
+++ b/functions_i.html
@@ -122,6 +122,10 @@ $(document).ready(function(){initNavTree('functions_i.html','');});
: <a class="el" href="classafio__v2__xxx_1_1handle.html#ab790af4654f5455d8c5e1f1d397543ca">afio_v2_xxx::handle</a>
, <a class="el" href="structafio__v2__xxx_1_1native__handle__type.html#a92b5295842f424e71367c0d9019f5d8e">afio_v2_xxx::native_handle_type</a>
</li>
+<li>is_nvram()
+: <a class="el" href="classafio__v2__xxx_1_1map__handle.html#a5c57d56e5704ced94de606895a1fe9bd">afio_v2_xxx::map_handle</a>
+, <a class="el" href="classafio__v2__xxx_1_1section__handle.html#a111bb9698b6180e9f211e27816f8a4da">afio_v2_xxx::section_handle</a>
+</li>
<li>is_overlapped()
: <a class="el" href="classafio__v2__xxx_1_1handle.html#af42904dd49b5517a303e7cb256eae939">afio_v2_xxx::handle</a>
, <a class="el" href="structafio__v2__xxx_1_1native__handle__type.html#a529a58c5d24bbafc823bffb0143d1c0b">afio_v2_xxx::native_handle_type</a>
diff --git a/functions_m.html b/functions_m.html
index 045631cb..c8dbd9b4 100644
--- a/functions_m.html
+++ b/functions_m.html
@@ -99,15 +99,15 @@ $(document).ready(function(){initNavTree('functions_m.html','');});
<li>mapped_random_file()
: <a class="el" href="classafio__v2__xxx_1_1mapped__file__handle.html#a00875e717f4b2725bb58ecbb5310fc6f">afio_v2_xxx::mapped_file_handle</a>
</li>
+<li>mapped_span()
+: <a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__span.html#aa5b20642220613876d8be474003785e9">afio_v2_xxx::algorithm::mapped_span&lt; T &gt;</a>
+</li>
<li>mapped_temp_file()
: <a class="el" href="classafio__v2__xxx_1_1mapped__file__handle.html#ae19c88791bd2e0bca0d22ec576687a83">afio_v2_xxx::mapped_file_handle</a>
</li>
<li>mapped_temp_inode()
: <a class="el" href="classafio__v2__xxx_1_1mapped__file__handle.html#afb68c9671a7ffb40cef4b6db0000a1a5">afio_v2_xxx::mapped_file_handle</a>
</li>
-<li>mapped_view()
-: <a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__view.html#a8ac47f0032bf486cc3ff21b0a1958d02">afio_v2_xxx::algorithm::mapped_view&lt; T &gt;</a>
-</li>
<li>max_buffers()
: <a class="el" href="classafio__v2__xxx_1_1io__handle.html#a4d9cbbb7aae98704c6ad97de080c4210">afio_v2_xxx::io_handle</a>
</li>
diff --git a/functions_n.html b/functions_n.html
index f5e20e93..9665d4bb 100644
--- a/functions_n.html
+++ b/functions_n.html
@@ -111,6 +111,9 @@ $(document).ready(function(){initNavTree('functions_n.html','');});
<li>nsecs
: <a class="el" href="structafio__v2__xxx_1_1deadline.html#a6640fb195fb8b761a8b04ab8dd653106">afio_v2_xxx::deadline</a>
</li>
+<li>nvram
+: <a class="el" href="structafio__v2__xxx_1_1section__handle_1_1flag__base.html#a5b790e66402ef3a07ce9464f3e1dc9d8a1e60c3188179bfa97299536cd051fcb9">afio_v2_xxx::section_handle::flag_base</a>
+</li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
diff --git a/functions_s.html b/functions_s.html
index 7243e072..0f61e538 100644
--- a/functions_s.html
+++ b/functions_s.html
@@ -133,7 +133,7 @@ $(document).ready(function(){initNavTree('functions_s.html','');});
: <a class="el" href="structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#a618ed9123552bf7a1681fc566ea8cd37">afio_v2_xxx::algorithm::impl::trivial_vector_impl&lt; has_default_construction, T &gt;</a>
, <a class="el" href="structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl_3_01true_00_01_t_01_4.html#ac62b40fb77aa21ca6e24f296969aa70a">afio_v2_xxx::algorithm::impl::trivial_vector_impl&lt; true, T &gt;</a>
, <a class="el" href="classafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__iterator.html#a04de3895e4f179e8f66f80f8708c78eb">afio_v2_xxx::algorithm::impl::trivial_vector_iterator&lt; T &gt;</a>
-, <a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__view.html#a7812759f458831ea053fed38ec46dc30">afio_v2_xxx::algorithm::mapped_view&lt; T &gt;</a>
+, <a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__span.html#aa33d0ce0be15b0738c6b36341843ccb5">afio_v2_xxx::algorithm::mapped_span&lt; T &gt;</a>
, <a class="el" href="classafio__v2__xxx_1_1handle.html#a0adf7fa00e23ed561328f473986e9ccc">afio_v2_xxx::handle</a>
, <a class="el" href="classafio__v2__xxx_1_1io__service.html#a2efd36ca952a401e2b0bc44b7e52524e">afio_v2_xxx::io_service</a>
, <a class="el" href="classafio__v2__xxx_1_1path__view.html#ac9ea02ed943d7b9adeed34c4ed100d5f">afio_v2_xxx::path_view</a>
diff --git a/functions_t.html b/functions_t.html
index 59d35aeb..d6a0b257 100644
--- a/functions_t.html
+++ b/functions_t.html
@@ -101,11 +101,12 @@ $(document).ready(function(){initNavTree('functions_t.html','');});
</li>
<li>truncate()
: <a class="el" href="classafio__v2__xxx_1_1file__handle.html#a45873fd0b1ab27f936f046ed14124afd">afio_v2_xxx::file_handle</a>
+, <a class="el" href="classafio__v2__xxx_1_1map__handle.html#af9699a9a290ba974184f844c2f6038e8">afio_v2_xxx::map_handle</a>
, <a class="el" href="classafio__v2__xxx_1_1mapped__file__handle.html#a64bf34a474aa4de495b38ce314fd377b">afio_v2_xxx::mapped_file_handle</a>
, <a class="el" href="classafio__v2__xxx_1_1section__handle.html#a229f515ed3251071d374476204e23e30">afio_v2_xxx::section_handle</a>
</li>
<li>try_lock()
-: <a class="el" href="classafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html#a0987b9c6c93a65acb2715e589d45c273">afio_v2_xxx::algorithm::shared_fs_mutex::shared_fs_mutex</a>
+: <a class="el" href="classafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html#aebdc3d01ccb30b297950130c7ebac57b">afio_v2_xxx::algorithm::shared_fs_mutex::shared_fs_mutex</a>
, <a class="el" href="classafio__v2__xxx_1_1io__handle.html#a0a1c4773b9fa7bbd04fee0756075d319">afio_v2_xxx::io_handle</a>
</li>
<li>type
diff --git a/functions_type.html b/functions_type.html
index 096f232f..19abbc43 100644
--- a/functions_type.html
+++ b/functions_type.html
@@ -161,7 +161,7 @@ $(document).ready(function(){initNavTree('functions_type.html','');});
, <a class="el" href="classafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1safe__byte__ranges.html#a2c691f6623a7bd90b846e49863702f00">afio_v2_xxx::algorithm::shared_fs_mutex::safe_byte_ranges</a>
</li>
<li>extent_type
-: <a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__view.html#a0e413ca44e22e974598aa700f8fda08a">afio_v2_xxx::algorithm::mapped_view&lt; T &gt;</a>
+: <a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__span.html#aa53a448cdf7c235bdba9252b52548b5b">afio_v2_xxx::algorithm::mapped_span&lt; T &gt;</a>
, <a class="el" href="classafio__v2__xxx_1_1handle.html#a818fff07c92eaab72532092d1c2a14f9">afio_v2_xxx::handle</a>
, <a class="el" href="classafio__v2__xxx_1_1io__service.html#afc9f0ed0d7e0bce83023f998e95f7873">afio_v2_xxx::io_service</a>
</li>
@@ -234,7 +234,7 @@ $(document).ready(function(){initNavTree('functions_type.html','');});
: <a class="el" href="structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#a618ed9123552bf7a1681fc566ea8cd37">afio_v2_xxx::algorithm::impl::trivial_vector_impl&lt; has_default_construction, T &gt;</a>
, <a class="el" href="structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl_3_01true_00_01_t_01_4.html#ac62b40fb77aa21ca6e24f296969aa70a">afio_v2_xxx::algorithm::impl::trivial_vector_impl&lt; true, T &gt;</a>
, <a class="el" href="classafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__iterator.html#a04de3895e4f179e8f66f80f8708c78eb">afio_v2_xxx::algorithm::impl::trivial_vector_iterator&lt; T &gt;</a>
-, <a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__view.html#a7812759f458831ea053fed38ec46dc30">afio_v2_xxx::algorithm::mapped_view&lt; T &gt;</a>
+, <a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__span.html#aa33d0ce0be15b0738c6b36341843ccb5">afio_v2_xxx::algorithm::mapped_span&lt; T &gt;</a>
, <a class="el" href="classafio__v2__xxx_1_1handle.html#a0adf7fa00e23ed561328f473986e9ccc">afio_v2_xxx::handle</a>
, <a class="el" href="classafio__v2__xxx_1_1io__service.html#a2efd36ca952a401e2b0bc44b7e52524e">afio_v2_xxx::io_service</a>
, <a class="el" href="classafio__v2__xxx_1_1path__view.html#ac9ea02ed943d7b9adeed34c4ed100d5f">afio_v2_xxx::path_view</a>
diff --git a/functions_u.html b/functions_u.html
index 4ab354aa..4762a9d2 100644
--- a/functions_u.html
+++ b/functions_u.html
@@ -110,7 +110,8 @@ $(document).ready(function(){initNavTree('functions_u.html','');});
, <a class="el" href="classafio__v2__xxx_1_1io__handle.html#a96b9da71ee7791fbaaa2470c936ec763">afio_v2_xxx::io_handle</a>
</li>
<li>update_map()
-: <a class="el" href="classafio__v2__xxx_1_1mapped__file__handle.html#a297b1f81b6d2875164e46a266c3f1f8a">afio_v2_xxx::mapped_file_handle</a>
+: <a class="el" href="classafio__v2__xxx_1_1map__handle.html#abaff8ae673c35e9bb150e3970dd205a5">afio_v2_xxx::map_handle</a>
+, <a class="el" href="classafio__v2__xxx_1_1mapped__file__handle.html#a297b1f81b6d2875164e46a266c3f1f8a">afio_v2_xxx::mapped_file_handle</a>
</li>
<li>using_kqueues()
: <a class="el" href="classafio__v2__xxx_1_1io__service.html#a692d937b87fa783803c5342f993fede1">afio_v2_xxx::io_service</a>
diff --git a/hierarchy.html b/hierarchy.html
index e57925f2..3713bc2b 100644
--- a/hierarchy.html
+++ b/hierarchy.html
@@ -123,7 +123,7 @@ $(document).ready(function(){initNavTree('hierarchy.html','');});
<tr id="row_29_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_29_" class="arrow" onclick="toggleFolder('29_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classafio__v2__xxx_1_1handle.html" target="_self">afio_v2_xxx::handle</a></td><td class="desc">A native_handle_type which is managed by the lifetime of this object instance </td></tr>
<tr id="row_29_0_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_29_0_" class="arrow" onclick="toggleFolder('29_0_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classafio__v2__xxx_1_1io__handle.html" target="_self">afio_v2_xxx::io_handle</a></td><td class="desc">A handle to something capable of scatter-gather i/o </td></tr>
<tr id="row_29_0_0_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classafio__v2__xxx_1_1file__handle.html" target="_self">afio_v2_xxx::file_handle</a></td><td class="desc">A handle to a regular file or device, kept data layout compatible with async_file_handle </td></tr>
-<tr id="row_29_0_1_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classafio__v2__xxx_1_1map__handle.html" target="_self">afio_v2_xxx::map_handle</a></td><td class="desc">A handle to a memory mapped region of memory </td></tr>
+<tr id="row_29_0_1_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classafio__v2__xxx_1_1map__handle.html" target="_self">afio_v2_xxx::map_handle</a></td><td class="desc">A handle to a memory mapped region of memory, either backed by the system page file or by a section </td></tr>
<tr id="row_29_1_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_29_1_" class="arrow" onclick="toggleFolder('29_1_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classafio__v2__xxx_1_1path__handle.html" target="_self">afio_v2_xxx::path_handle</a></td><td class="desc">A handle to somewhere originally identified by a path on the filing system. Typically used as the lightest weight handle to some location on the filing system which may unpredictably relocate over time. This handle is thus an <em>anchor</em> to a subset island of the filing system, free of any race conditions introduced by third party changes to any part of the path leading to that island </td></tr>
<tr id="row_29_1_0_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classafio__v2__xxx_1_1directory__handle.html" target="_self">afio_v2_xxx::directory_handle</a></td><td class="desc">A handle to a directory which can be enumerated </td></tr>
<tr id="row_29_2_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classafio__v2__xxx_1_1section__handle.html" target="_self">afio_v2_xxx::section_handle</a></td><td class="desc">A handle to a source of mapped memory </td></tr>
@@ -143,8 +143,8 @@ $(document).ready(function(){initNavTree('hierarchy.html','');});
<tr id="row_36_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classafio__v2__xxx_1_1utils_1_1page__allocator_3_01void_01_4.html" target="_self">afio_v2_xxx::utils::page_allocator&lt; void &gt;</a></td><td class="desc"></td></tr>
<tr id="row_37_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structafio__v2__xxx_1_1path__hasher.html" target="_self">afio_v2_xxx::path_hasher</a></td><td class="desc"></td></tr>
<tr id="row_38_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classafio__v2__xxx_1_1path__view.html" target="_self">afio_v2_xxx::path_view</a></td><td class="desc">A borrowed view of a path. A lightweight trivial-type alternative to <code>std::filesystem::path</code> </td></tr>
-<tr id="row_39_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structafio__v2__xxx_1_1utils_1_1page__allocator_3_01void_01_4_1_1rebind.html" target="_self">afio_v2_xxx::utils::page_allocator&lt; void &gt;::rebind&lt; U &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_40_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structafio__v2__xxx_1_1utils_1_1page__allocator_1_1rebind.html" target="_self">afio_v2_xxx::utils::page_allocator&lt; T &gt;::rebind&lt; U &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_39_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structafio__v2__xxx_1_1utils_1_1page__allocator_1_1rebind.html" target="_self">afio_v2_xxx::utils::page_allocator&lt; T &gt;::rebind&lt; U &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_40_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structafio__v2__xxx_1_1utils_1_1page__allocator_3_01void_01_4_1_1rebind.html" target="_self">afio_v2_xxx::utils::page_allocator&lt; void &gt;::rebind&lt; U &gt;</a></td><td class="desc"></td></tr>
<tr id="row_41_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_41_" class="arrow" onclick="toggleFolder('41_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><b>result</b></td><td class="desc"></td></tr>
<tr id="row_41_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__result.html" target="_self">afio_v2_xxx::io_handle::io_result&lt; T &gt;</a></td><td class="desc">The i/o result type used by this handle. Guaranteed to be <code>TrivialType</code> apart from construction. </td></tr>
<tr id="row_41_1_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__result.html" target="_self">afio_v2_xxx::io_handle::io_result&lt; buffers_type &gt;</a></td><td class="desc"></td></tr>
@@ -157,7 +157,7 @@ $(document).ready(function(){initNavTree('hierarchy.html','');});
<tr id="row_43_3_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html" target="_self">afio_v2_xxx::algorithm::shared_fs_mutex::memory_map&lt; Hasher, HashIndexSize, SpinlockType &gt;</a></td><td class="desc">Many entity memory mapped shared/exclusive file system based lock </td></tr>
<tr id="row_43_4_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1safe__byte__ranges.html" target="_self">afio_v2_xxx::algorithm::shared_fs_mutex::safe_byte_ranges</a></td><td class="desc">Safe many entity shared/exclusive file system based lock </td></tr>
<tr id="row_44_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_44_" class="arrow" onclick="toggleFolder('44_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><b>span</b></td><td class="desc"></td></tr>
-<tr id="row_44_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__view.html" target="_self">afio_v2_xxx::algorithm::mapped_view&lt; T &gt;</a></td><td class="desc">Provides a typed mapped view of a <code>section_handle</code> suitable for feeding to STL algorithms or the Ranges TS by wrapping a <code>map_handle</code> into a <code>span&lt;T&gt;</code> </td></tr>
+<tr id="row_44_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__span.html" target="_self">afio_v2_xxx::algorithm::mapped_span&lt; T &gt;</a></td><td class="desc">Provides a typed mapped view of a <code>section_handle</code> suitable for feeding to STL algorithms or the Ranges TS by wrapping a <code>map_handle</code> into a <code>span&lt;T&gt;</code> </td></tr>
<tr id="row_44_1_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structafio__v2__xxx_1_1directory__handle_1_1buffers__type.html" target="_self">afio_v2_xxx::directory_handle::buffers_type</a></td><td class="desc"></td></tr>
<tr id="row_45_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structafio__v2__xxx_1_1stat__t.html" target="_self">afio_v2_xxx::stat_t</a></td><td class="desc">Metadata about a directory entry </td></tr>
<tr id="row_46_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structafio__v2__xxx_1_1statfs__t.html" target="_self">afio_v2_xxx::statfs_t</a></td><td class="desc">Metadata about a filing system. Unsupported entries are all bits set </td></tr>
diff --git a/hierarchy.js b/hierarchy.js
index 3a3b6c54..3b55314a 100644
--- a/hierarchy.js
+++ b/hierarchy.js
@@ -64,8 +64,8 @@ var hierarchy =
[ "afio_v2_xxx::utils::page_allocator< void >", "classafio__v2__xxx_1_1utils_1_1page__allocator_3_01void_01_4.html", null ],
[ "afio_v2_xxx::path_hasher", "structafio__v2__xxx_1_1path__hasher.html", null ],
[ "afio_v2_xxx::path_view", "classafio__v2__xxx_1_1path__view.html", null ],
- [ "afio_v2_xxx::utils::page_allocator< void >::rebind< U >", "structafio__v2__xxx_1_1utils_1_1page__allocator_3_01void_01_4_1_1rebind.html", null ],
[ "afio_v2_xxx::utils::page_allocator< T >::rebind< U >", "structafio__v2__xxx_1_1utils_1_1page__allocator_1_1rebind.html", null ],
+ [ "afio_v2_xxx::utils::page_allocator< void >::rebind< U >", "structafio__v2__xxx_1_1utils_1_1page__allocator_3_01void_01_4_1_1rebind.html", null ],
[ "result", null, [
[ "afio_v2_xxx::io_handle::io_result< T >", "structafio__v2__xxx_1_1io__handle_1_1io__result.html", null ],
[ "afio_v2_xxx::io_handle::io_result< buffers_type >", "structafio__v2__xxx_1_1io__handle_1_1io__result.html", null ],
@@ -80,7 +80,7 @@ var hierarchy =
[ "afio_v2_xxx::algorithm::shared_fs_mutex::safe_byte_ranges", "classafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1safe__byte__ranges.html", null ]
] ],
[ "span", null, [
- [ "afio_v2_xxx::algorithm::mapped_view< T >", "classafio__v2__xxx_1_1algorithm_1_1mapped__view.html", null ],
+ [ "afio_v2_xxx::algorithm::mapped_span< T >", "classafio__v2__xxx_1_1algorithm_1_1mapped__span.html", null ],
[ "afio_v2_xxx::directory_handle::buffers_type", "structafio__v2__xxx_1_1directory__handle_1_1buffers__type.html", null ]
] ],
[ "afio_v2_xxx::stat_t", "structafio__v2__xxx_1_1stat__t.html", null ],
diff --git a/index.html b/index.html
index 5014102c..ace7a3de 100644
--- a/index.html
+++ b/index.html
@@ -96,7 +96,8 @@ $(document).ready(function(){initNavTree('index.html','');});
</div>
</td><td align="center"><a href="https://dedi4.nedprod.com/static/files/afio-v2.0-source-latest.tar.xz">Latest stable</a><br />
<a href="https://dedi4.nedprod.com/static/files/afio-v2.0-source-latest.tar.xz">sources</a> </td><td align="center"><a href="https://dedi4.nedprod.com/static/files/afio-v2.0-binaries-linux64-latest.tgz">Latest stable</a><br />
-<a href="https://dedi4.nedprod.com/static/files/afio-v2.0-binaries-linux64-latest.tgz">Linux x64 prebuilt</a> </td><td align="center"><a href="https://dedi4.nedprod.com/static/files/afio-v2.0-binaries-win64-latest.zip">Latest stable</a><br />
+<a href="https://dedi4.nedprod.com/static/files/afio-v2.0-binaries-linux64-latest.tgz">Linux x64 prebuilt</a> </td><td align="center"><a href="https://dedi4.nedprod.com/static/files/afio-v2.0-binaries-darwin-latest.tgz">Latest stable</a><br />
+<a href="https://dedi4.nedprod.com/static/files/afio-v2.0-binaries-darwin64-latest.tgz">OS X x64 prebuilt</a> </td><td align="center"><a href="https://dedi4.nedprod.com/static/files/afio-v2.0-binaries-win64-latest.zip">Latest stable</a><br />
<a href="https://dedi4.nedprod.com/static/files/afio-v2.0-binaries-win64-latest.zip">VS2017 x64 prebuilt</a> </td></tr>
</table>
</center><p>Herein lies my proposed zero whole machine memory copy async file i/o and filesystem library for Boost and the C++ standard, intended for storage devices with ~1 microsecond 4Kb transfer latencies and those supporting Storage Class Memory (SCM)/Direct Access Storage (DAX). Its i/o overhead, including syscall overhead, has been benchmarked to 100 nanoseconds on Linux which corresponds to a theoretical maximum of 10M IOPS @ QD1, approx 40Gb/sec per thread. It has particularly strong support for writing portable filesystem algorithms which work well with directly mapped non-volatile storage such as Intel Optane.</p>
@@ -109,16 +110,17 @@ $(document).ready(function(){initNavTree('index.html','');});
<li>Original error code is always preserved, even down to the original NT kernel error code if a NT kernel API was used.</li>
<li>Race free filesystem design used throughout (i.e. no TOCTOU).</li>
<li>Zero malloc, zero exception throw and zero whole system memory copy design used throughout, even down to paths (which can hit 64Kb!).</li>
-<li>Works very well with the C++ standard library, and is intended to be proposed for standardisation into C++ in 2020 or thereabouts.</li>
+<li>Works very well with the C++ standard library, and is intended to be proposed for standardisation into C++ in Summer 2018.</li>
</ul>
<dl class="section note"><dt>Note</dt><dd>Note that this code is of late alpha quality. It's quite reliable on Windows and Linux, but be careful when using it!</dd></dl>
<p>Examples of use: </p><table width="100%" border="0" cellpadding="4">
<tr>
-<td width="50%" valign="top"><div class="fragment"><div class="line">namespace afio = AFIO_V2_NAMESPACE;</div><div class="line"></div><div class="line">// Make me a 1 trillion element sparsely allocated integer array!</div><div class="line">afio::mapped_file_handle mfh = afio::mapped_temp_inode().value();</div><div class="line"></div><div class="line">// On an extents based filing system, doesn&#39;t actually allocate any physical</div><div class="line">// storage but does map approximately 4Tb of all bits zero data into memory</div><div class="line">mfh.truncate(1000000000000ULL*sizeof(int));</div><div class="line"></div><div class="line">// Create a typed view of the one trillion integers</div><div class="line">afio::algorithm::mapped_view&lt;int&gt; one_trillion_int_array(mfh);</div><div class="line"></div><div class="line">// Write and read as you see fit, if you exceed physical RAM it&#39;ll be paged out</div><div class="line">one_trillion_int_array[0] = 5;</div><div class="line">one_trillion_int_array[999999999999ULL] = 6;</div></div><!-- fragment --> </td><td width="50%" valign="top"><div class="fragment"><div class="line">namespace afio = AFIO_V2_NAMESPACE;</div><div class="line"></div><div class="line">// Create an asynchronous file handle</div><div class="line">afio::io_service service;</div><div class="line">afio::async_file_handle fh =</div><div class="line"> afio::async_file(service, {}, &quot;testfile.txt&quot;,</div><div class="line"> afio::async_file_handle::mode::write,</div><div class="line"> afio::async_file_handle::creation::if_needed).value();</div><div class="line"></div><div class="line">// Resize it to 1024 bytes</div><div class="line">truncate(fh, 1024).value();</div><div class="line"></div><div class="line">// Begin to asynchronously write &quot;hello world&quot; into the file at offset 0,</div><div class="line">// suspending execution of this coroutine until completion and then resuming</div><div class="line">// execution. Requires the Coroutines TS.</div><div class="line">alignas(4096) char buffer[] = &quot;hello world&quot;;</div><div class="line">co_await co_write(fh, {{{buffer, sizeof(buffer)}}, 0}).value();</div></div><!-- fragment --> </td></tr>
+<td width="50%" valign="top"><div class="fragment"></div><!-- fragment --> </td><td width="50%" valign="top"><div class="fragment"></div><!-- fragment --> </td></tr>
</table>
<p>These compilers and OS are regularly tested:</p><ul>
<li>GCC 7.0 (Linux 4,x x64)</li>
<li>clang 4.0 (Linux 4.x x64)</li>
+<li>clang 5.0 (OS X 10.12 x64)</li>
<li>Visual Studio 2017 (Windows 10 x64)</li>
</ul>
<p>Other compilers, architectures and OSs may work, but are not tested regularly. You will need a Filesystem TS implementation in your STL and C++ 14. See <a href="https://github.com/ned14/afio/blob/master/programs/fs-probe/fs_probe_results.yaml">https://github.com/ned14/afio/blob/master/programs/fs-probe/fs_probe_results.yaml</a> for a database of latencies for various previously tested OS, filing systems and storage devices.</p>
@@ -272,13 +274,21 @@ mapped_file_handle - adds low latency memory mapped scatter-gather i/o</li>
<tr>
<th>NEW in v2 </th><th>Windows </th><th>POSIX </th><th></th></tr>
<tr>
-<td>✔ </td><td></td><td></td><td>Linux KAIO support for native non-blocking <code>O_DIRECT</code> i/o </td></tr>
+<td>✔ </td><td></td><td></td><td>Page allocator based on an index of linked list of free pages. See notes. </td></tr>
+<tr>
+<td>✔ </td><td></td><td></td><td>Optionally concurrent B+ tree index based on page allocator for key-value store. </td></tr>
+<tr>
+<td>✔ </td><td></td><td></td><td>Attributes extending <code>span&lt;buffers_type&gt;</code> with DMA colouring. </td></tr>
<tr>
-<td>✔ </td><td></td><td></td><td>Reliable directory hierarchy deletion algorithm. </td></tr>
+<td>✔ </td><td></td><td></td><td>Coroutine generator for iterating a file's contents in DMA friendly way. </td></tr>
<tr>
-<td>✔ </td><td></td><td></td><td>Reliable directory hierarchy copy algorithm. </td></tr>
+<td>✔ </td><td></td><td></td><td>Ranges &amp; Concurrency based reliable directory hierarchy deletion algorithm. </td></tr>
<tr>
-<td>✔ </td><td></td><td></td><td>Reliable directory hierarchy update (two and three way) algorithm. </td></tr>
+<td>✔ </td><td></td><td></td><td>Ranges &amp; Concurrency based reliable directory hierarchy copy algorithm. </td></tr>
+<tr>
+<td>✔ </td><td></td><td></td><td>Ranges &amp; Concurrency based reliable directory hierarchy update (two and three way) algorithm. </td></tr>
+<tr>
+<td>✔ </td><td></td><td></td><td>Linux KAIO support for native non-blocking <code>O_DIRECT</code> i/o </td></tr>
<tr>
<td>✔ </td><td></td><td></td><td><code>std::pmr::memory_resource</code> adapting a file backing if on C++ 17. </td></tr>
<tr>
diff --git a/io__handle_8hpp.html b/io__handle_8hpp.html
index cf5c8610..f4f33801 100644
--- a/io__handle_8hpp.html
+++ b/io__handle_8hpp.html
@@ -125,9 +125,13 @@ Functions</h2></td></tr>
<tr class="memitem:a3cff8f3910dbf47663e5df1dc7e5ba47"><td class="memItemLeft" align="right" valign="top">io_handle::io_result&lt; io_handle::buffers_type &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceafio__v2__xxx.html#a3cff8f3910dbf47663e5df1dc7e5ba47">afio_v2_xxx::read</a> (io_handle &amp;self, io_handle::io_request&lt; io_handle::buffers_type &gt; reqs, deadline d=deadline()) noexcept</td></tr>
<tr class="memdesc:a3cff8f3910dbf47663e5df1dc7e5ba47"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read data from the open handle. <a href="namespaceafio__v2__xxx.html#a3cff8f3910dbf47663e5df1dc7e5ba47">More...</a><br /></td></tr>
<tr class="separator:a3cff8f3910dbf47663e5df1dc7e5ba47"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a45b09c42c9a14c6abb56888a2832ba69"><td class="memItemLeft" align="right" valign="top">io_handle::io_result&lt; io_handle::buffers_type &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceafio__v2__xxx.html#a45b09c42c9a14c6abb56888a2832ba69">afio_v2_xxx::read</a> (io_handle &amp;self, io_handle::extent_type offset, std::initializer_list&lt; io_handle::buffer_type &gt; lst, deadline d=deadline()) noexcept</td></tr>
+<tr class="separator:a45b09c42c9a14c6abb56888a2832ba69"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2d15768d28ea660ebe44901508ed3372"><td class="memItemLeft" align="right" valign="top">io_handle::io_result&lt; io_handle::const_buffers_type &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceafio__v2__xxx.html#a2d15768d28ea660ebe44901508ed3372">afio_v2_xxx::write</a> (io_handle &amp;self, io_handle::io_request&lt; io_handle::const_buffers_type &gt; reqs, deadline d=deadline()) noexcept</td></tr>
<tr class="memdesc:a2d15768d28ea660ebe44901508ed3372"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write data to the open handle. <a href="namespaceafio__v2__xxx.html#a2d15768d28ea660ebe44901508ed3372">More...</a><br /></td></tr>
<tr class="separator:a2d15768d28ea660ebe44901508ed3372"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a53f3d40c5752d0dbeaa9b8233bff976f"><td class="memItemLeft" align="right" valign="top">io_handle::io_result&lt; io_handle::const_buffers_type &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceafio__v2__xxx.html#a53f3d40c5752d0dbeaa9b8233bff976f">afio_v2_xxx::write</a> (io_handle &amp;self, io_handle::extent_type offset, std::initializer_list&lt; io_handle::const_buffer_type &gt; lst, deadline d=deadline()) noexcept</td></tr>
+<tr class="separator:a53f3d40c5752d0dbeaa9b8233bff976f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abb60a5dc89b41b1db101dbed12cb065d"><td class="memItemLeft" align="right" valign="top">io_handle::io_result&lt; io_handle::const_buffers_type &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceafio__v2__xxx.html#abb60a5dc89b41b1db101dbed12cb065d">afio_v2_xxx::barrier</a> (io_handle &amp;self, io_handle::io_request&lt; io_handle::const_buffers_type &gt; reqs=io_handle::io_request&lt; io_handle::const_buffers_type &gt;(), bool wait_for_device=false, bool and_metadata=false, deadline d=deadline()) noexcept</td></tr>
<tr class="memdesc:abb60a5dc89b41b1db101dbed12cb065d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Issue a write reordering barrier such that writes preceding the barrier will reach storage before writes after this barrier. <a href="namespaceafio__v2__xxx.html#abb60a5dc89b41b1db101dbed12cb065d">More...</a><br /></td></tr>
<tr class="separator:abb60a5dc89b41b1db101dbed12cb065d"><td class="memSeparator" colspan="2">&#160;</td></tr>
diff --git a/io__handle_8hpp.js b/io__handle_8hpp.js
index 4b5da2df..73ce3f48 100644
--- a/io__handle_8hpp.js
+++ b/io__handle_8hpp.js
@@ -8,5 +8,7 @@ var io__handle_8hpp =
[ "extent_guard", "classafio__v2__xxx_1_1io__handle_1_1extent__guard.html", "classafio__v2__xxx_1_1io__handle_1_1extent__guard" ],
[ "barrier", "io__handle_8hpp.html#abb60a5dc89b41b1db101dbed12cb065d", null ],
[ "read", "io__handle_8hpp.html#a3cff8f3910dbf47663e5df1dc7e5ba47", null ],
- [ "write", "io__handle_8hpp.html#a2d15768d28ea660ebe44901508ed3372", null ]
+ [ "read", "io__handle_8hpp.html#a45b09c42c9a14c6abb56888a2832ba69", null ],
+ [ "write", "io__handle_8hpp.html#a2d15768d28ea660ebe44901508ed3372", null ],
+ [ "write", "io__handle_8hpp.html#a53f3d40c5752d0dbeaa9b8233bff976f", null ]
]; \ No newline at end of file
diff --git a/map__handle_8hpp.html b/map__handle_8hpp.html
index 0af41b8c..7ff563ab 100644
--- a/map__handle_8hpp.html
+++ b/map__handle_8hpp.html
@@ -105,7 +105,7 @@ Classes</h2></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor for <code>section_handle</code> <a href="structafio__v2__xxx_1_1construct_3_01section__handle_01_4.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1map__handle.html">afio_v2_xxx::map_handle</a></td></tr>
-<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A handle to a memory mapped region of memory. <a href="classafio__v2__xxx_1_1map__handle.html#details">More...</a><br /></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A handle to a memory mapped region of memory, either backed by the system page file or by a section. <a href="classafio__v2__xxx_1_1map__handle.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structafio__v2__xxx_1_1construct_3_01map__handle_01_4.html">afio_v2_xxx::construct&lt; map_handle &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor for <code>map_handle</code> <a href="structafio__v2__xxx_1_1construct_3_01map__handle_01_4.html#details">More...</a><br /></td></tr>
@@ -126,6 +126,15 @@ std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>afio_v2
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceafio__v2__xxx.html#af9ac8a79d17fb5750dbe2c85c903e4c5">afio_v2_xxx::swap</a> (section_handle &amp;self, section_handle &amp;o) noexcept</td></tr>
<tr class="memdesc:af9ac8a79d17fb5750dbe2c85c903e4c5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Swap with another instance. <br /></td></tr>
<tr class="separator:af9ac8a79d17fb5750dbe2c85c903e4c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6282e66d9ade4fea8e0508cfb65ec9ec"><td class="memItemLeft" align="right" valign="top">result&lt; section_handle &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceafio__v2__xxx.html#a6282e66d9ade4fea8e0508cfb65ec9ec">afio_v2_xxx::section</a> (file_handle &amp;backing, section_handle::extent_type maximum_size, section_handle::flag _flag) noexcept</td></tr>
+<tr class="memdesc:a6282e66d9ade4fea8e0508cfb65ec9ec"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a memory section backed by a file. <a href="namespaceafio__v2__xxx.html#a6282e66d9ade4fea8e0508cfb65ec9ec">More...</a><br /></td></tr>
+<tr class="separator:a6282e66d9ade4fea8e0508cfb65ec9ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae694d1c5ef24e2c6caa30b8d7ae6e12b"><td class="memItemLeft" align="right" valign="top">result&lt; section_handle &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceafio__v2__xxx.html#ae694d1c5ef24e2c6caa30b8d7ae6e12b">afio_v2_xxx::section</a> (file_handle &amp;backing, section_handle::extent_type bytes=0) noexcept</td></tr>
+<tr class="memdesc:ae694d1c5ef24e2c6caa30b8d7ae6e12b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a memory section backed by a file. <a href="namespaceafio__v2__xxx.html#ae694d1c5ef24e2c6caa30b8d7ae6e12b">More...</a><br /></td></tr>
+<tr class="separator:ae694d1c5ef24e2c6caa30b8d7ae6e12b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a42622b31d96b1098e37d9c527abd097d"><td class="memItemLeft" align="right" valign="top">result&lt; section_handle &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceafio__v2__xxx.html#a42622b31d96b1098e37d9c527abd097d">afio_v2_xxx::section</a> (section_handle::extent_type bytes, const path_handle &amp;dirh=path_discovery::storage_backed_temporary_files_directory(), section_handle::flag _flag=section_handle::flag::read|section_handle::flag::write) noexcept</td></tr>
+<tr class="memdesc:a42622b31d96b1098e37d9c527abd097d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a memory section backed by an anonymous, managed file. <a href="namespaceafio__v2__xxx.html#a42622b31d96b1098e37d9c527abd097d">More...</a><br /></td></tr>
+<tr class="separator:a42622b31d96b1098e37d9c527abd097d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afc6d4594196e16ac67b25d91e48d09ee"><td class="memItemLeft" align="right" valign="top"><a id="afc6d4594196e16ac67b25d91e48d09ee"></a>
result&lt; section_handle::extent_type &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceafio__v2__xxx.html#afc6d4594196e16ac67b25d91e48d09ee">afio_v2_xxx::length</a> (const section_handle &amp;self) noexcept</td></tr>
<tr class="memdesc:afc6d4594196e16ac67b25d91e48d09ee"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the current maximum permitted extent of the memory section. <br /></td></tr>
@@ -143,14 +152,18 @@ result&lt; void &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class
<tr class="memitem:a04980337d833bcc33cae657d6654f6a0"><td class="memItemLeft" align="right" valign="top"><a id="a04980337d833bcc33cae657d6654f6a0"></a>
map_handle::io_result&lt; map_handle::const_buffers_type &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>afio_v2_xxx::barrier</b> (map_handle &amp;self, map_handle::io_request&lt; map_handle::const_buffers_type &gt; reqs=map_handle::io_request&lt; map_handle::const_buffers_type &gt;(), bool wait_for_device=false, bool and_metadata=false, deadline d=deadline()) noexcept</td></tr>
<tr class="separator:a04980337d833bcc33cae657d6654f6a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1b5c40714a95d835e7926b9508469bf2"><td class="memItemLeft" align="right" valign="top">map_handle::const_buffer_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceafio__v2__xxx.html#a1b5c40714a95d835e7926b9508469bf2">afio_v2_xxx::barrier</a> (map_handle &amp;self, map_handle::const_buffer_type req, bool evict=false) noexcept</td></tr>
+<tr class="separator:a1b5c40714a95d835e7926b9508469bf2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2bea94a20aae6fb34ebe1ffd03e50891"><td class="memItemLeft" align="right" valign="top">result&lt; map_handle &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceafio__v2__xxx.html#a2bea94a20aae6fb34ebe1ffd03e50891">afio_v2_xxx::map</a> (map_handle::size_type bytes, section_handle::flag _flag=section_handle::flag::readwrite) noexcept</td></tr>
<tr class="separator:a2bea94a20aae6fb34ebe1ffd03e50891"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:accb0ec68871a9c3e3e7aeadc0f31e009"><td class="memItemLeft" align="right" valign="top">result&lt; map_handle &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceafio__v2__xxx.html#accb0ec68871a9c3e3e7aeadc0f31e009">afio_v2_xxx::map</a> (section_handle &amp;section, map_handle::size_type bytes=0, map_handle::extent_type offset=0, section_handle::flag _flag=section_handle::flag::readwrite) noexcept</td></tr>
<tr class="separator:accb0ec68871a9c3e3e7aeadc0f31e009"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abb42093725f3206e37e53ec44c39ad68"><td class="memItemLeft" align="right" valign="top"><a id="abb42093725f3206e37e53ec44c39ad68"></a>
map_handle::size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceafio__v2__xxx.html#abb42093725f3206e37e53ec44c39ad68">afio_v2_xxx::length</a> (const map_handle &amp;self) noexcept</td></tr>
-<tr class="memdesc:abb42093725f3206e37e53ec44c39ad68"><td class="mdescLeft">&#160;</td><td class="mdescRight">The size of the memory map. <br /></td></tr>
+<tr class="memdesc:abb42093725f3206e37e53ec44c39ad68"><td class="mdescLeft">&#160;</td><td class="mdescRight">The size of the memory map. This is the accessible size, NOT the reservation size. <br /></td></tr>
<tr class="separator:abb42093725f3206e37e53ec44c39ad68"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7da47c9f5665b4c9b1c44c035bf2571c"><td class="memItemLeft" align="right" valign="top">result&lt; map_handle::size_type &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceafio__v2__xxx.html#a7da47c9f5665b4c9b1c44c035bf2571c">afio_v2_xxx::truncate</a> (map_handle &amp;self, map_handle::size_type newsize, bool permit_relocation=false) noexcept</td></tr>
+<tr class="separator:a7da47c9f5665b4c9b1c44c035bf2571c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac89289d85eff137c40d3d0084c410656"><td class="memItemLeft" align="right" valign="top">map_handle::io_result&lt; map_handle::buffers_type &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceafio__v2__xxx.html#ac89289d85eff137c40d3d0084c410656">afio_v2_xxx::read</a> (map_handle &amp;self, map_handle::io_request&lt; map_handle::buffers_type &gt; reqs, deadline d=deadline()) noexcept</td></tr>
<tr class="memdesc:ac89289d85eff137c40d3d0084c410656"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read data from the mapped view. <a href="namespaceafio__v2__xxx.html#ac89289d85eff137c40d3d0084c410656">More...</a><br /></td></tr>
<tr class="separator:ac89289d85eff137c40d3d0084c410656"><td class="memSeparator" colspan="2">&#160;</td></tr>
diff --git a/map__handle_8hpp.js b/map__handle_8hpp.js
index 38114427..a823a120 100644
--- a/map__handle_8hpp.js
+++ b/map__handle_8hpp.js
@@ -6,6 +6,7 @@ var map__handle_8hpp =
[ "map_handle", "classafio__v2__xxx_1_1map__handle.html", "classafio__v2__xxx_1_1map__handle" ],
[ "construct< map_handle >", "structafio__v2__xxx_1_1construct_3_01map__handle_01_4.html", "structafio__v2__xxx_1_1construct_3_01map__handle_01_4" ],
[ "barrier", "map__handle_8hpp.html#a04980337d833bcc33cae657d6654f6a0", null ],
+ [ "barrier", "map__handle_8hpp.html#a1b5c40714a95d835e7926b9508469bf2", null ],
[ "close", "map__handle_8hpp.html#aa7f2ca17db2468dbd5407e2f35870077", null ],
[ "length", "map__handle_8hpp.html#afc6d4594196e16ac67b25d91e48d09ee", null ],
[ "length", "map__handle_8hpp.html#abb42093725f3206e37e53ec44c39ad68", null ],
@@ -13,8 +14,12 @@ var map__handle_8hpp =
[ "map", "map__handle_8hpp.html#accb0ec68871a9c3e3e7aeadc0f31e009", null ],
[ "operator<<", "map__handle_8hpp.html#a2e9ad4a02efc6016631baecfbc1d1d4d", null ],
[ "read", "map__handle_8hpp.html#ac89289d85eff137c40d3d0084c410656", null ],
+ [ "section", "map__handle_8hpp.html#a6282e66d9ade4fea8e0508cfb65ec9ec", null ],
+ [ "section", "map__handle_8hpp.html#ae694d1c5ef24e2c6caa30b8d7ae6e12b", null ],
+ [ "section", "map__handle_8hpp.html#a42622b31d96b1098e37d9c527abd097d", null ],
[ "swap", "map__handle_8hpp.html#af9ac8a79d17fb5750dbe2c85c903e4c5", null ],
[ "swap", "map__handle_8hpp.html#a4760df03b34efbb11c254b30eb6756f7", null ],
[ "truncate", "map__handle_8hpp.html#a6164dd52993407a203124b0761cc3bbc", null ],
+ [ "truncate", "map__handle_8hpp.html#a7da47c9f5665b4c9b1c44c035bf2571c", null ],
[ "write", "map__handle_8hpp.html#a5bfae365a1845c1bde4739de38c3653f", null ]
]; \ No newline at end of file
diff --git a/mapped__view_8hpp.html b/mapped__span_8hpp.html
index dc59be21..2cd2facb 100644
--- a/mapped__view_8hpp.html
+++ b/mapped__span_8hpp.html
@@ -5,7 +5,7 @@
<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>AFIO: include/afio/v2.0/algorithm/mapped_view.hpp File Reference</title>
+<title>AFIO: include/afio/v2.0/algorithm/mapped_span.hpp File Reference</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>
@@ -62,7 +62,7 @@ $(function() {
</div>
</div>
<script type="text/javascript">
-$(document).ready(function(){initNavTree('mapped__view_8hpp.html','');});
+$(document).ready(function(){initNavTree('mapped__span_8hpp.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
@@ -84,7 +84,7 @@ $(document).ready(function(){initNavTree('mapped__view_8hpp.html','');});
<a href="#nested-classes">Classes</a> &#124;
<a href="#namespaces">Namespaces</a> </div>
<div class="headertitle">
-<div class="title">mapped_view.hpp File Reference</div> </div>
+<div class="title">mapped_span.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
@@ -95,8 +95,8 @@ $(document).ready(function(){initNavTree('mapped__view_8hpp.html','');});
</div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__view.html">afio_v2_xxx::algorithm::mapped_view&lt; T &gt;</a></td></tr>
-<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides a typed mapped view of a <code>section_handle</code> suitable for feeding to STL algorithms or the Ranges TS by wrapping a <code>map_handle</code> into a <code>span&lt;T&gt;</code>. <a href="classafio__v2__xxx_1_1algorithm_1_1mapped__view.html#details">More...</a><br /></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__span.html">afio_v2_xxx::algorithm::mapped_span&lt; T &gt;</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides a typed mapped view of a <code>section_handle</code> suitable for feeding to STL algorithms or the Ranges TS by wrapping a <code>map_handle</code> into a <code>span&lt;T&gt;</code>. <a href="classafio__v2__xxx_1_1algorithm_1_1mapped__span.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
@@ -115,7 +115,7 @@ Namespaces</h2></td></tr>
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_4443eecac141a9c11b93921c40e6e530.html">afio</a></li><li class="navelem"><a class="el" href="dir_df838802a8d72797f186037846947269.html">v2.0</a></li><li class="navelem"><a class="el" href="dir_c7b3dfb2539fcbb9cef19e5f81ceb887.html">algorithm</a></li><li class="navelem"><a class="el" href="mapped__view_8hpp.html">mapped_view.hpp</a></li>
+ <li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_4443eecac141a9c11b93921c40e6e530.html">afio</a></li><li class="navelem"><a class="el" href="dir_df838802a8d72797f186037846947269.html">v2.0</a></li><li class="navelem"><a class="el" href="dir_c7b3dfb2539fcbb9cef19e5f81ceb887.html">algorithm</a></li><li class="navelem"><a class="el" href="mapped__span_8hpp.html">mapped_span.hpp</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
diff --git a/namespaceafio__v2__xxx.html b/namespaceafio__v2__xxx.html
index 5b5c691e..dbac2b1f 100644
--- a/namespaceafio__v2__xxx.html
+++ b/namespaceafio__v2__xxx.html
@@ -173,7 +173,7 @@ Classes</h2></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">RAII class for temporarily adjusting the log level. <a href="classafio__v2__xxx_1_1log__level__guard.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1map__handle.html">map_handle</a></td></tr>
-<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A handle to a memory mapped region of memory. <a href="classafio__v2__xxx_1_1map__handle.html#details">More...</a><br /></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A handle to a memory mapped region of memory, either backed by the system page file or by a section. <a href="classafio__v2__xxx_1_1map__handle.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1mapped__file__handle.html">mapped_file_handle</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A memory mapped regular file or device. <a href="classafio__v2__xxx_1_1mapped__file__handle.html#details">More...</a><br /></td></tr>
@@ -231,27 +231,49 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="name
<tr class="memitem:a0ff925d5c5434bcec35b2167d87d5c55"><td class="memItemLeft" align="right" valign="top"><a id="a0ff925d5c5434bcec35b2167d87d5c55"></a>
<a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__result.html">async_file_handle::io_result</a>&lt; async_file_handle::const_buffers_type &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>barrier</b> (<a class="el" href="classafio__v2__xxx_1_1async__file__handle.html">async_file_handle</a> &amp;self, <a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__request.html">async_file_handle::io_request</a>&lt; async_file_handle::const_buffers_type &gt; reqs=<a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__request.html">async_file_handle::io_request</a>&lt; async_file_handle::const_buffers_type &gt;(), bool wait_for_device=false, bool and_metadata=false, <a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a> d=<a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a>()) noexcept</td></tr>
<tr class="separator:a0ff925d5c5434bcec35b2167d87d5c55"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4c35fd205301d7fdd3ebb503f2d154fc"><td class="memTemplParams" colspan="2">template&lt;class CompletionRoutine &gt; </td></tr>
+<tr class="memitem:a4c35fd205301d7fdd3ebb503f2d154fc"><td class="memTemplItemLeft" align="right" valign="top">result&lt; <a class="el" href="classafio__v2__xxx_1_1async__file__handle.html#a5668ee547b98e268360e1f8da8769df8">async_file_handle::io_state_ptr</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceafio__v2__xxx.html#a4c35fd205301d7fdd3ebb503f2d154fc">async_barrier</a> (<a class="el" href="classafio__v2__xxx_1_1async__file__handle.html">async_file_handle</a> &amp;self, <a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__request.html">async_file_handle::io_request</a>&lt; async_file_handle::const_buffers_type &gt; reqs, CompletionRoutine &amp;&amp;completion, bool wait_for_device=false, bool and_metadata=false, span&lt; char &gt; mem={}) noexcept</td></tr>
+<tr class="memdesc:a4c35fd205301d7fdd3ebb503f2d154fc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Schedule a barrier to occur asynchronously. <a href="#a4c35fd205301d7fdd3ebb503f2d154fc">More...</a><br /></td></tr>
+<tr class="separator:a4c35fd205301d7fdd3ebb503f2d154fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0891bedb63147526aba998b0a2f18132"><td class="memTemplParams" colspan="2">template&lt;class CompletionRoutine &gt; </td></tr>
+<tr class="memitem:a0891bedb63147526aba998b0a2f18132"><td class="memTemplItemLeft" align="right" valign="top">result&lt; <a class="el" href="classafio__v2__xxx_1_1async__file__handle.html#a5668ee547b98e268360e1f8da8769df8">async_file_handle::io_state_ptr</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceafio__v2__xxx.html#a0891bedb63147526aba998b0a2f18132">async_read</a> (<a class="el" href="classafio__v2__xxx_1_1async__file__handle.html">async_file_handle</a> &amp;self, <a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__request.html">async_file_handle::io_request</a>&lt; async_file_handle::buffers_type &gt; reqs, CompletionRoutine &amp;&amp;completion, span&lt; char &gt; mem={}) noexcept</td></tr>
+<tr class="memdesc:a0891bedb63147526aba998b0a2f18132"><td class="mdescLeft">&#160;</td><td class="mdescRight">Schedule a read to occur asynchronously. <a href="#a0891bedb63147526aba998b0a2f18132">More...</a><br /></td></tr>
+<tr class="separator:a0891bedb63147526aba998b0a2f18132"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aded93df5ea7777b501811ec593ed5b55"><td class="memTemplParams" colspan="2">template&lt;class CompletionRoutine &gt; </td></tr>
+<tr class="memitem:aded93df5ea7777b501811ec593ed5b55"><td class="memTemplItemLeft" align="right" valign="top">result&lt; <a class="el" href="classafio__v2__xxx_1_1async__file__handle.html#a5668ee547b98e268360e1f8da8769df8">async_file_handle::io_state_ptr</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceafio__v2__xxx.html#aded93df5ea7777b501811ec593ed5b55">async_write</a> (<a class="el" href="classafio__v2__xxx_1_1async__file__handle.html">async_file_handle</a> &amp;self, <a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__request.html">async_file_handle::io_request</a>&lt; async_file_handle::const_buffers_type &gt; reqs, CompletionRoutine &amp;&amp;completion, span&lt; char &gt; mem={}) noexcept</td></tr>
+<tr class="memdesc:aded93df5ea7777b501811ec593ed5b55"><td class="mdescLeft">&#160;</td><td class="mdescRight">Schedule a write to occur asynchronously. <a href="#aded93df5ea7777b501811ec593ed5b55">More...</a><br /></td></tr>
+<tr class="separator:aded93df5ea7777b501811ec593ed5b55"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a37590ba383783ccfca30404318eb1114"><td class="memItemLeft" align="right" valign="top">result&lt; <a class="el" href="classafio__v2__xxx_1_1async__file__handle_1_1awaitable.html">async_file_handle::awaitable</a>&lt; async_file_handle::buffers_type &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceafio__v2__xxx.html#a37590ba383783ccfca30404318eb1114">co_read</a> (<a class="el" href="classafio__v2__xxx_1_1async__file__handle.html">async_file_handle</a> &amp;self, <a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__request.html">async_file_handle::io_request</a>&lt; async_file_handle::buffers_type &gt; reqs) noexcept</td></tr>
<tr class="memdesc:a37590ba383783ccfca30404318eb1114"><td class="mdescLeft">&#160;</td><td class="mdescRight">Schedule a read to occur asynchronously. <a href="#a37590ba383783ccfca30404318eb1114">More...</a><br /></td></tr>
<tr class="separator:a37590ba383783ccfca30404318eb1114"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac6be3e0ba22cceed22dbe455c91219dd"><td class="memItemLeft" align="right" valign="top">result&lt; <a class="el" href="classafio__v2__xxx_1_1async__file__handle_1_1awaitable.html">async_file_handle::awaitable</a>&lt; async_file_handle::buffers_type &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceafio__v2__xxx.html#ac6be3e0ba22cceed22dbe455c91219dd">co_read</a> (<a class="el" href="classafio__v2__xxx_1_1async__file__handle.html">async_file_handle</a> &amp;self, async_file_handle::extent_type offset, std::initializer_list&lt; <a class="el" href="structafio__v2__xxx_1_1io__handle_1_1buffer__type.html">async_file_handle::buffer_type</a> &gt; lst) noexcept</td></tr>
+<tr class="separator:ac6be3e0ba22cceed22dbe455c91219dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acd740f5aef6ca339575e7497fa873d06"><td class="memItemLeft" align="right" valign="top">result&lt; <a class="el" href="classafio__v2__xxx_1_1async__file__handle_1_1awaitable.html">async_file_handle::awaitable</a>&lt; async_file_handle::const_buffers_type &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceafio__v2__xxx.html#acd740f5aef6ca339575e7497fa873d06">co_write</a> (<a class="el" href="classafio__v2__xxx_1_1async__file__handle.html">async_file_handle</a> &amp;self, <a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__request.html">async_file_handle::io_request</a>&lt; async_file_handle::const_buffers_type &gt; reqs) noexcept</td></tr>
<tr class="memdesc:acd740f5aef6ca339575e7497fa873d06"><td class="mdescLeft">&#160;</td><td class="mdescRight">Schedule a write to occur asynchronously. <a href="#acd740f5aef6ca339575e7497fa873d06">More...</a><br /></td></tr>
<tr class="separator:acd740f5aef6ca339575e7497fa873d06"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6e6ab37dfca4a975e6d04696948c0728"><td class="memItemLeft" align="right" valign="top">result&lt; <a class="el" href="classafio__v2__xxx_1_1async__file__handle_1_1awaitable.html">async_file_handle::awaitable</a>&lt; async_file_handle::const_buffers_type &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceafio__v2__xxx.html#a6e6ab37dfca4a975e6d04696948c0728">co_write</a> (<a class="el" href="classafio__v2__xxx_1_1async__file__handle.html">async_file_handle</a> &amp;self, async_file_handle::extent_type offset, std::initializer_list&lt; <a class="el" href="structafio__v2__xxx_1_1io__handle_1_1const__buffer__type.html">async_file_handle::const_buffer_type</a> &gt; lst) noexcept</td></tr>
+<tr class="separator:a6e6ab37dfca4a975e6d04696948c0728"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a14e8f43a04092eb024ced8b5909cfd88"><td class="memItemLeft" align="right" valign="top"><a id="a14e8f43a04092eb024ced8b5909cfd88"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>operator==</b> (const <a class="el" href="structafio__v2__xxx_1_1error__info.html">error_info</a> &amp;a, const <a class="el" href="structafio__v2__xxx_1_1error__info.html">error_info</a> &amp;b)</td></tr>
<tr class="separator:a14e8f43a04092eb024ced8b5909cfd88"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a32361fd287b7160ae34aada17191e41e"><td class="memItemLeft" align="right" valign="top"><a id="a32361fd287b7160ae34aada17191e41e"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>operator!=</b> (const <a class="el" href="structafio__v2__xxx_1_1error__info.html">error_info</a> &amp;a, const <a class="el" href="structafio__v2__xxx_1_1error__info.html">error_info</a> &amp;b)</td></tr>
<tr class="separator:a32361fd287b7160ae34aada17191e41e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2428d00bd15bd397f8eed6f8a13c3468"><td class="memItemLeft" align="right" valign="top"><a id="a2428d00bd15bd397f8eed6f8a13c3468"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>OUTCOME_TEMPLATE</b> (class ErrorCondEnum) OUTCOME_TREQUIRES(OUTCOME_TPRED(std</td></tr>
+<tr class="separator:a2428d00bd15bd397f8eed6f8a13c3468"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac0d5364044c4627667e827f5aaaa183f"><td class="memItemLeft" align="right" valign="top"><a id="ac0d5364044c4627667e827f5aaaa183f"></a>
std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator&lt;&lt;</b> (std::ostream &amp;s, const <a class="el" href="structafio__v2__xxx_1_1error__info.html">error_info</a> &amp;v)</td></tr>
<tr class="separator:ac0d5364044c4627667e827f5aaaa183f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa5f11cc32803b0966fe64dfdc325a18b"><td class="memItemLeft" align="right" valign="top"><a id="aa5f11cc32803b0966fe64dfdc325a18b"></a>
std::error_code&#160;</td><td class="memItemRight" valign="bottom"><b>make_error_code</b> (<a class="el" href="structafio__v2__xxx_1_1error__info.html">error_info</a> ei)</td></tr>
<tr class="separator:aa5f11cc32803b0966fe64dfdc325a18b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ae44838fe79524e9d9eb432eb072395cb"><td class="memItemLeft" align="right" valign="top"><a id="ae44838fe79524e9d9eb432eb072395cb"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><b>throw_as_system_error_with_payload</b> (const <a class="el" href="structafio__v2__xxx_1_1error__info.html">error_info</a> &amp;ei)</td></tr>
-<tr class="separator:ae44838fe79524e9d9eb432eb072395cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8ef55b4834fe3a95bfa1c18c9defd261"><td class="memItemLeft" align="right" valign="top"><a id="a8ef55b4834fe3a95bfa1c18c9defd261"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>outcome_throw_as_system_error_with_payload</b> (const <a class="el" href="structafio__v2__xxx_1_1error__info.html">error_info</a> &amp;ei)</td></tr>
+<tr class="separator:a8ef55b4834fe3a95bfa1c18c9defd261"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9c3fa6c24a7218493a02150e363c5e6a"><td class="memItemLeft" align="right" valign="top"><a id="a9c3fa6c24a7218493a02150e363c5e6a"></a>
+<a class="el" href="structafio__v2__xxx_1_1error__info.html">error_info</a>&#160;</td><td class="memItemRight" valign="bottom"><b>error_from_exception</b> (std::exception_ptr &amp;&amp;ep=std::current_exception(), std::error_code not_matched=std::make_error_code(std::errc::resource_unavailable_try_again)) noexcept</td></tr>
+<tr class="separator:a9c3fa6c24a7218493a02150e363c5e6a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a08363b8572e6a8971a6d236d54fb8287"><td class="memItemLeft" align="right" valign="top"><a id="a08363b8572e6a8971a6d236d54fb8287"></a>
QUICKCPPLIB_NAMESPACE::ringbuffer_log::simple_ringbuffer_log&lt; <a class="el" href="group__config.html#ga7c2409ed4b38a384c422012a43423a16">AFIO_LOGGING_MEMORY</a> &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceafio__v2__xxx.html#a08363b8572e6a8971a6d236d54fb8287">log</a> () noexcept</td></tr>
<tr class="memdesc:a08363b8572e6a8971a6d236d54fb8287"><td class="mdescLeft">&#160;</td><td class="mdescRight">The log used by AFIO. <br /></td></tr>
@@ -266,8 +288,8 @@ std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operato
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceafio__v2__xxx.html#a3ece430e8478fc6909cd7ec2fc0082b3">swap</a> (<a class="el" href="classafio__v2__xxx_1_1directory__handle.html">directory_handle</a> &amp;self, <a class="el" href="classafio__v2__xxx_1_1directory__handle.html">directory_handle</a> &amp;o) noexcept</td></tr>
<tr class="memdesc:a3ece430e8478fc6909cd7ec2fc0082b3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Swap with another instance. <br /></td></tr>
<tr class="separator:a3ece430e8478fc6909cd7ec2fc0082b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:affce2389376e27ffa0565890034d209f"><td class="memItemLeft" align="right" valign="top">result&lt; <a class="el" href="classafio__v2__xxx_1_1directory__handle.html">directory_handle</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceafio__v2__xxx.html#affce2389376e27ffa0565890034d209f">directory</a> (const <a class="el" href="classafio__v2__xxx_1_1path__handle.html">path_handle</a> &amp;base, <a class="el" href="classafio__v2__xxx_1_1path__view.html">directory_handle::path_view_type</a> _path, <a class="el" href="classafio__v2__xxx_1_1handle.html#a0489b6c1e25cd2bad2ba1ec86e1aaf18">directory_handle::mode</a> _mode=<a class="el" href="classafio__v2__xxx_1_1handle.html#a0489b6c1e25cd2bad2ba1ec86e1aaf18aecae13117d6f0584c25a9da6c8f8415e">directory_handle::mode::read</a>, <a class="el" href="classafio__v2__xxx_1_1handle.html#a45ff5c1c5662623d99156870dfeee0a7">directory_handle::creation</a> _creation=directory_handle::creation::open_existing, <a class="el" href="classafio__v2__xxx_1_1handle.html#a6f7e37c73271968271c2342023f58c9e">directory_handle::caching</a> _caching=<a class="el" href="classafio__v2__xxx_1_1handle.html#a6f7e37c73271968271c2342023f58c9eaa181a603769c1f98ad927e7367c7aa51">directory_handle::caching::all</a>, directory_handle::flag flags=directory_handle::flag::none) noexcept</td></tr>
-<tr class="separator:affce2389376e27ffa0565890034d209f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a83828cb013df9d77b08ec0ac59037c85"><td class="memItemLeft" align="right" valign="top">result&lt; <a class="el" href="classafio__v2__xxx_1_1directory__handle.html">directory_handle</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceafio__v2__xxx.html#a83828cb013df9d77b08ec0ac59037c85">directory</a> (const <a class="el" href="classafio__v2__xxx_1_1path__handle.html">path_handle</a> &amp;base, <a class="el" href="classafio__v2__xxx_1_1path__view.html">directory_handle::path_view_type</a> <a class="el" href="namespaceafio__v2__xxx.html#a7a98882ead35ebd6bd0700fdf571c44a">path</a>, <a class="el" href="classafio__v2__xxx_1_1handle.html#a0489b6c1e25cd2bad2ba1ec86e1aaf18">directory_handle::mode</a> _mode=<a class="el" href="classafio__v2__xxx_1_1handle.html#a0489b6c1e25cd2bad2ba1ec86e1aaf18aecae13117d6f0584c25a9da6c8f8415e">directory_handle::mode::read</a>, <a class="el" href="classafio__v2__xxx_1_1handle.html#a45ff5c1c5662623d99156870dfeee0a7">directory_handle::creation</a> _creation=directory_handle::creation::open_existing, <a class="el" href="classafio__v2__xxx_1_1handle.html#a6f7e37c73271968271c2342023f58c9e">directory_handle::caching</a> _caching=<a class="el" href="classafio__v2__xxx_1_1handle.html#a6f7e37c73271968271c2342023f58c9eaa181a603769c1f98ad927e7367c7aa51">directory_handle::caching::all</a>, directory_handle::flag flags=directory_handle::flag::none) noexcept</td></tr>
+<tr class="separator:a83828cb013df9d77b08ec0ac59037c85"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a26a149bed05acb7e27596e84f16cd0bd"><td class="memItemLeft" align="right" valign="top">result&lt; <a class="el" href="classafio__v2__xxx_1_1directory__handle.html">directory_handle</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceafio__v2__xxx.html#a26a149bed05acb7e27596e84f16cd0bd">random_directory</a> (const <a class="el" href="classafio__v2__xxx_1_1path__handle.html">path_handle</a> &amp;dirpath, <a class="el" href="classafio__v2__xxx_1_1handle.html#a0489b6c1e25cd2bad2ba1ec86e1aaf18">directory_handle::mode</a> _mode=<a class="el" href="classafio__v2__xxx_1_1handle.html#a0489b6c1e25cd2bad2ba1ec86e1aaf18aefb2a684e4afb7d55e6147fbe5a332ee">directory_handle::mode::write</a>, <a class="el" href="classafio__v2__xxx_1_1handle.html#a6f7e37c73271968271c2342023f58c9e">directory_handle::caching</a> _caching=<a class="el" href="classafio__v2__xxx_1_1handle.html#a6f7e37c73271968271c2342023f58c9ead5197d93c063a2b1e22d1630a39b7aef">directory_handle::caching::temporary</a>, directory_handle::flag flags=directory_handle::flag::none) noexcept</td></tr>
<tr class="separator:a26a149bed05acb7e27596e84f16cd0bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac095df054e29fb086f9e7b96274c3c67"><td class="memItemLeft" align="right" valign="top">result&lt; <a class="el" href="classafio__v2__xxx_1_1directory__handle.html">directory_handle</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceafio__v2__xxx.html#ac095df054e29fb086f9e7b96274c3c67">temp_directory</a> (<a class="el" href="classafio__v2__xxx_1_1path__view.html">directory_handle::path_view_type</a> name=<a class="el" href="classafio__v2__xxx_1_1path__view.html">directory_handle::path_view_type</a>(), <a class="el" href="classafio__v2__xxx_1_1handle.html#a0489b6c1e25cd2bad2ba1ec86e1aaf18">directory_handle::mode</a> _mode=<a class="el" href="classafio__v2__xxx_1_1handle.html#a0489b6c1e25cd2bad2ba1ec86e1aaf18aefb2a684e4afb7d55e6147fbe5a332ee">directory_handle::mode::write</a>, <a class="el" href="classafio__v2__xxx_1_1handle.html#a45ff5c1c5662623d99156870dfeee0a7">directory_handle::creation</a> _creation=directory_handle::creation::if_needed, <a class="el" href="classafio__v2__xxx_1_1handle.html#a6f7e37c73271968271c2342023f58c9e">directory_handle::caching</a> _caching=<a class="el" href="classafio__v2__xxx_1_1handle.html#a6f7e37c73271968271c2342023f58c9eaa181a603769c1f98ad927e7367c7aa51">directory_handle::caching::all</a>, directory_handle::flag flags=directory_handle::flag::none) noexcept</td></tr>
@@ -278,14 +300,14 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="name
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceafio__v2__xxx.html#a579d619e4d73e584fdd41e34761afa67">swap</a> (<a class="el" href="classafio__v2__xxx_1_1file__handle.html">file_handle</a> &amp;self, <a class="el" href="classafio__v2__xxx_1_1file__handle.html">file_handle</a> &amp;o) noexcept</td></tr>
<tr class="memdesc:a579d619e4d73e584fdd41e34761afa67"><td class="mdescLeft">&#160;</td><td class="mdescRight">Swap with another instance. <br /></td></tr>
<tr class="separator:a579d619e4d73e584fdd41e34761afa67"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a84b5a9fc93107c673160b41fff151938"><td class="memItemLeft" align="right" valign="top">result&lt; <a class="el" href="classafio__v2__xxx_1_1file__handle.html">file_handle</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceafio__v2__xxx.html#a84b5a9fc93107c673160b41fff151938">file</a> (const <a class="el" href="classafio__v2__xxx_1_1path__handle.html">path_handle</a> &amp;base, <a class="el" href="classafio__v2__xxx_1_1path__view.html">file_handle::path_view_type</a> _path, <a class="el" href="classafio__v2__xxx_1_1handle.html#a0489b6c1e25cd2bad2ba1ec86e1aaf18">file_handle::mode</a> _mode=<a class="el" href="classafio__v2__xxx_1_1handle.html#a0489b6c1e25cd2bad2ba1ec86e1aaf18aecae13117d6f0584c25a9da6c8f8415e">file_handle::mode::read</a>, <a class="el" href="classafio__v2__xxx_1_1handle.html#a45ff5c1c5662623d99156870dfeee0a7">file_handle::creation</a> _creation=file_handle::creation::open_existing, <a class="el" href="classafio__v2__xxx_1_1handle.html#a6f7e37c73271968271c2342023f58c9e">file_handle::caching</a> _caching=<a class="el" href="classafio__v2__xxx_1_1handle.html#a6f7e37c73271968271c2342023f58c9eaa181a603769c1f98ad927e7367c7aa51">file_handle::caching::all</a>, file_handle::flag flags=file_handle::flag::none) noexcept</td></tr>
-<tr class="separator:a84b5a9fc93107c673160b41fff151938"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab92ca63383ef7fe58af4620570d12803"><td class="memItemLeft" align="right" valign="top">result&lt; <a class="el" href="classafio__v2__xxx_1_1file__handle.html">file_handle</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceafio__v2__xxx.html#ab92ca63383ef7fe58af4620570d12803">file</a> (const <a class="el" href="classafio__v2__xxx_1_1path__handle.html">path_handle</a> &amp;base, <a class="el" href="classafio__v2__xxx_1_1path__view.html">file_handle::path_view_type</a> <a class="el" href="namespaceafio__v2__xxx.html#a7a98882ead35ebd6bd0700fdf571c44a">path</a>, <a class="el" href="classafio__v2__xxx_1_1handle.html#a0489b6c1e25cd2bad2ba1ec86e1aaf18">file_handle::mode</a> _mode=<a class="el" href="classafio__v2__xxx_1_1handle.html#a0489b6c1e25cd2bad2ba1ec86e1aaf18aecae13117d6f0584c25a9da6c8f8415e">file_handle::mode::read</a>, <a class="el" href="classafio__v2__xxx_1_1handle.html#a45ff5c1c5662623d99156870dfeee0a7">file_handle::creation</a> _creation=file_handle::creation::open_existing, <a class="el" href="classafio__v2__xxx_1_1handle.html#a6f7e37c73271968271c2342023f58c9e">file_handle::caching</a> _caching=<a class="el" href="classafio__v2__xxx_1_1handle.html#a6f7e37c73271968271c2342023f58c9eaa181a603769c1f98ad927e7367c7aa51">file_handle::caching::all</a>, file_handle::flag flags=file_handle::flag::none) noexcept</td></tr>
+<tr class="separator:ab92ca63383ef7fe58af4620570d12803"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aac0b7d76c4298e86cef49c832c93edec"><td class="memItemLeft" align="right" valign="top">result&lt; <a class="el" href="classafio__v2__xxx_1_1file__handle.html">file_handle</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceafio__v2__xxx.html#aac0b7d76c4298e86cef49c832c93edec">random_file</a> (const <a class="el" href="classafio__v2__xxx_1_1path__handle.html">path_handle</a> &amp;dirpath, <a class="el" href="classafio__v2__xxx_1_1handle.html#a0489b6c1e25cd2bad2ba1ec86e1aaf18">file_handle::mode</a> _mode=<a class="el" href="classafio__v2__xxx_1_1handle.html#a0489b6c1e25cd2bad2ba1ec86e1aaf18aefb2a684e4afb7d55e6147fbe5a332ee">file_handle::mode::write</a>, <a class="el" href="classafio__v2__xxx_1_1handle.html#a6f7e37c73271968271c2342023f58c9e">file_handle::caching</a> _caching=<a class="el" href="classafio__v2__xxx_1_1handle.html#a6f7e37c73271968271c2342023f58c9ead5197d93c063a2b1e22d1630a39b7aef">file_handle::caching::temporary</a>, file_handle::flag flags=file_handle::flag::none) noexcept</td></tr>
<tr class="separator:aac0b7d76c4298e86cef49c832c93edec"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa14b24c8bc330dd8e472f42676ba03d6"><td class="memItemLeft" align="right" valign="top">result&lt; <a class="el" href="classafio__v2__xxx_1_1file__handle.html">file_handle</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceafio__v2__xxx.html#aa14b24c8bc330dd8e472f42676ba03d6">temp_file</a> (<a class="el" href="classafio__v2__xxx_1_1path__view.html">file_handle::path_view_type</a> name=<a class="el" href="classafio__v2__xxx_1_1path__view.html">file_handle::path_view_type</a>(), <a class="el" href="classafio__v2__xxx_1_1handle.html#a0489b6c1e25cd2bad2ba1ec86e1aaf18">file_handle::mode</a> _mode=<a class="el" href="classafio__v2__xxx_1_1handle.html#a0489b6c1e25cd2bad2ba1ec86e1aaf18aefb2a684e4afb7d55e6147fbe5a332ee">file_handle::mode::write</a>, <a class="el" href="classafio__v2__xxx_1_1handle.html#a45ff5c1c5662623d99156870dfeee0a7">file_handle::creation</a> _creation=file_handle::creation::if_needed, <a class="el" href="classafio__v2__xxx_1_1handle.html#a6f7e37c73271968271c2342023f58c9e">file_handle::caching</a> _caching=<a class="el" href="classafio__v2__xxx_1_1handle.html#a6f7e37c73271968271c2342023f58c9ead5197d93c063a2b1e22d1630a39b7aef">file_handle::caching::temporary</a>, file_handle::flag flags=file_handle::flag::unlink_on_close) noexcept</td></tr>
<tr class="separator:aa14b24c8bc330dd8e472f42676ba03d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a2a2248a6545d55ee8f46628c8afb7946"><td class="memItemLeft" align="right" valign="top">result&lt; <a class="el" href="classafio__v2__xxx_1_1file__handle.html">file_handle</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceafio__v2__xxx.html#a2a2248a6545d55ee8f46628c8afb7946">temp_inode</a> (const <a class="el" href="classafio__v2__xxx_1_1path__handle.html">path_handle</a> &amp;dir=<a class="el" href="namespaceafio__v2__xxx_1_1path__discovery.html#af398b6c3762f60aa96cebd270879093e">path_discovery::storage_backed_temporary_files_directory</a>(), <a class="el" href="classafio__v2__xxx_1_1handle.html#a0489b6c1e25cd2bad2ba1ec86e1aaf18">file_handle::mode</a> _mode=<a class="el" href="classafio__v2__xxx_1_1handle.html#a0489b6c1e25cd2bad2ba1ec86e1aaf18aefb2a684e4afb7d55e6147fbe5a332ee">file_handle::mode::write</a>, file_handle::flag flags=file_handle::flag::none) noexcept</td></tr>
-<tr class="separator:a2a2248a6545d55ee8f46628c8afb7946"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aca98b0cb43a2d925bb65e055b07b4a08"><td class="memItemLeft" align="right" valign="top">result&lt; <a class="el" href="classafio__v2__xxx_1_1file__handle.html">file_handle</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceafio__v2__xxx.html#aca98b0cb43a2d925bb65e055b07b4a08">temp_inode</a> (const <a class="el" href="classafio__v2__xxx_1_1path__handle.html">path_handle</a> &amp;dirh=<a class="el" href="namespaceafio__v2__xxx_1_1path__discovery.html#af398b6c3762f60aa96cebd270879093e">path_discovery::storage_backed_temporary_files_directory</a>(), <a class="el" href="classafio__v2__xxx_1_1handle.html#a0489b6c1e25cd2bad2ba1ec86e1aaf18">file_handle::mode</a> _mode=<a class="el" href="classafio__v2__xxx_1_1handle.html#a0489b6c1e25cd2bad2ba1ec86e1aaf18aefb2a684e4afb7d55e6147fbe5a332ee">file_handle::mode::write</a>, file_handle::flag flags=file_handle::flag::none) noexcept</td></tr>
+<tr class="separator:aca98b0cb43a2d925bb65e055b07b4a08"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afe66c5875c48c8bd172901a1159ccbdc"><td class="memItemLeft" align="right" valign="top">result&lt; file_handle::extent_type &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceafio__v2__xxx.html#afe66c5875c48c8bd172901a1159ccbdc">length</a> (const <a class="el" href="classafio__v2__xxx_1_1file__handle.html">file_handle</a> &amp;self) noexcept</td></tr>
<tr class="separator:afe66c5875c48c8bd172901a1159ccbdc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a84d22c966fcabe50de30ad8cf26c7241"><td class="memItemLeft" align="right" valign="top">result&lt; file_handle::extent_type &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceafio__v2__xxx.html#a84d22c966fcabe50de30ad8cf26c7241">truncate</a> (<a class="el" href="classafio__v2__xxx_1_1file__handle.html">file_handle</a> &amp;self, file_handle::extent_type newsize) noexcept</td></tr>
@@ -297,8 +319,8 @@ result&lt; std::vector&lt; std::pair&lt; file_handle::extent_type, file_handle::
<tr class="memitem:ae412aa7c9e37601d1814e75d09795185"><td class="memItemLeft" align="right" valign="top">result&lt; file_handle::extent_type &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceafio__v2__xxx.html#ae412aa7c9e37601d1814e75d09795185">zero</a> (<a class="el" href="classafio__v2__xxx_1_1file__handle.html">file_handle</a> &amp;self, file_handle::extent_type offset, file_handle::extent_type bytes, <a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a> d=<a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a>()) noexcept</td></tr>
<tr class="memdesc:ae412aa7c9e37601d1814e75d09795185"><td class="mdescLeft">&#160;</td><td class="mdescRight">Efficiently zero, and possibly deallocate, data on storage. <a href="#ae412aa7c9e37601d1814e75d09795185">More...</a><br /></td></tr>
<tr class="separator:ae412aa7c9e37601d1814e75d09795185"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a8d7c50561e9103968467c928f2e38f16"><td class="memItemLeft" align="right" valign="top">result&lt; void &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceafio__v2__xxx.html#a8d7c50561e9103968467c928f2e38f16">relink</a> (<a class="el" href="classafio__v2__xxx_1_1fs__handle.html">fs_handle</a> &amp;self, const <a class="el" href="classafio__v2__xxx_1_1path__handle.html">path_handle</a> &amp;base, <a class="el" href="classafio__v2__xxx_1_1fs__handle.html#ac25247b15af82faf1db557b3e45e13d7">fs_handle::path_view_type</a> newpath, bool atomic_replace=true, <a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a> d=std::chrono::seconds(30)) noexcept</td></tr>
-<tr class="separator:a8d7c50561e9103968467c928f2e38f16"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aea0fac310f773ae58f672ec4b506887d"><td class="memItemLeft" align="right" valign="top">result&lt; void &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceafio__v2__xxx.html#aea0fac310f773ae58f672ec4b506887d">relink</a> (<a class="el" href="classafio__v2__xxx_1_1fs__handle.html">fs_handle</a> &amp;self, const <a class="el" href="classafio__v2__xxx_1_1path__handle.html">path_handle</a> &amp;base, <a class="el" href="classafio__v2__xxx_1_1fs__handle.html#ac25247b15af82faf1db557b3e45e13d7">fs_handle::path_view_type</a> <a class="el" href="namespaceafio__v2__xxx.html#a7a98882ead35ebd6bd0700fdf571c44a">path</a>, bool atomic_replace=true, <a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a> d=std::chrono::seconds(30)) noexcept</td></tr>
+<tr class="separator:aea0fac310f773ae58f672ec4b506887d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abefe1503efb01ea89200b829bcd87713"><td class="memItemLeft" align="right" valign="top">result&lt; void &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceafio__v2__xxx.html#abefe1503efb01ea89200b829bcd87713">unlink</a> (<a class="el" href="classafio__v2__xxx_1_1fs__handle.html">fs_handle</a> &amp;self, <a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a> d=std::chrono::seconds(30)) noexcept</td></tr>
<tr class="separator:abefe1503efb01ea89200b829bcd87713"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a23c535a7d67a0bbd0cf3254325b6efc7"><td class="memItemLeft" align="right" valign="top"><a id="a23c535a7d67a0bbd0cf3254325b6efc7"></a>
@@ -319,9 +341,13 @@ std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operato
<tr class="memitem:a3cff8f3910dbf47663e5df1dc7e5ba47"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__result.html">io_handle::io_result</a>&lt; <a class="el" href="classafio__v2__xxx_1_1io__handle.html#a70a3c5e6f62efc95db81f831f3b90a2c">io_handle::buffers_type</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceafio__v2__xxx.html#a3cff8f3910dbf47663e5df1dc7e5ba47">read</a> (<a class="el" href="classafio__v2__xxx_1_1io__handle.html">io_handle</a> &amp;self, <a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__request.html">io_handle::io_request</a>&lt; <a class="el" href="classafio__v2__xxx_1_1io__handle.html#a70a3c5e6f62efc95db81f831f3b90a2c">io_handle::buffers_type</a> &gt; reqs, <a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a> d=<a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a>()) noexcept</td></tr>
<tr class="memdesc:a3cff8f3910dbf47663e5df1dc7e5ba47"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read data from the open handle. <a href="#a3cff8f3910dbf47663e5df1dc7e5ba47">More...</a><br /></td></tr>
<tr class="separator:a3cff8f3910dbf47663e5df1dc7e5ba47"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a45b09c42c9a14c6abb56888a2832ba69"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__result.html">io_handle::io_result</a>&lt; <a class="el" href="classafio__v2__xxx_1_1io__handle.html#a70a3c5e6f62efc95db81f831f3b90a2c">io_handle::buffers_type</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceafio__v2__xxx.html#a45b09c42c9a14c6abb56888a2832ba69">read</a> (<a class="el" href="classafio__v2__xxx_1_1io__handle.html">io_handle</a> &amp;self, io_handle::extent_type offset, std::initializer_list&lt; <a class="el" href="structafio__v2__xxx_1_1io__handle_1_1buffer__type.html">io_handle::buffer_type</a> &gt; lst, <a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a> d=<a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a>()) noexcept</td></tr>
+<tr class="separator:a45b09c42c9a14c6abb56888a2832ba69"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2d15768d28ea660ebe44901508ed3372"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__result.html">io_handle::io_result</a>&lt; <a class="el" href="classafio__v2__xxx_1_1io__handle.html#a639b8760b1b98df95e4956f6cc56f6b5">io_handle::const_buffers_type</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceafio__v2__xxx.html#a2d15768d28ea660ebe44901508ed3372">write</a> (<a class="el" href="classafio__v2__xxx_1_1io__handle.html">io_handle</a> &amp;self, <a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__request.html">io_handle::io_request</a>&lt; <a class="el" href="classafio__v2__xxx_1_1io__handle.html#a639b8760b1b98df95e4956f6cc56f6b5">io_handle::const_buffers_type</a> &gt; reqs, <a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a> d=<a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a>()) noexcept</td></tr>
<tr class="memdesc:a2d15768d28ea660ebe44901508ed3372"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write data to the open handle. <a href="#a2d15768d28ea660ebe44901508ed3372">More...</a><br /></td></tr>
<tr class="separator:a2d15768d28ea660ebe44901508ed3372"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a53f3d40c5752d0dbeaa9b8233bff976f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__result.html">io_handle::io_result</a>&lt; <a class="el" href="classafio__v2__xxx_1_1io__handle.html#a639b8760b1b98df95e4956f6cc56f6b5">io_handle::const_buffers_type</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceafio__v2__xxx.html#a53f3d40c5752d0dbeaa9b8233bff976f">write</a> (<a class="el" href="classafio__v2__xxx_1_1io__handle.html">io_handle</a> &amp;self, io_handle::extent_type offset, std::initializer_list&lt; <a class="el" href="structafio__v2__xxx_1_1io__handle_1_1const__buffer__type.html">io_handle::const_buffer_type</a> &gt; lst, <a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a> d=<a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a>()) noexcept</td></tr>
+<tr class="separator:a53f3d40c5752d0dbeaa9b8233bff976f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abb60a5dc89b41b1db101dbed12cb065d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__result.html">io_handle::io_result</a>&lt; <a class="el" href="classafio__v2__xxx_1_1io__handle.html#a639b8760b1b98df95e4956f6cc56f6b5">io_handle::const_buffers_type</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceafio__v2__xxx.html#abb60a5dc89b41b1db101dbed12cb065d">barrier</a> (<a class="el" href="classafio__v2__xxx_1_1io__handle.html">io_handle</a> &amp;self, <a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__request.html">io_handle::io_request</a>&lt; <a class="el" href="classafio__v2__xxx_1_1io__handle.html#a639b8760b1b98df95e4956f6cc56f6b5">io_handle::const_buffers_type</a> &gt; reqs=<a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__request.html">io_handle::io_request</a>&lt; <a class="el" href="classafio__v2__xxx_1_1io__handle.html#a639b8760b1b98df95e4956f6cc56f6b5">io_handle::const_buffers_type</a> &gt;(), bool wait_for_device=false, bool and_metadata=false, <a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a> d=<a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a>()) noexcept</td></tr>
<tr class="memdesc:abb60a5dc89b41b1db101dbed12cb065d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Issue a write reordering barrier such that writes preceding the barrier will reach storage before writes after this barrier. <a href="#abb60a5dc89b41b1db101dbed12cb065d">More...</a><br /></td></tr>
<tr class="separator:abb60a5dc89b41b1db101dbed12cb065d"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -329,6 +355,15 @@ std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operato
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceafio__v2__xxx.html#af9ac8a79d17fb5750dbe2c85c903e4c5">swap</a> (<a class="el" href="classafio__v2__xxx_1_1section__handle.html">section_handle</a> &amp;self, <a class="el" href="classafio__v2__xxx_1_1section__handle.html">section_handle</a> &amp;o) noexcept</td></tr>
<tr class="memdesc:af9ac8a79d17fb5750dbe2c85c903e4c5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Swap with another instance. <br /></td></tr>
<tr class="separator:af9ac8a79d17fb5750dbe2c85c903e4c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6282e66d9ade4fea8e0508cfb65ec9ec"><td class="memItemLeft" align="right" valign="top">result&lt; <a class="el" href="classafio__v2__xxx_1_1section__handle.html">section_handle</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceafio__v2__xxx.html#a6282e66d9ade4fea8e0508cfb65ec9ec">section</a> (<a class="el" href="classafio__v2__xxx_1_1file__handle.html">file_handle</a> &amp;backing, section_handle::extent_type maximum_size, section_handle::flag _flag) noexcept</td></tr>
+<tr class="memdesc:a6282e66d9ade4fea8e0508cfb65ec9ec"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a memory section backed by a file. <a href="#a6282e66d9ade4fea8e0508cfb65ec9ec">More...</a><br /></td></tr>
+<tr class="separator:a6282e66d9ade4fea8e0508cfb65ec9ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae694d1c5ef24e2c6caa30b8d7ae6e12b"><td class="memItemLeft" align="right" valign="top">result&lt; <a class="el" href="classafio__v2__xxx_1_1section__handle.html">section_handle</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceafio__v2__xxx.html#ae694d1c5ef24e2c6caa30b8d7ae6e12b">section</a> (<a class="el" href="classafio__v2__xxx_1_1file__handle.html">file_handle</a> &amp;backing, section_handle::extent_type bytes=0) noexcept</td></tr>
+<tr class="memdesc:ae694d1c5ef24e2c6caa30b8d7ae6e12b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a memory section backed by a file. <a href="#ae694d1c5ef24e2c6caa30b8d7ae6e12b">More...</a><br /></td></tr>
+<tr class="separator:ae694d1c5ef24e2c6caa30b8d7ae6e12b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a42622b31d96b1098e37d9c527abd097d"><td class="memItemLeft" align="right" valign="top">result&lt; <a class="el" href="classafio__v2__xxx_1_1section__handle.html">section_handle</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceafio__v2__xxx.html#a42622b31d96b1098e37d9c527abd097d">section</a> (section_handle::extent_type bytes, const <a class="el" href="classafio__v2__xxx_1_1path__handle.html">path_handle</a> &amp;dirh=<a class="el" href="namespaceafio__v2__xxx_1_1path__discovery.html#af398b6c3762f60aa96cebd270879093e">path_discovery::storage_backed_temporary_files_directory</a>(), section_handle::flag _flag=section_handle::flag::read|section_handle::flag::write) noexcept</td></tr>
+<tr class="memdesc:a42622b31d96b1098e37d9c527abd097d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a memory section backed by an anonymous, managed file. <a href="#a42622b31d96b1098e37d9c527abd097d">More...</a><br /></td></tr>
+<tr class="separator:a42622b31d96b1098e37d9c527abd097d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afc6d4594196e16ac67b25d91e48d09ee"><td class="memItemLeft" align="right" valign="top"><a id="afc6d4594196e16ac67b25d91e48d09ee"></a>
result&lt; section_handle::extent_type &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceafio__v2__xxx.html#afc6d4594196e16ac67b25d91e48d09ee">length</a> (const <a class="el" href="classafio__v2__xxx_1_1section__handle.html">section_handle</a> &amp;self) noexcept</td></tr>
<tr class="memdesc:afc6d4594196e16ac67b25d91e48d09ee"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the current maximum permitted extent of the memory section. <br /></td></tr>
@@ -346,14 +381,18 @@ result&lt; void &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class
<tr class="memitem:a04980337d833bcc33cae657d6654f6a0"><td class="memItemLeft" align="right" valign="top"><a id="a04980337d833bcc33cae657d6654f6a0"></a>
<a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__result.html">map_handle::io_result</a>&lt; map_handle::const_buffers_type &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>barrier</b> (<a class="el" href="classafio__v2__xxx_1_1map__handle.html">map_handle</a> &amp;self, <a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__request.html">map_handle::io_request</a>&lt; map_handle::const_buffers_type &gt; reqs=<a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__request.html">map_handle::io_request</a>&lt; map_handle::const_buffers_type &gt;(), bool wait_for_device=false, bool and_metadata=false, <a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a> d=<a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a>()) noexcept</td></tr>
<tr class="separator:a04980337d833bcc33cae657d6654f6a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1b5c40714a95d835e7926b9508469bf2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structafio__v2__xxx_1_1io__handle_1_1const__buffer__type.html">map_handle::const_buffer_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceafio__v2__xxx.html#a1b5c40714a95d835e7926b9508469bf2">barrier</a> (<a class="el" href="classafio__v2__xxx_1_1map__handle.html">map_handle</a> &amp;self, <a class="el" href="structafio__v2__xxx_1_1io__handle_1_1const__buffer__type.html">map_handle::const_buffer_type</a> req, bool evict=false) noexcept</td></tr>
+<tr class="separator:a1b5c40714a95d835e7926b9508469bf2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2bea94a20aae6fb34ebe1ffd03e50891"><td class="memItemLeft" align="right" valign="top">result&lt; <a class="el" href="classafio__v2__xxx_1_1map__handle.html">map_handle</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceafio__v2__xxx.html#a2bea94a20aae6fb34ebe1ffd03e50891">map</a> (map_handle::size_type bytes, section_handle::flag _flag=section_handle::flag::readwrite) noexcept</td></tr>
<tr class="separator:a2bea94a20aae6fb34ebe1ffd03e50891"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:accb0ec68871a9c3e3e7aeadc0f31e009"><td class="memItemLeft" align="right" valign="top">result&lt; <a class="el" href="classafio__v2__xxx_1_1map__handle.html">map_handle</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceafio__v2__xxx.html#accb0ec68871a9c3e3e7aeadc0f31e009">map</a> (<a class="el" href="classafio__v2__xxx_1_1section__handle.html">section_handle</a> &amp;section, map_handle::size_type bytes=0, map_handle::extent_type offset=0, section_handle::flag _flag=section_handle::flag::readwrite) noexcept</td></tr>
+<tr class="memitem:accb0ec68871a9c3e3e7aeadc0f31e009"><td class="memItemLeft" align="right" valign="top">result&lt; <a class="el" href="classafio__v2__xxx_1_1map__handle.html">map_handle</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceafio__v2__xxx.html#accb0ec68871a9c3e3e7aeadc0f31e009">map</a> (<a class="el" href="classafio__v2__xxx_1_1section__handle.html">section_handle</a> &amp;<a class="el" href="namespaceafio__v2__xxx.html#a6282e66d9ade4fea8e0508cfb65ec9ec">section</a>, map_handle::size_type bytes=0, map_handle::extent_type offset=0, section_handle::flag _flag=section_handle::flag::readwrite) noexcept</td></tr>
<tr class="separator:accb0ec68871a9c3e3e7aeadc0f31e009"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abb42093725f3206e37e53ec44c39ad68"><td class="memItemLeft" align="right" valign="top"><a id="abb42093725f3206e37e53ec44c39ad68"></a>
map_handle::size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceafio__v2__xxx.html#abb42093725f3206e37e53ec44c39ad68">length</a> (const <a class="el" href="classafio__v2__xxx_1_1map__handle.html">map_handle</a> &amp;self) noexcept</td></tr>
-<tr class="memdesc:abb42093725f3206e37e53ec44c39ad68"><td class="mdescLeft">&#160;</td><td class="mdescRight">The size of the memory map. <br /></td></tr>
+<tr class="memdesc:abb42093725f3206e37e53ec44c39ad68"><td class="mdescLeft">&#160;</td><td class="mdescRight">The size of the memory map. This is the accessible size, NOT the reservation size. <br /></td></tr>
<tr class="separator:abb42093725f3206e37e53ec44c39ad68"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7da47c9f5665b4c9b1c44c035bf2571c"><td class="memItemLeft" align="right" valign="top">result&lt; map_handle::size_type &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceafio__v2__xxx.html#a7da47c9f5665b4c9b1c44c035bf2571c">truncate</a> (<a class="el" href="classafio__v2__xxx_1_1map__handle.html">map_handle</a> &amp;self, map_handle::size_type newsize, bool permit_relocation=false) noexcept</td></tr>
+<tr class="separator:a7da47c9f5665b4c9b1c44c035bf2571c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac89289d85eff137c40d3d0084c410656"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__result.html">map_handle::io_result</a>&lt; map_handle::buffers_type &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceafio__v2__xxx.html#ac89289d85eff137c40d3d0084c410656">read</a> (<a class="el" href="classafio__v2__xxx_1_1map__handle.html">map_handle</a> &amp;self, <a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__request.html">map_handle::io_request</a>&lt; map_handle::buffers_type &gt; reqs, <a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a> d=<a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a>()) noexcept</td></tr>
<tr class="memdesc:ac89289d85eff137c40d3d0084c410656"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read data from the mapped view. <a href="#ac89289d85eff137c40d3d0084c410656">More...</a><br /></td></tr>
<tr class="separator:ac89289d85eff137c40d3d0084c410656"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -374,8 +413,8 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="name
<tr class="separator:ab175b3720445c24cd43e3b7d88c6bbc9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac021261f7a8696b0f4cbdcfacef1e88a"><td class="memItemLeft" align="right" valign="top">result&lt; <a class="el" href="classafio__v2__xxx_1_1mapped__file__handle.html">mapped_file_handle</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceafio__v2__xxx.html#ac021261f7a8696b0f4cbdcfacef1e88a">mapped_temp_inode</a> (const <a class="el" href="classafio__v2__xxx_1_1path__handle.html">path_handle</a> &amp;dir=<a class="el" href="namespaceafio__v2__xxx_1_1path__discovery.html#af398b6c3762f60aa96cebd270879093e">path_discovery::storage_backed_temporary_files_directory</a>(), <a class="el" href="classafio__v2__xxx_1_1handle.html#a0489b6c1e25cd2bad2ba1ec86e1aaf18">mapped_file_handle::mode</a> _mode=<a class="el" href="classafio__v2__xxx_1_1handle.html#a0489b6c1e25cd2bad2ba1ec86e1aaf18aefb2a684e4afb7d55e6147fbe5a332ee">mapped_file_handle::mode::write</a>, mapped_file_handle::flag flags=mapped_file_handle::flag::none) noexcept</td></tr>
<tr class="separator:ac021261f7a8696b0f4cbdcfacef1e88a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a7432c582b3af692a1f94be33aa73a00e"><td class="memItemLeft" align="right" valign="top">result&lt; <a class="el" href="classafio__v2__xxx_1_1path__handle.html">path_handle</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceafio__v2__xxx.html#a7432c582b3af692a1f94be33aa73a00e">path</a> (const <a class="el" href="classafio__v2__xxx_1_1path__handle.html">path_handle</a> &amp;base, <a class="el" href="classafio__v2__xxx_1_1path__handle.html#abe4d76fd0308667d7b5727c69cfe943f">path_handle::path_view_type</a> _path) noexcept</td></tr>
-<tr class="separator:a7432c582b3af692a1f94be33aa73a00e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7a98882ead35ebd6bd0700fdf571c44a"><td class="memItemLeft" align="right" valign="top">result&lt; <a class="el" href="classafio__v2__xxx_1_1path__handle.html">path_handle</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceafio__v2__xxx.html#a7a98882ead35ebd6bd0700fdf571c44a">path</a> (const <a class="el" href="classafio__v2__xxx_1_1path__handle.html">path_handle</a> &amp;base, <a class="el" href="classafio__v2__xxx_1_1path__handle.html#abe4d76fd0308667d7b5727c69cfe943f">path_handle::path_view_type</a> path) noexcept</td></tr>
+<tr class="separator:a7a98882ead35ebd6bd0700fdf571c44a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac9484fd22637e8e0102d7b48b080c075"><td class="memItemLeft" align="right" valign="top">result&lt; <a class="el" href="classafio__v2__xxx_1_1path__handle.html">path_handle</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceafio__v2__xxx.html#ac9484fd22637e8e0102d7b48b080c075">path</a> (<a class="el" href="classafio__v2__xxx_1_1path__handle.html#abe4d76fd0308667d7b5727c69cfe943f">path_handle::path_view_type</a> _path) noexcept</td></tr>
<tr class="separator:ac9484fd22637e8e0102d7b48b080c075"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a261384b15437844aa5c70229f4f9a9a7"><td class="memItemLeft" align="right" valign="top"><a id="a261384b15437844aa5c70229f4f9a9a7"></a>
@@ -404,6 +443,85 @@ std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operato
<div class="textblock"><p>The AFIO namespace. </p>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000001">Todo:</a></b></dt><dd>TODO FIXME Replace in-memory log with memory map file backed log. </dd></dl>
</div><h2 class="groupheader">Function Documentation</h2>
+<a id="a4c35fd205301d7fdd3ebb503f2d154fc"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a4c35fd205301d7fdd3ebb503f2d154fc">&#9670;&nbsp;</a></span>async_barrier()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;class CompletionRoutine &gt; </div>
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">result&lt;<a class="el" href="classafio__v2__xxx_1_1async__file__handle.html#a5668ee547b98e268360e1f8da8769df8">async_file_handle::io_state_ptr</a>&gt; afio_v2_xxx::async_barrier </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classafio__v2__xxx_1_1async__file__handle.html">async_file_handle</a> &amp;&#160;</td>
+ <td class="paramname"><em>self</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__request.html">async_file_handle::io_request</a>&lt; async_file_handle::const_buffers_type &gt;&#160;</td>
+ <td class="paramname"><em>reqs</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">CompletionRoutine &amp;&amp;&#160;</td>
+ <td class="paramname"><em>completion</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">bool&#160;</td>
+ <td class="paramname"><em>wait_for_device</em> = <code>false</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">bool&#160;</td>
+ <td class="paramname"><em>and_metadata</em> = <code>false</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">span&lt; char &gt;&#160;</td>
+ <td class="paramname"><em>mem</em> = <code>{}</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Schedule a barrier to occur asynchronously. </p>
+<dl class="section note"><dt>Note</dt><dd>All the caveats and exclusions which apply to <code>barrier()</code> also apply here. Note that Microsoft Windows does not support asynchronously executed barriers, and this call will fail on that operating system.</dd></dl>
+<dl class="section return"><dt>Returns</dt><dd>Either an io_state_ptr to the i/o in progress, or an error code. </dd></dl>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">self</td><td>The object whose member function to call. </td></tr>
+ <tr><td class="paramname">reqs</td><td>A scatter-gather and offset request for what range to barrier. May be ignored on some platforms which always write barrier the entire file. Supplying a default initialised reqs write barriers the entire file. </td></tr>
+ <tr><td class="paramname">completion</td><td>A callable to call upon i/o completion. Spec is <code>void(async_file_handle *, io_result&lt;const_buffers_type&gt; &amp;)</code>. Note that buffers returned may not be buffers input, see documentation for <code>barrier()</code>. </td></tr>
+ <tr><td class="paramname">wait_for_device</td><td>True if you want the call to wait until data reaches storage and that storage has acknowledged the data is physically written. Slow. </td></tr>
+ <tr><td class="paramname">and_metadata</td><td>True if you want the call to sync the metadata for retrieving the writes before the barrier after a sudden power loss event. Slow. </td></tr>
+ <tr><td class="paramname">mem</td><td>Optional span of memory to use to avoid using <code>calloc()</code>. Note span MUST be all bits zero on entry. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section user"><dt>Errors returnable</dt><dd>As for <code>barrier()</code>, plus <code>ENOMEM</code>. </dd></dl>
+<dl class="section user"><dt>Memory Allocations</dt><dd>If mem is not set, one calloc, one free. The allocation is unavoidable due to the need to store a type erased completion handler of unknown type and state per buffers input. </dd></dl>
+<div class="fragment"><div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160; {}) noexcept</div><div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160;{</div><div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160; <span class="keywordflow">return</span> <span class="keyword">self</span>.async_barrier(std::forward&lt;decltype(reqs)&gt;(reqs), std::forward&lt;decltype(completion)&gt;(completion), std::forward&lt;decltype(wait_for_device)&gt;(wait_for_device), std::forward&lt;decltype(and_metadata)&gt;(and_metadata), std::forward&lt;decltype(mem)&gt;(mem));</div><div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160;}</div></div><!-- fragment -->
+</div>
+</div>
<a id="a5b0168993998aafc342233aa782040a6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5b0168993998aafc342233aa782040a6">&#9670;&nbsp;</a></span>async_file()</h2>
@@ -480,7 +598,7 @@ std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operato
</dd>
</dl>
<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="l00608"></a><span class="lineno"> 608</span>&#160;{</div><div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceafio__v2__xxx.html#a5b0168993998aafc342233aa782040a6">async_file_handle::async_file</a>(std::forward&lt;decltype(service)&gt;(service), std::forward&lt;decltype(base)&gt;(base), std::forward&lt;decltype(_path)&gt;(_path), std::forward&lt;decltype(_mode)&gt;(_mode), std::forward&lt;decltype(_creation)&gt;(_creation), std::forward&lt;decltype(_caching)&gt;(_caching),</div><div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160; std::forward&lt;decltype(flags)&gt;(flags));</div><div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160;}</div><div class="ttc" id="namespaceafio__v2__xxx_html_a5b0168993998aafc342233aa782040a6"><div class="ttname"><a href="namespaceafio__v2__xxx.html#a5b0168993998aafc342233aa782040a6">afio_v2_xxx::async_file</a></div><div class="ttdeci">result&lt; async_file_handle &gt; async_file(io_service &amp;service, const path_handle &amp;base, async_file_handle::path_view_type _path, async_file_handle::mode _mode=async_file_handle::mode::read, async_file_handle::creation _creation=async_file_handle::creation::open_existing, async_file_handle::caching _caching=async_file_handle::caching::only_metadata, async_file_handle::flag flags=async_file_handle::flag::none) noexcept</div><div class="ttdef"><b>Definition:</b> async_file_handle.hpp:606</div></div>
+<div class="fragment"><div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160;{</div><div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceafio__v2__xxx.html#a5b0168993998aafc342233aa782040a6">async_file_handle::async_file</a>(std::forward&lt;decltype(service)&gt;(service), std::forward&lt;decltype(base)&gt;(base), std::forward&lt;decltype(_path)&gt;(_path), std::forward&lt;decltype(_mode)&gt;(_mode), std::forward&lt;decltype(_creation)&gt;(_creation), std::forward&lt;decltype(_caching)&gt;(_caching),</div><div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160; std::forward&lt;decltype(flags)&gt;(flags));</div><div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160;}</div><div class="ttc" id="namespaceafio__v2__xxx_html_a5b0168993998aafc342233aa782040a6"><div class="ttname"><a href="namespaceafio__v2__xxx.html#a5b0168993998aafc342233aa782040a6">afio_v2_xxx::async_file</a></div><div class="ttdeci">result&lt; async_file_handle &gt; async_file(io_service &amp;service, const path_handle &amp;base, async_file_handle::path_view_type _path, async_file_handle::mode _mode=async_file_handle::mode::read, async_file_handle::creation _creation=async_file_handle::creation::open_existing, async_file_handle::caching _caching=async_file_handle::caching::only_metadata, async_file_handle::flag flags=async_file_handle::flag::none) noexcept</div><div class="ttdef"><b>Definition:</b> async_file_handle.hpp:637</div></div>
</div><!-- fragment -->
</div>
</div>
@@ -537,10 +655,75 @@ std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operato
</div><div class="memdoc">
<p>Create an async file 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 file.</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="l00619"></a><span class="lineno"> 619</span>&#160;{</div><div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceafio__v2__xxx.html#a40cd3a25b8d4a293a8864fe6eb585034">async_file_handle::async_random_file</a>(std::forward&lt;decltype(service)&gt;(service), std::forward&lt;decltype(dirpath)&gt;(dirpath), std::forward&lt;decltype(_mode)&gt;(_mode), std::forward&lt;decltype(_caching)&gt;(_caching), std::forward&lt;decltype(flags)&gt;(flags));</div><div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160;}</div><div class="ttc" id="namespaceafio__v2__xxx_html_a40cd3a25b8d4a293a8864fe6eb585034"><div class="ttname"><a href="namespaceafio__v2__xxx.html#a40cd3a25b8d4a293a8864fe6eb585034">afio_v2_xxx::async_random_file</a></div><div class="ttdeci">result&lt; async_file_handle &gt; async_random_file(io_service &amp;service, const path_handle &amp;dirpath, async_file_handle::mode _mode=async_file_handle::mode::write, async_file_handle::caching _caching=async_file_handle::caching::only_metadata, async_file_handle::flag flags=async_file_handle::flag::none) noexcept</div><div class="ttdef"><b>Definition:</b> async_file_handle.hpp:618</div></div>
+<div class="fragment"><div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160;{</div><div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceafio__v2__xxx.html#a40cd3a25b8d4a293a8864fe6eb585034">async_file_handle::async_random_file</a>(std::forward&lt;decltype(service)&gt;(service), std::forward&lt;decltype(dirpath)&gt;(dirpath), std::forward&lt;decltype(_mode)&gt;(_mode), std::forward&lt;decltype(_caching)&gt;(_caching), std::forward&lt;decltype(flags)&gt;(flags));</div><div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160;}</div><div class="ttc" id="namespaceafio__v2__xxx_html_a40cd3a25b8d4a293a8864fe6eb585034"><div class="ttname"><a href="namespaceafio__v2__xxx.html#a40cd3a25b8d4a293a8864fe6eb585034">afio_v2_xxx::async_random_file</a></div><div class="ttdeci">result&lt; async_file_handle &gt; async_random_file(io_service &amp;service, const path_handle &amp;dirpath, async_file_handle::mode _mode=async_file_handle::mode::write, async_file_handle::caching _caching=async_file_handle::caching::only_metadata, async_file_handle::flag flags=async_file_handle::flag::none) noexcept</div><div class="ttdef"><b>Definition:</b> async_file_handle.hpp:649</div></div>
</div><!-- fragment -->
</div>
</div>
+<a id="a0891bedb63147526aba998b0a2f18132"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0891bedb63147526aba998b0a2f18132">&#9670;&nbsp;</a></span>async_read()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;class CompletionRoutine &gt; </div>
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">result&lt;<a class="el" href="classafio__v2__xxx_1_1async__file__handle.html#a5668ee547b98e268360e1f8da8769df8">async_file_handle::io_state_ptr</a>&gt; afio_v2_xxx::async_read </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classafio__v2__xxx_1_1async__file__handle.html">async_file_handle</a> &amp;&#160;</td>
+ <td class="paramname"><em>self</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__request.html">async_file_handle::io_request</a>&lt; async_file_handle::buffers_type &gt;&#160;</td>
+ <td class="paramname"><em>reqs</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">CompletionRoutine &amp;&amp;&#160;</td>
+ <td class="paramname"><em>completion</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">span&lt; char &gt;&#160;</td>
+ <td class="paramname"><em>mem</em> = <code>{}</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Schedule a read to occur asynchronously. </p>
+<p>Note that some OS kernels can only process a limited number async i/o operations at a time. You should therefore check for the error <code>std::errc::resource_unavailable_try_again</code> and gracefully reschedule the i/o for a later time. This temporary failure may be returned immediately, or to the completion handler and hence you ought to handle both situations.</p>
+<dl class="section return"><dt>Returns</dt><dd>Either an io_state_ptr to the i/o in progress, or an error code. </dd></dl>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">self</td><td>The object whose member function to call. </td></tr>
+ <tr><td class="paramname">reqs</td><td>A scatter-gather and offset request. </td></tr>
+ <tr><td class="paramname">completion</td><td>A callable to call upon i/o completion. Spec is <code>void(async_file_handle *, io_result&lt;buffers_type&gt; &amp;)</code>. Note that buffers returned may not be buffers input, see documentation for <code>read()</code>. </td></tr>
+ <tr><td class="paramname">mem</td><td>Optional span of memory to use to avoid using <code>calloc()</code>. Note span MUST be all bits zero on entry. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section user"><dt>Errors returnable</dt><dd>As for <code>read()</code>, plus <code>ENOMEM</code>. </dd></dl>
+<dl class="section user"><dt>Memory Allocations</dt><dd>If mem is not set, one calloc, one free. The allocation is unavoidable due to the need to store a type erased completion handler of unknown type and state per buffers input. </dd></dl>
+<div class="fragment"><div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160; {}) noexcept</div><div class="line"><a name="l00735"></a><span class="lineno"> 735</span>&#160;{</div><div class="line"><a name="l00736"></a><span class="lineno"> 736</span>&#160; <span class="keywordflow">return</span> <span class="keyword">self</span>.async_read(std::forward&lt;decltype(reqs)&gt;(reqs), std::forward&lt;decltype(completion)&gt;(completion), std::forward&lt;decltype(mem)&gt;(mem));</div><div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160;}</div></div><!-- fragment -->
+</div>
+</div>
<a id="a0b751376f48a4fd14cb90cce03b2b491"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0b751376f48a4fd14cb90cce03b2b491">&#9670;&nbsp;</a></span>async_temp_file()</h2>
@@ -601,7 +784,7 @@ std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operato
<p>Create an async file handle creating the named file on some path which the OS declares to be suitable for temporary files. Most OSs are very lazy about flushing changes made to these temporary files. Note the default flags are to have the newly created file deleted on first handle close. Note also that an empty name is equivalent to calling <code>async_random_file(path_discovery::storage_backed_temporary_files_directory())</code> and the creation parameter is ignored.</p>
<dl class="section note"><dt>Note</dt><dd>If the temporary file you are creating is not going to have its path sent to another process for usage, this is the WRONG function to use. Use <code>temp_inode()</code> instead, it is far more secure.</dd></dl>
<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="l00639"></a><span class="lineno"> 639</span>&#160;{</div><div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceafio__v2__xxx.html#a0b751376f48a4fd14cb90cce03b2b491">async_file_handle::async_temp_file</a>(std::forward&lt;decltype(service)&gt;(service), std::forward&lt;decltype(name)&gt;(name), std::forward&lt;decltype(_mode)&gt;(_mode), std::forward&lt;decltype(_creation)&gt;(_creation), std::forward&lt;decltype(_caching)&gt;(_caching), std::forward&lt;decltype(flags)&gt;(flags));</div><div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160;}</div><div class="ttc" id="namespaceafio__v2__xxx_html_a0b751376f48a4fd14cb90cce03b2b491"><div class="ttname"><a href="namespaceafio__v2__xxx.html#a0b751376f48a4fd14cb90cce03b2b491">afio_v2_xxx::async_temp_file</a></div><div class="ttdeci">result&lt; async_file_handle &gt; async_temp_file(io_service &amp;service, async_file_handle::path_view_type name=async_file_handle::path_view_type(), async_file_handle::mode _mode=async_file_handle::mode::write, async_file_handle::creation _creation=async_file_handle::creation::if_needed, async_file_handle::caching _caching=async_file_handle::caching::only_metadata, async_file_handle::flag flags=async_file_handle::flag::unlink_on_close) noexcept</div><div class="ttdef"><b>Definition:</b> async_file_handle.hpp:637</div></div>
+<div class="fragment"><div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160;{</div><div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceafio__v2__xxx.html#a0b751376f48a4fd14cb90cce03b2b491">async_file_handle::async_temp_file</a>(std::forward&lt;decltype(service)&gt;(service), std::forward&lt;decltype(name)&gt;(name), std::forward&lt;decltype(_mode)&gt;(_mode), std::forward&lt;decltype(_creation)&gt;(_creation), std::forward&lt;decltype(_caching)&gt;(_caching), std::forward&lt;decltype(flags)&gt;(flags));</div><div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160;}</div><div class="ttc" id="namespaceafio__v2__xxx_html_a0b751376f48a4fd14cb90cce03b2b491"><div class="ttname"><a href="namespaceafio__v2__xxx.html#a0b751376f48a4fd14cb90cce03b2b491">afio_v2_xxx::async_temp_file</a></div><div class="ttdeci">result&lt; async_file_handle &gt; async_temp_file(io_service &amp;service, async_file_handle::path_view_type name=async_file_handle::path_view_type(), async_file_handle::mode _mode=async_file_handle::mode::write, async_file_handle::creation _creation=async_file_handle::creation::if_needed, async_file_handle::caching _caching=async_file_handle::caching::only_metadata, async_file_handle::flag flags=async_file_handle::flag::unlink_on_close) noexcept</div><div class="ttdef"><b>Definition:</b> async_file_handle.hpp:668</div></div>
</div><!-- fragment -->
</div>
</div>
@@ -652,12 +835,77 @@ std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operato
</div><div class="memdoc">
<p><em>Securely</em> create an async file handle creating a temporary anonymous inode in the filesystem referred to by <em>dirpath</em>. The inode created has no name nor accessible path on the filing system and ceases to exist as soon as the last handle is closed, making it ideal for use as a temporary file where other processes do not need to have access to its contents via some path on the filing system (a classic use case is for backing shared memory maps).</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="l00653"></a><span class="lineno"> 653</span>&#160;{</div><div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceafio__v2__xxx.html#a5eb846433fec3c9c80336ff686c2527e">async_file_handle::async_temp_inode</a>(std::forward&lt;decltype(service)&gt;(service), std::forward&lt;decltype(dir)&gt;(dir), std::forward&lt;decltype(_mode)&gt;(_mode), std::forward&lt;decltype(flags)&gt;(flags));</div><div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160;}</div><div class="ttc" id="namespaceafio__v2__xxx_html_a5eb846433fec3c9c80336ff686c2527e"><div class="ttname"><a href="namespaceafio__v2__xxx.html#a5eb846433fec3c9c80336ff686c2527e">afio_v2_xxx::async_temp_inode</a></div><div class="ttdeci">result&lt; async_file_handle &gt; async_temp_inode(io_service &amp;service, const path_handle &amp;dir=path_discovery::storage_backed_temporary_files_directory(), async_file_handle::mode _mode=async_file_handle::mode::write, async_file_handle::flag flags=async_file_handle::flag::none) noexcept</div><div class="ttdef"><b>Definition:</b> async_file_handle.hpp:652</div></div>
+<div class="fragment"><div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160;{</div><div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceafio__v2__xxx.html#a5eb846433fec3c9c80336ff686c2527e">async_file_handle::async_temp_inode</a>(std::forward&lt;decltype(service)&gt;(service), std::forward&lt;decltype(dir)&gt;(dir), std::forward&lt;decltype(_mode)&gt;(_mode), std::forward&lt;decltype(flags)&gt;(flags));</div><div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160;}</div><div class="ttc" id="namespaceafio__v2__xxx_html_a5eb846433fec3c9c80336ff686c2527e"><div class="ttname"><a href="namespaceafio__v2__xxx.html#a5eb846433fec3c9c80336ff686c2527e">afio_v2_xxx::async_temp_inode</a></div><div class="ttdeci">result&lt; async_file_handle &gt; async_temp_inode(io_service &amp;service, const path_handle &amp;dir=path_discovery::storage_backed_temporary_files_directory(), async_file_handle::mode _mode=async_file_handle::mode::write, async_file_handle::flag flags=async_file_handle::flag::none) noexcept</div><div class="ttdef"><b>Definition:</b> async_file_handle.hpp:683</div></div>
</div><!-- fragment -->
</div>
</div>
+<a id="aded93df5ea7777b501811ec593ed5b55"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aded93df5ea7777b501811ec593ed5b55">&#9670;&nbsp;</a></span>async_write()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;class CompletionRoutine &gt; </div>
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">result&lt;<a class="el" href="classafio__v2__xxx_1_1async__file__handle.html#a5668ee547b98e268360e1f8da8769df8">async_file_handle::io_state_ptr</a>&gt; afio_v2_xxx::async_write </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classafio__v2__xxx_1_1async__file__handle.html">async_file_handle</a> &amp;&#160;</td>
+ <td class="paramname"><em>self</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__request.html">async_file_handle::io_request</a>&lt; async_file_handle::const_buffers_type &gt;&#160;</td>
+ <td class="paramname"><em>reqs</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">CompletionRoutine &amp;&amp;&#160;</td>
+ <td class="paramname"><em>completion</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">span&lt; char &gt;&#160;</td>
+ <td class="paramname"><em>mem</em> = <code>{}</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Schedule a write to occur asynchronously. </p>
+<p>Note that some OS kernels can only process a limited number async i/o operations at a time. You should therefore check for the error <code>std::errc::resource_unavailable_try_again</code> and gracefully reschedule the i/o for a later time. This temporary failure may be returned immediately, or to the completion handler and hence you ought to handle both situations.</p>
+<dl class="section return"><dt>Returns</dt><dd>Either an io_state_ptr to the i/o in progress, or an error code. </dd></dl>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">self</td><td>The object whose member function to call. </td></tr>
+ <tr><td class="paramname">reqs</td><td>A scatter-gather and offset request. </td></tr>
+ <tr><td class="paramname">completion</td><td>A callable to call upon i/o completion. Spec is <code>void(async_file_handle *, io_result&lt;const_buffers_type&gt; &amp;)</code>. Note that buffers returned may not be buffers input, see documentation for <code>write()</code>. </td></tr>
+ <tr><td class="paramname">mem</td><td>Optional span of memory to use to avoid using <code>calloc()</code>. Note span MUST be all bits zero on entry. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section user"><dt>Errors returnable</dt><dd>As for <code>write()</code>, plus <code>ENOMEM</code>. </dd></dl>
+<dl class="section user"><dt>Memory Allocations</dt><dd>If mem in not set, one calloc, one free. The allocation is unavoidable due to the need to store a type erased completion handler of unknown type and state per buffers input. </dd></dl>
+<div class="fragment"><div class="line"><a name="l00757"></a><span class="lineno"> 757</span>&#160; {}) noexcept</div><div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160;{</div><div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160; <span class="keywordflow">return</span> <span class="keyword">self</span>.async_write(std::forward&lt;decltype(reqs)&gt;(reqs), std::forward&lt;decltype(completion)&gt;(completion), std::forward&lt;decltype(mem)&gt;(mem));</div><div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160;}</div></div><!-- fragment -->
+</div>
+</div>
<a id="abb60a5dc89b41b1db101dbed12cb065d"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#abb60a5dc89b41b1db101dbed12cb065d">&#9670;&nbsp;</a></span>barrier()</h2>
+<h2 class="memtitle"><span class="permalink"><a href="#abb60a5dc89b41b1db101dbed12cb065d">&#9670;&nbsp;</a></span>barrier() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
@@ -720,18 +968,70 @@ For portability, you can only assume that barriers write order for a single hand
<tr><td class="paramname">self</td><td>The object whose member function to call. </td></tr>
<tr><td class="paramname">reqs</td><td>A scatter-gather and offset request for what range to barrier. May be ignored on some platforms which always write barrier the entire file. Supplying a default initialised reqs write barriers the entire file. </td></tr>
<tr><td class="paramname">wait_for_device</td><td>True if you want the call to wait until data reaches storage and that storage has acknowledged the data is physically written. Slow. </td></tr>
- <tr><td class="paramname">and_metadata</td><td>True if you want the call to sync the metadata for retrieving the writes before the barrier after a sudden power loss event. Slow. </td></tr>
+ <tr><td class="paramname">and_metadata</td><td>True if you want the call to sync the metadata for retrieving the writes before the barrier after a sudden power loss event. Slow. Setting this to false enables much faster performance, especially on non-volatile memory. </td></tr>
<tr><td class="paramname">d</td><td>An optional deadline by which the i/o must complete, else it is cancelled. Note function may return significantly after this deadline if the i/o takes long to cancel. </td></tr>
</table>
</dd>
</dl>
<dl class="section user"><dt>Errors returnable</dt><dd>Any of the values POSIX fdatasync() or Windows NtFlushBuffersFileEx() can return. </dd></dl>
<dl class="section user"><dt>Memory Allocations</dt><dd>None. </dd></dl>
-<div class="fragment"><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160;{</div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; <span class="keywordflow">return</span> <span class="keyword">self</span>.barrier(std::forward&lt;decltype(reqs)&gt;(reqs), std::forward&lt;decltype(wait_for_device)&gt;(wait_for_device), std::forward&lt;decltype(and_metadata)&gt;(and_metadata), std::forward&lt;decltype(d)&gt;(d));</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160;}</div></div><!-- fragment -->
+<div class="fragment"><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; <span class="keywordflow">return</span> <span class="keyword">self</span>.barrier(std::forward&lt;decltype(reqs)&gt;(reqs), std::forward&lt;decltype(wait_for_device)&gt;(wait_for_device), std::forward&lt;decltype(and_metadata)&gt;(and_metadata), std::forward&lt;decltype(d)&gt;(d));</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160;}</div></div><!-- fragment -->
+</div>
+</div>
+<a id="a1b5c40714a95d835e7926b9508469bf2"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a1b5c40714a95d835e7926b9508469bf2">&#9670;&nbsp;</a></span>barrier() <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"><a class="el" href="structafio__v2__xxx_1_1io__handle_1_1const__buffer__type.html">map_handle::const_buffer_type</a> afio_v2_xxx::barrier </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classafio__v2__xxx_1_1map__handle.html">map_handle</a> &amp;&#160;</td>
+ <td class="paramname"><em>self</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structafio__v2__xxx_1_1io__handle_1_1const__buffer__type.html">map_handle::const_buffer_type</a>&#160;</td>
+ <td class="paramname"><em>req</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">bool&#160;</td>
+ <td class="paramname"><em>evict</em> = <code>false</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<p>Lightweight inlined barrier which causes the CPU to write out all buffered writes and dirty cache lines in the request to main memory. </p><dl class="section return"><dt>Returns</dt><dd>The cache lines actually barriered. This may be empty. This function does not return an error. </dd></dl>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">self</td><td>The object whose member function to call. </td></tr>
+ <tr><td class="paramname">req</td><td>The range of cache lines to write barrier. </td></tr>
+ <tr><td class="paramname">evict</td><td>Whether to also evict the cache lines from CPU caches, useful if they will not be used again.</td></tr>
+ </table>
+ </dd>
+</dl>
+<p>Upon return, one knows that memory in the returned buffer has been barriered (it may be empty if there is no support for this operation in AFIO, or if the current CPU does not support this operation). You may find the <code>is_nvram()</code> observer of particular use here. </p>
+<div class="fragment"><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; <span class="keywordflow">return</span> <span class="keyword">self</span>.barrier(std::forward&lt;decltype(req)&gt;(req), std::forward&lt;decltype(evict)&gt;(evict));</div><div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160;}</div></div><!-- fragment -->
</div>
</div>
<a id="a37590ba383783ccfca30404318eb1114"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a37590ba383783ccfca30404318eb1114">&#9670;&nbsp;</a></span>co_read()</h2>
+<h2 class="memtitle"><span class="permalink"><a href="#a37590ba383783ccfca30404318eb1114">&#9670;&nbsp;</a></span>co_read() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
@@ -775,11 +1075,54 @@ For portability, you can only assume that barriers write order for a single hand
</dl>
<dl class="section user"><dt>Errors returnable</dt><dd>As for read(), plus ENOMEM. </dd></dl>
<dl class="section user"><dt>Memory Allocations</dt><dd>One calloc, one free. </dd></dl>
-<div class="fragment"><div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160;{</div><div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160; <span class="keywordflow">return</span> <span class="keyword">self</span>.co_read(std::forward&lt;decltype(reqs)&gt;(reqs));</div><div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160;}</div></div><!-- fragment -->
+<div class="fragment"><div class="line"><a name="l00775"></a><span class="lineno"> 775</span>&#160;{</div><div class="line"><a name="l00776"></a><span class="lineno"> 776</span>&#160; <span class="keywordflow">return</span> <span class="keyword">self</span>.co_read(std::forward&lt;decltype(reqs)&gt;(reqs));</div><div class="line"><a name="l00777"></a><span class="lineno"> 777</span>&#160;}</div></div><!-- fragment -->
+</div>
+</div>
+<a id="ac6be3e0ba22cceed22dbe455c91219dd"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac6be3e0ba22cceed22dbe455c91219dd">&#9670;&nbsp;</a></span>co_read() <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="classafio__v2__xxx_1_1async__file__handle_1_1awaitable.html">async_file_handle::awaitable</a>&lt;async_file_handle::buffers_type&gt; &gt; afio_v2_xxx::co_read </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classafio__v2__xxx_1_1async__file__handle.html">async_file_handle</a> &amp;&#160;</td>
+ <td class="paramname"><em>self</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">async_file_handle::extent_type&#160;</td>
+ <td class="paramname"><em>offset</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">std::initializer_list&lt; <a class="el" href="structafio__v2__xxx_1_1io__handle_1_1buffer__type.html">async_file_handle::buffer_type</a> &gt;&#160;</td>
+ <td class="paramname"><em>lst</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
+ </tr>
+</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="l00780"></a><span class="lineno"> 780</span>&#160;{</div><div class="line"><a name="l00781"></a><span class="lineno"> 781</span>&#160; <span class="keywordflow">return</span> <span class="keyword">self</span>.co_read(std::forward&lt;decltype(offset)&gt;(offset), std::forward&lt;decltype(lst)&gt;(lst));</div><div class="line"><a name="l00782"></a><span class="lineno"> 782</span>&#160;}</div></div><!-- fragment -->
</div>
</div>
<a id="acd740f5aef6ca339575e7497fa873d06"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#acd740f5aef6ca339575e7497fa873d06">&#9670;&nbsp;</a></span>co_write()</h2>
+<h2 class="memtitle"><span class="permalink"><a href="#acd740f5aef6ca339575e7497fa873d06">&#9670;&nbsp;</a></span>co_write() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
@@ -823,11 +1166,54 @@ For portability, you can only assume that barriers write order for a single hand
</dl>
<dl class="section user"><dt>Errors returnable</dt><dd>As for write(), plus ENOMEM. </dd></dl>
<dl class="section user"><dt>Memory Allocations</dt><dd>One calloc, one free. </dd></dl>
-<div class="fragment"><div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160;{</div><div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160; <span class="keywordflow">return</span> <span class="keyword">self</span>.co_write(std::forward&lt;decltype(reqs)&gt;(reqs));</div><div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160;}</div></div><!-- fragment -->
+<div class="fragment"><div class="line"><a name="l00795"></a><span class="lineno"> 795</span>&#160;{</div><div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160; <span class="keywordflow">return</span> <span class="keyword">self</span>.co_write(std::forward&lt;decltype(reqs)&gt;(reqs));</div><div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160;}</div></div><!-- fragment -->
</div>
</div>
-<a id="affce2389376e27ffa0565890034d209f"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#affce2389376e27ffa0565890034d209f">&#9670;&nbsp;</a></span>directory()</h2>
+<a id="a6e6ab37dfca4a975e6d04696948c0728"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a6e6ab37dfca4a975e6d04696948c0728">&#9670;&nbsp;</a></span>co_write() <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="classafio__v2__xxx_1_1async__file__handle_1_1awaitable.html">async_file_handle::awaitable</a>&lt;async_file_handle::const_buffers_type&gt; &gt; afio_v2_xxx::co_write </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classafio__v2__xxx_1_1async__file__handle.html">async_file_handle</a> &amp;&#160;</td>
+ <td class="paramname"><em>self</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">async_file_handle::extent_type&#160;</td>
+ <td class="paramname"><em>offset</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">std::initializer_list&lt; <a class="el" href="structafio__v2__xxx_1_1io__handle_1_1const__buffer__type.html">async_file_handle::const_buffer_type</a> &gt;&#160;</td>
+ <td class="paramname"><em>lst</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
+ </tr>
+</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="l00800"></a><span class="lineno"> 800</span>&#160;{</div><div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160; <span class="keywordflow">return</span> <span class="keyword">self</span>.co_write(std::forward&lt;decltype(offset)&gt;(offset), std::forward&lt;decltype(lst)&gt;(lst));</div><div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160;}</div></div><!-- fragment -->
+</div>
+</div>
+<a id="a83828cb013df9d77b08ec0ac59037c85"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a83828cb013df9d77b08ec0ac59037c85">&#9670;&nbsp;</a></span>directory()</h2>
<div class="memitem">
<div class="memproto">
@@ -845,7 +1231,7 @@ For portability, you can only assume that barriers write order for a single hand
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classafio__v2__xxx_1_1path__view.html">directory_handle::path_view_type</a>&#160;</td>
- <td class="paramname"><em>_path</em>, </td>
+ <td class="paramname"><em>path</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
@@ -885,7 +1271,8 @@ For portability, you can only assume that barriers write order for a single hand
</div><div class="memdoc">
<p>Create a handle opening access to a directory on path.</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="l00327"></a><span class="lineno"> 327</span>&#160;{</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceafio__v2__xxx.html#affce2389376e27ffa0565890034d209f">directory_handle::directory</a>(std::forward&lt;decltype(base)&gt;(base), std::forward&lt;decltype(_path)&gt;(_path), std::forward&lt;decltype(_mode)&gt;(_mode), std::forward&lt;decltype(_creation)&gt;(_creation), std::forward&lt;decltype(_caching)&gt;(_caching), std::forward&lt;decltype(flags)&gt;(flags));</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160;}</div><div class="ttc" id="namespaceafio__v2__xxx_html_affce2389376e27ffa0565890034d209f"><div class="ttname"><a href="namespaceafio__v2__xxx.html#affce2389376e27ffa0565890034d209f">afio_v2_xxx::directory</a></div><div class="ttdeci">result&lt; directory_handle &gt; directory(const path_handle &amp;base, directory_handle::path_view_type _path, directory_handle::mode _mode=directory_handle::mode::read, directory_handle::creation _creation=directory_handle::creation::open_existing, directory_handle::caching _caching=directory_handle::caching::all, directory_handle::flag flags=directory_handle::flag::none) noexcept</div><div class="ttdef"><b>Definition:</b> directory_handle.hpp:325</div></div>
+<div class="fragment"><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;{</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceafio__v2__xxx.html#a83828cb013df9d77b08ec0ac59037c85">directory_handle::directory</a>(std::forward&lt;decltype(base)&gt;(base), std::forward&lt;decltype(<a class="code" href="namespaceafio__v2__xxx.html#a7a98882ead35ebd6bd0700fdf571c44a">path</a>)&gt;(<a class="code" href="namespaceafio__v2__xxx.html#a7a98882ead35ebd6bd0700fdf571c44a">path</a>), std::forward&lt;decltype(_mode)&gt;(_mode), std::forward&lt;decltype(_creation)&gt;(_creation), std::forward&lt;decltype(_caching)&gt;(_caching), std::forward&lt;decltype(flags)&gt;(flags));</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;}</div><div class="ttc" id="namespaceafio__v2__xxx_html_a7a98882ead35ebd6bd0700fdf571c44a"><div class="ttname"><a href="namespaceafio__v2__xxx.html#a7a98882ead35ebd6bd0700fdf571c44a">afio_v2_xxx::path</a></div><div class="ttdeci">result&lt; path_handle &gt; path(const path_handle &amp;base, path_handle::path_view_type path) noexcept</div><div class="ttdef"><b>Definition:</b> path_handle.hpp:114</div></div>
+<div class="ttc" id="namespaceafio__v2__xxx_html_a83828cb013df9d77b08ec0ac59037c85"><div class="ttname"><a href="namespaceafio__v2__xxx.html#a83828cb013df9d77b08ec0ac59037c85">afio_v2_xxx::directory</a></div><div class="ttdeci">result&lt; directory_handle &gt; directory(const path_handle &amp;base, directory_handle::path_view_type path, directory_handle::mode _mode=directory_handle::mode::read, directory_handle::creation _creation=directory_handle::creation::open_existing, directory_handle::caching _caching=directory_handle::caching::all, directory_handle::flag flags=directory_handle::flag::none) noexcept</div><div class="ttdef"><b>Definition:</b> directory_handle.hpp:325</div></div>
</div><!-- fragment -->
</div>
</div>
@@ -954,11 +1341,11 @@ For portability, you can only assume that barriers write order for a single hand
</dl>
<dl class="section user"><dt>Errors returnable</dt><dd>todo </dd></dl>
<dl class="section user"><dt>Memory Allocations</dt><dd>If the <code>kernelbuffer</code> parameter is set on entry, no memory allocations. If unset, at least one memory allocation, possibly more is performed. </dd></dl>
-<div class="fragment"><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160;{</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; <span class="keywordflow">return</span> <span class="keyword">self</span>.enumerate(std::forward&lt;decltype(tofill)&gt;(tofill), std::forward&lt;decltype(glob)&gt;(glob), std::forward&lt;decltype(filtering)&gt;(filtering), std::forward&lt;decltype(kernelbuffer)&gt;(kernelbuffer));</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160;}</div></div><!-- fragment -->
+<div class="fragment"><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160;{</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; <span class="keywordflow">return</span> <span class="keyword">self</span>.enumerate(std::forward&lt;decltype(tofill)&gt;(tofill), std::forward&lt;decltype(glob)&gt;(glob), std::forward&lt;decltype(filtering)&gt;(filtering), std::forward&lt;decltype(kernelbuffer)&gt;(kernelbuffer));</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160;}</div></div><!-- fragment -->
</div>
</div>
-<a id="a84b5a9fc93107c673160b41fff151938"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a84b5a9fc93107c673160b41fff151938">&#9670;&nbsp;</a></span>file()</h2>
+<a id="ab92ca63383ef7fe58af4620570d12803"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab92ca63383ef7fe58af4620570d12803">&#9670;&nbsp;</a></span>file()</h2>
<div class="memitem">
<div class="memproto">
@@ -976,7 +1363,7 @@ For portability, you can only assume that barriers write order for a single hand
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classafio__v2__xxx_1_1path__view.html">file_handle::path_view_type</a>&#160;</td>
- <td class="paramname"><em>_path</em>, </td>
+ <td class="paramname"><em>path</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
@@ -1017,7 +1404,7 @@ For portability, you can only assume that barriers write order for a single hand
<p>Create a file handle opening access to a file on path </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>Handle to a base location on the filing system. Pass <code>{}</code> to indicate that path will be absolute. </td></tr>
- <tr><td class="paramname">_path</td><td>The path relative to base to open. </td></tr>
+ <tr><td class="paramname">path</td><td>The path relative to base to open. </td></tr>
<tr><td class="paramname">_mode</td><td>How to open the file. </td></tr>
<tr><td class="paramname">_creation</td><td>How to create the file. </td></tr>
<tr><td class="paramname">_caching</td><td>How to ask the kernel to cache the file. </td></tr>
@@ -1026,7 +1413,8 @@ For portability, you can only assume that barriers write order for a single hand
</dd>
</dl>
<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="l00309"></a><span class="lineno"> 309</span>&#160;{</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceafio__v2__xxx.html#a84b5a9fc93107c673160b41fff151938">file_handle::file</a>(std::forward&lt;decltype(base)&gt;(base), std::forward&lt;decltype(_path)&gt;(_path), std::forward&lt;decltype(_mode)&gt;(_mode), std::forward&lt;decltype(_creation)&gt;(_creation), std::forward&lt;decltype(_caching)&gt;(_caching), std::forward&lt;decltype(flags)&gt;(flags));</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160;}</div><div class="ttc" id="namespaceafio__v2__xxx_html_a84b5a9fc93107c673160b41fff151938"><div class="ttname"><a href="namespaceafio__v2__xxx.html#a84b5a9fc93107c673160b41fff151938">afio_v2_xxx::file</a></div><div class="ttdeci">result&lt; file_handle &gt; file(const path_handle &amp;base, file_handle::path_view_type _path, file_handle::mode _mode=file_handle::mode::read, file_handle::creation _creation=file_handle::creation::open_existing, file_handle::caching _caching=file_handle::caching::all, file_handle::flag flags=file_handle::flag::none) noexcept</div><div class="ttdef"><b>Definition:</b> file_handle.hpp:307</div></div>
+<div class="fragment"><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160;{</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceafio__v2__xxx.html#ab92ca63383ef7fe58af4620570d12803">file_handle::file</a>(std::forward&lt;decltype(base)&gt;(base), std::forward&lt;decltype(<a class="code" href="namespaceafio__v2__xxx.html#a7a98882ead35ebd6bd0700fdf571c44a">path</a>)&gt;(<a class="code" href="namespaceafio__v2__xxx.html#a7a98882ead35ebd6bd0700fdf571c44a">path</a>), std::forward&lt;decltype(_mode)&gt;(_mode), std::forward&lt;decltype(_creation)&gt;(_creation), std::forward&lt;decltype(_caching)&gt;(_caching), std::forward&lt;decltype(flags)&gt;(flags));</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;}</div><div class="ttc" id="namespaceafio__v2__xxx_html_a7a98882ead35ebd6bd0700fdf571c44a"><div class="ttname"><a href="namespaceafio__v2__xxx.html#a7a98882ead35ebd6bd0700fdf571c44a">afio_v2_xxx::path</a></div><div class="ttdeci">result&lt; path_handle &gt; path(const path_handle &amp;base, path_handle::path_view_type path) noexcept</div><div class="ttdef"><b>Definition:</b> path_handle.hpp:114</div></div>
+<div class="ttc" id="namespaceafio__v2__xxx_html_ab92ca63383ef7fe58af4620570d12803"><div class="ttname"><a href="namespaceafio__v2__xxx.html#ab92ca63383ef7fe58af4620570d12803">afio_v2_xxx::file</a></div><div class="ttdeci">result&lt; file_handle &gt; file(const path_handle &amp;base, file_handle::path_view_type path, file_handle::mode _mode=file_handle::mode::read, file_handle::creation _creation=file_handle::creation::open_existing, file_handle::caching _caching=file_handle::caching::all, file_handle::flag flags=file_handle::flag::none) noexcept</div><div class="ttdef"><b>Definition:</b> file_handle.hpp:307</div></div>
</div><!-- fragment -->
</div>
</div>
@@ -1055,7 +1443,7 @@ For portability, you can only assume that barriers write order for a single hand
</div><div class="memdoc">
<p>Return the current maximum permitted extent of the file.</p>
<dl class="section user"><dt>Errors returnable</dt><dd>Any of the values POSIX fstat() or GetFileInformationByHandleEx() can return. </dd></dl>
-<div class="fragment"><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160;{</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; <span class="keywordflow">return</span> <span class="keyword">self</span>.length();</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160;}</div></div><!-- fragment -->
+<div class="fragment"><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160;{</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; <span class="keywordflow">return</span> <span class="keyword">self</span>.length();</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160;}</div></div><!-- fragment -->
</div>
</div>
<a id="a2bea94a20aae6fb34ebe1ffd03e50891"></a>
@@ -1093,14 +1481,14 @@ For portability, you can only assume that barriers write order for a single hand
</div><div class="memdoc">
<p>Create new memory and map it into view. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
- <tr><td class="paramname">bytes</td><td>How many bytes to create and map. Typically will be rounded to a multiple of the page size (see utils::page_sizes()). </td></tr>
- <tr><td class="paramname">_flag</td><td>The permissions with which to map the view which are constrained by the permissions of the memory section. <code>flag::none</code> can be useful for reserving virtual address space without committing system resources, use commit() to later change availability of memory.</td></tr>
+ <tr><td class="paramname">bytes</td><td>How many bytes to create and map. Typically will be rounded up to a multiple of the page size (see <code>utils::page_sizes()</code>) on POSIX, 64Kb on Windows. </td></tr>
+ <tr><td class="paramname">_flag</td><td>The permissions with which to map the view. <code>flag::none</code> can be useful for reserving virtual address space without committing system resources, use commit() to later change availability of memory.</td></tr>
</table>
</dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>On Microsoft Windows this constructor uses the faster VirtualAlloc() which creates less versatile page backed memory. If you want anonymous memory allocated from a paging file backed section instead, create a page file backed section and then a mapped view from that using the other constructor. This makes available all those very useful VM tricks Windows can do with section mapped memory which VirtualAlloc() memory cannot do.</dd></dl>
<dl class="section user"><dt>Errors returnable</dt><dd>Any of the values POSIX mmap() or VirtualAlloc() can return. </dd></dl>
-<div class="fragment"><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160;{</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceafio__v2__xxx.html#accb0ec68871a9c3e3e7aeadc0f31e009">map_handle::map</a>(std::forward&lt;decltype(bytes)&gt;(bytes), std::forward&lt;decltype(_flag)&gt;(_flag));</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160;}</div><div class="ttc" id="namespaceafio__v2__xxx_html_accb0ec68871a9c3e3e7aeadc0f31e009"><div class="ttname"><a href="namespaceafio__v2__xxx.html#accb0ec68871a9c3e3e7aeadc0f31e009">afio_v2_xxx::map</a></div><div class="ttdeci">result&lt; map_handle &gt; map(section_handle &amp;section, map_handle::size_type bytes=0, map_handle::extent_type offset=0, section_handle::flag _flag=section_handle::flag::readwrite) noexcept</div><div class="ttdef"><b>Definition:</b> map_handle.hpp:490</div></div>
+<div class="fragment"><div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160;{</div><div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceafio__v2__xxx.html#accb0ec68871a9c3e3e7aeadc0f31e009">map_handle::map</a>(std::forward&lt;decltype(bytes)&gt;(bytes), std::forward&lt;decltype(_flag)&gt;(_flag));</div><div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160;}</div><div class="ttc" id="namespaceafio__v2__xxx_html_accb0ec68871a9c3e3e7aeadc0f31e009"><div class="ttname"><a href="namespaceafio__v2__xxx.html#accb0ec68871a9c3e3e7aeadc0f31e009">afio_v2_xxx::map</a></div><div class="ttdeci">result&lt; map_handle &gt; map(section_handle &amp;section, map_handle::size_type bytes=0, map_handle::extent_type offset=0, section_handle::flag _flag=section_handle::flag::readwrite) noexcept</div><div class="ttdef"><b>Definition:</b> map_handle.hpp:652</div></div>
</div><!-- fragment -->
</div>
</div>
@@ -1149,17 +1537,18 @@ For portability, you can only assume that barriers write order for a single hand
</tr>
</table>
</div><div class="memdoc">
-<p>Create a memory mapped view of a backing storage. </p><dl class="params"><dt>Parameters</dt><dd>
+<p>Create a memory mapped view of a backing storage, optionally reserving additional address space for later growth. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">section</td><td>A memory section handle specifying the backing storage to use. </td></tr>
- <tr><td class="paramname">bytes</td><td>How many bytes to map (0 = the size of the memory section). Typically will be rounded to a multiple of the page size (see utils::page_sizes()). </td></tr>
+ <tr><td class="paramname">bytes</td><td>How many bytes to reserve (0 = the size of the section). Rounded up to nearest 64Kb on Windows. </td></tr>
<tr><td class="paramname">offset</td><td>The offset into the backing storage to map from. Typically needs to be at least a multiple of the page size (see utils::page_sizes()), on Windows it needs to be a multiple of the kernel memory allocation granularity (typically 64Kb). </td></tr>
<tr><td class="paramname">_flag</td><td>The permissions with which to map the view which are constrained by the permissions of the memory section. <code>flag::none</code> can be useful for reserving virtual address space without committing system resources, use commit() to later change availability of memory.</td></tr>
</table>
</dd>
</dl>
<dl class="section user"><dt>Errors returnable</dt><dd>Any of the values POSIX mmap() or NtMapViewOfSection() can return. </dd></dl>
-<div class="fragment"><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160;{</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceafio__v2__xxx.html#accb0ec68871a9c3e3e7aeadc0f31e009">map_handle::map</a>(std::forward&lt;decltype(section)&gt;(section), std::forward&lt;decltype(bytes)&gt;(bytes), std::forward&lt;decltype(offset)&gt;(offset), std::forward&lt;decltype(_flag)&gt;(_flag));</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160;}</div><div class="ttc" id="namespaceafio__v2__xxx_html_accb0ec68871a9c3e3e7aeadc0f31e009"><div class="ttname"><a href="namespaceafio__v2__xxx.html#accb0ec68871a9c3e3e7aeadc0f31e009">afio_v2_xxx::map</a></div><div class="ttdeci">result&lt; map_handle &gt; map(section_handle &amp;section, map_handle::size_type bytes=0, map_handle::extent_type offset=0, section_handle::flag _flag=section_handle::flag::readwrite) noexcept</div><div class="ttdef"><b>Definition:</b> map_handle.hpp:490</div></div>
+<div class="fragment"><div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160;{</div><div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceafio__v2__xxx.html#accb0ec68871a9c3e3e7aeadc0f31e009">map_handle::map</a>(std::forward&lt;decltype(<a class="code" href="namespaceafio__v2__xxx.html#a42622b31d96b1098e37d9c527abd097d">section</a>)&gt;(<a class="code" href="namespaceafio__v2__xxx.html#a42622b31d96b1098e37d9c527abd097d">section</a>), std::forward&lt;decltype(bytes)&gt;(bytes), std::forward&lt;decltype(offset)&gt;(offset), std::forward&lt;decltype(_flag)&gt;(_flag));</div><div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160;}</div><div class="ttc" id="namespaceafio__v2__xxx_html_accb0ec68871a9c3e3e7aeadc0f31e009"><div class="ttname"><a href="namespaceafio__v2__xxx.html#accb0ec68871a9c3e3e7aeadc0f31e009">afio_v2_xxx::map</a></div><div class="ttdeci">result&lt; map_handle &gt; map(section_handle &amp;section, map_handle::size_type bytes=0, map_handle::extent_type offset=0, section_handle::flag _flag=section_handle::flag::readwrite) noexcept</div><div class="ttdef"><b>Definition:</b> map_handle.hpp:652</div></div>
+<div class="ttc" id="namespaceafio__v2__xxx_html_a42622b31d96b1098e37d9c527abd097d"><div class="ttname"><a href="namespaceafio__v2__xxx.html#a42622b31d96b1098e37d9c527abd097d">afio_v2_xxx::section</a></div><div class="ttdeci">result&lt; section_handle &gt; section(section_handle::extent_type bytes, const path_handle &amp;dirh=path_discovery::storage_backed_temporary_files_directory(), section_handle::flag _flag=section_handle::flag::read|section_handle::flag::write) noexcept</div><div class="ttdoc">Create a memory section backed by an anonymous, managed file. </div><div class="ttdef"><b>Definition:</b> map_handle.hpp:580</div></div>
</div><!-- fragment -->
</div>
</div>
@@ -1240,7 +1629,7 @@ For portability, you can only assume that barriers write order for a single hand
</dl>
<p>Note that if the file is currently zero sized, no mapping occurs now, but later when <code>truncate()</code> or <code>update_map()</code> is called.</p>
<dl class="section user"><dt>Errors returnable</dt><dd>Any of the values which the constructors for <code>file_handle</code>, <code>section_handle</code> and <code>map_handle</code> can return. </dd></dl>
-<div class="fragment"><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160;{</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceafio__v2__xxx.html#a2c44844c18f66950187cb57292d7a676">mapped_file_handle::mapped_file</a>(std::forward&lt;decltype(reservation)&gt;(reservation), std::forward&lt;decltype(base)&gt;(base), std::forward&lt;decltype(_path)&gt;(_path), std::forward&lt;decltype(_mode)&gt;(_mode), std::forward&lt;decltype(_creation)&gt;(_creation), std::forward&lt;decltype(_caching)&gt;(_caching),</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; std::forward&lt;decltype(flags)&gt;(flags));</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160;}</div><div class="ttc" id="namespaceafio__v2__xxx_html_a2c44844c18f66950187cb57292d7a676"><div class="ttname"><a href="namespaceafio__v2__xxx.html#a2c44844c18f66950187cb57292d7a676">afio_v2_xxx::mapped_file</a></div><div class="ttdeci">result&lt; mapped_file_handle &gt; mapped_file(const path_handle &amp;base, mapped_file_handle::path_view_type _path, mapped_file_handle::mode _mode=mapped_file_handle::mode::read, mapped_file_handle::creation _creation=mapped_file_handle::creation::open_existing, mapped_file_handle::caching _caching=mapped_file_handle::caching::all, mapped_file_handle::flag flags=mapped_file_handle::flag::none) noexcept</div><div class="ttdef"><b>Definition:</b> mapped_file_handle.hpp:441</div></div>
+<div class="fragment"><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160;{</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceafio__v2__xxx.html#a2c44844c18f66950187cb57292d7a676">mapped_file_handle::mapped_file</a>(std::forward&lt;decltype(reservation)&gt;(reservation), std::forward&lt;decltype(base)&gt;(base), std::forward&lt;decltype(_path)&gt;(_path), std::forward&lt;decltype(_mode)&gt;(_mode), std::forward&lt;decltype(_creation)&gt;(_creation), std::forward&lt;decltype(_caching)&gt;(_caching), std::forward&lt;decltype(flags)&gt;(flags));</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160;}</div><div class="ttc" id="namespaceafio__v2__xxx_html_a2c44844c18f66950187cb57292d7a676"><div class="ttname"><a href="namespaceafio__v2__xxx.html#a2c44844c18f66950187cb57292d7a676">afio_v2_xxx::mapped_file</a></div><div class="ttdeci">result&lt; mapped_file_handle &gt; mapped_file(const path_handle &amp;base, mapped_file_handle::path_view_type _path, mapped_file_handle::mode _mode=mapped_file_handle::mode::read, mapped_file_handle::creation _creation=mapped_file_handle::creation::open_existing, mapped_file_handle::caching _caching=mapped_file_handle::caching::all, mapped_file_handle::flag flags=mapped_file_handle::flag::none) noexcept</div><div class="ttdef"><b>Definition:</b> mapped_file_handle.hpp:439</div></div>
</div><!-- fragment -->
</div>
</div>
@@ -1302,7 +1691,7 @@ For portability, you can only assume that barriers write order for a single hand
</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="l00443"></a><span class="lineno"> 443</span>&#160;{</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceafio__v2__xxx.html#a2c44844c18f66950187cb57292d7a676">mapped_file_handle::mapped_file</a>(std::forward&lt;decltype(base)&gt;(base), std::forward&lt;decltype(_path)&gt;(_path), std::forward&lt;decltype(_mode)&gt;(_mode), std::forward&lt;decltype(_creation)&gt;(_creation), std::forward&lt;decltype(_caching)&gt;(_caching), std::forward&lt;decltype(flags)&gt;(flags));</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160;}</div><div class="ttc" id="namespaceafio__v2__xxx_html_a2c44844c18f66950187cb57292d7a676"><div class="ttname"><a href="namespaceafio__v2__xxx.html#a2c44844c18f66950187cb57292d7a676">afio_v2_xxx::mapped_file</a></div><div class="ttdeci">result&lt; mapped_file_handle &gt; mapped_file(const path_handle &amp;base, mapped_file_handle::path_view_type _path, mapped_file_handle::mode _mode=mapped_file_handle::mode::read, mapped_file_handle::creation _creation=mapped_file_handle::creation::open_existing, mapped_file_handle::caching _caching=mapped_file_handle::caching::all, mapped_file_handle::flag flags=mapped_file_handle::flag::none) noexcept</div><div class="ttdef"><b>Definition:</b> mapped_file_handle.hpp:441</div></div>
+<div class="fragment"><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160;{</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceafio__v2__xxx.html#a2c44844c18f66950187cb57292d7a676">mapped_file_handle::mapped_file</a>(std::forward&lt;decltype(base)&gt;(base), std::forward&lt;decltype(_path)&gt;(_path), std::forward&lt;decltype(_mode)&gt;(_mode), std::forward&lt;decltype(_creation)&gt;(_creation), std::forward&lt;decltype(_caching)&gt;(_caching), std::forward&lt;decltype(flags)&gt;(flags));</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160;}</div><div class="ttc" id="namespaceafio__v2__xxx_html_a2c44844c18f66950187cb57292d7a676"><div class="ttname"><a href="namespaceafio__v2__xxx.html#a2c44844c18f66950187cb57292d7a676">afio_v2_xxx::mapped_file</a></div><div class="ttdeci">result&lt; mapped_file_handle &gt; mapped_file(const path_handle &amp;base, mapped_file_handle::path_view_type _path, mapped_file_handle::mode _mode=mapped_file_handle::mode::read, mapped_file_handle::creation _creation=mapped_file_handle::creation::open_existing, mapped_file_handle::caching _caching=mapped_file_handle::caching::all, mapped_file_handle::flag flags=mapped_file_handle::flag::none) noexcept</div><div class="ttdef"><b>Definition:</b> mapped_file_handle.hpp:439</div></div>
</div><!-- fragment -->
</div>
</div>
@@ -1359,7 +1748,7 @@ For portability, you can only assume that barriers write order for a single hand
</div><div class="memdoc">
<p>Create an mapped file 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 file. Note also that caching defaults to temporary which hints to the OS to only flush changes to physical storage as lately as possible.</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="l00456"></a><span class="lineno"> 456</span>&#160;{</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceafio__v2__xxx.html#ac9be648f691d72c9cac6295ea7b3f9c8">mapped_file_handle::mapped_random_file</a>(std::forward&lt;decltype(reservation)&gt;(reservation), std::forward&lt;decltype(dirpath)&gt;(dirpath), std::forward&lt;decltype(_mode)&gt;(_mode), std::forward&lt;decltype(_caching)&gt;(_caching), std::forward&lt;decltype(flags)&gt;(flags));</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160;}</div><div class="ttc" id="namespaceafio__v2__xxx_html_ac9be648f691d72c9cac6295ea7b3f9c8"><div class="ttname"><a href="namespaceafio__v2__xxx.html#ac9be648f691d72c9cac6295ea7b3f9c8">afio_v2_xxx::mapped_random_file</a></div><div class="ttdeci">result&lt; mapped_file_handle &gt; mapped_random_file(mapped_file_handle::size_type reservation, const path_handle &amp;dirpath, mapped_file_handle::mode _mode=mapped_file_handle::mode::write, mapped_file_handle::caching _caching=mapped_file_handle::caching::temporary, mapped_file_handle::flag flags=mapped_file_handle::flag::none) noexcept</div><div class="ttdef"><b>Definition:</b> mapped_file_handle.hpp:454</div></div>
+<div class="fragment"><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160;{</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceafio__v2__xxx.html#ac9be648f691d72c9cac6295ea7b3f9c8">mapped_file_handle::mapped_random_file</a>(std::forward&lt;decltype(reservation)&gt;(reservation), std::forward&lt;decltype(dirpath)&gt;(dirpath), std::forward&lt;decltype(_mode)&gt;(_mode), std::forward&lt;decltype(_caching)&gt;(_caching), std::forward&lt;decltype(flags)&gt;(flags));</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160;}</div><div class="ttc" id="namespaceafio__v2__xxx_html_ac9be648f691d72c9cac6295ea7b3f9c8"><div class="ttname"><a href="namespaceafio__v2__xxx.html#ac9be648f691d72c9cac6295ea7b3f9c8">afio_v2_xxx::mapped_random_file</a></div><div class="ttdeci">result&lt; mapped_file_handle &gt; mapped_random_file(mapped_file_handle::size_type reservation, const path_handle &amp;dirpath, mapped_file_handle::mode _mode=mapped_file_handle::mode::write, mapped_file_handle::caching _caching=mapped_file_handle::caching::temporary, mapped_file_handle::flag flags=mapped_file_handle::flag::none) noexcept</div><div class="ttdef"><b>Definition:</b> mapped_file_handle.hpp:451</div></div>
</div><!-- fragment -->
</div>
</div>
@@ -1423,7 +1812,7 @@ For portability, you can only assume that barriers write order for a single hand
<p>Create a mapped file handle creating the named file on some path which the OS declares to be suitable for temporary files. Most OSs are very lazy about flushing changes made to these temporary files. Note the default flags are to have the newly created file deleted on first handle close. Note also that an empty name is equivalent to calling <code>mapped_random_file(path_discovery::storage_backed_temporary_files_directory())</code> and the creation parameter is ignored.</p>
<dl class="section note"><dt>Note</dt><dd>If the temporary file you are creating is not going to have its path sent to another process for usage, this is the WRONG function to use. Use <code>temp_inode()</code> instead, it is far more secure.</dd></dl>
<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="l00476"></a><span class="lineno"> 476</span>&#160;{</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceafio__v2__xxx.html#ab175b3720445c24cd43e3b7d88c6bbc9">mapped_file_handle::mapped_temp_file</a>(std::forward&lt;decltype(reservation)&gt;(reservation), std::forward&lt;decltype(name)&gt;(name), std::forward&lt;decltype(_mode)&gt;(_mode), std::forward&lt;decltype(_creation)&gt;(_creation), std::forward&lt;decltype(_caching)&gt;(_caching), std::forward&lt;decltype(flags)&gt;(flags));</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160;}</div><div class="ttc" id="namespaceafio__v2__xxx_html_ab175b3720445c24cd43e3b7d88c6bbc9"><div class="ttname"><a href="namespaceafio__v2__xxx.html#ab175b3720445c24cd43e3b7d88c6bbc9">afio_v2_xxx::mapped_temp_file</a></div><div class="ttdeci">result&lt; mapped_file_handle &gt; mapped_temp_file(mapped_file_handle::size_type reservation, mapped_file_handle::path_view_type name=mapped_file_handle::path_view_type(), mapped_file_handle::mode _mode=mapped_file_handle::mode::write, mapped_file_handle::creation _creation=mapped_file_handle::creation::if_needed, mapped_file_handle::caching _caching=mapped_file_handle::caching::temporary, mapped_file_handle::flag flags=mapped_file_handle::flag::unlink_on_close) noexcept</div><div class="ttdef"><b>Definition:</b> mapped_file_handle.hpp:474</div></div>
+<div class="fragment"><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160;{</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceafio__v2__xxx.html#ab175b3720445c24cd43e3b7d88c6bbc9">mapped_file_handle::mapped_temp_file</a>(std::forward&lt;decltype(reservation)&gt;(reservation), std::forward&lt;decltype(name)&gt;(name), std::forward&lt;decltype(_mode)&gt;(_mode), std::forward&lt;decltype(_creation)&gt;(_creation), std::forward&lt;decltype(_caching)&gt;(_caching), std::forward&lt;decltype(flags)&gt;(flags));</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160;}</div><div class="ttc" id="namespaceafio__v2__xxx_html_ab175b3720445c24cd43e3b7d88c6bbc9"><div class="ttname"><a href="namespaceafio__v2__xxx.html#ab175b3720445c24cd43e3b7d88c6bbc9">afio_v2_xxx::mapped_temp_file</a></div><div class="ttdeci">result&lt; mapped_file_handle &gt; mapped_temp_file(mapped_file_handle::size_type reservation, mapped_file_handle::path_view_type name=mapped_file_handle::path_view_type(), mapped_file_handle::mode _mode=mapped_file_handle::mode::write, mapped_file_handle::creation _creation=mapped_file_handle::creation::if_needed, mapped_file_handle::caching _caching=mapped_file_handle::caching::temporary, mapped_file_handle::flag flags=mapped_file_handle::flag::unlink_on_close) noexcept</div><div class="ttdef"><b>Definition:</b> mapped_file_handle.hpp:470</div></div>
</div><!-- fragment -->
</div>
</div>
@@ -1468,12 +1857,12 @@ For portability, you can only assume that barriers write order for a single hand
</div><div class="memdoc">
<p><em>Securely</em> create a mapped file handle creating a temporary anonymous inode in the filesystem referred to by <em>dirpath</em>. The inode created has no name nor accessible path on the filing system and ceases to exist as soon as the last handle is closed, making it ideal for use as a temporary file where other processes do not need to have access to its contents via some path on the filing system (a classic use case is for backing shared memory maps).</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="l00490"></a><span class="lineno"> 490</span>&#160;{</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceafio__v2__xxx.html#ac021261f7a8696b0f4cbdcfacef1e88a">mapped_file_handle::mapped_temp_inode</a>(std::forward&lt;decltype(dir)&gt;(dir), std::forward&lt;decltype(_mode)&gt;(_mode), std::forward&lt;decltype(flags)&gt;(flags));</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160;}</div><div class="ttc" id="namespaceafio__v2__xxx_html_ac021261f7a8696b0f4cbdcfacef1e88a"><div class="ttname"><a href="namespaceafio__v2__xxx.html#ac021261f7a8696b0f4cbdcfacef1e88a">afio_v2_xxx::mapped_temp_inode</a></div><div class="ttdeci">result&lt; mapped_file_handle &gt; mapped_temp_inode(const path_handle &amp;dir=path_discovery::storage_backed_temporary_files_directory(), mapped_file_handle::mode _mode=mapped_file_handle::mode::write, mapped_file_handle::flag flags=mapped_file_handle::flag::none) noexcept</div><div class="ttdef"><b>Definition:</b> mapped_file_handle.hpp:489</div></div>
+<div class="fragment"><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160;{</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceafio__v2__xxx.html#ac021261f7a8696b0f4cbdcfacef1e88a">mapped_file_handle::mapped_temp_inode</a>(std::forward&lt;decltype(dir)&gt;(dir), std::forward&lt;decltype(_mode)&gt;(_mode), std::forward&lt;decltype(flags)&gt;(flags));</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160;}</div><div class="ttc" id="namespaceafio__v2__xxx_html_ac021261f7a8696b0f4cbdcfacef1e88a"><div class="ttname"><a href="namespaceafio__v2__xxx.html#ac021261f7a8696b0f4cbdcfacef1e88a">afio_v2_xxx::mapped_temp_inode</a></div><div class="ttdeci">result&lt; mapped_file_handle &gt; mapped_temp_inode(const path_handle &amp;dir=path_discovery::storage_backed_temporary_files_directory(), mapped_file_handle::mode _mode=mapped_file_handle::mode::write, mapped_file_handle::flag flags=mapped_file_handle::flag::none) noexcept</div><div class="ttdef"><b>Definition:</b> mapped_file_handle.hpp:484</div></div>
</div><!-- fragment -->
</div>
</div>
-<a id="a7432c582b3af692a1f94be33aa73a00e"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a7432c582b3af692a1f94be33aa73a00e">&#9670;&nbsp;</a></span>path() <span class="overload">[1/2]</span></h2>
+<a id="a7a98882ead35ebd6bd0700fdf571c44a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a7a98882ead35ebd6bd0700fdf571c44a">&#9670;&nbsp;</a></span>path() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
@@ -1491,7 +1880,7 @@ For portability, you can only assume that barriers write order for a single hand
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classafio__v2__xxx_1_1path__handle.html#abe4d76fd0308667d7b5727c69cfe943f">path_handle::path_view_type</a>&#160;</td>
- <td class="paramname"><em>_path</em>&#160;</td>
+ <td class="paramname"><em>path</em>&#160;</td>
</tr>
<tr>
<td></td>
@@ -1507,7 +1896,7 @@ For portability, you can only assume that barriers write order for a single hand
</div><div class="memdoc">
<p>Create a path handle opening access to some location on the filing system. Some operating systems provide a particularly lightweight method of doing this (Linux: <code>O_PATH</code>, Windows: no access perms) which is much faster than opening a directory. For other systems, we open a directory with read only permissions.</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="l00115"></a><span class="lineno"> 115</span>&#160;{</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceafio__v2__xxx.html#ac9484fd22637e8e0102d7b48b080c075">path_handle::path</a>(std::forward&lt;decltype(base)&gt;(base), std::forward&lt;decltype(_path)&gt;(_path));</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;}</div><div class="ttc" id="namespaceafio__v2__xxx_html_ac9484fd22637e8e0102d7b48b080c075"><div class="ttname"><a href="namespaceafio__v2__xxx.html#ac9484fd22637e8e0102d7b48b080c075">afio_v2_xxx::path</a></div><div class="ttdeci">result&lt; path_handle &gt; path(path_handle::path_view_type _path) noexcept</div><div class="ttdef"><b>Definition:</b> path_handle.hpp:119</div></div>
+<div class="fragment"><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;{</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceafio__v2__xxx.html#ac9484fd22637e8e0102d7b48b080c075">path_handle::path</a>(std::forward&lt;decltype(base)&gt;(base), std::forward&lt;decltype(<a class="code" href="namespaceafio__v2__xxx.html#ac9484fd22637e8e0102d7b48b080c075">path</a>)&gt;(<a class="code" href="namespaceafio__v2__xxx.html#ac9484fd22637e8e0102d7b48b080c075">path</a>));</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;}</div><div class="ttc" id="namespaceafio__v2__xxx_html_ac9484fd22637e8e0102d7b48b080c075"><div class="ttname"><a href="namespaceafio__v2__xxx.html#ac9484fd22637e8e0102d7b48b080c075">afio_v2_xxx::path</a></div><div class="ttdeci">result&lt; path_handle &gt; path(path_handle::path_view_type _path) noexcept</div><div class="ttdef"><b>Definition:</b> path_handle.hpp:119</div></div>
</div><!-- fragment -->
</div>
</div>
@@ -1586,7 +1975,7 @@ For portability, you can only assume that barriers write order for a single hand
</div><div class="memdoc">
<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="l00337"></a><span class="lineno"> 337</span>&#160;{</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceafio__v2__xxx.html#a26a149bed05acb7e27596e84f16cd0bd">directory_handle::random_directory</a>(std::forward&lt;decltype(dirpath)&gt;(dirpath), std::forward&lt;decltype(_mode)&gt;(_mode), std::forward&lt;decltype(_caching)&gt;(_caching), std::forward&lt;decltype(flags)&gt;(flags));</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160;}</div><div class="ttc" id="namespaceafio__v2__xxx_html_a26a149bed05acb7e27596e84f16cd0bd"><div class="ttname"><a href="namespaceafio__v2__xxx.html#a26a149bed05acb7e27596e84f16cd0bd">afio_v2_xxx::random_directory</a></div><div class="ttdeci">result&lt; directory_handle &gt; random_directory(const path_handle &amp;dirpath, directory_handle::mode _mode=directory_handle::mode::write, directory_handle::caching _caching=directory_handle::caching::temporary, directory_handle::flag flags=directory_handle::flag::none) noexcept</div><div class="ttdef"><b>Definition:</b> directory_handle.hpp:336</div></div>
+<div class="fragment"><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160;{</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceafio__v2__xxx.html#a26a149bed05acb7e27596e84f16cd0bd">directory_handle::random_directory</a>(std::forward&lt;decltype(dirpath)&gt;(dirpath), std::forward&lt;decltype(_mode)&gt;(_mode), std::forward&lt;decltype(_caching)&gt;(_caching), std::forward&lt;decltype(flags)&gt;(flags));</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160;}</div><div class="ttc" id="namespaceafio__v2__xxx_html_a26a149bed05acb7e27596e84f16cd0bd"><div class="ttname"><a href="namespaceafio__v2__xxx.html#a26a149bed05acb7e27596e84f16cd0bd">afio_v2_xxx::random_directory</a></div><div class="ttdeci">result&lt; directory_handle &gt; random_directory(const path_handle &amp;dirpath, directory_handle::mode _mode=directory_handle::mode::write, directory_handle::caching _caching=directory_handle::caching::temporary, directory_handle::flag flags=directory_handle::flag::none) noexcept</div><div class="ttdef"><b>Definition:</b> directory_handle.hpp:335</div></div>
</div><!-- fragment -->
</div>
</div>
@@ -1637,12 +2026,12 @@ For portability, you can only assume that barriers write order for a single hand
</div><div class="memdoc">
<p>Create a file 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 file. Note also that caching defaults to temporary which hints to the OS to only flush changes to physical storage as lately as possible.</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="l00321"></a><span class="lineno"> 321</span>&#160;{</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceafio__v2__xxx.html#aac0b7d76c4298e86cef49c832c93edec">file_handle::random_file</a>(std::forward&lt;decltype(dirpath)&gt;(dirpath), std::forward&lt;decltype(_mode)&gt;(_mode), std::forward&lt;decltype(_caching)&gt;(_caching), std::forward&lt;decltype(flags)&gt;(flags));</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;}</div><div class="ttc" id="namespaceafio__v2__xxx_html_aac0b7d76c4298e86cef49c832c93edec"><div class="ttname"><a href="namespaceafio__v2__xxx.html#aac0b7d76c4298e86cef49c832c93edec">afio_v2_xxx::random_file</a></div><div class="ttdeci">result&lt; file_handle &gt; random_file(const path_handle &amp;dirpath, file_handle::mode _mode=file_handle::mode::write, file_handle::caching _caching=file_handle::caching::temporary, file_handle::flag flags=file_handle::flag::none) noexcept</div><div class="ttdef"><b>Definition:</b> file_handle.hpp:320</div></div>
+<div class="fragment"><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; <span class="keywordflow">return</span> <a class="code" href="namespaceafio__v2__xxx.html#aac0b7d76c4298e86cef49c832c93edec">file_handle::random_file</a>(std::forward&lt;decltype(dirpath)&gt;(dirpath), std::forward&lt;decltype(_mode)&gt;(_mode), std::forward&lt;decltype(_caching)&gt;(_caching), std::forward&lt;decltype(flags)&gt;(flags));</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160;}</div><div class="ttc" id="namespaceafio__v2__xxx_html_aac0b7d76c4298e86cef49c832c93edec"><div class="ttname"><a href="namespaceafio__v2__xxx.html#aac0b7d76c4298e86cef49c832c93edec">afio_v2_xxx::random_file</a></div><div class="ttdeci">result&lt; file_handle &gt; random_file(const path_handle &amp;dirpath, file_handle::mode _mode=file_handle::mode::write, file_handle::caching _caching=file_handle::caching::temporary, file_handle::flag flags=file_handle::flag::none) noexcept</div><div class="ttdef"><b>Definition:</b> file_handle.hpp:319</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a3cff8f3910dbf47663e5df1dc7e5ba47"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a3cff8f3910dbf47663e5df1dc7e5ba47">&#9670;&nbsp;</a></span>read() <span class="overload">[1/2]</span></h2>
+<h2 class="memtitle"><span class="permalink"><a href="#a3cff8f3910dbf47663e5df1dc7e5ba47">&#9670;&nbsp;</a></span>read() <span class="overload">[1/3]</span></h2>
<div class="memitem">
<div class="memproto">
@@ -1694,11 +2083,60 @@ For portability, you can only assume that barriers write order for a single hand
</dl>
<dl class="section user"><dt>Errors returnable</dt><dd>Any of the values POSIX read() can return, <code>errc::timed_out</code>, <code>errc::operation_canceled</code>. <code>errc::not_supported</code> may be returned if deadline i/o is not possible with this particular handle configuration (e.g. reading from regular files on POSIX or reading from a non-overlapped HANDLE on Windows). </dd></dl>
<dl class="section user"><dt>Memory Allocations</dt><dd>The default synchronous implementation in file_handle performs no memory allocation. The asynchronous implementation in async_file_handle performs one calloc and one free. </dd></dl>
-<div class="fragment"><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160;{</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; <span class="keywordflow">return</span> <span class="keyword">self</span>.read(std::forward&lt;decltype(reqs)&gt;(reqs), std::forward&lt;decltype(d)&gt;(d));</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160;}</div></div><!-- fragment -->
+<div class="fragment"><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160;{</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; <span class="keywordflow">return</span> <span class="keyword">self</span>.read(std::forward&lt;decltype(reqs)&gt;(reqs), std::forward&lt;decltype(d)&gt;(d));</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160;}</div></div><!-- fragment -->
+</div>
+</div>
+<a id="a45b09c42c9a14c6abb56888a2832ba69"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a45b09c42c9a14c6abb56888a2832ba69">&#9670;&nbsp;</a></span>read() <span class="overload">[2/3]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__result.html">io_handle::io_result</a>&lt;<a class="el" href="classafio__v2__xxx_1_1io__handle.html#a70a3c5e6f62efc95db81f831f3b90a2c">io_handle::buffers_type</a>&gt; afio_v2_xxx::read </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classafio__v2__xxx_1_1io__handle.html">io_handle</a> &amp;&#160;</td>
+ <td class="paramname"><em>self</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">io_handle::extent_type&#160;</td>
+ <td class="paramname"><em>offset</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">std::initializer_list&lt; <a class="el" href="structafio__v2__xxx_1_1io__handle_1_1buffer__type.html">io_handle::buffer_type</a> &gt;&#160;</td>
+ <td class="paramname"><em>lst</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a>&#160;</td>
+ <td class="paramname"><em>d</em> = <code><a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a>()</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
+ </tr>
+</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="l00479"></a><span class="lineno"> 479</span>&#160;{</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; <span class="keywordflow">return</span> <span class="keyword">self</span>.read(std::forward&lt;decltype(offset)&gt;(offset), std::forward&lt;decltype(lst)&gt;(lst), std::forward&lt;decltype(d)&gt;(d));</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160;}</div></div><!-- fragment -->
</div>
</div>
<a id="ac89289d85eff137c40d3d0084c410656"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ac89289d85eff137c40d3d0084c410656">&#9670;&nbsp;</a></span>read() <span class="overload">[2/2]</span></h2>
+<h2 class="memtitle"><span class="permalink"><a href="#ac89289d85eff137c40d3d0084c410656">&#9670;&nbsp;</a></span>read() <span class="overload">[3/3]</span></h2>
<div class="memitem">
<div class="memproto">
@@ -1750,11 +2188,11 @@ For portability, you can only assume that barriers write order for a single hand
</dl>
<dl class="section user"><dt>Errors returnable</dt><dd>None, though the various signals and structured exception throws common to using memory maps may occur. </dd></dl>
<dl class="section user"><dt>Memory Allocations</dt><dd>None. </dd></dl>
-<div class="fragment"><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160;{</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; <span class="keywordflow">return</span> <span class="keyword">self</span>.read(std::forward&lt;decltype(reqs)&gt;(reqs), std::forward&lt;decltype(d)&gt;(d));</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160;}</div></div><!-- fragment -->
+<div class="fragment"><div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160;{</div><div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160; <span class="keywordflow">return</span> <span class="keyword">self</span>.read(std::forward&lt;decltype(reqs)&gt;(reqs), std::forward&lt;decltype(d)&gt;(d));</div><div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160;}</div></div><!-- fragment -->
</div>
</div>
-<a id="a8d7c50561e9103968467c928f2e38f16"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a8d7c50561e9103968467c928f2e38f16">&#9670;&nbsp;</a></span>relink()</h2>
+<a id="aea0fac310f773ae58f672ec4b506887d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aea0fac310f773ae58f672ec4b506887d">&#9670;&nbsp;</a></span>relink()</h2>
<div class="memitem">
<div class="memproto">
@@ -1778,7 +2216,7 @@ For portability, you can only assume that barriers write order for a single hand
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classafio__v2__xxx_1_1fs__handle.html#ac25247b15af82faf1db557b3e45e13d7">fs_handle::path_view_type</a>&#160;</td>
- <td class="paramname"><em>newpath</em>, </td>
+ <td class="paramname"><em>path</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
@@ -1810,14 +2248,171 @@ For portability, you can only assume that barriers write order for a single hand
<table class="params">
<tr><td class="paramname">self</td><td>The object whose member function to call. </td></tr>
<tr><td class="paramname">base</td><td>Base for any relative path. </td></tr>
- <tr><td class="paramname">newpath</td><td>The relative or absolute new path to relink to. </td></tr>
+ <tr><td class="paramname">path</td><td>The relative or absolute new path to relink to. </td></tr>
<tr><td class="paramname">atomic_replace</td><td>Atomically replace the destination if a file entry already is present there. Choosing false for this will fail if a file entry is already present at the destination, and may not be an atomic operation on some platforms (i.e. both the old and new names may be linked to the same inode for a very short period of time). Windows and recent Linuxes are always atomic. </td></tr>
<tr><td class="paramname">d</td><td>The deadline by which the matching of the containing directory to the open handle's inode must succeed, else <code>std::errc::timed_out</code> will be returned. </td></tr>
</table>
</dd>
</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> and thus is both expensive and calls malloc many times. </dd></dl>
-<div class="fragment"><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;{</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keywordflow">return</span> <span class="keyword">self</span>.relink(std::forward&lt;decltype(base)&gt;(base), std::forward&lt;decltype(newpath)&gt;(newpath), std::forward&lt;decltype(atomic_replace)&gt;(atomic_replace), std::forward&lt;decltype(d)&gt;(d));</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;}</div></div><!-- fragment -->
+<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>
+<div class="fragment"><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;{</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keywordflow">return</span> <span class="keyword">self</span>.relink(std::forward&lt;decltype(base)&gt;(base), std::forward&lt;decltype(<a class="code" href="namespaceafio__v2__xxx.html#a7a98882ead35ebd6bd0700fdf571c44a">path</a>)&gt;(<a class="code" href="namespaceafio__v2__xxx.html#a7a98882ead35ebd6bd0700fdf571c44a">path</a>), std::forward&lt;decltype(atomic_replace)&gt;(atomic_replace), std::forward&lt;decltype(d)&gt;(d));</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;}</div><div class="ttc" id="namespaceafio__v2__xxx_html_a7a98882ead35ebd6bd0700fdf571c44a"><div class="ttname"><a href="namespaceafio__v2__xxx.html#a7a98882ead35ebd6bd0700fdf571c44a">afio_v2_xxx::path</a></div><div class="ttdeci">result&lt; path_handle &gt; path(const path_handle &amp;base, path_handle::path_view_type path) noexcept</div><div class="ttdef"><b>Definition:</b> path_handle.hpp:114</div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a id="a6282e66d9ade4fea8e0508cfb65ec9ec"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a6282e66d9ade4fea8e0508cfb65ec9ec">&#9670;&nbsp;</a></span>section() <span class="overload">[1/3]</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="classafio__v2__xxx_1_1section__handle.html">section_handle</a>&gt; afio_v2_xxx::section </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classafio__v2__xxx_1_1file__handle.html">file_handle</a> &amp;&#160;</td>
+ <td class="paramname"><em>backing</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">section_handle::extent_type&#160;</td>
+ <td class="paramname"><em>maximum_size</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">section_handle::flag&#160;</td>
+ <td class="paramname"><em>_flag</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Create a memory section backed by a file. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">backing</td><td>The handle to use as backing storage. </td></tr>
+ <tr><td class="paramname">maximum_size</td><td>The initial size of this section, which cannot be larger than any backing file. Zero means to use <code>backing.length()</code>. </td></tr>
+ <tr><td class="paramname">_flag</td><td>How to create the section.</td></tr>
+ </table>
+ </dd>
+</dl>
+<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="l00558"></a><span class="lineno"> 558</span>&#160;{</div><div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceafio__v2__xxx.html#a42622b31d96b1098e37d9c527abd097d">section_handle::section</a>(std::forward&lt;decltype(backing)&gt;(backing), std::forward&lt;decltype(maximum_size)&gt;(maximum_size), std::forward&lt;decltype(_flag)&gt;(_flag));</div><div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160;}</div><div class="ttc" id="namespaceafio__v2__xxx_html_a42622b31d96b1098e37d9c527abd097d"><div class="ttname"><a href="namespaceafio__v2__xxx.html#a42622b31d96b1098e37d9c527abd097d">afio_v2_xxx::section</a></div><div class="ttdeci">result&lt; section_handle &gt; section(section_handle::extent_type bytes, const path_handle &amp;dirh=path_discovery::storage_backed_temporary_files_directory(), section_handle::flag _flag=section_handle::flag::read|section_handle::flag::write) noexcept</div><div class="ttdoc">Create a memory section backed by an anonymous, managed file. </div><div class="ttdef"><b>Definition:</b> map_handle.hpp:580</div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a id="ae694d1c5ef24e2c6caa30b8d7ae6e12b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ae694d1c5ef24e2c6caa30b8d7ae6e12b">&#9670;&nbsp;</a></span>section() <span class="overload">[2/3]</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="classafio__v2__xxx_1_1section__handle.html">section_handle</a>&gt; afio_v2_xxx::section </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classafio__v2__xxx_1_1file__handle.html">file_handle</a> &amp;&#160;</td>
+ <td class="paramname"><em>backing</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">section_handle::extent_type&#160;</td>
+ <td class="paramname"><em>bytes</em> = <code>0</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Create a memory section backed by a file. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">backing</td><td>The handle to use as backing storage. </td></tr>
+ <tr><td class="paramname">bytes</td><td>The initial size of this section, which cannot be larger than any backing file. Zero means to use <code>backing.length()</code>.</td></tr>
+ </table>
+ </dd>
+</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="l00570"></a><span class="lineno"> 570</span>&#160;{</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceafio__v2__xxx.html#a42622b31d96b1098e37d9c527abd097d">section_handle::section</a>(std::forward&lt;decltype(backing)&gt;(backing), std::forward&lt;decltype(bytes)&gt;(bytes));</div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160;}</div><div class="ttc" id="namespaceafio__v2__xxx_html_a42622b31d96b1098e37d9c527abd097d"><div class="ttname"><a href="namespaceafio__v2__xxx.html#a42622b31d96b1098e37d9c527abd097d">afio_v2_xxx::section</a></div><div class="ttdeci">result&lt; section_handle &gt; section(section_handle::extent_type bytes, const path_handle &amp;dirh=path_discovery::storage_backed_temporary_files_directory(), section_handle::flag _flag=section_handle::flag::read|section_handle::flag::write) noexcept</div><div class="ttdoc">Create a memory section backed by an anonymous, managed file. </div><div class="ttdef"><b>Definition:</b> map_handle.hpp:580</div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a id="a42622b31d96b1098e37d9c527abd097d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a42622b31d96b1098e37d9c527abd097d">&#9670;&nbsp;</a></span>section() <span class="overload">[3/3]</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="classafio__v2__xxx_1_1section__handle.html">section_handle</a>&gt; afio_v2_xxx::section </td>
+ <td>(</td>
+ <td class="paramtype">section_handle::extent_type&#160;</td>
+ <td class="paramname"><em>bytes</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="classafio__v2__xxx_1_1path__handle.html">path_handle</a> &amp;&#160;</td>
+ <td class="paramname"><em>dirh</em> = <code><a class="el" href="namespaceafio__v2__xxx_1_1path__discovery.html#af398b6c3762f60aa96cebd270879093e">path_discovery::storage_backed_temporary_files_directory</a>()</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">section_handle::flag&#160;</td>
+ <td class="paramname"><em>_flag</em> = <code>section_handle::flag::read&#160;|&#160;section_handle::flag::write</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Create a memory section backed by an anonymous, managed file. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">bytes</td><td>The initial size of this section. Cannot be zero. </td></tr>
+ <tr><td class="paramname">dirh</td><td>Where to create the anonymous, managed file. </td></tr>
+ <tr><td class="paramname">_flag</td><td>How to create the section.</td></tr>
+ </table>
+ </dd>
+</dl>
+<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="l00581"></a><span class="lineno"> 581</span>&#160;{</div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceafio__v2__xxx.html#a42622b31d96b1098e37d9c527abd097d">section_handle::section</a>(std::forward&lt;decltype(bytes)&gt;(bytes), std::forward&lt;decltype(dirh)&gt;(dirh), std::forward&lt;decltype(_flag)&gt;(_flag));</div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160;}</div><div class="ttc" id="namespaceafio__v2__xxx_html_a42622b31d96b1098e37d9c527abd097d"><div class="ttname"><a href="namespaceafio__v2__xxx.html#a42622b31d96b1098e37d9c527abd097d">afio_v2_xxx::section</a></div><div class="ttdeci">result&lt; section_handle &gt; section(section_handle::extent_type bytes, const path_handle &amp;dirh=path_discovery::storage_backed_temporary_files_directory(), section_handle::flag _flag=section_handle::flag::read|section_handle::flag::write) noexcept</div><div class="ttdoc">Create a memory section backed by an anonymous, managed file. </div><div class="ttdef"><b>Definition:</b> map_handle.hpp:580</div></div>
+</div><!-- fragment -->
</div>
</div>
<a id="ac095df054e29fb086f9e7b96274c3c67"></a>
@@ -1873,7 +2468,7 @@ For portability, you can only assume that barriers write order for a single hand
</div><div class="memdoc">
<p>Create a directory handle creating the named directory on some path which the OS declares to be suitable for temporary files. Note also that an empty name is equivalent to calling <code>random_file(path_discovery::storage_backed_temporary_files_directory())</code> and the creation parameter is ignored.</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="l00350"></a><span class="lineno"> 350</span>&#160;{</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceafio__v2__xxx.html#ac095df054e29fb086f9e7b96274c3c67">directory_handle::temp_directory</a>(std::forward&lt;decltype(name)&gt;(name), std::forward&lt;decltype(_mode)&gt;(_mode), std::forward&lt;decltype(_creation)&gt;(_creation), std::forward&lt;decltype(_caching)&gt;(_caching), std::forward&lt;decltype(flags)&gt;(flags));</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160;}</div><div class="ttc" id="namespaceafio__v2__xxx_html_ac095df054e29fb086f9e7b96274c3c67"><div class="ttname"><a href="namespaceafio__v2__xxx.html#ac095df054e29fb086f9e7b96274c3c67">afio_v2_xxx::temp_directory</a></div><div class="ttdeci">result&lt; directory_handle &gt; temp_directory(directory_handle::path_view_type name=directory_handle::path_view_type(), directory_handle::mode _mode=directory_handle::mode::write, directory_handle::creation _creation=directory_handle::creation::if_needed, directory_handle::caching _caching=directory_handle::caching::all, directory_handle::flag flags=directory_handle::flag::none) noexcept</div><div class="ttdef"><b>Definition:</b> directory_handle.hpp:348</div></div>
+<div class="fragment"><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; <span class="keywordflow">return</span> <a class="code" href="namespaceafio__v2__xxx.html#ac095df054e29fb086f9e7b96274c3c67">directory_handle::temp_directory</a>(std::forward&lt;decltype(name)&gt;(name), std::forward&lt;decltype(_mode)&gt;(_mode), std::forward&lt;decltype(_creation)&gt;(_creation), std::forward&lt;decltype(_caching)&gt;(_caching), std::forward&lt;decltype(flags)&gt;(flags));</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160;}</div><div class="ttc" id="namespaceafio__v2__xxx_html_ac095df054e29fb086f9e7b96274c3c67"><div class="ttname"><a href="namespaceafio__v2__xxx.html#ac095df054e29fb086f9e7b96274c3c67">afio_v2_xxx::temp_directory</a></div><div class="ttdeci">result&lt; directory_handle &gt; temp_directory(directory_handle::path_view_type name=directory_handle::path_view_type(), directory_handle::mode _mode=directory_handle::mode::write, directory_handle::creation _creation=directory_handle::creation::if_needed, directory_handle::caching _caching=directory_handle::caching::all, directory_handle::flag flags=directory_handle::flag::none) noexcept</div><div class="ttdef"><b>Definition:</b> directory_handle.hpp:347</div></div>
</div><!-- fragment -->
</div>
</div>
@@ -1931,12 +2526,12 @@ For portability, you can only assume that barriers write order for a single hand
<p>Create a file handle creating the named file on some path which the OS declares to be suitable for temporary files. Most OSs are very lazy about flushing changes made to these temporary files. Note the default flags are to have the newly created file deleted on first handle close. Note also that an empty name is equivalent to calling <code>random_file(path_discovery::storage_backed_temporary_files_directory())</code> and the creation parameter is ignored.</p>
<dl class="section note"><dt>Note</dt><dd>If the temporary file you are creating is not going to have its path sent to another process for usage, this is the WRONG function to use. Use <code>temp_inode()</code> instead, it is far more secure.</dd></dl>
<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="l00341"></a><span class="lineno"> 341</span>&#160;{</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceafio__v2__xxx.html#aa14b24c8bc330dd8e472f42676ba03d6">file_handle::temp_file</a>(std::forward&lt;decltype(name)&gt;(name), std::forward&lt;decltype(_mode)&gt;(_mode), std::forward&lt;decltype(_creation)&gt;(_creation), std::forward&lt;decltype(_caching)&gt;(_caching), std::forward&lt;decltype(flags)&gt;(flags));</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160;}</div><div class="ttc" id="namespaceafio__v2__xxx_html_aa14b24c8bc330dd8e472f42676ba03d6"><div class="ttname"><a href="namespaceafio__v2__xxx.html#aa14b24c8bc330dd8e472f42676ba03d6">afio_v2_xxx::temp_file</a></div><div class="ttdeci">result&lt; file_handle &gt; temp_file(file_handle::path_view_type name=file_handle::path_view_type(), file_handle::mode _mode=file_handle::mode::write, file_handle::creation _creation=file_handle::creation::if_needed, file_handle::caching _caching=file_handle::caching::temporary, file_handle::flag flags=file_handle::flag::unlink_on_close) noexcept</div><div class="ttdef"><b>Definition:</b> file_handle.hpp:339</div></div>
+<div class="fragment"><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; <span class="keywordflow">return</span> <a class="code" href="namespaceafio__v2__xxx.html#aa14b24c8bc330dd8e472f42676ba03d6">file_handle::temp_file</a>(std::forward&lt;decltype(name)&gt;(name), std::forward&lt;decltype(_mode)&gt;(_mode), std::forward&lt;decltype(_creation)&gt;(_creation), std::forward&lt;decltype(_caching)&gt;(_caching), std::forward&lt;decltype(flags)&gt;(flags));</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160;}</div><div class="ttc" id="namespaceafio__v2__xxx_html_aa14b24c8bc330dd8e472f42676ba03d6"><div class="ttname"><a href="namespaceafio__v2__xxx.html#aa14b24c8bc330dd8e472f42676ba03d6">afio_v2_xxx::temp_file</a></div><div class="ttdeci">result&lt; file_handle &gt; temp_file(file_handle::path_view_type name=file_handle::path_view_type(), file_handle::mode _mode=file_handle::mode::write, file_handle::creation _creation=file_handle::creation::if_needed, file_handle::caching _caching=file_handle::caching::temporary, file_handle::flag flags=file_handle::flag::unlink_on_close) noexcept</div><div class="ttdef"><b>Definition:</b> file_handle.hpp:338</div></div>
</div><!-- fragment -->
</div>
</div>
-<a id="a2a2248a6545d55ee8f46628c8afb7946"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a2a2248a6545d55ee8f46628c8afb7946">&#9670;&nbsp;</a></span>temp_inode()</h2>
+<a id="aca98b0cb43a2d925bb65e055b07b4a08"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aca98b0cb43a2d925bb65e055b07b4a08">&#9670;&nbsp;</a></span>temp_inode()</h2>
<div class="memitem">
<div class="memproto">
@@ -1948,7 +2543,7 @@ For portability, you can only assume that barriers write order for a single hand
<td class="memname">result&lt;<a class="el" href="classafio__v2__xxx_1_1file__handle.html">file_handle</a>&gt; afio_v2_xxx::temp_inode </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classafio__v2__xxx_1_1path__handle.html">path_handle</a> &amp;&#160;</td>
- <td class="paramname"><em>dir</em> = <code><a class="el" href="namespaceafio__v2__xxx_1_1path__discovery.html#af398b6c3762f60aa96cebd270879093e">path_discovery::storage_backed_temporary_files_directory</a>()</code>, </td>
+ <td class="paramname"><em>dirh</em> = <code><a class="el" href="namespaceafio__v2__xxx_1_1path__discovery.html#af398b6c3762f60aa96cebd270879093e">path_discovery::storage_backed_temporary_files_directory</a>()</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
@@ -1976,12 +2571,12 @@ For portability, you can only assume that barriers write order for a single hand
</div><div class="memdoc">
<p><em>Securely</em> create a file handle creating a temporary anonymous inode in the filesystem referred to by <em>dirpath</em>. The inode created has no name nor accessible path on the filing system and ceases to exist as soon as the last handle is closed, making it ideal for use as a temporary file where other processes do not need to have access to its contents via some path on the filing system (a classic use case is for backing shared memory maps).</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="l00355"></a><span class="lineno"> 355</span>&#160;{</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceafio__v2__xxx.html#a2a2248a6545d55ee8f46628c8afb7946">file_handle::temp_inode</a>(std::forward&lt;decltype(dir)&gt;(dir), std::forward&lt;decltype(_mode)&gt;(_mode), std::forward&lt;decltype(flags)&gt;(flags));</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160;}</div><div class="ttc" id="namespaceafio__v2__xxx_html_a2a2248a6545d55ee8f46628c8afb7946"><div class="ttname"><a href="namespaceafio__v2__xxx.html#a2a2248a6545d55ee8f46628c8afb7946">afio_v2_xxx::temp_inode</a></div><div class="ttdeci">result&lt; file_handle &gt; temp_inode(const path_handle &amp;dir=path_discovery::storage_backed_temporary_files_directory(), file_handle::mode _mode=file_handle::mode::write, file_handle::flag flags=file_handle::flag::none) noexcept</div><div class="ttdef"><b>Definition:</b> file_handle.hpp:354</div></div>
+<div class="fragment"><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160;{</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceafio__v2__xxx.html#aca98b0cb43a2d925bb65e055b07b4a08">file_handle::temp_inode</a>(std::forward&lt;decltype(dirh)&gt;(dirh), std::forward&lt;decltype(_mode)&gt;(_mode), std::forward&lt;decltype(flags)&gt;(flags));</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160;}</div><div class="ttc" id="namespaceafio__v2__xxx_html_aca98b0cb43a2d925bb65e055b07b4a08"><div class="ttname"><a href="namespaceafio__v2__xxx.html#aca98b0cb43a2d925bb65e055b07b4a08">afio_v2_xxx::temp_inode</a></div><div class="ttdeci">result&lt; file_handle &gt; temp_inode(const path_handle &amp;dirh=path_discovery::storage_backed_temporary_files_directory(), file_handle::mode _mode=file_handle::mode::write, file_handle::flag flags=file_handle::flag::none) noexcept</div><div class="ttdef"><b>Definition:</b> file_handle.hpp:352</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a84d22c966fcabe50de30ad8cf26c7241"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a84d22c966fcabe50de30ad8cf26c7241">&#9670;&nbsp;</a></span>truncate() <span class="overload">[1/2]</span></h2>
+<h2 class="memtitle"><span class="permalink"><a href="#a84d22c966fcabe50de30ad8cf26c7241">&#9670;&nbsp;</a></span>truncate() <span class="overload">[1/3]</span></h2>
<div class="memitem">
<div class="memproto">
@@ -2023,11 +2618,11 @@ For portability, you can only assume that barriers write order for a single hand
</dd>
</dl>
<dl class="section user"><dt>Errors returnable</dt><dd>Any of the values POSIX ftruncate() or SetFileInformationByHandle() can return. </dd></dl>
-<div class="fragment"><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="keywordflow">return</span> <span class="keyword">self</span>.truncate(std::forward&lt;decltype(newsize)&gt;(newsize));</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160;}</div></div><!-- fragment -->
+<div class="fragment"><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; <span class="keywordflow">return</span> <span class="keyword">self</span>.truncate(std::forward&lt;decltype(newsize)&gt;(newsize));</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160;}</div></div><!-- fragment -->
</div>
</div>
<a id="a6164dd52993407a203124b0761cc3bbc"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a6164dd52993407a203124b0761cc3bbc">&#9670;&nbsp;</a></span>truncate() <span class="overload">[2/2]</span></h2>
+<h2 class="memtitle"><span class="permalink"><a href="#a6164dd52993407a203124b0761cc3bbc">&#9670;&nbsp;</a></span>truncate() <span class="overload">[2/3]</span></h2>
<div class="memitem">
<div class="memproto">
@@ -2062,12 +2657,68 @@ For portability, you can only assume that barriers write order for a single hand
<p>Resize the current maximum permitted extent of the memory section to the given extent. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">self</td><td>The object whose member function to call. </td></tr>
- <tr><td class="paramname">newsize</td><td>The new size of the memory section. Specify zero to use <code>backing.length()</code>. This cannot exceed the size of any backing file used.</td></tr>
+ <tr><td class="paramname">newsize</td><td>The new size of the memory section, which cannot be zero. Specify zero to use <code>backing.length()</code>. This cannot exceed the size of any backing file used if that file is not writable.</td></tr>
</table>
</dd>
</dl>
-<dl class="section user"><dt>Errors returnable</dt><dd>Any of the values NtExtendSection() can return. On POSIX this is a no op. </dd></dl>
-<div class="fragment"><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160;{</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; <span class="keywordflow">return</span> <span class="keyword">self</span>.truncate(std::forward&lt;decltype(newsize)&gt;(newsize));</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160;}</div></div><!-- fragment -->
+<dl class="section user"><dt>Errors returnable</dt><dd>Any of the values <code>NtExtendSection()</code> or <code>ftruncate()</code> can return. </dd></dl>
+<div class="fragment"><div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160;{</div><div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160; <span class="keywordflow">return</span> <span class="keyword">self</span>.truncate(std::forward&lt;decltype(newsize)&gt;(newsize));</div><div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160;}</div></div><!-- fragment -->
+</div>
+</div>
+<a id="a7da47c9f5665b4c9b1c44c035bf2571c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a7da47c9f5665b4c9b1c44c035bf2571c">&#9670;&nbsp;</a></span>truncate() <span class="overload">[3/3]</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;map_handle::size_type&gt; afio_v2_xxx::truncate </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classafio__v2__xxx_1_1map__handle.html">map_handle</a> &amp;&#160;</td>
+ <td class="paramname"><em>self</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">map_handle::size_type&#160;</td>
+ <td class="paramname"><em>newsize</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">bool&#160;</td>
+ <td class="paramname"><em>permit_relocation</em> = <code>false</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<p>Resize the reservation of the memory map without changing the address (unless the map was zero sized, in which case a new address will be chosen).</p>
+<p>If shrinking, address space is released on POSIX, and on Windows if the new size is zero. If the new size is zero, the address is set to null to prevent surprises. Windows does not support modifying existing mapped regions, so if the new size is not zero, the call will probably fail. Windows should let you truncate a previous extension however, if it is exact.</p>
+<p>If expanding, an attempt is made to map in new reservation immediately after the current address reservation, thus extending the reservation. If anything else is mapped in after the current reservation, the function fails.</p>
+<dl class="section note"><dt>Note</dt><dd>On all supported platforms apart from OS X, proprietary flags exist to avoid performing a map if a map extension cannot be immediately placed after the current map. On OS X, we hint where we'd like the new map to go, but if something is already there OS X will place the map elsewhere. In this situation, we delete the new map and return failure, which is inefficient, but there is nothing else we can do.</dd></dl>
+<dl class="section return"><dt>Returns</dt><dd>The bytes actually reserved. </dd></dl>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">self</td><td>The object whose member function to call. </td></tr>
+ <tr><td class="paramname">newsize</td><td>The bytes to truncate the map reservation to. Rounded up to the nearest page size (POSIX) or 64Kb on Windows. </td></tr>
+ <tr><td class="paramname">permit_relocation</td><td>Permit the address to change (some OSs provide a syscall for resizing a memory map). </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section user"><dt>Errors returnable</dt><dd>Any of the values POSIX <code>mremap()</code>, <code>mmap(addr)</code> or <code>VirtualAlloc(addr)</code> can return. </dd></dl>
+<div class="fragment"><div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160;{</div><div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160; <span class="keywordflow">return</span> <span class="keyword">self</span>.truncate(std::forward&lt;decltype(newsize)&gt;(newsize), std::forward&lt;decltype(permit_relocation)&gt;(permit_relocation));</div><div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160;}</div></div><!-- fragment -->
</div>
</div>
<a id="abefe1503efb01ea89200b829bcd87713"></a>
@@ -2117,7 +2768,7 @@ For portability, you can only assume that barriers write order for a single hand
</div>
</div>
<a id="a2d15768d28ea660ebe44901508ed3372"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a2d15768d28ea660ebe44901508ed3372">&#9670;&nbsp;</a></span>write() <span class="overload">[1/2]</span></h2>
+<h2 class="memtitle"><span class="permalink"><a href="#a2d15768d28ea660ebe44901508ed3372">&#9670;&nbsp;</a></span>write() <span class="overload">[1/3]</span></h2>
<div class="memitem">
<div class="memproto">
@@ -2169,11 +2820,60 @@ For portability, you can only assume that barriers write order for a single hand
</dl>
<dl class="section user"><dt>Errors returnable</dt><dd>Any of the values POSIX write() can return, <code>errc::timed_out</code>, <code>errc::operation_canceled</code>. <code>errc::not_supported</code> may be returned if deadline i/o is not possible with this particular handle configuration (e.g. writing to regular files on POSIX or writing to a non-overlapped HANDLE on Windows). </dd></dl>
<dl class="section user"><dt>Memory Allocations</dt><dd>The default synchronous implementation in file_handle performs no memory allocation. The asynchronous implementation in async_file_handle performs one calloc and one free. </dd></dl>
-<div class="fragment"><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160;{</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; <span class="keywordflow">return</span> <span class="keyword">self</span>.write(std::forward&lt;decltype(reqs)&gt;(reqs), std::forward&lt;decltype(d)&gt;(d));</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160;}</div></div><!-- fragment -->
+<div class="fragment"><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160;{</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; <span class="keywordflow">return</span> <span class="keyword">self</span>.write(std::forward&lt;decltype(reqs)&gt;(reqs), std::forward&lt;decltype(d)&gt;(d));</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160;}</div></div><!-- fragment -->
+</div>
+</div>
+<a id="a53f3d40c5752d0dbeaa9b8233bff976f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a53f3d40c5752d0dbeaa9b8233bff976f">&#9670;&nbsp;</a></span>write() <span class="overload">[2/3]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="structafio__v2__xxx_1_1io__handle_1_1io__result.html">io_handle::io_result</a>&lt;<a class="el" href="classafio__v2__xxx_1_1io__handle.html#a639b8760b1b98df95e4956f6cc56f6b5">io_handle::const_buffers_type</a>&gt; afio_v2_xxx::write </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classafio__v2__xxx_1_1io__handle.html">io_handle</a> &amp;&#160;</td>
+ <td class="paramname"><em>self</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">io_handle::extent_type&#160;</td>
+ <td class="paramname"><em>offset</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">std::initializer_list&lt; <a class="el" href="structafio__v2__xxx_1_1io__handle_1_1const__buffer__type.html">io_handle::const_buffer_type</a> &gt;&#160;</td>
+ <td class="paramname"><em>lst</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a>&#160;</td>
+ <td class="paramname"><em>d</em> = <code><a class="el" href="structafio__v2__xxx_1_1deadline.html">deadline</a>()</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
+ </tr>
+</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="l00510"></a><span class="lineno"> 510</span>&#160;{</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; <span class="keywordflow">return</span> <span class="keyword">self</span>.write(std::forward&lt;decltype(offset)&gt;(offset), std::forward&lt;decltype(lst)&gt;(lst), std::forward&lt;decltype(d)&gt;(d));</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160;}</div></div><!-- fragment -->
</div>
</div>
<a id="a5bfae365a1845c1bde4739de38c3653f"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a5bfae365a1845c1bde4739de38c3653f">&#9670;&nbsp;</a></span>write() <span class="overload">[2/2]</span></h2>
+<h2 class="memtitle"><span class="permalink"><a href="#a5bfae365a1845c1bde4739de38c3653f">&#9670;&nbsp;</a></span>write() <span class="overload">[3/3]</span></h2>
<div class="memitem">
<div class="memproto">
@@ -2224,7 +2924,7 @@ For portability, you can only assume that barriers write order for a single hand
</dl>
<dl class="section user"><dt>Errors returnable</dt><dd>None, though the various signals and structured exception throws common to using memory maps may occur. </dd></dl>
<dl class="section user"><dt>Memory Allocations</dt><dd>None. </dd></dl>
-<div class="fragment"><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160;{</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; <span class="keywordflow">return</span> <span class="keyword">self</span>.write(std::forward&lt;decltype(reqs)&gt;(reqs), std::forward&lt;decltype(d)&gt;(d));</div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160;}</div></div><!-- fragment -->
+<div class="fragment"><div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160;{</div><div class="line"><a name="l00719"></a><span class="lineno"> 719</span>&#160; <span class="keywordflow">return</span> <span class="keyword">self</span>.write(std::forward&lt;decltype(reqs)&gt;(reqs), std::forward&lt;decltype(d)&gt;(d));</div><div class="line"><a name="l00720"></a><span class="lineno"> 720</span>&#160;}</div></div><!-- fragment -->
</div>
</div>
<a id="ae412aa7c9e37601d1814e75d09795185"></a>
@@ -2287,7 +2987,7 @@ For portability, you can only assume that barriers write order for a single hand
</dl>
<dl class="section user"><dt>Errors returnable</dt><dd>Any of the values POSIX write() can return, <code>errc::timed_out</code>, <code>errc::operation_canceled</code>. <code>errc::not_supported</code> may be returned if deadline i/o is not possible with this particular handle configuration (e.g. writing to regular files on POSIX or writing to a non-overlapped HANDLE on Windows). </dd></dl>
<dl class="section user"><dt>Memory Allocations</dt><dd>The default synchronous implementation in file_handle performs no memory allocation. The asynchronous implementation in async_file_handle may perform one calloc and one free. </dd></dl>
-<div class="fragment"><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160;{</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; <span class="keywordflow">return</span> <span class="keyword">self</span>.zero(std::forward&lt;decltype(offset)&gt;(offset), std::forward&lt;decltype(bytes)&gt;(bytes), std::forward&lt;decltype(d)&gt;(d));</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160;}</div></div><!-- fragment -->
+<div class="fragment"><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160;{</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; <span class="keywordflow">return</span> <span class="keyword">self</span>.zero(std::forward&lt;decltype(offset)&gt;(offset), std::forward&lt;decltype(bytes)&gt;(bytes), std::forward&lt;decltype(d)&gt;(d));</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160;}</div></div><!-- fragment -->
</div>
</div>
</div><!-- contents -->
diff --git a/namespaceafio__v2__xxx_1_1algorithm.html b/namespaceafio__v2__xxx_1_1algorithm.html
index 985db694..77411c2b 100644
--- a/namespaceafio__v2__xxx_1_1algorithm.html
+++ b/namespaceafio__v2__xxx_1_1algorithm.html
@@ -106,8 +106,8 @@ Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1algorithm_1_1cached__parent__handle__adapter.html">cached_parent_handle_adapter</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adapts any <code>construct()</code>-able implementation to cache its parent directory handle in a process wide cache. <a href="classafio__v2__xxx_1_1algorithm_1_1cached__parent__handle__adapter.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__view.html">mapped_view</a></td></tr>
-<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides a typed mapped view of a <code>section_handle</code> suitable for feeding to STL algorithms or the Ranges TS by wrapping a <code>map_handle</code> into a <code>span&lt;T&gt;</code>. <a href="classafio__v2__xxx_1_1algorithm_1_1mapped__view.html#details">More...</a><br /></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1algorithm_1_1mapped__span.html">mapped_span</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides a typed mapped view of a <code>section_handle</code> suitable for feeding to STL algorithms or the Ranges TS by wrapping a <code>map_handle</code> into a <code>span&lt;T&gt;</code>. <a href="classafio__v2__xxx_1_1algorithm_1_1mapped__span.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classafio__v2__xxx_1_1algorithm_1_1trivial__vector.html">trivial_vector</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides a constant time capacity expanding move-only STL vector. Requires <code>T</code> to be trivially copyable. <a href="classafio__v2__xxx_1_1algorithm_1_1trivial__vector.html#details">More...</a><br /></td></tr>
diff --git a/namespaceafio__v2__xxx_1_1algorithm.js b/namespaceafio__v2__xxx_1_1algorithm.js
index 6f780b13..0f1c2d86 100644
--- a/namespaceafio__v2__xxx_1_1algorithm.js
+++ b/namespaceafio__v2__xxx_1_1algorithm.js
@@ -3,6 +3,6 @@ var namespaceafio__v2__xxx_1_1algorithm =
[ "impl", "namespaceafio__v2__xxx_1_1algorithm_1_1impl.html", "namespaceafio__v2__xxx_1_1algorithm_1_1impl" ],
[ "shared_fs_mutex", "namespaceafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex.html", "namespaceafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex" ],
[ "cached_parent_handle_adapter", "classafio__v2__xxx_1_1algorithm_1_1cached__parent__handle__adapter.html", "classafio__v2__xxx_1_1algorithm_1_1cached__parent__handle__adapter" ],
- [ "mapped_view", "classafio__v2__xxx_1_1algorithm_1_1mapped__view.html", "classafio__v2__xxx_1_1algorithm_1_1mapped__view" ],
+ [ "mapped_span", "classafio__v2__xxx_1_1algorithm_1_1mapped__span.html", "classafio__v2__xxx_1_1algorithm_1_1mapped__span" ],
[ "trivial_vector", "classafio__v2__xxx_1_1algorithm_1_1trivial__vector.html", "classafio__v2__xxx_1_1algorithm_1_1trivial__vector" ]
]; \ No newline at end of file
diff --git a/namespacemembers.html b/namespacemembers.html
index 4b2c5d65..707b5e7c 100644
--- a/namespacemembers.html
+++ b/namespacemembers.html
@@ -86,18 +86,27 @@ $(document).ready(function(){initNavTree('namespacemembers.html','');});
<li>all_temporary_directories()
: <a class="el" href="namespaceafio__v2__xxx_1_1path__discovery.html#a6b96e1ce0cebf33600e3f619ef355c7c">afio_v2_xxx::path_discovery</a>
</li>
+<li>async_barrier()
+: <a class="el" href="namespaceafio__v2__xxx.html#a4c35fd205301d7fdd3ebb503f2d154fc">afio_v2_xxx</a>
+</li>
<li>async_file()
: <a class="el" href="namespaceafio__v2__xxx.html#a5b0168993998aafc342233aa782040a6">afio_v2_xxx</a>
</li>
<li>async_random_file()
: <a class="el" href="namespaceafio__v2__xxx.html#a40cd3a25b8d4a293a8864fe6eb585034">afio_v2_xxx</a>
</li>
+<li>async_read()
+: <a class="el" href="namespaceafio__v2__xxx.html#a0891bedb63147526aba998b0a2f18132">afio_v2_xxx</a>
+</li>
<li>async_temp_file()
: <a class="el" href="namespaceafio__v2__xxx.html#a0b751376f48a4fd14cb90cce03b2b491">afio_v2_xxx</a>
</li>
<li>async_temp_inode()
: <a class="el" href="namespaceafio__v2__xxx.html#a5eb846433fec3c9c80336ff686c2527e">afio_v2_xxx</a>
</li>
+<li>async_write()
+: <a class="el" href="namespaceafio__v2__xxx.html#aded93df5ea7777b501811ec593ed5b55">afio_v2_xxx</a>
+</li>
</ul>
@@ -116,10 +125,10 @@ $(document).ready(function(){initNavTree('namespacemembers.html','');});
: <a class="el" href="namespaceafio__v2__xxx.html#aa7f2ca17db2468dbd5407e2f35870077">afio_v2_xxx</a>
</li>
<li>co_read()
-: <a class="el" href="namespaceafio__v2__xxx.html#a37590ba383783ccfca30404318eb1114">afio_v2_xxx</a>
+: <a class="el" href="namespaceafio__v2__xxx.html#ac6be3e0ba22cceed22dbe455c91219dd">afio_v2_xxx</a>
</li>
<li>co_write()
-: <a class="el" href="namespaceafio__v2__xxx.html#acd740f5aef6ca339575e7497fa873d06">afio_v2_xxx</a>
+: <a class="el" href="namespaceafio__v2__xxx.html#a6e6ab37dfca4a975e6d04696948c0728">afio_v2_xxx</a>
</li>
</ul>
@@ -129,7 +138,7 @@ $(document).ready(function(){initNavTree('namespacemembers.html','');});
: <a class="el" href="namespaceafio__v2__xxx_1_1storage__profile.html#a2ad39b78e400cf1ab64579129522d4ac">afio_v2_xxx::storage_profile</a>
</li>
<li>directory()
-: <a class="el" href="namespaceafio__v2__xxx.html#affce2389376e27ffa0565890034d209f">afio_v2_xxx</a>
+: <a class="el" href="namespaceafio__v2__xxx.html#a83828cb013df9d77b08ec0ac59037c85">afio_v2_xxx</a>
</li>
<li>drop_filesystem_cache()
: <a class="el" href="namespaceafio__v2__xxx_1_1utils.html#a34fff580f0b7e7bea5509e5294f5d71e">afio_v2_xxx::utils</a>
@@ -149,7 +158,7 @@ $(document).ready(function(){initNavTree('namespacemembers.html','');});
<h3><a id="index_f"></a>- f -</h3><ul>
<li>file()
-: <a class="el" href="namespaceafio__v2__xxx.html#a84b5a9fc93107c673160b41fff151938">afio_v2_xxx</a>
+: <a class="el" href="namespaceafio__v2__xxx.html#ab92ca63383ef7fe58af4620570d12803">afio_v2_xxx</a>
</li>
<li>file_buffer_default_size()
: <a class="el" href="namespaceafio__v2__xxx_1_1utils.html#ace050f445d1d1fdd4b2a6f99d9be7f85">afio_v2_xxx::utils</a>
@@ -234,7 +243,7 @@ $(document).ready(function(){initNavTree('namespacemembers.html','');});
: <a class="el" href="namespaceafio__v2__xxx_1_1utils.html#aadc7dd505730e2701313be55519c9958">afio_v2_xxx::utils</a>
</li>
<li>path()
-: <a class="el" href="namespaceafio__v2__xxx.html#a7432c582b3af692a1f94be33aa73a00e">afio_v2_xxx</a>
+: <a class="el" href="namespaceafio__v2__xxx.html#a7a98882ead35ebd6bd0700fdf571c44a">afio_v2_xxx</a>
</li>
</ul>
@@ -256,7 +265,7 @@ $(document).ready(function(){initNavTree('namespacemembers.html','');});
: <a class="el" href="namespaceafio__v2__xxx.html#a3cff8f3910dbf47663e5df1dc7e5ba47">afio_v2_xxx</a>
</li>
<li>relink()
-: <a class="el" href="namespaceafio__v2__xxx.html#a8d7c50561e9103968467c928f2e38f16">afio_v2_xxx</a>
+: <a class="el" href="namespaceafio__v2__xxx.html#aea0fac310f773ae58f672ec4b506887d">afio_v2_xxx</a>
</li>
<li>round_down_to_page_size()
: <a class="el" href="namespaceafio__v2__xxx_1_1utils.html#a7e0604f2e7f98b94ddb09989184968f5">afio_v2_xxx::utils</a>
@@ -271,6 +280,9 @@ $(document).ready(function(){initNavTree('namespacemembers.html','');});
<h3><a id="index_s"></a>- s -</h3><ul>
+<li>section()
+: <a class="el" href="namespaceafio__v2__xxx.html#a6282e66d9ade4fea8e0508cfb65ec9ec">afio_v2_xxx</a>
+</li>
<li>storage_backed_temporary_files_directory()
: <a class="el" href="namespaceafio__v2__xxx_1_1path__discovery.html#af398b6c3762f60aa96cebd270879093e">afio_v2_xxx::path_discovery</a>
</li>
@@ -279,7 +291,7 @@ $(document).ready(function(){initNavTree('namespacemembers.html','');});
</li>
<li>swap()
: <a class="el" href="namespaceafio__v2__xxx_1_1algorithm.html#ac14fcd6542bf058d4c69fd2b4bf07a41">afio_v2_xxx::algorithm</a>
-, <a class="el" href="namespaceafio__v2__xxx.html#a4760df03b34efbb11c254b30eb6756f7">afio_v2_xxx</a>
+, <a class="el" href="namespaceafio__v2__xxx.html#a3ece430e8478fc6909cd7ec2fc0082b3">afio_v2_xxx</a>
</li>
</ul>
@@ -292,7 +304,7 @@ $(document).ready(function(){initNavTree('namespacemembers.html','');});
: <a class="el" href="namespaceafio__v2__xxx.html#aa14b24c8bc330dd8e472f42676ba03d6">afio_v2_xxx</a>
</li>
<li>temp_inode()
-: <a class="el" href="namespaceafio__v2__xxx.html#a2a2248a6545d55ee8f46628c8afb7946">afio_v2_xxx</a>
+: <a class="el" href="namespaceafio__v2__xxx.html#aca98b0cb43a2d925bb65e055b07b4a08">afio_v2_xxx</a>
</li>
<li>truncate()
: <a class="el" href="namespaceafio__v2__xxx.html#a84d22c966fcabe50de30ad8cf26c7241">afio_v2_xxx</a>
diff --git a/namespacemembers_func.html b/namespacemembers_func.html
index 98a971b6..a02c13db 100644
--- a/namespacemembers_func.html
+++ b/namespacemembers_func.html
@@ -86,18 +86,27 @@ $(document).ready(function(){initNavTree('namespacemembers_func.html','');});
<li>all_temporary_directories()
: <a class="el" href="namespaceafio__v2__xxx_1_1path__discovery.html#a6b96e1ce0cebf33600e3f619ef355c7c">afio_v2_xxx::path_discovery</a>
</li>
+<li>async_barrier()
+: <a class="el" href="namespaceafio__v2__xxx.html#a4c35fd205301d7fdd3ebb503f2d154fc">afio_v2_xxx</a>
+</li>
<li>async_file()
: <a class="el" href="namespaceafio__v2__xxx.html#a5b0168993998aafc342233aa782040a6">afio_v2_xxx</a>
</li>
<li>async_random_file()
: <a class="el" href="namespaceafio__v2__xxx.html#a40cd3a25b8d4a293a8864fe6eb585034">afio_v2_xxx</a>
</li>
+<li>async_read()
+: <a class="el" href="namespaceafio__v2__xxx.html#a0891bedb63147526aba998b0a2f18132">afio_v2_xxx</a>
+</li>
<li>async_temp_file()
: <a class="el" href="namespaceafio__v2__xxx.html#a0b751376f48a4fd14cb90cce03b2b491">afio_v2_xxx</a>
</li>
<li>async_temp_inode()
: <a class="el" href="namespaceafio__v2__xxx.html#a5eb846433fec3c9c80336ff686c2527e">afio_v2_xxx</a>
</li>
+<li>async_write()
+: <a class="el" href="namespaceafio__v2__xxx.html#aded93df5ea7777b501811ec593ed5b55">afio_v2_xxx</a>
+</li>
</ul>
@@ -116,10 +125,10 @@ $(document).ready(function(){initNavTree('namespacemembers_func.html','');});
: <a class="el" href="namespaceafio__v2__xxx.html#aa7f2ca17db2468dbd5407e2f35870077">afio_v2_xxx</a>
</li>
<li>co_read()
-: <a class="el" href="namespaceafio__v2__xxx.html#a37590ba383783ccfca30404318eb1114">afio_v2_xxx</a>
+: <a class="el" href="namespaceafio__v2__xxx.html#ac6be3e0ba22cceed22dbe455c91219dd">afio_v2_xxx</a>
</li>
<li>co_write()
-: <a class="el" href="namespaceafio__v2__xxx.html#acd740f5aef6ca339575e7497fa873d06">afio_v2_xxx</a>
+: <a class="el" href="namespaceafio__v2__xxx.html#a6e6ab37dfca4a975e6d04696948c0728">afio_v2_xxx</a>
</li>
</ul>
@@ -129,7 +138,7 @@ $(document).ready(function(){initNavTree('namespacemembers_func.html','');});
: <a class="el" href="namespaceafio__v2__xxx_1_1storage__profile.html#a2ad39b78e400cf1ab64579129522d4ac">afio_v2_xxx::storage_profile</a>
</li>
<li>directory()
-: <a class="el" href="namespaceafio__v2__xxx.html#affce2389376e27ffa0565890034d209f">afio_v2_xxx</a>
+: <a class="el" href="namespaceafio__v2__xxx.html#a83828cb013df9d77b08ec0ac59037c85">afio_v2_xxx</a>
</li>
<li>drop_filesystem_cache()
: <a class="el" href="namespaceafio__v2__xxx_1_1utils.html#a34fff580f0b7e7bea5509e5294f5d71e">afio_v2_xxx::utils</a>
@@ -149,7 +158,7 @@ $(document).ready(function(){initNavTree('namespacemembers_func.html','');});
<h3><a id="index_f"></a>- f -</h3><ul>
<li>file()
-: <a class="el" href="namespaceafio__v2__xxx.html#a84b5a9fc93107c673160b41fff151938">afio_v2_xxx</a>
+: <a class="el" href="namespaceafio__v2__xxx.html#ab92ca63383ef7fe58af4620570d12803">afio_v2_xxx</a>
</li>
<li>file_buffer_default_size()
: <a class="el" href="namespaceafio__v2__xxx_1_1utils.html#ace050f445d1d1fdd4b2a6f99d9be7f85">afio_v2_xxx::utils</a>
@@ -231,7 +240,7 @@ $(document).ready(function(){initNavTree('namespacemembers_func.html','');});
: <a class="el" href="namespaceafio__v2__xxx_1_1utils.html#aadc7dd505730e2701313be55519c9958">afio_v2_xxx::utils</a>
</li>
<li>path()
-: <a class="el" href="namespaceafio__v2__xxx.html#a7432c582b3af692a1f94be33aa73a00e">afio_v2_xxx</a>
+: <a class="el" href="namespaceafio__v2__xxx.html#a7a98882ead35ebd6bd0700fdf571c44a">afio_v2_xxx</a>
</li>
</ul>
@@ -253,7 +262,7 @@ $(document).ready(function(){initNavTree('namespacemembers_func.html','');});
: <a class="el" href="namespaceafio__v2__xxx.html#a3cff8f3910dbf47663e5df1dc7e5ba47">afio_v2_xxx</a>
</li>
<li>relink()
-: <a class="el" href="namespaceafio__v2__xxx.html#a8d7c50561e9103968467c928f2e38f16">afio_v2_xxx</a>
+: <a class="el" href="namespaceafio__v2__xxx.html#aea0fac310f773ae58f672ec4b506887d">afio_v2_xxx</a>
</li>
<li>round_down_to_page_size()
: <a class="el" href="namespaceafio__v2__xxx_1_1utils.html#a7e0604f2e7f98b94ddb09989184968f5">afio_v2_xxx::utils</a>
@@ -268,12 +277,15 @@ $(document).ready(function(){initNavTree('namespacemembers_func.html','');});
<h3><a id="index_s"></a>- s -</h3><ul>
+<li>section()
+: <a class="el" href="namespaceafio__v2__xxx.html#a6282e66d9ade4fea8e0508cfb65ec9ec">afio_v2_xxx</a>
+</li>
<li>storage_backed_temporary_files_directory()
: <a class="el" href="namespaceafio__v2__xxx_1_1path__discovery.html#af398b6c3762f60aa96cebd270879093e">afio_v2_xxx::path_discovery</a>
</li>
<li>swap()
: <a class="el" href="namespaceafio__v2__xxx_1_1algorithm.html#ac14fcd6542bf058d4c69fd2b4bf07a41">afio_v2_xxx::algorithm</a>
-, <a class="el" href="namespaceafio__v2__xxx.html#aab2c5252a292132ac51a092ab6560b39">afio_v2_xxx</a>
+, <a class="el" href="namespaceafio__v2__xxx.html#a579d619e4d73e584fdd41e34761afa67">afio_v2_xxx</a>
</li>
</ul>
@@ -286,7 +298,7 @@ $(document).ready(function(){initNavTree('namespacemembers_func.html','');});
: <a class="el" href="namespaceafio__v2__xxx.html#aa14b24c8bc330dd8e472f42676ba03d6">afio_v2_xxx</a>
</li>
<li>temp_inode()
-: <a class="el" href="namespaceafio__v2__xxx.html#a2a2248a6545d55ee8f46628c8afb7946">afio_v2_xxx</a>
+: <a class="el" href="namespaceafio__v2__xxx.html#aca98b0cb43a2d925bb65e055b07b4a08">afio_v2_xxx</a>
</li>
<li>truncate()
: <a class="el" href="namespaceafio__v2__xxx.html#a84d22c966fcabe50de30ad8cf26c7241">afio_v2_xxx</a>
diff --git a/navtreedata.js b/navtreedata.js
index 8937c350..b9e3e29c 100644
--- a/navtreedata.js
+++ b/navtreedata.js
@@ -39,13 +39,14 @@ var NAVTREE =
var NAVTREEINDEX =
[
"afio_8hpp.html",
-"classafio__v2__xxx_1_1algorithm_1_1trivial__vector.html#a9cb175f8b03635cc4fc3ccf220adbe61",
-"classafio__v2__xxx_1_1file__handle.html#abf1012040064a3d429adfae8e6f443f0",
-"classafio__v2__xxx_1_1map__handle.html#a875440f1b368472f1840c70c266f3a48",
-"classafio__v2__xxx_1_1section__handle.html#a3c777f045dc2b0248b891d6e7811d152",
-"io__handle_8hpp.html#abb60a5dc89b41b1db101dbed12cb065d",
-"structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl_3_01true_00_01_t_01_4.html#af90de4788d25ff0f8e2a683bdab2f21e",
-"structafio__v2__xxx_1_1stat__t_1_1want__base.html#a5c889dae7c6113ee9da35a669447145ea540635968001a914982cb9b9bed093a1"
+"classafio__v2__xxx_1_1algorithm_1_1trivial__vector.html#a83a15aa2a15fe2231ee7c5691f9cc6e7",
+"classafio__v2__xxx_1_1file__handle.html#aa53d88105df8c6be01be649829a65b14",
+"classafio__v2__xxx_1_1map__handle.html#a5be9a526bc5c1be758b0cfc36a262f6e",
+"classafio__v2__xxx_1_1section__handle.html#a0489b6c1e25cd2bad2ba1ec86e1aaf18a8d7b3d6b83c0a517eac07e1aac94b773",
+"group__config.html#gafab2566c573eef8945053c8d57976764",
+"structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl_3_01true_00_01_t_01_4.html#a8daf059785543d0e281a4e3fe3903dcd",
+"structafio__v2__xxx_1_1stat__t.html#a998eb1b348255bdcfa25e2f99064e5e5",
+"v2_80_2afio_8hpp.html#acb966611a7fc2153e23e4b76849da786"
];
var SYNCONMSG = 'click to disable panel synchronisation';
diff --git a/navtreeindex0.js b/navtreeindex0.js
index b106a3b8..06abf9fc 100644
--- a/navtreeindex0.js
+++ b/navtreeindex0.js
@@ -7,16 +7,21 @@ var NAVTREEINDEX0 =
"afio_8hpp.html#ae2ffb6987f35d40421f7f0912addb300":[4,0,0,0,1,2],
"annotated.html":[3,0],
"async__file__handle_8hpp.html":[4,0,0,0,0,2],
-"async__file__handle_8hpp.html#a0b751376f48a4fd14cb90cce03b2b491":[4,0,0,0,0,2,8],
-"async__file__handle_8hpp.html#a0ff925d5c5434bcec35b2167d87d5c55":[4,0,0,0,0,2,10],
+"async__file__handle_8hpp.html#a0891bedb63147526aba998b0a2f18132":[4,0,0,0,0,2,9],
+"async__file__handle_8hpp.html#a0b751376f48a4fd14cb90cce03b2b491":[4,0,0,0,0,2,10],
+"async__file__handle_8hpp.html#a0ff925d5c5434bcec35b2167d87d5c55":[4,0,0,0,0,2,13],
"async__file__handle_8hpp.html#a1dc6d0f4535e760af697884e2e809595":[4,0,0,0,0,2,4],
-"async__file__handle_8hpp.html#a37590ba383783ccfca30404318eb1114":[4,0,0,0,0,2,11],
-"async__file__handle_8hpp.html#a40cd3a25b8d4a293a8864fe6eb585034":[4,0,0,0,0,2,7],
-"async__file__handle_8hpp.html#a5b0168993998aafc342233aa782040a6":[4,0,0,0,0,2,6],
-"async__file__handle_8hpp.html#a5eb846433fec3c9c80336ff686c2527e":[4,0,0,0,0,2,9],
-"async__file__handle_8hpp.html#acd740f5aef6ca339575e7497fa873d06":[4,0,0,0,0,2,12],
+"async__file__handle_8hpp.html#a37590ba383783ccfca30404318eb1114":[4,0,0,0,0,2,14],
+"async__file__handle_8hpp.html#a40cd3a25b8d4a293a8864fe6eb585034":[4,0,0,0,0,2,8],
+"async__file__handle_8hpp.html#a4c35fd205301d7fdd3ebb503f2d154fc":[4,0,0,0,0,2,6],
+"async__file__handle_8hpp.html#a5b0168993998aafc342233aa782040a6":[4,0,0,0,0,2,7],
+"async__file__handle_8hpp.html#a5eb846433fec3c9c80336ff686c2527e":[4,0,0,0,0,2,11],
+"async__file__handle_8hpp.html#a6e6ab37dfca4a975e6d04696948c0728":[4,0,0,0,0,2,17],
+"async__file__handle_8hpp.html#ac6be3e0ba22cceed22dbe455c91219dd":[4,0,0,0,0,2,15],
+"async__file__handle_8hpp.html#acd740f5aef6ca339575e7497fa873d06":[4,0,0,0,0,2,16],
"async__file__handle_8hpp.html#ada4ceee47a205446a171bb0570f53bc3":[4,0,0,0,0,2,5],
-"async__file__handle_8hpp.html#ae927cd0656591e7763a96703da0ebebb":[4,0,0,0,0,2,13],
+"async__file__handle_8hpp.html#aded93df5ea7777b501811ec593ed5b55":[4,0,0,0,0,2,12],
+"async__file__handle_8hpp.html#ae927cd0656591e7763a96703da0ebebb":[4,0,0,0,0,2,18],
"atomic__append_8hpp.html":[4,0,0,0,0,0,0,0],
"base_8hpp.html":[4,0,0,0,0,0,0,1],
"base_8hpp.html#a48547949428f2da935a05cad87f2a7ff":[4,0,0,0,0,0,0,1,3],
@@ -73,13 +78,13 @@ var NAVTREEINDEX0 =
"classafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__iterator.html#ae29e137ab7c3aef9a3749d29d3238715":[3,0,0,0,0,2,1],
"classafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__iterator.html#ae9d9a3cd2084361dabf501eea2931638":[3,0,0,0,0,2,9],
"classafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__iterator.html#afa29de316ab1b28efe099a7fe9f92af3":[3,0,0,0,0,2,17],
-"classafio__v2__xxx_1_1algorithm_1_1mapped__view.html":[3,0,0,0,3],
-"classafio__v2__xxx_1_1algorithm_1_1mapped__view.html#a0c63a640692c5fab81abb7572df45018":[3,0,0,0,3,4],
-"classafio__v2__xxx_1_1algorithm_1_1mapped__view.html#a0e413ca44e22e974598aa700f8fda08a":[3,0,0,0,3,0],
-"classafio__v2__xxx_1_1algorithm_1_1mapped__view.html#a7812759f458831ea053fed38ec46dc30":[3,0,0,0,3,1],
-"classafio__v2__xxx_1_1algorithm_1_1mapped__view.html#a8ac47f0032bf486cc3ff21b0a1958d02":[3,0,0,0,3,2],
-"classafio__v2__xxx_1_1algorithm_1_1mapped__view.html#a90012e57d3d7fa833f363a56cb91bcd9":[3,0,0,0,3,5],
-"classafio__v2__xxx_1_1algorithm_1_1mapped__view.html#af8a986d93d5967962763900af3f99824":[3,0,0,0,3,3],
+"classafio__v2__xxx_1_1algorithm_1_1mapped__span.html":[3,0,0,0,3],
+"classafio__v2__xxx_1_1algorithm_1_1mapped__span.html#a236f0978be161027886300e85bf5ae8d":[3,0,0,0,3,5],
+"classafio__v2__xxx_1_1algorithm_1_1mapped__span.html#aa33d0ce0be15b0738c6b36341843ccb5":[3,0,0,0,3,1],
+"classafio__v2__xxx_1_1algorithm_1_1mapped__span.html#aa53a448cdf7c235bdba9252b52548b5b":[3,0,0,0,3,0],
+"classafio__v2__xxx_1_1algorithm_1_1mapped__span.html#aa5b20642220613876d8be474003785e9":[3,0,0,0,3,2],
+"classafio__v2__xxx_1_1algorithm_1_1mapped__span.html#aca48ca2f9558c5d6f57e398016311fe8":[3,0,0,0,3,4],
+"classafio__v2__xxx_1_1algorithm_1_1mapped__span.html#af6a43d3c0201079dac97d407ddb00aaa":[3,0,0,0,3,3],
"classafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1atomic__append.html":[3,0,0,0,1,0],
"classafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1atomic__append.html#a098109a350be8baf56a639b7833e0182":[3,0,0,0,1,0,12],
"classafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1atomic__append.html#a0987b9c6c93a65acb2715e589d45c273":[3,0,0,0,1,0,15],
@@ -244,10 +249,5 @@ var NAVTREEINDEX0 =
"classafio__v2__xxx_1_1algorithm_1_1trivial__vector.html#a6fa51a8f33e271df5fa6e7c0689e652e":[3,0,0,0,4,46],
"classafio__v2__xxx_1_1algorithm_1_1trivial__vector.html#a77ac1dfbe6f0df38bf9ecd3fbdf515fe":[3,0,0,0,4,18],
"classafio__v2__xxx_1_1algorithm_1_1trivial__vector.html#a782e7042f5ef8e5794566ad990418a8a":[3,0,0,0,4,35],
-"classafio__v2__xxx_1_1algorithm_1_1trivial__vector.html#a829281d387d6fe30048d9bcc4a75580c":[3,0,0,0,4,36],
-"classafio__v2__xxx_1_1algorithm_1_1trivial__vector.html#a83a15aa2a15fe2231ee7c5691f9cc6e7":[3,0,0,0,4,26],
-"classafio__v2__xxx_1_1algorithm_1_1trivial__vector.html#a8daf059785543d0e281a4e3fe3903dcd":[3,0,0,0,4,42],
-"classafio__v2__xxx_1_1algorithm_1_1trivial__vector.html#a91abb0240b71fb21b5feb71007208192":[3,0,0,0,4,24],
-"classafio__v2__xxx_1_1algorithm_1_1trivial__vector.html#a97d59a2919feeb1a4c2bb71dda63c2a3":[3,0,0,0,4,34],
-"classafio__v2__xxx_1_1algorithm_1_1trivial__vector.html#a9a48b859de9e022f56e2178fc01303ec":[3,0,0,0,4,30]
+"classafio__v2__xxx_1_1algorithm_1_1trivial__vector.html#a829281d387d6fe30048d9bcc4a75580c":[3,0,0,0,4,36]
};
diff --git a/navtreeindex1.js b/navtreeindex1.js
index 24abfdfb..4f76bc98 100644
--- a/navtreeindex1.js
+++ b/navtreeindex1.js
@@ -1,5 +1,10 @@
var NAVTREEINDEX1 =
{
+"classafio__v2__xxx_1_1algorithm_1_1trivial__vector.html#a83a15aa2a15fe2231ee7c5691f9cc6e7":[3,0,0,0,4,26],
+"classafio__v2__xxx_1_1algorithm_1_1trivial__vector.html#a8daf059785543d0e281a4e3fe3903dcd":[3,0,0,0,4,42],
+"classafio__v2__xxx_1_1algorithm_1_1trivial__vector.html#a91abb0240b71fb21b5feb71007208192":[3,0,0,0,4,24],
+"classafio__v2__xxx_1_1algorithm_1_1trivial__vector.html#a97d59a2919feeb1a4c2bb71dda63c2a3":[3,0,0,0,4,34],
+"classafio__v2__xxx_1_1algorithm_1_1trivial__vector.html#a9a48b859de9e022f56e2178fc01303ec":[3,0,0,0,4,30],
"classafio__v2__xxx_1_1algorithm_1_1trivial__vector.html#a9cb175f8b03635cc4fc3ccf220adbe61":[3,0,0,0,4,7],
"classafio__v2__xxx_1_1algorithm_1_1trivial__vector.html#aafb8342fa73bbb84ab19e2ddc4fb1f16":[3,0,0,0,4,2],
"classafio__v2__xxx_1_1algorithm_1_1trivial__vector.html#ab376c1b7ba13de716f0debae6e2cbd48":[3,0,0,0,4,23],
@@ -21,100 +26,102 @@ var NAVTREEINDEX1 =
"classafio__v2__xxx_1_1algorithm_1_1trivial__vector.html#ae8f83ec93a0afb94595a93a92e555c1b":[3,0,0,0,4,29],
"classafio__v2__xxx_1_1algorithm_1_1trivial__vector.html#af90de4788d25ff0f8e2a683bdab2f21e":[3,0,0,0,4,0],
"classafio__v2__xxx_1_1async__file__handle.html":[3,0,0,4],
-"classafio__v2__xxx_1_1async__file__handle.html#a00f42a44de714feb3ed86dd0a175e69c":[3,0,0,4,56],
+"classafio__v2__xxx_1_1async__file__handle.html#a00f42a44de714feb3ed86dd0a175e69c":[3,0,0,4,58],
"classafio__v2__xxx_1_1async__file__handle.html#a013a4709cdc8733c54132a6a0726fb41":[3,0,0,4,6],
"classafio__v2__xxx_1_1async__file__handle.html#a0344f48ef10fa2b94199d5566aedd879":[3,0,0,4,18],
-"classafio__v2__xxx_1_1async__file__handle.html#a03d1774e3ad8678fb4aac4ced57beeef":[3,0,0,4,42],
-"classafio__v2__xxx_1_1async__file__handle.html#a03d2084c14493ccb95b19503df109bba":[3,0,0,4,90],
-"classafio__v2__xxx_1_1async__file__handle.html#a0a1c4773b9fa7bbd04fee0756075d319":[3,0,0,4,80],
-"classafio__v2__xxx_1_1async__file__handle.html#a0cd3e4803cfe986815ed8c27a70db777":[3,0,0,4,40],
+"classafio__v2__xxx_1_1async__file__handle.html#a03d1774e3ad8678fb4aac4ced57beeef":[3,0,0,4,44],
+"classafio__v2__xxx_1_1async__file__handle.html#a03d2084c14493ccb95b19503df109bba":[3,0,0,4,92],
+"classafio__v2__xxx_1_1async__file__handle.html#a0a1c4773b9fa7bbd04fee0756075d319":[3,0,0,4,82],
+"classafio__v2__xxx_1_1async__file__handle.html#a0cd3e4803cfe986815ed8c27a70db777":[3,0,0,4,41],
"classafio__v2__xxx_1_1async__file__handle.html#a0ce3592c95434ac52711e86e9a22ed6d":[3,0,0,4,2],
"classafio__v2__xxx_1_1async__file__handle.html#a0dacafa3abaa61b3b26ffa305fc09970":[3,0,0,4,15],
-"classafio__v2__xxx_1_1async__file__handle.html#a155ccc6e3386f21bda7280fcbee35a44":[3,0,0,4,64],
+"classafio__v2__xxx_1_1async__file__handle.html#a155ccc6e3386f21bda7280fcbee35a44":[3,0,0,4,66],
"classafio__v2__xxx_1_1async__file__handle.html#a1e9d59b7d6b6d4f0762db5aa013f373b":[3,0,0,4,17],
-"classafio__v2__xxx_1_1async__file__handle.html#a1f4b597a58fd4713d04ec81ab70ab801":[3,0,0,4,77],
-"classafio__v2__xxx_1_1async__file__handle.html#a1f7779618e9b0e27bd1619025dcbb617":[3,0,0,4,75],
-"classafio__v2__xxx_1_1async__file__handle.html#a2083c37ffc746ec28f9e4d6b094d3ba5":[3,0,0,4,57],
+"classafio__v2__xxx_1_1async__file__handle.html#a1f4b597a58fd4713d04ec81ab70ab801":[3,0,0,4,79],
+"classafio__v2__xxx_1_1async__file__handle.html#a1f7779618e9b0e27bd1619025dcbb617":[3,0,0,4,77],
+"classafio__v2__xxx_1_1async__file__handle.html#a2083c37ffc746ec28f9e4d6b094d3ba5":[3,0,0,4,59],
"classafio__v2__xxx_1_1async__file__handle.html#a243156928e89b8988a1412f211b3b603":[3,0,0,4,34],
-"classafio__v2__xxx_1_1async__file__handle.html#a26697f7ce532e54b954a47f48286b2cb":[3,0,0,4,68],
+"classafio__v2__xxx_1_1async__file__handle.html#a26697f7ce532e54b954a47f48286b2cb":[3,0,0,4,70],
"classafio__v2__xxx_1_1async__file__handle.html#a2e4a0216d0cf67f26136f17fc0100a16":[3,0,0,4,8],
-"classafio__v2__xxx_1_1async__file__handle.html#a33c3ff8f024e321fc02dac92d1391457":[3,0,0,4,86],
-"classafio__v2__xxx_1_1async__file__handle.html#a349e001cbe359d4e7a8f066c69e9361e":[3,0,0,4,49],
-"classafio__v2__xxx_1_1async__file__handle.html#a3620b3c68611c77dd3cd98d77c073bd2":[3,0,0,4,92],
+"classafio__v2__xxx_1_1async__file__handle.html#a33c3ff8f024e321fc02dac92d1391457":[3,0,0,4,88],
+"classafio__v2__xxx_1_1async__file__handle.html#a349e001cbe359d4e7a8f066c69e9361e":[3,0,0,4,51],
+"classafio__v2__xxx_1_1async__file__handle.html#a3620b3c68611c77dd3cd98d77c073bd2":[3,0,0,4,94],
"classafio__v2__xxx_1_1async__file__handle.html#a3bee6c9f35239b1dce1e6910ea7d3aa3":[3,0,0,4,19],
-"classafio__v2__xxx_1_1async__file__handle.html#a3c777f045dc2b0248b891d6e7811d152":[3,0,0,4,53],
+"classafio__v2__xxx_1_1async__file__handle.html#a3c777f045dc2b0248b891d6e7811d152":[3,0,0,4,55],
"classafio__v2__xxx_1_1async__file__handle.html#a3fc7db93fac699f5ecad453642ed314e":[3,0,0,4,28],
-"classafio__v2__xxx_1_1async__file__handle.html#a4194a05dd9694d2c47d5a45f925db1d7":[3,0,0,4,54],
+"classafio__v2__xxx_1_1async__file__handle.html#a4194a05dd9694d2c47d5a45f925db1d7":[3,0,0,4,56],
"classafio__v2__xxx_1_1async__file__handle.html#a4252c4047fb520bcedfcd90040c17b37":[3,0,0,4,14],
-"classafio__v2__xxx_1_1async__file__handle.html#a45873fd0b1ab27f936f046ed14124afd":[3,0,0,4,79],
-"classafio__v2__xxx_1_1async__file__handle.html#a4d9cbbb7aae98704c6ad97de080c4210":[3,0,0,4,61],
-"classafio__v2__xxx_1_1async__file__handle.html#a526c300d421155ccc071b04db4bca65d":[3,0,0,4,50],
+"classafio__v2__xxx_1_1async__file__handle.html#a45873fd0b1ab27f936f046ed14124afd":[3,0,0,4,81],
+"classafio__v2__xxx_1_1async__file__handle.html#a4d9cbbb7aae98704c6ad97de080c4210":[3,0,0,4,63],
+"classafio__v2__xxx_1_1async__file__handle.html#a526c300d421155ccc071b04db4bca65d":[3,0,0,4,52],
"classafio__v2__xxx_1_1async__file__handle.html#a54790e954f57372b87b095451cc79c38":[3,0,0,4,37],
"classafio__v2__xxx_1_1async__file__handle.html#a549e10eb62780d500a19cd7cdc0536ac":[3,0,0,4,20],
"classafio__v2__xxx_1_1async__file__handle.html#a5668ee547b98e268360e1f8da8769df8":[3,0,0,4,13],
"classafio__v2__xxx_1_1async__file__handle.html#a59973a4ee6681fa999bfcc7a6ee2b8eb":[3,0,0,4,21],
-"classafio__v2__xxx_1_1async__file__handle.html#a5a5244ab1a15053aefe93f2c253db5b3":[3,0,0,4,81],
-"classafio__v2__xxx_1_1async__file__handle.html#a5be9a526bc5c1be758b0cfc36a262f6e":[3,0,0,4,55],
+"classafio__v2__xxx_1_1async__file__handle.html#a5a5244ab1a15053aefe93f2c253db5b3":[3,0,0,4,83],
+"classafio__v2__xxx_1_1async__file__handle.html#a5be9a526bc5c1be758b0cfc36a262f6e":[3,0,0,4,57],
"classafio__v2__xxx_1_1async__file__handle.html#a5db0b1b1f371a0c8a1f989442e516cd6":[3,0,0,4,23],
-"classafio__v2__xxx_1_1async__file__handle.html#a616a67222676af5ec5b3aa94d7c02428":[3,0,0,4,41],
-"classafio__v2__xxx_1_1async__file__handle.html#a649aa39b0d4b60a05d4aab4be569dcb6":[3,0,0,4,87],
-"classafio__v2__xxx_1_1async__file__handle.html#a657c12a309cf02bf2351bfcc7f41463b":[3,0,0,4,78],
-"classafio__v2__xxx_1_1async__file__handle.html#a672324d44ea84ccfb71594c1036628ac":[3,0,0,4,72],
-"classafio__v2__xxx_1_1async__file__handle.html#a6860b9626adc4d8e6db3ebb92974c054":[3,0,0,4,82],
+"classafio__v2__xxx_1_1async__file__handle.html#a616a67222676af5ec5b3aa94d7c02428":[3,0,0,4,43],
+"classafio__v2__xxx_1_1async__file__handle.html#a649aa39b0d4b60a05d4aab4be569dcb6":[3,0,0,4,89],
+"classafio__v2__xxx_1_1async__file__handle.html#a657c12a309cf02bf2351bfcc7f41463b":[3,0,0,4,80],
+"classafio__v2__xxx_1_1async__file__handle.html#a672324d44ea84ccfb71594c1036628ac":[3,0,0,4,74],
+"classafio__v2__xxx_1_1async__file__handle.html#a6860b9626adc4d8e6db3ebb92974c054":[3,0,0,4,84],
"classafio__v2__xxx_1_1async__file__handle.html#a6dcedeb30c68f1007f9bbef8b7853dd4":[3,0,0,4,33],
"classafio__v2__xxx_1_1async__file__handle.html#a6e3ce8be6683ef91e076dbffdffcba3b":[3,0,0,4,38],
"classafio__v2__xxx_1_1async__file__handle.html#a6e6df4068e197e12169be113f18d0799":[3,0,0,4,25],
"classafio__v2__xxx_1_1async__file__handle.html#a71137cb82edd9a1bcb24f64886b5826d":[3,0,0,4,27],
-"classafio__v2__xxx_1_1async__file__handle.html#a71d7636f40607829cacc2c974c4a2a28":[3,0,0,4,66],
+"classafio__v2__xxx_1_1async__file__handle.html#a71951654fcca9a2f9a2e747e33579fcc":[3,0,0,4,42],
+"classafio__v2__xxx_1_1async__file__handle.html#a71d7636f40607829cacc2c974c4a2a28":[3,0,0,4,68],
"classafio__v2__xxx_1_1async__file__handle.html#a7226567016e1729200791fd0423b605e":[3,0,0,4,22],
-"classafio__v2__xxx_1_1async__file__handle.html#a73d5f2070bce0c3d7fa536d3cbed7b52":[3,0,0,4,69],
-"classafio__v2__xxx_1_1async__file__handle.html#a747962d0776c0fa9e79c9aa9b86da1c0":[3,0,0,4,70],
-"classafio__v2__xxx_1_1async__file__handle.html#a771ef2bf39ad784eb6265dde077792ad":[3,0,0,4,94],
-"classafio__v2__xxx_1_1async__file__handle.html#a875440f1b368472f1840c70c266f3a48":[3,0,0,4,62],
-"classafio__v2__xxx_1_1async__file__handle.html#a88689b15e6e8b6ce1f945737dee4369e":[3,0,0,4,58],
-"classafio__v2__xxx_1_1async__file__handle.html#a8af6c6dc1502d40f6aaccc83e49d5342":[3,0,0,4,67],
+"classafio__v2__xxx_1_1async__file__handle.html#a73d5f2070bce0c3d7fa536d3cbed7b52":[3,0,0,4,71],
+"classafio__v2__xxx_1_1async__file__handle.html#a747962d0776c0fa9e79c9aa9b86da1c0":[3,0,0,4,72],
+"classafio__v2__xxx_1_1async__file__handle.html#a771ef2bf39ad784eb6265dde077792ad":[3,0,0,4,96],
+"classafio__v2__xxx_1_1async__file__handle.html#a875440f1b368472f1840c70c266f3a48":[3,0,0,4,64],
+"classafio__v2__xxx_1_1async__file__handle.html#a88689b15e6e8b6ce1f945737dee4369e":[3,0,0,4,60],
"classafio__v2__xxx_1_1async__file__handle.html#a8b4e8c3d96a045d68b7490482a6fcf34":[3,0,0,4,4],
-"classafio__v2__xxx_1_1async__file__handle.html#a8bac7dde456d65b956f324d981461dd2":[3,0,0,4,63],
+"classafio__v2__xxx_1_1async__file__handle.html#a8bac7dde456d65b956f324d981461dd2":[3,0,0,4,65],
"classafio__v2__xxx_1_1async__file__handle.html#a8d0223e2633274060d94f68b9431dc2f":[3,0,0,4,35],
+"classafio__v2__xxx_1_1async__file__handle.html#a928a8ab64d5b7d68dc7e2b3e5849df24":[3,0,0,4,69],
"classafio__v2__xxx_1_1async__file__handle.html#a936a28e9d3fde456a87fd6f7b74258f8":[3,0,0,4,36],
-"classafio__v2__xxx_1_1async__file__handle.html#a959c04239b557c6d3c3c0e996563abb8":[3,0,0,4,93],
-"classafio__v2__xxx_1_1async__file__handle.html#a96b9da71ee7791fbaaa2470c936ec763":[3,0,0,4,83],
+"classafio__v2__xxx_1_1async__file__handle.html#a959c04239b557c6d3c3c0e996563abb8":[3,0,0,4,95],
+"classafio__v2__xxx_1_1async__file__handle.html#a96b9da71ee7791fbaaa2470c936ec763":[3,0,0,4,85],
"classafio__v2__xxx_1_1async__file__handle.html#a97ffbbf53f51549549efef0b49e125dc":[3,0,0,4,29],
-"classafio__v2__xxx_1_1async__file__handle.html#aa53d88105df8c6be01be649829a65b14":[3,0,0,4,45],
-"classafio__v2__xxx_1_1async__file__handle.html#aaacc27a62ce0859506d7443f0d0e7adf":[3,0,0,4,65],
-"classafio__v2__xxx_1_1async__file__handle.html#aac62f621c42be6eeb8d9a5700da367f9":[3,0,0,4,52],
+"classafio__v2__xxx_1_1async__file__handle.html#aa53d88105df8c6be01be649829a65b14":[3,0,0,4,47],
+"classafio__v2__xxx_1_1async__file__handle.html#aaacc27a62ce0859506d7443f0d0e7adf":[3,0,0,4,67],
+"classafio__v2__xxx_1_1async__file__handle.html#aac62f621c42be6eeb8d9a5700da367f9":[3,0,0,4,54],
"classafio__v2__xxx_1_1async__file__handle.html#ab0a1e11a3d208319cc8fc8a9171ec33f":[3,0,0,4,31],
-"classafio__v2__xxx_1_1async__file__handle.html#ab26a3c5a18cdcc67a506533dbe55e2b3":[3,0,0,4,85],
-"classafio__v2__xxx_1_1async__file__handle.html#ab3d876f5996605158fd6a0582adadad6":[3,0,0,4,43],
+"classafio__v2__xxx_1_1async__file__handle.html#ab3d876f5996605158fd6a0582adadad6":[3,0,0,4,45],
"classafio__v2__xxx_1_1async__file__handle.html#ab48a3007097cfa403e68101954ddd477":[3,0,0,4,3],
"classafio__v2__xxx_1_1async__file__handle.html#ab49851748369ba35dabe4cee78342796":[3,0,0,4,30],
-"classafio__v2__xxx_1_1async__file__handle.html#ab790af4654f5455d8c5e1f1d397543ca":[3,0,0,4,46],
+"classafio__v2__xxx_1_1async__file__handle.html#ab790af4654f5455d8c5e1f1d397543ca":[3,0,0,4,48],
"classafio__v2__xxx_1_1async__file__handle.html#abc812234dbdd26eaeb19312357fdb64f":[3,0,0,4,16],
"classafio__v2__xxx_1_1async__file__handle.html#abca08e496e10ac6ae890793888a5e3fe":[3,0,0,4,39],
"classafio__v2__xxx_1_1async__file__handle.html#abcdd973d43bca7a80b75603c97b8a03a":[3,0,0,4,1],
-"classafio__v2__xxx_1_1async__file__handle.html#abf1012040064a3d429adfae8e6f443f0":[3,0,0,4,74],
+"classafio__v2__xxx_1_1async__file__handle.html#abf1012040064a3d429adfae8e6f443f0":[3,0,0,4,76],
"classafio__v2__xxx_1_1async__file__handle.html#ac0191d9ace58e8f7c4fb1ddd6e75e57e":[3,0,0,4,5],
"classafio__v2__xxx_1_1async__file__handle.html#ac38c4f8c4be552471c9ae07f2e247ba1":[3,0,0,4,32],
-"classafio__v2__xxx_1_1async__file__handle.html#ac46e0a296c31fcd0a996a79d78647fb6":[3,0,0,4,91],
-"classafio__v2__xxx_1_1async__file__handle.html#ac5b2859fabe04dbfc37020daed618257":[3,0,0,4,51],
+"classafio__v2__xxx_1_1async__file__handle.html#ac46e0a296c31fcd0a996a79d78647fb6":[3,0,0,4,93],
+"classafio__v2__xxx_1_1async__file__handle.html#ac5b2859fabe04dbfc37020daed618257":[3,0,0,4,53],
"classafio__v2__xxx_1_1async__file__handle.html#acd47b60681f19ee2d2906d27ee703611":[3,0,0,4,24],
-"classafio__v2__xxx_1_1async__file__handle.html#ad02958278a0d92e4ec4fb864ba1eb35b":[3,0,0,4,48],
-"classafio__v2__xxx_1_1async__file__handle.html#ad44dcd9c7ca9e7a094dd1bc7c8aa4897":[3,0,0,4,59],
-"classafio__v2__xxx_1_1async__file__handle.html#ae33d4d0faa1377cd371bd6a0ae0769ae":[3,0,0,4,44],
-"classafio__v2__xxx_1_1async__file__handle.html#ae56f6754d6ad0a037ebb134d83f45dfc":[3,0,0,4,76],
+"classafio__v2__xxx_1_1async__file__handle.html#acf004a49616f731287c3f57b025a9aec":[3,0,0,4,40],
+"classafio__v2__xxx_1_1async__file__handle.html#ad02958278a0d92e4ec4fb864ba1eb35b":[3,0,0,4,50],
+"classafio__v2__xxx_1_1async__file__handle.html#ad44dcd9c7ca9e7a094dd1bc7c8aa4897":[3,0,0,4,61],
+"classafio__v2__xxx_1_1async__file__handle.html#add161546c0769941fce4fd9f06934e03":[3,0,0,4,87],
+"classafio__v2__xxx_1_1async__file__handle.html#ae33d4d0faa1377cd371bd6a0ae0769ae":[3,0,0,4,46],
+"classafio__v2__xxx_1_1async__file__handle.html#ae56f6754d6ad0a037ebb134d83f45dfc":[3,0,0,4,78],
"classafio__v2__xxx_1_1async__file__handle.html#ae579de33d4d008c50b4da07b641b3ba5":[3,0,0,4,26],
"classafio__v2__xxx_1_1async__file__handle.html#ae881dbcdc2b71009f2a61895a0a45a3e":[3,0,0,4,7],
-"classafio__v2__xxx_1_1async__file__handle.html#ae9f4f5f9cc386f5188a9977145edbe6c":[3,0,0,4,88],
+"classafio__v2__xxx_1_1async__file__handle.html#ae9f4f5f9cc386f5188a9977145edbe6c":[3,0,0,4,90],
"classafio__v2__xxx_1_1async__file__handle.html#aea56c3f195f2d1376e2603a9d9a9df59":[3,0,0,4,11],
-"classafio__v2__xxx_1_1async__file__handle.html#aeabd245b6edcfb57779b29c6f2ea9737":[3,0,0,4,60],
-"classafio__v2__xxx_1_1async__file__handle.html#aefac4710e5617264347f437b04732c01":[3,0,0,4,84],
-"classafio__v2__xxx_1_1async__file__handle.html#af024e3d92d9a01ac367734e9cdc517fb":[3,0,0,4,89],
+"classafio__v2__xxx_1_1async__file__handle.html#aeabd245b6edcfb57779b29c6f2ea9737":[3,0,0,4,62],
+"classafio__v2__xxx_1_1async__file__handle.html#aefac4710e5617264347f437b04732c01":[3,0,0,4,86],
+"classafio__v2__xxx_1_1async__file__handle.html#af024e3d92d9a01ac367734e9cdc517fb":[3,0,0,4,91],
"classafio__v2__xxx_1_1async__file__handle.html#af056e7f0890da5d370afc08d6e5a56c8":[3,0,0,4,12],
-"classafio__v2__xxx_1_1async__file__handle.html#af1610ec7fb0a41f039e3e17e0dc467ab":[3,0,0,4,73],
+"classafio__v2__xxx_1_1async__file__handle.html#af1610ec7fb0a41f039e3e17e0dc467ab":[3,0,0,4,75],
"classafio__v2__xxx_1_1async__file__handle.html#af275f6aff0e84c73877b3f3511d4f903":[3,0,0,4,9],
-"classafio__v2__xxx_1_1async__file__handle.html#af42904dd49b5517a303e7cb256eae939":[3,0,0,4,47],
+"classafio__v2__xxx_1_1async__file__handle.html#af42904dd49b5517a303e7cb256eae939":[3,0,0,4,49],
"classafio__v2__xxx_1_1async__file__handle.html#afe12988dc9a05cb7bdd4435b45e50591":[3,0,0,4,10],
-"classafio__v2__xxx_1_1async__file__handle.html#affb10caeeca67b804695b7378be29e23":[3,0,0,4,71],
+"classafio__v2__xxx_1_1async__file__handle.html#affb10caeeca67b804695b7378be29e23":[3,0,0,4,73],
"classafio__v2__xxx_1_1async__file__handle_1_1awaitable.html":[3,0,0,4,0],
"classafio__v2__xxx_1_1async__file__handle_1_1awaitable.html#a310ae075ae4241747281cd4972d105fc":[3,0,0,4,0,2],
"classafio__v2__xxx_1_1async__file__handle_1_1awaitable.html#a33abb49ec45f8947533771592113d954":[3,0,0,4,0,0],
@@ -236,18 +243,11 @@ var NAVTREEINDEX1 =
"classafio__v2__xxx_1_1file__handle.html#a8405576beeec0745fe3e038367f01956":[3,0,0,19,3],
"classafio__v2__xxx_1_1file__handle.html#a875440f1b368472f1840c70c266f3a48":[3,0,0,19,53],
"classafio__v2__xxx_1_1file__handle.html#a88689b15e6e8b6ce1f945737dee4369e":[3,0,0,19,49],
-"classafio__v2__xxx_1_1file__handle.html#a8af6c6dc1502d40f6aaccc83e49d5342":[3,0,0,19,58],
"classafio__v2__xxx_1_1file__handle.html#a8e2c8f7c0b75acc4bdf6456da836c880":[3,0,0,19,54],
"classafio__v2__xxx_1_1file__handle.html#a917a528bb0edef02b1a0f535646b7009":[3,0,0,19,29],
+"classafio__v2__xxx_1_1file__handle.html#a928a8ab64d5b7d68dc7e2b3e5849df24":[3,0,0,19,58],
"classafio__v2__xxx_1_1file__handle.html#a959c04239b557c6d3c3c0e996563abb8":[3,0,0,19,80],
"classafio__v2__xxx_1_1file__handle.html#a962eb1411083ca9b2250fe40a9259354":[3,0,0,19,17],
"classafio__v2__xxx_1_1file__handle.html#a96b9da71ee7791fbaaa2470c936ec763":[3,0,0,19,72],
-"classafio__v2__xxx_1_1file__handle.html#a97ffbbf53f51549549efef0b49e125dc":[3,0,0,19,26],
-"classafio__v2__xxx_1_1file__handle.html#aa53d88105df8c6be01be649829a65b14":[3,0,0,19,36],
-"classafio__v2__xxx_1_1file__handle.html#aaacc27a62ce0859506d7443f0d0e7adf":[3,0,0,19,56],
-"classafio__v2__xxx_1_1file__handle.html#aac62f621c42be6eeb8d9a5700da367f9":[3,0,0,19,43],
-"classafio__v2__xxx_1_1file__handle.html#ab1f64547bfc4ee74e6019729aaf25703":[3,0,0,19,18],
-"classafio__v2__xxx_1_1file__handle.html#ab26a3c5a18cdcc67a506533dbe55e2b3":[3,0,0,19,74],
-"classafio__v2__xxx_1_1file__handle.html#ab3d876f5996605158fd6a0582adadad6":[3,0,0,19,34],
-"classafio__v2__xxx_1_1file__handle.html#ab790af4654f5455d8c5e1f1d397543ca":[3,0,0,19,37]
+"classafio__v2__xxx_1_1file__handle.html#a97ffbbf53f51549549efef0b49e125dc":[3,0,0,19,26]
};
diff --git a/navtreeindex2.js b/navtreeindex2.js
index ed35f219..b2a1be38 100644
--- a/navtreeindex2.js
+++ b/navtreeindex2.js
@@ -1,5 +1,11 @@
var NAVTREEINDEX2 =
{
+"classafio__v2__xxx_1_1file__handle.html#aa53d88105df8c6be01be649829a65b14":[3,0,0,19,36],
+"classafio__v2__xxx_1_1file__handle.html#aaacc27a62ce0859506d7443f0d0e7adf":[3,0,0,19,56],
+"classafio__v2__xxx_1_1file__handle.html#aac62f621c42be6eeb8d9a5700da367f9":[3,0,0,19,43],
+"classafio__v2__xxx_1_1file__handle.html#ab1f64547bfc4ee74e6019729aaf25703":[3,0,0,19,18],
+"classafio__v2__xxx_1_1file__handle.html#ab3d876f5996605158fd6a0582adadad6":[3,0,0,19,34],
+"classafio__v2__xxx_1_1file__handle.html#ab790af4654f5455d8c5e1f1d397543ca":[3,0,0,19,37],
"classafio__v2__xxx_1_1file__handle.html#abf1012040064a3d429adfae8e6f443f0":[3,0,0,19,64],
"classafio__v2__xxx_1_1file__handle.html#ac46e0a296c31fcd0a996a79d78647fb6":[3,0,0,19,78],
"classafio__v2__xxx_1_1file__handle.html#ac5b2859fabe04dbfc37020daed618257":[3,0,0,19,42],
@@ -9,6 +15,7 @@ var NAVTREEINDEX2 =
"classafio__v2__xxx_1_1file__handle.html#ad44dcd9c7ca9e7a094dd1bc7c8aa4897":[3,0,0,19,50],
"classafio__v2__xxx_1_1file__handle.html#adce16c0da44c961430adad3691716c7e":[3,0,0,19,4],
"classafio__v2__xxx_1_1file__handle.html#adceeae22eec165949a0947e2d7eb1882":[3,0,0,19,9],
+"classafio__v2__xxx_1_1file__handle.html#add161546c0769941fce4fd9f06934e03":[3,0,0,19,74],
"classafio__v2__xxx_1_1file__handle.html#ade69b3aaab2a6142ccbbdbff3663cbb6":[3,0,0,19,11],
"classafio__v2__xxx_1_1file__handle.html#ae33d4d0faa1377cd371bd6a0ae0769ae":[3,0,0,19,35],
"classafio__v2__xxx_1_1file__handle.html#ae56f6754d6ad0a037ebb134d83f45dfc":[3,0,0,19,66],
@@ -139,14 +146,13 @@ var NAVTREEINDEX2 =
"classafio__v2__xxx_1_1io__handle.html#a875440f1b368472f1840c70c266f3a48":[3,0,0,22,45],
"classafio__v2__xxx_1_1io__handle.html#a88689b15e6e8b6ce1f945737dee4369e":[3,0,0,22,41],
"classafio__v2__xxx_1_1io__handle.html#a888b9331492828bb282ea5849f2a4146":[3,0,0,22,8],
-"classafio__v2__xxx_1_1io__handle.html#a8af6c6dc1502d40f6aaccc83e49d5342":[3,0,0,22,49],
+"classafio__v2__xxx_1_1io__handle.html#a928a8ab64d5b7d68dc7e2b3e5849df24":[3,0,0,22,49],
"classafio__v2__xxx_1_1io__handle.html#a949ba240535516e0041ed46594ad54fa":[3,0,0,22,47],
"classafio__v2__xxx_1_1io__handle.html#a96b9da71ee7791fbaaa2470c936ec763":[3,0,0,22,55],
"classafio__v2__xxx_1_1io__handle.html#a97ffbbf53f51549549efef0b49e125dc":[3,0,0,22,22],
"classafio__v2__xxx_1_1io__handle.html#aa53d88105df8c6be01be649829a65b14":[3,0,0,22,29],
"classafio__v2__xxx_1_1io__handle.html#aac62f621c42be6eeb8d9a5700da367f9":[3,0,0,22,36],
"classafio__v2__xxx_1_1io__handle.html#aacabd3633b7c08a422c3e912f6319959":[3,0,0,22,12],
-"classafio__v2__xxx_1_1io__handle.html#ab26a3c5a18cdcc67a506533dbe55e2b3":[3,0,0,22,57],
"classafio__v2__xxx_1_1io__handle.html#ab3d876f5996605158fd6a0582adadad6":[3,0,0,22,27],
"classafio__v2__xxx_1_1io__handle.html#ab790af4654f5455d8c5e1f1d397543ca":[3,0,0,22,30],
"classafio__v2__xxx_1_1io__handle.html#ac46e0a296c31fcd0a996a79d78647fb6":[3,0,0,22,59],
@@ -154,6 +160,7 @@ var NAVTREEINDEX2 =
"classafio__v2__xxx_1_1io__handle.html#aca75b76bf7cbb9add3fd9a36bcd6d42a":[3,0,0,22,46],
"classafio__v2__xxx_1_1io__handle.html#ad02958278a0d92e4ec4fb864ba1eb35b":[3,0,0,22,32],
"classafio__v2__xxx_1_1io__handle.html#ad44dcd9c7ca9e7a094dd1bc7c8aa4897":[3,0,0,22,42],
+"classafio__v2__xxx_1_1io__handle.html#add161546c0769941fce4fd9f06934e03":[3,0,0,22,57],
"classafio__v2__xxx_1_1io__handle.html#ae33d4d0faa1377cd371bd6a0ae0769ae":[3,0,0,22,28],
"classafio__v2__xxx_1_1io__handle.html#ae37166cb94d69808853190e1bab5ee12":[3,0,0,22,19],
"classafio__v2__xxx_1_1io__handle.html#aeabd245b6edcfb57779b29c6f2ea9737":[3,0,0,22,43],
@@ -213,41 +220,34 @@ var NAVTREEINDEX2 =
"classafio__v2__xxx_1_1log__level__guard.html#aacd729f80c68bc473a1c28ffbee4e190":[3,0,0,24,3],
"classafio__v2__xxx_1_1log__level__guard.html#ac36f5c23d5eef0f0b18cbf05e1d44c55":[3,0,0,24,5],
"classafio__v2__xxx_1_1map__handle.html":[3,0,0,25],
-"classafio__v2__xxx_1_1map__handle.html#a00b7e1e99089c2641c45ee824811ebc1":[3,0,0,25,67],
-"classafio__v2__xxx_1_1map__handle.html#a00f42a44de714feb3ed86dd0a175e69c":[3,0,0,25,43],
-"classafio__v2__xxx_1_1map__handle.html#a04d5b12318493f32de67854714001ab2":[3,0,0,25,69],
-"classafio__v2__xxx_1_1map__handle.html#a0a1c4773b9fa7bbd04fee0756075d319":[3,0,0,25,63],
+"classafio__v2__xxx_1_1map__handle.html#a00b7e1e99089c2641c45ee824811ebc1":[3,0,0,25,72],
+"classafio__v2__xxx_1_1map__handle.html#a00f42a44de714feb3ed86dd0a175e69c":[3,0,0,25,46],
+"classafio__v2__xxx_1_1map__handle.html#a04d5b12318493f32de67854714001ab2":[3,0,0,25,74],
+"classafio__v2__xxx_1_1map__handle.html#a0a1c4773b9fa7bbd04fee0756075d319":[3,0,0,25,67],
"classafio__v2__xxx_1_1map__handle.html#a0af15b220ec3cfd1816206a5e795c934":[3,0,0,25,1],
-"classafio__v2__xxx_1_1map__handle.html#a127eef4449f6afcddbdb684030776868":[3,0,0,25,60],
+"classafio__v2__xxx_1_1map__handle.html#a127eef4449f6afcddbdb684030776868":[3,0,0,25,63],
+"classafio__v2__xxx_1_1map__handle.html#a1d3f93b7f145af54e62e0401dc57e600":[3,0,0,25,81],
"classafio__v2__xxx_1_1map__handle.html#a1d6628e75030c5f83dd679ff0a7a6d6b":[3,0,0,25,5],
"classafio__v2__xxx_1_1map__handle.html#a1e9273d0c6aca7da6480437f6cf6638a":[3,0,0,25,18],
"classafio__v2__xxx_1_1map__handle.html#a1ea36471bce9cae1604da211a4afa779":[3,0,0,25,9],
"classafio__v2__xxx_1_1map__handle.html#a243156928e89b8988a1412f211b3b603":[3,0,0,25,22],
"classafio__v2__xxx_1_1map__handle.html#a26d90317426d6a95abb27caff26d1568":[3,0,0,25,12],
"classafio__v2__xxx_1_1map__handle.html#a272e3e3dd846e5a4ee86e7193403500a":[3,0,0,25,4],
-"classafio__v2__xxx_1_1map__handle.html#a295685127f9dacc561b5f9600d82fad5":[3,0,0,25,62],
-"classafio__v2__xxx_1_1map__handle.html#a349e001cbe359d4e7a8f066c69e9361e":[3,0,0,25,36],
-"classafio__v2__xxx_1_1map__handle.html#a3c777f045dc2b0248b891d6e7811d152":[3,0,0,25,40],
+"classafio__v2__xxx_1_1map__handle.html#a295685127f9dacc561b5f9600d82fad5":[3,0,0,25,65],
+"classafio__v2__xxx_1_1map__handle.html#a349e001cbe359d4e7a8f066c69e9361e":[3,0,0,25,39],
+"classafio__v2__xxx_1_1map__handle.html#a3c777f045dc2b0248b891d6e7811d152":[3,0,0,25,43],
"classafio__v2__xxx_1_1map__handle.html#a3fc7db93fac699f5ecad453642ed314e":[3,0,0,25,20],
-"classafio__v2__xxx_1_1map__handle.html#a4194a05dd9694d2c47d5a45f925db1d7":[3,0,0,25,41],
+"classafio__v2__xxx_1_1map__handle.html#a4194a05dd9694d2c47d5a45f925db1d7":[3,0,0,25,44],
"classafio__v2__xxx_1_1map__handle.html#a45a37a4b395e125f84cd9a9e1995c504":[3,0,0,25,0],
"classafio__v2__xxx_1_1map__handle.html#a4a2fc92b11c3dc6021436261eab13e48":[3,0,0,25,10],
"classafio__v2__xxx_1_1map__handle.html#a4ac624b2af8f1cccdf87d80f5542b709":[3,0,0,25,7],
-"classafio__v2__xxx_1_1map__handle.html#a4cdb7b9643da8c8e2dee0c8b01511e83":[3,0,0,25,26],
-"classafio__v2__xxx_1_1map__handle.html#a4d8c8f3fcecd58b55316d42799abf6f3":[3,0,0,25,55],
-"classafio__v2__xxx_1_1map__handle.html#a4d9cbbb7aae98704c6ad97de080c4210":[3,0,0,25,48],
-"classafio__v2__xxx_1_1map__handle.html#a526c300d421155ccc071b04db4bca65d":[3,0,0,25,37],
+"classafio__v2__xxx_1_1map__handle.html#a4cdb7b9643da8c8e2dee0c8b01511e83":[3,0,0,25,28],
+"classafio__v2__xxx_1_1map__handle.html#a4d8c8f3fcecd58b55316d42799abf6f3":[3,0,0,25,58],
+"classafio__v2__xxx_1_1map__handle.html#a4d9cbbb7aae98704c6ad97de080c4210":[3,0,0,25,51],
+"classafio__v2__xxx_1_1map__handle.html#a526c300d421155ccc071b04db4bca65d":[3,0,0,25,40],
"classafio__v2__xxx_1_1map__handle.html#a545aef5843a50c73df15f4d1b692d3bf":[3,0,0,25,15],
-"classafio__v2__xxx_1_1map__handle.html#a54790e954f57372b87b095451cc79c38":[3,0,0,25,24],
+"classafio__v2__xxx_1_1map__handle.html#a54790e954f57372b87b095451cc79c38":[3,0,0,25,26],
"classafio__v2__xxx_1_1map__handle.html#a57d804e792acee6f848b75ad3d8ff439":[3,0,0,25,14],
-"classafio__v2__xxx_1_1map__handle.html#a5b69e8faa8a9e47dec1b1a123c722a3e":[3,0,0,25,28],
-"classafio__v2__xxx_1_1map__handle.html#a5b7bae1f24ec1ae96822fb865bfd0ea5":[3,0,0,25,75],
-"classafio__v2__xxx_1_1map__handle.html#a5be9a526bc5c1be758b0cfc36a262f6e":[3,0,0,25,42],
-"classafio__v2__xxx_1_1map__handle.html#a616a67222676af5ec5b3aa94d7c02428":[3,0,0,25,27],
-"classafio__v2__xxx_1_1map__handle.html#a657c12a309cf02bf2351bfcc7f41463b":[3,0,0,25,61],
-"classafio__v2__xxx_1_1map__handle.html#a6643b27340d9bc8d2e29c9e085f8799c":[3,0,0,25,52],
-"classafio__v2__xxx_1_1map__handle.html#a71137cb82edd9a1bcb24f64886b5826d":[3,0,0,25,19],
-"classafio__v2__xxx_1_1map__handle.html#a71d7636f40607829cacc2c974c4a2a28":[3,0,0,25,53],
-"classafio__v2__xxx_1_1map__handle.html#a735b3ed30ff1387c9af82dccb6147545":[3,0,0,25,13],
-"classafio__v2__xxx_1_1map__handle.html#a771ef2bf39ad784eb6265dde077792ad":[3,0,0,25,77]
+"classafio__v2__xxx_1_1map__handle.html#a5b69e8faa8a9e47dec1b1a123c722a3e":[3,0,0,25,30],
+"classafio__v2__xxx_1_1map__handle.html#a5b7bae1f24ec1ae96822fb865bfd0ea5":[3,0,0,25,80]
};
diff --git a/navtreeindex3.js b/navtreeindex3.js
index d01ee14a..335c1a36 100644
--- a/navtreeindex3.js
+++ b/navtreeindex3.js
@@ -1,46 +1,59 @@
var NAVTREEINDEX3 =
{
-"classafio__v2__xxx_1_1map__handle.html#a875440f1b368472f1840c70c266f3a48":[3,0,0,25,49],
-"classafio__v2__xxx_1_1map__handle.html#a88689b15e6e8b6ce1f945737dee4369e":[3,0,0,25,45],
-"classafio__v2__xxx_1_1map__handle.html#a8af6c6dc1502d40f6aaccc83e49d5342":[3,0,0,25,54],
+"classafio__v2__xxx_1_1map__handle.html#a5be9a526bc5c1be758b0cfc36a262f6e":[3,0,0,25,45],
+"classafio__v2__xxx_1_1map__handle.html#a5c57d56e5704ced94de606895a1fe9bd":[3,0,0,25,36],
+"classafio__v2__xxx_1_1map__handle.html#a616a67222676af5ec5b3aa94d7c02428":[3,0,0,25,29],
+"classafio__v2__xxx_1_1map__handle.html#a657c12a309cf02bf2351bfcc7f41463b":[3,0,0,25,64],
+"classafio__v2__xxx_1_1map__handle.html#a6643b27340d9bc8d2e29c9e085f8799c":[3,0,0,25,55],
+"classafio__v2__xxx_1_1map__handle.html#a71137cb82edd9a1bcb24f64886b5826d":[3,0,0,25,19],
+"classafio__v2__xxx_1_1map__handle.html#a7119886b920953e12340b05ea94e395d":[3,0,0,25,24],
+"classafio__v2__xxx_1_1map__handle.html#a71d7636f40607829cacc2c974c4a2a28":[3,0,0,25,56],
+"classafio__v2__xxx_1_1map__handle.html#a735b3ed30ff1387c9af82dccb6147545":[3,0,0,25,13],
+"classafio__v2__xxx_1_1map__handle.html#a771ef2bf39ad784eb6265dde077792ad":[3,0,0,25,83],
+"classafio__v2__xxx_1_1map__handle.html#a875440f1b368472f1840c70c266f3a48":[3,0,0,25,52],
+"classafio__v2__xxx_1_1map__handle.html#a88689b15e6e8b6ce1f945737dee4369e":[3,0,0,25,48],
"classafio__v2__xxx_1_1map__handle.html#a8e76ea37b167d23b43b27794282667f4":[3,0,0,25,2],
"classafio__v2__xxx_1_1map__handle.html#a9051ebc2ea492cdd7c14e01fbb5a3a92":[3,0,0,25,8],
-"classafio__v2__xxx_1_1map__handle.html#a96b9da71ee7791fbaaa2470c936ec763":[3,0,0,25,64],
+"classafio__v2__xxx_1_1map__handle.html#a928a8ab64d5b7d68dc7e2b3e5849df24":[3,0,0,25,57],
+"classafio__v2__xxx_1_1map__handle.html#a96b9da71ee7791fbaaa2470c936ec763":[3,0,0,25,68],
"classafio__v2__xxx_1_1map__handle.html#a96cb504683feb27581012d48fd967cfc":[3,0,0,25,16],
"classafio__v2__xxx_1_1map__handle.html#a97ffbbf53f51549549efef0b49e125dc":[3,0,0,25,21],
"classafio__v2__xxx_1_1map__handle.html#a9cde0ddea1310cdec3db32ad69f29527":[3,0,0,25,6],
-"classafio__v2__xxx_1_1map__handle.html#aa25715985351f79e034bb1ef37f74824":[3,0,0,25,29],
-"classafio__v2__xxx_1_1map__handle.html#aa2de383f07c16362890a8602d6089cef":[3,0,0,25,51],
-"classafio__v2__xxx_1_1map__handle.html#aa53d88105df8c6be01be649829a65b14":[3,0,0,25,32],
-"classafio__v2__xxx_1_1map__handle.html#aac62f621c42be6eeb8d9a5700da367f9":[3,0,0,25,39],
+"classafio__v2__xxx_1_1map__handle.html#aa25715985351f79e034bb1ef37f74824":[3,0,0,25,31],
+"classafio__v2__xxx_1_1map__handle.html#aa2de383f07c16362890a8602d6089cef":[3,0,0,25,54],
+"classafio__v2__xxx_1_1map__handle.html#aa53d88105df8c6be01be649829a65b14":[3,0,0,25,34],
+"classafio__v2__xxx_1_1map__handle.html#aac62f621c42be6eeb8d9a5700da367f9":[3,0,0,25,42],
"classafio__v2__xxx_1_1map__handle.html#aacabd3633b7c08a422c3e912f6319959":[3,0,0,25,11],
-"classafio__v2__xxx_1_1map__handle.html#ab26a3c5a18cdcc67a506533dbe55e2b3":[3,0,0,25,66],
-"classafio__v2__xxx_1_1map__handle.html#ab3d876f5996605158fd6a0582adadad6":[3,0,0,25,30],
-"classafio__v2__xxx_1_1map__handle.html#ab790af4654f5455d8c5e1f1d397543ca":[3,0,0,25,33],
-"classafio__v2__xxx_1_1map__handle.html#ab8a43a5388161f629fef5ee7256dbbc8":[3,0,0,25,58],
-"classafio__v2__xxx_1_1map__handle.html#aba6ebe9afaccfaf59a92c5b85c72e7d2":[3,0,0,25,44],
-"classafio__v2__xxx_1_1map__handle.html#abdcdfc9d1ed9193bff10f3a03257b677":[3,0,0,25,72],
+"classafio__v2__xxx_1_1map__handle.html#ab3d876f5996605158fd6a0582adadad6":[3,0,0,25,32],
+"classafio__v2__xxx_1_1map__handle.html#ab790af4654f5455d8c5e1f1d397543ca":[3,0,0,25,35],
+"classafio__v2__xxx_1_1map__handle.html#ab8a43a5388161f629fef5ee7256dbbc8":[3,0,0,25,61],
+"classafio__v2__xxx_1_1map__handle.html#aba6ebe9afaccfaf59a92c5b85c72e7d2":[3,0,0,25,47],
+"classafio__v2__xxx_1_1map__handle.html#abaff8ae673c35e9bb150e3970dd205a5":[3,0,0,25,69],
+"classafio__v2__xxx_1_1map__handle.html#abdcdfc9d1ed9193bff10f3a03257b677":[3,0,0,25,77],
"classafio__v2__xxx_1_1map__handle.html#abe6c2e6318b90d83660f47f9a8ec24d1":[3,0,0,25,3],
-"classafio__v2__xxx_1_1map__handle.html#ac049430769b0fa1d06c93160cef5a2f9":[3,0,0,25,50],
-"classafio__v2__xxx_1_1map__handle.html#ac35a85e8a6cca721640ddc6b5008e145":[3,0,0,25,68],
-"classafio__v2__xxx_1_1map__handle.html#ac46e0a296c31fcd0a996a79d78647fb6":[3,0,0,25,73],
-"classafio__v2__xxx_1_1map__handle.html#ac484c07601be4e987b5f1332bdccfee3":[3,0,0,25,56],
-"classafio__v2__xxx_1_1map__handle.html#ac5b2859fabe04dbfc37020daed618257":[3,0,0,25,38],
-"classafio__v2__xxx_1_1map__handle.html#aca05f73280e20cb18cc0dd7f60a1aae1":[3,0,0,25,25],
+"classafio__v2__xxx_1_1map__handle.html#ac049430769b0fa1d06c93160cef5a2f9":[3,0,0,25,53],
+"classafio__v2__xxx_1_1map__handle.html#ac35a85e8a6cca721640ddc6b5008e145":[3,0,0,25,73],
+"classafio__v2__xxx_1_1map__handle.html#ac46e0a296c31fcd0a996a79d78647fb6":[3,0,0,25,78],
+"classafio__v2__xxx_1_1map__handle.html#ac484c07601be4e987b5f1332bdccfee3":[3,0,0,25,59],
+"classafio__v2__xxx_1_1map__handle.html#ac5b2859fabe04dbfc37020daed618257":[3,0,0,25,41],
+"classafio__v2__xxx_1_1map__handle.html#aca05f73280e20cb18cc0dd7f60a1aae1":[3,0,0,25,27],
"classafio__v2__xxx_1_1map__handle.html#acd3a23554d49cd7761c05c78316e843d":[3,0,0,25,17],
-"classafio__v2__xxx_1_1map__handle.html#ad02958278a0d92e4ec4fb864ba1eb35b":[3,0,0,25,35],
-"classafio__v2__xxx_1_1map__handle.html#ad44dcd9c7ca9e7a094dd1bc7c8aa4897":[3,0,0,25,46],
+"classafio__v2__xxx_1_1map__handle.html#ad02958278a0d92e4ec4fb864ba1eb35b":[3,0,0,25,38],
+"classafio__v2__xxx_1_1map__handle.html#ad29ceb1ecb38e9e74e63404b7db3a5a2":[3,0,0,25,25],
+"classafio__v2__xxx_1_1map__handle.html#ad44dcd9c7ca9e7a094dd1bc7c8aa4897":[3,0,0,25,49],
"classafio__v2__xxx_1_1map__handle.html#ad6ab309f4df975892f3bcbef345c779b":[3,0,0,25,23],
-"classafio__v2__xxx_1_1map__handle.html#adffdff916ccf13d88a02ddb6b6a421c8":[3,0,0,25,74],
-"classafio__v2__xxx_1_1map__handle.html#ae33d4d0faa1377cd371bd6a0ae0769ae":[3,0,0,25,31],
-"classafio__v2__xxx_1_1map__handle.html#aeabd245b6edcfb57779b29c6f2ea9737":[3,0,0,25,47],
-"classafio__v2__xxx_1_1map__handle.html#aefac4710e5617264347f437b04732c01":[3,0,0,25,65],
-"classafio__v2__xxx_1_1map__handle.html#af024e3d92d9a01ac367734e9cdc517fb":[3,0,0,25,71],
-"classafio__v2__xxx_1_1map__handle.html#af1610ec7fb0a41f039e3e17e0dc467ab":[3,0,0,25,59],
-"classafio__v2__xxx_1_1map__handle.html#af42904dd49b5517a303e7cb256eae939":[3,0,0,25,34],
-"classafio__v2__xxx_1_1map__handle.html#af776fe76eb1e2e493d9d2ddbde0b150c":[3,0,0,25,76],
-"classafio__v2__xxx_1_1map__handle.html#af85f9116968f2a2900640846009f48ea":[3,0,0,25,70],
-"classafio__v2__xxx_1_1map__handle.html#affb10caeeca67b804695b7378be29e23":[3,0,0,25,57],
+"classafio__v2__xxx_1_1map__handle.html#add161546c0769941fce4fd9f06934e03":[3,0,0,25,71],
+"classafio__v2__xxx_1_1map__handle.html#adffdff916ccf13d88a02ddb6b6a421c8":[3,0,0,25,79],
+"classafio__v2__xxx_1_1map__handle.html#ae33d4d0faa1377cd371bd6a0ae0769ae":[3,0,0,25,33],
+"classafio__v2__xxx_1_1map__handle.html#aeabd245b6edcfb57779b29c6f2ea9737":[3,0,0,25,50],
+"classafio__v2__xxx_1_1map__handle.html#aefac4710e5617264347f437b04732c01":[3,0,0,25,70],
+"classafio__v2__xxx_1_1map__handle.html#af024e3d92d9a01ac367734e9cdc517fb":[3,0,0,25,76],
+"classafio__v2__xxx_1_1map__handle.html#af1610ec7fb0a41f039e3e17e0dc467ab":[3,0,0,25,62],
+"classafio__v2__xxx_1_1map__handle.html#af42904dd49b5517a303e7cb256eae939":[3,0,0,25,37],
+"classafio__v2__xxx_1_1map__handle.html#af776fe76eb1e2e493d9d2ddbde0b150c":[3,0,0,25,82],
+"classafio__v2__xxx_1_1map__handle.html#af85f9116968f2a2900640846009f48ea":[3,0,0,25,75],
+"classafio__v2__xxx_1_1map__handle.html#af9699a9a290ba974184f844c2f6038e8":[3,0,0,25,66],
+"classafio__v2__xxx_1_1map__handle.html#affb10caeeca67b804695b7378be29e23":[3,0,0,25,60],
"classafio__v2__xxx_1_1mapped__file__handle.html":[3,0,0,26],
"classafio__v2__xxx_1_1mapped__file__handle.html#a00f42a44de714feb3ed86dd0a175e69c":[3,0,0,26,50],
"classafio__v2__xxx_1_1mapped__file__handle.html#a0344f48ef10fa2b94199d5566aedd879":[3,0,0,26,16],
@@ -94,9 +107,9 @@ var NAVTREEINDEX3 =
"classafio__v2__xxx_1_1mapped__file__handle.html#a7e45c857d47961469496795f1c5c242b":[3,0,0,26,96],
"classafio__v2__xxx_1_1mapped__file__handle.html#a875440f1b368472f1840c70c266f3a48":[3,0,0,26,58],
"classafio__v2__xxx_1_1mapped__file__handle.html#a88689b15e6e8b6ce1f945737dee4369e":[3,0,0,26,52],
-"classafio__v2__xxx_1_1mapped__file__handle.html#a8af6c6dc1502d40f6aaccc83e49d5342":[3,0,0,26,63],
"classafio__v2__xxx_1_1mapped__file__handle.html#a8e129e3bc9b5f2f8f51d6b9256aa3fa9":[3,0,0,26,29],
"classafio__v2__xxx_1_1mapped__file__handle.html#a9181a6c406a7206a743be7be368b17d8":[3,0,0,26,94],
+"classafio__v2__xxx_1_1mapped__file__handle.html#a928a8ab64d5b7d68dc7e2b3e5849df24":[3,0,0,26,63],
"classafio__v2__xxx_1_1mapped__file__handle.html#a959c04239b557c6d3c3c0e996563abb8":[3,0,0,26,95],
"classafio__v2__xxx_1_1mapped__file__handle.html#a96b9da71ee7791fbaaa2470c936ec763":[3,0,0,26,83],
"classafio__v2__xxx_1_1mapped__file__handle.html#a97ffbbf53f51549549efef0b49e125dc":[3,0,0,26,27],
@@ -106,7 +119,6 @@ var NAVTREEINDEX3 =
"classafio__v2__xxx_1_1mapped__file__handle.html#aa7fe74ccbf2fc255897bacaa6c41d319":[3,0,0,26,55],
"classafio__v2__xxx_1_1mapped__file__handle.html#aaacc27a62ce0859506d7443f0d0e7adf":[3,0,0,26,61],
"classafio__v2__xxx_1_1mapped__file__handle.html#aac62f621c42be6eeb8d9a5700da367f9":[3,0,0,26,46],
-"classafio__v2__xxx_1_1mapped__file__handle.html#ab26a3c5a18cdcc67a506533dbe55e2b3":[3,0,0,26,86],
"classafio__v2__xxx_1_1mapped__file__handle.html#ab3d876f5996605158fd6a0582adadad6":[3,0,0,26,37],
"classafio__v2__xxx_1_1mapped__file__handle.html#ab790af4654f5455d8c5e1f1d397543ca":[3,0,0,26,40],
"classafio__v2__xxx_1_1mapped__file__handle.html#ab808f7ff9de4f37e046afa4cb90478b7":[3,0,0,26,13],
@@ -121,6 +133,7 @@ var NAVTREEINDEX3 =
"classafio__v2__xxx_1_1mapped__file__handle.html#ad4989ff4925e90b34a1cdea824bf0bac":[3,0,0,26,8],
"classafio__v2__xxx_1_1mapped__file__handle.html#ad8714dac7f0b13ceca5f21ba25e1fa10":[3,0,0,26,59],
"classafio__v2__xxx_1_1mapped__file__handle.html#adca505e51ea006ffa59e3673ea0a9853":[3,0,0,26,24],
+"classafio__v2__xxx_1_1mapped__file__handle.html#add161546c0769941fce4fd9f06934e03":[3,0,0,26,86],
"classafio__v2__xxx_1_1mapped__file__handle.html#addc3baa29bc2b309043dcc314c984cfe":[3,0,0,26,3],
"classafio__v2__xxx_1_1mapped__file__handle.html#ade79cbd3cd40e6d194492319c3367da6":[3,0,0,26,33],
"classafio__v2__xxx_1_1mapped__file__handle.html#ae19ad565fe47d1474882c4cf682db493":[3,0,0,26,34],
@@ -234,20 +247,7 @@ var NAVTREEINDEX3 =
"classafio__v2__xxx_1_1path__view.html#afe1d2028c669a3879a1d998fdf564f3b":[3,0,0,30,16],
"classafio__v2__xxx_1_1path__view.html#afe8d89ac3b464dd8f4b4152c76bd1cc0":[3,0,0,30,9],
"classafio__v2__xxx_1_1section__handle.html":[3,0,0,31],
-"classafio__v2__xxx_1_1section__handle.html#a00f42a44de714feb3ed86dd0a175e69c":[3,0,0,31,34],
+"classafio__v2__xxx_1_1section__handle.html#a00f42a44de714feb3ed86dd0a175e69c":[3,0,0,31,35],
"classafio__v2__xxx_1_1section__handle.html#a0489b6c1e25cd2bad2ba1ec86e1aaf18":[3,0,0,31,7],
-"classafio__v2__xxx_1_1section__handle.html#a0489b6c1e25cd2bad2ba1ec86e1aaf18a334c4a4c42fdb79d7ebc3e73b517e6f8":[3,0,0,31,7,1],
-"classafio__v2__xxx_1_1section__handle.html#a0489b6c1e25cd2bad2ba1ec86e1aaf18a8d7b3d6b83c0a517eac07e1aac94b773":[3,0,0,31,7,0],
-"classafio__v2__xxx_1_1section__handle.html#a0489b6c1e25cd2bad2ba1ec86e1aaf18a9516dfb15f51c7ee19a4d46b8c0dbe1d":[3,0,0,31,7,6],
-"classafio__v2__xxx_1_1section__handle.html#a0489b6c1e25cd2bad2ba1ec86e1aaf18a9f56aff64cb748e078ab221474132d19":[3,0,0,31,7,3],
-"classafio__v2__xxx_1_1section__handle.html#a0489b6c1e25cd2bad2ba1ec86e1aaf18aa4daf6d1e8da35af49c33bbe9ee91d79":[3,0,0,31,7,2],
-"classafio__v2__xxx_1_1section__handle.html#a0489b6c1e25cd2bad2ba1ec86e1aaf18aecae13117d6f0584c25a9da6c8f8415e":[3,0,0,31,7,4],
-"classafio__v2__xxx_1_1section__handle.html#a0489b6c1e25cd2bad2ba1ec86e1aaf18aefb2a684e4afb7d55e6147fbe5a332ee":[3,0,0,31,7,5],
-"classafio__v2__xxx_1_1section__handle.html#a0f95ed462d97954df59e6b56625ce899":[3,0,0,31,41],
-"classafio__v2__xxx_1_1section__handle.html#a1b77cff150e130669624b5046b35e01e":[3,0,0,31,43],
-"classafio__v2__xxx_1_1section__handle.html#a22825af99eb92a3c137dc34e3e14252a":[3,0,0,31,37],
-"classafio__v2__xxx_1_1section__handle.html#a229f515ed3251071d374476204e23e30":[3,0,0,31,46],
-"classafio__v2__xxx_1_1section__handle.html#a2824f51d5726bb8015d89ac1ea7abe5f":[3,0,0,31,9],
-"classafio__v2__xxx_1_1section__handle.html#a349e001cbe359d4e7a8f066c69e9361e":[3,0,0,31,27],
-"classafio__v2__xxx_1_1section__handle.html#a3c26e221ec4de3bc485989ff104261d1":[3,0,0,31,48]
+"classafio__v2__xxx_1_1section__handle.html#a0489b6c1e25cd2bad2ba1ec86e1aaf18a334c4a4c42fdb79d7ebc3e73b517e6f8":[3,0,0,31,7,1]
};
diff --git a/navtreeindex4.js b/navtreeindex4.js
index abad79cf..eea3712e 100644
--- a/navtreeindex4.js
+++ b/navtreeindex4.js
@@ -1,20 +1,34 @@
var NAVTREEINDEX4 =
{
-"classafio__v2__xxx_1_1section__handle.html#a3c777f045dc2b0248b891d6e7811d152":[3,0,0,31,31],
+"classafio__v2__xxx_1_1section__handle.html#a0489b6c1e25cd2bad2ba1ec86e1aaf18a8d7b3d6b83c0a517eac07e1aac94b773":[3,0,0,31,7,0],
+"classafio__v2__xxx_1_1section__handle.html#a0489b6c1e25cd2bad2ba1ec86e1aaf18a9516dfb15f51c7ee19a4d46b8c0dbe1d":[3,0,0,31,7,6],
+"classafio__v2__xxx_1_1section__handle.html#a0489b6c1e25cd2bad2ba1ec86e1aaf18a9f56aff64cb748e078ab221474132d19":[3,0,0,31,7,3],
+"classafio__v2__xxx_1_1section__handle.html#a0489b6c1e25cd2bad2ba1ec86e1aaf18aa4daf6d1e8da35af49c33bbe9ee91d79":[3,0,0,31,7,2],
+"classafio__v2__xxx_1_1section__handle.html#a0489b6c1e25cd2bad2ba1ec86e1aaf18aecae13117d6f0584c25a9da6c8f8415e":[3,0,0,31,7,4],
+"classafio__v2__xxx_1_1section__handle.html#a0489b6c1e25cd2bad2ba1ec86e1aaf18aefb2a684e4afb7d55e6147fbe5a332ee":[3,0,0,31,7,5],
+"classafio__v2__xxx_1_1section__handle.html#a0f95ed462d97954df59e6b56625ce899":[3,0,0,31,42],
+"classafio__v2__xxx_1_1section__handle.html#a111bb9698b6180e9f211e27816f8a4da":[3,0,0,31,25],
+"classafio__v2__xxx_1_1section__handle.html#a1b77cff150e130669624b5046b35e01e":[3,0,0,31,44],
+"classafio__v2__xxx_1_1section__handle.html#a22825af99eb92a3c137dc34e3e14252a":[3,0,0,31,38],
+"classafio__v2__xxx_1_1section__handle.html#a229f515ed3251071d374476204e23e30":[3,0,0,31,47],
+"classafio__v2__xxx_1_1section__handle.html#a2824f51d5726bb8015d89ac1ea7abe5f":[3,0,0,31,9],
+"classafio__v2__xxx_1_1section__handle.html#a349e001cbe359d4e7a8f066c69e9361e":[3,0,0,31,28],
+"classafio__v2__xxx_1_1section__handle.html#a3c26e221ec4de3bc485989ff104261d1":[3,0,0,31,49],
+"classafio__v2__xxx_1_1section__handle.html#a3c777f045dc2b0248b891d6e7811d152":[3,0,0,31,32],
"classafio__v2__xxx_1_1section__handle.html#a3fc7db93fac699f5ecad453642ed314e":[3,0,0,31,14],
-"classafio__v2__xxx_1_1section__handle.html#a4194a05dd9694d2c47d5a45f925db1d7":[3,0,0,31,32],
-"classafio__v2__xxx_1_1section__handle.html#a428fdb11c830ba8ad191590a0fb48535":[3,0,0,31,47],
+"classafio__v2__xxx_1_1section__handle.html#a4194a05dd9694d2c47d5a45f925db1d7":[3,0,0,31,33],
+"classafio__v2__xxx_1_1section__handle.html#a428fdb11c830ba8ad191590a0fb48535":[3,0,0,31,48],
"classafio__v2__xxx_1_1section__handle.html#a45ff5c1c5662623d99156870dfeee0a7":[3,0,0,31,6],
"classafio__v2__xxx_1_1section__handle.html#a45ff5c1c5662623d99156870dfeee0a7a244f58cf07c35fd48d7524b289551e5c":[3,0,0,31,6,3],
"classafio__v2__xxx_1_1section__handle.html#a45ff5c1c5662623d99156870dfeee0a7a8f0339e854eb5321306a443ce9199e1d":[3,0,0,31,6,2],
"classafio__v2__xxx_1_1section__handle.html#a45ff5c1c5662623d99156870dfeee0a7aa200dcd6176417e93be2405188ae7cc9":[3,0,0,31,6,0],
"classafio__v2__xxx_1_1section__handle.html#a45ff5c1c5662623d99156870dfeee0a7abba3bc579480e6c94ecd81b7b5923255":[3,0,0,31,6,1],
-"classafio__v2__xxx_1_1section__handle.html#a526c300d421155ccc071b04db4bca65d":[3,0,0,31,28],
+"classafio__v2__xxx_1_1section__handle.html#a526c300d421155ccc071b04db4bca65d":[3,0,0,31,29],
"classafio__v2__xxx_1_1section__handle.html#a5464eac84bedf1ce13318451b3a95e93":[3,0,0,31,17],
"classafio__v2__xxx_1_1section__handle.html#a54790e954f57372b87b095451cc79c38":[3,0,0,31,18],
-"classafio__v2__xxx_1_1section__handle.html#a5be9a526bc5c1be758b0cfc36a262f6e":[3,0,0,31,33],
+"classafio__v2__xxx_1_1section__handle.html#a5be9a526bc5c1be758b0cfc36a262f6e":[3,0,0,31,34],
"classafio__v2__xxx_1_1section__handle.html#a616a67222676af5ec5b3aa94d7c02428":[3,0,0,31,20],
-"classafio__v2__xxx_1_1section__handle.html#a657c12a309cf02bf2351bfcc7f41463b":[3,0,0,31,45],
+"classafio__v2__xxx_1_1section__handle.html#a657c12a309cf02bf2351bfcc7f41463b":[3,0,0,31,46],
"classafio__v2__xxx_1_1section__handle.html#a6c4df2242ece6f63ba7ef4e6baafaca6":[3,0,0,31,3],
"classafio__v2__xxx_1_1section__handle.html#a6f7e37c73271968271c2342023f58c9e":[3,0,0,31,5],
"classafio__v2__xxx_1_1section__handle.html#a6f7e37c73271968271c2342023f58c9ea0fb9cf5f04f61bb6f1151da57ceb1ca1":[3,0,0,31,5,3],
@@ -26,35 +40,35 @@ var NAVTREEINDEX4 =
"classafio__v2__xxx_1_1section__handle.html#a6f7e37c73271968271c2342023f58c9eadec4ecca8ae1593f84eea4656599a693":[3,0,0,31,5,4],
"classafio__v2__xxx_1_1section__handle.html#a6f7e37c73271968271c2342023f58c9eadfa4d35596e04e042a53c64b25c22db3":[3,0,0,31,5,6],
"classafio__v2__xxx_1_1section__handle.html#a71137cb82edd9a1bcb24f64886b5826d":[3,0,0,31,13],
-"classafio__v2__xxx_1_1section__handle.html#a73d5f2070bce0c3d7fa536d3cbed7b52":[3,0,0,31,39],
+"classafio__v2__xxx_1_1section__handle.html#a73d5f2070bce0c3d7fa536d3cbed7b52":[3,0,0,31,40],
"classafio__v2__xxx_1_1section__handle.html#a74e73651ebfc233e31fff3d39b3a8e1a":[3,0,0,31,10],
-"classafio__v2__xxx_1_1section__handle.html#a771ef2bf39ad784eb6265dde077792ad":[3,0,0,31,52],
+"classafio__v2__xxx_1_1section__handle.html#a771ef2bf39ad784eb6265dde077792ad":[3,0,0,31,53],
"classafio__v2__xxx_1_1section__handle.html#a77d41fe0e8cc1f87a5b4259a059b3d93":[3,0,0,31,19],
"classafio__v2__xxx_1_1section__handle.html#a84ec7259dfb8bab518d3def875bdc6f2":[3,0,0,31,11],
-"classafio__v2__xxx_1_1section__handle.html#a852a6b382a9e69f568977b2cd53e0496":[3,0,0,31,44],
-"classafio__v2__xxx_1_1section__handle.html#a875440f1b368472f1840c70c266f3a48":[3,0,0,31,36],
+"classafio__v2__xxx_1_1section__handle.html#a852a6b382a9e69f568977b2cd53e0496":[3,0,0,31,45],
+"classafio__v2__xxx_1_1section__handle.html#a875440f1b368472f1840c70c266f3a48":[3,0,0,31,37],
"classafio__v2__xxx_1_1section__handle.html#a8cfdc88e31b1bd1dad19ec2668c7f59d":[3,0,0,31,1],
"classafio__v2__xxx_1_1section__handle.html#a8f20e4f7aec4eb5545b9b223471ae1fc":[3,0,0,31,12],
"classafio__v2__xxx_1_1section__handle.html#a97ffbbf53f51549549efef0b49e125dc":[3,0,0,31,15],
-"classafio__v2__xxx_1_1section__handle.html#a9cdd4716f5c29bd733246721edcbd6bb":[3,0,0,31,38],
+"classafio__v2__xxx_1_1section__handle.html#a9cdd4716f5c29bd733246721edcbd6bb":[3,0,0,31,39],
"classafio__v2__xxx_1_1section__handle.html#a9d31e04371c3a752c581359c8eb965c7":[3,0,0,31,2],
-"classafio__v2__xxx_1_1section__handle.html#a9f0dec7d839f348c39e7a185777866ea":[3,0,0,31,35],
+"classafio__v2__xxx_1_1section__handle.html#a9f0dec7d839f348c39e7a185777866ea":[3,0,0,31,36],
"classafio__v2__xxx_1_1section__handle.html#aa53d88105df8c6be01be649829a65b14":[3,0,0,31,23],
"classafio__v2__xxx_1_1section__handle.html#aa75ec36a7f88640bb8822976125d3ad5":[3,0,0,31,8],
"classafio__v2__xxx_1_1section__handle.html#aab05cce42ff482ab80ba122c7871c932":[3,0,0,31,4],
-"classafio__v2__xxx_1_1section__handle.html#aac62f621c42be6eeb8d9a5700da367f9":[3,0,0,31,30],
+"classafio__v2__xxx_1_1section__handle.html#aac62f621c42be6eeb8d9a5700da367f9":[3,0,0,31,31],
"classafio__v2__xxx_1_1section__handle.html#ab3d876f5996605158fd6a0582adadad6":[3,0,0,31,21],
"classafio__v2__xxx_1_1section__handle.html#ab790af4654f5455d8c5e1f1d397543ca":[3,0,0,31,24],
-"classafio__v2__xxx_1_1section__handle.html#ac46e0a296c31fcd0a996a79d78647fb6":[3,0,0,31,51],
-"classafio__v2__xxx_1_1section__handle.html#ac5b2859fabe04dbfc37020daed618257":[3,0,0,31,29],
+"classafio__v2__xxx_1_1section__handle.html#ac46e0a296c31fcd0a996a79d78647fb6":[3,0,0,31,52],
+"classafio__v2__xxx_1_1section__handle.html#ac5b2859fabe04dbfc37020daed618257":[3,0,0,31,30],
"classafio__v2__xxx_1_1section__handle.html#acdebf8de23e97950968d3fba84141366":[3,0,0,31,16],
-"classafio__v2__xxx_1_1section__handle.html#ad02958278a0d92e4ec4fb864ba1eb35b":[3,0,0,31,26],
+"classafio__v2__xxx_1_1section__handle.html#ad02958278a0d92e4ec4fb864ba1eb35b":[3,0,0,31,27],
"classafio__v2__xxx_1_1section__handle.html#ae33d4d0faa1377cd371bd6a0ae0769ae":[3,0,0,31,22],
-"classafio__v2__xxx_1_1section__handle.html#af024e3d92d9a01ac367734e9cdc517fb":[3,0,0,31,49],
-"classafio__v2__xxx_1_1section__handle.html#af1610ec7fb0a41f039e3e17e0dc467ab":[3,0,0,31,42],
-"classafio__v2__xxx_1_1section__handle.html#af42904dd49b5517a303e7cb256eae939":[3,0,0,31,25],
-"classafio__v2__xxx_1_1section__handle.html#afa234bf3475037d668f5f0a9e55ad036":[3,0,0,31,50],
-"classafio__v2__xxx_1_1section__handle.html#affb10caeeca67b804695b7378be29e23":[3,0,0,31,40],
+"classafio__v2__xxx_1_1section__handle.html#af024e3d92d9a01ac367734e9cdc517fb":[3,0,0,31,50],
+"classafio__v2__xxx_1_1section__handle.html#af1610ec7fb0a41f039e3e17e0dc467ab":[3,0,0,31,43],
+"classafio__v2__xxx_1_1section__handle.html#af42904dd49b5517a303e7cb256eae939":[3,0,0,31,26],
+"classafio__v2__xxx_1_1section__handle.html#afa234bf3475037d668f5f0a9e55ad036":[3,0,0,31,51],
+"classafio__v2__xxx_1_1section__handle.html#affb10caeeca67b804695b7378be29e23":[3,0,0,31,41],
"classafio__v2__xxx_1_1utils_1_1page__allocator.html":[3,0,0,3,0],
"classafio__v2__xxx_1_1utils_1_1page__allocator.html#a0e689b3f2a0db060574740ca8bc82174":[3,0,0,3,0,2],
"classafio__v2__xxx_1_1utils_1_1page__allocator.html#a2922e6f29ef1998099a8a2688276e360":[3,0,0,3,0,8],
@@ -82,18 +96,19 @@ var NAVTREEINDEX4 =
"classafio__v2__xxx_1_1utils_1_1page__allocator_3_01void_01_4.html#ae4941acdb8dedebb688aa16f0d5f31d3":[3,0,0,3,1,3],
"classes.html":[3,1],
"config_8hpp.html":[4,0,0,0,0,3],
-"config_8hpp.html#a01f7cebaa9daf8a041e3d362a85a7d18":[4,0,0,0,0,3,51],
+"config_8hpp.html#a01f7cebaa9daf8a041e3d362a85a7d18":[4,0,0,0,0,3,52],
"config_8hpp.html#a0223ac96deaa57f1c6124e8ea00f987e":[4,0,0,0,0,3,43],
-"config_8hpp.html#a02415bd7a9e444399d9575e7627709f2":[4,0,0,0,0,3,50],
-"config_8hpp.html#a08363b8572e6a8971a6d236d54fb8287":[4,0,0,0,0,3,44],
+"config_8hpp.html#a02415bd7a9e444399d9575e7627709f2":[4,0,0,0,0,3,51],
+"config_8hpp.html#a08363b8572e6a8971a6d236d54fb8287":[4,0,0,0,0,3,45],
"config_8hpp.html#a10535ba14c672e51779ac3d70b2e09d8":[4,0,0,0,0,3,4],
"config_8hpp.html#a118bac72fc880ce25dea8b77886d1e5a":[4,0,0,0,0,3,16],
-"config_8hpp.html#a14e8f43a04092eb024ced8b5909cfd88":[4,0,0,0,0,3,49],
+"config_8hpp.html#a14e8f43a04092eb024ced8b5909cfd88":[4,0,0,0,0,3,50],
"config_8hpp.html#a1d5e94adf2f71b7cfe4e8637132b84be":[4,0,0,0,0,3,17],
"config_8hpp.html#a21b2b83de81415cc20c331b2b8784574":[4,0,0,0,0,3,28],
"config_8hpp.html#a233035c2698f3cbf5910c8ecf5193135":[4,0,0,0,0,3,5],
+"config_8hpp.html#a2428d00bd15bd397f8eed6f8a13c3468":[4,0,0,0,0,3,53],
"config_8hpp.html#a25c3aac8fb81959d7233ad3f0caa50ac":[4,0,0,0,0,3,29],
-"config_8hpp.html#a32361fd287b7160ae34aada17191e41e":[4,0,0,0,0,3,47],
+"config_8hpp.html#a32361fd287b7160ae34aada17191e41e":[4,0,0,0,0,3,48],
"config_8hpp.html#a417103c1aa37f942787e8cff57dbfe76":[4,0,0,0,0,3,30],
"config_8hpp.html#a54fbf115a2753bd20efdaac10df60c04":[4,0,0,0,0,3,25],
"config_8hpp.html#a55941737a7ecd8f04f0bebeaa4ea5f03":[4,0,0,0,0,3,39],
@@ -104,15 +119,16 @@ var NAVTREEINDEX4 =
"config_8hpp.html#a79bcfd1ccc55f071e7101f411fdf4f37":[4,0,0,0,0,3,19],
"config_8hpp.html#a7ca979e5ecde58384b6a964b8db006cc":[4,0,0,0,0,3,42],
"config_8hpp.html#a84d91a729e5c9f99860fe8548bfbbb08":[4,0,0,0,0,3,6],
-"config_8hpp.html#aa5f11cc32803b0966fe64dfdc325a18b":[4,0,0,0,0,3,45],
+"config_8hpp.html#a8ef55b4834fe3a95bfa1c18c9defd261":[4,0,0,0,0,3,54],
+"config_8hpp.html#a9c3fa6c24a7218493a02150e363c5e6a":[4,0,0,0,0,3,44],
+"config_8hpp.html#aa5f11cc32803b0966fe64dfdc325a18b":[4,0,0,0,0,3,46],
"config_8hpp.html#ab9a24d77ed59e1188baba7ba84caf072":[4,0,0,0,0,3,14],
"config_8hpp.html#abacadff1ffbf16bfba8ef9a3d6fb20d8":[4,0,0,0,0,3,41],
-"config_8hpp.html#ac0d5364044c4627667e827f5aaaa183f":[4,0,0,0,0,3,48],
+"config_8hpp.html#ac0d5364044c4627667e827f5aaaa183f":[4,0,0,0,0,3,49],
"config_8hpp.html#acbe665de1b68bf885e467e5203d6975a":[4,0,0,0,0,3,26],
"config_8hpp.html#acddef6e4881c962632b3539d7d52835c":[4,0,0,0,0,3,15],
-"config_8hpp.html#ae11f63b07f766758e45df316122b3598":[4,0,0,0,0,3,46],
+"config_8hpp.html#ae11f63b07f766758e45df316122b3598":[4,0,0,0,0,3,47],
"config_8hpp.html#ae3f3879c99ecb9e72ae39dba776bde05":[4,0,0,0,0,3,22],
-"config_8hpp.html#ae44838fe79524e9d9eb432eb072395cb":[4,0,0,0,0,3,52],
"config_8hpp.html#ae49d7cc75eaf5579526f169b04d66023":[4,0,0,0,0,3,7],
"config_8hpp.html#aed225790bbca36d005efff21edbee937":[4,0,0,0,0,3,40],
"config_8hpp.html#aedb0d0f8ee1a6decb31e0e7d1fbcab0e":[4,0,0,0,0,3,18],
@@ -131,23 +147,23 @@ var NAVTREEINDEX4 =
"directory__handle_8hpp.html#a275b97722fe32f3946d8b23206ffb8da":[4,0,0,0,0,5,6],
"directory__handle_8hpp.html#a2cbad389de45a9893ef02eeec86dcd21":[4,0,0,0,0,5,7],
"directory__handle_8hpp.html#a3ece430e8478fc6909cd7ec2fc0082b3":[4,0,0,0,0,5,10],
+"directory__handle_8hpp.html#a83828cb013df9d77b08ec0ac59037c85":[4,0,0,0,0,5,5],
"directory__handle_8hpp.html#ac095df054e29fb086f9e7b96274c3c67":[4,0,0,0,0,5,11],
"directory__handle_8hpp.html#adc0cc191e052bf33253287e0d1baeb4c":[4,0,0,0,0,5,8],
-"directory__handle_8hpp.html#affce2389376e27ffa0565890034d209f":[4,0,0,0,0,5,5],
"file__handle_8hpp.html":[4,0,0,0,0,6],
-"file__handle_8hpp.html#a2a2248a6545d55ee8f46628c8afb7946":[4,0,0,0,0,6,8],
"file__handle_8hpp.html#a579d619e4d73e584fdd41e34761afa67":[4,0,0,0,0,6,6],
-"file__handle_8hpp.html#a84b5a9fc93107c673160b41fff151938":[4,0,0,0,0,6,3],
"file__handle_8hpp.html#a84d22c966fcabe50de30ad8cf26c7241":[4,0,0,0,0,6,9],
"file__handle_8hpp.html#aa14b24c8bc330dd8e472f42676ba03d6":[4,0,0,0,0,6,7],
"file__handle_8hpp.html#aac0b7d76c4298e86cef49c832c93edec":[4,0,0,0,0,6,5],
+"file__handle_8hpp.html#ab92ca63383ef7fe58af4620570d12803":[4,0,0,0,0,6,3],
"file__handle_8hpp.html#ac3c009153d916556b991d4a79c664fe9":[4,0,0,0,0,6,2],
+"file__handle_8hpp.html#aca98b0cb43a2d925bb65e055b07b4a08":[4,0,0,0,0,6,8],
"file__handle_8hpp.html#ae412aa7c9e37601d1814e75d09795185":[4,0,0,0,0,6,10],
"file__handle_8hpp.html#afe66c5875c48c8bd172901a1159ccbdc":[4,0,0,0,0,6,4],
"files.html":[4,0],
"fs__handle_8hpp.html":[4,0,0,0,0,7],
-"fs__handle_8hpp.html#a8d7c50561e9103968467c928f2e38f16":[4,0,0,0,0,7,1],
"fs__handle_8hpp.html#abefe1503efb01ea89200b829bcd87713":[4,0,0,0,0,7,2],
+"fs__handle_8hpp.html#aea0fac310f773ae58f672ec4b506887d":[4,0,0,0,0,7,1],
"functions.html":[3,3,0],
"functions.html":[3,3,0,0],
"functions_a.html":[3,3,0,1],
@@ -204,14 +220,14 @@ var NAVTREEINDEX4 =
"group__config.html":[1,0],
"group__config.html#ga0253d527092480116edc862aac54da62":[1,0,2],
"group__config.html#ga0253d527092480116edc862aac54da62":[4,0,0,0,0,3,10],
-"group__config.html#ga0d327438e5744ed72dc80dd3c85f87d6":[1,0,5],
"group__config.html#ga0d327438e5744ed72dc80dd3c85f87d6":[4,0,0,0,0,3,23],
+"group__config.html#ga0d327438e5744ed72dc80dd3c85f87d6":[1,0,5],
"group__config.html#ga44d280b35341b388f646bca61c056bcf":[1,0,11],
"group__config.html#ga44d280b35341b388f646bca61c056bcf":[4,0,0,0,0,3,36],
"group__config.html#ga5a7b3dbd25ff8837537f5847fbd4277c":[1,0,14],
"group__config.html#ga5a7b3dbd25ff8837537f5847fbd4277c":[4,0,0,0,2,7],
-"group__config.html#ga5ad5fa96bde3c76256d5c16c08023a0b":[4,0,0,0,0,3,9],
"group__config.html#ga5ad5fa96bde3c76256d5c16c08023a0b":[1,0,1],
+"group__config.html#ga5ad5fa96bde3c76256d5c16c08023a0b":[4,0,0,0,0,3,9],
"group__config.html#ga6a0165e41661247f1a10b44e3f38ba52":[1,0,7],
"group__config.html#ga6a0165e41661247f1a10b44e3f38ba52":[4,0,0,0,2,3],
"group__config.html#ga7172d84eb04f1b165ec13ca67ab672c5":[1,0,15],
@@ -233,21 +249,5 @@ var NAVTREEINDEX4 =
"group__config.html#gaf5f9b13a512047008c0caeb5fcd310e0":[4,0,0,0,0,3,37],
"group__config.html#gaf5f9b13a512047008c0caeb5fcd310e0":[1,0,12],
"group__config.html#gafa3b0c57823d6f9736497df6a1571a95":[1,0,0],
-"group__config.html#gafa3b0c57823d6f9736497df6a1571a95":[4,0,0,0,0,3,8],
-"group__config.html#gafab2566c573eef8945053c8d57976764":[1,0,13],
-"group__config.html#gafab2566c573eef8945053c8d57976764":[4,0,0,0,2,6],
-"handle_8hpp.html":[4,0,0,0,0,8],
-"handle_8hpp.html#a23c535a7d67a0bbd0cf3254325b6efc7":[4,0,0,0,0,8,5],
-"handle_8hpp.html#a2e9ad4a02efc6016631baecfbc1d1d4d":[4,0,0,0,0,8,9],
-"handle_8hpp.html#a3a4327cf9a53ded4a8dad10058e5a5fd":[4,0,0,0,0,8,7],
-"handle_8hpp.html#a6bee597c46adc4f62e9d589c22382d88":[4,0,0,0,0,8,6],
-"handle_8hpp.html#ab1099050cffcc75a225b98a73e2f4e6a":[4,0,0,0,0,8,10],
-"handle_8hpp.html#ab462e4cc74c6c8e36882547023c46d88":[4,0,0,0,0,8,3],
-"handle_8hpp.html#ab58a7e4b8ff1e1a117e6a9d15bbe5b23":[4,0,0,0,0,8,4],
-"handle_8hpp.html#afc2bdd1199ddbfc7d8347d8322eba897":[4,0,0,0,0,8,8],
-"hierarchy.html":[3,2],
-"index.html":[],
-"io__handle_8hpp.html":[4,0,0,0,0,9],
-"io__handle_8hpp.html#a2d15768d28ea660ebe44901508ed3372":[4,0,0,0,0,9,8],
-"io__handle_8hpp.html#a3cff8f3910dbf47663e5df1dc7e5ba47":[4,0,0,0,0,9,7]
+"group__config.html#gafa3b0c57823d6f9736497df6a1571a95":[4,0,0,0,0,3,8]
};
diff --git a/navtreeindex5.js b/navtreeindex5.js
index a26d7d81..c9a66c77 100644
--- a/navtreeindex5.js
+++ b/navtreeindex5.js
@@ -1,5 +1,23 @@
var NAVTREEINDEX5 =
{
+"group__config.html#gafab2566c573eef8945053c8d57976764":[1,0,13],
+"group__config.html#gafab2566c573eef8945053c8d57976764":[4,0,0,0,2,6],
+"handle_8hpp.html":[4,0,0,0,0,8],
+"handle_8hpp.html#a23c535a7d67a0bbd0cf3254325b6efc7":[4,0,0,0,0,8,5],
+"handle_8hpp.html#a2e9ad4a02efc6016631baecfbc1d1d4d":[4,0,0,0,0,8,9],
+"handle_8hpp.html#a3a4327cf9a53ded4a8dad10058e5a5fd":[4,0,0,0,0,8,7],
+"handle_8hpp.html#a6bee597c46adc4f62e9d589c22382d88":[4,0,0,0,0,8,6],
+"handle_8hpp.html#ab1099050cffcc75a225b98a73e2f4e6a":[4,0,0,0,0,8,10],
+"handle_8hpp.html#ab462e4cc74c6c8e36882547023c46d88":[4,0,0,0,0,8,3],
+"handle_8hpp.html#ab58a7e4b8ff1e1a117e6a9d15bbe5b23":[4,0,0,0,0,8,4],
+"handle_8hpp.html#afc2bdd1199ddbfc7d8347d8322eba897":[4,0,0,0,0,8,8],
+"hierarchy.html":[3,2],
+"index.html":[],
+"io__handle_8hpp.html":[4,0,0,0,0,9],
+"io__handle_8hpp.html#a2d15768d28ea660ebe44901508ed3372":[4,0,0,0,0,9,9],
+"io__handle_8hpp.html#a3cff8f3910dbf47663e5df1dc7e5ba47":[4,0,0,0,0,9,7],
+"io__handle_8hpp.html#a45b09c42c9a14c6abb56888a2832ba69":[4,0,0,0,0,9,8],
+"io__handle_8hpp.html#a53f3d40c5752d0dbeaa9b8233bff976f":[4,0,0,0,0,9,10],
"io__handle_8hpp.html#abb60a5dc89b41b1db101dbed12cb065d":[4,0,0,0,0,9,6],
"io__service_8hpp.html":[4,0,0,0,0,10],
"io__service_8hpp.html#aae4ac211f96f58a96027e350d45b4652":[4,0,0,0,0,10,3],
@@ -9,17 +27,22 @@ var NAVTREEINDEX5 =
"lock__files_8hpp.html":[4,0,0,0,0,0,0,3],
"map__handle_8hpp.html":[4,0,0,0,0,11],
"map__handle_8hpp.html#a04980337d833bcc33cae657d6654f6a0":[4,0,0,0,0,11,5],
-"map__handle_8hpp.html#a2bea94a20aae6fb34ebe1ffd03e50891":[4,0,0,0,0,11,9],
-"map__handle_8hpp.html#a2e9ad4a02efc6016631baecfbc1d1d4d":[4,0,0,0,0,11,11],
-"map__handle_8hpp.html#a4760df03b34efbb11c254b30eb6756f7":[4,0,0,0,0,11,14],
-"map__handle_8hpp.html#a5bfae365a1845c1bde4739de38c3653f":[4,0,0,0,0,11,16],
-"map__handle_8hpp.html#a6164dd52993407a203124b0761cc3bbc":[4,0,0,0,0,11,15],
-"map__handle_8hpp.html#aa7f2ca17db2468dbd5407e2f35870077":[4,0,0,0,0,11,6],
-"map__handle_8hpp.html#abb42093725f3206e37e53ec44c39ad68":[4,0,0,0,0,11,8],
-"map__handle_8hpp.html#ac89289d85eff137c40d3d0084c410656":[4,0,0,0,0,11,12],
-"map__handle_8hpp.html#accb0ec68871a9c3e3e7aeadc0f31e009":[4,0,0,0,0,11,10],
-"map__handle_8hpp.html#af9ac8a79d17fb5750dbe2c85c903e4c5":[4,0,0,0,0,11,13],
-"map__handle_8hpp.html#afc6d4594196e16ac67b25d91e48d09ee":[4,0,0,0,0,11,7],
+"map__handle_8hpp.html#a1b5c40714a95d835e7926b9508469bf2":[4,0,0,0,0,11,6],
+"map__handle_8hpp.html#a2bea94a20aae6fb34ebe1ffd03e50891":[4,0,0,0,0,11,10],
+"map__handle_8hpp.html#a2e9ad4a02efc6016631baecfbc1d1d4d":[4,0,0,0,0,11,12],
+"map__handle_8hpp.html#a42622b31d96b1098e37d9c527abd097d":[4,0,0,0,0,11,16],
+"map__handle_8hpp.html#a4760df03b34efbb11c254b30eb6756f7":[4,0,0,0,0,11,18],
+"map__handle_8hpp.html#a5bfae365a1845c1bde4739de38c3653f":[4,0,0,0,0,11,21],
+"map__handle_8hpp.html#a6164dd52993407a203124b0761cc3bbc":[4,0,0,0,0,11,19],
+"map__handle_8hpp.html#a6282e66d9ade4fea8e0508cfb65ec9ec":[4,0,0,0,0,11,14],
+"map__handle_8hpp.html#a7da47c9f5665b4c9b1c44c035bf2571c":[4,0,0,0,0,11,20],
+"map__handle_8hpp.html#aa7f2ca17db2468dbd5407e2f35870077":[4,0,0,0,0,11,7],
+"map__handle_8hpp.html#abb42093725f3206e37e53ec44c39ad68":[4,0,0,0,0,11,9],
+"map__handle_8hpp.html#ac89289d85eff137c40d3d0084c410656":[4,0,0,0,0,11,13],
+"map__handle_8hpp.html#accb0ec68871a9c3e3e7aeadc0f31e009":[4,0,0,0,0,11,11],
+"map__handle_8hpp.html#ae694d1c5ef24e2c6caa30b8d7ae6e12b":[4,0,0,0,0,11,15],
+"map__handle_8hpp.html#af9ac8a79d17fb5750dbe2c85c903e4c5":[4,0,0,0,0,11,17],
+"map__handle_8hpp.html#afc6d4594196e16ac67b25d91e48d09ee":[4,0,0,0,0,11,8],
"mapped__file__handle_8hpp.html":[4,0,0,0,0,12],
"mapped__file__handle_8hpp.html#a2c44844c18f66950187cb57292d7a676":[4,0,0,0,0,12,4],
"mapped__file__handle_8hpp.html#a8a3f597169756730e5f6436486fbd44b":[4,0,0,0,0,12,2],
@@ -28,7 +51,7 @@ var NAVTREEINDEX5 =
"mapped__file__handle_8hpp.html#abe51642ffc028c8f8b030944263b4a85":[4,0,0,0,0,12,3],
"mapped__file__handle_8hpp.html#ac021261f7a8696b0f4cbdcfacef1e88a":[4,0,0,0,0,12,7],
"mapped__file__handle_8hpp.html#ac9be648f691d72c9cac6295ea7b3f9c8":[4,0,0,0,0,12,5],
-"mapped__view_8hpp.html":[4,0,0,0,0,0,2],
+"mapped__span_8hpp.html":[4,0,0,0,0,0,2],
"memory__map_8hpp.html":[4,0,0,0,0,0,0,4],
"modules.html":[1],
"namespaceafio__v2__xxx.html":[3,0,0],
@@ -37,12 +60,12 @@ var NAVTREEINDEX5 =
"namespaceafio__v2__xxx_1_1algorithm.html":[2,0,0,0],
"namespaceafio__v2__xxx_1_1algorithm_1_1impl.html":[3,0,0,0,0],
"namespaceafio__v2__xxx_1_1algorithm_1_1impl.html":[2,0,0,0,0],
-"namespaceafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex.html":[3,0,0,0,1],
"namespaceafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex.html":[2,0,0,0,1],
-"namespaceafio__v2__xxx_1_1path__discovery.html":[2,0,0,1],
+"namespaceafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex.html":[3,0,0,0,1],
"namespaceafio__v2__xxx_1_1path__discovery.html":[3,0,0,1],
-"namespaceafio__v2__xxx_1_1storage__profile.html":[3,0,0,2],
+"namespaceafio__v2__xxx_1_1path__discovery.html":[2,0,0,1],
"namespaceafio__v2__xxx_1_1storage__profile.html":[2,0,0,2],
+"namespaceafio__v2__xxx_1_1storage__profile.html":[3,0,0,2],
"namespaceafio__v2__xxx_1_1utils.html":[3,0,0,3],
"namespaceafio__v2__xxx_1_1utils.html":[2,0,0,3],
"namespacemembers.html":[2,1,0],
@@ -59,7 +82,7 @@ var NAVTREEINDEX5 =
"path__discovery_8hpp.html#ae34df4ad4e4f2c977ef99575713fd9bf":[4,0,0,0,0,14,2],
"path__discovery_8hpp.html#af398b6c3762f60aa96cebd270879093e":[4,0,0,0,0,14,4],
"path__handle_8hpp.html":[4,0,0,0,0,15],
-"path__handle_8hpp.html#a7432c582b3af692a1f94be33aa73a00e":[4,0,0,0,0,15,2],
+"path__handle_8hpp.html#a7a98882ead35ebd6bd0700fdf571c44a":[4,0,0,0,0,15,2],
"path__handle_8hpp.html#ac9484fd22637e8e0102d7b48b080c075":[4,0,0,0,0,15,3],
"path__view_8hpp.html":[4,0,0,0,0,16],
"path__view_8hpp.html#a10b83cf245b2a1779d2016cb3cd69bdb":[4,0,0,0,0,16,5],
@@ -226,28 +249,5 @@ var NAVTREEINDEX5 =
"structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl_3_01true_00_01_t_01_4.html#a77ac1dfbe6f0df38bf9ecd3fbdf515fe":[3,0,0,0,0,1,19],
"structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl_3_01true_00_01_t_01_4.html#a782e7042f5ef8e5794566ad990418a8a":[3,0,0,0,0,1,36],
"structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl_3_01true_00_01_t_01_4.html#a829281d387d6fe30048d9bcc4a75580c":[3,0,0,0,0,1,37],
-"structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl_3_01true_00_01_t_01_4.html#a83a15aa2a15fe2231ee7c5691f9cc6e7":[3,0,0,0,0,1,27],
-"structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl_3_01true_00_01_t_01_4.html#a8daf059785543d0e281a4e3fe3903dcd":[3,0,0,0,0,1,43],
-"structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl_3_01true_00_01_t_01_4.html#a91abb0240b71fb21b5feb71007208192":[3,0,0,0,0,1,25],
-"structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl_3_01true_00_01_t_01_4.html#a97d59a2919feeb1a4c2bb71dda63c2a3":[3,0,0,0,0,1,35],
-"structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl_3_01true_00_01_t_01_4.html#a9a48b859de9e022f56e2178fc01303ec":[3,0,0,0,0,1,31],
-"structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl_3_01true_00_01_t_01_4.html#a9cb175f8b03635cc4fc3ccf220adbe61":[3,0,0,0,0,1,7],
-"structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl_3_01true_00_01_t_01_4.html#aafb8342fa73bbb84ab19e2ddc4fb1f16":[3,0,0,0,0,1,2],
-"structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl_3_01true_00_01_t_01_4.html#ab376c1b7ba13de716f0debae6e2cbd48":[3,0,0,0,0,1,24],
-"structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl_3_01true_00_01_t_01_4.html#ab887c4445a8d0a42bdf493e28556aee4":[3,0,0,0,0,1,28],
-"structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl_3_01true_00_01_t_01_4.html#abe9b56a8ec510f4a65da01a6a25c22f5":[3,0,0,0,0,1,49],
-"structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl_3_01true_00_01_t_01_4.html#ac00fdbd7d003e6e9cd5e657994959ff0":[3,0,0,0,0,1,55],
-"structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl_3_01true_00_01_t_01_4.html#ac1121f572b653ce47060d6289f95665f":[3,0,0,0,0,1,39],
-"structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl_3_01true_00_01_t_01_4.html#ac62b40fb77aa21ca6e24f296969aa70a":[3,0,0,0,0,1,9],
-"structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl_3_01true_00_01_t_01_4.html#ace4d6145031f0cbe70ef34ecc5a9ba92":[3,0,0,0,0,1,29],
-"structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl_3_01true_00_01_t_01_4.html#acebb433711065ad2b2d16d78eab4b0a0":[3,0,0,0,0,1,20],
-"structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl_3_01true_00_01_t_01_4.html#acef8a7f2e2863ad778645f0b6a894cbd":[3,0,0,0,0,1,16],
-"structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl_3_01true_00_01_t_01_4.html#ad0c037398b85a61d4c5fe3b66f630559":[3,0,0,0,0,1,13],
-"structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl_3_01true_00_01_t_01_4.html#ad22ec6aa70f8a8fb468f1d46ddac178c":[3,0,0,0,0,1,3],
-"structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl_3_01true_00_01_t_01_4.html#ad2a47d71f881c6edbe7a00707a50c5d4":[3,0,0,0,0,1,41],
-"structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl_3_01true_00_01_t_01_4.html#adb15e1e4def988f6cc725db4db5c5f4f":[3,0,0,0,0,1,11],
-"structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl_3_01true_00_01_t_01_4.html#adf658d1daed712ec31ca75e7500f1be8":[3,0,0,0,0,1,45],
-"structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl_3_01true_00_01_t_01_4.html#ae0c4aad06173bf46781ef4e65827976b":[3,0,0,0,0,1,26],
-"structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl_3_01true_00_01_t_01_4.html#ae661bc37d282baa4b3922ffdbb795a34":[3,0,0,0,0,1,52],
-"structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl_3_01true_00_01_t_01_4.html#ae8f83ec93a0afb94595a93a92e555c1b":[3,0,0,0,0,1,30]
+"structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl_3_01true_00_01_t_01_4.html#a83a15aa2a15fe2231ee7c5691f9cc6e7":[3,0,0,0,0,1,27]
};
diff --git a/navtreeindex6.js b/navtreeindex6.js
index 16f9756f..672440fb 100644
--- a/navtreeindex6.js
+++ b/navtreeindex6.js
@@ -1,5 +1,28 @@
var NAVTREEINDEX6 =
{
+"structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl_3_01true_00_01_t_01_4.html#a8daf059785543d0e281a4e3fe3903dcd":[3,0,0,0,0,1,43],
+"structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl_3_01true_00_01_t_01_4.html#a91abb0240b71fb21b5feb71007208192":[3,0,0,0,0,1,25],
+"structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl_3_01true_00_01_t_01_4.html#a97d59a2919feeb1a4c2bb71dda63c2a3":[3,0,0,0,0,1,35],
+"structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl_3_01true_00_01_t_01_4.html#a9a48b859de9e022f56e2178fc01303ec":[3,0,0,0,0,1,31],
+"structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl_3_01true_00_01_t_01_4.html#a9cb175f8b03635cc4fc3ccf220adbe61":[3,0,0,0,0,1,7],
+"structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl_3_01true_00_01_t_01_4.html#aafb8342fa73bbb84ab19e2ddc4fb1f16":[3,0,0,0,0,1,2],
+"structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl_3_01true_00_01_t_01_4.html#ab376c1b7ba13de716f0debae6e2cbd48":[3,0,0,0,0,1,24],
+"structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl_3_01true_00_01_t_01_4.html#ab887c4445a8d0a42bdf493e28556aee4":[3,0,0,0,0,1,28],
+"structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl_3_01true_00_01_t_01_4.html#abe9b56a8ec510f4a65da01a6a25c22f5":[3,0,0,0,0,1,49],
+"structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl_3_01true_00_01_t_01_4.html#ac00fdbd7d003e6e9cd5e657994959ff0":[3,0,0,0,0,1,55],
+"structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl_3_01true_00_01_t_01_4.html#ac1121f572b653ce47060d6289f95665f":[3,0,0,0,0,1,39],
+"structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl_3_01true_00_01_t_01_4.html#ac62b40fb77aa21ca6e24f296969aa70a":[3,0,0,0,0,1,9],
+"structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl_3_01true_00_01_t_01_4.html#ace4d6145031f0cbe70ef34ecc5a9ba92":[3,0,0,0,0,1,29],
+"structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl_3_01true_00_01_t_01_4.html#acebb433711065ad2b2d16d78eab4b0a0":[3,0,0,0,0,1,20],
+"structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl_3_01true_00_01_t_01_4.html#acef8a7f2e2863ad778645f0b6a894cbd":[3,0,0,0,0,1,16],
+"structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl_3_01true_00_01_t_01_4.html#ad0c037398b85a61d4c5fe3b66f630559":[3,0,0,0,0,1,13],
+"structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl_3_01true_00_01_t_01_4.html#ad22ec6aa70f8a8fb468f1d46ddac178c":[3,0,0,0,0,1,3],
+"structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl_3_01true_00_01_t_01_4.html#ad2a47d71f881c6edbe7a00707a50c5d4":[3,0,0,0,0,1,41],
+"structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl_3_01true_00_01_t_01_4.html#adb15e1e4def988f6cc725db4db5c5f4f":[3,0,0,0,0,1,11],
+"structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl_3_01true_00_01_t_01_4.html#adf658d1daed712ec31ca75e7500f1be8":[3,0,0,0,0,1,45],
+"structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl_3_01true_00_01_t_01_4.html#ae0c4aad06173bf46781ef4e65827976b":[3,0,0,0,0,1,26],
+"structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl_3_01true_00_01_t_01_4.html#ae661bc37d282baa4b3922ffdbb795a34":[3,0,0,0,0,1,52],
+"structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl_3_01true_00_01_t_01_4.html#ae8f83ec93a0afb94595a93a92e555c1b":[3,0,0,0,0,1,30],
"structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl_3_01true_00_01_t_01_4.html#af90de4788d25ff0f8e2a683bdab2f21e":[3,0,0,0,0,1,0],
"structafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map_1_1__entity__idx.html":[3,0,0,0,1,3,0],
"structafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map_1_1__entity__idx.html#aa058cf20aa95ff8c1477c09cd204cac2":[3,0,0,0,1,3,0,0],
@@ -205,11 +228,12 @@ var NAVTREEINDEX6 =
"structafio__v2__xxx_1_1section__handle_1_1flag__base.html#a5b790e66402ef3a07ce9464f3e1dc9d8":[3,0,0,31,0,0],
"structafio__v2__xxx_1_1section__handle_1_1flag__base.html#a5b790e66402ef3a07ce9464f3e1dc9d8a091dabebebe6745fe9c1ed2901c125f2":[3,0,0,31,0,0,8],
"structafio__v2__xxx_1_1section__handle_1_1flag__base.html#a5b790e66402ef3a07ce9464f3e1dc9d8a13b22e159d85ac0067a3aac0f7255acd":[3,0,0,31,0,0,9],
+"structafio__v2__xxx_1_1section__handle_1_1flag__base.html#a5b790e66402ef3a07ce9464f3e1dc9d8a1e60c3188179bfa97299536cd051fcb9":[3,0,0,31,0,0,10],
"structafio__v2__xxx_1_1section__handle_1_1flag__base.html#a5b790e66402ef3a07ce9464f3e1dc9d8a26c56f64a5569c048ed853c28249726d":[3,0,0,31,0,0,0],
"structafio__v2__xxx_1_1section__handle_1_1flag__base.html#a5b790e66402ef3a07ce9464f3e1dc9d8a522b281f854fe92d7ea674d2d8cc4be2":[3,0,0,31,0,0,6],
"structafio__v2__xxx_1_1section__handle_1_1flag__base.html#a5b790e66402ef3a07ce9464f3e1dc9d8a52cf147e32054f836e9fe4915eef32d1":[3,0,0,31,0,0,4],
"structafio__v2__xxx_1_1section__handle_1_1flag__base.html#a5b790e66402ef3a07ce9464f3e1dc9d8a5de9274683882ee1d0584d535ec4959a":[3,0,0,31,0,0,1],
-"structafio__v2__xxx_1_1section__handle_1_1flag__base.html#a5b790e66402ef3a07ce9464f3e1dc9d8a804eada7d6163846f9e8a240d734a761":[3,0,0,31,0,0,10],
+"structafio__v2__xxx_1_1section__handle_1_1flag__base.html#a5b790e66402ef3a07ce9464f3e1dc9d8a804eada7d6163846f9e8a240d734a761":[3,0,0,31,0,0,11],
"structafio__v2__xxx_1_1section__handle_1_1flag__base.html#a5b790e66402ef3a07ce9464f3e1dc9d8a883f4e2f10f711e329d8389682550a71":[3,0,0,31,0,0,2],
"structafio__v2__xxx_1_1section__handle_1_1flag__base.html#a5b790e66402ef3a07ce9464f3e1dc9d8aa7b8e12448e73233d3631a6f8c2bb475":[3,0,0,31,0,0,3],
"structafio__v2__xxx_1_1section__handle_1_1flag__base.html#a5b790e66402ef3a07ce9464f3e1dc9d8aaee6e5b8a4cbbc5ff38bc3687b9fa286":[3,0,0,31,0,0,5],
@@ -225,29 +249,5 @@ var NAVTREEINDEX6 =
"structafio__v2__xxx_1_1stat__t.html#a7870b1954f030a7af49ab8b98ca4c71f":[3,0,0,32,15],
"structafio__v2__xxx_1_1stat__t.html#a78b6297a93774d5d2c1499cad3de366d":[3,0,0,32,21],
"structafio__v2__xxx_1_1stat__t.html#a8057fa7dddeb8373f762b4d1a7f31747":[3,0,0,32,17],
-"structafio__v2__xxx_1_1stat__t.html#a869c50d26a4ecceaca4bd36edc8781c0":[3,0,0,32,8],
-"structafio__v2__xxx_1_1stat__t.html#a998eb1b348255bdcfa25e2f99064e5e5":[3,0,0,32,18],
-"structafio__v2__xxx_1_1stat__t.html#a9b925315d4e65458bd5382efc343dec5":[3,0,0,32,10],
-"structafio__v2__xxx_1_1stat__t.html#aa36e06b416a94dd67d3a112e2da0a3b7":[3,0,0,32,24],
-"structafio__v2__xxx_1_1stat__t.html#aa79c2a667106a35520f3110c39a23ca7":[3,0,0,32,6],
-"structafio__v2__xxx_1_1stat__t.html#ab281797a371fd64de0d5350fb6ebba98":[3,0,0,32,1],
-"structafio__v2__xxx_1_1stat__t.html#ab5d9b5c9076e736ba8af6d61c1177678":[3,0,0,32,22],
-"structafio__v2__xxx_1_1stat__t.html#ac31f6c10ae5f00e41bc67e859660eddb":[3,0,0,32,11],
-"structafio__v2__xxx_1_1stat__t.html#acbcdccb869da7f1500f09acd114f3a4a":[3,0,0,32,20],
-"structafio__v2__xxx_1_1stat__t.html#ad0427de75a6db67e6e9022d938444f35":[3,0,0,32,14],
-"structafio__v2__xxx_1_1stat__t.html#ad1b7509742571702b9472b572943be43":[3,0,0,32,9],
-"structafio__v2__xxx_1_1stat__t.html#ad21151e8fb1ae4ef5d628b5e08f973c4":[3,0,0,32,2],
-"structafio__v2__xxx_1_1stat__t.html#adc79f76a01eab3ca4704731e4d14e72e":[3,0,0,32,5],
-"structafio__v2__xxx_1_1stat__t.html#aee154606340c3f600046634780348412":[3,0,0,32,12],
-"structafio__v2__xxx_1_1stat__t.html#aff310a2dd24689f0f0aaf08fc4483607":[3,0,0,32,13],
-"structafio__v2__xxx_1_1stat__t_1_1want__base.html":[3,0,0,32,0],
-"structafio__v2__xxx_1_1stat__t_1_1want__base.html#a5c889dae7c6113ee9da35a669447145e":[3,0,0,32,0,0],
-"structafio__v2__xxx_1_1stat__t_1_1want__base.html#a5c889dae7c6113ee9da35a669447145ea2ccef23f77625e43963f096fb4cc6a92":[3,0,0,32,0,0,8],
-"structafio__v2__xxx_1_1stat__t_1_1want__base.html#a5c889dae7c6113ee9da35a669447145ea2d4c910b5a168b9eea65264b112509e4":[3,0,0,32,0,0,6],
-"structafio__v2__xxx_1_1stat__t_1_1want__base.html#a5c889dae7c6113ee9da35a669447145ea33278cd01927ae36ae63be87e32d873c":[3,0,0,32,0,0,20],
-"structafio__v2__xxx_1_1stat__t_1_1want__base.html#a5c889dae7c6113ee9da35a669447145ea39136bd2664b1acf9d441c21976a805a":[3,0,0,32,0,0,2],
-"structafio__v2__xxx_1_1stat__t_1_1want__base.html#a5c889dae7c6113ee9da35a669447145ea39dbda567bd81284b96596b1a4ee5569":[3,0,0,32,0,0,4],
-"structafio__v2__xxx_1_1stat__t_1_1want__base.html#a5c889dae7c6113ee9da35a669447145ea3de382b91a038bacfbfb575bf9e10849":[3,0,0,32,0,0,1],
-"structafio__v2__xxx_1_1stat__t_1_1want__base.html#a5c889dae7c6113ee9da35a669447145ea495e1e996c4e34ce8473c68bcb7b9dcb":[3,0,0,32,0,0,10],
-"structafio__v2__xxx_1_1stat__t_1_1want__base.html#a5c889dae7c6113ee9da35a669447145ea49743ab32b9be9b55a682c7c82ef9888":[3,0,0,32,0,0,16]
+"structafio__v2__xxx_1_1stat__t.html#a869c50d26a4ecceaca4bd36edc8781c0":[3,0,0,32,8]
};
diff --git a/navtreeindex7.js b/navtreeindex7.js
index cf127ff3..babc486a 100644
--- a/navtreeindex7.js
+++ b/navtreeindex7.js
@@ -1,5 +1,29 @@
var NAVTREEINDEX7 =
{
+"structafio__v2__xxx_1_1stat__t.html#a998eb1b348255bdcfa25e2f99064e5e5":[3,0,0,32,18],
+"structafio__v2__xxx_1_1stat__t.html#a9b925315d4e65458bd5382efc343dec5":[3,0,0,32,10],
+"structafio__v2__xxx_1_1stat__t.html#aa36e06b416a94dd67d3a112e2da0a3b7":[3,0,0,32,24],
+"structafio__v2__xxx_1_1stat__t.html#aa79c2a667106a35520f3110c39a23ca7":[3,0,0,32,6],
+"structafio__v2__xxx_1_1stat__t.html#ab281797a371fd64de0d5350fb6ebba98":[3,0,0,32,1],
+"structafio__v2__xxx_1_1stat__t.html#ab5d9b5c9076e736ba8af6d61c1177678":[3,0,0,32,22],
+"structafio__v2__xxx_1_1stat__t.html#ac31f6c10ae5f00e41bc67e859660eddb":[3,0,0,32,11],
+"structafio__v2__xxx_1_1stat__t.html#acbcdccb869da7f1500f09acd114f3a4a":[3,0,0,32,20],
+"structafio__v2__xxx_1_1stat__t.html#ad0427de75a6db67e6e9022d938444f35":[3,0,0,32,14],
+"structafio__v2__xxx_1_1stat__t.html#ad1b7509742571702b9472b572943be43":[3,0,0,32,9],
+"structafio__v2__xxx_1_1stat__t.html#ad21151e8fb1ae4ef5d628b5e08f973c4":[3,0,0,32,2],
+"structafio__v2__xxx_1_1stat__t.html#adc79f76a01eab3ca4704731e4d14e72e":[3,0,0,32,5],
+"structafio__v2__xxx_1_1stat__t.html#aee154606340c3f600046634780348412":[3,0,0,32,12],
+"structafio__v2__xxx_1_1stat__t.html#aff310a2dd24689f0f0aaf08fc4483607":[3,0,0,32,13],
+"structafio__v2__xxx_1_1stat__t_1_1want__base.html":[3,0,0,32,0],
+"structafio__v2__xxx_1_1stat__t_1_1want__base.html#a5c889dae7c6113ee9da35a669447145e":[3,0,0,32,0,0],
+"structafio__v2__xxx_1_1stat__t_1_1want__base.html#a5c889dae7c6113ee9da35a669447145ea2ccef23f77625e43963f096fb4cc6a92":[3,0,0,32,0,0,8],
+"structafio__v2__xxx_1_1stat__t_1_1want__base.html#a5c889dae7c6113ee9da35a669447145ea2d4c910b5a168b9eea65264b112509e4":[3,0,0,32,0,0,6],
+"structafio__v2__xxx_1_1stat__t_1_1want__base.html#a5c889dae7c6113ee9da35a669447145ea33278cd01927ae36ae63be87e32d873c":[3,0,0,32,0,0,20],
+"structafio__v2__xxx_1_1stat__t_1_1want__base.html#a5c889dae7c6113ee9da35a669447145ea39136bd2664b1acf9d441c21976a805a":[3,0,0,32,0,0,2],
+"structafio__v2__xxx_1_1stat__t_1_1want__base.html#a5c889dae7c6113ee9da35a669447145ea39dbda567bd81284b96596b1a4ee5569":[3,0,0,32,0,0,4],
+"structafio__v2__xxx_1_1stat__t_1_1want__base.html#a5c889dae7c6113ee9da35a669447145ea3de382b91a038bacfbfb575bf9e10849":[3,0,0,32,0,0,1],
+"structafio__v2__xxx_1_1stat__t_1_1want__base.html#a5c889dae7c6113ee9da35a669447145ea495e1e996c4e34ce8473c68bcb7b9dcb":[3,0,0,32,0,0,10],
+"structafio__v2__xxx_1_1stat__t_1_1want__base.html#a5c889dae7c6113ee9da35a669447145ea49743ab32b9be9b55a682c7c82ef9888":[3,0,0,32,0,0,16],
"structafio__v2__xxx_1_1stat__t_1_1want__base.html#a5c889dae7c6113ee9da35a669447145ea540635968001a914982cb9b9bed093a1":[3,0,0,32,0,0,15],
"structafio__v2__xxx_1_1stat__t_1_1want__base.html#a5c889dae7c6113ee9da35a669447145ea596aed3e6fb270d20b378f0fd80a389c":[3,0,0,32,0,0,14],
"structafio__v2__xxx_1_1stat__t_1_1want__base.html#a5c889dae7c6113ee9da35a669447145ea776bf5a041dd501728da299abe1f45e4":[3,0,0,32,0,0,19],
@@ -225,14 +249,5 @@ var NAVTREEINDEX7 =
"v2_80_2afio_8hpp.html#a5d898772f113c64c7fa9ecb267a85e79":[4,0,0,0,0,1,4],
"v2_80_2afio_8hpp.html#a7172d84eb04f1b165ec13ca67ab672c5":[4,0,0,0,0,1,7],
"v2_80_2afio_8hpp.html#aa446d6d4b32123465e362629430ea1c2":[4,0,0,0,0,1,3],
-"v2_80_2afio_8hpp.html#ab767a104191b56793f1e63713f8aa696":[4,0,0,0,0,1,2],
-"v2_80_2afio_8hpp.html#acb966611a7fc2153e23e4b76849da786":[4,0,0,0,0,1,8],
-"v2_80_2afio_8hpp.html#adad16dcb7690ae81ee64424d44a31e70":[4,0,0,0,0,1,1],
-"v2_80_2afio_8hpp.html#afab2566c573eef8945053c8d57976764":[4,0,0,0,0,1,5],
-"version_8hpp.html":[4,0,0,0,2],
-"version_8hpp.html#a5d898772f113c64c7fa9ecb267a85e79":[4,0,0,0,2,5],
-"version_8hpp.html#aa446d6d4b32123465e362629430ea1c2":[4,0,0,0,2,4],
-"version_8hpp.html#ab033775f211bacf115ee33e020eca664":[4,0,0,0,2,0],
-"version_8hpp.html#ab767a104191b56793f1e63713f8aa696":[4,0,0,0,2,1],
-"version_8hpp.html#ab767a104191b56793f1e63713f8aa696":[4,0,0,0,2,2]
+"v2_80_2afio_8hpp.html#ab767a104191b56793f1e63713f8aa696":[4,0,0,0,0,1,2]
};
diff --git a/navtreeindex8.js b/navtreeindex8.js
new file mode 100644
index 00000000..4a8c54e1
--- /dev/null
+++ b/navtreeindex8.js
@@ -0,0 +1,12 @@
+var NAVTREEINDEX8 =
+{
+"v2_80_2afio_8hpp.html#acb966611a7fc2153e23e4b76849da786":[4,0,0,0,0,1,8],
+"v2_80_2afio_8hpp.html#adad16dcb7690ae81ee64424d44a31e70":[4,0,0,0,0,1,1],
+"v2_80_2afio_8hpp.html#afab2566c573eef8945053c8d57976764":[4,0,0,0,0,1,5],
+"version_8hpp.html":[4,0,0,0,2],
+"version_8hpp.html#a5d898772f113c64c7fa9ecb267a85e79":[4,0,0,0,2,5],
+"version_8hpp.html#aa446d6d4b32123465e362629430ea1c2":[4,0,0,0,2,4],
+"version_8hpp.html#ab033775f211bacf115ee33e020eca664":[4,0,0,0,2,0],
+"version_8hpp.html#ab767a104191b56793f1e63713f8aa696":[4,0,0,0,2,2],
+"version_8hpp.html#ab767a104191b56793f1e63713f8aa696":[4,0,0,0,2,1]
+};
diff --git a/path__handle_8hpp.html b/path__handle_8hpp.html
index 700e7f48..7c3a598e 100644
--- a/path__handle_8hpp.html
+++ b/path__handle_8hpp.html
@@ -111,8 +111,8 @@ Namespaces</h2></td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:a7432c582b3af692a1f94be33aa73a00e"><td class="memItemLeft" align="right" valign="top">result&lt; path_handle &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceafio__v2__xxx.html#a7432c582b3af692a1f94be33aa73a00e">afio_v2_xxx::path</a> (const path_handle &amp;base, path_handle::path_view_type _path) noexcept</td></tr>
-<tr class="separator:a7432c582b3af692a1f94be33aa73a00e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7a98882ead35ebd6bd0700fdf571c44a"><td class="memItemLeft" align="right" valign="top">result&lt; path_handle &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceafio__v2__xxx.html#a7a98882ead35ebd6bd0700fdf571c44a">afio_v2_xxx::path</a> (const path_handle &amp;base, path_handle::path_view_type path) noexcept</td></tr>
+<tr class="separator:a7a98882ead35ebd6bd0700fdf571c44a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac9484fd22637e8e0102d7b48b080c075"><td class="memItemLeft" align="right" valign="top">result&lt; path_handle &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceafio__v2__xxx.html#ac9484fd22637e8e0102d7b48b080c075">afio_v2_xxx::path</a> (path_handle::path_view_type _path) noexcept</td></tr>
<tr class="separator:ac9484fd22637e8e0102d7b48b080c075"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
diff --git a/path__handle_8hpp.js b/path__handle_8hpp.js
index 760dcef1..ac259dc8 100644
--- a/path__handle_8hpp.js
+++ b/path__handle_8hpp.js
@@ -2,6 +2,6 @@ var path__handle_8hpp =
[
[ "path_handle", "classafio__v2__xxx_1_1path__handle.html", "classafio__v2__xxx_1_1path__handle" ],
[ "construct< path_handle >", "structafio__v2__xxx_1_1construct_3_01path__handle_01_4.html", "structafio__v2__xxx_1_1construct_3_01path__handle_01_4" ],
- [ "path", "path__handle_8hpp.html#a7432c582b3af692a1f94be33aa73a00e", null ],
+ [ "path", "path__handle_8hpp.html#a7a98882ead35ebd6bd0700fdf571c44a", null ],
[ "path", "path__handle_8hpp.html#ac9484fd22637e8e0102d7b48b080c075", null ]
]; \ No newline at end of file
diff --git a/search/all_1.js b/search/all_1.js
index 311eb6c2..9b2802df 100644
--- a/search/all_1.js
+++ b/search/all_1.js
@@ -42,15 +42,15 @@ var searchData=
['are_5fsafety_5ffsyncs_5fissued',['are_safety_fsyncs_issued',['../classafio__v2__xxx_1_1handle.html#a3fc7db93fac699f5ecad453642ed314e',1,'afio_v2_xxx::handle']]],
['are_5fwrites_5fdurable',['are_writes_durable',['../classafio__v2__xxx_1_1handle.html#a97ffbbf53f51549549efef0b49e125dc',1,'afio_v2_xxx::handle']]],
['assign',['assign',['../structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#ad0c037398b85a61d4c5fe3b66f630559',1,'afio_v2_xxx::algorithm::impl::trivial_vector_impl::assign(size_type count, const value_type &amp;v)'],['../structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#a3a6a458d696200d8428f3f4108bc1489',1,'afio_v2_xxx::algorithm::impl::trivial_vector_impl::assign(InputIt first, InputIt last)'],['../structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#a681c9115ce2a475daa5cb3d01bd5ab6a',1,'afio_v2_xxx::algorithm::impl::trivial_vector_impl::assign(std::initializer_list&lt; value_type &gt; il)']]],
- ['async_5fbarrier',['async_barrier',['../classafio__v2__xxx_1_1async__file__handle.html#ab49851748369ba35dabe4cee78342796',1,'afio_v2_xxx::async_file_handle']]],
+ ['async_5fbarrier',['async_barrier',['../classafio__v2__xxx_1_1async__file__handle.html#ab49851748369ba35dabe4cee78342796',1,'afio_v2_xxx::async_file_handle::async_barrier()'],['../namespaceafio__v2__xxx.html#a4c35fd205301d7fdd3ebb503f2d154fc',1,'afio_v2_xxx::async_barrier()']]],
['async_5ffile',['async_file',['../classafio__v2__xxx_1_1async__file__handle.html#a2f65de147f234354272295e1139e31ee',1,'afio_v2_xxx::async_file_handle::async_file()'],['../namespaceafio__v2__xxx.html#a5b0168993998aafc342233aa782040a6',1,'afio_v2_xxx::async_file()']]],
['async_5ffile_5fhandle',['async_file_handle',['../classafio__v2__xxx_1_1async__file__handle.html',1,'afio_v2_xxx::async_file_handle'],['../classafio__v2__xxx_1_1async__file__handle.html#a3bee6c9f35239b1dce1e6910ea7d3aa3',1,'afio_v2_xxx::async_file_handle::async_file_handle()'],['../classafio__v2__xxx_1_1async__file__handle.html#a59973a4ee6681fa999bfcc7a6ee2b8eb',1,'afio_v2_xxx::async_file_handle::async_file_handle(io_service *service, native_handle_type h, dev_t devid, ino_t inode, caching caching=caching::none, flag flags=flag::none)'],['../classafio__v2__xxx_1_1async__file__handle.html#a7226567016e1729200791fd0423b605e',1,'afio_v2_xxx::async_file_handle::async_file_handle(async_file_handle &amp;&amp;o) noexcept=default'],['../classafio__v2__xxx_1_1async__file__handle.html#a5db0b1b1f371a0c8a1f989442e516cd6',1,'afio_v2_xxx::async_file_handle::async_file_handle(const async_file_handle &amp;)=delete'],['../classafio__v2__xxx_1_1async__file__handle.html#acd47b60681f19ee2d2906d27ee703611',1,'afio_v2_xxx::async_file_handle::async_file_handle(file_handle &amp;&amp;o) noexcept'],['../classafio__v2__xxx_1_1async__file__handle.html#a6e6df4068e197e12169be113f18d0799',1,'afio_v2_xxx::async_file_handle::async_file_handle(handle &amp;&amp;o, io_service *service, dev_t devid, ino_t inode) noexcept']]],
['async_5ffile_5fhandle_2ehpp',['async_file_handle.hpp',['../async__file__handle_8hpp.html',1,'']]],
['async_5frandom_5ffile',['async_random_file',['../classafio__v2__xxx_1_1async__file__handle.html#a9630051f939a20fe9424133a579804b3',1,'afio_v2_xxx::async_file_handle::async_random_file()'],['../namespaceafio__v2__xxx.html#a40cd3a25b8d4a293a8864fe6eb585034',1,'afio_v2_xxx::async_random_file()']]],
- ['async_5fread',['async_read',['../classafio__v2__xxx_1_1async__file__handle.html#ab0a1e11a3d208319cc8fc8a9171ec33f',1,'afio_v2_xxx::async_file_handle']]],
+ ['async_5fread',['async_read',['../classafio__v2__xxx_1_1async__file__handle.html#ab0a1e11a3d208319cc8fc8a9171ec33f',1,'afio_v2_xxx::async_file_handle::async_read()'],['../namespaceafio__v2__xxx.html#a0891bedb63147526aba998b0a2f18132',1,'afio_v2_xxx::async_read()']]],
['async_5ftemp_5ffile',['async_temp_file',['../classafio__v2__xxx_1_1async__file__handle.html#ae6ccde1ff634c32da094b7f1b1143d55',1,'afio_v2_xxx::async_file_handle::async_temp_file()'],['../namespaceafio__v2__xxx.html#a0b751376f48a4fd14cb90cce03b2b491',1,'afio_v2_xxx::async_temp_file()']]],
['async_5ftemp_5finode',['async_temp_inode',['../classafio__v2__xxx_1_1async__file__handle.html#a4e4fc1ee894e1f112cb4123a24c2289d',1,'afio_v2_xxx::async_file_handle::async_temp_inode()'],['../namespaceafio__v2__xxx.html#a5eb846433fec3c9c80336ff686c2527e',1,'afio_v2_xxx::async_temp_inode()']]],
- ['async_5fwrite',['async_write',['../classafio__v2__xxx_1_1async__file__handle.html#ac38c4f8c4be552471c9ae07f2e247ba1',1,'afio_v2_xxx::async_file_handle']]],
+ ['async_5fwrite',['async_write',['../classafio__v2__xxx_1_1async__file__handle.html#ac38c4f8c4be552471c9ae07f2e247ba1',1,'afio_v2_xxx::async_file_handle::async_write()'],['../namespaceafio__v2__xxx.html#aded93df5ea7777b501811ec593ed5b55',1,'afio_v2_xxx::async_write()']]],
['at',['at',['../structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#acef8a7f2e2863ad778645f0b6a894cbd',1,'afio_v2_xxx::algorithm::impl::trivial_vector_impl::at(size_type i)'],['../structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#a5bdfa73da671e5c65e67960baca1462d',1,'afio_v2_xxx::algorithm::impl::trivial_vector_impl::at(size_type i) const']]],
['atomic_5fappend',['atomic_append',['../classafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1atomic__append.html',1,'afio_v2_xxx::algorithm::shared_fs_mutex::atomic_append'],['../classafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1atomic__append.html#ad26ffca14b20af425c4b13f881202b8d',1,'afio_v2_xxx::algorithm::shared_fs_mutex::atomic_append::atomic_append(const atomic_append &amp;)=delete'],['../classafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1atomic__append.html#a8f5b9600df711a61c49d50988b83ea51',1,'afio_v2_xxx::algorithm::shared_fs_mutex::atomic_append::atomic_append(atomic_append &amp;&amp;o) noexcept']]],
['atomic_5fappend_2ehpp',['atomic_append.hpp',['../atomic__append_8hpp.html',1,'']]],
diff --git a/search/all_10.js b/search/all_10.js
index b29cbcd3..59f8a3a1 100644
--- a/search/all_10.js
+++ b/search/all_10.js
@@ -3,7 +3,7 @@ var searchData=
['safe_5fbyte_5franges',['safe_byte_ranges',['../classafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1safe__byte__ranges.html',1,'afio_v2_xxx::algorithm::shared_fs_mutex::safe_byte_ranges'],['../classafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1safe__byte__ranges.html#a191be17c7b92547d7f9f5956433aa5e7',1,'afio_v2_xxx::algorithm::shared_fs_mutex::safe_byte_ranges::safe_byte_ranges(const safe_byte_ranges &amp;)=delete'],['../classafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1safe__byte__ranges.html#a113cf8648fc11c4b9cafa0f3fbb34b5d',1,'afio_v2_xxx::algorithm::shared_fs_mutex::safe_byte_ranges::safe_byte_ranges(safe_byte_ranges &amp;&amp;o) noexcept']]],
['safe_5fbyte_5franges_2ehpp',['safe_byte_ranges.hpp',['../safe__byte__ranges_8hpp.html',1,'']]],
['safety_5ffsyncs',['safety_fsyncs',['../classafio__v2__xxx_1_1handle.html#a6f7e37c73271968271c2342023f58c9eadfa4d35596e04e042a53c64b25c22db3',1,'afio_v2_xxx::handle']]],
- ['section',['section',['../structafio__v2__xxx_1_1native__handle__type_1_1disposition__base.html#a89e0e728fc7a7e4a008e57d572702de6a536596b2c7b335a91a3ded6088ea1d06',1,'afio_v2_xxx::native_handle_type::disposition_base::section()'],['../classafio__v2__xxx_1_1section__handle.html#a7e69ae5094da2517f2ed0bd046d18302',1,'afio_v2_xxx::section_handle::section(file_handle &amp;backing, extent_type maximum_size, flag _flag) noexcept'],['../classafio__v2__xxx_1_1section__handle.html#abcecfb5615a710e828a11c9db78b3502',1,'afio_v2_xxx::section_handle::section(file_handle &amp;backing, extent_type bytes=0) noexcept'],['../classafio__v2__xxx_1_1section__handle.html#ad3817e499d3b937c5ee57589e9cb6fd1',1,'afio_v2_xxx::section_handle::section(extent_type bytes, const path_handle &amp;dirh=path_discovery::storage_backed_temporary_files_directory(), flag _flag=flag::read|flag::write) noexcept'],['../classafio__v2__xxx_1_1map__handle.html#ab8a43a5388161f629fef5ee7256dbbc8',1,'afio_v2_xxx::map_handle::section()'],['../classafio__v2__xxx_1_1mapped__file__handle.html#af33b97dcd0a501da97baa39f44e418da',1,'afio_v2_xxx::mapped_file_handle::section() const noexcept'],['../classafio__v2__xxx_1_1mapped__file__handle.html#a04e89968a4391fcdc2b8cd9203337c32',1,'afio_v2_xxx::mapped_file_handle::section() noexcept']]],
+ ['section',['section',['../structafio__v2__xxx_1_1native__handle__type_1_1disposition__base.html#a89e0e728fc7a7e4a008e57d572702de6a536596b2c7b335a91a3ded6088ea1d06',1,'afio_v2_xxx::native_handle_type::disposition_base::section()'],['../classafio__v2__xxx_1_1section__handle.html#a7e69ae5094da2517f2ed0bd046d18302',1,'afio_v2_xxx::section_handle::section(file_handle &amp;backing, extent_type maximum_size, flag _flag) noexcept'],['../classafio__v2__xxx_1_1section__handle.html#abcecfb5615a710e828a11c9db78b3502',1,'afio_v2_xxx::section_handle::section(file_handle &amp;backing, extent_type bytes=0) noexcept'],['../classafio__v2__xxx_1_1section__handle.html#ad3817e499d3b937c5ee57589e9cb6fd1',1,'afio_v2_xxx::section_handle::section(extent_type bytes, const path_handle &amp;dirh=path_discovery::storage_backed_temporary_files_directory(), flag _flag=flag::read|flag::write) noexcept'],['../classafio__v2__xxx_1_1map__handle.html#ab8a43a5388161f629fef5ee7256dbbc8',1,'afio_v2_xxx::map_handle::section()'],['../classafio__v2__xxx_1_1mapped__file__handle.html#af33b97dcd0a501da97baa39f44e418da',1,'afio_v2_xxx::mapped_file_handle::section() const noexcept'],['../classafio__v2__xxx_1_1mapped__file__handle.html#a04e89968a4391fcdc2b8cd9203337c32',1,'afio_v2_xxx::mapped_file_handle::section() noexcept'],['../namespaceafio__v2__xxx.html#a6282e66d9ade4fea8e0508cfb65ec9ec',1,'afio_v2_xxx::section(file_handle &amp;backing, section_handle::extent_type maximum_size, section_handle::flag _flag) noexcept'],['../namespaceafio__v2__xxx.html#ae694d1c5ef24e2c6caa30b8d7ae6e12b',1,'afio_v2_xxx::section(file_handle &amp;backing, section_handle::extent_type bytes=0) noexcept'],['../namespaceafio__v2__xxx.html#a42622b31d96b1098e37d9c527abd097d',1,'afio_v2_xxx::section(section_handle::extent_type bytes, const path_handle &amp;dirh=path_discovery::storage_backed_temporary_files_directory(), section_handle::flag _flag=section_handle::flag::read|section_handle::flag::write) noexcept']]],
['section_5fflags',['section_flags',['../classafio__v2__xxx_1_1section__handle.html#a0f95ed462d97954df59e6b56625ce899',1,'afio_v2_xxx::section_handle']]],
['section_5fhandle',['section_handle',['../classafio__v2__xxx_1_1section__handle.html',1,'afio_v2_xxx::section_handle'],['../classafio__v2__xxx_1_1section__handle.html#a2824f51d5726bb8015d89ac1ea7abe5f',1,'afio_v2_xxx::section_handle::section_handle()'],['../classafio__v2__xxx_1_1section__handle.html#a74e73651ebfc233e31fff3d39b3a8e1a',1,'afio_v2_xxx::section_handle::section_handle(native_handle_type sectionh, file_handle *backing, file_handle anonymous, flag __flag)'],['../classafio__v2__xxx_1_1section__handle.html#a84ec7259dfb8bab518d3def875bdc6f2',1,'afio_v2_xxx::section_handle::section_handle(section_handle &amp;&amp;o) noexcept'],['../classafio__v2__xxx_1_1section__handle.html#a8f20e4f7aec4eb5545b9b223471ae1fc',1,'afio_v2_xxx::section_handle::section_handle(const section_handle &amp;)=delete']]],
['seekable',['seekable',['../structafio__v2__xxx_1_1native__handle__type_1_1disposition__base.html#a89e0e728fc7a7e4a008e57d572702de6ab3793aa3c715efcbe125cb9eafd41273',1,'afio_v2_xxx::native_handle_type::disposition_base']]],
@@ -17,7 +17,7 @@ var searchData=
['shrink_5fto_5ffit',['shrink_to_fit',['../structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#a273087ee5045a35c2f6f84715fa5a0c2',1,'afio_v2_xxx::algorithm::impl::trivial_vector_impl']]],
['singleton',['singleton',['../structafio__v2__xxx_1_1section__handle_1_1flag__base.html#a5b790e66402ef3a07ce9464f3e1dc9d8a091dabebebe6745fe9c1ed2901c125f2',1,'afio_v2_xxx::section_handle::flag_base']]],
['size',['size',['../structafio__v2__xxx_1_1storage__profile_1_1storage__profile.html#a7b088508cc1b731b64b501a1f77a0108',1,'afio_v2_xxx::storage_profile::storage_profile::size()'],['../structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#a4caa322dde7556ae0a552ba428285dd2',1,'afio_v2_xxx::algorithm::impl::trivial_vector_impl::size()']]],
- ['size_5ftype',['size_type',['../classafio__v2__xxx_1_1handle.html#a0adf7fa00e23ed561328f473986e9ccc',1,'afio_v2_xxx::handle::size_type()'],['../classafio__v2__xxx_1_1io__service.html#a2efd36ca952a401e2b0bc44b7e52524e',1,'afio_v2_xxx::io_service::size_type()'],['../classafio__v2__xxx_1_1path__view.html#ac9ea02ed943d7b9adeed34c4ed100d5f',1,'afio_v2_xxx::path_view::size_type()'],['../structafio__v2__xxx_1_1storage__profile_1_1storage__profile.html#ac854196b2d774c4c7375b1e15296b2d2',1,'afio_v2_xxx::storage_profile::storage_profile::size_type()'],['../classafio__v2__xxx_1_1algorithm_1_1mapped__view.html#a7812759f458831ea053fed38ec46dc30',1,'afio_v2_xxx::algorithm::mapped_view::size_type()'],['../classafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__iterator.html#a04de3895e4f179e8f66f80f8708c78eb',1,'afio_v2_xxx::algorithm::impl::trivial_vector_iterator::size_type()'],['../structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#a618ed9123552bf7a1681fc566ea8cd37',1,'afio_v2_xxx::algorithm::impl::trivial_vector_impl::size_type()'],['../structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl_3_01true_00_01_t_01_4.html#ac62b40fb77aa21ca6e24f296969aa70a',1,'afio_v2_xxx::algorithm::impl::trivial_vector_impl&lt; true, T &gt;::size_type()']]],
+ ['size_5ftype',['size_type',['../classafio__v2__xxx_1_1handle.html#a0adf7fa00e23ed561328f473986e9ccc',1,'afio_v2_xxx::handle::size_type()'],['../classafio__v2__xxx_1_1io__service.html#a2efd36ca952a401e2b0bc44b7e52524e',1,'afio_v2_xxx::io_service::size_type()'],['../classafio__v2__xxx_1_1path__view.html#ac9ea02ed943d7b9adeed34c4ed100d5f',1,'afio_v2_xxx::path_view::size_type()'],['../structafio__v2__xxx_1_1storage__profile_1_1storage__profile.html#ac854196b2d774c4c7375b1e15296b2d2',1,'afio_v2_xxx::storage_profile::storage_profile::size_type()'],['../classafio__v2__xxx_1_1algorithm_1_1mapped__span.html#aa33d0ce0be15b0738c6b36341843ccb5',1,'afio_v2_xxx::algorithm::mapped_span::size_type()'],['../classafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__iterator.html#a04de3895e4f179e8f66f80f8708c78eb',1,'afio_v2_xxx::algorithm::impl::trivial_vector_iterator::size_type()'],['../structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#a618ed9123552bf7a1681fc566ea8cd37',1,'afio_v2_xxx::algorithm::impl::trivial_vector_impl::size_type()'],['../structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl_3_01true_00_01_t_01_4.html#ac62b40fb77aa21ca6e24f296969aa70a',1,'afio_v2_xxx::algorithm::impl::trivial_vector_impl&lt; true, T &gt;::size_type()']]],
['source_5ftype',['source_type',['../structafio__v2__xxx_1_1path__discovery_1_1discovered__path.html#a1deccea0a3ad1c3a5a2688a1a3cc118c',1,'afio_v2_xxx::path_discovery::discovered_path']]],
['spinlock_5ftype',['spinlock_type',['../classafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#a80fcaf9fcaddc442e8517e11f20fcab9',1,'afio_v2_xxx::algorithm::shared_fs_mutex::memory_map']]],
['st_5fallocated',['st_allocated',['../structafio__v2__xxx_1_1stat__t.html#adc79f76a01eab3ca4704731e4d14e72e',1,'afio_v2_xxx::stat_t']]],
diff --git a/search/all_11.js b/search/all_11.js
index f319a8cf..775f364f 100644
--- a/search/all_11.js
+++ b/search/all_11.js
@@ -2,7 +2,7 @@ var searchData=
[
['temp_5fdirectory',['temp_directory',['../classafio__v2__xxx_1_1directory__handle.html#a87b6b5fd0537c0915f2f9a669bccfcfb',1,'afio_v2_xxx::directory_handle::temp_directory()'],['../namespaceafio__v2__xxx.html#ac095df054e29fb086f9e7b96274c3c67',1,'afio_v2_xxx::temp_directory()']]],
['temp_5ffile',['temp_file',['../classafio__v2__xxx_1_1file__handle.html#a458c1a73a67e74e20e221e3507a11b11',1,'afio_v2_xxx::file_handle::temp_file()'],['../namespaceafio__v2__xxx.html#aa14b24c8bc330dd8e472f42676ba03d6',1,'afio_v2_xxx::temp_file()']]],
- ['temp_5finode',['temp_inode',['../classafio__v2__xxx_1_1file__handle.html#ae7c763babcbc3c8bc253b1be95578894',1,'afio_v2_xxx::file_handle::temp_inode()'],['../namespaceafio__v2__xxx.html#a2a2248a6545d55ee8f46628c8afb7946',1,'afio_v2_xxx::temp_inode()']]],
+ ['temp_5finode',['temp_inode',['../classafio__v2__xxx_1_1file__handle.html#ae7c763babcbc3c8bc253b1be95578894',1,'afio_v2_xxx::file_handle::temp_inode()'],['../namespaceafio__v2__xxx.html#aca98b0cb43a2d925bb65e055b07b4a08',1,'afio_v2_xxx::temp_inode()']]],
['temporary',['temporary',['../classafio__v2__xxx_1_1handle.html#a6f7e37c73271968271c2342023f58c9ead5197d93c063a2b1e22d1630a39b7aef',1,'afio_v2_xxx::handle']]],
['throw_5fas_5fexception',['throw_as_exception',['../structafio__v2__xxx_1_1error__info.html#a36e4d0783244c7a127b7f13e61323819',1,'afio_v2_xxx::error_info']]],
['todo_20list',['Todo List',['../todo.html',1,'']]],
@@ -12,7 +12,7 @@ var searchData=
['trivial_5fvector_5fimpl_3c_20false_2c_20t_20_3e',['trivial_vector_impl&lt; false, T &gt;',['../structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html',1,'afio_v2_xxx::algorithm::impl']]],
['trivial_5fvector_5fimpl_3c_20true_2c_20t_20_3e',['trivial_vector_impl&lt; true, T &gt;',['../structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl_3_01true_00_01_t_01_4.html',1,'afio_v2_xxx::algorithm::impl']]],
['trivial_5fvector_5fiterator',['trivial_vector_iterator',['../classafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__iterator.html',1,'afio_v2_xxx::algorithm::impl']]],
- ['truncate',['truncate',['../classafio__v2__xxx_1_1file__handle.html#a45873fd0b1ab27f936f046ed14124afd',1,'afio_v2_xxx::file_handle::truncate()'],['../classafio__v2__xxx_1_1section__handle.html#a229f515ed3251071d374476204e23e30',1,'afio_v2_xxx::section_handle::truncate()'],['../classafio__v2__xxx_1_1mapped__file__handle.html#a64bf34a474aa4de495b38ce314fd377b',1,'afio_v2_xxx::mapped_file_handle::truncate()'],['../classafio__v2__xxx_1_1handle.html#a45ff5c1c5662623d99156870dfeee0a7a244f58cf07c35fd48d7524b289551e5c',1,'afio_v2_xxx::handle::truncate()'],['../namespaceafio__v2__xxx.html#a84d22c966fcabe50de30ad8cf26c7241',1,'afio_v2_xxx::truncate(file_handle &amp;self, file_handle::extent_type newsize) noexcept'],['../namespaceafio__v2__xxx.html#a6164dd52993407a203124b0761cc3bbc',1,'afio_v2_xxx::truncate(section_handle &amp;self, section_handle::extent_type newsize=0) noexcept']]],
+ ['truncate',['truncate',['../classafio__v2__xxx_1_1file__handle.html#a45873fd0b1ab27f936f046ed14124afd',1,'afio_v2_xxx::file_handle::truncate()'],['../classafio__v2__xxx_1_1section__handle.html#a229f515ed3251071d374476204e23e30',1,'afio_v2_xxx::section_handle::truncate()'],['../classafio__v2__xxx_1_1map__handle.html#af9699a9a290ba974184f844c2f6038e8',1,'afio_v2_xxx::map_handle::truncate()'],['../classafio__v2__xxx_1_1mapped__file__handle.html#a64bf34a474aa4de495b38ce314fd377b',1,'afio_v2_xxx::mapped_file_handle::truncate()'],['../classafio__v2__xxx_1_1handle.html#a45ff5c1c5662623d99156870dfeee0a7a244f58cf07c35fd48d7524b289551e5c',1,'afio_v2_xxx::handle::truncate()'],['../namespaceafio__v2__xxx.html#a84d22c966fcabe50de30ad8cf26c7241',1,'afio_v2_xxx::truncate(file_handle &amp;self, file_handle::extent_type newsize) noexcept'],['../namespaceafio__v2__xxx.html#a6164dd52993407a203124b0761cc3bbc',1,'afio_v2_xxx::truncate(section_handle &amp;self, section_handle::extent_type newsize=0) noexcept'],['../namespaceafio__v2__xxx.html#a7da47c9f5665b4c9b1c44c035bf2571c',1,'afio_v2_xxx::truncate(map_handle &amp;self, map_handle::size_type newsize, bool permit_relocation=false) noexcept']]],
['try_5flock',['try_lock',['../classafio__v2__xxx_1_1io__handle.html#a0a1c4773b9fa7bbd04fee0756075d319',1,'afio_v2_xxx::io_handle::try_lock()'],['../classafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html#a0987b9c6c93a65acb2715e589d45c273',1,'afio_v2_xxx::algorithm::shared_fs_mutex::shared_fs_mutex::try_lock(entities_type entities) noexcept'],['../classafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html#aebdc3d01ccb30b297950130c7ebac57b',1,'afio_v2_xxx::algorithm::shared_fs_mutex::shared_fs_mutex::try_lock(entity_type entity) noexcept']]],
['type',['type',['../structafio__v2__xxx_1_1storage__profile_1_1item__base.html#a1c59e24cdf6e608b87539c5639a8ded6',1,'afio_v2_xxx::storage_profile::item_base']]]
];
diff --git a/search/all_12.js b/search/all_12.js
index b1c5032a..68a75776 100644
--- a/search/all_12.js
+++ b/search/all_12.js
@@ -9,7 +9,7 @@ var searchData=
['unlink',['unlink',['../classafio__v2__xxx_1_1fs__handle.html#a6860b9626adc4d8e6db3ebb92974c054',1,'afio_v2_xxx::fs_handle::unlink()'],['../namespaceafio__v2__xxx.html#abefe1503efb01ea89200b829bcd87713',1,'afio_v2_xxx::unlink()']]],
['unlink_5fon_5fclose',['unlink_on_close',['../structafio__v2__xxx_1_1handle_1_1flag__base.html#a51aaa32c78950cedbc1b7a61e1738d3eae4a6e7b4b6489cd3761d9606ec07f09c',1,'afio_v2_xxx::handle::flag_base']]],
['unlock',['unlock',['../classafio__v2__xxx_1_1io__handle_1_1extent__guard.html#a8774c7f192061ccff6659f645d1e51fd',1,'afio_v2_xxx::io_handle::extent_guard::unlock()'],['../classafio__v2__xxx_1_1io__handle.html#a96b9da71ee7791fbaaa2470c936ec763',1,'afio_v2_xxx::io_handle::unlock()'],['../classafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1atomic__append.html#ad8a5572b95c538b21c387e0dc9ccc4b9',1,'afio_v2_xxx::algorithm::shared_fs_mutex::atomic_append::unlock()'],['../classafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex_1_1entities__guard.html#afe255ddbd7c8c80b1dfe29a0b8d856ee',1,'afio_v2_xxx::algorithm::shared_fs_mutex::shared_fs_mutex::entities_guard::unlock()'],['../classafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html#aa7ca87a0dc1181fc4c6c3b2a09bc67e3',1,'afio_v2_xxx::algorithm::shared_fs_mutex::shared_fs_mutex::unlock()'],['../classafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html#ade7f672a228670cb193cf05e96368ff4',1,'afio_v2_xxx::algorithm::shared_fs_mutex::byte_ranges::unlock()'],['../classafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1lock__files.html#a8b37ac390b47fd3ef61fe12b60a82755',1,'afio_v2_xxx::algorithm::shared_fs_mutex::lock_files::unlock()'],['../classafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#a49e8e7e6460f4ee1bafe8426384f2d40',1,'afio_v2_xxx::algorithm::shared_fs_mutex::memory_map::unlock()'],['../classafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1safe__byte__ranges.html#aa553587bce8b59ae47ce739863f1f534',1,'afio_v2_xxx::algorithm::shared_fs_mutex::safe_byte_ranges::unlock()']]],
- ['update_5fmap',['update_map',['../classafio__v2__xxx_1_1mapped__file__handle.html#a297b1f81b6d2875164e46a266c3f1f8a',1,'afio_v2_xxx::mapped_file_handle']]],
+ ['update_5fmap',['update_map',['../classafio__v2__xxx_1_1map__handle.html#abaff8ae673c35e9bb150e3970dd205a5',1,'afio_v2_xxx::map_handle::update_map()'],['../classafio__v2__xxx_1_1mapped__file__handle.html#a297b1f81b6d2875164e46a266c3f1f8a',1,'afio_v2_xxx::mapped_file_handle::update_map()']]],
['using_5fkqueues',['using_kqueues',['../classafio__v2__xxx_1_1io__service.html#a692d937b87fa783803c5342f993fede1',1,'afio_v2_xxx::io_service']]],
['utc',['utc',['../structafio__v2__xxx_1_1deadline.html#aeffdc3baecafe2d22f80abdefa68785e',1,'afio_v2_xxx::deadline']]],
['utils_2ehpp',['utils.hpp',['../utils_8hpp.html',1,'']]]
diff --git a/search/all_14.js b/search/all_14.js
index 10cca0bd..864442a6 100644
--- a/search/all_14.js
+++ b/search/all_14.js
@@ -4,5 +4,5 @@ var searchData=
['win_5fdisable_5fsparse_5ffile_5fcreation',['win_disable_sparse_file_creation',['../structafio__v2__xxx_1_1handle_1_1flag__base.html#a51aaa32c78950cedbc1b7a61e1738d3eae448a705e5dc826a89900353c2601db4',1,'afio_v2_xxx::handle::flag_base']]],
['win_5fdisable_5funlink_5femulation',['win_disable_unlink_emulation',['../structafio__v2__xxx_1_1handle_1_1flag__base.html#a51aaa32c78950cedbc1b7a61e1738d3ea476a57854e60d134c425521a18099df1',1,'afio_v2_xxx::handle::flag_base']]],
['writable',['writable',['../structafio__v2__xxx_1_1native__handle__type_1_1disposition__base.html#a89e0e728fc7a7e4a008e57d572702de6acd0caaeed87841654e1b02e779ec248f',1,'afio_v2_xxx::native_handle_type::disposition_base']]],
- ['write',['write',['../structafio__v2__xxx_1_1section__handle_1_1flag__base.html#a5b790e66402ef3a07ce9464f3e1dc9d8a883f4e2f10f711e329d8389682550a71',1,'afio_v2_xxx::section_handle::flag_base::write()'],['../classafio__v2__xxx_1_1io__handle.html#aefac4710e5617264347f437b04732c01',1,'afio_v2_xxx::io_handle::write(io_request&lt; const_buffers_type &gt; reqs, deadline d=deadline()) noexcept'],['../classafio__v2__xxx_1_1io__handle.html#ab26a3c5a18cdcc67a506533dbe55e2b3',1,'afio_v2_xxx::io_handle::write(extent_type offset, const char *data, size_type bytes, deadline d=deadline()) noexcept'],['../classafio__v2__xxx_1_1map__handle.html#a00b7e1e99089c2641c45ee824811ebc1',1,'afio_v2_xxx::map_handle::write()'],['../classafio__v2__xxx_1_1mapped__file__handle.html#a74dfae7f50c56037cc4260227a13b6d8',1,'afio_v2_xxx::mapped_file_handle::write()'],['../structafio__v2__xxx_1_1storage__profile_1_1storage__profile.html#a9811705f9110d7dae69e621a67a39ec8',1,'afio_v2_xxx::storage_profile::storage_profile::write()'],['../classafio__v2__xxx_1_1handle.html#a0489b6c1e25cd2bad2ba1ec86e1aaf18aefb2a684e4afb7d55e6147fbe5a332ee',1,'afio_v2_xxx::handle::write()'],['../namespaceafio__v2__xxx.html#a2d15768d28ea660ebe44901508ed3372',1,'afio_v2_xxx::write(io_handle &amp;self, io_handle::io_request&lt; io_handle::const_buffers_type &gt; reqs, deadline d=deadline()) noexcept'],['../namespaceafio__v2__xxx.html#a5bfae365a1845c1bde4739de38c3653f',1,'afio_v2_xxx::write(map_handle &amp;self, map_handle::io_request&lt; map_handle::const_buffers_type &gt; reqs, deadline d=deadline()) noexcept']]]
+ ['write',['write',['../structafio__v2__xxx_1_1section__handle_1_1flag__base.html#a5b790e66402ef3a07ce9464f3e1dc9d8a883f4e2f10f711e329d8389682550a71',1,'afio_v2_xxx::section_handle::flag_base::write()'],['../classafio__v2__xxx_1_1io__handle.html#aefac4710e5617264347f437b04732c01',1,'afio_v2_xxx::io_handle::write(io_request&lt; const_buffers_type &gt; reqs, deadline d=deadline()) noexcept'],['../classafio__v2__xxx_1_1io__handle.html#add161546c0769941fce4fd9f06934e03',1,'afio_v2_xxx::io_handle::write(extent_type offset, std::initializer_list&lt; const_buffer_type &gt; lst, deadline d=deadline()) noexcept'],['../classafio__v2__xxx_1_1map__handle.html#a00b7e1e99089c2641c45ee824811ebc1',1,'afio_v2_xxx::map_handle::write()'],['../classafio__v2__xxx_1_1mapped__file__handle.html#a74dfae7f50c56037cc4260227a13b6d8',1,'afio_v2_xxx::mapped_file_handle::write()'],['../structafio__v2__xxx_1_1storage__profile_1_1storage__profile.html#a9811705f9110d7dae69e621a67a39ec8',1,'afio_v2_xxx::storage_profile::storage_profile::write()'],['../classafio__v2__xxx_1_1handle.html#a0489b6c1e25cd2bad2ba1ec86e1aaf18aefb2a684e4afb7d55e6147fbe5a332ee',1,'afio_v2_xxx::handle::write()'],['../namespaceafio__v2__xxx.html#a2d15768d28ea660ebe44901508ed3372',1,'afio_v2_xxx::write(io_handle &amp;self, io_handle::io_request&lt; io_handle::const_buffers_type &gt; reqs, deadline d=deadline()) noexcept'],['../namespaceafio__v2__xxx.html#a53f3d40c5752d0dbeaa9b8233bff976f',1,'afio_v2_xxx::write(io_handle &amp;self, io_handle::extent_type offset, std::initializer_list&lt; io_handle::const_buffer_type &gt; lst, deadline d=deadline()) noexcept'],['../namespaceafio__v2__xxx.html#a5bfae365a1845c1bde4739de38c3653f',1,'afio_v2_xxx::write(map_handle &amp;self, map_handle::io_request&lt; map_handle::const_buffers_type &gt; reqs, deadline d=deadline()) noexcept']]]
];
diff --git a/search/all_2.js b/search/all_2.js
index 1beb2751..b7d5349e 100644
--- a/search/all_2.js
+++ b/search/all_2.js
@@ -3,7 +3,7 @@ var searchData=
['back',['back',['../structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#a220b834444274ceffef2c3a529de5453',1,'afio_v2_xxx::algorithm::impl::trivial_vector_impl::back()'],['../structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#a77ac1dfbe6f0df38bf9ecd3fbdf515fe',1,'afio_v2_xxx::algorithm::impl::trivial_vector_impl::back() const']]],
['backing',['backing',['../classafio__v2__xxx_1_1section__handle.html#acdebf8de23e97950968d3fba84141366',1,'afio_v2_xxx::section_handle']]],
['backing_5fnative_5fhandle',['backing_native_handle',['../classafio__v2__xxx_1_1section__handle.html#a5464eac84bedf1ce13318451b3a95e93',1,'afio_v2_xxx::section_handle']]],
- ['barrier',['barrier',['../classafio__v2__xxx_1_1io__handle.html#a243156928e89b8988a1412f211b3b603',1,'afio_v2_xxx::io_handle::barrier()'],['../namespaceafio__v2__xxx.html#abb60a5dc89b41b1db101dbed12cb065d',1,'afio_v2_xxx::barrier()']]],
+ ['barrier',['barrier',['../classafio__v2__xxx_1_1io__handle.html#a243156928e89b8988a1412f211b3b603',1,'afio_v2_xxx::io_handle::barrier()'],['../classafio__v2__xxx_1_1map__handle.html#a7119886b920953e12340b05ea94e395d',1,'afio_v2_xxx::map_handle::barrier()'],['../namespaceafio__v2__xxx.html#abb60a5dc89b41b1db101dbed12cb065d',1,'afio_v2_xxx::barrier(io_handle &amp;self, io_handle::io_request&lt; io_handle::const_buffers_type &gt; reqs=io_handle::io_request&lt; io_handle::const_buffers_type &gt;(), bool wait_for_device=false, bool and_metadata=false, deadline d=deadline()) noexcept'],['../namespaceafio__v2__xxx.html#a1b5c40714a95d835e7926b9508469bf2',1,'afio_v2_xxx::barrier(map_handle &amp;self, map_handle::const_buffer_type req, bool evict=false) noexcept']]],
['barrier_5fon_5fclose',['barrier_on_close',['../structafio__v2__xxx_1_1section__handle_1_1flag__base.html#a5b790e66402ef3a07ce9464f3e1dc9d8a13b22e159d85ac0067a3aac0f7255acd',1,'afio_v2_xxx::section_handle::flag_base']]],
['base_2ehpp',['base.hpp',['../base_8hpp.html',1,'']]],
['begin',['begin',['../structafio__v2__xxx_1_1storage__profile_1_1storage__profile.html#aa19331ff339cc1f81d42db90bdf5f1db',1,'afio_v2_xxx::storage_profile::storage_profile::begin() noexcept'],['../structafio__v2__xxx_1_1storage__profile_1_1storage__profile.html#ac36c1be86646518163e8812aff79d080',1,'afio_v2_xxx::storage_profile::storage_profile::begin() const noexcept'],['../structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#acebb433711065ad2b2d16d78eab4b0a0',1,'afio_v2_xxx::algorithm::impl::trivial_vector_impl::begin() noexcept'],['../structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#a5280496d7e2ba769963882652913e4b4',1,'afio_v2_xxx::algorithm::impl::trivial_vector_impl::begin() const noexcept']]],
diff --git a/search/all_3.js b/search/all_3.js
index e7ca3f00..333889f6 100644
--- a/search/all_3.js
+++ b/search/all_3.js
@@ -5,15 +5,15 @@ var searchData=
['cached_5fparent_5fhandle_5fadapter',['cached_parent_handle_adapter',['../classafio__v2__xxx_1_1algorithm_1_1cached__parent__handle__adapter.html',1,'afio_v2_xxx::algorithm']]],
['cached_5fparent_5fhandle_5fadapter_2ehpp',['cached_parent_handle_adapter.hpp',['../cached__parent__handle__adapter_8hpp.html',1,'']]],
['caching',['caching',['../classafio__v2__xxx_1_1handle.html#a6f7e37c73271968271c2342023f58c9e',1,'afio_v2_xxx::handle']]],
- ['capacity',['capacity',['../classafio__v2__xxx_1_1mapped__file__handle.html#ae8e389b2dbdff1b1f155ea351f5ba9c5',1,'afio_v2_xxx::mapped_file_handle::capacity()'],['../structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#a5af156c890eb50a4ab666fa5af5b7c23',1,'afio_v2_xxx::algorithm::impl::trivial_vector_impl::capacity()']]],
+ ['capacity',['capacity',['../classafio__v2__xxx_1_1map__handle.html#ad29ceb1ecb38e9e74e63404b7db3a5a2',1,'afio_v2_xxx::map_handle::capacity()'],['../classafio__v2__xxx_1_1mapped__file__handle.html#ae8e389b2dbdff1b1f155ea351f5ba9c5',1,'afio_v2_xxx::mapped_file_handle::capacity()'],['../structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#a5af156c890eb50a4ab666fa5af5b7c23',1,'afio_v2_xxx::algorithm::impl::trivial_vector_impl::capacity()']]],
['cbegin',['cbegin',['../structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#a1850d40050c96a63ee8c844df0c78f3e',1,'afio_v2_xxx::algorithm::impl::trivial_vector_impl']]],
['cend',['cend',['../structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#ab376c1b7ba13de716f0debae6e2cbd48',1,'afio_v2_xxx::algorithm::impl::trivial_vector_impl']]],
['clear',['clear',['../structafio__v2__xxx_1_1storage__profile_1_1item.html#a5f7494ef59c8a25210953863888da1ec',1,'afio_v2_xxx::storage_profile::item::clear()'],['../structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#a91abb0240b71fb21b5feb71007208192',1,'afio_v2_xxx::algorithm::impl::trivial_vector_impl::clear()']]],
['clone',['clone',['../classafio__v2__xxx_1_1async__file__handle.html#a8d0223e2633274060d94f68b9431dc2f',1,'afio_v2_xxx::async_file_handle::clone(io_service &amp;service, mode mode_=mode::unchanged, caching caching_=caching::unchanged, deadline d=std::chrono::seconds(30)) const noexcept'],['../classafio__v2__xxx_1_1async__file__handle.html#a936a28e9d3fde456a87fd6f7b74258f8',1,'afio_v2_xxx::async_file_handle::clone(mode mode_=mode::unchanged, caching caching_=caching::unchanged, deadline d=std::chrono::seconds(30)) const noexcept override'],['../classafio__v2__xxx_1_1directory__handle.html#a6604d66ebd96f9ed038213b8c22afede',1,'afio_v2_xxx::directory_handle::clone()'],['../classafio__v2__xxx_1_1file__handle.html#a917a528bb0edef02b1a0f535646b7009',1,'afio_v2_xxx::file_handle::clone()'],['../classafio__v2__xxx_1_1handle.html#a54790e954f57372b87b095451cc79c38',1,'afio_v2_xxx::handle::clone()'],['../classafio__v2__xxx_1_1mapped__file__handle.html#a09f12f4ff4ba7465f49dc3355f0154f9',1,'afio_v2_xxx::mapped_file_handle::clone()']]],
['clone_5fto_5fpath_5fhandle',['clone_to_path_handle',['../classafio__v2__xxx_1_1directory__handle.html#a204b11e546071246a52684bd6c28b469',1,'afio_v2_xxx::directory_handle']]],
['close',['close',['../classafio__v2__xxx_1_1directory__handle.html#a195e944c47ae9a10214b15030e241e51',1,'afio_v2_xxx::directory_handle::close()'],['../classafio__v2__xxx_1_1file__handle.html#a6e3ce8be6683ef91e076dbffdffcba3b',1,'afio_v2_xxx::file_handle::close()'],['../classafio__v2__xxx_1_1handle.html#af4c39abeaa83d990e3bd48fff7b94fb9',1,'afio_v2_xxx::handle::close()'],['../classafio__v2__xxx_1_1section__handle.html#a77d41fe0e8cc1f87a5b4259a059b3d93',1,'afio_v2_xxx::section_handle::close()'],['../classafio__v2__xxx_1_1map__handle.html#aca05f73280e20cb18cc0dd7f60a1aae1',1,'afio_v2_xxx::map_handle::close()'],['../classafio__v2__xxx_1_1mapped__file__handle.html#ae19ad565fe47d1474882c4cf682db493',1,'afio_v2_xxx::mapped_file_handle::close()'],['../handle_8hpp.html#ab462e4cc74c6c8e36882547023c46d88',1,'close():&#160;handle.hpp'],['../namespaceafio__v2__xxx.html#aa7f2ca17db2468dbd5407e2f35870077',1,'afio_v2_xxx::close()']]],
- ['co_5fread',['co_read',['../classafio__v2__xxx_1_1async__file__handle.html#abca08e496e10ac6ae890793888a5e3fe',1,'afio_v2_xxx::async_file_handle::co_read()'],['../namespaceafio__v2__xxx.html#a37590ba383783ccfca30404318eb1114',1,'afio_v2_xxx::co_read()']]],
- ['co_5fwrite',['co_write',['../classafio__v2__xxx_1_1async__file__handle.html#a0cd3e4803cfe986815ed8c27a70db777',1,'afio_v2_xxx::async_file_handle::co_write()'],['../namespaceafio__v2__xxx.html#acd740f5aef6ca339575e7497fa873d06',1,'afio_v2_xxx::co_write()']]],
+ ['co_5fread',['co_read',['../classafio__v2__xxx_1_1async__file__handle.html#abca08e496e10ac6ae890793888a5e3fe',1,'afio_v2_xxx::async_file_handle::co_read(io_request&lt; buffers_type &gt; reqs) noexcept'],['../classafio__v2__xxx_1_1async__file__handle.html#acf004a49616f731287c3f57b025a9aec',1,'afio_v2_xxx::async_file_handle::co_read(extent_type offset, std::initializer_list&lt; buffer_type &gt; lst) noexcept'],['../namespaceafio__v2__xxx.html#a37590ba383783ccfca30404318eb1114',1,'afio_v2_xxx::co_read(async_file_handle &amp;self, async_file_handle::io_request&lt; async_file_handle::buffers_type &gt; reqs) noexcept'],['../namespaceafio__v2__xxx.html#ac6be3e0ba22cceed22dbe455c91219dd',1,'afio_v2_xxx::co_read(async_file_handle &amp;self, async_file_handle::extent_type offset, std::initializer_list&lt; async_file_handle::buffer_type &gt; lst) noexcept']]],
+ ['co_5fwrite',['co_write',['../classafio__v2__xxx_1_1async__file__handle.html#a0cd3e4803cfe986815ed8c27a70db777',1,'afio_v2_xxx::async_file_handle::co_write(io_request&lt; const_buffers_type &gt; reqs) noexcept'],['../classafio__v2__xxx_1_1async__file__handle.html#a71951654fcca9a2f9a2e747e33579fcc',1,'afio_v2_xxx::async_file_handle::co_write(extent_type offset, std::initializer_list&lt; const_buffer_type &gt; lst) noexcept'],['../namespaceafio__v2__xxx.html#acd740f5aef6ca339575e7497fa873d06',1,'afio_v2_xxx::co_write(async_file_handle &amp;self, async_file_handle::io_request&lt; async_file_handle::const_buffers_type &gt; reqs) noexcept'],['../namespaceafio__v2__xxx.html#a6e6ab37dfca4a975e6d04696948c0728',1,'afio_v2_xxx::co_write(async_file_handle &amp;self, async_file_handle::extent_type offset, std::initializer_list&lt; async_file_handle::const_buffer_type &gt; lst) noexcept']]],
['commit',['commit',['../classafio__v2__xxx_1_1map__handle.html#a4cdb7b9643da8c8e2dee0c8b01511e83',1,'afio_v2_xxx::map_handle']]],
['compare',['compare',['../classafio__v2__xxx_1_1path__view.html#ab0d2c07fd17c32d8fadd424353c7fcf2',1,'afio_v2_xxx::path_view::compare(const path_view &amp;p) const noexcept'],['../classafio__v2__xxx_1_1path__view.html#ac24b83766cf682a8aaf5da927c227f37',1,'afio_v2_xxx::path_view::compare(const char *s) const noexcept'],['../classafio__v2__xxx_1_1path__view.html#a17590607917c4cf249d809ee22171225',1,'afio_v2_xxx::path_view::compare(string_view str) const noexcept']]],
['compression',['compression',['../structafio__v2__xxx_1_1statfs__t_1_1f__flags__t.html#ada0e4acd2108972f836b87781b3bf19a',1,'afio_v2_xxx::statfs_t::f_flags_t']]],
diff --git a/search/all_4.js b/search/all_4.js
index ffbf9308..d1f51081 100644
--- a/search/all_4.js
+++ b/search/all_4.js
@@ -7,7 +7,7 @@ var searchData=
['default_5fvalue',['default_value',['../namespaceafio__v2__xxx_1_1storage__profile.html#a2ad39b78e400cf1ab64579129522d4ac',1,'afio_v2_xxx::storage_profile']]],
['description',['description',['../structafio__v2__xxx_1_1storage__profile_1_1item__base.html#a3914ff417e4a91fd0cc1da8ccb3e81d0',1,'afio_v2_xxx::storage_profile::item_base']]],
['difference_5ftype',['difference_type',['../classafio__v2__xxx_1_1path__view.html#ac974fe24265a3743dd1e12951f4b7c07',1,'afio_v2_xxx::path_view::difference_type()'],['../classafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__iterator.html#a5c563ca6aeed618687865d3ee719b9e0',1,'afio_v2_xxx::algorithm::impl::trivial_vector_iterator::difference_type()'],['../structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#ae6e8619169eebab25b3367fcb1b32d73',1,'afio_v2_xxx::algorithm::impl::trivial_vector_impl::difference_type()'],['../structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl_3_01true_00_01_t_01_4.html#a207c32c8b5b657af4edc2f8cbca4c6c7',1,'afio_v2_xxx::algorithm::impl::trivial_vector_impl&lt; true, T &gt;::difference_type()']]],
- ['directory',['directory',['../structafio__v2__xxx_1_1native__handle__type_1_1disposition__base.html#a89e0e728fc7a7e4a008e57d572702de6a85ac63eac2d825a8dcfbd64a733d4c5f',1,'afio_v2_xxx::native_handle_type::disposition_base::directory()'],['../classafio__v2__xxx_1_1directory__handle.html#ac90b57c2bce3e0a42aef8fdf21f3c557',1,'afio_v2_xxx::directory_handle::directory()'],['../namespaceafio__v2__xxx.html#affce2389376e27ffa0565890034d209f',1,'afio_v2_xxx::directory()']]],
+ ['directory',['directory',['../structafio__v2__xxx_1_1native__handle__type_1_1disposition__base.html#a89e0e728fc7a7e4a008e57d572702de6a85ac63eac2d825a8dcfbd64a733d4c5f',1,'afio_v2_xxx::native_handle_type::disposition_base::directory()'],['../classafio__v2__xxx_1_1directory__handle.html#ac90b57c2bce3e0a42aef8fdf21f3c557',1,'afio_v2_xxx::directory_handle::directory()'],['../namespaceafio__v2__xxx.html#a83828cb013df9d77b08ec0ac59037c85',1,'afio_v2_xxx::directory()']]],
['directory_5fentry',['directory_entry',['../structafio__v2__xxx_1_1directory__entry.html',1,'afio_v2_xxx']]],
['directory_5fhandle',['directory_handle',['../classafio__v2__xxx_1_1directory__handle.html',1,'afio_v2_xxx::directory_handle'],['../classafio__v2__xxx_1_1directory__handle.html#a13fab93f0536c914bee9c00f9d910075',1,'afio_v2_xxx::directory_handle::directory_handle()'],['../classafio__v2__xxx_1_1directory__handle.html#a352e948332a37127e4c47541f41b346e',1,'afio_v2_xxx::directory_handle::directory_handle(native_handle_type h, dev_t devid, ino_t inode, caching caching=caching::all, flag flags=flag::none)'],['../classafio__v2__xxx_1_1directory__handle.html#a7661e46005a377ca3f6e23064710dd9f',1,'afio_v2_xxx::directory_handle::directory_handle(directory_handle &amp;&amp;o) noexcept'],['../classafio__v2__xxx_1_1directory__handle.html#a4eee464e2a8426dd2a272900fbd55a6d',1,'afio_v2_xxx::directory_handle::directory_handle(const directory_handle &amp;)=delete'],['../classafio__v2__xxx_1_1directory__handle.html#af7cff32d671ae0b2b1e4b702c7389f3f',1,'afio_v2_xxx::directory_handle::directory_handle(handle &amp;&amp;o, dev_t devid, ino_t inode) noexcept']]],
['directory_5fhandle_2ehpp',['directory_handle.hpp',['../directory__handle_8hpp.html',1,'']]],
diff --git a/search/all_5.js b/search/all_5.js
index 6484b5df..4e4fafdf 100644
--- a/search/all_5.js
+++ b/search/all_5.js
@@ -22,6 +22,6 @@ var searchData=
['execute',['execute',['../structafio__v2__xxx_1_1section__handle_1_1flag__base.html#a5b790e66402ef3a07ce9464f3e1dc9d8a52cf147e32054f836e9fe4915eef32d1',1,'afio_v2_xxx::section_handle::flag_base']]],
['extent',['extent',['../classafio__v2__xxx_1_1io__handle_1_1extent__guard.html#a15ded83348af6cd802e49b261b7734ea',1,'afio_v2_xxx::io_handle::extent_guard']]],
['extent_5fguard',['extent_guard',['../classafio__v2__xxx_1_1io__handle_1_1extent__guard.html',1,'afio_v2_xxx::io_handle::extent_guard'],['../classafio__v2__xxx_1_1io__handle_1_1extent__guard.html#ad39d0d65e7497b15e5565ca5c40309bb',1,'afio_v2_xxx::io_handle::extent_guard::extent_guard()'],['../classafio__v2__xxx_1_1io__handle_1_1extent__guard.html#a654755e3c10998191fe5a923df02c4e3',1,'afio_v2_xxx::io_handle::extent_guard::extent_guard(extent_guard &amp;&amp;o) noexcept']]],
- ['extent_5ftype',['extent_type',['../classafio__v2__xxx_1_1handle.html#a818fff07c92eaab72532092d1c2a14f9',1,'afio_v2_xxx::handle::extent_type()'],['../classafio__v2__xxx_1_1io__service.html#afc9f0ed0d7e0bce83023f998e95f7873',1,'afio_v2_xxx::io_service::extent_type()'],['../classafio__v2__xxx_1_1algorithm_1_1mapped__view.html#a0e413ca44e22e974598aa700f8fda08a',1,'afio_v2_xxx::algorithm::mapped_view::extent_type()']]],
+ ['extent_5ftype',['extent_type',['../classafio__v2__xxx_1_1handle.html#a818fff07c92eaab72532092d1c2a14f9',1,'afio_v2_xxx::handle::extent_type()'],['../classafio__v2__xxx_1_1io__service.html#afc9f0ed0d7e0bce83023f998e95f7873',1,'afio_v2_xxx::io_service::extent_type()'],['../classafio__v2__xxx_1_1algorithm_1_1mapped__span.html#aa53a448cdf7c235bdba9252b52548b5b',1,'afio_v2_xxx::algorithm::mapped_span::extent_type()']]],
['extents',['extents',['../structafio__v2__xxx_1_1statfs__t_1_1f__flags__t.html#aad31bddf29d0736339709e78ca93062a',1,'afio_v2_xxx::statfs_t::f_flags_t::extents()'],['../classafio__v2__xxx_1_1file__handle.html#a03d1774e3ad8678fb4aac4ced57beeef',1,'afio_v2_xxx::file_handle::extents()'],['../namespaceafio__v2__xxx.html#ac3c009153d916556b991d4a79c664fe9',1,'afio_v2_xxx::extents()']]]
];
diff --git a/search/all_6.js b/search/all_6.js
index be3bd598..d41fd40d 100644
--- a/search/all_6.js
+++ b/search/all_6.js
@@ -17,7 +17,7 @@ var searchData=
['f_5fowner',['f_owner',['../structafio__v2__xxx_1_1statfs__t.html#a1b1aef93998f288c7cd84e17a22c9394',1,'afio_v2_xxx::statfs_t']]],
['fastdeleted',['fastdeleted',['../classafio__v2__xxx_1_1directory__handle.html#a47ed88b4de271daa08862b273c2f609ea14847befc159c1492671b53718fc46f8',1,'afio_v2_xxx::directory_handle']]],
['fd',['fd',['../structafio__v2__xxx_1_1native__handle__type.html#a5f67e70703bf6f4ccbf9b9e68795adde',1,'afio_v2_xxx::native_handle_type']]],
- ['file',['file',['../structafio__v2__xxx_1_1native__handle__type_1_1disposition__base.html#a89e0e728fc7a7e4a008e57d572702de6a59b51174b4148e21400df2a28d64c333',1,'afio_v2_xxx::native_handle_type::disposition_base::file()'],['../classafio__v2__xxx_1_1file__handle.html#accb36f2bfd98393dc868653798c02d34',1,'afio_v2_xxx::file_handle::file()'],['../namespaceafio__v2__xxx.html#a84b5a9fc93107c673160b41fff151938',1,'afio_v2_xxx::file()']]],
+ ['file',['file',['../structafio__v2__xxx_1_1native__handle__type_1_1disposition__base.html#a89e0e728fc7a7e4a008e57d572702de6a59b51174b4148e21400df2a28d64c333',1,'afio_v2_xxx::native_handle_type::disposition_base::file()'],['../classafio__v2__xxx_1_1file__handle.html#accb36f2bfd98393dc868653798c02d34',1,'afio_v2_xxx::file_handle::file()'],['../namespaceafio__v2__xxx.html#ab92ca63383ef7fe58af4620570d12803',1,'afio_v2_xxx::file()']]],
['file_5fbuffer_5fdefault_5fsize',['file_buffer_default_size',['../namespaceafio__v2__xxx_1_1utils.html#ace050f445d1d1fdd4b2a6f99d9be7f85',1,'afio_v2_xxx::utils']]],
['file_5fhandle',['file_handle',['../classafio__v2__xxx_1_1file__handle.html',1,'afio_v2_xxx::file_handle'],['../classafio__v2__xxx_1_1file__handle.html#a962eb1411083ca9b2250fe40a9259354',1,'afio_v2_xxx::file_handle::file_handle()'],['../classafio__v2__xxx_1_1file__handle.html#ab1f64547bfc4ee74e6019729aaf25703',1,'afio_v2_xxx::file_handle::file_handle(native_handle_type h, dev_t devid, ino_t inode, caching caching=caching::none, flag flags=flag::none)'],['../classafio__v2__xxx_1_1file__handle.html#ae789484988ef5ae7eeb582439cf94904',1,'afio_v2_xxx::file_handle::file_handle(const file_handle &amp;)=delete'],['../classafio__v2__xxx_1_1file__handle.html#a42313f9ac61c825800d07a33a92679ba',1,'afio_v2_xxx::file_handle::file_handle(file_handle &amp;&amp;o) noexcept'],['../classafio__v2__xxx_1_1file__handle.html#a7aed1b9a1601502a692d27d8f3997b64',1,'afio_v2_xxx::file_handle::file_handle(handle &amp;&amp;o, dev_t devid, ino_t inode) noexcept']]],
['file_5fhandle_2ehpp',['file_handle.hpp',['../file__handle_8hpp.html',1,'']]],
diff --git a/search/all_8.js b/search/all_8.js
index 06c959c2..afc629a7 100644
--- a/search/all_8.js
+++ b/search/all_8.js
@@ -16,6 +16,7 @@ var searchData=
['is_5fappend_5fonly',['is_append_only',['../classafio__v2__xxx_1_1handle.html#ae33d4d0faa1377cd371bd6a0ae0769ae',1,'afio_v2_xxx::handle::is_append_only()'],['../structafio__v2__xxx_1_1native__handle__type.html#aaf2cb07f0c13dcdfe89bf652bd5cac15',1,'afio_v2_xxx::native_handle_type::is_append_only()']]],
['is_5fdirectory',['is_directory',['../classafio__v2__xxx_1_1handle.html#aa53d88105df8c6be01be649829a65b14',1,'afio_v2_xxx::handle::is_directory()'],['../structafio__v2__xxx_1_1native__handle__type.html#a8062ec2c4efab65af39f2f48d4202280',1,'afio_v2_xxx::native_handle_type::is_directory()']]],
['is_5fmultiplexer',['is_multiplexer',['../classafio__v2__xxx_1_1handle.html#ab790af4654f5455d8c5e1f1d397543ca',1,'afio_v2_xxx::handle::is_multiplexer()'],['../structafio__v2__xxx_1_1native__handle__type.html#a92b5295842f424e71367c0d9019f5d8e',1,'afio_v2_xxx::native_handle_type::is_multiplexer()']]],
+ ['is_5fnvram',['is_nvram',['../classafio__v2__xxx_1_1section__handle.html#a111bb9698b6180e9f211e27816f8a4da',1,'afio_v2_xxx::section_handle::is_nvram()'],['../classafio__v2__xxx_1_1map__handle.html#a5c57d56e5704ced94de606895a1fe9bd',1,'afio_v2_xxx::map_handle::is_nvram()']]],
['is_5foverlapped',['is_overlapped',['../classafio__v2__xxx_1_1handle.html#af42904dd49b5517a303e7cb256eae939',1,'afio_v2_xxx::handle::is_overlapped()'],['../structafio__v2__xxx_1_1native__handle__type.html#a529a58c5d24bbafc823bffb0143d1c0b',1,'afio_v2_xxx::native_handle_type::is_overlapped()']]],
['is_5fprocess',['is_process',['../classafio__v2__xxx_1_1handle.html#ad02958278a0d92e4ec4fb864ba1eb35b',1,'afio_v2_xxx::handle::is_process()'],['../structafio__v2__xxx_1_1native__handle__type.html#a913fe2e277721843bb1a846476e301a6',1,'afio_v2_xxx::native_handle_type::is_process()']]],
['is_5freadable',['is_readable',['../classafio__v2__xxx_1_1handle.html#a349e001cbe359d4e7a8f066c69e9361e',1,'afio_v2_xxx::handle::is_readable()'],['../structafio__v2__xxx_1_1native__handle__type.html#acf366a8411ecec492e1722c199675256',1,'afio_v2_xxx::native_handle_type::is_readable()']]],
diff --git a/search/all_b.js b/search/all_b.js
index a220dfd8..d3153348 100644
--- a/search/all_b.js
+++ b/search/all_b.js
@@ -8,10 +8,10 @@ var searchData=
['mapped_5ffile_5fhandle',['mapped_file_handle',['../classafio__v2__xxx_1_1mapped__file__handle.html',1,'afio_v2_xxx::mapped_file_handle'],['../classafio__v2__xxx_1_1mapped__file__handle.html#a4195d7c5e0a05273ea92d9913189456c',1,'afio_v2_xxx::mapped_file_handle::mapped_file_handle()'],['../classafio__v2__xxx_1_1mapped__file__handle.html#a1e5228aa6431b2770752e842bae5123b',1,'afio_v2_xxx::mapped_file_handle::mapped_file_handle(mapped_file_handle &amp;&amp;o) noexcept'],['../classafio__v2__xxx_1_1mapped__file__handle.html#aa28cc8821b7516afacf6a8d2e19cdf14',1,'afio_v2_xxx::mapped_file_handle::mapped_file_handle(const mapped_file_handle &amp;)=delete'],['../classafio__v2__xxx_1_1mapped__file__handle.html#afd7469b8fa7aa8e0a3dd84cb42697621',1,'afio_v2_xxx::mapped_file_handle::mapped_file_handle(file_handle &amp;&amp;o) noexcept'],['../classafio__v2__xxx_1_1mapped__file__handle.html#a12b186b46922da667e4efdd9a63e061c',1,'afio_v2_xxx::mapped_file_handle::mapped_file_handle(file_handle &amp;&amp;o, size_type reservation) noexcept']]],
['mapped_5ffile_5fhandle_2ehpp',['mapped_file_handle.hpp',['../mapped__file__handle_8hpp.html',1,'']]],
['mapped_5frandom_5ffile',['mapped_random_file',['../classafio__v2__xxx_1_1mapped__file__handle.html#a00875e717f4b2725bb58ecbb5310fc6f',1,'afio_v2_xxx::mapped_file_handle::mapped_random_file()'],['../namespaceafio__v2__xxx.html#ac9be648f691d72c9cac6295ea7b3f9c8',1,'afio_v2_xxx::mapped_random_file()']]],
+ ['mapped_5fspan',['mapped_span',['../classafio__v2__xxx_1_1algorithm_1_1mapped__span.html',1,'afio_v2_xxx::algorithm::mapped_span&lt; T &gt;'],['../classafio__v2__xxx_1_1algorithm_1_1mapped__span.html#aa5b20642220613876d8be474003785e9',1,'afio_v2_xxx::algorithm::mapped_span::mapped_span()'],['../classafio__v2__xxx_1_1algorithm_1_1mapped__span.html#af6a43d3c0201079dac97d407ddb00aaa',1,'afio_v2_xxx::algorithm::mapped_span::mapped_span(size_type length, section_handle::flag _flag=section_handle::flag::readwrite)'],['../classafio__v2__xxx_1_1algorithm_1_1mapped__span.html#aca48ca2f9558c5d6f57e398016311fe8',1,'afio_v2_xxx::algorithm::mapped_span::mapped_span(section_handle &amp;sh, size_type length=(size_type) -1, extent_type byteoffset=0, section_handle::flag _flag=section_handle::flag::readwrite)'],['../classafio__v2__xxx_1_1algorithm_1_1mapped__span.html#a236f0978be161027886300e85bf5ae8d',1,'afio_v2_xxx::algorithm::mapped_span::mapped_span(mapped_file_handle &amp;mfh, size_type length=(size_type) -1, extent_type byteoffset=0)']]],
+ ['mapped_5fspan_2ehpp',['mapped_span.hpp',['../mapped__span_8hpp.html',1,'']]],
['mapped_5ftemp_5ffile',['mapped_temp_file',['../classafio__v2__xxx_1_1mapped__file__handle.html#ae19c88791bd2e0bca0d22ec576687a83',1,'afio_v2_xxx::mapped_file_handle::mapped_temp_file()'],['../namespaceafio__v2__xxx.html#ab175b3720445c24cd43e3b7d88c6bbc9',1,'afio_v2_xxx::mapped_temp_file()']]],
['mapped_5ftemp_5finode',['mapped_temp_inode',['../classafio__v2__xxx_1_1mapped__file__handle.html#afb68c9671a7ffb40cef4b6db0000a1a5',1,'afio_v2_xxx::mapped_file_handle::mapped_temp_inode()'],['../namespaceafio__v2__xxx.html#ac021261f7a8696b0f4cbdcfacef1e88a',1,'afio_v2_xxx::mapped_temp_inode()']]],
- ['mapped_5fview',['mapped_view',['../classafio__v2__xxx_1_1algorithm_1_1mapped__view.html',1,'afio_v2_xxx::algorithm::mapped_view&lt; T &gt;'],['../classafio__v2__xxx_1_1algorithm_1_1mapped__view.html#a8ac47f0032bf486cc3ff21b0a1958d02',1,'afio_v2_xxx::algorithm::mapped_view::mapped_view()'],['../classafio__v2__xxx_1_1algorithm_1_1mapped__view.html#af8a986d93d5967962763900af3f99824',1,'afio_v2_xxx::algorithm::mapped_view::mapped_view(size_type length, section_handle::flag _flag=section_handle::flag::readwrite)'],['../classafio__v2__xxx_1_1algorithm_1_1mapped__view.html#a0c63a640692c5fab81abb7572df45018',1,'afio_v2_xxx::algorithm::mapped_view::mapped_view(section_handle &amp;sh, size_type length=(size_type) -1, extent_type byteoffset=0, section_handle::flag _flag=section_handle::flag::readwrite)'],['../classafio__v2__xxx_1_1algorithm_1_1mapped__view.html#a90012e57d3d7fa833f363a56cb91bcd9',1,'afio_v2_xxx::algorithm::mapped_view::mapped_view(mapped_file_handle &amp;mfh, size_type length=(size_type) -1, extent_type byteoffset=0)']]],
- ['mapped_5fview_2ehpp',['mapped_view.hpp',['../mapped__view_8hpp.html',1,'']]],
['max_5fbuffers',['max_buffers',['../classafio__v2__xxx_1_1io__handle.html#a4d9cbbb7aae98704c6ad97de080c4210',1,'afio_v2_xxx::io_handle']]],
['max_5fsize',['max_size',['../structafio__v2__xxx_1_1storage__profile_1_1storage__profile.html#ab6b3c4513e47e2905c8e6fe1c831d742',1,'afio_v2_xxx::storage_profile::storage_profile::max_size()'],['../structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#a659754b0f9d7e2f3fa26921ebe48e7c0',1,'afio_v2_xxx::algorithm::impl::trivial_vector_impl::max_size()']]],
['maximum_5fprefetching',['maximum_prefetching',['../structafio__v2__xxx_1_1handle_1_1flag__base.html#a51aaa32c78950cedbc1b7a61e1738d3ea67eb5d8757f506595ca2d5c06d8389dc',1,'afio_v2_xxx::handle::flag_base']]],
diff --git a/search/all_c.js b/search/all_c.js
index 02ff24cd..67b6248f 100644
--- a/search/all_c.js
+++ b/search/all_c.js
@@ -9,5 +9,6 @@ var searchData=
['noexec',['noexec',['../structafio__v2__xxx_1_1statfs__t_1_1f__flags__t.html#a66db065b8f21b1895e1f021465cfe9e3',1,'afio_v2_xxx::statfs_t::f_flags_t']]],
['none',['none',['../structafio__v2__xxx_1_1handle_1_1flag__base.html#a51aaa32c78950cedbc1b7a61e1738d3eadc582374ac8ba5ca2d5dd81cc81258e9',1,'afio_v2_xxx::handle::flag_base::none()'],['../structafio__v2__xxx_1_1section__handle_1_1flag__base.html#a5b790e66402ef3a07ce9464f3e1dc9d8a26c56f64a5569c048ed853c28249726d',1,'afio_v2_xxx::section_handle::flag_base::none()'],['../classafio__v2__xxx_1_1directory__handle.html#a47ed88b4de271daa08862b273c2f609ea334c4a4c42fdb79d7ebc3e73b517e6f8',1,'afio_v2_xxx::directory_handle::none()'],['../classafio__v2__xxx_1_1handle.html#a0489b6c1e25cd2bad2ba1ec86e1aaf18a334c4a4c42fdb79d7ebc3e73b517e6f8',1,'afio_v2_xxx::handle::none()'],['../classafio__v2__xxx_1_1handle.html#a6f7e37c73271968271c2342023f58c9ea334c4a4c42fdb79d7ebc3e73b517e6f8',1,'afio_v2_xxx::handle::none()']]],
['nosuid',['nosuid',['../structafio__v2__xxx_1_1statfs__t_1_1f__flags__t.html#a14559edf894cb85d3afcdce3af0f0d3f',1,'afio_v2_xxx::statfs_t::f_flags_t']]],
- ['nsecs',['nsecs',['../structafio__v2__xxx_1_1deadline.html#a6640fb195fb8b761a8b04ab8dd653106',1,'afio_v2_xxx::deadline']]]
+ ['nsecs',['nsecs',['../structafio__v2__xxx_1_1deadline.html#a6640fb195fb8b761a8b04ab8dd653106',1,'afio_v2_xxx::deadline']]],
+ ['nvram',['nvram',['../structafio__v2__xxx_1_1section__handle_1_1flag__base.html#a5b790e66402ef3a07ce9464f3e1dc9d8a1e60c3188179bfa97299536cd051fcb9',1,'afio_v2_xxx::section_handle::flag_base']]]
];
diff --git a/search/all_e.js b/search/all_e.js
index 721fdd90..d04e450c 100644
--- a/search/all_e.js
+++ b/search/all_e.js
@@ -5,7 +5,7 @@ var searchData=
['page_5fsize',['page_size',['../namespaceafio__v2__xxx_1_1utils.html#a337c41ad9b9dcbc6dbd81f2e706b469d',1,'afio_v2_xxx::utils']]],
['page_5fsizes',['page_sizes',['../namespaceafio__v2__xxx_1_1utils.html#aadc7dd505730e2701313be55519c9958',1,'afio_v2_xxx::utils']]],
['parent_5fpath_5fhandle',['parent_path_handle',['../classafio__v2__xxx_1_1fs__handle.html#aaacc27a62ce0859506d7443f0d0e7adf',1,'afio_v2_xxx::fs_handle']]],
- ['path',['path',['../structafio__v2__xxx_1_1path__discovery_1_1discovered__path.html#a56e49e3860b4b34f7f084df4361de83d',1,'afio_v2_xxx::path_discovery::discovered_path::path()'],['../classafio__v2__xxx_1_1path__handle.html#af6e7168b01cf2e1eefdc190ec4a52c8f',1,'afio_v2_xxx::path_handle::path(const path_handle &amp;base, path_view_type path) noexcept'],['../classafio__v2__xxx_1_1path__handle.html#a55d9de8f40e86dc1b657f3905d9a1e61',1,'afio_v2_xxx::path_handle::path(path_view_type _path) noexcept'],['../classafio__v2__xxx_1_1path__view.html#a9ffd7729fb1a57f42deab7375c4fa45f',1,'afio_v2_xxx::path_view::path()'],['../classafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1lock__files.html#a4118c8a384a2cc34c7f1636f87f40e5d',1,'afio_v2_xxx::algorithm::shared_fs_mutex::lock_files::path()'],['../namespaceafio__v2__xxx.html#a7432c582b3af692a1f94be33aa73a00e',1,'afio_v2_xxx::path(const path_handle &amp;base, path_handle::path_view_type _path) noexcept'],['../namespaceafio__v2__xxx.html#ac9484fd22637e8e0102d7b48b080c075',1,'afio_v2_xxx::path(path_handle::path_view_type _path) noexcept']]],
+ ['path',['path',['../structafio__v2__xxx_1_1path__discovery_1_1discovered__path.html#a56e49e3860b4b34f7f084df4361de83d',1,'afio_v2_xxx::path_discovery::discovered_path::path()'],['../classafio__v2__xxx_1_1path__handle.html#af6e7168b01cf2e1eefdc190ec4a52c8f',1,'afio_v2_xxx::path_handle::path(const path_handle &amp;base, path_view_type path) noexcept'],['../classafio__v2__xxx_1_1path__handle.html#a55d9de8f40e86dc1b657f3905d9a1e61',1,'afio_v2_xxx::path_handle::path(path_view_type _path) noexcept'],['../classafio__v2__xxx_1_1path__view.html#a9ffd7729fb1a57f42deab7375c4fa45f',1,'afio_v2_xxx::path_view::path()'],['../classafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1lock__files.html#a4118c8a384a2cc34c7f1636f87f40e5d',1,'afio_v2_xxx::algorithm::shared_fs_mutex::lock_files::path()'],['../namespaceafio__v2__xxx.html#a7a98882ead35ebd6bd0700fdf571c44a',1,'afio_v2_xxx::path(const path_handle &amp;base, path_handle::path_view_type path) noexcept'],['../namespaceafio__v2__xxx.html#ac9484fd22637e8e0102d7b48b080c075',1,'afio_v2_xxx::path(path_handle::path_view_type _path) noexcept']]],
['path1',['path1',['../structafio__v2__xxx_1_1error__info.html#afbf3cea56f9194d0dcc2d0838953833e',1,'afio_v2_xxx::error_info']]],
['path2',['path2',['../structafio__v2__xxx_1_1error__info.html#a344e1f5864b7672b55fbd0ad48c00658',1,'afio_v2_xxx::error_info']]],
['path_5fdiscovery_2ehpp',['path_discovery.hpp',['../path__discovery_8hpp.html',1,'']]],
diff --git a/search/all_f.js b/search/all_f.js
index 7bb39218..084c3fed 100644
--- a/search/all_f.js
+++ b/search/all_f.js
@@ -7,14 +7,14 @@ var searchData=
['random_5fstring',['random_string',['../namespaceafio__v2__xxx_1_1utils.html#a767b8434456319066194534a4c4edbf5',1,'afio_v2_xxx::utils']]],
['rbegin',['rbegin',['../structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#a3212d6235ecc8f66742829c3489a14e4',1,'afio_v2_xxx::algorithm::impl::trivial_vector_impl::rbegin() noexcept'],['../structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#a241ff1b2ffdfa60fbc603f346d3605ed',1,'afio_v2_xxx::algorithm::impl::trivial_vector_impl::rbegin() const noexcept']]],
['rdonly',['rdonly',['../structafio__v2__xxx_1_1statfs__t_1_1f__flags__t.html#aa60cb5337a8754332284d5fa19a311d7',1,'afio_v2_xxx::statfs_t::f_flags_t']]],
- ['read',['read',['../structafio__v2__xxx_1_1section__handle_1_1flag__base.html#a5b790e66402ef3a07ce9464f3e1dc9d8a5de9274683882ee1d0584d535ec4959a',1,'afio_v2_xxx::section_handle::flag_base::read()'],['../classafio__v2__xxx_1_1io__handle.html#a71d7636f40607829cacc2c974c4a2a28',1,'afio_v2_xxx::io_handle::read(io_request&lt; buffers_type &gt; reqs, deadline d=deadline()) noexcept'],['../classafio__v2__xxx_1_1io__handle.html#a8af6c6dc1502d40f6aaccc83e49d5342',1,'afio_v2_xxx::io_handle::read(extent_type offset, char *data, size_type bytes, deadline d=deadline()) noexcept'],['../classafio__v2__xxx_1_1map__handle.html#a4d8c8f3fcecd58b55316d42799abf6f3',1,'afio_v2_xxx::map_handle::read()'],['../classafio__v2__xxx_1_1mapped__file__handle.html#af645b1c8daf7b1ce9bf5ed50d1ee83a1',1,'afio_v2_xxx::mapped_file_handle::read()'],['../structafio__v2__xxx_1_1storage__profile_1_1storage__profile.html#aa3040d68a929247da822c74600fb977d',1,'afio_v2_xxx::storage_profile::storage_profile::read()'],['../classafio__v2__xxx_1_1handle.html#a0489b6c1e25cd2bad2ba1ec86e1aaf18aecae13117d6f0584c25a9da6c8f8415e',1,'afio_v2_xxx::handle::read()'],['../namespaceafio__v2__xxx.html#a3cff8f3910dbf47663e5df1dc7e5ba47',1,'afio_v2_xxx::read(io_handle &amp;self, io_handle::io_request&lt; io_handle::buffers_type &gt; reqs, deadline d=deadline()) noexcept'],['../namespaceafio__v2__xxx.html#ac89289d85eff137c40d3d0084c410656',1,'afio_v2_xxx::read(map_handle &amp;self, map_handle::io_request&lt; map_handle::buffers_type &gt; reqs, deadline d=deadline()) noexcept']]],
+ ['read',['read',['../structafio__v2__xxx_1_1section__handle_1_1flag__base.html#a5b790e66402ef3a07ce9464f3e1dc9d8a5de9274683882ee1d0584d535ec4959a',1,'afio_v2_xxx::section_handle::flag_base::read()'],['../classafio__v2__xxx_1_1io__handle.html#a71d7636f40607829cacc2c974c4a2a28',1,'afio_v2_xxx::io_handle::read(io_request&lt; buffers_type &gt; reqs, deadline d=deadline()) noexcept'],['../classafio__v2__xxx_1_1io__handle.html#a928a8ab64d5b7d68dc7e2b3e5849df24',1,'afio_v2_xxx::io_handle::read(extent_type offset, std::initializer_list&lt; buffer_type &gt; lst, deadline d=deadline()) noexcept'],['../classafio__v2__xxx_1_1map__handle.html#a4d8c8f3fcecd58b55316d42799abf6f3',1,'afio_v2_xxx::map_handle::read()'],['../classafio__v2__xxx_1_1mapped__file__handle.html#af645b1c8daf7b1ce9bf5ed50d1ee83a1',1,'afio_v2_xxx::mapped_file_handle::read()'],['../structafio__v2__xxx_1_1storage__profile_1_1storage__profile.html#aa3040d68a929247da822c74600fb977d',1,'afio_v2_xxx::storage_profile::storage_profile::read()'],['../classafio__v2__xxx_1_1handle.html#a0489b6c1e25cd2bad2ba1ec86e1aaf18aecae13117d6f0584c25a9da6c8f8415e',1,'afio_v2_xxx::handle::read()'],['../namespaceafio__v2__xxx.html#a3cff8f3910dbf47663e5df1dc7e5ba47',1,'afio_v2_xxx::read(io_handle &amp;self, io_handle::io_request&lt; io_handle::buffers_type &gt; reqs, deadline d=deadline()) noexcept'],['../namespaceafio__v2__xxx.html#a45b09c42c9a14c6abb56888a2832ba69',1,'afio_v2_xxx::read(io_handle &amp;self, io_handle::extent_type offset, std::initializer_list&lt; io_handle::buffer_type &gt; lst, deadline d=deadline()) noexcept'],['../namespaceafio__v2__xxx.html#ac89289d85eff137c40d3d0084c410656',1,'afio_v2_xxx::read(map_handle &amp;self, map_handle::io_request&lt; map_handle::buffers_type &gt; reqs, deadline d=deadline()) noexcept']]],
['readable',['readable',['../structafio__v2__xxx_1_1native__handle__type_1_1disposition__base.html#a89e0e728fc7a7e4a008e57d572702de6ae08a9b483ffd8f581589f2756df938ff',1,'afio_v2_xxx::native_handle_type::disposition_base']]],
['reads',['reads',['../classafio__v2__xxx_1_1handle.html#a6f7e37c73271968271c2342023f58c9ea0fb9cf5f04f61bb6f1151da57ceb1ca1',1,'afio_v2_xxx::handle']]],
['reads_5fand_5fmetadata',['reads_and_metadata',['../classafio__v2__xxx_1_1handle.html#a6f7e37c73271968271c2342023f58c9eadec4ecca8ae1593f84eea4656599a693',1,'afio_v2_xxx::handle']]],
- ['rebind',['rebind',['../structafio__v2__xxx_1_1utils_1_1page__allocator_3_01void_01_4_1_1rebind.html',1,'afio_v2_xxx::utils::page_allocator&lt; void &gt;::rebind&lt; U &gt;'],['../structafio__v2__xxx_1_1utils_1_1page__allocator_1_1rebind.html',1,'afio_v2_xxx::utils::page_allocator&lt; T &gt;::rebind&lt; U &gt;']]],
+ ['rebind',['rebind',['../structafio__v2__xxx_1_1utils_1_1page__allocator_1_1rebind.html',1,'afio_v2_xxx::utils::page_allocator&lt; T &gt;::rebind&lt; U &gt;'],['../structafio__v2__xxx_1_1utils_1_1page__allocator_3_01void_01_4_1_1rebind.html',1,'afio_v2_xxx::utils::page_allocator&lt; void &gt;::rebind&lt; U &gt;']]],
['reference',['reference',['../classafio__v2__xxx_1_1path__view.html#a399229662f3c1fef9e4560e3e2bc5a08',1,'afio_v2_xxx::path_view::reference()'],['../structafio__v2__xxx_1_1storage__profile_1_1storage__profile.html#af15713231fb00958e4fc70f3d28b9ad7',1,'afio_v2_xxx::storage_profile::storage_profile::reference()'],['../classafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__iterator.html#ac4779bb4b82694d02511c6cc40a483b9',1,'afio_v2_xxx::algorithm::impl::trivial_vector_iterator::reference()'],['../structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#a8c825aa9079c8acb231b690a6d1537ac',1,'afio_v2_xxx::algorithm::impl::trivial_vector_impl::reference()'],['../structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl_3_01true_00_01_t_01_4.html#a9cb175f8b03635cc4fc3ccf220adbe61',1,'afio_v2_xxx::algorithm::impl::trivial_vector_impl&lt; true, T &gt;::reference()']]],
['release',['release',['../classafio__v2__xxx_1_1handle.html#a73d5f2070bce0c3d7fa536d3cbed7b52',1,'afio_v2_xxx::handle::release()'],['../classafio__v2__xxx_1_1io__handle_1_1extent__guard.html#a3a575d17f757d18ca077d004790bb91b',1,'afio_v2_xxx::io_handle::extent_guard::release()'],['../classafio__v2__xxx_1_1map__handle.html#ac484c07601be4e987b5f1332bdccfee3',1,'afio_v2_xxx::map_handle::release()'],['../classafio__v2__xxx_1_1mapped__file__handle.html#a24f5e84e167be838a0d951bd790413a3',1,'afio_v2_xxx::mapped_file_handle::release()'],['../classafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex_1_1entities__guard.html#a085f31f636e01187e6d65dac1512869f',1,'afio_v2_xxx::algorithm::shared_fs_mutex::shared_fs_mutex::entities_guard::release()']]],
- ['relink',['relink',['../classafio__v2__xxx_1_1fs__handle.html#a747962d0776c0fa9e79c9aa9b86da1c0',1,'afio_v2_xxx::fs_handle::relink()'],['../namespaceafio__v2__xxx.html#a8d7c50561e9103968467c928f2e38f16',1,'afio_v2_xxx::relink()']]],
+ ['relink',['relink',['../classafio__v2__xxx_1_1fs__handle.html#a747962d0776c0fa9e79c9aa9b86da1c0',1,'afio_v2_xxx::fs_handle::relink()'],['../namespaceafio__v2__xxx.html#aea0fac310f773ae58f672ec4b506887d',1,'afio_v2_xxx::relink()']]],
['remove_5ffilename',['remove_filename',['../classafio__v2__xxx_1_1path__view.html#a628788bf5c788d109b28aa7afdc46a8f',1,'afio_v2_xxx::path_view']]],
['rend',['rend',['../structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#ae661bc37d282baa4b3922ffdbb795a34',1,'afio_v2_xxx::algorithm::impl::trivial_vector_impl::rend() noexcept'],['../structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#a4201aac0c626c25e7b5119dd13f17a4a',1,'afio_v2_xxx::algorithm::impl::trivial_vector_impl::rend() const noexcept']]],
['requires_5faligned_5fio',['requires_aligned_io',['../classafio__v2__xxx_1_1handle.html#affb10caeeca67b804695b7378be29e23',1,'afio_v2_xxx::handle::requires_aligned_io()'],['../structafio__v2__xxx_1_1native__handle__type.html#a0aa00d6598a6f23989961957907d2e38',1,'afio_v2_xxx::native_handle_type::requires_aligned_io()']]],
diff --git a/search/classes_a.js b/search/classes_a.js
index d13c8b6a..3eeaad3c 100644
--- a/search/classes_a.js
+++ b/search/classes_a.js
@@ -2,6 +2,6 @@ var searchData=
[
['map_5fhandle',['map_handle',['../classafio__v2__xxx_1_1map__handle.html',1,'afio_v2_xxx']]],
['mapped_5ffile_5fhandle',['mapped_file_handle',['../classafio__v2__xxx_1_1mapped__file__handle.html',1,'afio_v2_xxx']]],
- ['mapped_5fview',['mapped_view',['../classafio__v2__xxx_1_1algorithm_1_1mapped__view.html',1,'afio_v2_xxx::algorithm']]],
+ ['mapped_5fspan',['mapped_span',['../classafio__v2__xxx_1_1algorithm_1_1mapped__span.html',1,'afio_v2_xxx::algorithm']]],
['memory_5fmap',['memory_map',['../classafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html',1,'afio_v2_xxx::algorithm::shared_fs_mutex']]]
];
diff --git a/search/classes_d.js b/search/classes_d.js
index 5de26fca..8d29f2b6 100644
--- a/search/classes_d.js
+++ b/search/classes_d.js
@@ -1,5 +1,5 @@
var searchData=
[
- ['rebind',['rebind',['../structafio__v2__xxx_1_1utils_1_1page__allocator_3_01void_01_4_1_1rebind.html',1,'afio_v2_xxx::utils::page_allocator&lt; void &gt;::rebind&lt; U &gt;'],['../structafio__v2__xxx_1_1utils_1_1page__allocator_1_1rebind.html',1,'afio_v2_xxx::utils::page_allocator&lt; T &gt;::rebind&lt; U &gt;']]],
+ ['rebind',['rebind',['../structafio__v2__xxx_1_1utils_1_1page__allocator_1_1rebind.html',1,'afio_v2_xxx::utils::page_allocator&lt; T &gt;::rebind&lt; U &gt;'],['../structafio__v2__xxx_1_1utils_1_1page__allocator_3_01void_01_4_1_1rebind.html',1,'afio_v2_xxx::utils::page_allocator&lt; void &gt;::rebind&lt; U &gt;']]],
['result_5fstorage',['result_storage',['../unionafio__v2__xxx_1_1async__file__handle_1_1__erased__io__state__type_1_1result__storage.html',1,'afio_v2_xxx::async_file_handle::_erased_io_state_type']]]
];
diff --git a/search/enumvalues_a.js b/search/enumvalues_a.js
index fa2adafa..9cf87097 100644
--- a/search/enumvalues_a.js
+++ b/search/enumvalues_a.js
@@ -1,5 +1,6 @@
var searchData=
[
['nocommit',['nocommit',['../structafio__v2__xxx_1_1section__handle_1_1flag__base.html#a5b790e66402ef3a07ce9464f3e1dc9d8aaee6e5b8a4cbbc5ff38bc3687b9fa286',1,'afio_v2_xxx::section_handle::flag_base']]],
- ['none',['none',['../structafio__v2__xxx_1_1handle_1_1flag__base.html#a51aaa32c78950cedbc1b7a61e1738d3eadc582374ac8ba5ca2d5dd81cc81258e9',1,'afio_v2_xxx::handle::flag_base::none()'],['../structafio__v2__xxx_1_1section__handle_1_1flag__base.html#a5b790e66402ef3a07ce9464f3e1dc9d8a26c56f64a5569c048ed853c28249726d',1,'afio_v2_xxx::section_handle::flag_base::none()'],['../classafio__v2__xxx_1_1directory__handle.html#a47ed88b4de271daa08862b273c2f609ea334c4a4c42fdb79d7ebc3e73b517e6f8',1,'afio_v2_xxx::directory_handle::none()'],['../classafio__v2__xxx_1_1handle.html#a0489b6c1e25cd2bad2ba1ec86e1aaf18a334c4a4c42fdb79d7ebc3e73b517e6f8',1,'afio_v2_xxx::handle::none()'],['../classafio__v2__xxx_1_1handle.html#a6f7e37c73271968271c2342023f58c9ea334c4a4c42fdb79d7ebc3e73b517e6f8',1,'afio_v2_xxx::handle::none()']]]
+ ['none',['none',['../structafio__v2__xxx_1_1handle_1_1flag__base.html#a51aaa32c78950cedbc1b7a61e1738d3eadc582374ac8ba5ca2d5dd81cc81258e9',1,'afio_v2_xxx::handle::flag_base::none()'],['../structafio__v2__xxx_1_1section__handle_1_1flag__base.html#a5b790e66402ef3a07ce9464f3e1dc9d8a26c56f64a5569c048ed853c28249726d',1,'afio_v2_xxx::section_handle::flag_base::none()'],['../classafio__v2__xxx_1_1directory__handle.html#a47ed88b4de271daa08862b273c2f609ea334c4a4c42fdb79d7ebc3e73b517e6f8',1,'afio_v2_xxx::directory_handle::none()'],['../classafio__v2__xxx_1_1handle.html#a0489b6c1e25cd2bad2ba1ec86e1aaf18a334c4a4c42fdb79d7ebc3e73b517e6f8',1,'afio_v2_xxx::handle::none()'],['../classafio__v2__xxx_1_1handle.html#a6f7e37c73271968271c2342023f58c9ea334c4a4c42fdb79d7ebc3e73b517e6f8',1,'afio_v2_xxx::handle::none()']]],
+ ['nvram',['nvram',['../structafio__v2__xxx_1_1section__handle_1_1flag__base.html#a5b790e66402ef3a07ce9464f3e1dc9d8a1e60c3188179bfa97299536cd051fcb9',1,'afio_v2_xxx::section_handle::flag_base']]]
];
diff --git a/search/files_8.js b/search/files_8.js
index 6171970d..4580f594 100644
--- a/search/files_8.js
+++ b/search/files_8.js
@@ -2,6 +2,6 @@ var searchData=
[
['map_5fhandle_2ehpp',['map_handle.hpp',['../map__handle_8hpp.html',1,'']]],
['mapped_5ffile_5fhandle_2ehpp',['mapped_file_handle.hpp',['../mapped__file__handle_8hpp.html',1,'']]],
- ['mapped_5fview_2ehpp',['mapped_view.hpp',['../mapped__view_8hpp.html',1,'']]],
+ ['mapped_5fspan_2ehpp',['mapped_span.hpp',['../mapped__span_8hpp.html',1,'']]],
['memory_5fmap_2ehpp',['memory_map.hpp',['../memory__map_8hpp.html',1,'']]]
];
diff --git a/search/functions_1.js b/search/functions_1.js
index 7d7055ab..20f6a154 100644
--- a/search/functions_1.js
+++ b/search/functions_1.js
@@ -6,14 +6,14 @@ var searchData=
['are_5fsafety_5ffsyncs_5fissued',['are_safety_fsyncs_issued',['../classafio__v2__xxx_1_1handle.html#a3fc7db93fac699f5ecad453642ed314e',1,'afio_v2_xxx::handle']]],
['are_5fwrites_5fdurable',['are_writes_durable',['../classafio__v2__xxx_1_1handle.html#a97ffbbf53f51549549efef0b49e125dc',1,'afio_v2_xxx::handle']]],
['assign',['assign',['../structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#ad0c037398b85a61d4c5fe3b66f630559',1,'afio_v2_xxx::algorithm::impl::trivial_vector_impl::assign(size_type count, const value_type &amp;v)'],['../structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#a3a6a458d696200d8428f3f4108bc1489',1,'afio_v2_xxx::algorithm::impl::trivial_vector_impl::assign(InputIt first, InputIt last)'],['../structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#a681c9115ce2a475daa5cb3d01bd5ab6a',1,'afio_v2_xxx::algorithm::impl::trivial_vector_impl::assign(std::initializer_list&lt; value_type &gt; il)']]],
- ['async_5fbarrier',['async_barrier',['../classafio__v2__xxx_1_1async__file__handle.html#ab49851748369ba35dabe4cee78342796',1,'afio_v2_xxx::async_file_handle']]],
+ ['async_5fbarrier',['async_barrier',['../classafio__v2__xxx_1_1async__file__handle.html#ab49851748369ba35dabe4cee78342796',1,'afio_v2_xxx::async_file_handle::async_barrier()'],['../namespaceafio__v2__xxx.html#a4c35fd205301d7fdd3ebb503f2d154fc',1,'afio_v2_xxx::async_barrier()']]],
['async_5ffile',['async_file',['../classafio__v2__xxx_1_1async__file__handle.html#a2f65de147f234354272295e1139e31ee',1,'afio_v2_xxx::async_file_handle::async_file()'],['../namespaceafio__v2__xxx.html#a5b0168993998aafc342233aa782040a6',1,'afio_v2_xxx::async_file()']]],
['async_5ffile_5fhandle',['async_file_handle',['../classafio__v2__xxx_1_1async__file__handle.html#a3bee6c9f35239b1dce1e6910ea7d3aa3',1,'afio_v2_xxx::async_file_handle::async_file_handle()'],['../classafio__v2__xxx_1_1async__file__handle.html#a59973a4ee6681fa999bfcc7a6ee2b8eb',1,'afio_v2_xxx::async_file_handle::async_file_handle(io_service *service, native_handle_type h, dev_t devid, ino_t inode, caching caching=caching::none, flag flags=flag::none)'],['../classafio__v2__xxx_1_1async__file__handle.html#a7226567016e1729200791fd0423b605e',1,'afio_v2_xxx::async_file_handle::async_file_handle(async_file_handle &amp;&amp;o) noexcept=default'],['../classafio__v2__xxx_1_1async__file__handle.html#a5db0b1b1f371a0c8a1f989442e516cd6',1,'afio_v2_xxx::async_file_handle::async_file_handle(const async_file_handle &amp;)=delete'],['../classafio__v2__xxx_1_1async__file__handle.html#acd47b60681f19ee2d2906d27ee703611',1,'afio_v2_xxx::async_file_handle::async_file_handle(file_handle &amp;&amp;o) noexcept'],['../classafio__v2__xxx_1_1async__file__handle.html#a6e6df4068e197e12169be113f18d0799',1,'afio_v2_xxx::async_file_handle::async_file_handle(handle &amp;&amp;o, io_service *service, dev_t devid, ino_t inode) noexcept']]],
['async_5frandom_5ffile',['async_random_file',['../classafio__v2__xxx_1_1async__file__handle.html#a9630051f939a20fe9424133a579804b3',1,'afio_v2_xxx::async_file_handle::async_random_file()'],['../namespaceafio__v2__xxx.html#a40cd3a25b8d4a293a8864fe6eb585034',1,'afio_v2_xxx::async_random_file()']]],
- ['async_5fread',['async_read',['../classafio__v2__xxx_1_1async__file__handle.html#ab0a1e11a3d208319cc8fc8a9171ec33f',1,'afio_v2_xxx::async_file_handle']]],
+ ['async_5fread',['async_read',['../classafio__v2__xxx_1_1async__file__handle.html#ab0a1e11a3d208319cc8fc8a9171ec33f',1,'afio_v2_xxx::async_file_handle::async_read()'],['../namespaceafio__v2__xxx.html#a0891bedb63147526aba998b0a2f18132',1,'afio_v2_xxx::async_read()']]],
['async_5ftemp_5ffile',['async_temp_file',['../classafio__v2__xxx_1_1async__file__handle.html#ae6ccde1ff634c32da094b7f1b1143d55',1,'afio_v2_xxx::async_file_handle::async_temp_file()'],['../namespaceafio__v2__xxx.html#a0b751376f48a4fd14cb90cce03b2b491',1,'afio_v2_xxx::async_temp_file()']]],
['async_5ftemp_5finode',['async_temp_inode',['../classafio__v2__xxx_1_1async__file__handle.html#a4e4fc1ee894e1f112cb4123a24c2289d',1,'afio_v2_xxx::async_file_handle::async_temp_inode()'],['../namespaceafio__v2__xxx.html#a5eb846433fec3c9c80336ff686c2527e',1,'afio_v2_xxx::async_temp_inode()']]],
- ['async_5fwrite',['async_write',['../classafio__v2__xxx_1_1async__file__handle.html#ac38c4f8c4be552471c9ae07f2e247ba1',1,'afio_v2_xxx::async_file_handle']]],
+ ['async_5fwrite',['async_write',['../classafio__v2__xxx_1_1async__file__handle.html#ac38c4f8c4be552471c9ae07f2e247ba1',1,'afio_v2_xxx::async_file_handle::async_write()'],['../namespaceafio__v2__xxx.html#aded93df5ea7777b501811ec593ed5b55',1,'afio_v2_xxx::async_write()']]],
['at',['at',['../structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#acef8a7f2e2863ad778645f0b6a894cbd',1,'afio_v2_xxx::algorithm::impl::trivial_vector_impl::at(size_type i)'],['../structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#a5bdfa73da671e5c65e67960baca1462d',1,'afio_v2_xxx::algorithm::impl::trivial_vector_impl::at(size_type i) const']]],
['atomic_5fappend',['atomic_append',['../classafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1atomic__append.html#ad26ffca14b20af425c4b13f881202b8d',1,'afio_v2_xxx::algorithm::shared_fs_mutex::atomic_append::atomic_append(const atomic_append &amp;)=delete'],['../classafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1atomic__append.html#a8f5b9600df711a61c49d50988b83ea51',1,'afio_v2_xxx::algorithm::shared_fs_mutex::atomic_append::atomic_append(atomic_append &amp;&amp;o) noexcept']]],
['await_5fready',['await_ready',['../classafio__v2__xxx_1_1async__file__handle_1_1awaitable.html#a33abb49ec45f8947533771592113d954',1,'afio_v2_xxx::async_file_handle::awaitable']]],
diff --git a/search/functions_10.js b/search/functions_10.js
index b7f54988..9416effc 100644
--- a/search/functions_10.js
+++ b/search/functions_10.js
@@ -1,7 +1,7 @@
var searchData=
[
['safe_5fbyte_5franges',['safe_byte_ranges',['../classafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1safe__byte__ranges.html#a191be17c7b92547d7f9f5956433aa5e7',1,'afio_v2_xxx::algorithm::shared_fs_mutex::safe_byte_ranges::safe_byte_ranges(const safe_byte_ranges &amp;)=delete'],['../classafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1safe__byte__ranges.html#a113cf8648fc11c4b9cafa0f3fbb34b5d',1,'afio_v2_xxx::algorithm::shared_fs_mutex::safe_byte_ranges::safe_byte_ranges(safe_byte_ranges &amp;&amp;o) noexcept']]],
- ['section',['section',['../classafio__v2__xxx_1_1section__handle.html#a7e69ae5094da2517f2ed0bd046d18302',1,'afio_v2_xxx::section_handle::section(file_handle &amp;backing, extent_type maximum_size, flag _flag) noexcept'],['../classafio__v2__xxx_1_1section__handle.html#abcecfb5615a710e828a11c9db78b3502',1,'afio_v2_xxx::section_handle::section(file_handle &amp;backing, extent_type bytes=0) noexcept'],['../classafio__v2__xxx_1_1section__handle.html#ad3817e499d3b937c5ee57589e9cb6fd1',1,'afio_v2_xxx::section_handle::section(extent_type bytes, const path_handle &amp;dirh=path_discovery::storage_backed_temporary_files_directory(), flag _flag=flag::read|flag::write) noexcept'],['../classafio__v2__xxx_1_1map__handle.html#ab8a43a5388161f629fef5ee7256dbbc8',1,'afio_v2_xxx::map_handle::section()'],['../classafio__v2__xxx_1_1mapped__file__handle.html#af33b97dcd0a501da97baa39f44e418da',1,'afio_v2_xxx::mapped_file_handle::section() const noexcept'],['../classafio__v2__xxx_1_1mapped__file__handle.html#a04e89968a4391fcdc2b8cd9203337c32',1,'afio_v2_xxx::mapped_file_handle::section() noexcept']]],
+ ['section',['section',['../classafio__v2__xxx_1_1section__handle.html#a7e69ae5094da2517f2ed0bd046d18302',1,'afio_v2_xxx::section_handle::section(file_handle &amp;backing, extent_type maximum_size, flag _flag) noexcept'],['../classafio__v2__xxx_1_1section__handle.html#abcecfb5615a710e828a11c9db78b3502',1,'afio_v2_xxx::section_handle::section(file_handle &amp;backing, extent_type bytes=0) noexcept'],['../classafio__v2__xxx_1_1section__handle.html#ad3817e499d3b937c5ee57589e9cb6fd1',1,'afio_v2_xxx::section_handle::section(extent_type bytes, const path_handle &amp;dirh=path_discovery::storage_backed_temporary_files_directory(), flag _flag=flag::read|flag::write) noexcept'],['../classafio__v2__xxx_1_1map__handle.html#ab8a43a5388161f629fef5ee7256dbbc8',1,'afio_v2_xxx::map_handle::section()'],['../classafio__v2__xxx_1_1mapped__file__handle.html#af33b97dcd0a501da97baa39f44e418da',1,'afio_v2_xxx::mapped_file_handle::section() const noexcept'],['../classafio__v2__xxx_1_1mapped__file__handle.html#a04e89968a4391fcdc2b8cd9203337c32',1,'afio_v2_xxx::mapped_file_handle::section() noexcept'],['../namespaceafio__v2__xxx.html#a6282e66d9ade4fea8e0508cfb65ec9ec',1,'afio_v2_xxx::section(file_handle &amp;backing, section_handle::extent_type maximum_size, section_handle::flag _flag) noexcept'],['../namespaceafio__v2__xxx.html#ae694d1c5ef24e2c6caa30b8d7ae6e12b',1,'afio_v2_xxx::section(file_handle &amp;backing, section_handle::extent_type bytes=0) noexcept'],['../namespaceafio__v2__xxx.html#a42622b31d96b1098e37d9c527abd097d',1,'afio_v2_xxx::section(section_handle::extent_type bytes, const path_handle &amp;dirh=path_discovery::storage_backed_temporary_files_directory(), section_handle::flag _flag=section_handle::flag::read|section_handle::flag::write) noexcept']]],
['section_5fflags',['section_flags',['../classafio__v2__xxx_1_1section__handle.html#a0f95ed462d97954df59e6b56625ce899',1,'afio_v2_xxx::section_handle']]],
['section_5fhandle',['section_handle',['../classafio__v2__xxx_1_1section__handle.html#a2824f51d5726bb8015d89ac1ea7abe5f',1,'afio_v2_xxx::section_handle::section_handle()'],['../classafio__v2__xxx_1_1section__handle.html#a74e73651ebfc233e31fff3d39b3a8e1a',1,'afio_v2_xxx::section_handle::section_handle(native_handle_type sectionh, file_handle *backing, file_handle anonymous, flag __flag)'],['../classafio__v2__xxx_1_1section__handle.html#a84ec7259dfb8bab518d3def875bdc6f2',1,'afio_v2_xxx::section_handle::section_handle(section_handle &amp;&amp;o) noexcept'],['../classafio__v2__xxx_1_1section__handle.html#a8f20e4f7aec4eb5545b9b223471ae1fc',1,'afio_v2_xxx::section_handle::section_handle(const section_handle &amp;)=delete']]],
['service',['service',['../classafio__v2__xxx_1_1file__handle.html#a672324d44ea84ccfb71594c1036628ac',1,'afio_v2_xxx::file_handle']]],
diff --git a/search/functions_11.js b/search/functions_11.js
index 6c90794e..6221aec0 100644
--- a/search/functions_11.js
+++ b/search/functions_11.js
@@ -2,9 +2,9 @@ var searchData=
[
['temp_5fdirectory',['temp_directory',['../classafio__v2__xxx_1_1directory__handle.html#a87b6b5fd0537c0915f2f9a669bccfcfb',1,'afio_v2_xxx::directory_handle::temp_directory()'],['../namespaceafio__v2__xxx.html#ac095df054e29fb086f9e7b96274c3c67',1,'afio_v2_xxx::temp_directory()']]],
['temp_5ffile',['temp_file',['../classafio__v2__xxx_1_1file__handle.html#a458c1a73a67e74e20e221e3507a11b11',1,'afio_v2_xxx::file_handle::temp_file()'],['../namespaceafio__v2__xxx.html#aa14b24c8bc330dd8e472f42676ba03d6',1,'afio_v2_xxx::temp_file()']]],
- ['temp_5finode',['temp_inode',['../classafio__v2__xxx_1_1file__handle.html#ae7c763babcbc3c8bc253b1be95578894',1,'afio_v2_xxx::file_handle::temp_inode()'],['../namespaceafio__v2__xxx.html#a2a2248a6545d55ee8f46628c8afb7946',1,'afio_v2_xxx::temp_inode()']]],
+ ['temp_5finode',['temp_inode',['../classafio__v2__xxx_1_1file__handle.html#ae7c763babcbc3c8bc253b1be95578894',1,'afio_v2_xxx::file_handle::temp_inode()'],['../namespaceafio__v2__xxx.html#aca98b0cb43a2d925bb65e055b07b4a08',1,'afio_v2_xxx::temp_inode()']]],
['throw_5fas_5fexception',['throw_as_exception',['../structafio__v2__xxx_1_1error__info.html#a36e4d0783244c7a127b7f13e61323819',1,'afio_v2_xxx::error_info']]],
['trivial_5fvector_5fimpl',['trivial_vector_impl',['../structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#a2fcddb13db6a7262a77a00b7d1b899c7',1,'afio_v2_xxx::algorithm::impl::trivial_vector_impl::trivial_vector_impl()'],['../structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#a234bfbe0a9a83a626a8d0f43e8bf0018',1,'afio_v2_xxx::algorithm::impl::trivial_vector_impl::trivial_vector_impl(size_type count, const value_type &amp;v)'],['../structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#a00d983f0c3de3a3bb421e8441f712cd4',1,'afio_v2_xxx::algorithm::impl::trivial_vector_impl::trivial_vector_impl(InputIt first, InputIt last)'],['../structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#a3bfb3d77f36a6edc598017b331b99161',1,'afio_v2_xxx::algorithm::impl::trivial_vector_impl::trivial_vector_impl(const trivial_vector_impl &amp;)=delete'],['../structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#a6e346e2add92504c3b41d07a50a7c3cb',1,'afio_v2_xxx::algorithm::impl::trivial_vector_impl::trivial_vector_impl(trivial_vector_impl &amp;&amp;o) noexcept'],['../structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#a42ee94fc5fc4d0d2b35e6fd666d4d6a1',1,'afio_v2_xxx::algorithm::impl::trivial_vector_impl::trivial_vector_impl(std::initializer_list&lt; value_type &gt; il)'],['../structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl_3_01true_00_01_t_01_4.html#a1b202a51d39ad33e2962e74fd265653d',1,'afio_v2_xxx::algorithm::impl::trivial_vector_impl&lt; true, T &gt;::trivial_vector_impl()']]],
- ['truncate',['truncate',['../classafio__v2__xxx_1_1file__handle.html#a45873fd0b1ab27f936f046ed14124afd',1,'afio_v2_xxx::file_handle::truncate()'],['../classafio__v2__xxx_1_1section__handle.html#a229f515ed3251071d374476204e23e30',1,'afio_v2_xxx::section_handle::truncate()'],['../classafio__v2__xxx_1_1mapped__file__handle.html#a64bf34a474aa4de495b38ce314fd377b',1,'afio_v2_xxx::mapped_file_handle::truncate()'],['../namespaceafio__v2__xxx.html#a84d22c966fcabe50de30ad8cf26c7241',1,'afio_v2_xxx::truncate(file_handle &amp;self, file_handle::extent_type newsize) noexcept'],['../namespaceafio__v2__xxx.html#a6164dd52993407a203124b0761cc3bbc',1,'afio_v2_xxx::truncate(section_handle &amp;self, section_handle::extent_type newsize=0) noexcept']]],
+ ['truncate',['truncate',['../classafio__v2__xxx_1_1file__handle.html#a45873fd0b1ab27f936f046ed14124afd',1,'afio_v2_xxx::file_handle::truncate()'],['../classafio__v2__xxx_1_1section__handle.html#a229f515ed3251071d374476204e23e30',1,'afio_v2_xxx::section_handle::truncate()'],['../classafio__v2__xxx_1_1map__handle.html#af9699a9a290ba974184f844c2f6038e8',1,'afio_v2_xxx::map_handle::truncate()'],['../classafio__v2__xxx_1_1mapped__file__handle.html#a64bf34a474aa4de495b38ce314fd377b',1,'afio_v2_xxx::mapped_file_handle::truncate()'],['../namespaceafio__v2__xxx.html#a84d22c966fcabe50de30ad8cf26c7241',1,'afio_v2_xxx::truncate(file_handle &amp;self, file_handle::extent_type newsize) noexcept'],['../namespaceafio__v2__xxx.html#a6164dd52993407a203124b0761cc3bbc',1,'afio_v2_xxx::truncate(section_handle &amp;self, section_handle::extent_type newsize=0) noexcept'],['../namespaceafio__v2__xxx.html#a7da47c9f5665b4c9b1c44c035bf2571c',1,'afio_v2_xxx::truncate(map_handle &amp;self, map_handle::size_type newsize, bool permit_relocation=false) noexcept']]],
['try_5flock',['try_lock',['../classafio__v2__xxx_1_1io__handle.html#a0a1c4773b9fa7bbd04fee0756075d319',1,'afio_v2_xxx::io_handle::try_lock()'],['../classafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html#a0987b9c6c93a65acb2715e589d45c273',1,'afio_v2_xxx::algorithm::shared_fs_mutex::shared_fs_mutex::try_lock(entities_type entities) noexcept'],['../classafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html#aebdc3d01ccb30b297950130c7ebac57b',1,'afio_v2_xxx::algorithm::shared_fs_mutex::shared_fs_mutex::try_lock(entity_type entity) noexcept']]]
];
diff --git a/search/functions_12.js b/search/functions_12.js
index acda7652..b34813c1 100644
--- a/search/functions_12.js
+++ b/search/functions_12.js
@@ -4,6 +4,6 @@ var searchData=
['unique_5fid',['unique_id',['../classafio__v2__xxx_1_1fs__handle.html#a5a5244ab1a15053aefe93f2c253db5b3',1,'afio_v2_xxx::fs_handle']]],
['unlink',['unlink',['../classafio__v2__xxx_1_1fs__handle.html#a6860b9626adc4d8e6db3ebb92974c054',1,'afio_v2_xxx::fs_handle::unlink()'],['../namespaceafio__v2__xxx.html#abefe1503efb01ea89200b829bcd87713',1,'afio_v2_xxx::unlink()']]],
['unlock',['unlock',['../classafio__v2__xxx_1_1io__handle_1_1extent__guard.html#a8774c7f192061ccff6659f645d1e51fd',1,'afio_v2_xxx::io_handle::extent_guard::unlock()'],['../classafio__v2__xxx_1_1io__handle.html#a96b9da71ee7791fbaaa2470c936ec763',1,'afio_v2_xxx::io_handle::unlock()'],['../classafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1atomic__append.html#ad8a5572b95c538b21c387e0dc9ccc4b9',1,'afio_v2_xxx::algorithm::shared_fs_mutex::atomic_append::unlock()'],['../classafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex_1_1entities__guard.html#afe255ddbd7c8c80b1dfe29a0b8d856ee',1,'afio_v2_xxx::algorithm::shared_fs_mutex::shared_fs_mutex::entities_guard::unlock()'],['../classafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html#aa7ca87a0dc1181fc4c6c3b2a09bc67e3',1,'afio_v2_xxx::algorithm::shared_fs_mutex::shared_fs_mutex::unlock()'],['../classafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html#ade7f672a228670cb193cf05e96368ff4',1,'afio_v2_xxx::algorithm::shared_fs_mutex::byte_ranges::unlock()'],['../classafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1lock__files.html#a8b37ac390b47fd3ef61fe12b60a82755',1,'afio_v2_xxx::algorithm::shared_fs_mutex::lock_files::unlock()'],['../classafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#a49e8e7e6460f4ee1bafe8426384f2d40',1,'afio_v2_xxx::algorithm::shared_fs_mutex::memory_map::unlock()'],['../classafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1safe__byte__ranges.html#aa553587bce8b59ae47ce739863f1f534',1,'afio_v2_xxx::algorithm::shared_fs_mutex::safe_byte_ranges::unlock()']]],
- ['update_5fmap',['update_map',['../classafio__v2__xxx_1_1mapped__file__handle.html#a297b1f81b6d2875164e46a266c3f1f8a',1,'afio_v2_xxx::mapped_file_handle']]],
+ ['update_5fmap',['update_map',['../classafio__v2__xxx_1_1map__handle.html#abaff8ae673c35e9bb150e3970dd205a5',1,'afio_v2_xxx::map_handle::update_map()'],['../classafio__v2__xxx_1_1mapped__file__handle.html#a297b1f81b6d2875164e46a266c3f1f8a',1,'afio_v2_xxx::mapped_file_handle::update_map()']]],
['using_5fkqueues',['using_kqueues',['../classafio__v2__xxx_1_1io__service.html#a692d937b87fa783803c5342f993fede1',1,'afio_v2_xxx::io_service']]]
];
diff --git a/search/functions_14.js b/search/functions_14.js
index 178c4fed..db0bf637 100644
--- a/search/functions_14.js
+++ b/search/functions_14.js
@@ -1,4 +1,4 @@
var searchData=
[
- ['write',['write',['../classafio__v2__xxx_1_1io__handle.html#aefac4710e5617264347f437b04732c01',1,'afio_v2_xxx::io_handle::write(io_request&lt; const_buffers_type &gt; reqs, deadline d=deadline()) noexcept'],['../classafio__v2__xxx_1_1io__handle.html#ab26a3c5a18cdcc67a506533dbe55e2b3',1,'afio_v2_xxx::io_handle::write(extent_type offset, const char *data, size_type bytes, deadline d=deadline()) noexcept'],['../classafio__v2__xxx_1_1map__handle.html#a00b7e1e99089c2641c45ee824811ebc1',1,'afio_v2_xxx::map_handle::write()'],['../classafio__v2__xxx_1_1mapped__file__handle.html#a74dfae7f50c56037cc4260227a13b6d8',1,'afio_v2_xxx::mapped_file_handle::write()'],['../structafio__v2__xxx_1_1storage__profile_1_1storage__profile.html#a9811705f9110d7dae69e621a67a39ec8',1,'afio_v2_xxx::storage_profile::storage_profile::write()'],['../namespaceafio__v2__xxx.html#a2d15768d28ea660ebe44901508ed3372',1,'afio_v2_xxx::write(io_handle &amp;self, io_handle::io_request&lt; io_handle::const_buffers_type &gt; reqs, deadline d=deadline()) noexcept'],['../namespaceafio__v2__xxx.html#a5bfae365a1845c1bde4739de38c3653f',1,'afio_v2_xxx::write(map_handle &amp;self, map_handle::io_request&lt; map_handle::const_buffers_type &gt; reqs, deadline d=deadline()) noexcept']]]
+ ['write',['write',['../classafio__v2__xxx_1_1io__handle.html#aefac4710e5617264347f437b04732c01',1,'afio_v2_xxx::io_handle::write(io_request&lt; const_buffers_type &gt; reqs, deadline d=deadline()) noexcept'],['../classafio__v2__xxx_1_1io__handle.html#add161546c0769941fce4fd9f06934e03',1,'afio_v2_xxx::io_handle::write(extent_type offset, std::initializer_list&lt; const_buffer_type &gt; lst, deadline d=deadline()) noexcept'],['../classafio__v2__xxx_1_1map__handle.html#a00b7e1e99089c2641c45ee824811ebc1',1,'afio_v2_xxx::map_handle::write()'],['../classafio__v2__xxx_1_1mapped__file__handle.html#a74dfae7f50c56037cc4260227a13b6d8',1,'afio_v2_xxx::mapped_file_handle::write()'],['../structafio__v2__xxx_1_1storage__profile_1_1storage__profile.html#a9811705f9110d7dae69e621a67a39ec8',1,'afio_v2_xxx::storage_profile::storage_profile::write()'],['../namespaceafio__v2__xxx.html#a2d15768d28ea660ebe44901508ed3372',1,'afio_v2_xxx::write(io_handle &amp;self, io_handle::io_request&lt; io_handle::const_buffers_type &gt; reqs, deadline d=deadline()) noexcept'],['../namespaceafio__v2__xxx.html#a53f3d40c5752d0dbeaa9b8233bff976f',1,'afio_v2_xxx::write(io_handle &amp;self, io_handle::extent_type offset, std::initializer_list&lt; io_handle::const_buffer_type &gt; lst, deadline d=deadline()) noexcept'],['../namespaceafio__v2__xxx.html#a5bfae365a1845c1bde4739de38c3653f',1,'afio_v2_xxx::write(map_handle &amp;self, map_handle::io_request&lt; map_handle::const_buffers_type &gt; reqs, deadline d=deadline()) noexcept']]]
];
diff --git a/search/functions_2.js b/search/functions_2.js
index a9b648cc..dd7d5c84 100644
--- a/search/functions_2.js
+++ b/search/functions_2.js
@@ -3,7 +3,7 @@ var searchData=
['back',['back',['../structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#a220b834444274ceffef2c3a529de5453',1,'afio_v2_xxx::algorithm::impl::trivial_vector_impl::back()'],['../structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#a77ac1dfbe6f0df38bf9ecd3fbdf515fe',1,'afio_v2_xxx::algorithm::impl::trivial_vector_impl::back() const']]],
['backing',['backing',['../classafio__v2__xxx_1_1section__handle.html#acdebf8de23e97950968d3fba84141366',1,'afio_v2_xxx::section_handle']]],
['backing_5fnative_5fhandle',['backing_native_handle',['../classafio__v2__xxx_1_1section__handle.html#a5464eac84bedf1ce13318451b3a95e93',1,'afio_v2_xxx::section_handle']]],
- ['barrier',['barrier',['../classafio__v2__xxx_1_1io__handle.html#a243156928e89b8988a1412f211b3b603',1,'afio_v2_xxx::io_handle::barrier()'],['../namespaceafio__v2__xxx.html#abb60a5dc89b41b1db101dbed12cb065d',1,'afio_v2_xxx::barrier()']]],
+ ['barrier',['barrier',['../classafio__v2__xxx_1_1io__handle.html#a243156928e89b8988a1412f211b3b603',1,'afio_v2_xxx::io_handle::barrier()'],['../classafio__v2__xxx_1_1map__handle.html#a7119886b920953e12340b05ea94e395d',1,'afio_v2_xxx::map_handle::barrier()'],['../namespaceafio__v2__xxx.html#abb60a5dc89b41b1db101dbed12cb065d',1,'afio_v2_xxx::barrier(io_handle &amp;self, io_handle::io_request&lt; io_handle::const_buffers_type &gt; reqs=io_handle::io_request&lt; io_handle::const_buffers_type &gt;(), bool wait_for_device=false, bool and_metadata=false, deadline d=deadline()) noexcept'],['../namespaceafio__v2__xxx.html#a1b5c40714a95d835e7926b9508469bf2',1,'afio_v2_xxx::barrier(map_handle &amp;self, map_handle::const_buffer_type req, bool evict=false) noexcept']]],
['begin',['begin',['../structafio__v2__xxx_1_1storage__profile_1_1storage__profile.html#aa19331ff339cc1f81d42db90bdf5f1db',1,'afio_v2_xxx::storage_profile::storage_profile::begin() noexcept'],['../structafio__v2__xxx_1_1storage__profile_1_1storage__profile.html#ac36c1be86646518163e8812aff79d080',1,'afio_v2_xxx::storage_profile::storage_profile::begin() const noexcept'],['../structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#acebb433711065ad2b2d16d78eab4b0a0',1,'afio_v2_xxx::algorithm::impl::trivial_vector_impl::begin() noexcept'],['../structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#a5280496d7e2ba769963882652913e4b4',1,'afio_v2_xxx::algorithm::impl::trivial_vector_impl::begin() const noexcept']]],
['buffers_5ftype',['buffers_type',['../structafio__v2__xxx_1_1directory__handle_1_1buffers__type.html#af509b517a1ca07431f8c13dcaf7561f7',1,'afio_v2_xxx::directory_handle::buffers_type::buffers_type(span&lt; buffer_type &gt; v)'],['../structafio__v2__xxx_1_1directory__handle_1_1buffers__type.html#ac222d9bee85db4d81c5d9072811e30f3',1,'afio_v2_xxx::directory_handle::buffers_type::buffers_type(buffers_type &amp;&amp;o) noexcept'],['../structafio__v2__xxx_1_1directory__handle_1_1buffers__type.html#abcc10e5221526f9a9a618dc22bbeaf70',1,'afio_v2_xxx::directory_handle::buffers_type::buffers_type(const buffers_type &amp;)=delete']]],
['byte_5franges',['byte_ranges',['../classafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html#a364c9875ff2249526b7450095999b2fa',1,'afio_v2_xxx::algorithm::shared_fs_mutex::byte_ranges::byte_ranges(const byte_ranges &amp;)=delete'],['../classafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html#a047dc0602663a9011edc17720c239fd2',1,'afio_v2_xxx::algorithm::shared_fs_mutex::byte_ranges::byte_ranges(byte_ranges &amp;&amp;o) noexcept']]],
diff --git a/search/functions_3.js b/search/functions_3.js
index 9bcdade4..47192417 100644
--- a/search/functions_3.js
+++ b/search/functions_3.js
@@ -1,15 +1,15 @@
var searchData=
[
['cache_5fparent',['cache_parent',['../namespaceafio__v2__xxx_1_1algorithm.html#a537a827c92150d83c1f392c7e8dd7a99',1,'afio_v2_xxx::algorithm']]],
- ['capacity',['capacity',['../classafio__v2__xxx_1_1mapped__file__handle.html#ae8e389b2dbdff1b1f155ea351f5ba9c5',1,'afio_v2_xxx::mapped_file_handle::capacity()'],['../structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#a5af156c890eb50a4ab666fa5af5b7c23',1,'afio_v2_xxx::algorithm::impl::trivial_vector_impl::capacity()']]],
+ ['capacity',['capacity',['../classafio__v2__xxx_1_1map__handle.html#ad29ceb1ecb38e9e74e63404b7db3a5a2',1,'afio_v2_xxx::map_handle::capacity()'],['../classafio__v2__xxx_1_1mapped__file__handle.html#ae8e389b2dbdff1b1f155ea351f5ba9c5',1,'afio_v2_xxx::mapped_file_handle::capacity()'],['../structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#a5af156c890eb50a4ab666fa5af5b7c23',1,'afio_v2_xxx::algorithm::impl::trivial_vector_impl::capacity()']]],
['cbegin',['cbegin',['../structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#a1850d40050c96a63ee8c844df0c78f3e',1,'afio_v2_xxx::algorithm::impl::trivial_vector_impl']]],
['cend',['cend',['../structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#ab376c1b7ba13de716f0debae6e2cbd48',1,'afio_v2_xxx::algorithm::impl::trivial_vector_impl']]],
['clear',['clear',['../structafio__v2__xxx_1_1storage__profile_1_1item.html#a5f7494ef59c8a25210953863888da1ec',1,'afio_v2_xxx::storage_profile::item::clear()'],['../structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#a91abb0240b71fb21b5feb71007208192',1,'afio_v2_xxx::algorithm::impl::trivial_vector_impl::clear()']]],
['clone',['clone',['../classafio__v2__xxx_1_1async__file__handle.html#a8d0223e2633274060d94f68b9431dc2f',1,'afio_v2_xxx::async_file_handle::clone(io_service &amp;service, mode mode_=mode::unchanged, caching caching_=caching::unchanged, deadline d=std::chrono::seconds(30)) const noexcept'],['../classafio__v2__xxx_1_1async__file__handle.html#a936a28e9d3fde456a87fd6f7b74258f8',1,'afio_v2_xxx::async_file_handle::clone(mode mode_=mode::unchanged, caching caching_=caching::unchanged, deadline d=std::chrono::seconds(30)) const noexcept override'],['../classafio__v2__xxx_1_1directory__handle.html#a6604d66ebd96f9ed038213b8c22afede',1,'afio_v2_xxx::directory_handle::clone()'],['../classafio__v2__xxx_1_1file__handle.html#a917a528bb0edef02b1a0f535646b7009',1,'afio_v2_xxx::file_handle::clone()'],['../classafio__v2__xxx_1_1handle.html#a54790e954f57372b87b095451cc79c38',1,'afio_v2_xxx::handle::clone()'],['../classafio__v2__xxx_1_1mapped__file__handle.html#a09f12f4ff4ba7465f49dc3355f0154f9',1,'afio_v2_xxx::mapped_file_handle::clone()']]],
['clone_5fto_5fpath_5fhandle',['clone_to_path_handle',['../classafio__v2__xxx_1_1directory__handle.html#a204b11e546071246a52684bd6c28b469',1,'afio_v2_xxx::directory_handle']]],
['close',['close',['../classafio__v2__xxx_1_1directory__handle.html#a195e944c47ae9a10214b15030e241e51',1,'afio_v2_xxx::directory_handle::close()'],['../classafio__v2__xxx_1_1file__handle.html#a6e3ce8be6683ef91e076dbffdffcba3b',1,'afio_v2_xxx::file_handle::close()'],['../classafio__v2__xxx_1_1handle.html#af4c39abeaa83d990e3bd48fff7b94fb9',1,'afio_v2_xxx::handle::close()'],['../classafio__v2__xxx_1_1section__handle.html#a77d41fe0e8cc1f87a5b4259a059b3d93',1,'afio_v2_xxx::section_handle::close()'],['../classafio__v2__xxx_1_1map__handle.html#aca05f73280e20cb18cc0dd7f60a1aae1',1,'afio_v2_xxx::map_handle::close()'],['../classafio__v2__xxx_1_1mapped__file__handle.html#ae19ad565fe47d1474882c4cf682db493',1,'afio_v2_xxx::mapped_file_handle::close()'],['../handle_8hpp.html#ab462e4cc74c6c8e36882547023c46d88',1,'close():&#160;handle.hpp'],['../namespaceafio__v2__xxx.html#aa7f2ca17db2468dbd5407e2f35870077',1,'afio_v2_xxx::close()']]],
- ['co_5fread',['co_read',['../classafio__v2__xxx_1_1async__file__handle.html#abca08e496e10ac6ae890793888a5e3fe',1,'afio_v2_xxx::async_file_handle::co_read()'],['../namespaceafio__v2__xxx.html#a37590ba383783ccfca30404318eb1114',1,'afio_v2_xxx::co_read()']]],
- ['co_5fwrite',['co_write',['../classafio__v2__xxx_1_1async__file__handle.html#a0cd3e4803cfe986815ed8c27a70db777',1,'afio_v2_xxx::async_file_handle::co_write()'],['../namespaceafio__v2__xxx.html#acd740f5aef6ca339575e7497fa873d06',1,'afio_v2_xxx::co_write()']]],
+ ['co_5fread',['co_read',['../classafio__v2__xxx_1_1async__file__handle.html#abca08e496e10ac6ae890793888a5e3fe',1,'afio_v2_xxx::async_file_handle::co_read(io_request&lt; buffers_type &gt; reqs) noexcept'],['../classafio__v2__xxx_1_1async__file__handle.html#acf004a49616f731287c3f57b025a9aec',1,'afio_v2_xxx::async_file_handle::co_read(extent_type offset, std::initializer_list&lt; buffer_type &gt; lst) noexcept'],['../namespaceafio__v2__xxx.html#a37590ba383783ccfca30404318eb1114',1,'afio_v2_xxx::co_read(async_file_handle &amp;self, async_file_handle::io_request&lt; async_file_handle::buffers_type &gt; reqs) noexcept'],['../namespaceafio__v2__xxx.html#ac6be3e0ba22cceed22dbe455c91219dd',1,'afio_v2_xxx::co_read(async_file_handle &amp;self, async_file_handle::extent_type offset, std::initializer_list&lt; async_file_handle::buffer_type &gt; lst) noexcept']]],
+ ['co_5fwrite',['co_write',['../classafio__v2__xxx_1_1async__file__handle.html#a0cd3e4803cfe986815ed8c27a70db777',1,'afio_v2_xxx::async_file_handle::co_write(io_request&lt; const_buffers_type &gt; reqs) noexcept'],['../classafio__v2__xxx_1_1async__file__handle.html#a71951654fcca9a2f9a2e747e33579fcc',1,'afio_v2_xxx::async_file_handle::co_write(extent_type offset, std::initializer_list&lt; const_buffer_type &gt; lst) noexcept'],['../namespaceafio__v2__xxx.html#acd740f5aef6ca339575e7497fa873d06',1,'afio_v2_xxx::co_write(async_file_handle &amp;self, async_file_handle::io_request&lt; async_file_handle::const_buffers_type &gt; reqs) noexcept'],['../namespaceafio__v2__xxx.html#a6e6ab37dfca4a975e6d04696948c0728',1,'afio_v2_xxx::co_write(async_file_handle &amp;self, async_file_handle::extent_type offset, std::initializer_list&lt; async_file_handle::const_buffer_type &gt; lst) noexcept']]],
['commit',['commit',['../classafio__v2__xxx_1_1map__handle.html#a4cdb7b9643da8c8e2dee0c8b01511e83',1,'afio_v2_xxx::map_handle']]],
['compare',['compare',['../classafio__v2__xxx_1_1path__view.html#ab0d2c07fd17c32d8fadd424353c7fcf2',1,'afio_v2_xxx::path_view::compare(const path_view &amp;p) const noexcept'],['../classafio__v2__xxx_1_1path__view.html#ac24b83766cf682a8aaf5da927c227f37',1,'afio_v2_xxx::path_view::compare(const char *s) const noexcept'],['../classafio__v2__xxx_1_1path__view.html#a17590607917c4cf249d809ee22171225',1,'afio_v2_xxx::path_view::compare(string_view str) const noexcept']]],
['crbegin',['crbegin',['../structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#ae0c4aad06173bf46781ef4e65827976b',1,'afio_v2_xxx::algorithm::impl::trivial_vector_impl']]],
diff --git a/search/functions_4.js b/search/functions_4.js
index ce66f2b4..0815a2ad 100644
--- a/search/functions_4.js
+++ b/search/functions_4.js
@@ -3,7 +3,7 @@ var searchData=
['data',['data',['../structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#ab887c4445a8d0a42bdf493e28556aee4',1,'afio_v2_xxx::algorithm::impl::trivial_vector_impl::data() noexcept'],['../structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#ace4d6145031f0cbe70ef34ecc5a9ba92',1,'afio_v2_xxx::algorithm::impl::trivial_vector_impl::data() const noexcept']]],
['decommit',['decommit',['../classafio__v2__xxx_1_1map__handle.html#a5b69e8faa8a9e47dec1b1a123c722a3e',1,'afio_v2_xxx::map_handle']]],
['default_5fvalue',['default_value',['../namespaceafio__v2__xxx_1_1storage__profile.html#a2ad39b78e400cf1ab64579129522d4ac',1,'afio_v2_xxx::storage_profile']]],
- ['directory',['directory',['../classafio__v2__xxx_1_1directory__handle.html#ac90b57c2bce3e0a42aef8fdf21f3c557',1,'afio_v2_xxx::directory_handle::directory()'],['../namespaceafio__v2__xxx.html#affce2389376e27ffa0565890034d209f',1,'afio_v2_xxx::directory()']]],
+ ['directory',['directory',['../classafio__v2__xxx_1_1directory__handle.html#ac90b57c2bce3e0a42aef8fdf21f3c557',1,'afio_v2_xxx::directory_handle::directory()'],['../namespaceafio__v2__xxx.html#a83828cb013df9d77b08ec0ac59037c85',1,'afio_v2_xxx::directory()']]],
['directory_5fhandle',['directory_handle',['../classafio__v2__xxx_1_1directory__handle.html#a13fab93f0536c914bee9c00f9d910075',1,'afio_v2_xxx::directory_handle::directory_handle()'],['../classafio__v2__xxx_1_1directory__handle.html#a352e948332a37127e4c47541f41b346e',1,'afio_v2_xxx::directory_handle::directory_handle(native_handle_type h, dev_t devid, ino_t inode, caching caching=caching::all, flag flags=flag::none)'],['../classafio__v2__xxx_1_1directory__handle.html#a7661e46005a377ca3f6e23064710dd9f',1,'afio_v2_xxx::directory_handle::directory_handle(directory_handle &amp;&amp;o) noexcept'],['../classafio__v2__xxx_1_1directory__handle.html#a4eee464e2a8426dd2a272900fbd55a6d',1,'afio_v2_xxx::directory_handle::directory_handle(const directory_handle &amp;)=delete'],['../classafio__v2__xxx_1_1directory__handle.html#af7cff32d671ae0b2b1e4b702c7389f3f',1,'afio_v2_xxx::directory_handle::directory_handle(handle &amp;&amp;o, dev_t devid, ino_t inode) noexcept']]],
['disable_5fkqueues',['disable_kqueues',['../classafio__v2__xxx_1_1io__service.html#a83ed27472ae75a1a31d73b383aa78564',1,'afio_v2_xxx::io_service']]],
['do_5fnot_5fstore',['do_not_store',['../classafio__v2__xxx_1_1map__handle.html#aa25715985351f79e034bb1ef37f74824',1,'afio_v2_xxx::map_handle']]],
diff --git a/search/functions_6.js b/search/functions_6.js
index 4b748f3e..1d6e9547 100644
--- a/search/functions_6.js
+++ b/search/functions_6.js
@@ -1,6 +1,6 @@
var searchData=
[
- ['file',['file',['../classafio__v2__xxx_1_1file__handle.html#accb36f2bfd98393dc868653798c02d34',1,'afio_v2_xxx::file_handle::file()'],['../namespaceafio__v2__xxx.html#a84b5a9fc93107c673160b41fff151938',1,'afio_v2_xxx::file()']]],
+ ['file',['file',['../classafio__v2__xxx_1_1file__handle.html#accb36f2bfd98393dc868653798c02d34',1,'afio_v2_xxx::file_handle::file()'],['../namespaceafio__v2__xxx.html#ab92ca63383ef7fe58af4620570d12803',1,'afio_v2_xxx::file()']]],
['file_5fbuffer_5fdefault_5fsize',['file_buffer_default_size',['../namespaceafio__v2__xxx_1_1utils.html#ace050f445d1d1fdd4b2a6f99d9be7f85',1,'afio_v2_xxx::utils']]],
['file_5fhandle',['file_handle',['../classafio__v2__xxx_1_1file__handle.html#a962eb1411083ca9b2250fe40a9259354',1,'afio_v2_xxx::file_handle::file_handle()'],['../classafio__v2__xxx_1_1file__handle.html#ab1f64547bfc4ee74e6019729aaf25703',1,'afio_v2_xxx::file_handle::file_handle(native_handle_type h, dev_t devid, ino_t inode, caching caching=caching::none, flag flags=flag::none)'],['../classafio__v2__xxx_1_1file__handle.html#ae789484988ef5ae7eeb582439cf94904',1,'afio_v2_xxx::file_handle::file_handle(const file_handle &amp;)=delete'],['../classafio__v2__xxx_1_1file__handle.html#a42313f9ac61c825800d07a33a92679ba',1,'afio_v2_xxx::file_handle::file_handle(file_handle &amp;&amp;o) noexcept'],['../classafio__v2__xxx_1_1file__handle.html#a7aed1b9a1601502a692d27d8f3997b64',1,'afio_v2_xxx::file_handle::file_handle(handle &amp;&amp;o, dev_t devid, ino_t inode) noexcept']]],
['filename',['filename',['../classafio__v2__xxx_1_1path__view.html#a82ec160ebe57fca6b17f3207dcea6f56',1,'afio_v2_xxx::path_view']]],
diff --git a/search/functions_8.js b/search/functions_8.js
index 45d99418..dac59fc1 100644
--- a/search/functions_8.js
+++ b/search/functions_8.js
@@ -8,6 +8,7 @@ var searchData=
['is_5fappend_5fonly',['is_append_only',['../classafio__v2__xxx_1_1handle.html#ae33d4d0faa1377cd371bd6a0ae0769ae',1,'afio_v2_xxx::handle::is_append_only()'],['../structafio__v2__xxx_1_1native__handle__type.html#aaf2cb07f0c13dcdfe89bf652bd5cac15',1,'afio_v2_xxx::native_handle_type::is_append_only()']]],
['is_5fdirectory',['is_directory',['../classafio__v2__xxx_1_1handle.html#aa53d88105df8c6be01be649829a65b14',1,'afio_v2_xxx::handle::is_directory()'],['../structafio__v2__xxx_1_1native__handle__type.html#a8062ec2c4efab65af39f2f48d4202280',1,'afio_v2_xxx::native_handle_type::is_directory()']]],
['is_5fmultiplexer',['is_multiplexer',['../classafio__v2__xxx_1_1handle.html#ab790af4654f5455d8c5e1f1d397543ca',1,'afio_v2_xxx::handle::is_multiplexer()'],['../structafio__v2__xxx_1_1native__handle__type.html#a92b5295842f424e71367c0d9019f5d8e',1,'afio_v2_xxx::native_handle_type::is_multiplexer()']]],
+ ['is_5fnvram',['is_nvram',['../classafio__v2__xxx_1_1section__handle.html#a111bb9698b6180e9f211e27816f8a4da',1,'afio_v2_xxx::section_handle::is_nvram()'],['../classafio__v2__xxx_1_1map__handle.html#a5c57d56e5704ced94de606895a1fe9bd',1,'afio_v2_xxx::map_handle::is_nvram()']]],
['is_5foverlapped',['is_overlapped',['../classafio__v2__xxx_1_1handle.html#af42904dd49b5517a303e7cb256eae939',1,'afio_v2_xxx::handle::is_overlapped()'],['../structafio__v2__xxx_1_1native__handle__type.html#a529a58c5d24bbafc823bffb0143d1c0b',1,'afio_v2_xxx::native_handle_type::is_overlapped()']]],
['is_5fprocess',['is_process',['../classafio__v2__xxx_1_1handle.html#ad02958278a0d92e4ec4fb864ba1eb35b',1,'afio_v2_xxx::handle::is_process()'],['../structafio__v2__xxx_1_1native__handle__type.html#a913fe2e277721843bb1a846476e301a6',1,'afio_v2_xxx::native_handle_type::is_process()']]],
['is_5freadable',['is_readable',['../classafio__v2__xxx_1_1handle.html#a349e001cbe359d4e7a8f066c69e9361e',1,'afio_v2_xxx::handle::is_readable()'],['../structafio__v2__xxx_1_1native__handle__type.html#acf366a8411ecec492e1722c199675256',1,'afio_v2_xxx::native_handle_type::is_readable()']]],
diff --git a/search/functions_b.js b/search/functions_b.js
index 6a7d776f..75302e9d 100644
--- a/search/functions_b.js
+++ b/search/functions_b.js
@@ -6,9 +6,9 @@ var searchData=
['mapped_5ffile',['mapped_file',['../classafio__v2__xxx_1_1mapped__file__handle.html#aedf10997693cf088cf9d67720c4defe1',1,'afio_v2_xxx::mapped_file_handle::mapped_file(size_type reservation, 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'],['../classafio__v2__xxx_1_1mapped__file__handle.html#a1bb7ab6d64156732e0e6c26c47fbbf77',1,'afio_v2_xxx::mapped_file_handle::mapped_file(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'],['../namespaceafio__v2__xxx.html#abe51642ffc028c8f8b030944263b4a85',1,'afio_v2_xxx::mapped_file(mapped_file_handle::size_type reservation, const path_handle &amp;base, mapped_file_handle::path_view_type _path, mapped_file_handle::mode _mode=mapped_file_handle::mode::read, mapped_file_handle::creation _creation=mapped_file_handle::creation::open_existing, mapped_file_handle::caching _caching=mapped_file_handle::caching::all, mapped_file_handle::flag flags=mapped_file_handle::flag::none) noexcept'],['../namespaceafio__v2__xxx.html#a2c44844c18f66950187cb57292d7a676',1,'afio_v2_xxx::mapped_file(const path_handle &amp;base, mapped_file_handle::path_view_type _path, mapped_file_handle::mode _mode=mapped_file_handle::mode::read, mapped_file_handle::creation _creation=mapped_file_handle::creation::open_existing, mapped_file_handle::caching _caching=mapped_file_handle::caching::all, mapped_file_handle::flag flags=mapped_file_handle::flag::none) noexcept']]],
['mapped_5ffile_5fhandle',['mapped_file_handle',['../classafio__v2__xxx_1_1mapped__file__handle.html#a4195d7c5e0a05273ea92d9913189456c',1,'afio_v2_xxx::mapped_file_handle::mapped_file_handle()'],['../classafio__v2__xxx_1_1mapped__file__handle.html#a1e5228aa6431b2770752e842bae5123b',1,'afio_v2_xxx::mapped_file_handle::mapped_file_handle(mapped_file_handle &amp;&amp;o) noexcept'],['../classafio__v2__xxx_1_1mapped__file__handle.html#aa28cc8821b7516afacf6a8d2e19cdf14',1,'afio_v2_xxx::mapped_file_handle::mapped_file_handle(const mapped_file_handle &amp;)=delete'],['../classafio__v2__xxx_1_1mapped__file__handle.html#afd7469b8fa7aa8e0a3dd84cb42697621',1,'afio_v2_xxx::mapped_file_handle::mapped_file_handle(file_handle &amp;&amp;o) noexcept'],['../classafio__v2__xxx_1_1mapped__file__handle.html#a12b186b46922da667e4efdd9a63e061c',1,'afio_v2_xxx::mapped_file_handle::mapped_file_handle(file_handle &amp;&amp;o, size_type reservation) noexcept']]],
['mapped_5frandom_5ffile',['mapped_random_file',['../classafio__v2__xxx_1_1mapped__file__handle.html#a00875e717f4b2725bb58ecbb5310fc6f',1,'afio_v2_xxx::mapped_file_handle::mapped_random_file()'],['../namespaceafio__v2__xxx.html#ac9be648f691d72c9cac6295ea7b3f9c8',1,'afio_v2_xxx::mapped_random_file()']]],
+ ['mapped_5fspan',['mapped_span',['../classafio__v2__xxx_1_1algorithm_1_1mapped__span.html#aa5b20642220613876d8be474003785e9',1,'afio_v2_xxx::algorithm::mapped_span::mapped_span()'],['../classafio__v2__xxx_1_1algorithm_1_1mapped__span.html#af6a43d3c0201079dac97d407ddb00aaa',1,'afio_v2_xxx::algorithm::mapped_span::mapped_span(size_type length, section_handle::flag _flag=section_handle::flag::readwrite)'],['../classafio__v2__xxx_1_1algorithm_1_1mapped__span.html#aca48ca2f9558c5d6f57e398016311fe8',1,'afio_v2_xxx::algorithm::mapped_span::mapped_span(section_handle &amp;sh, size_type length=(size_type) -1, extent_type byteoffset=0, section_handle::flag _flag=section_handle::flag::readwrite)'],['../classafio__v2__xxx_1_1algorithm_1_1mapped__span.html#a236f0978be161027886300e85bf5ae8d',1,'afio_v2_xxx::algorithm::mapped_span::mapped_span(mapped_file_handle &amp;mfh, size_type length=(size_type) -1, extent_type byteoffset=0)']]],
['mapped_5ftemp_5ffile',['mapped_temp_file',['../classafio__v2__xxx_1_1mapped__file__handle.html#ae19c88791bd2e0bca0d22ec576687a83',1,'afio_v2_xxx::mapped_file_handle::mapped_temp_file()'],['../namespaceafio__v2__xxx.html#ab175b3720445c24cd43e3b7d88c6bbc9',1,'afio_v2_xxx::mapped_temp_file()']]],
['mapped_5ftemp_5finode',['mapped_temp_inode',['../classafio__v2__xxx_1_1mapped__file__handle.html#afb68c9671a7ffb40cef4b6db0000a1a5',1,'afio_v2_xxx::mapped_file_handle::mapped_temp_inode()'],['../namespaceafio__v2__xxx.html#ac021261f7a8696b0f4cbdcfacef1e88a',1,'afio_v2_xxx::mapped_temp_inode()']]],
- ['mapped_5fview',['mapped_view',['../classafio__v2__xxx_1_1algorithm_1_1mapped__view.html#a8ac47f0032bf486cc3ff21b0a1958d02',1,'afio_v2_xxx::algorithm::mapped_view::mapped_view()'],['../classafio__v2__xxx_1_1algorithm_1_1mapped__view.html#af8a986d93d5967962763900af3f99824',1,'afio_v2_xxx::algorithm::mapped_view::mapped_view(size_type length, section_handle::flag _flag=section_handle::flag::readwrite)'],['../classafio__v2__xxx_1_1algorithm_1_1mapped__view.html#a0c63a640692c5fab81abb7572df45018',1,'afio_v2_xxx::algorithm::mapped_view::mapped_view(section_handle &amp;sh, size_type length=(size_type) -1, extent_type byteoffset=0, section_handle::flag _flag=section_handle::flag::readwrite)'],['../classafio__v2__xxx_1_1algorithm_1_1mapped__view.html#a90012e57d3d7fa833f363a56cb91bcd9',1,'afio_v2_xxx::algorithm::mapped_view::mapped_view(mapped_file_handle &amp;mfh, size_type length=(size_type) -1, extent_type byteoffset=0)']]],
['max_5fbuffers',['max_buffers',['../classafio__v2__xxx_1_1io__handle.html#a4d9cbbb7aae98704c6ad97de080c4210',1,'afio_v2_xxx::io_handle']]],
['max_5fsize',['max_size',['../structafio__v2__xxx_1_1storage__profile_1_1storage__profile.html#ab6b3c4513e47e2905c8e6fe1c831d742',1,'afio_v2_xxx::storage_profile::storage_profile::max_size()'],['../structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#a659754b0f9d7e2f3fa26921ebe48e7c0',1,'afio_v2_xxx::algorithm::impl::trivial_vector_impl::max_size()']]],
['memory_5fbacked_5ftemporary_5ffiles_5fdirectory',['memory_backed_temporary_files_directory',['../namespaceafio__v2__xxx_1_1path__discovery.html#ae34df4ad4e4f2c977ef99575713fd9bf',1,'afio_v2_xxx::path_discovery']]],
diff --git a/search/functions_e.js b/search/functions_e.js
index bc9d297c..51c84a98 100644
--- a/search/functions_e.js
+++ b/search/functions_e.js
@@ -3,7 +3,7 @@ var searchData=
['page_5fsize',['page_size',['../namespaceafio__v2__xxx_1_1utils.html#a337c41ad9b9dcbc6dbd81f2e706b469d',1,'afio_v2_xxx::utils']]],
['page_5fsizes',['page_sizes',['../namespaceafio__v2__xxx_1_1utils.html#aadc7dd505730e2701313be55519c9958',1,'afio_v2_xxx::utils']]],
['parent_5fpath_5fhandle',['parent_path_handle',['../classafio__v2__xxx_1_1fs__handle.html#aaacc27a62ce0859506d7443f0d0e7adf',1,'afio_v2_xxx::fs_handle']]],
- ['path',['path',['../classafio__v2__xxx_1_1path__handle.html#af6e7168b01cf2e1eefdc190ec4a52c8f',1,'afio_v2_xxx::path_handle::path(const path_handle &amp;base, path_view_type path) noexcept'],['../classafio__v2__xxx_1_1path__handle.html#a55d9de8f40e86dc1b657f3905d9a1e61',1,'afio_v2_xxx::path_handle::path(path_view_type _path) noexcept'],['../classafio__v2__xxx_1_1path__view.html#a9ffd7729fb1a57f42deab7375c4fa45f',1,'afio_v2_xxx::path_view::path()'],['../classafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1lock__files.html#a4118c8a384a2cc34c7f1636f87f40e5d',1,'afio_v2_xxx::algorithm::shared_fs_mutex::lock_files::path()'],['../namespaceafio__v2__xxx.html#a7432c582b3af692a1f94be33aa73a00e',1,'afio_v2_xxx::path(const path_handle &amp;base, path_handle::path_view_type _path) noexcept'],['../namespaceafio__v2__xxx.html#ac9484fd22637e8e0102d7b48b080c075',1,'afio_v2_xxx::path(path_handle::path_view_type _path) noexcept']]],
+ ['path',['path',['../classafio__v2__xxx_1_1path__handle.html#af6e7168b01cf2e1eefdc190ec4a52c8f',1,'afio_v2_xxx::path_handle::path(const path_handle &amp;base, path_view_type path) noexcept'],['../classafio__v2__xxx_1_1path__handle.html#a55d9de8f40e86dc1b657f3905d9a1e61',1,'afio_v2_xxx::path_handle::path(path_view_type _path) noexcept'],['../classafio__v2__xxx_1_1path__view.html#a9ffd7729fb1a57f42deab7375c4fa45f',1,'afio_v2_xxx::path_view::path()'],['../classafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1lock__files.html#a4118c8a384a2cc34c7f1636f87f40e5d',1,'afio_v2_xxx::algorithm::shared_fs_mutex::lock_files::path()'],['../namespaceafio__v2__xxx.html#a7a98882ead35ebd6bd0700fdf571c44a',1,'afio_v2_xxx::path(const path_handle &amp;base, path_handle::path_view_type path) noexcept'],['../namespaceafio__v2__xxx.html#ac9484fd22637e8e0102d7b48b080c075',1,'afio_v2_xxx::path(path_handle::path_view_type _path) noexcept']]],
['path1',['path1',['../structafio__v2__xxx_1_1error__info.html#afbf3cea56f9194d0dcc2d0838953833e',1,'afio_v2_xxx::error_info']]],
['path2',['path2',['../structafio__v2__xxx_1_1error__info.html#a344e1f5864b7672b55fbd0ad48c00658',1,'afio_v2_xxx::error_info']]],
['path_5fhandle',['path_handle',['../classafio__v2__xxx_1_1path__handle.html#a3719b4f0ed795cba40d6d35eee62e8ff',1,'afio_v2_xxx::path_handle::path_handle()'],['../classafio__v2__xxx_1_1path__handle.html#adfa0356d4ef899bad7a510f718cbed5f',1,'afio_v2_xxx::path_handle::path_handle(native_handle_type h, caching caching=caching::all, flag flags=flag::none)'],['../classafio__v2__xxx_1_1path__handle.html#a99b23d7a01380400ee1f69cc840684c1',1,'afio_v2_xxx::path_handle::path_handle(handle &amp;&amp;o) noexcept'],['../classafio__v2__xxx_1_1path__handle.html#a88881e89f538f09c1eaf9447a8182eea',1,'afio_v2_xxx::path_handle::path_handle(path_handle &amp;&amp;)=default'],['../classafio__v2__xxx_1_1path__handle.html#a029b99c552a9fda1d4ad95ec8dbe258b',1,'afio_v2_xxx::path_handle::path_handle(const path_handle &amp;)=delete']]],
diff --git a/search/functions_f.js b/search/functions_f.js
index b377b482..40b4adfd 100644
--- a/search/functions_f.js
+++ b/search/functions_f.js
@@ -6,9 +6,9 @@ var searchData=
['random_5ffill',['random_fill',['../namespaceafio__v2__xxx_1_1utils.html#aed184bfbef52745f68812e68b317527f',1,'afio_v2_xxx::utils']]],
['random_5fstring',['random_string',['../namespaceafio__v2__xxx_1_1utils.html#a767b8434456319066194534a4c4edbf5',1,'afio_v2_xxx::utils']]],
['rbegin',['rbegin',['../structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#a3212d6235ecc8f66742829c3489a14e4',1,'afio_v2_xxx::algorithm::impl::trivial_vector_impl::rbegin() noexcept'],['../structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#a241ff1b2ffdfa60fbc603f346d3605ed',1,'afio_v2_xxx::algorithm::impl::trivial_vector_impl::rbegin() const noexcept']]],
- ['read',['read',['../classafio__v2__xxx_1_1io__handle.html#a71d7636f40607829cacc2c974c4a2a28',1,'afio_v2_xxx::io_handle::read(io_request&lt; buffers_type &gt; reqs, deadline d=deadline()) noexcept'],['../classafio__v2__xxx_1_1io__handle.html#a8af6c6dc1502d40f6aaccc83e49d5342',1,'afio_v2_xxx::io_handle::read(extent_type offset, char *data, size_type bytes, deadline d=deadline()) noexcept'],['../classafio__v2__xxx_1_1map__handle.html#a4d8c8f3fcecd58b55316d42799abf6f3',1,'afio_v2_xxx::map_handle::read()'],['../classafio__v2__xxx_1_1mapped__file__handle.html#af645b1c8daf7b1ce9bf5ed50d1ee83a1',1,'afio_v2_xxx::mapped_file_handle::read()'],['../structafio__v2__xxx_1_1storage__profile_1_1storage__profile.html#aa3040d68a929247da822c74600fb977d',1,'afio_v2_xxx::storage_profile::storage_profile::read()'],['../namespaceafio__v2__xxx.html#a3cff8f3910dbf47663e5df1dc7e5ba47',1,'afio_v2_xxx::read(io_handle &amp;self, io_handle::io_request&lt; io_handle::buffers_type &gt; reqs, deadline d=deadline()) noexcept'],['../namespaceafio__v2__xxx.html#ac89289d85eff137c40d3d0084c410656',1,'afio_v2_xxx::read(map_handle &amp;self, map_handle::io_request&lt; map_handle::buffers_type &gt; reqs, deadline d=deadline()) noexcept']]],
+ ['read',['read',['../classafio__v2__xxx_1_1io__handle.html#a71d7636f40607829cacc2c974c4a2a28',1,'afio_v2_xxx::io_handle::read(io_request&lt; buffers_type &gt; reqs, deadline d=deadline()) noexcept'],['../classafio__v2__xxx_1_1io__handle.html#a928a8ab64d5b7d68dc7e2b3e5849df24',1,'afio_v2_xxx::io_handle::read(extent_type offset, std::initializer_list&lt; buffer_type &gt; lst, deadline d=deadline()) noexcept'],['../classafio__v2__xxx_1_1map__handle.html#a4d8c8f3fcecd58b55316d42799abf6f3',1,'afio_v2_xxx::map_handle::read()'],['../classafio__v2__xxx_1_1mapped__file__handle.html#af645b1c8daf7b1ce9bf5ed50d1ee83a1',1,'afio_v2_xxx::mapped_file_handle::read()'],['../structafio__v2__xxx_1_1storage__profile_1_1storage__profile.html#aa3040d68a929247da822c74600fb977d',1,'afio_v2_xxx::storage_profile::storage_profile::read()'],['../namespaceafio__v2__xxx.html#a3cff8f3910dbf47663e5df1dc7e5ba47',1,'afio_v2_xxx::read(io_handle &amp;self, io_handle::io_request&lt; io_handle::buffers_type &gt; reqs, deadline d=deadline()) noexcept'],['../namespaceafio__v2__xxx.html#a45b09c42c9a14c6abb56888a2832ba69',1,'afio_v2_xxx::read(io_handle &amp;self, io_handle::extent_type offset, std::initializer_list&lt; io_handle::buffer_type &gt; lst, deadline d=deadline()) noexcept'],['../namespaceafio__v2__xxx.html#ac89289d85eff137c40d3d0084c410656',1,'afio_v2_xxx::read(map_handle &amp;self, map_handle::io_request&lt; map_handle::buffers_type &gt; reqs, deadline d=deadline()) noexcept']]],
['release',['release',['../classafio__v2__xxx_1_1handle.html#a73d5f2070bce0c3d7fa536d3cbed7b52',1,'afio_v2_xxx::handle::release()'],['../classafio__v2__xxx_1_1io__handle_1_1extent__guard.html#a3a575d17f757d18ca077d004790bb91b',1,'afio_v2_xxx::io_handle::extent_guard::release()'],['../classafio__v2__xxx_1_1map__handle.html#ac484c07601be4e987b5f1332bdccfee3',1,'afio_v2_xxx::map_handle::release()'],['../classafio__v2__xxx_1_1mapped__file__handle.html#a24f5e84e167be838a0d951bd790413a3',1,'afio_v2_xxx::mapped_file_handle::release()'],['../classafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex_1_1entities__guard.html#a085f31f636e01187e6d65dac1512869f',1,'afio_v2_xxx::algorithm::shared_fs_mutex::shared_fs_mutex::entities_guard::release()']]],
- ['relink',['relink',['../classafio__v2__xxx_1_1fs__handle.html#a747962d0776c0fa9e79c9aa9b86da1c0',1,'afio_v2_xxx::fs_handle::relink()'],['../namespaceafio__v2__xxx.html#a8d7c50561e9103968467c928f2e38f16',1,'afio_v2_xxx::relink()']]],
+ ['relink',['relink',['../classafio__v2__xxx_1_1fs__handle.html#a747962d0776c0fa9e79c9aa9b86da1c0',1,'afio_v2_xxx::fs_handle::relink()'],['../namespaceafio__v2__xxx.html#aea0fac310f773ae58f672ec4b506887d',1,'afio_v2_xxx::relink()']]],
['remove_5ffilename',['remove_filename',['../classafio__v2__xxx_1_1path__view.html#a628788bf5c788d109b28aa7afdc46a8f',1,'afio_v2_xxx::path_view']]],
['rend',['rend',['../structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#ae661bc37d282baa4b3922ffdbb795a34',1,'afio_v2_xxx::algorithm::impl::trivial_vector_impl::rend() noexcept'],['../structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#a4201aac0c626c25e7b5119dd13f17a4a',1,'afio_v2_xxx::algorithm::impl::trivial_vector_impl::rend() const noexcept']]],
['requires_5faligned_5fio',['requires_aligned_io',['../classafio__v2__xxx_1_1handle.html#affb10caeeca67b804695b7378be29e23',1,'afio_v2_xxx::handle::requires_aligned_io()'],['../structafio__v2__xxx_1_1native__handle__type.html#a0aa00d6598a6f23989961957907d2e38',1,'afio_v2_xxx::native_handle_type::requires_aligned_io()']]],
diff --git a/search/typedefs_4.js b/search/typedefs_4.js
index 8501af20..d13e1292 100644
--- a/search/typedefs_4.js
+++ b/search/typedefs_4.js
@@ -2,5 +2,5 @@ var searchData=
[
['entities_5ftype',['entities_type',['../classafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1atomic__append.html#a8122298dacfb0e372d9a7e2ce0f6d463',1,'afio_v2_xxx::algorithm::shared_fs_mutex::atomic_append::entities_type()'],['../classafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html#ab9b3f3598d373786919eafc643d78633',1,'afio_v2_xxx::algorithm::shared_fs_mutex::shared_fs_mutex::entities_type()'],['../classafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html#a89a844be9af16f025224af20515cb156',1,'afio_v2_xxx::algorithm::shared_fs_mutex::byte_ranges::entities_type()'],['../classafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1lock__files.html#a52cd258b79a867751db489b32778a282',1,'afio_v2_xxx::algorithm::shared_fs_mutex::lock_files::entities_type()'],['../classafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#a95880c30e654cff3c8539a98e8051cc2',1,'afio_v2_xxx::algorithm::shared_fs_mutex::memory_map::entities_type()'],['../classafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1safe__byte__ranges.html#ac066e96222b8063715b54856390e301a',1,'afio_v2_xxx::algorithm::shared_fs_mutex::safe_byte_ranges::entities_type()']]],
['entity_5ftype',['entity_type',['../classafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1atomic__append.html#a0b8ee014f4d70b6e972eef6eed3a9cc5',1,'afio_v2_xxx::algorithm::shared_fs_mutex::atomic_append::entity_type()'],['../classafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html#a29c486c2b6b93b7bebf2c34211fa284e',1,'afio_v2_xxx::algorithm::shared_fs_mutex::byte_ranges::entity_type()'],['../classafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1lock__files.html#acb93defa88a92de7f15785c2c5cec4f6',1,'afio_v2_xxx::algorithm::shared_fs_mutex::lock_files::entity_type()'],['../classafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#a33d3ab28b81a5b1eedcc8eb217f78eab',1,'afio_v2_xxx::algorithm::shared_fs_mutex::memory_map::entity_type()'],['../classafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1safe__byte__ranges.html#a2c691f6623a7bd90b846e49863702f00',1,'afio_v2_xxx::algorithm::shared_fs_mutex::safe_byte_ranges::entity_type()']]],
- ['extent_5ftype',['extent_type',['../classafio__v2__xxx_1_1handle.html#a818fff07c92eaab72532092d1c2a14f9',1,'afio_v2_xxx::handle::extent_type()'],['../classafio__v2__xxx_1_1io__service.html#afc9f0ed0d7e0bce83023f998e95f7873',1,'afio_v2_xxx::io_service::extent_type()'],['../classafio__v2__xxx_1_1algorithm_1_1mapped__view.html#a0e413ca44e22e974598aa700f8fda08a',1,'afio_v2_xxx::algorithm::mapped_view::extent_type()']]]
+ ['extent_5ftype',['extent_type',['../classafio__v2__xxx_1_1handle.html#a818fff07c92eaab72532092d1c2a14f9',1,'afio_v2_xxx::handle::extent_type()'],['../classafio__v2__xxx_1_1io__service.html#afc9f0ed0d7e0bce83023f998e95f7873',1,'afio_v2_xxx::io_service::extent_type()'],['../classafio__v2__xxx_1_1algorithm_1_1mapped__span.html#aa53a448cdf7c235bdba9252b52548b5b',1,'afio_v2_xxx::algorithm::mapped_span::extent_type()']]]
];
diff --git a/search/typedefs_a.js b/search/typedefs_a.js
index 4f26a5dc..30244054 100644
--- a/search/typedefs_a.js
+++ b/search/typedefs_a.js
@@ -1,5 +1,5 @@
var searchData=
[
- ['size_5ftype',['size_type',['../classafio__v2__xxx_1_1handle.html#a0adf7fa00e23ed561328f473986e9ccc',1,'afio_v2_xxx::handle::size_type()'],['../classafio__v2__xxx_1_1io__service.html#a2efd36ca952a401e2b0bc44b7e52524e',1,'afio_v2_xxx::io_service::size_type()'],['../classafio__v2__xxx_1_1path__view.html#ac9ea02ed943d7b9adeed34c4ed100d5f',1,'afio_v2_xxx::path_view::size_type()'],['../structafio__v2__xxx_1_1storage__profile_1_1storage__profile.html#ac854196b2d774c4c7375b1e15296b2d2',1,'afio_v2_xxx::storage_profile::storage_profile::size_type()'],['../classafio__v2__xxx_1_1algorithm_1_1mapped__view.html#a7812759f458831ea053fed38ec46dc30',1,'afio_v2_xxx::algorithm::mapped_view::size_type()'],['../classafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__iterator.html#a04de3895e4f179e8f66f80f8708c78eb',1,'afio_v2_xxx::algorithm::impl::trivial_vector_iterator::size_type()'],['../structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#a618ed9123552bf7a1681fc566ea8cd37',1,'afio_v2_xxx::algorithm::impl::trivial_vector_impl::size_type()'],['../structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl_3_01true_00_01_t_01_4.html#ac62b40fb77aa21ca6e24f296969aa70a',1,'afio_v2_xxx::algorithm::impl::trivial_vector_impl&lt; true, T &gt;::size_type()']]],
+ ['size_5ftype',['size_type',['../classafio__v2__xxx_1_1handle.html#a0adf7fa00e23ed561328f473986e9ccc',1,'afio_v2_xxx::handle::size_type()'],['../classafio__v2__xxx_1_1io__service.html#a2efd36ca952a401e2b0bc44b7e52524e',1,'afio_v2_xxx::io_service::size_type()'],['../classafio__v2__xxx_1_1path__view.html#ac9ea02ed943d7b9adeed34c4ed100d5f',1,'afio_v2_xxx::path_view::size_type()'],['../structafio__v2__xxx_1_1storage__profile_1_1storage__profile.html#ac854196b2d774c4c7375b1e15296b2d2',1,'afio_v2_xxx::storage_profile::storage_profile::size_type()'],['../classafio__v2__xxx_1_1algorithm_1_1mapped__span.html#aa33d0ce0be15b0738c6b36341843ccb5',1,'afio_v2_xxx::algorithm::mapped_span::size_type()'],['../classafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__iterator.html#a04de3895e4f179e8f66f80f8708c78eb',1,'afio_v2_xxx::algorithm::impl::trivial_vector_iterator::size_type()'],['../structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#a618ed9123552bf7a1681fc566ea8cd37',1,'afio_v2_xxx::algorithm::impl::trivial_vector_impl::size_type()'],['../structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl_3_01true_00_01_t_01_4.html#ac62b40fb77aa21ca6e24f296969aa70a',1,'afio_v2_xxx::algorithm::impl::trivial_vector_impl&lt; true, T &gt;::size_type()']]],
['spinlock_5ftype',['spinlock_type',['../classafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#a80fcaf9fcaddc442e8517e11f20fcab9',1,'afio_v2_xxx::algorithm::shared_fs_mutex::memory_map']]]
];
diff --git a/structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl-members.html b/structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl-members.html
index 5090e94b..fa4f8081 100644
--- a/structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl-members.html
+++ b/structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl-members.html
@@ -114,8 +114,8 @@ $(document).ready(function(){initNavTree('structafio__v2__xxx_1_1algorithm_1_1im
<tr class="even"><td class="entry"><a class="el" href="structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#a2445e00cfeaec57852f3e8fac8833669">empty</a>() const noexcept</td><td class="entry"><a class="el" href="structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html">afio_v2_xxx::algorithm::impl::trivial_vector_impl&lt; has_default_construction, T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#a6532b67d7f9bfe246bcc5d910287ee01">end</a>() noexcept</td><td class="entry"><a class="el" href="structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html">afio_v2_xxx::algorithm::impl::trivial_vector_impl&lt; has_default_construction, T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#a32ee5ef5d8ee7b7e405ececfe06109e3">end</a>() const noexcept</td><td class="entry"><a class="el" href="structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html">afio_v2_xxx::algorithm::impl::trivial_vector_impl&lt; has_default_construction, T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#a97d59a2919feeb1a4c2bb71dda63c2a3">erase</a>(const_iterator pos)</td><td class="entry"><a class="el" href="structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html">afio_v2_xxx::algorithm::impl::trivial_vector_impl&lt; has_default_construction, T &gt;</a></td><td class="entry"></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#a782e7042f5ef8e5794566ad990418a8a">erase</a>(const_iterator first, const_iterator last)</td><td class="entry"><a class="el" href="structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html">afio_v2_xxx::algorithm::impl::trivial_vector_impl&lt; has_default_construction, T &gt;</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#a97d59a2919feeb1a4c2bb71dda63c2a3">erase</a>(const_iterator pos)</td><td class="entry"><a class="el" href="structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html">afio_v2_xxx::algorithm::impl::trivial_vector_impl&lt; has_default_construction, T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#a782e7042f5ef8e5794566ad990418a8a">erase</a>(const_iterator first, const_iterator last)</td><td class="entry"><a class="el" href="structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html">afio_v2_xxx::algorithm::impl::trivial_vector_impl&lt; has_default_construction, T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#a829281d387d6fe30048d9bcc4a75580c">front</a>()</td><td class="entry"><a class="el" href="structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html">afio_v2_xxx::algorithm::impl::trivial_vector_impl&lt; has_default_construction, T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#a5885f0a96e3bf7ebcca72dc36f0f2167">front</a>() const</td><td class="entry"><a class="el" href="structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html">afio_v2_xxx::algorithm::impl::trivial_vector_impl&lt; has_default_construction, T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#ac1121f572b653ce47060d6289f95665f">insert</a>(const_iterator pos, const value_type &amp;v)</td><td class="entry"><a class="el" href="structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html">afio_v2_xxx::algorithm::impl::trivial_vector_impl&lt; has_default_construction, T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
diff --git a/structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl_3_01true_00_01_t_01_4-members.html b/structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl_3_01true_00_01_t_01_4-members.html
index 9de59d1d..6a5302f8 100644
--- a/structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl_3_01true_00_01_t_01_4-members.html
+++ b/structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl_3_01true_00_01_t_01_4-members.html
@@ -114,8 +114,8 @@ $(document).ready(function(){initNavTree('structafio__v2__xxx_1_1algorithm_1_1im
<tr class="even"><td class="entry"><a class="el" href="structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#a2445e00cfeaec57852f3e8fac8833669">empty</a>() const noexcept</td><td class="entry"><a class="el" href="structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html">afio_v2_xxx::algorithm::impl::trivial_vector_impl&lt; false, T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#a6532b67d7f9bfe246bcc5d910287ee01">end</a>() noexcept</td><td class="entry"><a class="el" href="structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html">afio_v2_xxx::algorithm::impl::trivial_vector_impl&lt; false, T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#a32ee5ef5d8ee7b7e405ececfe06109e3">end</a>() const noexcept</td><td class="entry"><a class="el" href="structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html">afio_v2_xxx::algorithm::impl::trivial_vector_impl&lt; false, T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#a97d59a2919feeb1a4c2bb71dda63c2a3">erase</a>(const_iterator pos)</td><td class="entry"><a class="el" href="structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html">afio_v2_xxx::algorithm::impl::trivial_vector_impl&lt; false, T &gt;</a></td><td class="entry"></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#a782e7042f5ef8e5794566ad990418a8a">erase</a>(const_iterator first, const_iterator last)</td><td class="entry"><a class="el" href="structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html">afio_v2_xxx::algorithm::impl::trivial_vector_impl&lt; false, T &gt;</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#a97d59a2919feeb1a4c2bb71dda63c2a3">erase</a>(const_iterator pos)</td><td class="entry"><a class="el" href="structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html">afio_v2_xxx::algorithm::impl::trivial_vector_impl&lt; false, T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#a782e7042f5ef8e5794566ad990418a8a">erase</a>(const_iterator first, const_iterator last)</td><td class="entry"><a class="el" href="structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html">afio_v2_xxx::algorithm::impl::trivial_vector_impl&lt; false, T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#a829281d387d6fe30048d9bcc4a75580c">front</a>()</td><td class="entry"><a class="el" href="structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html">afio_v2_xxx::algorithm::impl::trivial_vector_impl&lt; false, T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#a5885f0a96e3bf7ebcca72dc36f0f2167">front</a>() const</td><td class="entry"><a class="el" href="structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html">afio_v2_xxx::algorithm::impl::trivial_vector_impl&lt; false, T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#ac1121f572b653ce47060d6289f95665f">insert</a>(const_iterator pos, const value_type &amp;v)</td><td class="entry"><a class="el" href="structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html">afio_v2_xxx::algorithm::impl::trivial_vector_impl&lt; false, T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
diff --git a/structafio__v2__xxx_1_1error__info-members.html b/structafio__v2__xxx_1_1error__info-members.html
index 2402de51..4d401f2f 100644
--- a/structafio__v2__xxx_1_1error__info-members.html
+++ b/structafio__v2__xxx_1_1error__info-members.html
@@ -90,7 +90,7 @@ $(document).ready(function(){initNavTree('structafio__v2__xxx_1_1error__info.htm
<tr class="even"><td class="entry"><a class="el" href="structafio__v2__xxx_1_1error__info.html#a1e44563674108c5338d1ca1050c4d0eb">ec</a></td><td class="entry"><a class="el" href="structafio__v2__xxx_1_1error__info.html">afio_v2_xxx::error_info</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="structafio__v2__xxx_1_1error__info.html#a3839c2c2f0586b8d2251d176267526f4">error_info</a>()=default</td><td class="entry"><a class="el" href="structafio__v2__xxx_1_1error__info.html">afio_v2_xxx::error_info</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="structafio__v2__xxx_1_1error__info.html#a1b716746fcd8bd812cae2c9a6c7c794d">error_info</a>(int code, const std::error_category &amp;cat)</td><td class="entry"><a class="el" href="structafio__v2__xxx_1_1error__info.html">afio_v2_xxx::error_info</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>error_info</b>(std::error_code _ec) (defined in <a class="el" href="structafio__v2__xxx_1_1error__info.html">afio_v2_xxx::error_info</a>)</td><td class="entry"><a class="el" href="structafio__v2__xxx_1_1error__info.html">afio_v2_xxx::error_info</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>error_info</b>(std::error_code _ec) (defined in <a class="el" href="structafio__v2__xxx_1_1error__info.html">afio_v2_xxx::error_info</a>)</td><td class="entry"><a class="el" href="structafio__v2__xxx_1_1error__info.html">afio_v2_xxx::error_info</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="structafio__v2__xxx_1_1error__info.html#ae710a4b60f3da9ab91e32374f9a766d5">message</a>() const</td><td class="entry"><a class="el" href="structafio__v2__xxx_1_1error__info.html">afio_v2_xxx::error_info</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="structafio__v2__xxx_1_1error__info.html#a891cf9546a70373c8415de2e3b2355cd">OUTCOME_TEMPLATE</a>(class ErrorCondEnum) OUTCOME_TREQUIRES(OUTCOME_TPRED(std</td><td class="entry"><a class="el" href="structafio__v2__xxx_1_1error__info.html">afio_v2_xxx::error_info</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="structafio__v2__xxx_1_1error__info.html#afbf3cea56f9194d0dcc2d0838953833e">path1</a>() const</td><td class="entry"><a class="el" href="structafio__v2__xxx_1_1error__info.html">afio_v2_xxx::error_info</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
diff --git a/structafio__v2__xxx_1_1error__info.html b/structafio__v2__xxx_1_1error__info.html
index 429dfe66..1872c557 100644
--- a/structafio__v2__xxx_1_1error__info.html
+++ b/structafio__v2__xxx_1_1error__info.html
@@ -109,7 +109,7 @@ Public Member Functions</h2></td></tr>
<tr class="separator:ac1174c8b5aca65822fb690df1f108b2b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a891cf9546a70373c8415de2e3b2355cd"><td class="memItemLeft" align="right" valign="top"><a id="a891cf9546a70373c8415de2e3b2355cd"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structafio__v2__xxx_1_1error__info.html#a891cf9546a70373c8415de2e3b2355cd">OUTCOME_TEMPLATE</a> (class ErrorCondEnum) OUTCOME_TREQUIRES(OUTCOME_TPRED(std</td></tr>
-<tr class="memdesc:a891cf9546a70373c8415de2e3b2355cd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Construct from an error condition enum. <br /></td></tr>
+<tr class="memdesc:a891cf9546a70373c8415de2e3b2355cd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implicit construct from an error condition enum. <br /></td></tr>
<tr class="separator:a891cf9546a70373c8415de2e3b2355cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afbf3cea56f9194d0dcc2d0838953833e"><td class="memItemLeft" align="right" valign="top"><a id="afbf3cea56f9194d0dcc2d0838953833e"></a>
filesystem::path&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structafio__v2__xxx_1_1error__info.html#afbf3cea56f9194d0dcc2d0838953833e">path1</a> () const</td></tr>
@@ -159,8 +159,8 @@ std::error_code&#160;</td><td class="memItemRight" valign="bottom"><a class="el"
</table>
</div><div class="memdoc">
<p>Throw this failure as a C++ exception. Firstly if the error code matches any of the standard C++ exception types e.g. <code>bad_alloc</code>, we throw those types using the string from <code>message()</code> where possible. We then will throw an <code>error</code> exception type. </p>
-<div class="fragment"><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160;{</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; std::string msg;</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; <span class="keywordflow">try</span></div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; {</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; msg = <a class="code" href="structafio__v2__xxx_1_1error__info.html#ae710a4b60f3da9ab91e32374f9a766d5">message</a>();</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; }</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; <span class="keywordflow">catch</span>(...)</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; {</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; }</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; OUTCOME_V2_NAMESPACE::try_throw_std_exception_from_error(<a class="code" href="structafio__v2__xxx_1_1error__info.html#a1e44563674108c5338d1ca1050c4d0eb">ec</a>, msg);</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; <span class="keywordflow">throw</span> error(*<span class="keyword">this</span>);</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160;}</div><div class="ttc" id="structafio__v2__xxx_1_1error__info_html_a1e44563674108c5338d1ca1050c4d0eb"><div class="ttname"><a href="structafio__v2__xxx_1_1error__info.html#a1e44563674108c5338d1ca1050c4d0eb">afio_v2_xxx::error_info::ec</a></div><div class="ttdeci">std::error_code ec</div><div class="ttdoc">The error code for the failure. </div><div class="ttdef"><b>Definition:</b> config.hpp:340</div></div>
-<div class="ttc" id="structafio__v2__xxx_1_1error__info_html_ae710a4b60f3da9ab91e32374f9a766d5"><div class="ttname"><a href="structafio__v2__xxx_1_1error__info.html#ae710a4b60f3da9ab91e32374f9a766d5">afio_v2_xxx::error_info::message</a></div><div class="ttdeci">std::string message() const</div><div class="ttdoc">Retrieve a descriptive message for this failure, possibly with paths and stack backtraces. Extra detail only appears if called from the same thread as where the failure occurred. </div><div class="ttdef"><b>Definition:</b> config.hpp:609</div></div>
+<div class="fragment"><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160;{</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; std::string msg;</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; <span class="keywordflow">try</span></div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; {</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; msg = <a class="code" href="structafio__v2__xxx_1_1error__info.html#ae710a4b60f3da9ab91e32374f9a766d5">message</a>();</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; }</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; <span class="keywordflow">catch</span>(...)</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; {</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; }</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; OUTCOME_V2_NAMESPACE::try_throw_std_exception_from_error(<a class="code" href="structafio__v2__xxx_1_1error__info.html#a1e44563674108c5338d1ca1050c4d0eb">ec</a>, msg);</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; <span class="keywordflow">throw</span> error(*<span class="keyword">this</span>);</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160;}</div><div class="ttc" id="structafio__v2__xxx_1_1error__info_html_a1e44563674108c5338d1ca1050c4d0eb"><div class="ttname"><a href="structafio__v2__xxx_1_1error__info.html#a1e44563674108c5338d1ca1050c4d0eb">afio_v2_xxx::error_info::ec</a></div><div class="ttdeci">std::error_code ec</div><div class="ttdoc">The error code for the failure. </div><div class="ttdef"><b>Definition:</b> config.hpp:345</div></div>
+<div class="ttc" id="structafio__v2__xxx_1_1error__info_html_ae710a4b60f3da9ab91e32374f9a766d5"><div class="ttname"><a href="structafio__v2__xxx_1_1error__info.html#ae710a4b60f3da9ab91e32374f9a766d5">afio_v2_xxx::error_info::message</a></div><div class="ttdeci">std::string message() const</div><div class="ttdoc">Retrieve a descriptive message for this failure, possibly with paths and stack backtraces. Extra detail only appears if called from the same thread as where the failure occurred. </div><div class="ttdef"><b>Definition:</b> config.hpp:644</div></div>
</div><!-- fragment -->
</div>
</div>
diff --git a/structafio__v2__xxx_1_1section__handle_1_1flag__base-members.html b/structafio__v2__xxx_1_1section__handle_1_1flag__base-members.html
index 4380fb3c..7f417b2b 100644
--- a/structafio__v2__xxx_1_1section__handle_1_1flag__base-members.html
+++ b/structafio__v2__xxx_1_1section__handle_1_1flag__base-members.html
@@ -94,11 +94,12 @@ $(document).ready(function(){initNavTree('structafio__v2__xxx_1_1section__handle
<tr class="even"><td class="entry"><a class="el" href="structafio__v2__xxx_1_1section__handle_1_1flag__base.html#a5b790e66402ef3a07ce9464f3e1dc9d8a52cf147e32054f836e9fe4915eef32d1">execute</a> enum value</td><td class="entry"><a class="el" href="structafio__v2__xxx_1_1section__handle_1_1flag__base.html">afio_v2_xxx::section_handle::flag_base</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="structafio__v2__xxx_1_1section__handle_1_1flag__base.html#a5b790e66402ef3a07ce9464f3e1dc9d8aaee6e5b8a4cbbc5ff38bc3687b9fa286">nocommit</a> enum value</td><td class="entry"><a class="el" href="structafio__v2__xxx_1_1section__handle_1_1flag__base.html">afio_v2_xxx::section_handle::flag_base</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="structafio__v2__xxx_1_1section__handle_1_1flag__base.html#a5b790e66402ef3a07ce9464f3e1dc9d8a26c56f64a5569c048ed853c28249726d">none</a> enum value</td><td class="entry"><a class="el" href="structafio__v2__xxx_1_1section__handle_1_1flag__base.html">afio_v2_xxx::section_handle::flag_base</a></td><td class="entry"></td></tr>
- <tr><td class="entry"><a class="el" href="structafio__v2__xxx_1_1section__handle_1_1flag__base.html#a5b790e66402ef3a07ce9464f3e1dc9d8a522b281f854fe92d7ea674d2d8cc4be2">prefault</a> enum value</td><td class="entry"><a class="el" href="structafio__v2__xxx_1_1section__handle_1_1flag__base.html">afio_v2_xxx::section_handle::flag_base</a></td><td class="entry"></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="structafio__v2__xxx_1_1section__handle_1_1flag__base.html#a5b790e66402ef3a07ce9464f3e1dc9d8a5de9274683882ee1d0584d535ec4959a">read</a> enum value</td><td class="entry"><a class="el" href="structafio__v2__xxx_1_1section__handle_1_1flag__base.html">afio_v2_xxx::section_handle::flag_base</a></td><td class="entry"></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>readwrite</b> enum value (defined in <a class="el" href="structafio__v2__xxx_1_1section__handle_1_1flag__base.html">afio_v2_xxx::section_handle::flag_base</a>)</td><td class="entry"><a class="el" href="structafio__v2__xxx_1_1section__handle_1_1flag__base.html">afio_v2_xxx::section_handle::flag_base</a></td><td class="entry"></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="structafio__v2__xxx_1_1section__handle_1_1flag__base.html#a5b790e66402ef3a07ce9464f3e1dc9d8a091dabebebe6745fe9c1ed2901c125f2">singleton</a> enum value</td><td class="entry"><a class="el" href="structafio__v2__xxx_1_1section__handle_1_1flag__base.html">afio_v2_xxx::section_handle::flag_base</a></td><td class="entry"></td></tr>
- <tr><td class="entry"><a class="el" href="structafio__v2__xxx_1_1section__handle_1_1flag__base.html#a5b790e66402ef3a07ce9464f3e1dc9d8a883f4e2f10f711e329d8389682550a71">write</a> enum value</td><td class="entry"><a class="el" href="structafio__v2__xxx_1_1section__handle_1_1flag__base.html">afio_v2_xxx::section_handle::flag_base</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="structafio__v2__xxx_1_1section__handle_1_1flag__base.html#a5b790e66402ef3a07ce9464f3e1dc9d8a1e60c3188179bfa97299536cd051fcb9">nvram</a> enum value</td><td class="entry"><a class="el" href="structafio__v2__xxx_1_1section__handle_1_1flag__base.html">afio_v2_xxx::section_handle::flag_base</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="structafio__v2__xxx_1_1section__handle_1_1flag__base.html#a5b790e66402ef3a07ce9464f3e1dc9d8a522b281f854fe92d7ea674d2d8cc4be2">prefault</a> enum value</td><td class="entry"><a class="el" href="structafio__v2__xxx_1_1section__handle_1_1flag__base.html">afio_v2_xxx::section_handle::flag_base</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="structafio__v2__xxx_1_1section__handle_1_1flag__base.html#a5b790e66402ef3a07ce9464f3e1dc9d8a5de9274683882ee1d0584d535ec4959a">read</a> enum value</td><td class="entry"><a class="el" href="structafio__v2__xxx_1_1section__handle_1_1flag__base.html">afio_v2_xxx::section_handle::flag_base</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>readwrite</b> enum value (defined in <a class="el" href="structafio__v2__xxx_1_1section__handle_1_1flag__base.html">afio_v2_xxx::section_handle::flag_base</a>)</td><td class="entry"><a class="el" href="structafio__v2__xxx_1_1section__handle_1_1flag__base.html">afio_v2_xxx::section_handle::flag_base</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="structafio__v2__xxx_1_1section__handle_1_1flag__base.html#a5b790e66402ef3a07ce9464f3e1dc9d8a091dabebebe6745fe9c1ed2901c125f2">singleton</a> enum value</td><td class="entry"><a class="el" href="structafio__v2__xxx_1_1section__handle_1_1flag__base.html">afio_v2_xxx::section_handle::flag_base</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="structafio__v2__xxx_1_1section__handle_1_1flag__base.html#a5b790e66402ef3a07ce9464f3e1dc9d8a883f4e2f10f711e329d8389682550a71">write</a> enum value</td><td class="entry"><a class="el" href="structafio__v2__xxx_1_1section__handle_1_1flag__base.html">afio_v2_xxx::section_handle::flag_base</a></td><td class="entry"></td></tr>
</table></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
diff --git a/structafio__v2__xxx_1_1section__handle_1_1flag__base.html b/structafio__v2__xxx_1_1section__handle_1_1flag__base.html
index c9eca479..c973bb2f 100644
--- a/structafio__v2__xxx_1_1section__handle_1_1flag__base.html
+++ b/structafio__v2__xxx_1_1section__handle_1_1flag__base.html
@@ -108,6 +108,7 @@ Public Types</h2></td></tr>
<br />
&#160;&#160;<a class="el" href="structafio__v2__xxx_1_1section__handle_1_1flag__base.html#a5b790e66402ef3a07ce9464f3e1dc9d8a091dabebebe6745fe9c1ed2901c125f2">singleton</a> = 1U &lt;&lt; 11U,
<a class="el" href="structafio__v2__xxx_1_1section__handle_1_1flag__base.html#a5b790e66402ef3a07ce9464f3e1dc9d8a13b22e159d85ac0067a3aac0f7255acd">barrier_on_close</a> = 1U &lt;&lt; 16U,
+<a class="el" href="structafio__v2__xxx_1_1section__handle_1_1flag__base.html#a5b790e66402ef3a07ce9464f3e1dc9d8a1e60c3188179bfa97299536cd051fcb9">nvram</a> = 1U &lt;&lt; 17U,
<b>readwrite</b> = (read | write)
<br />
}</td></tr>
@@ -148,8 +149,11 @@ Public Types</h2></td></tr>
</td></tr>
<tr><td class="fieldname"><a id="a5b790e66402ef3a07ce9464f3e1dc9d8a13b22e159d85ac0067a3aac0f7255acd"></a>barrier_on_close&#160;</td><td class="fielddoc"><p>Maps of this section, if writable, issue a <code>barrier()</code> when destructed blocking until data (not metadata) reaches physical storage. </p>
</td></tr>
+<tr><td class="fieldname"><a id="a5b790e66402ef3a07ce9464f3e1dc9d8a1e60c3188179bfa97299536cd051fcb9"></a>nvram&#160;</td><td class="fielddoc"><p>This section is of non-volatile RAM. </p>
+</td></tr>
</table>
-<div class="fragment"><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; {<a class="code" href="structafio__v2__xxx_1_1section__handle_1_1flag__base.html#a5b790e66402ef3a07ce9464f3e1dc9d8a26c56f64a5569c048ed853c28249726d">none</a> = 0U, <span class="comment">//!&lt; No flags</span></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="comment"></span> <a class="code" href="structafio__v2__xxx_1_1section__handle_1_1flag__base.html#a5b790e66402ef3a07ce9464f3e1dc9d8a5de9274683882ee1d0584d535ec4959a">read</a> = 1U &lt;&lt; 0U, <span class="comment">//!&lt; Memory views can be read</span></div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="comment"></span> <a class="code" href="structafio__v2__xxx_1_1section__handle_1_1flag__base.html#a5b790e66402ef3a07ce9464f3e1dc9d8a883f4e2f10f711e329d8389682550a71">write</a> = 1U &lt;&lt; 1U, <span class="comment">//!&lt; Memory views can be written</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="comment"></span> <a class="code" href="structafio__v2__xxx_1_1section__handle_1_1flag__base.html#a5b790e66402ef3a07ce9464f3e1dc9d8aa7b8e12448e73233d3631a6f8c2bb475">cow</a> = 1U &lt;&lt; 2U, <span class="comment">//!&lt; Memory views can be copy on written</span></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="comment"></span> <a class="code" href="structafio__v2__xxx_1_1section__handle_1_1flag__base.html#a5b790e66402ef3a07ce9464f3e1dc9d8a52cf147e32054f836e9fe4915eef32d1">execute</a> = 1U &lt;&lt; 3U, <span class="comment">//!&lt; Memory views can execute code</span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <a class="code" href="structafio__v2__xxx_1_1section__handle_1_1flag__base.html#a5b790e66402ef3a07ce9464f3e1dc9d8aaee6e5b8a4cbbc5ff38bc3687b9fa286">nocommit</a> = 1U &lt;&lt; 8U, <span class="comment">//!&lt; Don&#39;t allocate space for this memory in the system immediately</span></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="comment"></span> <a class="code" href="structafio__v2__xxx_1_1section__handle_1_1flag__base.html#a5b790e66402ef3a07ce9464f3e1dc9d8a522b281f854fe92d7ea674d2d8cc4be2">prefault</a> = 1U &lt;&lt; 9U, <span class="comment">//!&lt; Prefault, as if by reading every page, any views of memory upon creation.</span></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="comment"></span> <a class="code" href="structafio__v2__xxx_1_1section__handle_1_1flag__base.html#a5b790e66402ef3a07ce9464f3e1dc9d8ac4d63015efddf12ccdb30242e135f35c">executable</a> = 1U &lt;&lt; 10U, <span class="comment">//!&lt; The backing storage is in fact an executable program binary.</span></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="comment"></span> <a class="code" href="structafio__v2__xxx_1_1section__handle_1_1flag__base.html#a5b790e66402ef3a07ce9464f3e1dc9d8a091dabebebe6745fe9c1ed2901c125f2">singleton</a> = 1U &lt;&lt; 11U, <span class="comment">//!&lt; A single instance of this section is to be shared by all processes using the same backing file.</span></div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <a class="code" href="structafio__v2__xxx_1_1section__handle_1_1flag__base.html#a5b790e66402ef3a07ce9464f3e1dc9d8a13b22e159d85ac0067a3aac0f7255acd">barrier_on_close</a> = 1U &lt;&lt; 16U, <span class="comment">//!&lt; Maps of this section, if writable, issue a `barrier()` when destructed blocking until data (not metadata) reaches physical storage.</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <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="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; readwrite = (read | <a class="code" href="structafio__v2__xxx_1_1section__handle_1_1flag__base.html#a5b790e66402ef3a07ce9464f3e1dc9d8a883f4e2f10f711e329d8389682550a71">write</a>)};</div><div class="ttc" id="structafio__v2__xxx_1_1section__handle_1_1flag__base_html_a5b790e66402ef3a07ce9464f3e1dc9d8aa7b8e12448e73233d3631a6f8c2bb475"><div class="ttname"><a href="structafio__v2__xxx_1_1section__handle_1_1flag__base.html#a5b790e66402ef3a07ce9464f3e1dc9d8aa7b8e12448e73233d3631a6f8c2bb475">afio_v2_xxx::section_handle::flag_base::cow</a></div><div class="ttdoc">Memory views can be copy on written. </div><div class="ttdef"><b>Definition:</b> map_handle.hpp:61</div></div>
+<div class="fragment"><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; {<a class="code" href="structafio__v2__xxx_1_1section__handle_1_1flag__base.html#a5b790e66402ef3a07ce9464f3e1dc9d8a26c56f64a5569c048ed853c28249726d">none</a> = 0U, <span class="comment">//!&lt; No flags</span></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="comment"></span> <a class="code" href="structafio__v2__xxx_1_1section__handle_1_1flag__base.html#a5b790e66402ef3a07ce9464f3e1dc9d8a5de9274683882ee1d0584d535ec4959a">read</a> = 1U &lt;&lt; 0U, <span class="comment">//!&lt; Memory views can be read</span></div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="comment"></span> <a class="code" href="structafio__v2__xxx_1_1section__handle_1_1flag__base.html#a5b790e66402ef3a07ce9464f3e1dc9d8a883f4e2f10f711e329d8389682550a71">write</a> = 1U &lt;&lt; 1U, <span class="comment">//!&lt; Memory views can be written</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="comment"></span> <a class="code" href="structafio__v2__xxx_1_1section__handle_1_1flag__base.html#a5b790e66402ef3a07ce9464f3e1dc9d8aa7b8e12448e73233d3631a6f8c2bb475">cow</a> = 1U &lt;&lt; 2U, <span class="comment">//!&lt; Memory views can be copy on written</span></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="comment"></span> <a class="code" href="structafio__v2__xxx_1_1section__handle_1_1flag__base.html#a5b790e66402ef3a07ce9464f3e1dc9d8a52cf147e32054f836e9fe4915eef32d1">execute</a> = 1U &lt;&lt; 3U, <span class="comment">//!&lt; Memory views can execute code</span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <a class="code" href="structafio__v2__xxx_1_1section__handle_1_1flag__base.html#a5b790e66402ef3a07ce9464f3e1dc9d8aaee6e5b8a4cbbc5ff38bc3687b9fa286">nocommit</a> = 1U &lt;&lt; 8U, <span class="comment">//!&lt; Don&#39;t allocate space for this memory in the system immediately</span></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="comment"></span> <a class="code" href="structafio__v2__xxx_1_1section__handle_1_1flag__base.html#a5b790e66402ef3a07ce9464f3e1dc9d8a522b281f854fe92d7ea674d2d8cc4be2">prefault</a> = 1U &lt;&lt; 9U, <span class="comment">//!&lt; Prefault, as if by reading every page, any views of memory upon creation.</span></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="comment"></span> <a class="code" href="structafio__v2__xxx_1_1section__handle_1_1flag__base.html#a5b790e66402ef3a07ce9464f3e1dc9d8ac4d63015efddf12ccdb30242e135f35c">executable</a> = 1U &lt;&lt; 10U, <span class="comment">//!&lt; The backing storage is in fact an executable program binary.</span></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="comment"></span> <a class="code" href="structafio__v2__xxx_1_1section__handle_1_1flag__base.html#a5b790e66402ef3a07ce9464f3e1dc9d8a091dabebebe6745fe9c1ed2901c125f2">singleton</a> = 1U &lt;&lt; 11U, <span class="comment">//!&lt; A single instance of this section is to be shared by all processes using the same backing file.</span></div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <a class="code" href="structafio__v2__xxx_1_1section__handle_1_1flag__base.html#a5b790e66402ef3a07ce9464f3e1dc9d8a13b22e159d85ac0067a3aac0f7255acd">barrier_on_close</a> = 1U &lt;&lt; 16U, <span class="comment">//!&lt; Maps of this section, if writable, issue a `barrier()` when destructed blocking until data (not metadata) reaches physical storage.</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="comment"></span> <a class="code" href="structafio__v2__xxx_1_1section__handle_1_1flag__base.html#a5b790e66402ef3a07ce9464f3e1dc9d8a1e60c3188179bfa97299536cd051fcb9">nvram</a> = 1U &lt;&lt; 17U, <span class="comment">//!&lt; This section is of non-volatile RAM</span></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="comment">// NOTE: IF UPDATING THIS UPDATE THE std::ostream PRINTER BELOW!!!</span></div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; readwrite = (read | <a class="code" href="structafio__v2__xxx_1_1section__handle_1_1flag__base.html#a5b790e66402ef3a07ce9464f3e1dc9d8a883f4e2f10f711e329d8389682550a71">write</a>)};</div><div class="ttc" id="structafio__v2__xxx_1_1section__handle_1_1flag__base_html_a5b790e66402ef3a07ce9464f3e1dc9d8a1e60c3188179bfa97299536cd051fcb9"><div class="ttname"><a href="structafio__v2__xxx_1_1section__handle_1_1flag__base.html#a5b790e66402ef3a07ce9464f3e1dc9d8a1e60c3188179bfa97299536cd051fcb9">afio_v2_xxx::section_handle::flag_base::nvram</a></div><div class="ttdoc">This section is of non-volatile RAM. </div><div class="ttdef"><b>Definition:</b> map_handle.hpp:70</div></div>
+<div class="ttc" id="structafio__v2__xxx_1_1section__handle_1_1flag__base_html_a5b790e66402ef3a07ce9464f3e1dc9d8aa7b8e12448e73233d3631a6f8c2bb475"><div class="ttname"><a href="structafio__v2__xxx_1_1section__handle_1_1flag__base.html#a5b790e66402ef3a07ce9464f3e1dc9d8aa7b8e12448e73233d3631a6f8c2bb475">afio_v2_xxx::section_handle::flag_base::cow</a></div><div class="ttdoc">Memory views can be copy on written. </div><div class="ttdef"><b>Definition:</b> map_handle.hpp:61</div></div>
<div class="ttc" id="structafio__v2__xxx_1_1section__handle_1_1flag__base_html_a5b790e66402ef3a07ce9464f3e1dc9d8a13b22e159d85ac0067a3aac0f7255acd"><div class="ttname"><a href="structafio__v2__xxx_1_1section__handle_1_1flag__base.html#a5b790e66402ef3a07ce9464f3e1dc9d8a13b22e159d85ac0067a3aac0f7255acd">afio_v2_xxx::section_handle::flag_base::barrier_on_close</a></div><div class="ttdoc">Maps of this section, if writable, issue a barrier() when destructed blocking until data (not metadat...</div><div class="ttdef"><b>Definition:</b> map_handle.hpp:69</div></div>
<div class="ttc" id="structafio__v2__xxx_1_1section__handle_1_1flag__base_html_a5b790e66402ef3a07ce9464f3e1dc9d8a5de9274683882ee1d0584d535ec4959a"><div class="ttname"><a href="structafio__v2__xxx_1_1section__handle_1_1flag__base.html#a5b790e66402ef3a07ce9464f3e1dc9d8a5de9274683882ee1d0584d535ec4959a">afio_v2_xxx::section_handle::flag_base::read</a></div><div class="ttdoc">Memory views can be read. </div><div class="ttdef"><b>Definition:</b> map_handle.hpp:59</div></div>
<div class="ttc" id="structafio__v2__xxx_1_1section__handle_1_1flag__base_html_a5b790e66402ef3a07ce9464f3e1dc9d8a522b281f854fe92d7ea674d2d8cc4be2"><div class="ttname"><a href="structafio__v2__xxx_1_1section__handle_1_1flag__base.html#a5b790e66402ef3a07ce9464f3e1dc9d8a522b281f854fe92d7ea674d2d8cc4be2">afio_v2_xxx::section_handle::flag_base::prefault</a></div><div class="ttdoc">Prefault, as if by reading every page, any views of memory upon creation. </div><div class="ttdef"><b>Definition:</b> map_handle.hpp:65</div></div>
diff --git a/structafio__v2__xxx_1_1section__handle_1_1flag__base.js b/structafio__v2__xxx_1_1section__handle_1_1flag__base.js
index fbc4a658..ca939168 100644
--- a/structafio__v2__xxx_1_1section__handle_1_1flag__base.js
+++ b/structafio__v2__xxx_1_1section__handle_1_1flag__base.js
@@ -11,6 +11,7 @@ var structafio__v2__xxx_1_1section__handle_1_1flag__base =
[ "executable", "structafio__v2__xxx_1_1section__handle_1_1flag__base.html#a5b790e66402ef3a07ce9464f3e1dc9d8ac4d63015efddf12ccdb30242e135f35c", null ],
[ "singleton", "structafio__v2__xxx_1_1section__handle_1_1flag__base.html#a5b790e66402ef3a07ce9464f3e1dc9d8a091dabebebe6745fe9c1ed2901c125f2", null ],
[ "barrier_on_close", "structafio__v2__xxx_1_1section__handle_1_1flag__base.html#a5b790e66402ef3a07ce9464f3e1dc9d8a13b22e159d85ac0067a3aac0f7255acd", null ],
+ [ "nvram", "structafio__v2__xxx_1_1section__handle_1_1flag__base.html#a5b790e66402ef3a07ce9464f3e1dc9d8a1e60c3188179bfa97299536cd051fcb9", null ],
[ "readwrite", "structafio__v2__xxx_1_1section__handle_1_1flag__base.html#a5b790e66402ef3a07ce9464f3e1dc9d8a804eada7d6163846f9e8a240d734a761", null ]
] ]
]; \ No newline at end of file
diff --git a/structafio__v2__xxx_1_1storage__profile_1_1storage__profile.html b/structafio__v2__xxx_1_1storage__profile_1_1storage__profile.html
index 8dc252e1..facec489 100644
--- a/structafio__v2__xxx_1_1storage__profile_1_1storage__profile.html
+++ b/structafio__v2__xxx_1_1storage__profile_1_1storage__profile.html
@@ -358,49 +358,49 @@ Public Attributes</h2></td></tr>
<a class="el" href="structafio__v2__xxx_1_1storage__profile_1_1item.html">item</a>&lt; unsigned long long &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>readwrite_qd4_99999</b> = {&quot;latency:readwrite:qd4:99.999%&quot;, latency::readwrite_qd4, &quot;The nanoseconds to 75% <a class="el" href="structafio__v2__xxx_1_1storage__profile_1_1storage__profile.html#aa3040d68a929247da822c74600fb977d">read</a> 25% <a class="el" href="structafio__v2__xxx_1_1storage__profile_1_1storage__profile.html#a9811705f9110d7dae69e621a67a39ec8">write</a> 4Kb at a total queue depth of 4 (99.999% of the time)&quot;}</td></tr>
<tr class="separator:ac79ca91d333bee6cf9cffc15a01b0f9d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3743cc8965233e2d4747c6d43cdf2f38"><td class="memItemLeft" align="right" valign="top"><a id="a3743cc8965233e2d4747c6d43cdf2f38"></a>
-<a class="el" href="structafio__v2__xxx_1_1storage__profile_1_1item.html">item</a>&lt; unsigned long long &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>create_file_warm_racefree_0b</b> = {&quot;response_time:race_free:warm_cache:create_file:0b&quot;, response_time::traversal_warm_racefree_0b, &quot;The average nanoseconds to create a 0 byte <a class="el" href="namespaceafio__v2__xxx.html#a84b5a9fc93107c673160b41fff151938">file</a> (warm cache, race free)&quot;}</td></tr>
+<a class="el" href="structafio__v2__xxx_1_1storage__profile_1_1item.html">item</a>&lt; unsigned long long &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>create_file_warm_racefree_0b</b> = {&quot;response_time:race_free:warm_cache:create_file:0b&quot;, response_time::traversal_warm_racefree_0b, &quot;The average nanoseconds to create a 0 byte <a class="el" href="namespaceafio__v2__xxx.html#ab92ca63383ef7fe58af4620570d12803">file</a> (warm cache, race free)&quot;}</td></tr>
<tr class="separator:a3743cc8965233e2d4747c6d43cdf2f38"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeb2ee13a81f3ca5ed1877433895e4563"><td class="memItemLeft" align="right" valign="top"><a id="aeb2ee13a81f3ca5ed1877433895e4563"></a>
-<a class="el" href="structafio__v2__xxx_1_1storage__profile_1_1item.html">item</a>&lt; unsigned long long &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>enumerate_file_warm_racefree_0b</b> = {&quot;response_time:race_free:warm_cache:enumerate_file:0b&quot;, response_time::traversal_warm_racefree_0b, &quot;The average nanoseconds to <a class="el" href="namespaceafio__v2__xxx.html#a275b97722fe32f3946d8b23206ffb8da">enumerate</a> a 0 byte <a class="el" href="namespaceafio__v2__xxx.html#a84b5a9fc93107c673160b41fff151938">file</a> (warm cache, race free)&quot;}</td></tr>
+<a class="el" href="structafio__v2__xxx_1_1storage__profile_1_1item.html">item</a>&lt; unsigned long long &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>enumerate_file_warm_racefree_0b</b> = {&quot;response_time:race_free:warm_cache:enumerate_file:0b&quot;, response_time::traversal_warm_racefree_0b, &quot;The average nanoseconds to <a class="el" href="namespaceafio__v2__xxx.html#a275b97722fe32f3946d8b23206ffb8da">enumerate</a> a 0 byte <a class="el" href="namespaceafio__v2__xxx.html#ab92ca63383ef7fe58af4620570d12803">file</a> (warm cache, race free)&quot;}</td></tr>
<tr class="separator:aeb2ee13a81f3ca5ed1877433895e4563"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a12922ba6fbde823f98f9b55a2480311b"><td class="memItemLeft" align="right" valign="top"><a id="a12922ba6fbde823f98f9b55a2480311b"></a>
-<a class="el" href="structafio__v2__xxx_1_1storage__profile_1_1item.html">item</a>&lt; unsigned long long &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>open_file_read_warm_racefree_0b</b> = {&quot;response_time:race_free:warm_cache:open_file_read:0b&quot;, response_time::traversal_warm_racefree_0b, &quot;The average nanoseconds to open a 0 byte <a class="el" href="namespaceafio__v2__xxx.html#a84b5a9fc93107c673160b41fff151938">file</a> for reading (warm cache, race free)&quot;}</td></tr>
+<a class="el" href="structafio__v2__xxx_1_1storage__profile_1_1item.html">item</a>&lt; unsigned long long &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>open_file_read_warm_racefree_0b</b> = {&quot;response_time:race_free:warm_cache:open_file_read:0b&quot;, response_time::traversal_warm_racefree_0b, &quot;The average nanoseconds to open a 0 byte <a class="el" href="namespaceafio__v2__xxx.html#ab92ca63383ef7fe58af4620570d12803">file</a> for reading (warm cache, race free)&quot;}</td></tr>
<tr class="separator:a12922ba6fbde823f98f9b55a2480311b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a39e867ced7f37806137081b6c21981ff"><td class="memItemLeft" align="right" valign="top"><a id="a39e867ced7f37806137081b6c21981ff"></a>
-<a class="el" href="structafio__v2__xxx_1_1storage__profile_1_1item.html">item</a>&lt; unsigned long long &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>open_file_write_warm_racefree_0b</b> = {&quot;response_time:race_free:warm_cache:open_file_write:0b&quot;, response_time::traversal_warm_racefree_0b, &quot;The average nanoseconds to open a 0 byte <a class="el" href="namespaceafio__v2__xxx.html#a84b5a9fc93107c673160b41fff151938">file</a> for writing (warm cache, race free)&quot;}</td></tr>
+<a class="el" href="structafio__v2__xxx_1_1storage__profile_1_1item.html">item</a>&lt; unsigned long long &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>open_file_write_warm_racefree_0b</b> = {&quot;response_time:race_free:warm_cache:open_file_write:0b&quot;, response_time::traversal_warm_racefree_0b, &quot;The average nanoseconds to open a 0 byte <a class="el" href="namespaceafio__v2__xxx.html#ab92ca63383ef7fe58af4620570d12803">file</a> for writing (warm cache, race free)&quot;}</td></tr>
<tr class="separator:a39e867ced7f37806137081b6c21981ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abc589d73afeb2e8698aa1a159c7c5747"><td class="memItemLeft" align="right" valign="top"><a id="abc589d73afeb2e8698aa1a159c7c5747"></a>
-<a class="el" href="structafio__v2__xxx_1_1storage__profile_1_1item.html">item</a>&lt; unsigned long long &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>delete_file_warm_racefree_0b</b> = {&quot;response_time:race_free:warm_cache:delete_file:0b&quot;, response_time::traversal_warm_racefree_0b, &quot;The average nanoseconds to delete a 0 byte <a class="el" href="namespaceafio__v2__xxx.html#a84b5a9fc93107c673160b41fff151938">file</a> (warm cache, race free)&quot;}</td></tr>
+<a class="el" href="structafio__v2__xxx_1_1storage__profile_1_1item.html">item</a>&lt; unsigned long long &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>delete_file_warm_racefree_0b</b> = {&quot;response_time:race_free:warm_cache:delete_file:0b&quot;, response_time::traversal_warm_racefree_0b, &quot;The average nanoseconds to delete a 0 byte <a class="el" href="namespaceafio__v2__xxx.html#ab92ca63383ef7fe58af4620570d12803">file</a> (warm cache, race free)&quot;}</td></tr>
<tr class="separator:abc589d73afeb2e8698aa1a159c7c5747"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5607dc3a379a1fa3db1d65930d6d60aa"><td class="memItemLeft" align="right" valign="top"><a id="a5607dc3a379a1fa3db1d65930d6d60aa"></a>
-<a class="el" href="structafio__v2__xxx_1_1storage__profile_1_1item.html">item</a>&lt; unsigned long long &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>create_file_warm_nonracefree_0b</b> = {&quot;response_time:non_race_free:warm_cache:create_file:0b&quot;, response_time::traversal_warm_nonracefree_0b, &quot;The average nanoseconds to create a 0 byte <a class="el" href="namespaceafio__v2__xxx.html#a84b5a9fc93107c673160b41fff151938">file</a> (warm cache, non race free)&quot;}</td></tr>
+<a class="el" href="structafio__v2__xxx_1_1storage__profile_1_1item.html">item</a>&lt; unsigned long long &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>create_file_warm_nonracefree_0b</b> = {&quot;response_time:non_race_free:warm_cache:create_file:0b&quot;, response_time::traversal_warm_nonracefree_0b, &quot;The average nanoseconds to create a 0 byte <a class="el" href="namespaceafio__v2__xxx.html#ab92ca63383ef7fe58af4620570d12803">file</a> (warm cache, non race free)&quot;}</td></tr>
<tr class="separator:a5607dc3a379a1fa3db1d65930d6d60aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afea68abeef29cc28bc9da0014edd3d31"><td class="memItemLeft" align="right" valign="top"><a id="afea68abeef29cc28bc9da0014edd3d31"></a>
-<a class="el" href="structafio__v2__xxx_1_1storage__profile_1_1item.html">item</a>&lt; unsigned long long &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>enumerate_file_warm_nonracefree_0b</b> = {&quot;response_time:non_race_free:warm_cache:enumerate_file:0b&quot;, response_time::traversal_warm_nonracefree_0b, &quot;The average nanoseconds to <a class="el" href="namespaceafio__v2__xxx.html#a275b97722fe32f3946d8b23206ffb8da">enumerate</a> a 0 byte <a class="el" href="namespaceafio__v2__xxx.html#a84b5a9fc93107c673160b41fff151938">file</a> (warm cache, non race free)&quot;}</td></tr>
+<a class="el" href="structafio__v2__xxx_1_1storage__profile_1_1item.html">item</a>&lt; unsigned long long &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>enumerate_file_warm_nonracefree_0b</b> = {&quot;response_time:non_race_free:warm_cache:enumerate_file:0b&quot;, response_time::traversal_warm_nonracefree_0b, &quot;The average nanoseconds to <a class="el" href="namespaceafio__v2__xxx.html#a275b97722fe32f3946d8b23206ffb8da">enumerate</a> a 0 byte <a class="el" href="namespaceafio__v2__xxx.html#ab92ca63383ef7fe58af4620570d12803">file</a> (warm cache, non race free)&quot;}</td></tr>
<tr class="separator:afea68abeef29cc28bc9da0014edd3d31"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a263c711b332017bddd06d28b9414afff"><td class="memItemLeft" align="right" valign="top"><a id="a263c711b332017bddd06d28b9414afff"></a>
-<a class="el" href="structafio__v2__xxx_1_1storage__profile_1_1item.html">item</a>&lt; unsigned long long &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>open_file_read_warm_nonracefree_0b</b> = {&quot;response_time:non_race_free:warm_cache:open_file_read:0b&quot;, response_time::traversal_warm_nonracefree_0b, &quot;The average nanoseconds to open a 0 byte <a class="el" href="namespaceafio__v2__xxx.html#a84b5a9fc93107c673160b41fff151938">file</a> for reading (warm cache, non race free)&quot;}</td></tr>
+<a class="el" href="structafio__v2__xxx_1_1storage__profile_1_1item.html">item</a>&lt; unsigned long long &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>open_file_read_warm_nonracefree_0b</b> = {&quot;response_time:non_race_free:warm_cache:open_file_read:0b&quot;, response_time::traversal_warm_nonracefree_0b, &quot;The average nanoseconds to open a 0 byte <a class="el" href="namespaceafio__v2__xxx.html#ab92ca63383ef7fe58af4620570d12803">file</a> for reading (warm cache, non race free)&quot;}</td></tr>
<tr class="separator:a263c711b332017bddd06d28b9414afff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1a3ffbd085fafb8b10af15830ed1cfc0"><td class="memItemLeft" align="right" valign="top"><a id="a1a3ffbd085fafb8b10af15830ed1cfc0"></a>
-<a class="el" href="structafio__v2__xxx_1_1storage__profile_1_1item.html">item</a>&lt; unsigned long long &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>open_file_write_warm_nonracefree_0b</b> = {&quot;response_time:non_race_free:warm_cache:open_file_write:0b&quot;, response_time::traversal_warm_nonracefree_0b, &quot;The average nanoseconds to open a 0 byte <a class="el" href="namespaceafio__v2__xxx.html#a84b5a9fc93107c673160b41fff151938">file</a> for writing (warm cache, non race free)&quot;}</td></tr>
+<a class="el" href="structafio__v2__xxx_1_1storage__profile_1_1item.html">item</a>&lt; unsigned long long &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>open_file_write_warm_nonracefree_0b</b> = {&quot;response_time:non_race_free:warm_cache:open_file_write:0b&quot;, response_time::traversal_warm_nonracefree_0b, &quot;The average nanoseconds to open a 0 byte <a class="el" href="namespaceafio__v2__xxx.html#ab92ca63383ef7fe58af4620570d12803">file</a> for writing (warm cache, non race free)&quot;}</td></tr>
<tr class="separator:a1a3ffbd085fafb8b10af15830ed1cfc0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa4adfa782aff57fce88803753589ad16"><td class="memItemLeft" align="right" valign="top"><a id="aa4adfa782aff57fce88803753589ad16"></a>
-<a class="el" href="structafio__v2__xxx_1_1storage__profile_1_1item.html">item</a>&lt; unsigned long long &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>delete_file_warm_nonracefree_0b</b> = {&quot;response_time:non_race_free:warm_cache:delete_file:0b&quot;, response_time::traversal_warm_nonracefree_0b, &quot;The average nanoseconds to delete a 0 byte <a class="el" href="namespaceafio__v2__xxx.html#a84b5a9fc93107c673160b41fff151938">file</a> (warm cache, non race free)&quot;}</td></tr>
+<a class="el" href="structafio__v2__xxx_1_1storage__profile_1_1item.html">item</a>&lt; unsigned long long &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>delete_file_warm_nonracefree_0b</b> = {&quot;response_time:non_race_free:warm_cache:delete_file:0b&quot;, response_time::traversal_warm_nonracefree_0b, &quot;The average nanoseconds to delete a 0 byte <a class="el" href="namespaceafio__v2__xxx.html#ab92ca63383ef7fe58af4620570d12803">file</a> (warm cache, non race free)&quot;}</td></tr>
<tr class="separator:aa4adfa782aff57fce88803753589ad16"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a572adadc5fcad439170c965ec4839d75"><td class="memItemLeft" align="right" valign="top"><a id="a572adadc5fcad439170c965ec4839d75"></a>
-<a class="el" href="structafio__v2__xxx_1_1storage__profile_1_1item.html">item</a>&lt; unsigned long long &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>create_file_cold_racefree_0b</b> = {&quot;response_time:race_free:cold_cache:create_file:0b&quot;, response_time::traversal_cold_racefree_0b, &quot;The average nanoseconds to create a 0 byte <a class="el" href="namespaceafio__v2__xxx.html#a84b5a9fc93107c673160b41fff151938">file</a> (cold cache, race free)&quot;}</td></tr>
+<a class="el" href="structafio__v2__xxx_1_1storage__profile_1_1item.html">item</a>&lt; unsigned long long &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>create_file_cold_racefree_0b</b> = {&quot;response_time:race_free:cold_cache:create_file:0b&quot;, response_time::traversal_cold_racefree_0b, &quot;The average nanoseconds to create a 0 byte <a class="el" href="namespaceafio__v2__xxx.html#ab92ca63383ef7fe58af4620570d12803">file</a> (cold cache, race free)&quot;}</td></tr>
<tr class="separator:a572adadc5fcad439170c965ec4839d75"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a961d153d6c9aa3431f1688ca2c932821"><td class="memItemLeft" align="right" valign="top"><a id="a961d153d6c9aa3431f1688ca2c932821"></a>
-<a class="el" href="structafio__v2__xxx_1_1storage__profile_1_1item.html">item</a>&lt; unsigned long long &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>enumerate_file_cold_racefree_0b</b> = {&quot;response_time:race_free:cold_cache:enumerate_file:0b&quot;, response_time::traversal_cold_racefree_0b, &quot;The average nanoseconds to <a class="el" href="namespaceafio__v2__xxx.html#a275b97722fe32f3946d8b23206ffb8da">enumerate</a> a 0 byte <a class="el" href="namespaceafio__v2__xxx.html#a84b5a9fc93107c673160b41fff151938">file</a> (cold cache, race free)&quot;}</td></tr>
+<a class="el" href="structafio__v2__xxx_1_1storage__profile_1_1item.html">item</a>&lt; unsigned long long &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>enumerate_file_cold_racefree_0b</b> = {&quot;response_time:race_free:cold_cache:enumerate_file:0b&quot;, response_time::traversal_cold_racefree_0b, &quot;The average nanoseconds to <a class="el" href="namespaceafio__v2__xxx.html#a275b97722fe32f3946d8b23206ffb8da">enumerate</a> a 0 byte <a class="el" href="namespaceafio__v2__xxx.html#ab92ca63383ef7fe58af4620570d12803">file</a> (cold cache, race free)&quot;}</td></tr>
<tr class="separator:a961d153d6c9aa3431f1688ca2c932821"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab23d6af7a012f3dc2aa64b0b4e05c1d7"><td class="memItemLeft" align="right" valign="top"><a id="ab23d6af7a012f3dc2aa64b0b4e05c1d7"></a>
-<a class="el" href="structafio__v2__xxx_1_1storage__profile_1_1item.html">item</a>&lt; unsigned long long &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>open_file_read_cold_racefree_0b</b> = {&quot;response_time:race_free:cold_cache:open_file_read:0b&quot;, response_time::traversal_cold_racefree_0b, &quot;The average nanoseconds to open a 0 byte <a class="el" href="namespaceafio__v2__xxx.html#a84b5a9fc93107c673160b41fff151938">file</a> for reading (cold cache, race free)&quot;}</td></tr>
+<a class="el" href="structafio__v2__xxx_1_1storage__profile_1_1item.html">item</a>&lt; unsigned long long &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>open_file_read_cold_racefree_0b</b> = {&quot;response_time:race_free:cold_cache:open_file_read:0b&quot;, response_time::traversal_cold_racefree_0b, &quot;The average nanoseconds to open a 0 byte <a class="el" href="namespaceafio__v2__xxx.html#ab92ca63383ef7fe58af4620570d12803">file</a> for reading (cold cache, race free)&quot;}</td></tr>
<tr class="separator:ab23d6af7a012f3dc2aa64b0b4e05c1d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a41fa145d424630b3b0c9d0ef10176d59"><td class="memItemLeft" align="right" valign="top"><a id="a41fa145d424630b3b0c9d0ef10176d59"></a>
-<a class="el" href="structafio__v2__xxx_1_1storage__profile_1_1item.html">item</a>&lt; unsigned long long &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>open_file_write_cold_racefree_0b</b> = {&quot;response_time:race_free:cold_cache:open_file_write:0b&quot;, response_time::traversal_cold_racefree_0b, &quot;The average nanoseconds to open a 0 byte <a class="el" href="namespaceafio__v2__xxx.html#a84b5a9fc93107c673160b41fff151938">file</a> for writing (cold cache, race free)&quot;}</td></tr>
+<a class="el" href="structafio__v2__xxx_1_1storage__profile_1_1item.html">item</a>&lt; unsigned long long &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>open_file_write_cold_racefree_0b</b> = {&quot;response_time:race_free:cold_cache:open_file_write:0b&quot;, response_time::traversal_cold_racefree_0b, &quot;The average nanoseconds to open a 0 byte <a class="el" href="namespaceafio__v2__xxx.html#ab92ca63383ef7fe58af4620570d12803">file</a> for writing (cold cache, race free)&quot;}</td></tr>
<tr class="separator:a41fa145d424630b3b0c9d0ef10176d59"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9de5e8654f5318702f0c77789f33a823"><td class="memItemLeft" align="right" valign="top"><a id="a9de5e8654f5318702f0c77789f33a823"></a>
-<a class="el" href="structafio__v2__xxx_1_1storage__profile_1_1item.html">item</a>&lt; unsigned long long &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>delete_file_cold_racefree_0b</b> = {&quot;response_time:race_free:cold_cache:delete_file:0b&quot;, response_time::traversal_cold_racefree_0b, &quot;The average nanoseconds to delete a 0 byte <a class="el" href="namespaceafio__v2__xxx.html#a84b5a9fc93107c673160b41fff151938">file</a> (cold cache, race free)&quot;}</td></tr>
+<a class="el" href="structafio__v2__xxx_1_1storage__profile_1_1item.html">item</a>&lt; unsigned long long &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>delete_file_cold_racefree_0b</b> = {&quot;response_time:race_free:cold_cache:delete_file:0b&quot;, response_time::traversal_cold_racefree_0b, &quot;The average nanoseconds to delete a 0 byte <a class="el" href="namespaceafio__v2__xxx.html#ab92ca63383ef7fe58af4620570d12803">file</a> (cold cache, race free)&quot;}</td></tr>
<tr class="separator:a9de5e8654f5318702f0c77789f33a823"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>