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>2016-08-25 01:40:04 +0300
committerJenkins nedprod CI <foo@nowhere>2016-08-25 01:40:04 +0300
commitf8ca59ca07f7f70128f22e20b7e39edc95fd5583 (patch)
treecdb2f7aaa5dd08673e5d072ab56b288e4b437e79
parent4bce7e83cb2f04331164a2e3196cf6951adcef4e (diff)
Travis CI updates documentation
-rw-r--r--annotated.html4
-rw-r--r--byte__ranges_8hpp_source.html290
-rw-r--r--classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1atomic__append.html6
-rw-r--r--classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html3
-rw-r--r--classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map-members.html147
-rw-r--r--classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html260
-rw-r--r--classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.js20
-rw-r--r--classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.pngbin0 -> 1221 bytes
-rw-r--r--classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html1
-rw-r--r--classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.pngbin2096 -> 2451 bytes
-rw-r--r--classboost_1_1afio_1_1v2__xxx_1_1async__file__handle-members.html39
-rw-r--r--classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html168
-rw-r--r--classboost_1_1afio_1_1v2__xxx_1_1file__handle-members.html33
-rw-r--r--classboost_1_1afio_1_1v2__xxx_1_1file__handle.html168
-rw-r--r--classboost_1_1afio_1_1v2__xxx_1_1map__handle.html2
-rw-r--r--classes.html36
-rw-r--r--dir_9fa9dee9180068c16577875815e1b7dd.html3
-rw-r--r--dir_9fa9dee9180068c16577875815e1b7dd.js4
-rw-r--r--dir_a38a52e61a9b0b56a6ddbdae4d4f5a3e.js4
-rw-r--r--file__handle_8hpp.html10
-rw-r--r--file__handle_8hpp.js5
-rw-r--r--file__handle_8hpp_source.html219
-rw-r--r--files.html33
-rw-r--r--functions_0x65.html17
-rw-r--r--functions_0x66.html5
-rw-r--r--functions_0x68.html1
-rw-r--r--functions_0x6d.html3
-rw-r--r--functions_0x6f.html11
-rw-r--r--functions_0x72.html18
-rw-r--r--functions_0x74.html11
-rw-r--r--functions_0x75.html1
-rw-r--r--functions_func_0x66.html3
-rw-r--r--functions_func_0x68.html3
-rw-r--r--functions_func_0x6d.html3
-rw-r--r--functions_func_0x6f.html11
-rw-r--r--functions_func_0x72.html15
-rw-r--r--functions_func_0x74.html10
-rw-r--r--functions_func_0x75.html3
-rw-r--r--functions_type.html10
-rw-r--r--hierarchy.html100
-rw-r--r--hierarchy.js4
-rw-r--r--memory__map_8hpp.html164
-rw-r--r--memory__map_8hpp_source.html447
-rw-r--r--namespaceboost_1_1afio_1_1v2__xxx.html32
-rw-r--r--namespaceboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex.html3
-rw-r--r--namespaceboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex.js3
-rw-r--r--namespacemembers.html3
-rw-r--r--namespacemembers_func.html3
-rw-r--r--navtree.js8
-rw-r--r--navtreeindex0.js36
-rw-r--r--navtreeindex1.js36
-rw-r--r--navtreeindex2.js38
-rw-r--r--navtreeindex3.js52
-rw-r--r--navtreeindex4.js23
-rw-r--r--search/all_5f.js1
-rw-r--r--search/all_65.js4
-rw-r--r--search/all_66.js4
-rw-r--r--search/all_68.js2
-rw-r--r--search/all_6d.js5
-rw-r--r--search/all_6f.js2
-rw-r--r--search/all_72.js1
-rw-r--r--search/all_74.js2
-rw-r--r--search/all_75.js2
-rw-r--r--search/classes_5f.html26
-rw-r--r--search/classes_5f.js4
-rw-r--r--search/classes_6d.js3
-rw-r--r--search/files_6d.js3
-rw-r--r--search/functions_66.js4
-rw-r--r--search/functions_68.js2
-rw-r--r--search/functions_6d.js3
-rw-r--r--search/functions_6f.js2
-rw-r--r--search/functions_72.js1
-rw-r--r--search/functions_74.js2
-rw-r--r--search/functions_75.js2
-rw-r--r--search/search.js2
-rw-r--r--search/typedefs_65.js4
-rw-r--r--structboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map_1_1__entity__idx-members.html129
-rw-r--r--structboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map_1_1__entity__idx.html141
-rw-r--r--structboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map_1_1__entity__idx.js5
-rw-r--r--todo.html8
-rw-r--r--v2_80_2afio_8hpp.html2
-rw-r--r--v2_80_2afio_8hpp_source.html8
82 files changed, 2387 insertions, 519 deletions
diff --git a/annotated.html b/annotated.html
index 9e9ddaf9..2fd796ab 100644
--- a/annotated.html
+++ b/annotated.html
@@ -122,7 +122,9 @@ $(document).ready(function(){initNavTree('annotated.html','');});
<tr id="row_0_0_0_0_0_1_0_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classboost_1_1afio_1_1v2__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_0_0_0_1_1_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structboost_1_1afio_1_1v2__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_0_0_0_2_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html" target="_self">byte_ranges</a></td><td class="desc">Many entity shared/exclusive file system based lock</td></tr>
-<tr id="row_0_0_0_0_0_3_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1lock__files.html" target="_self">lock_files</a></td><td class="desc">Many entity exclusive compatibility file system based lock</td></tr>
+<tr id="row_0_0_0_0_0_3_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1lock__files.html" target="_self">lock_files</a></td><td class="desc">Many entity exclusive compatibility file system based lock</td></tr>
+<tr id="row_0_0_0_0_0_4_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img id="arr_0_0_0_0_0_4_" src="ftv2mlastnode.png" alt="\" width="16" height="22" onclick="toggleFolder('0_0_0_0_0_4_')"/><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html" target="_self">memory_map</a></td><td class="desc">Many entity memory mapped shared/exclusive file system based lock</td></tr>
+<tr id="row_0_0_0_0_0_4_0_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map_1_1__entity__idx.html" target="_self">_entity_idx</a></td><td class="desc"></td></tr>
<tr id="row_0_0_0_1_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img id="arr_0_0_0_1_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('0_0_0_1_')"/><img src="ftv2ns.png" alt="N" width="24" height="22" /><a class="el" href="namespaceboost_1_1afio_1_1v2__xxx_1_1storage__profile.html" target="_self">storage_profile</a></td><td class="desc">YAML databaseable empirical testing of a storage's behaviour</td></tr>
<tr id="row_0_0_0_1_0_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1item__base.html" target="_self">item_base</a></td><td class="desc">Common base class for items</td></tr>
<tr id="row_0_0_0_1_1_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1item.html" target="_self">item</a></td><td class="desc">A tag-value item in the storage profile where T is the type of value stored</td></tr>
diff --git a/byte__ranges_8hpp_source.html b/byte__ranges_8hpp_source.html
index 0cbb4da1..5384a74c 100644
--- a/byte__ranges_8hpp_source.html
+++ b/byte__ranges_8hpp_source.html
@@ -152,152 +152,152 @@ $(document).ready(function(){initNavTree('byte__ranges_8hpp_source.html','');});
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;{</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">namespace </span>shared_fs_mutex</div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; {</div>
-<div class="line"><a name="l00071"></a><span class="lineno"><a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html"> 71</a></span>&#160; <span class="keyword">class </span><a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html" title="Many entity shared/exclusive file system based lock.">byte_ranges</a> : <span class="keyword">public</span> <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html" title="Abstract base class for an object which protects shared filing system resources.">shared_fs_mutex</a></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; <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html" title="A handle to a regular file or device, kept data layout compatible with async_file_handle.">file_handle</a> _h;</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html" title="Many entity shared/exclusive file system based lock.">byte_ranges</a>(<a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html" title="A handle to a regular file or device, kept data layout compatible with async_file_handle.">file_handle</a> &amp;&amp;h)</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; : _h(std::move(h))</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; }</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html" title="Many entity shared/exclusive file system based lock.">byte_ranges</a>(<span class="keyword">const</span> <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html" title="Many entity shared/exclusive file system based lock.">byte_ranges</a> &amp;) = <span class="keyword">delete</span>;</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html" title="Many entity shared/exclusive file system based lock.">byte_ranges</a> &amp;operator=(<span class="keyword">const</span> <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html" title="Many entity shared/exclusive file system based lock.">byte_ranges</a> &amp;) = <span class="keyword">delete</span>;</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00084"></a><span class="lineno"><a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html#a31c990c55f31e5b6d2cb45af1ae38b99"> 84</a></span>&#160; <span class="keyword">using</span> <a class="code" href="structboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex_1_1entity__type.html" title="The type of an entity id.">entity_type</a> = <a class="code" href="structboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex_1_1entity__type.html" title="The type of an entity id.">shared_fs_mutex::entity_type</a>;</div>
-<div class="line"><a name="l00086"></a><span class="lineno"><a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html#a20147a7ddd0a3553bdcefeda4863b846"> 86</a></span>&#160; <span class="keyword">using</span> <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html#a02af43575220c42252610c818e109b72" title="The type of a sequence of entities.">entities_type</a> = <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html#a02af43575220c42252610c818e109b72" title="The type of a sequence of entities.">shared_fs_mutex::entities_type</a>;</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div>
-<div class="line"><a name="l00089"></a><span class="lineno"><a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html#ac966cdd44d405cdc1ee1fe4e43690d0b"> 89</a></span>&#160; <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html#ac966cdd44d405cdc1ee1fe4e43690d0b" title="Move constructor.">byte_ranges</a>(<a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html" title="Many entity shared/exclusive file system based lock.">byte_ranges</a> &amp;&amp;o) noexcept : _h(std::move(o._h)) {}</div>
-<div class="line"><a name="l00091"></a><span class="lineno"><a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html#af40acef1ee8401d03f0356b6782257b9"> 91</a></span>&#160; <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html" title="Many entity shared/exclusive file system based lock.">byte_ranges</a> &amp;operator=(<a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html" title="Many entity shared/exclusive file system based lock.">byte_ranges</a> &amp;&amp;o) noexcept</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; {</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; _h = std::move(o._h);</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; }</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="comment">//[[bindlib::make_free]]</span></div>
-<div class="line"><a name="l00099"></a><span class="lineno"><a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html#ad5ec22e222542607ce161d666506fb2b"> 99</a></span>&#160; <span class="keyword">static</span> <a class="code" href="namespaceboost_1_1afio_1_1v2__xxx.html#ac8d06ecaa9660e7251c1251d88c1305c" title="Please see https://ned14.github.io/boost.outcome/classboost_1_1outcome_1_1v1__xxx_1_1basic__monad.html.">result&lt;byte_ranges&gt;</a> fs_mutex_byte_ranges(file_handle::path_type lockfile) noexcept</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; {</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; BOOST_AFIO_LOG_FUNCTION_CALL(0);</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; BOOST_OUTCOME_FILTER_ERROR(ret, file_handle::file(std::move(lockfile), file_handle::mode::write, file_handle::creation::if_needed, file_handle::caching::temporary, file_handle::flag::win_delete_on_last_close));</div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html" title="Many entity shared/exclusive file system based lock.">byte_ranges</a>(std::move(ret));</div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; }</div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div>
-<div class="line"><a name="l00107"></a><span class="lineno"><a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html#ab569324e766b934eeb6017a9a86544e9"> 107</a></span>&#160; <span class="keyword">const</span> <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html" title="A handle to a regular file or device, kept data layout compatible with async_file_handle.">file_handle</a> &amp;<a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html#ab569324e766b934eeb6017a9a86544e9" title="Return the handle to file being used for this lock.">handle</a>() const noexcept { <span class="keywordflow">return</span> _h; }</div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keyword">protected</span>:</div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceboost_1_1afio_1_1v2__xxx.html#ac8d06ecaa9660e7251c1251d88c1305c" title="Please see https://ned14.github.io/boost.outcome/classboost_1_1outcome_1_1v1__xxx_1_1basic__monad.html.">result&lt;void&gt;</a> _lock(entities_guard &amp;out, <a class="code" href="structboost_1_1afio_1_1v2__xxx_1_1deadline.html" title="A time deadline in either relative-to-now or absolute (system clock) terms.">deadline</a> d, <span class="keywordtype">bool</span> spin_not_sleep) noexcept <span class="keyword">override</span> <span class="keyword">final</span></div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; {</div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; BOOST_AFIO_LOG_FUNCTION_CALL(<span class="keyword">this</span>);</div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; stl11::chrono::steady_clock::time_point began_steady;</div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; stl11::chrono::system_clock::time_point end_utc;</div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keywordflow">if</span>(d)</div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; {</div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordflow">if</span>((d).steady)</div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; began_steady = stl11::chrono::steady_clock::now();</div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordflow">else</span></div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; end_utc = (d).to_time_point();</div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; }</div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="comment">// Fire this if an error occurs</span></div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keyword">auto</span> disableunlock = detail::Undoer([&amp;] { out.release(); });</div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keywordtype">size_t</span> n;</div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keywordflow">for</span>(;;)</div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; {</div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keywordtype">size_t</span> was_contended = (size_t) -1;</div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; {</div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keyword">auto</span> undo = detail::Undoer([&amp;] {</div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="comment">// 0 to (n-1) need to be closed</span></div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keywordflow">if</span>(n &gt; 0)</div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; {</div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; --n;</div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="comment">// Now 0 to n needs to be closed</span></div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keywordflow">for</span>(; n &gt; 0; n--)</div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; _h.unlock(out.entities[n].value, 1);</div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; _h.unlock(out.entities[0].value, 1);</div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; }</div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; });</div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keywordflow">for</span>(n = 0; n &lt; out.entities.size(); n++)</div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; {</div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; deadline nd;</div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="comment">// Only for very first entity will we sleep until its lock becomes available</span></div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keywordflow">if</span>(n)</div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; nd = deadline(stl11::chrono::seconds(0));</div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keywordflow">else</span></div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; {</div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; nd = deadline();</div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keywordflow">if</span>(d)</div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; {</div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keywordflow">if</span>((d).steady)</div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; {</div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; stl11::chrono::nanoseconds ns = stl11::chrono::duration_cast&lt;stl11::chrono::nanoseconds&gt;((began_steady + stl11::chrono::nanoseconds((d).nsecs)) - stl11::chrono::steady_clock::now());</div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keywordflow">if</span>(ns.count() &lt; 0)</div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; (nd).nsecs = 0;</div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keywordflow">else</span></div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; (nd).nsecs = ns.count();</div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; }</div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keywordflow">else</span></div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; (nd) = (d);</div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; }</div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; }</div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keyword">auto</span> <a class="code" href="namespaceboost_1_1afio_1_1v2__xxx.html#acdfe1e45abb03d934ed49eeadc3252e3" title="Please see https://ned14.github.io/boost.outcome/classboost_1_1outcome_1_1v1__xxx_1_1basic__monad.html.">outcome</a> = _h.lock(out.entities[n].value, 1, out.entities[n].exclusive, nd);</div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keywordflow">if</span>(!<a class="code" href="namespaceboost_1_1afio_1_1v2__xxx.html#acdfe1e45abb03d934ed49eeadc3252e3" title="Please see https://ned14.github.io/boost.outcome/classboost_1_1outcome_1_1v1__xxx_1_1basic__monad.html.">outcome</a>)</div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; {</div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; was_contended = n;</div>
-<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keywordflow">goto</span> failed;</div>
-<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; }</div>
-<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <a class="code" href="namespaceboost_1_1afio_1_1v2__xxx.html#acdfe1e45abb03d934ed49eeadc3252e3" title="Please see https://ned14.github.io/boost.outcome/classboost_1_1outcome_1_1v1__xxx_1_1basic__monad.html.">outcome</a>.get().release();</div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; }</div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="comment">// Everything is locked, exit</span></div>
-<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; undo.dismiss();</div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; disableunlock.dismiss();</div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keywordflow">return</span> make_result&lt;void&gt;();</div>
-<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; }</div>
-<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; failed:</div>
-<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keywordflow">if</span>(d)</div>
-<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; {</div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keywordflow">if</span>((d).steady)</div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; {</div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keywordflow">if</span>(stl11::chrono::steady_clock::now() &gt;= (began_steady + stl11::chrono::nanoseconds((d).nsecs)))</div>
-<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keywordflow">return</span> make_errored_result&lt;void&gt;(ETIMEDOUT);</div>
-<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; }</div>
-<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keywordflow">else</span></div>
-<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; {</div>
-<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keywordflow">if</span>(stl11::chrono::system_clock::now() &gt;= end_utc)</div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keywordflow">return</span> make_errored_result&lt;void&gt;(ETIMEDOUT);</div>
-<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; }</div>
-<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; }</div>
-<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;<span class="preprocessor">#if 1</span></div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;<span class="preprocessor"></span> <span class="comment">// Move was_contended to front and randomise rest of out.entities</span></div>
-<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; std::swap(out.entities[was_contended], out.entities[0]);</div>
-<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keyword">auto</span> front = out.entities.begin();</div>
-<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; ++front;</div>
-<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; std::random_shuffle(front, out.entities.end());</div>
-<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;<span class="preprocessor"></span> std::random_shuffle(out.entities.begin(), out.entities.end());</div>
-<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span>(!spin_not_sleep)</div>
-<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; std::this_thread::yield();</div>
-<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; }</div>
-<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="comment">// return make_result&lt;void&gt;();</span></div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; }</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="keyword">public</span>:</div>
-<div class="line"><a name="l00206"></a><span class="lineno"><a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html#aeff040753a6344db13a37a40a0c4c3f1"> 206</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> unlock(<a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html#a02af43575220c42252610c818e109b72" title="The type of a sequence of entities.">entities_type</a> entities, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span>) noexcept <span class="keyword">override</span> <span class="keyword">final</span></div>
-<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; {</div>
-<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; BOOST_AFIO_LOG_FUNCTION_CALL(<span class="keyword">this</span>);</div>
-<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">const</span> <span class="keyword">auto</span> &amp;i : entities)</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; _h.unlock(i.value, 1);</div>
-<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; }</div>
-<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; }</div>
-<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; };</div>
-<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;</div>
-<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; } <span class="comment">// namespace</span></div>
-<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;} <span class="comment">// namespace</span></div>
-<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;</div>
-<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;<a class="code" href="group__config.html#ga39f521144fef02193249bb7e3b0698fe" title="Expands into the appropriate namespace markup to exit the AFIO v2 namespace.">BOOST_AFIO_V2_NAMESPACE_END</a></div>
+<div class="line"><a name="l00073"></a><span class="lineno"><a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html"> 73</a></span>&#160; <span class="keyword">class </span><a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html" title="Many entity shared/exclusive file system based lock.">byte_ranges</a> : <span class="keyword">public</span> <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html" title="Abstract base class for an object which protects shared filing system resources.">shared_fs_mutex</a></div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; {</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html" title="A handle to a regular file or device, kept data layout compatible with async_file_handle.">file_handle</a> _h;</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html" title="Many entity shared/exclusive file system based lock.">byte_ranges</a>(<a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html" title="A handle to a regular file or device, kept data layout compatible with async_file_handle.">file_handle</a> &amp;&amp;h)</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; : _h(std::move(h))</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; {</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; }</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html" title="Many entity shared/exclusive file system based lock.">byte_ranges</a>(<span class="keyword">const</span> <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html" title="Many entity shared/exclusive file system based lock.">byte_ranges</a> &amp;) = <span class="keyword">delete</span>;</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html" title="Many entity shared/exclusive file system based lock.">byte_ranges</a> &amp;operator=(<span class="keyword">const</span> <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html" title="Many entity shared/exclusive file system based lock.">byte_ranges</a> &amp;) = <span class="keyword">delete</span>;</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00086"></a><span class="lineno"><a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html#a31c990c55f31e5b6d2cb45af1ae38b99"> 86</a></span>&#160; <span class="keyword">using</span> <a class="code" href="structboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex_1_1entity__type.html" title="The type of an entity id.">entity_type</a> = <a class="code" href="structboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex_1_1entity__type.html" title="The type of an entity id.">shared_fs_mutex::entity_type</a>;</div>
+<div class="line"><a name="l00088"></a><span class="lineno"><a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html#a20147a7ddd0a3553bdcefeda4863b846"> 88</a></span>&#160; <span class="keyword">using</span> <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html#a02af43575220c42252610c818e109b72" title="The type of a sequence of entities.">entities_type</a> = <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html#a02af43575220c42252610c818e109b72" title="The type of a sequence of entities.">shared_fs_mutex::entities_type</a>;</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div>
+<div class="line"><a name="l00091"></a><span class="lineno"><a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html#ac966cdd44d405cdc1ee1fe4e43690d0b"> 91</a></span>&#160; <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html#ac966cdd44d405cdc1ee1fe4e43690d0b" title="Move constructor.">byte_ranges</a>(<a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html" title="Many entity shared/exclusive file system based lock.">byte_ranges</a> &amp;&amp;o) noexcept : _h(std::move(o._h)) {}</div>
+<div class="line"><a name="l00093"></a><span class="lineno"><a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html#af40acef1ee8401d03f0356b6782257b9"> 93</a></span>&#160; <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html" title="Many entity shared/exclusive file system based lock.">byte_ranges</a> &amp;operator=(<a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html" title="Many entity shared/exclusive file system based lock.">byte_ranges</a> &amp;&amp;o) noexcept</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; {</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; _h = std::move(o._h);</div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; }</div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="comment">//[[bindlib::make_free]]</span></div>
+<div class="line"><a name="l00101"></a><span class="lineno"><a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html#ad5ec22e222542607ce161d666506fb2b"> 101</a></span>&#160; <span class="keyword">static</span> <a class="code" href="namespaceboost_1_1afio_1_1v2__xxx.html#ac8d06ecaa9660e7251c1251d88c1305c" title="Please see https://ned14.github.io/boost.outcome/classboost_1_1outcome_1_1v1__xxx_1_1basic__monad.html.">result&lt;byte_ranges&gt;</a> fs_mutex_byte_ranges(file_handle::path_type lockfile) noexcept</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; {</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; BOOST_AFIO_LOG_FUNCTION_CALL(0);</div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; BOOST_OUTCOME_FILTER_ERROR(ret, file_handle::file(std::move(lockfile), file_handle::mode::write, file_handle::creation::if_needed, file_handle::caching::temporary, file_handle::flag::win_delete_on_last_close));</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html" title="Many entity shared/exclusive file system based lock.">byte_ranges</a>(std::move(ret));</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; }</div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div>
+<div class="line"><a name="l00109"></a><span class="lineno"><a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html#ab569324e766b934eeb6017a9a86544e9"> 109</a></span>&#160; <span class="keyword">const</span> <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html" title="A handle to a regular file or device, kept data layout compatible with async_file_handle.">file_handle</a> &amp;<a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html#ab569324e766b934eeb6017a9a86544e9" title="Return the handle to file being used for this lock.">handle</a>() const noexcept { <span class="keywordflow">return</span> _h; }</div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keyword">protected</span>:</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceboost_1_1afio_1_1v2__xxx.html#ac8d06ecaa9660e7251c1251d88c1305c" title="Please see https://ned14.github.io/boost.outcome/classboost_1_1outcome_1_1v1__xxx_1_1basic__monad.html.">result&lt;void&gt;</a> _lock(entities_guard &amp;out, <a class="code" href="structboost_1_1afio_1_1v2__xxx_1_1deadline.html" title="A time deadline in either relative-to-now or absolute (system clock) terms.">deadline</a> d, <span class="keywordtype">bool</span> spin_not_sleep) noexcept <span class="keyword">override</span> <span class="keyword">final</span></div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; {</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; BOOST_AFIO_LOG_FUNCTION_CALL(<span class="keyword">this</span>);</div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; stl11::chrono::steady_clock::time_point began_steady;</div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; stl11::chrono::system_clock::time_point end_utc;</div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordflow">if</span>(d)</div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; {</div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordflow">if</span>((d).steady)</div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; began_steady = stl11::chrono::steady_clock::now();</div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; end_utc = (d).to_time_point();</div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; }</div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="comment">// Fire this if an error occurs</span></div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keyword">auto</span> disableunlock = detail::Undoer([&amp;] { out.release(); });</div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keywordtype">size_t</span> n;</div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keywordflow">for</span>(;;)</div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; {</div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keywordtype">size_t</span> was_contended = (size_t) -1;</div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; {</div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keyword">auto</span> undo = detail::Undoer([&amp;] {</div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="comment">// 0 to (n-1) need to be closed</span></div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordflow">if</span>(n &gt; 0)</div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; {</div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; --n;</div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="comment">// Now 0 to n needs to be closed</span></div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keywordflow">for</span>(; n &gt; 0; n--)</div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; _h.unlock(out.entities[n].value, 1);</div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; _h.unlock(out.entities[0].value, 1);</div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; }</div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; });</div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keywordflow">for</span>(n = 0; n &lt; out.entities.size(); n++)</div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; {</div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; deadline nd;</div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="comment">// Only for very first entity will we sleep until its lock becomes available</span></div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keywordflow">if</span>(n)</div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; nd = deadline(stl11::chrono::seconds(0));</div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; {</div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; nd = deadline();</div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keywordflow">if</span>(d)</div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; {</div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keywordflow">if</span>((d).steady)</div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; {</div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; stl11::chrono::nanoseconds ns = stl11::chrono::duration_cast&lt;stl11::chrono::nanoseconds&gt;((began_steady + stl11::chrono::nanoseconds((d).nsecs)) - stl11::chrono::steady_clock::now());</div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keywordflow">if</span>(ns.count() &lt; 0)</div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; (nd).nsecs = 0;</div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; (nd).nsecs = ns.count();</div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; }</div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; (nd) = (d);</div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; }</div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; }</div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keyword">auto</span> <a class="code" href="namespaceboost_1_1afio_1_1v2__xxx.html#acdfe1e45abb03d934ed49eeadc3252e3" title="Please see https://ned14.github.io/boost.outcome/classboost_1_1outcome_1_1v1__xxx_1_1basic__monad.html.">outcome</a> = _h.lock(out.entities[n].value, 1, out.entities[n].exclusive, nd);</div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keywordflow">if</span>(!<a class="code" href="namespaceboost_1_1afio_1_1v2__xxx.html#acdfe1e45abb03d934ed49eeadc3252e3" title="Please see https://ned14.github.io/boost.outcome/classboost_1_1outcome_1_1v1__xxx_1_1basic__monad.html.">outcome</a>)</div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; {</div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; was_contended = n;</div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keywordflow">goto</span> failed;</div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; }</div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <a class="code" href="namespaceboost_1_1afio_1_1v2__xxx.html#acdfe1e45abb03d934ed49eeadc3252e3" title="Please see https://ned14.github.io/boost.outcome/classboost_1_1outcome_1_1v1__xxx_1_1basic__monad.html.">outcome</a>.get().release();</div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; }</div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="comment">// Everything is locked, exit</span></div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; undo.dismiss();</div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; disableunlock.dismiss();</div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keywordflow">return</span> make_result&lt;void&gt;();</div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; }</div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; failed:</div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keywordflow">if</span>(d)</div>
+<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; {</div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keywordflow">if</span>((d).steady)</div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; {</div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keywordflow">if</span>(stl11::chrono::steady_clock::now() &gt;= (began_steady + stl11::chrono::nanoseconds((d).nsecs)))</div>
+<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keywordflow">return</span> make_errored_result&lt;void&gt;(ETIMEDOUT);</div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; }</div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; {</div>
+<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keywordflow">if</span>(stl11::chrono::system_clock::now() &gt;= end_utc)</div>
+<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keywordflow">return</span> make_errored_result&lt;void&gt;(ETIMEDOUT);</div>
+<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; }</div>
+<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; }</div>
+<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;<span class="preprocessor">#if 1</span></div>
+<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;<span class="preprocessor"></span> <span class="comment">// Move was_contended to front and randomise rest of out.entities</span></div>
+<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; std::swap(out.entities[was_contended], out.entities[0]);</div>
+<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keyword">auto</span> front = out.entities.begin();</div>
+<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; ++front;</div>
+<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; std::random_shuffle(front, out.entities.end());</div>
+<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;<span class="preprocessor"></span> std::random_shuffle(out.entities.begin(), out.entities.end());</div>
+<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span>(!spin_not_sleep)</div>
+<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; std::this_thread::yield();</div>
+<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; }</div>
+<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="comment">// return make_result&lt;void&gt;();</span></div>
+<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; }</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="keyword">public</span>:</div>
+<div class="line"><a name="l00208"></a><span class="lineno"><a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html#aeff040753a6344db13a37a40a0c4c3f1"> 208</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> unlock(<a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html#a02af43575220c42252610c818e109b72" title="The type of a sequence of entities.">entities_type</a> entities, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span>) noexcept <span class="keyword">override</span> <span class="keyword">final</span></div>
+<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; {</div>
+<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; BOOST_AFIO_LOG_FUNCTION_CALL(<span class="keyword">this</span>);</div>
+<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">const</span> <span class="keyword">auto</span> &amp;i : entities)</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; _h.unlock(i.value, 1);</div>
+<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; }</div>
+<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; }</div>
+<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; };</div>
+<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;</div>
+<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; } <span class="comment">// namespace</span></div>
+<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;} <span class="comment">// namespace</span></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;</div>
-<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;<a class="code" href="group__config.html#ga39f521144fef02193249bb7e3b0698fe" title="Expands into the appropriate namespace markup to exit the AFIO v2 namespace.">BOOST_AFIO_V2_NAMESPACE_END</a></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;</div>
+<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;<span class="preprocessor">#endif</span></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
diff --git a/classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1atomic__append.html b/classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1atomic__append.html
index 43f5490e..de04c373 100644
--- a/classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1atomic__append.html
+++ b/classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1atomic__append.html
@@ -219,11 +219,11 @@ Protected Member Functions</h2></td></tr>
<li>Much slower than <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html" title="Many entity shared/exclusive file system based lock.">byte_ranges</a> for few waiters or small number of entities.</li>
<li>Sudden process exit with locks held will deadlock all other users.</li>
<li>Maximum of twelve entities may be locked concurrently.</li>
-<li>Wasteful of disk space if used on a non-extents based filing system (e.g. FAT32, ext3). It is best used in <code>/tmp</code> if possible. If you really must use a non-extents based filing system, destroy and recreate the object instance periodically to force resetting the lock file's length to zero.</li>
+<li>Wasteful of disk space if used on a non-extents based filing system (e.g. FAT32, ext3). It is best used in <code>/tmp</code> if possible (<code><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#aa1effcf350c823b713f7767e7530c545">file_handle::temp_file()</a></code>). If you really must use a non-extents based filing system, destroy and recreate the object instance periodically to force resetting the lock file's length to zero.</li>
<li>Similarly older operating systems (e.g. Linux &lt; 3.0) do not implement extent hole punching and therefore will also see excessive disk space consumption. Note at the time of writing OS X doesn't implement hole punching at all.</li>
<li>If your OS doesn't have sane byte range locks (OS X, BSD, older Linuxes) and multiple objects in your process use the same lock file, misoperation will occur. Use <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1lock__files.html" title="Many entity exclusive compatibility file system based lock.">lock_files</a> instead.</li>
</ul>
-<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000003">Todo:</a></b></dt><dd><p class="startdd">Implement hole punching once I port that code from AFIO v1. </p>
+<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000004">Todo:</a></b></dt><dd><p class="startdd">Implement hole punching once I port that code from AFIO v1. </p>
<p>Decide on some resolution mechanism for sudden process exit. </p>
<p class="enddd">There is a 1 out of 2^64-2 chance of unique id collision. It would be nice if we actually formally checked that our chosen unique id is actually unique. </p>
</dd></dl>
@@ -265,7 +265,7 @@ Protected Member Functions</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
-<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000004">Todo:</a></b></dt><dd>Read from header.last_known_good immediately if possible in order to avoid a duplicate read later </dd></dl>
+<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000005">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="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html">boost::afio::v2_xxx::algorithm::shared_fs_mutex::shared_fs_mutex</a>.</p>
<div class="fragment"><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; {</div>
diff --git a/classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html b/classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html
index e381af4b..73411134 100644
--- a/classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html
+++ b/classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html
@@ -214,13 +214,14 @@ virtual <a class="el" href="namespaceboost_1_1afio_1_1v2__xxx.html#ac8d06ecaa966
<li>Compatible with networked file systems, though be cautious with older NFS.</li>
<li>Linear complexity to number of concurrent users.</li>
<li>Exponential complexity to number of entities being concurrently locked, though some OSs provide linear complexity so long as total concurrent waiting processes is CPU core count or less.</li>
+<li>Does a reasonable job of trying to sleep the thread if any of the entities are locked.</li>
<li>Sudden process exit with lock held is recovered from.</li>
<li>Sudden power loss during use is recovered from.</li>
<li>Safe for multithreaded usage of the same instance.</li>
</ul>
<p>Caveats:</p>
<ul>
-<li>When entities being locked is more than one, no ability to sleep until a lock becomes free, so CPUs are spun at 100%.</li>
+<li>When entities being locked is more than one, the algorithm places the contending lock at the front of the list during the randomisation after lock failure so we can sleep the thread until it becomes free. However, under heavy churn the thread will generally spin, consuming 100% CPU.</li>
<li>Byte range locks need to work properly on your system. Misconfiguring NFS or Samba to cause byte range locks to not work right will produce bad outcomes.</li>
<li>If your OS doesn't have sane byte range locks (OS X, BSD, older Linuxes) and multiple objects in your process use the same lock file, misoperation will occur. Use <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1lock__files.html" title="Many entity exclusive compatibility file system based lock.">lock_files</a> or share a single instance of this class per lock file in this case. </li>
</ul>
diff --git a/classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map-members.html b/classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map-members.html
new file mode 100644
index 00000000..06f219d3
--- /dev/null
+++ b/classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map-members.html
@@ -0,0 +1,147 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>Boost.AFIO: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Boost.AFIO
+ &#160;<span id="projectnumber">v2.00 early alpha</span>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">boost::afio::v2_xxx::algorithm::shared_fs_mutex::memory_map Member List</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html">boost::afio::v2_xxx::algorithm::shared_fs_mutex::memory_map</a>, including all inherited members.</p>
+<table class="directory">
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>_hash_entities</b>(_entity_idx *entity_to_idx, entities_type &amp;entities) (defined in <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html">boost::afio::v2_xxx::algorithm::shared_fs_mutex::memory_map</a>)</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html">boost::afio::v2_xxx::algorithm::shared_fs_mutex::memory_map</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>_lock</b>(entities_guard &amp;out, deadline d, bool spin_not_sleep) noexceptoverridefinal (defined in <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html">boost::afio::v2_xxx::algorithm::shared_fs_mutex::memory_map</a>)</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html">boost::afio::v2_xxx::algorithm::shared_fs_mutex::memory_map</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#a9cc8c9f8c25a6ec30464839ebdf845af">entities_type</a> typedef</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html">boost::afio::v2_xxx::algorithm::shared_fs_mutex::memory_map</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html#a6d121be3d16ec5fcd15d61e59f8b66bd">entity_from_buffer</a>(const char *buffer, size_t bytes, bool exclusive=true) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html">boost::afio::v2_xxx::algorithm::shared_fs_mutex::shared_fs_mutex</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html#adc91b1e075ed52fc277c59213cf7b357">entity_from_string</a>(const std::basic_string&lt; T &gt; &amp;str, bool exclusive=true) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html">boost::afio::v2_xxx::algorithm::shared_fs_mutex::shared_fs_mutex</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#ab248a548b71660335d14f88270741b1c">entity_type</a> typedef</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html">boost::afio::v2_xxx::algorithm::shared_fs_mutex::memory_map</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html#a50848058867ee3533b812378aff20b03">fill_random_entities</a>(span&lt; entity_type &gt; seq, bool exclusive=true) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html">boost::afio::v2_xxx::algorithm::shared_fs_mutex::shared_fs_mutex</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#a9a91ca12fd4b0bede7c30c5adf1946b2">fs_mutex_map</a>(file_handle::path_type lockfile) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html">boost::afio::v2_xxx::algorithm::shared_fs_mutex::memory_map</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="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#acf3ab16b4bfebf3b6988146e4fbeb138">handle</a>() const noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html">boost::afio::v2_xxx::algorithm::shared_fs_mutex::memory_map</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html#a19fafd3b1f9a098c9e60212e7ba97e32">lock</a>(entities_type entities, deadline d=deadline(), bool spin_not_sleep=false) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html">boost::afio::v2_xxx::algorithm::shared_fs_mutex::shared_fs_mutex</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html#ade23c2f167c550c66fa5522ad3e27b7e">lock</a>(entity_type entity, deadline d=deadline(), bool spin_not_sleep=false) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html">boost::afio::v2_xxx::algorithm::shared_fs_mutex::shared_fs_mutex</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#a8803169706293901b29fbae2eaad1ee6">memory_map</a>(memory_map &amp;&amp;o) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html">boost::afio::v2_xxx::algorithm::shared_fs_mutex::memory_map</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#a0245abc2bf944b196efeb4f8bdb1dd24">operator=</a>(memory_map &amp;&amp;o) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html">boost::afio::v2_xxx::algorithm::shared_fs_mutex::memory_map</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html#a493872c8b5dbfa83fdf82242b928e112">random_entity</a>(bool exclusive=true) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html">boost::afio::v2_xxx::algorithm::shared_fs_mutex::shared_fs_mutex</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>shared_fs_mutex</b>() (defined in <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html">boost::afio::v2_xxx::algorithm::shared_fs_mutex::shared_fs_mutex</a>)</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html">boost::afio::v2_xxx::algorithm::shared_fs_mutex::shared_fs_mutex</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html#a851d41aee26d0d58cc7e6371724dfd80">try_lock</a>(entities_type entities) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html">boost::afio::v2_xxx::algorithm::shared_fs_mutex::shared_fs_mutex</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html#ad8f772f5f052920879526dbb66a90823">try_lock</a>(entity_type entity) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html">boost::afio::v2_xxx::algorithm::shared_fs_mutex::shared_fs_mutex</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#a80efd5836f20ac304bdcf0033c95de8b">unlock</a>(entities_type entities, unsigned long long) noexceptoverridefinal</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html">boost::afio::v2_xxx::algorithm::shared_fs_mutex::memory_map</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>~memory_map</b>() (defined in <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html">boost::afio::v2_xxx::algorithm::shared_fs_mutex::memory_map</a>)</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html">boost::afio::v2_xxx::algorithm::shared_fs_mutex::memory_map</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>~shared_fs_mutex</b>() (defined in <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html">boost::afio::v2_xxx::algorithm::shared_fs_mutex::shared_fs_mutex</a>)</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html">boost::afio::v2_xxx::algorithm::shared_fs_mutex::shared_fs_mutex</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 -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">Generated by
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.3.1 </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html b/classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html
new file mode 100644
index 00000000..d7bbc6e2
--- /dev/null
+++ b/classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html
@@ -0,0 +1,260 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>Boost.AFIO: boost::afio::v2_xxx::algorithm::shared_fs_mutex::memory_map Class 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>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Boost.AFIO
+ &#160;<span id="projectnumber">v2.00 early alpha</span>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#pub-types">Public Types</a> &#124;
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
+<a href="#pro-methods">Protected Member Functions</a> &#124;
+<a href="#pro-static-methods">Static Protected Member Functions</a> &#124;
+<a href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map-members.html">List of all members</a> </div>
+ <div class="headertitle">
+<div class="title">boost::afio::v2_xxx::algorithm::shared_fs_mutex::memory_map Class Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Many entity memory mapped shared/exclusive file system based lock.
+ <a href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="memory__map_8hpp_source.html">memory_map.hpp</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for boost::afio::v2_xxx::algorithm::shared_fs_mutex::memory_map:</div>
+<div class="dyncontent">
+ <div class="center">
+ <img src="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.png" usemap="#boost::afio::v2_xxx::algorithm::shared_fs_mutex::memory_map_map" alt=""/>
+ <map id="boost::afio::v2_xxx::algorithm::shared_fs_mutex::memory_map_map" name="boost::afio::v2_xxx::algorithm::shared_fs_mutex::memory_map_map">
+<area href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html" title="Abstract base class for an object which protects shared filing system resources." alt="boost::afio::v2_xxx::algorithm::shared_fs_mutex::shared_fs_mutex" shape="rect" coords="0,0,373,24"/>
+</map>
+ </div></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">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map_1_1__entity__idx.html">_entity_idx</a></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="pub-types"></a>
+Public Types</h2></td></tr>
+<tr class="memitem:ab248a548b71660335d14f88270741b1c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab248a548b71660335d14f88270741b1c"></a>
+using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#ab248a548b71660335d14f88270741b1c">entity_type</a> = <a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex_1_1entity__type.html">shared_fs_mutex::entity_type</a></td></tr>
+<tr class="memdesc:ab248a548b71660335d14f88270741b1c"><td class="mdescLeft">&#160;</td><td class="mdescRight">The type of an entity id. <br/></td></tr>
+<tr class="separator:ab248a548b71660335d14f88270741b1c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9cc8c9f8c25a6ec30464839ebdf845af"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9cc8c9f8c25a6ec30464839ebdf845af"></a>
+using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#a9cc8c9f8c25a6ec30464839ebdf845af">entities_type</a> = <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html#a02af43575220c42252610c818e109b72">shared_fs_mutex::entities_type</a></td></tr>
+<tr class="memdesc:a9cc8c9f8c25a6ec30464839ebdf845af"><td class="mdescLeft">&#160;</td><td class="mdescRight">The type of a sequence of entities. <br/></td></tr>
+<tr class="separator:a9cc8c9f8c25a6ec30464839ebdf845af"><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:a8803169706293901b29fbae2eaad1ee6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8803169706293901b29fbae2eaad1ee6"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#a8803169706293901b29fbae2eaad1ee6">memory_map</a> (<a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html">memory_map</a> &amp;&amp;o) noexcept</td></tr>
+<tr class="memdesc:a8803169706293901b29fbae2eaad1ee6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move constructor. <br/></td></tr>
+<tr class="separator:a8803169706293901b29fbae2eaad1ee6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0245abc2bf944b196efeb4f8bdb1dd24"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0245abc2bf944b196efeb4f8bdb1dd24"></a>
+<a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html">memory_map</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#a0245abc2bf944b196efeb4f8bdb1dd24">operator=</a> (<a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html">memory_map</a> &amp;&amp;o) noexcept</td></tr>
+<tr class="memdesc:a0245abc2bf944b196efeb4f8bdb1dd24"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move assign. <br/></td></tr>
+<tr class="separator:a0245abc2bf944b196efeb4f8bdb1dd24"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acf3ab16b4bfebf3b6988146e4fbeb138"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acf3ab16b4bfebf3b6988146e4fbeb138"></a>
+const <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html">file_handle</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#acf3ab16b4bfebf3b6988146e4fbeb138">handle</a> () const noexcept</td></tr>
+<tr class="memdesc:acf3ab16b4bfebf3b6988146e4fbeb138"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the handle to file being used for this lock. <br/></td></tr>
+<tr class="separator:acf3ab16b4bfebf3b6988146e4fbeb138"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a80efd5836f20ac304bdcf0033c95de8b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a80efd5836f20ac304bdcf0033c95de8b"></a>
+virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#a80efd5836f20ac304bdcf0033c95de8b">unlock</a> (<a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html#a02af43575220c42252610c818e109b72">entities_type</a> entities, unsigned long long) noexceptoverridefinal</td></tr>
+<tr class="memdesc:a80efd5836f20ac304bdcf0033c95de8b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unlock a previously locked sequence of entities. <br/></td></tr>
+<tr class="separator:a80efd5836f20ac304bdcf0033c95de8b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6d121be3d16ec5fcd15d61e59f8b66bd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6d121be3d16ec5fcd15d61e59f8b66bd"></a>
+<a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#ab248a548b71660335d14f88270741b1c">entity_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html#a6d121be3d16ec5fcd15d61e59f8b66bd">entity_from_buffer</a> (const char *buffer, size_t bytes, bool exclusive=true) noexcept</td></tr>
+<tr class="memdesc:a6d121be3d16ec5fcd15d61e59f8b66bd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generates an entity id from a sequence of bytes. <br/></td></tr>
+<tr class="separator:a6d121be3d16ec5fcd15d61e59f8b66bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adc91b1e075ed52fc277c59213cf7b357"><td class="memTemplParams" colspan="2"><a class="anchor" id="adc91b1e075ed52fc277c59213cf7b357"></a>
+template&lt;typename T &gt; </td></tr>
+<tr class="memitem:adc91b1e075ed52fc277c59213cf7b357"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#ab248a548b71660335d14f88270741b1c">entity_type</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html#adc91b1e075ed52fc277c59213cf7b357">entity_from_string</a> (const std::basic_string&lt; T &gt; &amp;str, bool exclusive=true) noexcept</td></tr>
+<tr class="memdesc:adc91b1e075ed52fc277c59213cf7b357"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generates an entity id from a string. <br/></td></tr>
+<tr class="separator:adc91b1e075ed52fc277c59213cf7b357"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a493872c8b5dbfa83fdf82242b928e112"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a493872c8b5dbfa83fdf82242b928e112"></a>
+<a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#ab248a548b71660335d14f88270741b1c">entity_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html#a493872c8b5dbfa83fdf82242b928e112">random_entity</a> (bool exclusive=true) noexcept</td></tr>
+<tr class="memdesc:a493872c8b5dbfa83fdf82242b928e112"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generates a cryptographically random entity id. <br/></td></tr>
+<tr class="separator:a493872c8b5dbfa83fdf82242b928e112"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a50848058867ee3533b812378aff20b03"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a50848058867ee3533b812378aff20b03"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html#a50848058867ee3533b812378aff20b03">fill_random_entities</a> (span&lt; <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#ab248a548b71660335d14f88270741b1c">entity_type</a> &gt; seq, bool exclusive=true) noexcept</td></tr>
+<tr class="memdesc:a50848058867ee3533b812378aff20b03"><td class="mdescLeft">&#160;</td><td class="mdescRight">Fills a sequence of entity ids with cryptographic randomness. Much faster than calling <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html#a493872c8b5dbfa83fdf82242b928e112" title="Generates a cryptographically random entity id.">random_entity()</a> individually. <br/></td></tr>
+<tr class="separator:a50848058867ee3533b812378aff20b03"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a19fafd3b1f9a098c9e60212e7ba97e32"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a19fafd3b1f9a098c9e60212e7ba97e32"></a>
+<a class="el" href="namespaceboost_1_1afio_1_1v2__xxx.html#ac8d06ecaa9660e7251c1251d88c1305c">result</a>&lt; <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex_1_1entities__guard.html">entities_guard</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html#a19fafd3b1f9a098c9e60212e7ba97e32">lock</a> (<a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html#a02af43575220c42252610c818e109b72">entities_type</a> entities, <a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1deadline.html">deadline</a> d=<a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1deadline.html">deadline</a>(), bool spin_not_sleep=false) noexcept</td></tr>
+<tr class="memdesc:a19fafd3b1f9a098c9e60212e7ba97e32"><td class="mdescLeft">&#160;</td><td class="mdescRight">Lock all of a sequence of entities for exclusive or shared access. <br/></td></tr>
+<tr class="separator:a19fafd3b1f9a098c9e60212e7ba97e32"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ade23c2f167c550c66fa5522ad3e27b7e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ade23c2f167c550c66fa5522ad3e27b7e"></a>
+<a class="el" href="namespaceboost_1_1afio_1_1v2__xxx.html#ac8d06ecaa9660e7251c1251d88c1305c">result</a>&lt; <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex_1_1entities__guard.html">entities_guard</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html#ade23c2f167c550c66fa5522ad3e27b7e">lock</a> (<a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#ab248a548b71660335d14f88270741b1c">entity_type</a> entity, <a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1deadline.html">deadline</a> d=<a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1deadline.html">deadline</a>(), bool spin_not_sleep=false) noexcept</td></tr>
+<tr class="memdesc:ade23c2f167c550c66fa5522ad3e27b7e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Lock a single entity for exclusive or shared access. <br/></td></tr>
+<tr class="separator:ade23c2f167c550c66fa5522ad3e27b7e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a851d41aee26d0d58cc7e6371724dfd80"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a851d41aee26d0d58cc7e6371724dfd80"></a>
+<a class="el" href="namespaceboost_1_1afio_1_1v2__xxx.html#ac8d06ecaa9660e7251c1251d88c1305c">result</a>&lt; <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex_1_1entities__guard.html">entities_guard</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html#a851d41aee26d0d58cc7e6371724dfd80">try_lock</a> (<a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html#a02af43575220c42252610c818e109b72">entities_type</a> entities) noexcept</td></tr>
+<tr class="memdesc:a851d41aee26d0d58cc7e6371724dfd80"><td class="mdescLeft">&#160;</td><td class="mdescRight">Try to lock all of a sequence of entities for exclusive or shared access. <br/></td></tr>
+<tr class="separator:a851d41aee26d0d58cc7e6371724dfd80"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad8f772f5f052920879526dbb66a90823"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad8f772f5f052920879526dbb66a90823"></a>
+<a class="el" href="namespaceboost_1_1afio_1_1v2__xxx.html#ac8d06ecaa9660e7251c1251d88c1305c">result</a>&lt; <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex_1_1entities__guard.html">entities_guard</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html#ad8f772f5f052920879526dbb66a90823">try_lock</a> (<a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#ab248a548b71660335d14f88270741b1c">entity_type</a> entity) noexcept</td></tr>
+<tr class="memdesc:ad8f772f5f052920879526dbb66a90823"><td class="mdescLeft">&#160;</td><td class="mdescRight">Try to lock a single entity for exclusive or shared access. <br/></td></tr>
+<tr class="separator:ad8f772f5f052920879526dbb66a90823"><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:a9a91ca12fd4b0bede7c30c5adf1946b2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9a91ca12fd4b0bede7c30c5adf1946b2"></a>
+static <a class="el" href="namespaceboost_1_1afio_1_1v2__xxx.html#ac8d06ecaa9660e7251c1251d88c1305c">result</a>&lt; <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html">memory_map</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#a9a91ca12fd4b0bede7c30c5adf1946b2">fs_mutex_map</a> (file_handle::path_type lockfile) noexcept</td></tr>
+<tr class="memdesc:a9a91ca12fd4b0bede7c30c5adf1946b2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialises a shared filing system mutex using the file at <em>lockfile</em>. <br/></td></tr>
+<tr class="separator:a9a91ca12fd4b0bede7c30c5adf1946b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
+Protected Member Functions</h2></td></tr>
+<tr class="memitem:a8689cb5c9090d4701fac23be0bb2aebe"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8689cb5c9090d4701fac23be0bb2aebe"></a>
+virtual <a class="el" href="namespaceboost_1_1afio_1_1v2__xxx.html#ac8d06ecaa9660e7251c1251d88c1305c">result</a>&lt; void &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>_lock</b> (<a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex_1_1entities__guard.html">entities_guard</a> &amp;out, <a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1deadline.html">deadline</a> d, bool spin_not_sleep) noexceptoverridefinal</td></tr>
+<tr class="separator:a8689cb5c9090d4701fac23be0bb2aebe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-static-methods"></a>
+Static Protected Member Functions</h2></td></tr>
+<tr class="memitem:abced98a6d5f9f82a044ba54251280e68"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abced98a6d5f9f82a044ba54251280e68"></a>
+static span&lt; <a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map_1_1__entity__idx.html">_entity_idx</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>_hash_entities</b> (<a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map_1_1__entity__idx.html">_entity_idx</a> *entity_to_idx, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html#a02af43575220c42252610c818e109b72">entities_type</a> &amp;entities)</td></tr>
+<tr class="separator:abced98a6d5f9f82a044ba54251280e68"><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>Many entity memory mapped shared/exclusive file system based lock. </p>
+<p>This is the highest performing filing system mutex in AFIO, but it comes with a long list of potential gotchas. It works by creating a random temporary file somewhere on the system and placing its path in a file in the lock file location. The random temporary file is mapped into memory by all processes using the lock where an open addressed hash table is kept. Each entity is hashed into somewhere in the hash table and its individual spin lock is used to implement the exclusion. As with <code><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html" title="Many entity shared/exclusive file system based lock.">byte_ranges</a></code>, each entity is locked individually in sequence but if a particular lock fails, all are unlocked and the list is randomised before trying again. Because this locking implementation is entirely implemented in userspace using shared memory without any kernel syscalls, performance is probably as fast as any many-arbitrary-entity shared locking system could be.</p>
+<p>Performance ought to be excellent so long as no lock user attempts to use the lock from across a networked filing system. As soon as a locking entity fails to find the temporary file given in the lock file location, it will <em>permanently</em> degrade the memory mapped lock into a <code><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html" title="Many entity shared/exclusive file system based lock.">byte_ranges</a></code> lock. This means that a single once off networked filing system user will permanently reduce performance to that of <code><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html" title="Many entity shared/exclusive file system based lock.">byte_ranges</a></code>.</p>
+<ul>
+<li>Compatible with networked file systems, though with a substantial performance degrade as described above.</li>
+<li>Linear complexity to number of concurrent users up until hash table starts to get full or hashed entries collide.</li>
+<li>Sudden power loss during use is recovered from.</li>
+<li>Safe for multithreaded usage of the same instance.</li>
+<li>In the lightly contended case, an order of magnitude faster than any other <code><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html" title="Abstract base class for an object which protects shared filing system resources.">shared_fs_mutex</a></code> algorithm.</li>
+</ul>
+<p>Caveats:</p>
+<ul>
+<li>No ability to sleep until a lock becomes free, so CPUs are spun at 100%.</li>
+<li>Sudden process exit with locks held will deadlock all other users.</li>
+<li>Exponential complexity to number of entities being concurrently locked.</li>
+<li>Hyperbolic i.e. pathological complexity to contention. Most SMP and especially NUMA systems have a finite bandwidth for atomic compare and swap operations, and every attempt to lock or unlock an entity under this implementation is several of those operations. Under heavy contention, whole system performance very noticeably nose dives from excessive atomic operations, things like audio and the mouse pointer will stutter.</li>
+<li>Sometimes different entities hash to the same offset and collide with one another, causing poor performance.</li>
+<li>Byte range locks need to work properly on your system. Misconfiguring NFS or Samba to cause byte range locks to not work right will produce bad outcomes.</li>
+<li>Memory mapped files need to be cache unified with normal i/o in your OS kernel. Known OSs which don't use a unified cache for memory mapped and normal i/o are QNX, OpenBSD. Furthermore, doing normal i/o and memory mapped i/o to the same file needs to not corrupt the file. In the past, there have been editions of the Linux kernel and the OS X kernel which did this.</li>
+<li>If your OS doesn't have sane byte range locks (OS X, BSD, older Linuxes) and multiple objects in your process use the same lock file, misoperation will occur. </li>
+</ul>
+</div><hr/>The documentation for this class was generated from the following file:<ul>
+<li>include/boost/afio/v2.0/algorithm/shared_fs_mutex/<a class="el" href="memory__map_8hpp_source.html">memory_map.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="namespaceboost.html">boost</a></li><li class="navelem"><a class="el" href="namespaceboost_1_1afio.html">afio</a></li><li class="navelem"><a class="el" href="namespaceboost_1_1afio_1_1v2__xxx.html">v2_xxx</a></li><li class="navelem"><a class="el" href="namespaceboost_1_1afio_1_1v2__xxx_1_1algorithm.html">algorithm</a></li><li class="navelem"><a class="el" href="namespaceboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex.html">shared_fs_mutex</a></li><li class="navelem"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html">memory_map</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.3.1 </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.js b/classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.js
new file mode 100644
index 00000000..40f786b1
--- /dev/null
+++ b/classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.js
@@ -0,0 +1,20 @@
+var classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map =
+[
+ [ "_entity_idx", "structboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map_1_1__entity__idx.html", "structboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map_1_1__entity__idx" ],
+ [ "entities_type", "classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#a9cc8c9f8c25a6ec30464839ebdf845af", null ],
+ [ "entity_type", "classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#ab248a548b71660335d14f88270741b1c", null ],
+ [ "memory_map", "classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#a8803169706293901b29fbae2eaad1ee6", null ],
+ [ "~memory_map", "classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#acbbdc594d360ed48c621a4aca786e8bf", null ],
+ [ "_lock", "classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#a8689cb5c9090d4701fac23be0bb2aebe", null ],
+ [ "entity_from_buffer", "classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#a6d121be3d16ec5fcd15d61e59f8b66bd", null ],
+ [ "entity_from_string", "classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#adc91b1e075ed52fc277c59213cf7b357", null ],
+ [ "fill_random_entities", "classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#a50848058867ee3533b812378aff20b03", null ],
+ [ "handle", "classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#acf3ab16b4bfebf3b6988146e4fbeb138", null ],
+ [ "lock", "classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#a19fafd3b1f9a098c9e60212e7ba97e32", null ],
+ [ "lock", "classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#ade23c2f167c550c66fa5522ad3e27b7e", null ],
+ [ "operator=", "classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#a0245abc2bf944b196efeb4f8bdb1dd24", null ],
+ [ "random_entity", "classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#a493872c8b5dbfa83fdf82242b928e112", null ],
+ [ "try_lock", "classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#a851d41aee26d0d58cc7e6371724dfd80", null ],
+ [ "try_lock", "classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#ad8f772f5f052920879526dbb66a90823", null ],
+ [ "unlock", "classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#a80efd5836f20ac304bdcf0033c95de8b", null ]
+]; \ No newline at end of file
diff --git a/classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.png b/classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.png
new file mode 100644
index 00000000..80af13d0
--- /dev/null
+++ b/classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.png
Binary files differ
diff --git a/classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html b/classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html
index c96bbae4..9b724c01 100644
--- a/classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html
+++ b/classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html
@@ -130,6 +130,7 @@ Inheritance diagram for boost::afio::v2_xxx::algorithm::shared_fs_mutex::shared_
<area href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1atomic__append.html" title="Scalable many entity shared/exclusive file system based lock." alt="boost::afio::v2_xxx::algorithm::shared_fs_mutex::atomic_append" shape="rect" coords="0,56,373,80"/>
<area href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html" title="Many entity shared/exclusive file system based lock." alt="boost::afio::v2_xxx::algorithm::shared_fs_mutex::byte_ranges" shape="rect" coords="383,56,756,80"/>
<area href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1lock__files.html" title="Many entity exclusive compatibility file system based lock." alt="boost::afio::v2_xxx::algorithm::shared_fs_mutex::lock_files" shape="rect" coords="766,56,1139,80"/>
+<area href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html" title="Many entity memory mapped shared/exclusive file system based lock." alt="boost::afio::v2_xxx::algorithm::shared_fs_mutex::memory_map" shape="rect" coords="1149,56,1522,80"/>
</map>
</div></div>
<table class="memberdecls">
diff --git a/classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.png b/classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.png
index 8e4e4274..125fa4c2 100644
--- a/classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.png
+++ b/classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.png
Binary files differ
diff --git a/classboost_1_1afio_1_1v2__xxx_1_1async__file__handle-members.html b/classboost_1_1afio_1_1v2__xxx_1_1async__file__handle-members.html
index d4754b05..a938e716 100644
--- a/classboost_1_1afio_1_1v2__xxx_1_1async__file__handle-members.html
+++ b/classboost_1_1afio_1_1v2__xxx_1_1async__file__handle-members.html
@@ -185,24 +185,27 @@ $(document).ready(function(){initNavTree('classboost_1_1afio_1_1v2__xxx_1_1async
<tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#acda0caaacf4404bffc57508930ba52be">boost::afio::v2_xxx::io_handle::operator=</a>(const handle &amp;o)=delete</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::afio::v2_xxx::handle</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a8581a32e1ed27a84046bc5cd9a248392">path</a>() const noexceptoverride</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html">boost::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>path_type</b> typedef (defined in <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html">boost::afio::v2_xxx::async_file_handle</a>)</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html">boost::afio::v2_xxx::async_file_handle</a></td><td class="entry"></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>read</b>(io_request&lt; buffers_type &gt; reqs, deadline d=deadline()) noexceptoverride (defined in <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html">boost::afio::v2_xxx::async_file_handle</a>)</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html">boost::afio::v2_xxx::async_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="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#ab371d8427aeb4bd0ca5f8a39a98ea5a2">boost::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="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::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="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a4480a48b8e54cde62fd2cee4ceed3725">boost::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="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::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="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a59c9bc1338196095a028b2870dcfb61d">release</a>() noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::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="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a7d1fa70986dc1edea222e17fbabc6425">requires_aligned_io</a>() const noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::afio::v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a8f008c58eacfba8efdb2f4ec88322fb9">service</a>() const noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html">boost::afio::v2_xxx::file_handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#adf964e787e0666fc5b7d94c2715ee6f5">set_append_only</a>(bool enable) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::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="classboost_1_1afio_1_1v2__xxx_1_1handle.html#aa8de6675205db68de70bf9075a6c649f">set_kernel_caching</a>(caching caching) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::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>size_type</b> typedef (defined in <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html">boost::afio::v2_xxx::async_file_handle</a>)</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html">boost::afio::v2_xxx::async_file_handle</a></td><td class="entry"></td></tr>
- <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a9d551befa0fa25a7119c07abc3a7a0e0">swap</a>(async_file_handle &amp;o) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html">boost::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="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#aa6118e53c41add8d4112d9ebeddd9d14">boost::afio::v2_xxx::file_handle::swap</a>(file_handle &amp;o) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html">boost::afio::v2_xxx::file_handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a562b5568e9cd0f1a26f0379a9d1a3b79">truncate</a>(extent_type newsize) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html">boost::afio::v2_xxx::file_handle</a></td><td class="entry"></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#aab870fe5fa041af29e2d85a5c292077f">try_lock</a>(extent_type offset, extent_type bytes, bool exclusive=true) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::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="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a0d043e29e065db9618f6df2e43cc1d42">unlock</a>(extent_type offset, extent_type bytes) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::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" class="even"><td class="entry"><b>write</b>(io_request&lt; const_buffers_type &gt; reqs, deadline d=deadline()) noexceptoverride (defined in <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html">boost::afio::v2_xxx::async_file_handle</a>)</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html">boost::afio::v2_xxx::async_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="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a8890b6a6046fb562f9f0ab943b79dfb4">boost::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="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::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="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#ac1fb657631c5212401259bb35ebf16db">boost::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="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::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="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::afio::v2_xxx::handle</a>)</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::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="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a603b0827a9ae139b8f5806b1297fa5f0">random_file</a>(path_type dirpath, mode _mode=mode::write, caching _caching=caching::temporary, flag flags=flag::none) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html">boost::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()) noexceptoverride (defined in <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html">boost::afio::v2_xxx::async_file_handle</a>)</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html">boost::afio::v2_xxx::async_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="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#ab371d8427aeb4bd0ca5f8a39a98ea5a2">boost::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="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::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="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a4480a48b8e54cde62fd2cee4ceed3725">boost::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="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::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="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a59c9bc1338196095a028b2870dcfb61d">release</a>() noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::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="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a7d1fa70986dc1edea222e17fbabc6425">requires_aligned_io</a>() const noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::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="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a8f008c58eacfba8efdb2f4ec88322fb9">service</a>() const noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html">boost::afio::v2_xxx::file_handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#adf964e787e0666fc5b7d94c2715ee6f5">set_append_only</a>(bool enable) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::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="classboost_1_1afio_1_1v2__xxx_1_1handle.html#aa8de6675205db68de70bf9075a6c649f">set_kernel_caching</a>(caching caching) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::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>size_type</b> typedef (defined in <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html">boost::afio::v2_xxx::async_file_handle</a>)</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html">boost::afio::v2_xxx::async_file_handle</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a9d551befa0fa25a7119c07abc3a7a0e0">swap</a>(async_file_handle &amp;o) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html">boost::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="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#aa6118e53c41add8d4112d9ebeddd9d14">boost::afio::v2_xxx::file_handle::swap</a>(file_handle &amp;o) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html">boost::afio::v2_xxx::file_handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#aa1effcf350c823b713f7767e7530c545">temp_file</a>(path_type name=path_type(), mode _mode=mode::write, creation _creation=creation::open_existing, caching _caching=caching::temporary, flag flags=flag::win_delete_on_last_close|flag::posix_unlink_on_first_close) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html">boost::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="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a9be07898862c1c14cf4bd984a57c5626">temp_inode</a>(path_type dirpath, mode _mode=mode::write, creation _creation=creation::only_if_not_exist) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html">boost::afio::v2_xxx::file_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="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a562b5568e9cd0f1a26f0379a9d1a3b79">truncate</a>(extent_type newsize) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html">boost::afio::v2_xxx::file_handle</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#aab870fe5fa041af29e2d85a5c292077f">try_lock</a>(extent_type offset, extent_type bytes, bool exclusive=true) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::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="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a0d043e29e065db9618f6df2e43cc1d42">unlock</a>(extent_type offset, extent_type bytes) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::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()) noexceptoverride (defined in <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html">boost::afio::v2_xxx::async_file_handle</a>)</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html">boost::afio::v2_xxx::async_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="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a8890b6a6046fb562f9f0ab943b79dfb4">boost::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="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::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="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#ac1fb657631c5212401259bb35ebf16db">boost::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="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::afio::v2_xxx::io_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="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::afio::v2_xxx::handle</a>)</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::afio::v2_xxx::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/classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html b/classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html
index e7a01708..c00f14c0 100644
--- a/classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html
+++ b/classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html
@@ -374,6 +374,12 @@ Static Public Member Functions</h2></td></tr>
<tr class="separator:a12b3005187cfe96eb2af7b19fffbb284"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af912595f8964b78186236a2cec1150a4"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="namespaceboost_1_1afio_1_1v2__xxx.html#ac8d06ecaa9660e7251c1251d88c1305c">result</a>&lt; <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html">file_handle</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#af912595f8964b78186236a2cec1150a4">file</a> (path_type _path, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#acd7f0c039e94c7ad40937fe32a2cabad">mode</a> _mode=mode::read, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#ab7acaf4e9155f8ad4023813354de5357">creation</a> _creation=creation::open_existing, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a81c7de194feaa88684ca9851d0d527ca">caching</a> _caching=caching::all, <a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1bitfield.html">flag</a> <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#add27fa17cd6356b49a26a8b6dafb6a6d">flags</a>=flag::none) noexcept</td></tr>
<tr class="separator:af912595f8964b78186236a2cec1150a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a603b0827a9ae139b8f5806b1297fa5f0"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="namespaceboost_1_1afio_1_1v2__xxx.html#ac8d06ecaa9660e7251c1251d88c1305c">result</a>&lt; <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html">file_handle</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a603b0827a9ae139b8f5806b1297fa5f0">random_file</a> (path_type dirpath, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#acd7f0c039e94c7ad40937fe32a2cabad">mode</a> _mode=mode::write, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a81c7de194feaa88684ca9851d0d527ca">caching</a> _caching=caching::temporary, <a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1bitfield.html">flag</a> <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#add27fa17cd6356b49a26a8b6dafb6a6d">flags</a>=flag::none) noexcept</td></tr>
+<tr class="separator:a603b0827a9ae139b8f5806b1297fa5f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa1effcf350c823b713f7767e7530c545"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="namespaceboost_1_1afio_1_1v2__xxx.html#ac8d06ecaa9660e7251c1251d88c1305c">result</a>&lt; <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html">file_handle</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#aa1effcf350c823b713f7767e7530c545">temp_file</a> (path_type name=path_type(), <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#acd7f0c039e94c7ad40937fe32a2cabad">mode</a> _mode=mode::write, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#ab7acaf4e9155f8ad4023813354de5357">creation</a> _creation=creation::open_existing, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a81c7de194feaa88684ca9851d0d527ca">caching</a> _caching=caching::temporary, <a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1bitfield.html">flag</a> <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#add27fa17cd6356b49a26a8b6dafb6a6d">flags</a>=flag::win_delete_on_last_close|flag::posix_unlink_on_first_close) noexcept</td></tr>
+<tr class="separator:aa1effcf350c823b713f7767e7530c545"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9be07898862c1c14cf4bd984a57c5626"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="namespaceboost_1_1afio_1_1v2__xxx.html#ac8d06ecaa9660e7251c1251d88c1305c">result</a>&lt; <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html">file_handle</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a9be07898862c1c14cf4bd984a57c5626">temp_inode</a> (path_type dirpath, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#acd7f0c039e94c7ad40937fe32a2cabad">mode</a> _mode=mode::write, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#ab7acaf4e9155f8ad4023813354de5357">creation</a> _creation=creation::only_if_not_exist) noexcept</td></tr>
+<tr class="separator:a9be07898862c1c14cf4bd984a57c5626"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
@@ -854,6 +860,69 @@ template&lt;class CompletionRoutine &gt; </div>
</div><!-- fragment -->
</div>
</div>
+<a class="anchor" id="a603b0827a9ae139b8f5806b1297fa5f0"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">static <a class="el" href="namespaceboost_1_1afio_1_1v2__xxx.html#ac8d06ecaa9660e7251c1251d88c1305c">result</a>&lt;<a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html">file_handle</a>&gt; boost::afio::v2_xxx::file_handle::random_file </td>
+ <td>(</td>
+ <td class="paramtype">path_type&#160;</td>
+ <td class="paramname"><em>dirpath</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#acd7f0c039e94c7ad40937fe32a2cabad">mode</a>&#160;</td>
+ <td class="paramname"><em>_mode</em> = <code>mode::write</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a81c7de194feaa88684ca9851d0d527ca">caching</a>&#160;</td>
+ <td class="paramname"><em>_caching</em> = <code>caching::temporary</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1bitfield.html">flag</a>&#160;</td>
+ <td class="paramname"><em>flags</em> = <code>flag::none</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">static</span><span class="mlabel">noexcept</span><span class="mlabel">inherited</span></span> </td>
+ </tr>
+</table>
+</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="l00145"></a><span class="lineno"> 145</span>&#160; {</div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keywordflow">try</span></div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; {</div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; result&lt;file_handle&gt; ret;</div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keywordflow">do</span></div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; {</div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keyword">auto</span> randomname = <a class="code" href="namespaceboost_1_1afio_1_1v2__xxx_1_1utils.html#a051e8deb72941b3460811a1cf5f29915" title="Returns a cryptographically random string capable of being used as a filename. Essentially random_fil...">utils::random_string</a>(32);</div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; ret = <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#af912595f8964b78186236a2cec1150a4">file</a>(dirpath / randomname, _mode, creation::only_if_not_exist, _caching, <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#add27fa17cd6356b49a26a8b6dafb6a6d" title="The flags this handle was opened with.">flags</a>);</div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keywordflow">if</span>(!ret &amp;&amp; ret.get_error().value() != EEXIST)</div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keywordflow">return</span> ret;</div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; } <span class="keywordflow">while</span>(!ret);</div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keywordflow">return</span> ret;</div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; }</div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; BOOST_OUTCOME_CATCH_EXCEPTION_TO_RESULT(<a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#ac7e2ebc0391fec150878a8149dc07523" title="Default constructor.">file_handle</a>)</div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; }</div>
+</div><!-- fragment -->
+</div>
+</div>
<a class="anchor" id="ab371d8427aeb4bd0ca5f8a39a98ea5a2"></a>
<div class="memitem">
<div class="memproto">
@@ -1009,6 +1078,105 @@ template&lt;class CompletionRoutine &gt; </div>
</div>
</div>
+<a class="anchor" id="aa1effcf350c823b713f7767e7530c545"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">static <a class="el" href="namespaceboost_1_1afio_1_1v2__xxx.html#ac8d06ecaa9660e7251c1251d88c1305c">result</a>&lt;<a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html">file_handle</a>&gt; boost::afio::v2_xxx::file_handle::temp_file </td>
+ <td>(</td>
+ <td class="paramtype">path_type&#160;</td>
+ <td class="paramname"><em>name</em> = <code>path_type()</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#acd7f0c039e94c7ad40937fe32a2cabad">mode</a>&#160;</td>
+ <td class="paramname"><em>_mode</em> = <code>mode::write</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#ab7acaf4e9155f8ad4023813354de5357">creation</a>&#160;</td>
+ <td class="paramname"><em>_creation</em> = <code>creation::open_existing</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a81c7de194feaa88684ca9851d0d527ca">caching</a>&#160;</td>
+ <td class="paramname"><em>_caching</em> = <code>caching::temporary</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1bitfield.html">flag</a>&#160;</td>
+ <td class="paramname"><em>flags</em> = <code>flag::win_delete_on_last_close&#160;|&#160;flag::posix_unlink_on_first_close</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">static</span><span class="mlabel">noexcept</span><span class="mlabel">inherited</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<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 (POSIX) or last handle close (Windows). Note also that an empty name is equivalent to calling <code>random_file(<a class="el" href="namespaceboost_1_1afio_1_1v2__xxx.html#ad7da7a1d3240d7574fc7c6ee5831b7ee" title="Returns a path to a directory reported by the operating system to be suitable for storing temporary f...">fixme_temporary_files_directory()</a>)</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="l00173"></a><span class="lineno"> 173</span>&#160; {</div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keywordflow">return</span> name.empty() ? <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a603b0827a9ae139b8f5806b1297fa5f0">random_file</a>(<a class="code" href="namespaceboost_1_1afio_1_1v2__xxx.html#ad7da7a1d3240d7574fc7c6ee5831b7ee" title="Returns a path to a directory reported by the operating system to be suitable for storing temporary f...">fixme_temporary_files_directory</a>(), _mode, _caching, <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#add27fa17cd6356b49a26a8b6dafb6a6d" title="The flags this handle was opened with.">flags</a>) : <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#af912595f8964b78186236a2cec1150a4">file</a>(<a class="code" href="namespaceboost_1_1afio_1_1v2__xxx.html#ad7da7a1d3240d7574fc7c6ee5831b7ee" title="Returns a path to a directory reported by the operating system to be suitable for storing temporary f...">fixme_temporary_files_directory</a>() / name, _mode, _creation, _caching, <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#add27fa17cd6356b49a26a8b6dafb6a6d" title="The flags this handle was opened with.">flags</a>);</div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; }</div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="a9be07898862c1c14cf4bd984a57c5626"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">static <a class="el" href="namespaceboost_1_1afio_1_1v2__xxx.html#ac8d06ecaa9660e7251c1251d88c1305c">result</a>&lt;<a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html">file_handle</a>&gt; boost::afio::v2_xxx::file_handle::temp_inode </td>
+ <td>(</td>
+ <td class="paramtype">path_type&#160;</td>
+ <td class="paramname"><em>dirpath</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#acd7f0c039e94c7ad40937fe32a2cabad">mode</a>&#160;</td>
+ <td class="paramname"><em>_mode</em> = <code>mode::write</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#ab7acaf4e9155f8ad4023813354de5357">creation</a>&#160;</td>
+ <td class="paramname"><em>_creation</em> = <code>creation::only_if_not_exist</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">static</span><span class="mlabel">noexcept</span><span class="mlabel">inherited</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<p>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 handle is closed, making it ideal for use as a temporary file where other processes do not need to have access to its contents.</p>
+<dl class="section user"><dt>Errors returnable</dt><dd>Any of the values POSIX open() or CreateFile() can return. </dd></dl>
+
+</div>
+</div>
<a class="anchor" id="a562b5568e9cd0f1a26f0379a9d1a3b79"></a>
<div class="memitem">
<div class="memproto">
diff --git a/classboost_1_1afio_1_1v2__xxx_1_1file__handle-members.html b/classboost_1_1afio_1_1v2__xxx_1_1file__handle-members.html
index 749a4e30..0d8a71f1 100644
--- a/classboost_1_1afio_1_1v2__xxx_1_1file__handle-members.html
+++ b/classboost_1_1afio_1_1v2__xxx_1_1file__handle-members.html
@@ -172,21 +172,24 @@ $(document).ready(function(){initNavTree('classboost_1_1afio_1_1v2__xxx_1_1file_
<tr class="even"><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#acda0caaacf4404bffc57508930ba52be">boost::afio::v2_xxx::io_handle::operator=</a>(const handle &amp;o)=delete</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::afio::v2_xxx::handle</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a8581a32e1ed27a84046bc5cd9a248392">path</a>() const noexceptoverride</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html">boost::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>path_type</b> typedef (defined in <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html">boost::afio::v2_xxx::file_handle</a>)</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html">boost::afio::v2_xxx::file_handle</a></td><td class="entry"></td></tr>
- <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#ab371d8427aeb4bd0ca5f8a39a98ea5a2">read</a>(io_request&lt; buffers_type &gt; reqs, deadline d=deadline()) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::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="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a4480a48b8e54cde62fd2cee4ceed3725">read</a>(extent_type offset, char *data, size_type bytes, deadline d=deadline()) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::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="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a59c9bc1338196095a028b2870dcfb61d">release</a>() noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::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="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a7d1fa70986dc1edea222e17fbabc6425">requires_aligned_io</a>() const noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::afio::v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a8f008c58eacfba8efdb2f4ec88322fb9">service</a>() const noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html">boost::afio::v2_xxx::file_handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#adf964e787e0666fc5b7d94c2715ee6f5">set_append_only</a>(bool enable) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::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="classboost_1_1afio_1_1v2__xxx_1_1handle.html#aa8de6675205db68de70bf9075a6c649f">set_kernel_caching</a>(caching caching) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::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>size_type</b> typedef (defined in <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html">boost::afio::v2_xxx::file_handle</a>)</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html">boost::afio::v2_xxx::file_handle</a></td><td class="entry"></td></tr>
- <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#aa6118e53c41add8d4112d9ebeddd9d14">swap</a>(file_handle &amp;o) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html">boost::afio::v2_xxx::file_handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a562b5568e9cd0f1a26f0379a9d1a3b79">truncate</a>(extent_type newsize) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html">boost::afio::v2_xxx::file_handle</a></td><td class="entry"></td></tr>
- <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#aab870fe5fa041af29e2d85a5c292077f">try_lock</a>(extent_type offset, extent_type bytes, bool exclusive=true) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::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="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a0d043e29e065db9618f6df2e43cc1d42">unlock</a>(extent_type offset, extent_type bytes) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::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="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a8890b6a6046fb562f9f0ab943b79dfb4">write</a>(io_request&lt; const_buffers_type &gt; reqs, deadline d=deadline()) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::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="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#ac1fb657631c5212401259bb35ebf16db">write</a>(extent_type offset, const char *data, size_type bytes, deadline d=deadline()) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::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="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::afio::v2_xxx::handle</a>)</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::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="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a603b0827a9ae139b8f5806b1297fa5f0">random_file</a>(path_type dirpath, mode _mode=mode::write, caching _caching=caching::temporary, flag flags=flag::none) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html">boost::afio::v2_xxx::file_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="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#ab371d8427aeb4bd0ca5f8a39a98ea5a2">read</a>(io_request&lt; buffers_type &gt; reqs, deadline d=deadline()) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::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="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a4480a48b8e54cde62fd2cee4ceed3725">read</a>(extent_type offset, char *data, size_type bytes, deadline d=deadline()) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::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="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a59c9bc1338196095a028b2870dcfb61d">release</a>() noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::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="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a7d1fa70986dc1edea222e17fbabc6425">requires_aligned_io</a>() const noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::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="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a8f008c58eacfba8efdb2f4ec88322fb9">service</a>() const noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html">boost::afio::v2_xxx::file_handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#adf964e787e0666fc5b7d94c2715ee6f5">set_append_only</a>(bool enable) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::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="classboost_1_1afio_1_1v2__xxx_1_1handle.html#aa8de6675205db68de70bf9075a6c649f">set_kernel_caching</a>(caching caching) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::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>size_type</b> typedef (defined in <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html">boost::afio::v2_xxx::file_handle</a>)</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html">boost::afio::v2_xxx::file_handle</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#aa6118e53c41add8d4112d9ebeddd9d14">swap</a>(file_handle &amp;o) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html">boost::afio::v2_xxx::file_handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#aa1effcf350c823b713f7767e7530c545">temp_file</a>(path_type name=path_type(), mode _mode=mode::write, creation _creation=creation::open_existing, caching _caching=caching::temporary, flag flags=flag::win_delete_on_last_close|flag::posix_unlink_on_first_close) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html">boost::afio::v2_xxx::file_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="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a9be07898862c1c14cf4bd984a57c5626">temp_inode</a>(path_type dirpath, mode _mode=mode::write, creation _creation=creation::only_if_not_exist) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html">boost::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="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a562b5568e9cd0f1a26f0379a9d1a3b79">truncate</a>(extent_type newsize) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html">boost::afio::v2_xxx::file_handle</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#aab870fe5fa041af29e2d85a5c292077f">try_lock</a>(extent_type offset, extent_type bytes, bool exclusive=true) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::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="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a0d043e29e065db9618f6df2e43cc1d42">unlock</a>(extent_type offset, extent_type bytes) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::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="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a8890b6a6046fb562f9f0ab943b79dfb4">write</a>(io_request&lt; const_buffers_type &gt; reqs, deadline d=deadline()) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::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="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#ac1fb657631c5212401259bb35ebf16db">write</a>(extent_type offset, const char *data, size_type bytes, deadline d=deadline()) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::afio::v2_xxx::io_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="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::afio::v2_xxx::handle</a>)</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::afio::v2_xxx::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/classboost_1_1afio_1_1v2__xxx_1_1file__handle.html b/classboost_1_1afio_1_1v2__xxx_1_1file__handle.html
index 89290380..b97e3997 100644
--- a/classboost_1_1afio_1_1v2__xxx_1_1file__handle.html
+++ b/classboost_1_1afio_1_1v2__xxx_1_1file__handle.html
@@ -337,6 +337,12 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
Static Public Member Functions</h2></td></tr>
<tr class="memitem:af912595f8964b78186236a2cec1150a4"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="namespaceboost_1_1afio_1_1v2__xxx.html#ac8d06ecaa9660e7251c1251d88c1305c">result</a>&lt; <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html">file_handle</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#af912595f8964b78186236a2cec1150a4">file</a> (path_type _path, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#acd7f0c039e94c7ad40937fe32a2cabad">mode</a> _mode=mode::read, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#ab7acaf4e9155f8ad4023813354de5357">creation</a> _creation=creation::open_existing, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a81c7de194feaa88684ca9851d0d527ca">caching</a> _caching=caching::all, <a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1bitfield.html">flag</a> <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#add27fa17cd6356b49a26a8b6dafb6a6d">flags</a>=flag::none) noexcept</td></tr>
<tr class="separator:af912595f8964b78186236a2cec1150a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a603b0827a9ae139b8f5806b1297fa5f0"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="namespaceboost_1_1afio_1_1v2__xxx.html#ac8d06ecaa9660e7251c1251d88c1305c">result</a>&lt; <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html">file_handle</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a603b0827a9ae139b8f5806b1297fa5f0">random_file</a> (path_type dirpath, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#acd7f0c039e94c7ad40937fe32a2cabad">mode</a> _mode=mode::write, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a81c7de194feaa88684ca9851d0d527ca">caching</a> _caching=caching::temporary, <a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1bitfield.html">flag</a> <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#add27fa17cd6356b49a26a8b6dafb6a6d">flags</a>=flag::none) noexcept</td></tr>
+<tr class="separator:a603b0827a9ae139b8f5806b1297fa5f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa1effcf350c823b713f7767e7530c545"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="namespaceboost_1_1afio_1_1v2__xxx.html#ac8d06ecaa9660e7251c1251d88c1305c">result</a>&lt; <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html">file_handle</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#aa1effcf350c823b713f7767e7530c545">temp_file</a> (path_type name=path_type(), <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#acd7f0c039e94c7ad40937fe32a2cabad">mode</a> _mode=mode::write, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#ab7acaf4e9155f8ad4023813354de5357">creation</a> _creation=creation::open_existing, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a81c7de194feaa88684ca9851d0d527ca">caching</a> _caching=caching::temporary, <a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1bitfield.html">flag</a> <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#add27fa17cd6356b49a26a8b6dafb6a6d">flags</a>=flag::win_delete_on_last_close|flag::posix_unlink_on_first_close) noexcept</td></tr>
+<tr class="separator:aa1effcf350c823b713f7767e7530c545"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9be07898862c1c14cf4bd984a57c5626"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="namespaceboost_1_1afio_1_1v2__xxx.html#ac8d06ecaa9660e7251c1251d88c1305c">result</a>&lt; <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html">file_handle</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a9be07898862c1c14cf4bd984a57c5626">temp_inode</a> (path_type dirpath, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#acd7f0c039e94c7ad40937fe32a2cabad">mode</a> _mode=mode::write, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#ab7acaf4e9155f8ad4023813354de5357">creation</a> _creation=creation::only_if_not_exist) noexcept</td></tr>
+<tr class="separator:a9be07898862c1c14cf4bd984a57c5626"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
@@ -606,6 +612,69 @@ path_type&#160;</td><td class="memItemRight" valign="bottom"><b>_path</b></td></
</div><!-- fragment -->
</div>
</div>
+<a class="anchor" id="a603b0827a9ae139b8f5806b1297fa5f0"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">static <a class="el" href="namespaceboost_1_1afio_1_1v2__xxx.html#ac8d06ecaa9660e7251c1251d88c1305c">result</a>&lt;<a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html">file_handle</a>&gt; boost::afio::v2_xxx::file_handle::random_file </td>
+ <td>(</td>
+ <td class="paramtype">path_type&#160;</td>
+ <td class="paramname"><em>dirpath</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#acd7f0c039e94c7ad40937fe32a2cabad">mode</a>&#160;</td>
+ <td class="paramname"><em>_mode</em> = <code>mode::write</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a81c7de194feaa88684ca9851d0d527ca">caching</a>&#160;</td>
+ <td class="paramname"><em>_caching</em> = <code>caching::temporary</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1bitfield.html">flag</a>&#160;</td>
+ <td class="paramname"><em>flags</em> = <code>flag::none</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">static</span><span class="mlabel">noexcept</span></span> </td>
+ </tr>
+</table>
+</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="l00145"></a><span class="lineno"> 145</span>&#160; {</div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keywordflow">try</span></div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; {</div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; result&lt;file_handle&gt; ret;</div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keywordflow">do</span></div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; {</div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keyword">auto</span> randomname = <a class="code" href="namespaceboost_1_1afio_1_1v2__xxx_1_1utils.html#a051e8deb72941b3460811a1cf5f29915" title="Returns a cryptographically random string capable of being used as a filename. Essentially random_fil...">utils::random_string</a>(32);</div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; ret = <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#af912595f8964b78186236a2cec1150a4">file</a>(dirpath / randomname, _mode, creation::only_if_not_exist, _caching, <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#add27fa17cd6356b49a26a8b6dafb6a6d" title="The flags this handle was opened with.">flags</a>);</div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keywordflow">if</span>(!ret &amp;&amp; ret.get_error().value() != EEXIST)</div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keywordflow">return</span> ret;</div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; } <span class="keywordflow">while</span>(!ret);</div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keywordflow">return</span> ret;</div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; }</div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; BOOST_OUTCOME_CATCH_EXCEPTION_TO_RESULT(<a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#ac7e2ebc0391fec150878a8149dc07523" title="Default constructor.">file_handle</a>)</div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; }</div>
+</div><!-- fragment -->
+</div>
+</div>
<a class="anchor" id="ab371d8427aeb4bd0ca5f8a39a98ea5a2"></a>
<div class="memitem">
<div class="memproto">
@@ -761,6 +830,105 @@ path_type&#160;</td><td class="memItemRight" valign="bottom"><b>_path</b></td></
</div>
</div>
+<a class="anchor" id="aa1effcf350c823b713f7767e7530c545"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">static <a class="el" href="namespaceboost_1_1afio_1_1v2__xxx.html#ac8d06ecaa9660e7251c1251d88c1305c">result</a>&lt;<a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html">file_handle</a>&gt; boost::afio::v2_xxx::file_handle::temp_file </td>
+ <td>(</td>
+ <td class="paramtype">path_type&#160;</td>
+ <td class="paramname"><em>name</em> = <code>path_type()</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#acd7f0c039e94c7ad40937fe32a2cabad">mode</a>&#160;</td>
+ <td class="paramname"><em>_mode</em> = <code>mode::write</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#ab7acaf4e9155f8ad4023813354de5357">creation</a>&#160;</td>
+ <td class="paramname"><em>_creation</em> = <code>creation::open_existing</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a81c7de194feaa88684ca9851d0d527ca">caching</a>&#160;</td>
+ <td class="paramname"><em>_caching</em> = <code>caching::temporary</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1bitfield.html">flag</a>&#160;</td>
+ <td class="paramname"><em>flags</em> = <code>flag::win_delete_on_last_close&#160;|&#160;flag::posix_unlink_on_first_close</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">static</span><span class="mlabel">noexcept</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<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 (POSIX) or last handle close (Windows). Note also that an empty name is equivalent to calling <code>random_file(<a class="el" href="namespaceboost_1_1afio_1_1v2__xxx.html#ad7da7a1d3240d7574fc7c6ee5831b7ee" title="Returns a path to a directory reported by the operating system to be suitable for storing temporary f...">fixme_temporary_files_directory()</a>)</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="l00173"></a><span class="lineno"> 173</span>&#160; {</div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keywordflow">return</span> name.empty() ? <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a603b0827a9ae139b8f5806b1297fa5f0">random_file</a>(<a class="code" href="namespaceboost_1_1afio_1_1v2__xxx.html#ad7da7a1d3240d7574fc7c6ee5831b7ee" title="Returns a path to a directory reported by the operating system to be suitable for storing temporary f...">fixme_temporary_files_directory</a>(), _mode, _caching, <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#add27fa17cd6356b49a26a8b6dafb6a6d" title="The flags this handle was opened with.">flags</a>) : <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#af912595f8964b78186236a2cec1150a4">file</a>(<a class="code" href="namespaceboost_1_1afio_1_1v2__xxx.html#ad7da7a1d3240d7574fc7c6ee5831b7ee" title="Returns a path to a directory reported by the operating system to be suitable for storing temporary f...">fixme_temporary_files_directory</a>() / name, _mode, _creation, _caching, <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#add27fa17cd6356b49a26a8b6dafb6a6d" title="The flags this handle was opened with.">flags</a>);</div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; }</div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="a9be07898862c1c14cf4bd984a57c5626"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">static <a class="el" href="namespaceboost_1_1afio_1_1v2__xxx.html#ac8d06ecaa9660e7251c1251d88c1305c">result</a>&lt;<a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html">file_handle</a>&gt; boost::afio::v2_xxx::file_handle::temp_inode </td>
+ <td>(</td>
+ <td class="paramtype">path_type&#160;</td>
+ <td class="paramname"><em>dirpath</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#acd7f0c039e94c7ad40937fe32a2cabad">mode</a>&#160;</td>
+ <td class="paramname"><em>_mode</em> = <code>mode::write</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#ab7acaf4e9155f8ad4023813354de5357">creation</a>&#160;</td>
+ <td class="paramname"><em>_creation</em> = <code>creation::only_if_not_exist</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">static</span><span class="mlabel">noexcept</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<p>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 handle is closed, making it ideal for use as a temporary file where other processes do not need to have access to its contents.</p>
+<dl class="section user"><dt>Errors returnable</dt><dd>Any of the values POSIX open() or CreateFile() can return. </dd></dl>
+
+</div>
+</div>
<a class="anchor" id="a562b5568e9cd0f1a26f0379a9d1a3b79"></a>
<div class="memitem">
<div class="memproto">
diff --git a/classboost_1_1afio_1_1v2__xxx_1_1map__handle.html b/classboost_1_1afio_1_1v2__xxx_1_1map__handle.html
index 56c3d603..c96dc918 100644
--- a/classboost_1_1afio_1_1v2__xxx_1_1map__handle.html
+++ b/classboost_1_1afio_1_1v2__xxx_1_1map__handle.html
@@ -382,7 +382,7 @@ char *&#160;</td><td class="memItemRight" valign="bottom"><b>_addr</b></td></tr>
<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="todo"><dt><b><a class="el" href="todo.html#_todo000002">Todo:</a></b></dt><dd><p class="startdd">MADV_NOSYNC on FreeBSD needs to applied when the file is temporary </p>
+<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000003">Todo:</a></b></dt><dd><p class="startdd">MADV_NOSYNC on FreeBSD needs to applied when the file is temporary </p>
<p class="enddd">MADV_FREE on FreeBSD seems to do what MADV_DONTNEED does on Linux, investigate. </p>
</dd></dl>
</div><h2 class="groupheader">Member Function Documentation</h2>
diff --git a/classes.html b/classes.html
index 3291adeb..8fbb60f6 100644
--- a/classes.html
+++ b/classes.html
@@ -110,41 +110,43 @@ $(document).ready(function(){initNavTree('classes.html','');});
<div class="title">Class Index</div> </div>
</div><!--header-->
<div class="contents">
-<div class="qindex"><a class="qindex" href="#letter_A">A</a>&#160;|&#160;<a class="qindex" href="#letter_B">B</a>&#160;|&#160;<a class="qindex" href="#letter_D">D</a>&#160;|&#160;<a class="qindex" href="#letter_E">E</a>&#160;|&#160;<a class="qindex" href="#letter_F">F</a>&#160;|&#160;<a class="qindex" href="#letter_H">H</a>&#160;|&#160;<a class="qindex" href="#letter_I">I</a>&#160;|&#160;<a class="qindex" href="#letter_L">L</a>&#160;|&#160;<a class="qindex" href="#letter_M">M</a>&#160;|&#160;<a class="qindex" href="#letter_N">N</a>&#160;|&#160;<a class="qindex" href="#letter_P">P</a>&#160;|&#160;<a class="qindex" href="#letter_R">R</a>&#160;|&#160;<a class="qindex" href="#letter_S">S</a>&#160;|&#160;<a class="qindex" href="#letter_U">U</a>&#160;|&#160;<a class="qindex" href="#letter_W">W</a></div>
+<div class="qindex"><a class="qindex" href="#letter_A">A</a>&#160;|&#160;<a class="qindex" href="#letter_B">B</a>&#160;|&#160;<a class="qindex" href="#letter_D">D</a>&#160;|&#160;<a class="qindex" href="#letter_E">E</a>&#160;|&#160;<a class="qindex" href="#letter_F">F</a>&#160;|&#160;<a class="qindex" href="#letter_H">H</a>&#160;|&#160;<a class="qindex" href="#letter_I">I</a>&#160;|&#160;<a class="qindex" href="#letter_L">L</a>&#160;|&#160;<a class="qindex" href="#letter_M">M</a>&#160;|&#160;<a class="qindex" href="#letter_N">N</a>&#160;|&#160;<a class="qindex" href="#letter_P">P</a>&#160;|&#160;<a class="qindex" href="#letter_R">R</a>&#160;|&#160;<a class="qindex" href="#letter_S">S</a>&#160;|&#160;<a class="qindex" href="#letter_U">U</a>&#160;|&#160;<a class="qindex" href="#letter_W">W</a>&#160;|&#160;<a class="qindex" href="#letter__">_</a></div>
<table style="margin: 10px; white-space: nowrap;" align="center" width="95%" border="0" cellspacing="0" cellpadding="0">
<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="structboost_1_1afio_1_1v2__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="namespaceboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex.html">boost::afio::v2_xxx::algorithm::shared_fs_mutex</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1io__request.html">io_handle::io_request</a> (<a class="el" href="namespaceboost_1_1afio_1_1v2__xxx.html">boost::afio::v2_xxx</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_P"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;P&#160;&#160;</div></td></tr></table>
-</td><td valign="top"><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1statfs__t.html">statfs_t</a> (<a class="el" href="namespaceboost_1_1afio_1_1v2__xxx.html">boost::afio::v2_xxx</a>)&#160;&#160;&#160;</td></tr>
-<tr><td valign="top"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1extent__guard.html">io_handle::extent_guard</a> (<a class="el" href="namespaceboost_1_1afio_1_1v2__xxx.html">boost::afio::v2_xxx</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1io__result.html">io_handle::io_result</a> (<a class="el" href="namespaceboost_1_1afio_1_1v2__xxx.html">boost::afio::v2_xxx</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1storage__profile.html">storage_profile</a> (<a class="el" href="namespaceboost_1_1afio_1_1v2__xxx_1_1storage__profile.html">boost::afio::v2_xxx::storage_profile</a>)&#160;&#160;&#160;</td></tr>
-<tr><td valign="top"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html">async_file_handle</a> (<a class="el" href="namespaceboost_1_1afio_1_1v2__xxx.html">boost::afio::v2_xxx</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_F"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;F&#160;&#160;</div></td></tr></table>
-</td><td valign="top"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__service.html">io_service</a> (<a class="el" href="namespaceboost_1_1afio_1_1v2__xxx.html">boost::afio::v2_xxx</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1utils_1_1page__allocator.html">page_allocator</a> (<a class="el" href="namespaceboost_1_1afio_1_1v2__xxx_1_1utils.html">boost::afio::v2_xxx::utils</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_U"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;U&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1storage__profile.html">storage_profile</a> (<a class="el" href="namespaceboost_1_1afio_1_1v2__xxx_1_1storage__profile.html">boost::afio::v2_xxx::storage_profile</a>)&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1extent__guard.html">io_handle::extent_guard</a> (<a class="el" href="namespaceboost_1_1afio_1_1v2__xxx.html">boost::afio::v2_xxx</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1io__result.html">io_handle::io_result</a> (<a class="el" href="namespaceboost_1_1afio_1_1v2__xxx.html">boost::afio::v2_xxx</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_U"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;U&#160;&#160;</div></td></tr></table>
</td></tr>
-<tr><td valign="top"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1atomic__append.html">atomic_append</a> (<a class="el" href="namespaceboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex.html">boost::afio::v2_xxx::algorithm::shared_fs_mutex</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1item.html">item</a> (<a class="el" href="namespaceboost_1_1afio_1_1v2__xxx_1_1storage__profile.html">boost::afio::v2_xxx::storage_profile</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1utils_1_1page__allocator_3_01void_01_4.html">page_allocator&lt; void &gt;</a> (<a class="el" href="namespaceboost_1_1afio_1_1v2__xxx_1_1utils.html">boost::afio::v2_xxx::utils</a>)&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html">async_file_handle</a> (<a class="el" href="namespaceboost_1_1afio_1_1v2__xxx.html">boost::afio::v2_xxx</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_F"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;F&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__service.html">io_service</a> (<a class="el" href="namespaceboost_1_1afio_1_1v2__xxx.html">boost::afio::v2_xxx</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1utils_1_1page__allocator.html">page_allocator</a> (<a class="el" href="namespaceboost_1_1afio_1_1v2__xxx_1_1utils.html">boost::afio::v2_xxx::utils</a>)&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1atomic__append.html">atomic_append</a> (<a class="el" href="namespaceboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex.html">boost::afio::v2_xxx::algorithm::shared_fs_mutex</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1item.html">item</a> (<a class="el" href="namespaceboost_1_1afio_1_1v2__xxx_1_1storage__profile.html">boost::afio::v2_xxx::storage_profile</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1utils_1_1page__allocator_3_01void_01_4.html">page_allocator&lt; void &gt;</a> (<a class="el" href="namespaceboost_1_1afio_1_1v2__xxx_1_1utils.html">boost::afio::v2_xxx::utils</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="unionuint128.html">uint128</a>&#160;&#160;&#160;</td></tr>
<tr><td rowspan="2" valign="bottom"><a name="letter_B"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;B&#160;&#160;</div></td></tr></table>
</td><td valign="top"><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1statfs__t_1_1f__flags__t.html">statfs_t::f_flags_t</a> (<a class="el" href="namespaceboost_1_1afio_1_1v2__xxx.html">boost::afio::v2_xxx</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1item__base.html">item_base</a> (<a class="el" href="namespaceboost_1_1afio_1_1v2__xxx_1_1storage__profile.html">boost::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="unionuint128.html">uint128</a>&#160;&#160;&#160;</td></tr>
-<tr><td valign="top"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1utils_1_1fast__hash.html">fast_hash</a> (<a class="el" href="namespaceboost_1_1afio_1_1v2__xxx_1_1utils.html">boost::afio::v2_xxx::utils</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1item__erased.html">item_erased</a> (<a class="el" href="namespaceboost_1_1afio_1_1v2__xxx_1_1storage__profile.html">boost::afio::v2_xxx::storage_profile</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_W"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;W&#160;&#160;</div></td></tr></table>
+</td><td rowspan="2" valign="bottom"><a name="letter_W"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;W&#160;&#160;</div></td></tr></table>
</td></tr>
+<tr><td valign="top"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1utils_1_1fast__hash.html">fast_hash</a> (<a class="el" href="namespaceboost_1_1afio_1_1v2__xxx_1_1utils.html">boost::afio::v2_xxx::utils</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1item__erased.html">item_erased</a> (<a class="el" href="namespaceboost_1_1afio_1_1v2__xxx_1_1storage__profile.html">boost::afio::v2_xxx::storage_profile</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1bitfield.html">bitfield</a> (<a class="el" href="namespaceboost_1_1afio_1_1v2__xxx.html">boost::afio::v2_xxx</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html">file_handle</a> (<a class="el" href="namespaceboost_1_1afio_1_1v2__xxx.html">boost::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="structboost_1_1afio_1_1v2__xxx_1_1handle_1_1really__copy.html">handle::really_copy</a> (<a class="el" href="namespaceboost_1_1afio_1_1v2__xxx.html">boost::afio::v2_xxx</a>)&#160;&#160;&#160;</td></tr>
-<tr><td valign="top"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html">byte_ranges</a> (<a class="el" href="namespaceboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex.html">boost::afio::v2_xxx::algorithm::shared_fs_mutex</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1section__handle_1_1flag__base.html">section_handle::flag_base</a> (<a class="el" href="namespaceboost_1_1afio_1_1v2__xxx.html">boost::afio::v2_xxx</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1utils_1_1page__allocator_3_01void_01_4_1_1rebind.html">page_allocator&lt; void &gt;::rebind</a> (<a class="el" href="namespaceboost_1_1afio_1_1v2__xxx_1_1utils.html">boost::afio::v2_xxx::utils</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1statfs__t_1_1want__base.html">statfs_t::want_base</a> (<a class="el" href="namespaceboost_1_1afio_1_1v2__xxx.html">boost::afio::v2_xxx</a>)&#160;&#160;&#160;</td></tr>
+</td><td valign="top"><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1handle_1_1really__copy.html">handle::really_copy</a> (<a class="el" href="namespaceboost_1_1afio_1_1v2__xxx.html">boost::afio::v2_xxx</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1statfs__t_1_1want__base.html">statfs_t::want_base</a> (<a class="el" href="namespaceboost_1_1afio_1_1v2__xxx.html">boost::afio::v2_xxx</a>)&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html">byte_ranges</a> (<a class="el" href="namespaceboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex.html">boost::afio::v2_xxx::algorithm::shared_fs_mutex</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1section__handle_1_1flag__base.html">section_handle::flag_base</a> (<a class="el" href="namespaceboost_1_1afio_1_1v2__xxx.html">boost::afio::v2_xxx</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1utils_1_1page__allocator_3_01void_01_4_1_1rebind.html">page_allocator&lt; void &gt;::rebind</a> (<a class="el" href="namespaceboost_1_1afio_1_1v2__xxx_1_1utils.html">boost::afio::v2_xxx::utils</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter__"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;_&#160;&#160;</div></td></tr></table>
+</td></tr>
<tr><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="structboost_1_1afio_1_1v2__xxx_1_1handle_1_1flag__base.html">handle::flag_base</a> (<a class="el" href="namespaceboost_1_1afio_1_1v2__xxx.html">boost::afio::v2_xxx</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1lock__files.html">lock_files</a> (<a class="el" href="namespaceboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex.html">boost::afio::v2_xxx::algorithm::shared_fs_mutex</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1utils_1_1page__allocator_1_1rebind.html">page_allocator::rebind</a> (<a class="el" href="namespaceboost_1_1afio_1_1v2__xxx_1_1utils.html">boost::afio::v2_xxx::utils</a>)&#160;&#160;&#160;</td><td></td></tr>
+</td><td valign="top"><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1handle_1_1flag__base.html">handle::flag_base</a> (<a class="el" href="namespaceboost_1_1afio_1_1v2__xxx.html">boost::afio::v2_xxx</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1lock__files.html">lock_files</a> (<a class="el" href="namespaceboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex.html">boost::afio::v2_xxx::algorithm::shared_fs_mutex</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1utils_1_1page__allocator_1_1rebind.html">page_allocator::rebind</a> (<a class="el" href="namespaceboost_1_1afio_1_1v2__xxx_1_1utils.html">boost::afio::v2_xxx::utils</a>)&#160;&#160;&#160;</td></tr>
<tr><td rowspan="2" valign="bottom"><a name="letter_H"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;H&#160;&#160;</div></td></tr></table>
</td><td rowspan="2" valign="bottom"><a name="letter_M"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;M&#160;&#160;</div></td></tr></table>
</td><td rowspan="2" valign="bottom"><a name="letter_S"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;S&#160;&#160;</div></td></tr></table>
-</td><td></td></tr>
+</td><td valign="top"><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map_1_1__entity__idx.html">memory_map::_entity_idx</a> (<a class="el" href="namespaceboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex.html">boost::afio::v2_xxx::algorithm::shared_fs_mutex</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1deadline.html">deadline</a> (<a class="el" href="namespaceboost_1_1afio_1_1v2__xxx.html">boost::afio::v2_xxx</a>)&#160;&#160;&#160;</td><td></td></tr>
<tr><td valign="top"><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1native__handle__type_1_1disposition__base.html">native_handle_type::disposition_base</a> (<a class="el" href="namespaceboost_1_1afio_1_1v2__xxx.html">boost::afio::v2_xxx</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">handle</a> (<a class="el" href="namespaceboost_1_1afio_1_1v2__xxx.html">boost::afio::v2_xxx</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html">map_handle</a> (<a class="el" href="namespaceboost_1_1afio_1_1v2__xxx.html">boost::afio::v2_xxx</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1utils_1_1secded__ecc.html">secded_ecc</a> (<a class="el" href="namespaceboost_1_1afio_1_1v2__xxx_1_1utils.html">boost::afio::v2_xxx::utils</a>)&#160;&#160;&#160;</td><td></td></tr>
<tr><td rowspan="2" valign="bottom"><a name="letter_E"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;E&#160;&#160;</div></td></tr></table>
</td><td rowspan="2" valign="bottom"><a name="letter_I"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;I&#160;&#160;</div></td></tr></table>
-</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>
-</td><td valign="top"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1section__handle.html">section_handle</a> (<a class="el" href="namespaceboost_1_1afio_1_1v2__xxx.html">boost::afio::v2_xxx</a>)&#160;&#160;&#160;</td><td></td></tr>
-<tr><td valign="top"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html">shared_fs_mutex</a> (<a class="el" href="namespaceboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex.html">boost::afio::v2_xxx::algorithm::shared_fs_mutex</a>)&#160;&#160;&#160;</td><td></td></tr>
-<tr><td valign="top"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex_1_1entities__guard.html">shared_fs_mutex::entities_guard</a> (<a class="el" href="namespaceboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex.html">boost::afio::v2_xxx::algorithm::shared_fs_mutex</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">io_handle</a> (<a class="el" href="namespaceboost_1_1afio_1_1v2__xxx.html">boost::afio::v2_xxx</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1native__handle__type.html">native_handle_type</a> (<a class="el" href="namespaceboost_1_1afio_1_1v2__xxx.html">boost::afio::v2_xxx</a>)&#160;&#160;&#160;</td><td></td><td></td></tr>
+</td><td valign="top"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html">memory_map</a> (<a class="el" href="namespaceboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex.html">boost::afio::v2_xxx::algorithm::shared_fs_mutex</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1section__handle.html">section_handle</a> (<a class="el" href="namespaceboost_1_1afio_1_1v2__xxx.html">boost::afio::v2_xxx</a>)&#160;&#160;&#160;</td><td></td></tr>
+<tr><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>
+</td><td valign="top"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html">shared_fs_mutex</a> (<a class="el" href="namespaceboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex.html">boost::afio::v2_xxx::algorithm::shared_fs_mutex</a>)&#160;&#160;&#160;</td><td></td></tr>
+<tr><td valign="top"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex_1_1entities__guard.html">shared_fs_mutex::entities_guard</a> (<a class="el" href="namespaceboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex.html">boost::afio::v2_xxx::algorithm::shared_fs_mutex</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">io_handle</a> (<a class="el" href="namespaceboost_1_1afio_1_1v2__xxx.html">boost::afio::v2_xxx</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1statfs__t.html">statfs_t</a> (<a class="el" href="namespaceboost_1_1afio_1_1v2__xxx.html">boost::afio::v2_xxx</a>)&#160;&#160;&#160;</td><td></td></tr>
+<tr><td></td><td></td><td valign="top"><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1native__handle__type.html">native_handle_type</a> (<a class="el" href="namespaceboost_1_1afio_1_1v2__xxx.html">boost::afio::v2_xxx</a>)&#160;&#160;&#160;</td><td></td><td></td></tr>
<tr><td></td><td></td><td></td><td></td><td></td></tr>
</table>
-<div class="qindex"><a class="qindex" href="#letter_A">A</a>&#160;|&#160;<a class="qindex" href="#letter_B">B</a>&#160;|&#160;<a class="qindex" href="#letter_D">D</a>&#160;|&#160;<a class="qindex" href="#letter_E">E</a>&#160;|&#160;<a class="qindex" href="#letter_F">F</a>&#160;|&#160;<a class="qindex" href="#letter_H">H</a>&#160;|&#160;<a class="qindex" href="#letter_I">I</a>&#160;|&#160;<a class="qindex" href="#letter_L">L</a>&#160;|&#160;<a class="qindex" href="#letter_M">M</a>&#160;|&#160;<a class="qindex" href="#letter_N">N</a>&#160;|&#160;<a class="qindex" href="#letter_P">P</a>&#160;|&#160;<a class="qindex" href="#letter_R">R</a>&#160;|&#160;<a class="qindex" href="#letter_S">S</a>&#160;|&#160;<a class="qindex" href="#letter_U">U</a>&#160;|&#160;<a class="qindex" href="#letter_W">W</a></div>
+<div class="qindex"><a class="qindex" href="#letter_A">A</a>&#160;|&#160;<a class="qindex" href="#letter_B">B</a>&#160;|&#160;<a class="qindex" href="#letter_D">D</a>&#160;|&#160;<a class="qindex" href="#letter_E">E</a>&#160;|&#160;<a class="qindex" href="#letter_F">F</a>&#160;|&#160;<a class="qindex" href="#letter_H">H</a>&#160;|&#160;<a class="qindex" href="#letter_I">I</a>&#160;|&#160;<a class="qindex" href="#letter_L">L</a>&#160;|&#160;<a class="qindex" href="#letter_M">M</a>&#160;|&#160;<a class="qindex" href="#letter_N">N</a>&#160;|&#160;<a class="qindex" href="#letter_P">P</a>&#160;|&#160;<a class="qindex" href="#letter_R">R</a>&#160;|&#160;<a class="qindex" href="#letter_S">S</a>&#160;|&#160;<a class="qindex" href="#letter_U">U</a>&#160;|&#160;<a class="qindex" href="#letter_W">W</a>&#160;|&#160;<a class="qindex" href="#letter__">_</a></div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
diff --git a/dir_9fa9dee9180068c16577875815e1b7dd.html b/dir_9fa9dee9180068c16577875815e1b7dd.html
index de526d58..0c5829a9 100644
--- a/dir_9fa9dee9180068c16577875815e1b7dd.html
+++ b/dir_9fa9dee9180068c16577875815e1b7dd.html
@@ -117,6 +117,9 @@ Files</h2></td></tr>
<tr class="memitem:lock__files_8hpp"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lock__files_8hpp.html">lock_files.hpp</a> <a href="lock__files_8hpp_source.html">[code]</a></td></tr>
<tr class="memdesc:lock__files_8hpp"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides algorithm::shared_fs_mutex::lock_files. <br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:memory__map_8hpp"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="memory__map_8hpp.html">memory_map.hpp</a> <a href="memory__map_8hpp_source.html">[code]</a></td></tr>
+<tr class="memdesc:memory__map_8hpp"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides algorithm::shared_fs_mutex::memory_map. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
</div><!-- contents -->
</div><!-- doc-content -->
diff --git a/dir_9fa9dee9180068c16577875815e1b7dd.js b/dir_9fa9dee9180068c16577875815e1b7dd.js
index b030d0aa..e3feea25 100644
--- a/dir_9fa9dee9180068c16577875815e1b7dd.js
+++ b/dir_9fa9dee9180068c16577875815e1b7dd.js
@@ -9,5 +9,9 @@ var dir_9fa9dee9180068c16577875815e1b7dd =
] ],
[ "lock_files.hpp", "lock__files_8hpp.html", [
[ "lock_files", "classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1lock__files.html", "classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1lock__files" ]
+ ] ],
+ [ "memory_map.hpp", "memory__map_8hpp.html", [
+ [ "memory_map", "classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html", "classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map" ],
+ [ "_entity_idx", "structboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map_1_1__entity__idx.html", "structboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map_1_1__entity__idx" ]
] ]
]; \ No newline at end of file
diff --git a/dir_a38a52e61a9b0b56a6ddbdae4d4f5a3e.js b/dir_a38a52e61a9b0b56a6ddbdae4d4f5a3e.js
index 0ae85347..43f791ac 100644
--- a/dir_a38a52e61a9b0b56a6ddbdae4d4f5a3e.js
+++ b/dir_a38a52e61a9b0b56a6ddbdae4d4f5a3e.js
@@ -7,9 +7,7 @@ var dir_a38a52e61a9b0b56a6ddbdae4d4f5a3e =
] ],
[ "config.hpp", "config_8hpp.html", "config_8hpp" ],
[ "deadline.h", "deadline_8h.html", "deadline_8h" ],
- [ "file_handle.hpp", "file__handle_8hpp.html", [
- [ "file_handle", "classboost_1_1afio_1_1v2__xxx_1_1file__handle.html", "classboost_1_1afio_1_1v2__xxx_1_1file__handle" ]
- ] ],
+ [ "file_handle.hpp", "file__handle_8hpp.html", "file__handle_8hpp" ],
[ "handle.hpp", "handle_8hpp.html", "handle_8hpp" ],
[ "io_service.hpp", "io__service_8hpp.html", "io__service_8hpp" ],
[ "map_handle.hpp", "map__handle_8hpp.html", "map__handle_8hpp" ],
diff --git a/file__handle_8hpp.html b/file__handle_8hpp.html
index eccaa683..16d53534 100644
--- a/file__handle_8hpp.html
+++ b/file__handle_8hpp.html
@@ -106,7 +106,8 @@ $(document).ready(function(){initNavTree('file__handle_8hpp.html','');});
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
-<a href="#namespaces">Namespaces</a> </div>
+<a href="#namespaces">Namespaces</a> &#124;
+<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">file_handle.hpp File Reference</div> </div>
</div><!--header-->
@@ -115,6 +116,7 @@ $(document).ready(function(){initNavTree('file__handle_8hpp.html','');});
<p>Provides file_handle.
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &quot;<a class="el" href="handle_8hpp_source.html">handle.hpp</a>&quot;</code><br/>
+<code>#include &quot;<a class="el" href="utils_8hpp_source.html">utils.hpp</a>&quot;</code><br/>
</div>
<p><a href="file__handle_8hpp_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
@@ -135,6 +137,12 @@ Namespaces</h2></td></tr>
<tr class="memitem:namespaceboost_1_1afio_1_1v2__xxx"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1afio_1_1v2__xxx.html">boost::afio::v2_xxx</a></td></tr>
<tr class="memdesc:namespaceboost_1_1afio_1_1v2__xxx"><td class="mdescLeft">&#160;</td><td class="mdescRight">Inline namespace for this version of AFIO. <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="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ad7da7a1d3240d7574fc7c6ee5831b7ee"><td class="memItemLeft" align="right" valign="top">const fixme_path &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1afio_1_1v2__xxx.html#ad7da7a1d3240d7574fc7c6ee5831b7ee">boost::afio::v2_xxx::fixme_temporary_files_directory</a> () noexcept</td></tr>
+<tr class="memdesc:ad7da7a1d3240d7574fc7c6ee5831b7ee"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a path to a directory reported by the operating system to be suitable for storing temporary files. As operating systems are known to sometimes lie about the validity of this path, each of the available temporary file path options reported by the OS are probed by trying to create a file in each until success is found. If none of the available options are writable, some valid path containing the string "no_temporary_directories_accessible" will be returned which should cause all operations using that path to fail with a usefully user visible error message. <a href="#ad7da7a1d3240d7574fc7c6ee5831b7ee">More...</a><br/></td></tr>
+<tr class="separator:ad7da7a1d3240d7574fc7c6ee5831b7ee"><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 file_handle. </p>
diff --git a/file__handle_8hpp.js b/file__handle_8hpp.js
new file mode 100644
index 00000000..c01cc1bc
--- /dev/null
+++ b/file__handle_8hpp.js
@@ -0,0 +1,5 @@
+var file__handle_8hpp =
+[
+ [ "file_handle", "classboost_1_1afio_1_1v2__xxx_1_1file__handle.html", "classboost_1_1afio_1_1v2__xxx_1_1file__handle" ],
+ [ "fixme_temporary_files_directory", "file__handle_8hpp.html#ad7da7a1d3240d7574fc7c6ee5831b7ee", null ]
+]; \ No newline at end of file
diff --git a/file__handle_8hpp_source.html b/file__handle_8hpp_source.html
index 96716a08..11fca661 100644
--- a/file__handle_8hpp_source.html
+++ b/file__handle_8hpp_source.html
@@ -143,103 +143,130 @@ $(document).ready(function(){initNavTree('file__handle_8hpp_source.html','');});
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define BOOST_AFIO_FILE_HANDLE_H</span></div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="handle_8hpp.html" title="Provides handle.">handle.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">#ifdef _MSC_VER</span></div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#pragma warning(push)</span></div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#pragma warning(disable : 4251) // dll interface</span></div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<a class="code" href="group__config.html#ga3e707346cbc285ab2e53b0a13e0a1e09" title="Expands into the appropriate namespace markup to enter the C++ module exported AFIO v2 namespace...">BOOST_AFIO_V2_NAMESPACE_EXPORT_BEGIN</a></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="keyword">class </span>io_service;</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div>
-<div class="line"><a name="l00052"></a><span class="lineno"><a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html"> 52</a></span>&#160;<span class="keyword">class </span>BOOST_AFIO_DECL <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html" title="A handle to a regular file or device, kept data layout compatible with async_file_handle.">file_handle</a> : <span class="keyword">public</span> <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html" title="A handle to something capable of scatter-gather i/o.">io_handle</a></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;{</div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="keyword">public</span>:</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keyword">using</span> path_type = io_handle::path_type;</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keyword">using</span> extent_type = io_handle::extent_type;</div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keyword">using</span> size_type = io_handle::size_type;</div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">using</span> <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#acd7f0c039e94c7ad40937fe32a2cabad" title="The behaviour of the handle: does it read, read and write, or atomic append?">mode</a> = <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#acd7f0c039e94c7ad40937fe32a2cabad" title="The behaviour of the handle: does it read, read and write, or atomic append?">io_handle::mode</a>;</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keyword">using</span> <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#ab7acaf4e9155f8ad4023813354de5357" title="On opening, do we also create a new file or truncate an existing one?">creation</a> = <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#ab7acaf4e9155f8ad4023813354de5357" title="On opening, do we also create a new file or truncate an existing one?">io_handle::creation</a>;</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keyword">using</span> <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a81c7de194feaa88684ca9851d0d527ca" title="What i/o on the handle will complete immediately due to kernel caching.">caching</a> = <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a81c7de194feaa88684ca9851d0d527ca" title="What i/o on the handle will complete immediately due to kernel caching.">io_handle::caching</a>;</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keyword">using</span> <a class="code" href="structboost_1_1afio_1_1v2__xxx_1_1bitfield.html">flag</a> = <a class="code" href="structboost_1_1afio_1_1v2__xxx_1_1bitfield.html">io_handle::flag</a>;</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keyword">using</span> buffer_type = <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a811166f987d82fcd3c85c6aa0b9b4f34" title="The scatter buffer type used by this handle.">io_handle::buffer_type</a>;</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keyword">using</span> const_buffer_type = <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#acbb752522c90f5e4596b8a4f07e2fa80" title="The gather buffer type used by this handle.">io_handle::const_buffer_type</a>;</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keyword">using</span> buffers_type = <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a9085d19b744d1330eafa51fffc49e104" title="The scatter buffers type used by this handle.">io_handle::buffers_type</a>;</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">using</span> const_buffers_type = <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a692ba33b1e443510a791ff43f37d73cd" title="The gather buffers type used by this handle.">io_handle::const_buffers_type</a>;</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">class</span> T&gt; <span class="keyword">using</span> <a class="code" href="structboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1io__request.html" title="The i/o request type used by this handle.">io_request</a> = <a class="code" href="structboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1io__request.html" title="The i/o request type used by this handle.">io_handle::io_request&lt;T&gt;</a>;</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">class</span> T&gt; <span class="keyword">using</span> <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1io__result.html" title="The i/o result type used by this handle.">io_result</a> = <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1io__result.html" title="The i/o result type used by this handle.">io_handle::io_result&lt;T&gt;</a>;</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="keyword">protected</span>:</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; path_type _path;</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__service.html" title="An asynchronous i/o multiplexer service.">io_service</a> *_service;</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;<span class="keyword">public</span>:</div>
-<div class="line"><a name="l00075"></a><span class="lineno"><a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#ac7e2ebc0391fec150878a8149dc07523"> 75</a></span>&#160; <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html" title="A handle to a regular file or device, kept data layout compatible with async_file_handle.">file_handle</a>()</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; : <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html" title="A handle to something capable of scatter-gather i/o.">io_handle</a>()</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; , _service(nullptr)</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; {</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; }</div>
-<div class="line"><a name="l00081"></a><span class="lineno"><a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a8588e68b5678e9c7353147f12ea99c81"> 81</a></span>&#160; <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html" title="A handle to a regular file or device, kept data layout compatible with async_file_handle.">file_handle</a>(path_type path, <a class="code" href="structboost_1_1afio_1_1v2__xxx_1_1native__handle__type.html" title="A native handle type used for wrapping file descriptors, process ids or HANDLEs. Unmanaged, wrap in a handle object to manage.">native_handle_type</a> h, <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a81c7de194feaa88684ca9851d0d527ca" title="What i/o on the handle will complete immediately due to kernel caching.">caching</a> <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a81c7de194feaa88684ca9851d0d527ca" title="What i/o on the handle will complete immediately due to kernel caching.">caching</a> = caching::none, <a class="code" href="structboost_1_1afio_1_1v2__xxx_1_1bitfield.html">flag</a> flags = flag::none)</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; : <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html" title="A handle to something capable of scatter-gather i/o.">io_handle</a>(std::move(h), std::move(<a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a81c7de194feaa88684ca9851d0d527ca" title="What i/o on the handle will complete immediately due to kernel caching.">caching</a>), std::move(flags))</div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; , _path(std::move(path))</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; , _service(nullptr)</div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; {</div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; }</div>
-<div class="line"><a name="l00088"></a><span class="lineno"><a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a4c211d0ac077aecdb3b48d6a00d07542"> 88</a></span>&#160; <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a4c211d0ac077aecdb3b48d6a00d07542" title="Implicit move construction of file_handle permitted.">file_handle</a>(<a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html" title="A handle to a regular file or device, kept data layout compatible with async_file_handle.">file_handle</a> &amp;&amp;o) noexcept : <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html" title="A handle to something capable of scatter-gather i/o.">io_handle</a>(std::move(o)), _path(std::move(o._path)), _service(o._service) { o._service = <span class="keyword">nullptr</span>; }</div>
-<div class="line"><a name="l00090"></a><span class="lineno"><a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a79f7afb4237e965f287b32d181b905aa"> 90</a></span>&#160; <span class="keyword">explicit</span> <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a79f7afb4237e965f287b32d181b905aa" title="Explicit conversion from handle and io_handle permitted.">file_handle</a>(<a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html" title="A native_handle_type which is managed by the lifetime of this object instance.">handle</a> &amp;&amp;o, path_type path) noexcept : <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a4423c3eec1de559b945b3e98bcd7a815" title="Default constructor.">io_handle</a>(std::move(o)), _path(std::move(path)), _service(<span class="keyword">nullptr</span>) {}</div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keyword">using</span> <a class="code" href="structboost_1_1afio_1_1v2__xxx_1_1handle_1_1really__copy.html" title="Tag type to enable copy constructor.">io_handle::really_copy</a>;</div>
-<div class="line"><a name="l00093"></a><span class="lineno"><a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a358df51329f475315cee5cfffbffe75c"> 93</a></span>&#160; <span class="keyword">explicit</span> <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html" title="A handle to a regular file or device, kept data layout compatible with async_file_handle.">file_handle</a>(<span class="keyword">const</span> <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html" title="A handle to a regular file or device, kept data layout compatible with async_file_handle.">file_handle</a> &amp;o, <a class="code" href="structboost_1_1afio_1_1v2__xxx_1_1handle_1_1really__copy.html" title="Tag type to enable copy constructor.">really_copy</a> _)</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; : <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html" title="A handle to something capable of scatter-gather i/o.">io_handle</a>(o, _)</div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; , _path(o._path)</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; , _service(o._service)</div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; {</div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; }</div>
-<div class="line"><a name="l00100"></a><span class="lineno"><a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#ae2d1e75105df6d59aa5637a1a68cbf06"> 100</a></span>&#160; <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html" title="A handle to a regular file or device, kept data layout compatible with async_file_handle.">file_handle</a> &amp;<a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#aae278681887f4cb68b0b57c5ef6c8d4e" title="No move assignment.">operator=</a>(<a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html" title="A handle to a regular file or device, kept data layout compatible with async_file_handle.">file_handle</a> &amp;&amp;o) noexcept</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; {</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; this-&gt;~<a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html" title="A handle to a regular file or device, kept data layout compatible with async_file_handle.">file_handle</a>();</div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keyword">new</span>(<span class="keyword">this</span>) <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html" title="A handle to a regular file or device, kept data layout compatible with async_file_handle.">file_handle</a>(std::move(o));</div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; }</div>
-<div class="line"><a name="l00107"></a><span class="lineno"><a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#aa6118e53c41add8d4112d9ebeddd9d14"> 107</a></span>&#160; <span class="keywordtype">void</span> swap(<a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html" title="A handle to a regular file or device, kept data layout compatible with async_file_handle.">file_handle</a> &amp;o) noexcept</div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; {</div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html" title="A handle to a regular file or device, kept data layout compatible with async_file_handle.">file_handle</a> temp(std::move(*<span class="keyword">this</span>));</div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; *<span class="keyword">this</span> = std::move(o);</div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; o = std::move(temp);</div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; }</div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="comment">//[[bindlib::make_free]]</span></div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keyword">static</span> <a class="code" href="group__config.html#ga5a75b0e1ac1a86e60b2666ed2f64d36f" title="Expands into the appropriate markup to declare a class member function exported from the AFIO DLL if ...">BOOST_AFIO_HEADERS_ONLY_MEMFUNC_SPEC</a> <a class="code" href="namespaceboost_1_1afio_1_1v2__xxx.html#ac8d06ecaa9660e7251c1251d88c1305c" title="Please see https://ned14.github.io/boost.outcome/classboost_1_1outcome_1_1v1__xxx_1_1basic__monad.html.">result&lt;file_handle&gt;</a> file(path_type _path, mode _mode = mode::read, creation _creation = creation::open_existing, caching _caching = caching::all, flag flags = flag::none) noexcept;</div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <a class="code" href="group__config.html#gab4f63024aa1238f1d6a067b3d7fb23c7" title="Expands into the appropriate markup to declare a virtual class member function exported from the AFIO...">BOOST_AFIO_HEADERS_ONLY_VIRTUAL_SPEC</a> <a class="code" href="namespaceboost_1_1afio_1_1v2__xxx.html#ac8d06ecaa9660e7251c1251d88c1305c" title="Please see https://ned14.github.io/boost.outcome/classboost_1_1outcome_1_1v1__xxx_1_1basic__monad.html.">result</a>&lt;<a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html" title="A handle to a regular file or device, kept data layout compatible with async_file_handle.">file_handle</a>&gt; clone() const noexcept;</div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div>
-<div class="line"><a name="l00127"></a><span class="lineno"><a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a8581a32e1ed27a84046bc5cd9a248392"> 127</a></span>&#160; <a class="code" href="group__config.html#gab4f63024aa1238f1d6a067b3d7fb23c7" title="Expands into the appropriate markup to declare a virtual class member function exported from the AFIO...">BOOST_AFIO_HEADERS_ONLY_VIRTUAL_SPEC</a> path_type path() const noexcept<span class="keyword"> override </span>{ <span class="keywordflow">return</span> _path; }</div>
-<div class="line"><a name="l00129"></a><span class="lineno"><a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a8f008c58eacfba8efdb2f4ec88322fb9"> 129</a></span>&#160; <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__service.html" title="An asynchronous i/o multiplexer service.">io_service</a> *<a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a8f008c58eacfba8efdb2f4ec88322fb9" title="The i/o service this handle is attached to.">service</a>() const noexcept { <span class="keywordflow">return</span> _service; }</div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;</div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <a class="code" href="namespaceboost_1_1afio_1_1v2__xxx.html#ac8d06ecaa9660e7251c1251d88c1305c" title="Please see https://ned14.github.io/boost.outcome/classboost_1_1outcome_1_1v1__xxx_1_1basic__monad.html.">result&lt;extent_type&gt;</a> length() const noexcept;</div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="utils_8hpp.html" title="Provides namespace utils.">utils.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor">#ifdef _MSC_VER</span></div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#pragma warning(push)</span></div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#pragma warning(disable : 4251) // dll interface</span></div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<a class="code" href="group__config.html#ga3e707346cbc285ab2e53b0a13e0a1e09" title="Expands into the appropriate namespace markup to enter the C++ module exported AFIO v2 namespace...">BOOST_AFIO_V2_NAMESPACE_EXPORT_BEGIN</a></div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<a class="code" href="group__config.html#gad8f3e2fb1aa278110cc8d7952abab5b6" title="Expands into the appropriate markup to declare an extern function exported from the AFIO DLL if not b...">BOOST_AFIO_HEADERS_ONLY_FUNC_SPEC</a> <span class="keyword">const</span> fixme_path &amp;<a class="code" href="namespaceboost_1_1afio_1_1v2__xxx.html#ad7da7a1d3240d7574fc7c6ee5831b7ee" title="Returns a path to a directory reported by the operating system to be suitable for storing temporary f...">fixme_temporary_files_directory</a>() noexcept;</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;class io_service;</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div>
+<div class="line"><a name="l00067"></a><span class="lineno"><a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html"> 67</a></span>&#160;class BOOST_AFIO_DECL <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html" title="A handle to a regular file or device, kept data layout compatible with async_file_handle.">file_handle</a> : public <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html" title="A handle to something capable of scatter-gather i/o.">io_handle</a></div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;{</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keyword">using</span> path_type = io_handle::path_type;</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keyword">using</span> extent_type = io_handle::extent_type;</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keyword">using</span> size_type = io_handle::size_type;</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keyword">using</span> <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#acd7f0c039e94c7ad40937fe32a2cabad" title="The behaviour of the handle: does it read, read and write, or atomic append?">mode</a> = <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#acd7f0c039e94c7ad40937fe32a2cabad" title="The behaviour of the handle: does it read, read and write, or atomic append?">io_handle::mode</a>;</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keyword">using</span> <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#ab7acaf4e9155f8ad4023813354de5357" title="On opening, do we also create a new file or truncate an existing one?">creation</a> = <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#ab7acaf4e9155f8ad4023813354de5357" title="On opening, do we also create a new file or truncate an existing one?">io_handle::creation</a>;</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keyword">using</span> <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a81c7de194feaa88684ca9851d0d527ca" title="What i/o on the handle will complete immediately due to kernel caching.">caching</a> = <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a81c7de194feaa88684ca9851d0d527ca" title="What i/o on the handle will complete immediately due to kernel caching.">io_handle::caching</a>;</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keyword">using</span> <a class="code" href="structboost_1_1afio_1_1v2__xxx_1_1bitfield.html">flag</a> = <a class="code" href="structboost_1_1afio_1_1v2__xxx_1_1bitfield.html">io_handle::flag</a>;</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keyword">using</span> buffer_type = <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a811166f987d82fcd3c85c6aa0b9b4f34" title="The scatter buffer type used by this handle.">io_handle::buffer_type</a>;</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keyword">using</span> const_buffer_type = <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#acbb752522c90f5e4596b8a4f07e2fa80" title="The gather buffer type used by this handle.">io_handle::const_buffer_type</a>;</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keyword">using</span> buffers_type = <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a9085d19b744d1330eafa51fffc49e104" title="The scatter buffers type used by this handle.">io_handle::buffers_type</a>;</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keyword">using</span> const_buffers_type = <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a692ba33b1e443510a791ff43f37d73cd" title="The gather buffers type used by this handle.">io_handle::const_buffers_type</a>;</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">class</span> T&gt; <span class="keyword">using</span> <a class="code" href="structboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1io__request.html" title="The i/o request type used by this handle.">io_request</a> = <a class="code" href="structboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1io__request.html" title="The i/o request type used by this handle.">io_handle::io_request&lt;T&gt;</a>;</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">class</span> T&gt; <span class="keyword">using</span> <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1io__result.html" title="The i/o result type used by this handle.">io_result</a> = <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1io__result.html" title="The i/o result type used by this handle.">io_handle::io_result&lt;T&gt;</a>;</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="keyword">protected</span>:</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; path_type _path;</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; io_service *_service;</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00090"></a><span class="lineno"><a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#ac7e2ebc0391fec150878a8149dc07523"> 90</a></span>&#160; <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html" title="A handle to a regular file or device, kept data layout compatible with async_file_handle.">file_handle</a>()</div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; : io_handle()</div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; , _service(nullptr)</div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; {</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; }</div>
+<div class="line"><a name="l00096"></a><span class="lineno"><a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a8588e68b5678e9c7353147f12ea99c81"> 96</a></span>&#160; <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html" title="A handle to a regular file or device, kept data layout compatible with async_file_handle.">file_handle</a>(path_type path, <a class="code" href="structboost_1_1afio_1_1v2__xxx_1_1native__handle__type.html" title="A native handle type used for wrapping file descriptors, process ids or HANDLEs. Unmanaged, wrap in a handle object to manage.">native_handle_type</a> h, <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a81c7de194feaa88684ca9851d0d527ca" title="What i/o on the handle will complete immediately due to kernel caching.">caching</a> <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a81c7de194feaa88684ca9851d0d527ca" title="What i/o on the handle will complete immediately due to kernel caching.">caching</a> = caching::none, <a class="code" href="structboost_1_1afio_1_1v2__xxx_1_1bitfield.html">flag</a> flags = flag::none)</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; : io_handle(std::move(h), std::move(<a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a81c7de194feaa88684ca9851d0d527ca" title="What i/o on the handle will complete immediately due to kernel caching.">caching</a>), std::move(flags))</div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; , _path(std::move(path))</div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; , _service(nullptr)</div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; {</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; }</div>
+<div class="line"><a name="l00103"></a><span class="lineno"><a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a4c211d0ac077aecdb3b48d6a00d07542"> 103</a></span>&#160; <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a4c211d0ac077aecdb3b48d6a00d07542" title="Implicit move construction of file_handle permitted.">file_handle</a>(<a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html" title="A handle to a regular file or device, kept data layout compatible with async_file_handle.">file_handle</a> &amp;&amp;o) noexcept : io_handle(std::move(o)), _path(std::move(o._path)), _service(o._service) { o._service = <span class="keyword">nullptr</span>; }</div>
+<div class="line"><a name="l00105"></a><span class="lineno"><a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a79f7afb4237e965f287b32d181b905aa"> 105</a></span>&#160; <span class="keyword">explicit</span> <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a79f7afb4237e965f287b32d181b905aa" title="Explicit conversion from handle and io_handle permitted.">file_handle</a>(<a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html" title="A native_handle_type which is managed by the lifetime of this object instance.">handle</a> &amp;&amp;o, path_type path) noexcept : io_handle(std::move(o)), _path(std::move(path)), _service(<span class="keyword">nullptr</span>) {}</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keyword">using</span> <a class="code" href="structboost_1_1afio_1_1v2__xxx_1_1handle_1_1really__copy.html" title="Tag type to enable copy constructor.">io_handle::really_copy</a>;</div>
+<div class="line"><a name="l00108"></a><span class="lineno"><a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a358df51329f475315cee5cfffbffe75c"> 108</a></span>&#160; <span class="keyword">explicit</span> <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html" title="A handle to a regular file or device, kept data layout compatible with async_file_handle.">file_handle</a>(<span class="keyword">const</span> <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html" title="A handle to a regular file or device, kept data layout compatible with async_file_handle.">file_handle</a> &amp;o, <a class="code" href="structboost_1_1afio_1_1v2__xxx_1_1handle_1_1really__copy.html" title="Tag type to enable copy constructor.">really_copy</a> _)</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; : io_handle(o, _)</div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; , _path(o._path)</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; , _service(o._service)</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; {</div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; }</div>
+<div class="line"><a name="l00115"></a><span class="lineno"><a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#ae2d1e75105df6d59aa5637a1a68cbf06"> 115</a></span>&#160; <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html" title="A handle to a regular file or device, kept data layout compatible with async_file_handle.">file_handle</a> &amp;operator=(<a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html" title="A handle to a regular file or device, kept data layout compatible with async_file_handle.">file_handle</a> &amp;&amp;o) noexcept</div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; {</div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; this-&gt;~<a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html" title="A handle to a regular file or device, kept data layout compatible with async_file_handle.">file_handle</a>();</div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keyword">new</span>(<span class="keyword">this</span>) <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html" title="A handle to a regular file or device, kept data layout compatible with async_file_handle.">file_handle</a>(std::move(o));</div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; }</div>
+<div class="line"><a name="l00122"></a><span class="lineno"><a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#aa6118e53c41add8d4112d9ebeddd9d14"> 122</a></span>&#160; <span class="keywordtype">void</span> swap(<a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html" title="A handle to a regular file or device, kept data layout compatible with async_file_handle.">file_handle</a> &amp;o) noexcept</div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; {</div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html" title="A handle to a regular file or device, kept data layout compatible with async_file_handle.">file_handle</a> temp(std::move(*<span class="keyword">this</span>));</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; *<span class="keyword">this</span> = std::move(o);</div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; o = std::move(temp);</div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; }</div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="comment">//[[bindlib::make_free]]</span></div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keyword">static</span> <a class="code" href="group__config.html#ga5a75b0e1ac1a86e60b2666ed2f64d36f" title="Expands into the appropriate markup to declare a class member function exported from the AFIO DLL if ...">BOOST_AFIO_HEADERS_ONLY_MEMFUNC_SPEC</a> <a class="code" href="namespaceboost_1_1afio_1_1v2__xxx.html#ac8d06ecaa9660e7251c1251d88c1305c" title="Please see https://ned14.github.io/boost.outcome/classboost_1_1outcome_1_1v1__xxx_1_1basic__monad.html.">result&lt;file_handle&gt;</a> file(path_type _path, mode _mode = mode::read, creation _creation = creation::open_existing, caching _caching = caching::all, flag flags = flag::none) noexcept;</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="comment">//[[bindlib::make_free]]</span></div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <a class="code" href="namespaceboost_1_1afio_1_1v2__xxx.html#ac8d06ecaa9660e7251c1251d88c1305c" title="Please see https://ned14.github.io/boost.outcome/classboost_1_1outcome_1_1v1__xxx_1_1basic__monad.html.">result</a>&lt;extent_type&gt; truncate(extent_type newsize) noexcept;</div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;};</div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;<a class="code" href="group__config.html#ga39f521144fef02193249bb7e3b0698fe" title="Expands into the appropriate namespace markup to exit the AFIO v2 namespace.">BOOST_AFIO_V2_NAMESPACE_END</a></div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;<span class="preprocessor">#if BOOST_AFIO_HEADERS_ONLY == 1 &amp;&amp; !defined(DOXYGEN_SHOULD_SKIP_THIS)</span></div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define BOOST_AFIO_INCLUDED_BY_HEADER 1</span></div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#ifdef _WIN32</span></div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#include &quot;detail/impl/windows/file_handle.ipp&quot;</span></div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#include &quot;detail/impl/posix/file_handle.ipp&quot;</span></div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#undef BOOST_AFIO_INCLUDED_BY_HEADER</span></div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;<span class="preprocessor">#ifdef _MSC_VER</span></div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#pragma warning(pop)</span></div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00144"></a><span class="lineno"><a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a603b0827a9ae139b8f5806b1297fa5f0"> 144</a></span>&#160; static inline <a class="code" href="namespaceboost_1_1afio_1_1v2__xxx.html#ac8d06ecaa9660e7251c1251d88c1305c" title="Please see https://ned14.github.io/boost.outcome/classboost_1_1outcome_1_1v1__xxx_1_1basic__monad.html.">result</a>&lt;<a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html" title="A handle to a regular file or device, kept data layout compatible with async_file_handle.">file_handle</a>&gt; random_file(path_type dirpath, <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#acd7f0c039e94c7ad40937fe32a2cabad" title="The behaviour of the handle: does it read, read and write, or atomic append?">mode</a> _mode = <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#acd7f0c039e94c7ad40937fe32a2cabad" title="The behaviour of the handle: does it read, read and write, or atomic append?">mode</a>::write, <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a81c7de194feaa88684ca9851d0d527ca" title="What i/o on the handle will complete immediately due to kernel caching.">caching</a> _caching = <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a81c7de194feaa88684ca9851d0d527ca" title="What i/o on the handle will complete immediately due to kernel caching.">caching</a>::temporary, <a class="code" href="structboost_1_1afio_1_1v2__xxx_1_1bitfield.html">flag</a> flags = <a class="code" href="structboost_1_1afio_1_1v2__xxx_1_1bitfield.html">flag</a>::none) noexcept</div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; {</div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keywordflow">try</span></div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; {</div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <a class="code" href="namespaceboost_1_1afio_1_1v2__xxx.html#ac8d06ecaa9660e7251c1251d88c1305c" title="Please see https://ned14.github.io/boost.outcome/classboost_1_1outcome_1_1v1__xxx_1_1basic__monad.html.">result&lt;file_handle&gt;</a> ret;</div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keywordflow">do</span></div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; {</div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keyword">auto</span> randomname = <a class="code" href="namespaceboost_1_1afio_1_1v2__xxx_1_1utils.html#a051e8deb72941b3460811a1cf5f29915" title="Returns a cryptographically random string capable of being used as a filename. Essentially random_fil...">utils::random_string</a>(32);</div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; ret = file(dirpath / randomname, _mode, creation::only_if_not_exist, _caching, flags);</div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keywordflow">if</span>(!ret &amp;&amp; ret.get_error().value() != EEXIST)</div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keywordflow">return</span> ret;</div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; } <span class="keywordflow">while</span>(!ret);</div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keywordflow">return</span> ret;</div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; }</div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; BOOST_OUTCOME_CATCH_EXCEPTION_TO_RESULT(<a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html" title="A handle to a regular file or device, kept data layout compatible with async_file_handle.">file_handle</a>)</div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; }</div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="comment">//[[bindlib::make_free]]</span></div>
+<div class="line"><a name="l00172"></a><span class="lineno"><a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#aa1effcf350c823b713f7767e7530c545"> 172</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="namespaceboost_1_1afio_1_1v2__xxx.html#ac8d06ecaa9660e7251c1251d88c1305c" title="Please see https://ned14.github.io/boost.outcome/classboost_1_1outcome_1_1v1__xxx_1_1basic__monad.html.">result&lt;file_handle&gt;</a> temp_file(path_type name = path_type(), <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#acd7f0c039e94c7ad40937fe32a2cabad" title="The behaviour of the handle: does it read, read and write, or atomic append?">mode</a> _mode = mode::write, <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#ab7acaf4e9155f8ad4023813354de5357" title="On opening, do we also create a new file or truncate an existing one?">creation</a> _creation = creation::open_existing, <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a81c7de194feaa88684ca9851d0d527ca" title="What i/o on the handle will complete immediately due to kernel caching.">caching</a> _caching = caching::temporary, <a class="code" href="structboost_1_1afio_1_1v2__xxx_1_1bitfield.html">flag</a> flags = flag::win_delete_on_last_close | flag::posix_unlink_on_first_close) noexcept</div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; {</div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keywordflow">return</span> name.empty() ? random_file(<a class="code" href="namespaceboost_1_1afio_1_1v2__xxx.html#ad7da7a1d3240d7574fc7c6ee5831b7ee" title="Returns a path to a directory reported by the operating system to be suitable for storing temporary f...">fixme_temporary_files_directory</a>(), _mode, _caching, flags) : file(<a class="code" href="namespaceboost_1_1afio_1_1v2__xxx.html#ad7da7a1d3240d7574fc7c6ee5831b7ee" title="Returns a path to a directory reported by the operating system to be suitable for storing temporary f...">fixme_temporary_files_directory</a>() / name, _mode, _creation, _caching, flags);</div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; }</div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="comment">//[[bindlib::make_free]]</span></div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keyword">static</span> <a class="code" href="group__config.html#ga5a75b0e1ac1a86e60b2666ed2f64d36f" title="Expands into the appropriate markup to declare a class member function exported from the AFIO DLL if ...">BOOST_AFIO_HEADERS_ONLY_MEMFUNC_SPEC</a> <a class="code" href="namespaceboost_1_1afio_1_1v2__xxx.html#ac8d06ecaa9660e7251c1251d88c1305c" title="Please see https://ned14.github.io/boost.outcome/classboost_1_1outcome_1_1v1__xxx_1_1basic__monad.html.">result&lt;file_handle&gt;</a> temp_inode(path_type dirpath, mode _mode = mode::write, creation _creation = creation::only_if_not_exist) noexcept;</div>
+<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;</div>
+<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <a class="code" href="group__config.html#gab4f63024aa1238f1d6a067b3d7fb23c7" title="Expands into the appropriate markup to declare a virtual class member function exported from the AFIO...">BOOST_AFIO_HEADERS_ONLY_VIRTUAL_SPEC</a> <a class="code" href="namespaceboost_1_1afio_1_1v2__xxx.html#ac8d06ecaa9660e7251c1251d88c1305c" title="Please see https://ned14.github.io/boost.outcome/classboost_1_1outcome_1_1v1__xxx_1_1basic__monad.html.">result</a>&lt;<a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html" title="A handle to a regular file or device, kept data layout compatible with async_file_handle.">file_handle</a>&gt; clone() const noexcept;</div>
+<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;</div>
+<div class="line"><a name="l00194"></a><span class="lineno"><a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a8581a32e1ed27a84046bc5cd9a248392"> 194</a></span>&#160; <a class="code" href="group__config.html#gab4f63024aa1238f1d6a067b3d7fb23c7" title="Expands into the appropriate markup to declare a virtual class member function exported from the AFIO...">BOOST_AFIO_HEADERS_ONLY_VIRTUAL_SPEC</a> path_type path() const noexcept<span class="keyword"> override </span>{ <span class="keywordflow">return</span> _path; }</div>
+<div class="line"><a name="l00196"></a><span class="lineno"><a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a8f008c58eacfba8efdb2f4ec88322fb9"> 196</a></span>&#160; io_service *<a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a8f008c58eacfba8efdb2f4ec88322fb9" title="The i/o service this handle is attached to.">service</a>() const noexcept { <span class="keywordflow">return</span> _service; }</div>
+<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;</div>
+<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <a class="code" href="namespaceboost_1_1afio_1_1v2__xxx.html#ac8d06ecaa9660e7251c1251d88c1305c" title="Please see https://ned14.github.io/boost.outcome/classboost_1_1outcome_1_1v1__xxx_1_1basic__monad.html.">result&lt;extent_type&gt;</a> length() const noexcept;</div>
+<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;</div>
+<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="comment">//[[bindlib::make_free]]</span></div>
+<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <a class="code" href="namespaceboost_1_1afio_1_1v2__xxx.html#ac8d06ecaa9660e7251c1251d88c1305c" title="Please see https://ned14.github.io/boost.outcome/classboost_1_1outcome_1_1v1__xxx_1_1basic__monad.html.">result</a>&lt;extent_type&gt; truncate(extent_type newsize) noexcept;</div>
+<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;};</div>
+<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;</div>
+<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;<a class="code" href="group__config.html#ga39f521144fef02193249bb7e3b0698fe" title="Expands into the appropriate namespace markup to exit the AFIO v2 namespace.">BOOST_AFIO_V2_NAMESPACE_END</a></div>
+<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;</div>
+<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;<span class="preprocessor">#if BOOST_AFIO_HEADERS_ONLY == 1 &amp;&amp; !defined(DOXYGEN_SHOULD_SKIP_THIS)</span></div>
+<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define BOOST_AFIO_INCLUDED_BY_HEADER 1</span></div>
+<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#ifdef _WIN32</span></div>
+<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#include &quot;detail/impl/windows/file_handle.ipp&quot;</span></div>
+<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#include &quot;detail/impl/posix/file_handle.ipp&quot;</span></div>
+<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#undef BOOST_AFIO_INCLUDED_BY_HEADER</span></div>
+<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;<span class="preprocessor">#ifdef _MSC_VER</span></div>
+<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#pragma warning(pop)</span></div>
+<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;<span class="preprocessor">#endif</span></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
diff --git a/files.html b/files.html
index 3974dd80..80335cf5 100644
--- a/files.html
+++ b/files.html
@@ -119,22 +119,23 @@ $(document).ready(function(){initNavTree('files.html','');});
<tr id="row_0_0_0_0_0_0_0_" class="even"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="atomic__append_8hpp_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="atomic__append_8hpp.html" target="_self">atomic_append.hpp</a></td><td class="desc">Provides algorithm::shared_fs_mutex::atomic_append</td></tr>
<tr id="row_0_0_0_0_0_0_1_"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="base_8hpp_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="base_8hpp.html" target="_self">base.hpp</a></td><td class="desc">Provides algorithm::shared_fs_mutex::shared_fs_mutex</td></tr>
<tr id="row_0_0_0_0_0_0_2_" class="even"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="byte__ranges_8hpp_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="byte__ranges_8hpp.html" target="_self">byte_ranges.hpp</a></td><td class="desc">Provides algorithm::shared_fs_mutex::byte_ranges</td></tr>
-<tr id="row_0_0_0_0_0_0_3_"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><a href="lock__files_8hpp_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="lock__files_8hpp.html" target="_self">lock_files.hpp</a></td><td class="desc">Provides algorithm::shared_fs_mutex::lock_files</td></tr>
-<tr id="row_0_0_0_0_1_" class="even"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="v2_80_2afio_8hpp_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><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_0_2_"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="async__file__handle_8hpp_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><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>
-<tr id="row_0_0_0_0_3_" class="even"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="config_8hpp_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="config_8hpp.html" target="_self">config.hpp</a></td><td class="desc">Configures a compiler environment for AFIO header and source code</td></tr>
-<tr id="row_0_0_0_0_4_"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="deadline_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="deadline_8h.html" target="_self">deadline.h</a></td><td class="desc">Provides struct deadline</td></tr>
-<tr id="row_0_0_0_0_5_" class="even"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="file__handle_8hpp_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="file__handle_8hpp.html" target="_self">file_handle.hpp</a></td><td class="desc">Provides file_handle</td></tr>
-<tr id="row_0_0_0_0_6_"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="handle_8hpp_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="handle_8hpp.html" target="_self">handle.hpp</a></td><td class="desc">Provides handle</td></tr>
-<tr id="row_0_0_0_0_7_" class="even"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="io__service_8hpp_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="io__service_8hpp.html" target="_self">io_service.hpp</a></td><td class="desc">Provides io_service</td></tr>
-<tr id="row_0_0_0_0_8_"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="map__handle_8hpp_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="map__handle_8hpp.html" target="_self">map_handle.hpp</a></td><td class="desc">Provides <code>map_handle</code></td></tr>
-<tr id="row_0_0_0_0_9_" class="even"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="native__handle__type_8hpp_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="native__handle__type_8hpp.html" target="_self">native_handle_type.hpp</a></td><td class="desc">Provides native_handle_type</td></tr>
-<tr id="row_0_0_0_0_10_"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="statfs_8hpp_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="statfs_8hpp.html" target="_self">statfs.hpp</a></td><td class="desc">Provides statfs</td></tr>
-<tr id="row_0_0_0_0_11_" class="even"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="storage__profile_8hpp_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="storage__profile_8hpp.html" target="_self">storage_profile.hpp</a></td><td class="desc">Provides storage_profile</td></tr>
-<tr id="row_0_0_0_0_12_"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><a href="utils_8hpp_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="utils_8hpp.html" target="_self">utils.hpp</a></td><td class="desc">Provides namespace utils</td></tr>
-<tr id="row_0_0_0_1_" class="even"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="afio_8hpp_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="afio_8hpp.html" target="_self">afio.hpp</a></td><td class="desc">The master <em>latest version</em> AFIO include file. All AFIO consuming libraries should include this header only</td></tr>
-<tr id="row_0_0_0_2_"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="revision_8hpp_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><b>revision.hpp</b></td><td class="desc"></td></tr>
-<tr id="row_0_0_0_3_" class="even"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><a href="version_8hpp_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="version_8hpp.html" target="_self">version.hpp</a></td><td class="desc">Controls the version of AFIO for cmake, shared library and C++ namespace mangling</td></tr>
+<tr id="row_0_0_0_0_0_0_3_"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="lock__files_8hpp_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="lock__files_8hpp.html" target="_self">lock_files.hpp</a></td><td class="desc">Provides algorithm::shared_fs_mutex::lock_files</td></tr>
+<tr id="row_0_0_0_0_0_0_4_" class="even"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><a href="memory__map_8hpp_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><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_1_"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="v2_80_2afio_8hpp_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><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_0_2_" class="even"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="async__file__handle_8hpp_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><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>
+<tr id="row_0_0_0_0_3_"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="config_8hpp_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="config_8hpp.html" target="_self">config.hpp</a></td><td class="desc">Configures a compiler environment for AFIO header and source code</td></tr>
+<tr id="row_0_0_0_0_4_" class="even"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="deadline_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="deadline_8h.html" target="_self">deadline.h</a></td><td class="desc">Provides struct deadline</td></tr>
+<tr id="row_0_0_0_0_5_"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="file__handle_8hpp_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="file__handle_8hpp.html" target="_self">file_handle.hpp</a></td><td class="desc">Provides file_handle</td></tr>
+<tr id="row_0_0_0_0_6_" class="even"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="handle_8hpp_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="handle_8hpp.html" target="_self">handle.hpp</a></td><td class="desc">Provides handle</td></tr>
+<tr id="row_0_0_0_0_7_"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="io__service_8hpp_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="io__service_8hpp.html" target="_self">io_service.hpp</a></td><td class="desc">Provides io_service</td></tr>
+<tr id="row_0_0_0_0_8_" class="even"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="map__handle_8hpp_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="map__handle_8hpp.html" target="_self">map_handle.hpp</a></td><td class="desc">Provides <code>map_handle</code></td></tr>
+<tr id="row_0_0_0_0_9_"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="native__handle__type_8hpp_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="native__handle__type_8hpp.html" target="_self">native_handle_type.hpp</a></td><td class="desc">Provides native_handle_type</td></tr>
+<tr id="row_0_0_0_0_10_" class="even"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="statfs_8hpp_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="statfs_8hpp.html" target="_self">statfs.hpp</a></td><td class="desc">Provides statfs</td></tr>
+<tr id="row_0_0_0_0_11_"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="storage__profile_8hpp_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="storage__profile_8hpp.html" target="_self">storage_profile.hpp</a></td><td class="desc">Provides storage_profile</td></tr>
+<tr id="row_0_0_0_0_12_" class="even"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><a href="utils_8hpp_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="utils_8hpp.html" target="_self">utils.hpp</a></td><td class="desc">Provides namespace utils</td></tr>
+<tr id="row_0_0_0_1_"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="afio_8hpp_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="afio_8hpp.html" target="_self">afio.hpp</a></td><td class="desc">The master <em>latest version</em> AFIO include file. All AFIO consuming libraries should include this header only</td></tr>
+<tr id="row_0_0_0_2_" class="even"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="revision_8hpp_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><b>revision.hpp</b></td><td class="desc"></td></tr>
+<tr id="row_0_0_0_3_"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><a href="version_8hpp_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="version_8hpp.html" target="_self">version.hpp</a></td><td class="desc">Controls the version of AFIO for cmake, shared library and C++ namespace mangling</td></tr>
</table>
</div><!-- directory -->
</div><!-- contents -->
diff --git a/functions_0x65.html b/functions_0x65.html
index 997bf260..d5cac02d 100644
--- a/functions_0x65.html
+++ b/functions_0x65.html
@@ -154,6 +154,7 @@ $(document).ready(function(){initNavTree('functions_0x65.html','');});
</li>
<li>entities_type
: <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1atomic__append.html#a7f7a092579354a2189a1b541d1993557">boost::afio::v2_xxx::algorithm::shared_fs_mutex::atomic_append</a>
+, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#a9cc8c9f8c25a6ec30464839ebdf845af">boost::afio::v2_xxx::algorithm::shared_fs_mutex::memory_map</a>
, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html#a02af43575220c42252610c818e109b72">boost::afio::v2_xxx::algorithm::shared_fs_mutex::shared_fs_mutex</a>
, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html#a20147a7ddd0a3553bdcefeda4863b846">boost::afio::v2_xxx::algorithm::shared_fs_mutex::byte_ranges</a>
, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1lock__files.html#a82ab65a36dc2dc72fc4b22db77e0e9f7">boost::afio::v2_xxx::algorithm::shared_fs_mutex::lock_files</a>
@@ -164,17 +165,19 @@ $(document).ready(function(){initNavTree('functions_0x65.html','');});
<li>entity_from_string()
: <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html#adc91b1e075ed52fc277c59213cf7b357">boost::afio::v2_xxx::algorithm::shared_fs_mutex::shared_fs_mutex</a>
</li>
-<li>entity_type
-: <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1atomic__append.html#a0077428ce79aeba4e529024de8fb2664">boost::afio::v2_xxx::algorithm::shared_fs_mutex::atomic_append</a>
+<li>entity_type()
+: <a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex_1_1entity__type.html#a227a55dd53f95688f8859839d84d40d5">boost::afio::v2_xxx::algorithm::shared_fs_mutex::shared_fs_mutex::entity_type</a>
+, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1atomic__append.html#a0077428ce79aeba4e529024de8fb2664">boost::afio::v2_xxx::algorithm::shared_fs_mutex::atomic_append</a>
, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html#a31c990c55f31e5b6d2cb45af1ae38b99">boost::afio::v2_xxx::algorithm::shared_fs_mutex::byte_ranges</a>
, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1lock__files.html#a0fb5503f53e6ac096efa6e25bad0ee33">boost::afio::v2_xxx::algorithm::shared_fs_mutex::lock_files</a>
+, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#ab248a548b71660335d14f88270741b1c">boost::afio::v2_xxx::algorithm::shared_fs_mutex::memory_map</a>
, <a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex_1_1entity__type.html#a133925631cc0c739bf1d5475a4276cff">boost::afio::v2_xxx::algorithm::shared_fs_mutex::shared_fs_mutex::entity_type</a>
</li>
<li>enum_type
-: <a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1section__handle_1_1flag__base.html#aadb6d09d6768eb7ef629f3c10aa24b21">boost::afio::v2_xxx::section_handle::flag_base</a>
+: <a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1handle_1_1flag__base.html#a341bd60b4fd9aa6a6737f40e52d22458">boost::afio::v2_xxx::handle::flag_base</a>
+, <a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1section__handle_1_1flag__base.html#aadb6d09d6768eb7ef629f3c10aa24b21">boost::afio::v2_xxx::section_handle::flag_base</a>
, <a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1native__handle__type_1_1disposition__base.html#a3f5231b1a86b8c661b39312f0f4a02f5">boost::afio::v2_xxx::native_handle_type::disposition_base</a>
, <a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1bitfield.html#af56b8e2eb44e5d87d31c40ede740717f">boost::afio::v2_xxx::bitfield&lt; Enum &gt;</a>
-, <a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1handle_1_1flag__base.html#a341bd60b4fd9aa6a6737f40e52d22458">boost::afio::v2_xxx::handle::flag_base</a>
</li>
<li>erased_io_state_ptr
: <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#af15c6e8c4f0cef2a29657c26886c9216">boost::afio::v2_xxx::async_file_handle</a>
@@ -192,11 +195,11 @@ $(document).ready(function(){initNavTree('functions_0x65.html','');});
: <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1extent__guard.html#a13a2bc37648c856ff15d8934cd43b277">boost::afio::v2_xxx::io_handle::extent_guard</a>
</li>
<li>extent_guard()
-: <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1extent__guard.html#a628d8eb3aa3a57fdf0580f4429d1d09d">boost::afio::v2_xxx::io_handle::extent_guard</a>
+: <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1extent__guard.html#a991bb6844256e4dcab1e4e622503dc15">boost::afio::v2_xxx::io_handle::extent_guard</a>
</li>
<li>extent_type
-: <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__service.html#aa853170124634f2065cd5df672bf594d">boost::afio::v2_xxx::io_service</a>
-, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a617ab627aa596b325d7bfef5210a43f3">boost::afio::v2_xxx::handle</a>
+: <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a617ab627aa596b325d7bfef5210a43f3">boost::afio::v2_xxx::handle</a>
+, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__service.html#aa853170124634f2065cd5df672bf594d">boost::afio::v2_xxx::io_service</a>
</li>
<li>extents
: <a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1statfs__t_1_1f__flags__t.html#a7e81efa5d94a7b2561707529defc7a43">boost::afio::v2_xxx::statfs_t::f_flags_t</a>
diff --git a/functions_0x66.html b/functions_0x66.html
index 671c1ac3..dbfe7d18 100644
--- a/functions_0x66.html
+++ b/functions_0x66.html
@@ -199,7 +199,7 @@ $(document).ready(function(){initNavTree('functions_0x66.html','');});
, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#af912595f8964b78186236a2cec1150a4">boost::afio::v2_xxx::file_handle</a>
</li>
<li>file_handle()
-: <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a358df51329f475315cee5cfffbffe75c">boost::afio::v2_xxx::file_handle</a>
+: <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#ac7e2ebc0391fec150878a8149dc07523">boost::afio::v2_xxx::file_handle</a>
</li>
<li>filecompression
: <a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1statfs__t_1_1f__flags__t.html#ae0d6b4b2140389446b90c9355b4c2086">boost::afio::v2_xxx::statfs_t::f_flags_t</a>
@@ -228,6 +228,9 @@ $(document).ready(function(){initNavTree('functions_0x66.html','');});
<li>fs_mutex_lock_files()
: <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1lock__files.html#a7ea9ac1e0ce49d90245e0e3c55b51168">boost::afio::v2_xxx::algorithm::shared_fs_mutex::lock_files</a>
</li>
+<li>fs_mutex_map()
+: <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#a9a91ca12fd4b0bede7c30c5adf1946b2">boost::afio::v2_xxx::algorithm::shared_fs_mutex::memory_map</a>
+</li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
diff --git a/functions_0x68.html b/functions_0x68.html
index 3ef46b2d..9c41479d 100644
--- a/functions_0x68.html
+++ b/functions_0x68.html
@@ -152,6 +152,7 @@ $(document).ready(function(){initNavTree('functions_0x68.html','');});
<li>handle()
: <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#aa845780704a8508c658c2b878f574ba7">boost::afio::v2_xxx::handle</a>
, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html#ab569324e766b934eeb6017a9a86544e9">boost::afio::v2_xxx::algorithm::shared_fs_mutex::byte_ranges</a>
+, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#acf3ab16b4bfebf3b6988146e4fbeb138">boost::afio::v2_xxx::algorithm::shared_fs_mutex::memory_map</a>
, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a2c20412387db2551d9b26824412d4986">boost::afio::v2_xxx::handle</a>
, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1extent__guard.html#a61781f315d92cdf5b077766df650a245">boost::afio::v2_xxx::io_handle::extent_guard</a>
, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1atomic__append.html#a5f4ce4442c8011ec8ac2b7e53ff04e71">boost::afio::v2_xxx::algorithm::shared_fs_mutex::atomic_append</a>
diff --git a/functions_0x6d.html b/functions_0x6d.html
index fbe770c6..139aeb5f 100644
--- a/functions_0x6d.html
+++ b/functions_0x6d.html
@@ -155,6 +155,9 @@ $(document).ready(function(){initNavTree('functions_0x6d.html','');});
<li>max_size()
: <a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1storage__profile.html#a7cfd0a293329c63b919c74c63ca7cb6e">boost::afio::v2_xxx::storage_profile::storage_profile</a>
</li>
+<li>memory_map()
+: <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#a8803169706293901b29fbae2eaad1ee6">boost::afio::v2_xxx::algorithm::shared_fs_mutex::memory_map</a>
+</li>
<li>mode
: <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#acd7f0c039e94c7ad40937fe32a2cabad">boost::afio::v2_xxx::handle</a>
</li>
diff --git a/functions_0x6f.html b/functions_0x6f.html
index 90a971ed..a93ecc25 100644
--- a/functions_0x6f.html
+++ b/functions_0x6f.html
@@ -190,8 +190,9 @@ $(document).ready(function(){initNavTree('functions_0x6f.html','');});
, <a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1native__handle__type.html#a0321d20d2c13b33eca28882dc408fbad">boost::afio::v2_xxx::native_handle_type</a>
, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1atomic__append.html#a1dbf4e731e06b9ee79a32d31f713de09">boost::afio::v2_xxx::algorithm::shared_fs_mutex::atomic_append</a>
, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html#af40acef1ee8401d03f0356b6782257b9">boost::afio::v2_xxx::algorithm::shared_fs_mutex::byte_ranges</a>
-, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1lock__files.html#a49aebd3a989559ce96f4ffa33bedd6fb">boost::afio::v2_xxx::algorithm::shared_fs_mutex::lock_files</a>
+, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#a0245abc2bf944b196efeb4f8bdb1dd24">boost::afio::v2_xxx::algorithm::shared_fs_mutex::memory_map</a>
, <a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1native__handle__type.html#abd0ab4087b10e21c534e33ea70c3006b">boost::afio::v2_xxx::native_handle_type</a>
+, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1lock__files.html#a49aebd3a989559ce96f4ffa33bedd6fb">boost::afio::v2_xxx::algorithm::shared_fs_mutex::lock_files</a>
, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#ad86e1421f2b1cb12c635a35ecb6ee417">boost::afio::v2_xxx::async_file_handle</a>
, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#ae2d1e75105df6d59aa5637a1a68cbf06">boost::afio::v2_xxx::file_handle</a>
, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#aae278681887f4cb68b0b57c5ef6c8d4e">boost::afio::v2_xxx::handle</a>
@@ -200,16 +201,16 @@ $(document).ready(function(){initNavTree('functions_0x6f.html','');});
, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#ae07b3e5449e9116d733ef449b6ac0713">boost::afio::v2_xxx::map_handle</a>
</li>
<li>operator==()
-: <a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1bitfield.html#a52b248bae4c8986b03e40fecf693d8c1">boost::afio::v2_xxx::bitfield&lt; Enum &gt;</a>
+: <a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1bitfield.html#a5db63e2f79f2c90f3113c83c84fd60bb">boost::afio::v2_xxx::bitfield&lt; Enum &gt;</a>
</li>
<li>operator^()
-: <a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1bitfield.html#a03a1634b5fbb39f48f6ab519713f45b7">boost::afio::v2_xxx::bitfield&lt; Enum &gt;</a>
+: <a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1bitfield.html#ac2bbff8d0d820eda6a0a04183a7f5f4f">boost::afio::v2_xxx::bitfield&lt; Enum &gt;</a>
</li>
<li>operator^=()
-: <a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1bitfield.html#ab5a10d2848c2f70f2c73d761521c52da">boost::afio::v2_xxx::bitfield&lt; Enum &gt;</a>
+: <a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1bitfield.html#a0d4fd7ce20353cf0348897a51fe17063">boost::afio::v2_xxx::bitfield&lt; Enum &gt;</a>
</li>
<li>operator|()
-: <a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1bitfield.html#ac153dd982f052ea2d467c13f3c83682f">boost::afio::v2_xxx::bitfield&lt; Enum &gt;</a>
+: <a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1bitfield.html#adaafa221d73fae18c1107012d410b152">boost::afio::v2_xxx::bitfield&lt; Enum &gt;</a>
</li>
<li>operator|=()
: <a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1bitfield.html#aab6164a66672cfe1ed06d09db05cd949">boost::afio::v2_xxx::bitfield&lt; Enum &gt;</a>
diff --git a/functions_0x72.html b/functions_0x72.html
index ed9c7fad..70bac3df 100644
--- a/functions_0x72.html
+++ b/functions_0x72.html
@@ -149,16 +149,18 @@ $(document).ready(function(){initNavTree('functions_0x72.html','');});
<li>random_entity()
: <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html#a493872c8b5dbfa83fdf82242b928e112">boost::afio::v2_xxx::algorithm::shared_fs_mutex::shared_fs_mutex</a>
</li>
+<li>random_file()
+: <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a603b0827a9ae139b8f5806b1297fa5f0">boost::afio::v2_xxx::file_handle</a>
+</li>
<li>rdonly
: <a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1statfs__t_1_1f__flags__t.html#a888a1dcf7397f05e735c80f2e33bcf89">boost::afio::v2_xxx::statfs_t::f_flags_t</a>
</li>
-<li>read()
-: <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#ab371d8427aeb4bd0ca5f8a39a98ea5a2">boost::afio::v2_xxx::io_handle</a>
+<li>read
+: <a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1section__handle_1_1flag__base.html#aadb6d09d6768eb7ef629f3c10aa24b21a9e90016114f8678131fb7547282e6b48">boost::afio::v2_xxx::section_handle::flag_base</a>
+, <a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1storage__profile.html#afc56522cf4f6d90bd825f7f50bff7432">boost::afio::v2_xxx::storage_profile::storage_profile</a>
, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#acd7f0c039e94c7ad40937fe32a2cabadaecae13117d6f0584c25a9da6c8f8415e">boost::afio::v2_xxx::handle</a>
-, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a4480a48b8e54cde62fd2cee4ceed3725">boost::afio::v2_xxx::io_handle</a>
-, <a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1section__handle_1_1flag__base.html#aadb6d09d6768eb7ef629f3c10aa24b21a9e90016114f8678131fb7547282e6b48">boost::afio::v2_xxx::section_handle::flag_base</a>
+, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#ab371d8427aeb4bd0ca5f8a39a98ea5a2">boost::afio::v2_xxx::io_handle</a>
, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a5b832e5045ae54db8561133763837a47">boost::afio::v2_xxx::map_handle</a>
-, <a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1storage__profile.html#afc56522cf4f6d90bd825f7f50bff7432">boost::afio::v2_xxx::storage_profile::storage_profile</a>
</li>
<li>readable
: <a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1native__handle__type_1_1disposition__base.html#a3f5231b1a86b8c661b39312f0f4a02f5a3dc019819243ad24fc283879f26e6c5d">boost::afio::v2_xxx::native_handle_type::disposition_base</a>
@@ -173,10 +175,10 @@ $(document).ready(function(){initNavTree('functions_0x72.html','');});
: <a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1storage__profile.html#a2e1ee29ad902c5ae50d4a6762beeeaa5">boost::afio::v2_xxx::storage_profile::storage_profile</a>
</li>
<li>release()
-: <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex_1_1entities__guard.html#a0cf3ef1014c95261a2799bcc055949ae">boost::afio::v2_xxx::algorithm::shared_fs_mutex::shared_fs_mutex::entities_guard</a>
-, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#ad191467425f5966dc4a42f365bf13dc7">boost::afio::v2_xxx::map_handle</a>
-, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a59c9bc1338196095a028b2870dcfb61d">boost::afio::v2_xxx::handle</a>
+: <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#ad191467425f5966dc4a42f365bf13dc7">boost::afio::v2_xxx::map_handle</a>
+, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex_1_1entities__guard.html#a0cf3ef1014c95261a2799bcc055949ae">boost::afio::v2_xxx::algorithm::shared_fs_mutex::shared_fs_mutex::entities_guard</a>
, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1extent__guard.html#aed27aa9b18e13bd82038b190071aeafd">boost::afio::v2_xxx::io_handle::extent_guard</a>
+, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a59c9bc1338196095a028b2870dcfb61d">boost::afio::v2_xxx::handle</a>
</li>
<li>requires_aligned_io()
: <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a7d1fa70986dc1edea222e17fbabc6425">boost::afio::v2_xxx::handle</a>
diff --git a/functions_0x74.html b/functions_0x74.html
index 478f9e30..4a3904e8 100644
--- a/functions_0x74.html
+++ b/functions_0x74.html
@@ -146,6 +146,12 @@ $(document).ready(function(){initNavTree('functions_0x74.html','');});
<div class="textblock">Here is a list of all documented class members with links to the class documentation for each member:</div>
<h3><a class="anchor" id="index_t"></a>- t -</h3><ul>
+<li>temp_file()
+: <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#aa1effcf350c823b713f7767e7530c545">boost::afio::v2_xxx::file_handle</a>
+</li>
+<li>temp_inode()
+: <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a9be07898862c1c14cf4bd984a57c5626">boost::afio::v2_xxx::file_handle</a>
+</li>
<li>temporary
: <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a81c7de194feaa88684ca9851d0d527caad5197d93c063a2b1e22d1630a39b7aef">boost::afio::v2_xxx::handle</a>
</li>
@@ -153,13 +159,14 @@ $(document).ready(function(){initNavTree('functions_0x74.html','');});
: <a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1deadline.html#a9fbf04ae37e6a7dec7f505303ec149a9">boost::afio::v2_xxx::deadline</a>
</li>
<li>truncate()
-: <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1section__handle.html#a5a4ed3e38634ee4378133c7ccbb882d6">boost::afio::v2_xxx::section_handle</a>
+: <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a562b5568e9cd0f1a26f0379a9d1a3b79">boost::afio::v2_xxx::file_handle</a>
, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#ab7acaf4e9155f8ad4023813354de5357a244f58cf07c35fd48d7524b289551e5c">boost::afio::v2_xxx::handle</a>
-, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a562b5568e9cd0f1a26f0379a9d1a3b79">boost::afio::v2_xxx::file_handle</a>
+, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1section__handle.html#a5a4ed3e38634ee4378133c7ccbb882d6">boost::afio::v2_xxx::section_handle</a>
</li>
<li>try_lock()
: <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html#a851d41aee26d0d58cc7e6371724dfd80">boost::afio::v2_xxx::algorithm::shared_fs_mutex::shared_fs_mutex</a>
, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#aab870fe5fa041af29e2d85a5c292077f">boost::afio::v2_xxx::io_handle</a>
+, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html#ad8f772f5f052920879526dbb66a90823">boost::afio::v2_xxx::algorithm::shared_fs_mutex::shared_fs_mutex</a>
</li>
<li>type
: <a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1item__base.html#a642e481b85a5fc293799731e2312522d">boost::afio::v2_xxx::storage_profile::item_base</a>
diff --git a/functions_0x75.html b/functions_0x75.html
index c746e2ac..4a68e375 100644
--- a/functions_0x75.html
+++ b/functions_0x75.html
@@ -153,6 +153,7 @@ $(document).ready(function(){initNavTree('functions_0x75.html','');});
: <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1extent__guard.html#a40229ea71146d437079e68f2aca65d24">boost::afio::v2_xxx::io_handle::extent_guard</a>
, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1atomic__append.html#aca5a30951f774a86874c53f090e1a6ab">boost::afio::v2_xxx::algorithm::shared_fs_mutex::atomic_append</a>
, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1lock__files.html#ad28bd7249e7280d77be3f687b887c741">boost::afio::v2_xxx::algorithm::shared_fs_mutex::lock_files</a>
+, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#a80efd5836f20ac304bdcf0033c95de8b">boost::afio::v2_xxx::algorithm::shared_fs_mutex::memory_map</a>
, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html#aeff040753a6344db13a37a40a0c4c3f1">boost::afio::v2_xxx::algorithm::shared_fs_mutex::byte_ranges</a>
, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html#ab598ba46a5b99ba81bc41be40d79b8e5">boost::afio::v2_xxx::algorithm::shared_fs_mutex::shared_fs_mutex</a>
, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex_1_1entities__guard.html#a3633ff7db6fbab05a2d46da8302508ff">boost::afio::v2_xxx::algorithm::shared_fs_mutex::shared_fs_mutex::entities_guard</a>
diff --git a/functions_func_0x66.html b/functions_func_0x66.html
index 5b8d5d3a..d9f56ad3 100644
--- a/functions_func_0x66.html
+++ b/functions_func_0x66.html
@@ -178,6 +178,9 @@ $(document).ready(function(){initNavTree('functions_func_0x66.html','');});
<li>fs_mutex_lock_files()
: <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1lock__files.html#a7ea9ac1e0ce49d90245e0e3c55b51168">boost::afio::v2_xxx::algorithm::shared_fs_mutex::lock_files</a>
</li>
+<li>fs_mutex_map()
+: <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#a9a91ca12fd4b0bede7c30c5adf1946b2">boost::afio::v2_xxx::algorithm::shared_fs_mutex::memory_map</a>
+</li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
diff --git a/functions_func_0x68.html b/functions_func_0x68.html
index 0a0ae4c0..2807f2f5 100644
--- a/functions_func_0x68.html
+++ b/functions_func_0x68.html
@@ -147,13 +147,14 @@ $(document).ready(function(){initNavTree('functions_func_0x68.html','');});
<h3><a class="anchor" id="index_h"></a>- h -</h3><ul>
<li>handle()
: <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#aa845780704a8508c658c2b878f574ba7">boost::afio::v2_xxx::handle</a>
+, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#acf3ab16b4bfebf3b6988146e4fbeb138">boost::afio::v2_xxx::algorithm::shared_fs_mutex::memory_map</a>
, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html#ab569324e766b934eeb6017a9a86544e9">boost::afio::v2_xxx::algorithm::shared_fs_mutex::byte_ranges</a>
, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1atomic__append.html#a5f4ce4442c8011ec8ac2b7e53ff04e71">boost::afio::v2_xxx::algorithm::shared_fs_mutex::atomic_append</a>
, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1extent__guard.html#a61781f315d92cdf5b077766df650a245">boost::afio::v2_xxx::io_handle::extent_guard</a>
, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a0dbf908498e5cbf54ee0fff752c0c490">boost::afio::v2_xxx::handle</a>
</li>
<li>hash()
-: <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1utils_1_1fast__hash.html#add85551b9f29910b17f7b33b7c8d3626">boost::afio::v2_xxx::utils::fast_hash</a>
+: <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1utils_1_1fast__hash.html#a5563217f87a97056bd5bc662a8c4c78e">boost::afio::v2_xxx::utils::fast_hash</a>
</li>
</ul>
</div><!-- contents -->
diff --git a/functions_func_0x6d.html b/functions_func_0x6d.html
index 10b137f6..2529fe50 100644
--- a/functions_func_0x6d.html
+++ b/functions_func_0x6d.html
@@ -154,6 +154,9 @@ $(document).ready(function(){initNavTree('functions_func_0x6d.html','');});
<li>max_size()
: <a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1storage__profile.html#a7cfd0a293329c63b919c74c63ca7cb6e">boost::afio::v2_xxx::storage_profile::storage_profile</a>
</li>
+<li>memory_map()
+: <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#a8803169706293901b29fbae2eaad1ee6">boost::afio::v2_xxx::algorithm::shared_fs_mutex::memory_map</a>
+</li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
diff --git a/functions_func_0x6f.html b/functions_func_0x6f.html
index 85abbe7a..56213733 100644
--- a/functions_func_0x6f.html
+++ b/functions_func_0x6f.html
@@ -180,11 +180,12 @@ $(document).ready(function(){initNavTree('functions_func_0x6f.html','');});
</li>
<li>operator=()
: <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html#af40acef1ee8401d03f0356b6782257b9">boost::afio::v2_xxx::algorithm::shared_fs_mutex::byte_ranges</a>
-, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#ae2d1e75105df6d59aa5637a1a68cbf06">boost::afio::v2_xxx::file_handle</a>
, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1lock__files.html#a49aebd3a989559ce96f4ffa33bedd6fb">boost::afio::v2_xxx::algorithm::shared_fs_mutex::lock_files</a>
+, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#ae2d1e75105df6d59aa5637a1a68cbf06">boost::afio::v2_xxx::file_handle</a>
+, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#a0245abc2bf944b196efeb4f8bdb1dd24">boost::afio::v2_xxx::algorithm::shared_fs_mutex::memory_map</a>
+, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1atomic__append.html#a1dbf4e731e06b9ee79a32d31f713de09">boost::afio::v2_xxx::algorithm::shared_fs_mutex::atomic_append</a>
, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1section__handle.html#a4b8a67f1d2da5bb2123da30835b0f894">boost::afio::v2_xxx::section_handle</a>
, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#ad86e1421f2b1cb12c635a35ecb6ee417">boost::afio::v2_xxx::async_file_handle</a>
-, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1atomic__append.html#a1dbf4e731e06b9ee79a32d31f713de09">boost::afio::v2_xxx::algorithm::shared_fs_mutex::atomic_append</a>
, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#aae278681887f4cb68b0b57c5ef6c8d4e">boost::afio::v2_xxx::handle</a>
, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1extent__guard.html#af8937c84d38c085192e9256211694dc0">boost::afio::v2_xxx::io_handle::extent_guard</a>
, <a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1native__handle__type.html#a0321d20d2c13b33eca28882dc408fbad">boost::afio::v2_xxx::native_handle_type</a>
@@ -192,7 +193,7 @@ $(document).ready(function(){initNavTree('functions_func_0x6f.html','');});
, <a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1native__handle__type.html#abd0ab4087b10e21c534e33ea70c3006b">boost::afio::v2_xxx::native_handle_type</a>
</li>
<li>operator==()
-: <a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1bitfield.html#a52b248bae4c8986b03e40fecf693d8c1">boost::afio::v2_xxx::bitfield&lt; Enum &gt;</a>
+: <a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1bitfield.html#a5db63e2f79f2c90f3113c83c84fd60bb">boost::afio::v2_xxx::bitfield&lt; Enum &gt;</a>
</li>
<li>operator^()
: <a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1bitfield.html#ac2bbff8d0d820eda6a0a04183a7f5f4f">boost::afio::v2_xxx::bitfield&lt; Enum &gt;</a>
@@ -201,10 +202,10 @@ $(document).ready(function(){initNavTree('functions_func_0x6f.html','');});
: <a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1bitfield.html#ab5a10d2848c2f70f2c73d761521c52da">boost::afio::v2_xxx::bitfield&lt; Enum &gt;</a>
</li>
<li>operator|()
-: <a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1bitfield.html#ac153dd982f052ea2d467c13f3c83682f">boost::afio::v2_xxx::bitfield&lt; Enum &gt;</a>
+: <a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1bitfield.html#adaafa221d73fae18c1107012d410b152">boost::afio::v2_xxx::bitfield&lt; Enum &gt;</a>
</li>
<li>operator|=()
-: <a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1bitfield.html#af9361bd5b8994f678a554dd5f70cb3a6">boost::afio::v2_xxx::bitfield&lt; Enum &gt;</a>
+: <a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1bitfield.html#aab6164a66672cfe1ed06d09db05cd949">boost::afio::v2_xxx::bitfield&lt; Enum &gt;</a>
</li>
<li>operator~()
: <a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1bitfield.html#a71b7578ba3b27c38bb5986f77d9313f6">boost::afio::v2_xxx::bitfield&lt; Enum &gt;</a>
diff --git a/functions_func_0x72.html b/functions_func_0x72.html
index b97f1159..a7afd62c 100644
--- a/functions_func_0x72.html
+++ b/functions_func_0x72.html
@@ -148,21 +148,24 @@ $(document).ready(function(){initNavTree('functions_func_0x72.html','');});
<li>random_entity()
: <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html#a493872c8b5dbfa83fdf82242b928e112">boost::afio::v2_xxx::algorithm::shared_fs_mutex::shared_fs_mutex</a>
</li>
+<li>random_file()
+: <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a603b0827a9ae139b8f5806b1297fa5f0">boost::afio::v2_xxx::file_handle</a>
+</li>
<li>read()
-: <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#ab371d8427aeb4bd0ca5f8a39a98ea5a2">boost::afio::v2_xxx::io_handle</a>
+: <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a4480a48b8e54cde62fd2cee4ceed3725">boost::afio::v2_xxx::io_handle</a>
, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a5b832e5045ae54db8561133763837a47">boost::afio::v2_xxx::map_handle</a>
+, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#ab371d8427aeb4bd0ca5f8a39a98ea5a2">boost::afio::v2_xxx::io_handle</a>
, <a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1storage__profile.html#afc56522cf4f6d90bd825f7f50bff7432">boost::afio::v2_xxx::storage_profile::storage_profile</a>
-, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a4480a48b8e54cde62fd2cee4ceed3725">boost::afio::v2_xxx::io_handle</a>
</li>
<li>release()
-: <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#ad191467425f5966dc4a42f365bf13dc7">boost::afio::v2_xxx::map_handle</a>
+: <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1extent__guard.html#aed27aa9b18e13bd82038b190071aeafd">boost::afio::v2_xxx::io_handle::extent_guard</a>
+, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#ad191467425f5966dc4a42f365bf13dc7">boost::afio::v2_xxx::map_handle</a>
, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex_1_1entities__guard.html#a0cf3ef1014c95261a2799bcc055949ae">boost::afio::v2_xxx::algorithm::shared_fs_mutex::shared_fs_mutex::entities_guard</a>
, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a59c9bc1338196095a028b2870dcfb61d">boost::afio::v2_xxx::handle</a>
-, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1extent__guard.html#aed27aa9b18e13bd82038b190071aeafd">boost::afio::v2_xxx::io_handle::extent_guard</a>
</li>
<li>requires_aligned_io()
-: <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a7d1fa70986dc1edea222e17fbabc6425">boost::afio::v2_xxx::handle</a>
-, <a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1native__handle__type.html#aed2d23f6ffd43b6c300bfe048616474e">boost::afio::v2_xxx::native_handle_type</a>
+: <a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1native__handle__type.html#aed2d23f6ffd43b6c300bfe048616474e">boost::afio::v2_xxx::native_handle_type</a>
+, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a7d1fa70986dc1edea222e17fbabc6425">boost::afio::v2_xxx::handle</a>
</li>
<li>result_bits_valid()
: <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1utils_1_1secded__ecc.html#a3098124297618c7d86c7bdde8e4ed200">boost::afio::v2_xxx::utils::secded_ecc&lt; blocksize &gt;</a>
diff --git a/functions_func_0x74.html b/functions_func_0x74.html
index 565fcb40..7d6e7fde 100644
--- a/functions_func_0x74.html
+++ b/functions_func_0x74.html
@@ -145,6 +145,12 @@ $(document).ready(function(){initNavTree('functions_func_0x74.html','');});
&#160;
<h3><a class="anchor" id="index_t"></a>- t -</h3><ul>
+<li>temp_file()
+: <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#aa1effcf350c823b713f7767e7530c545">boost::afio::v2_xxx::file_handle</a>
+</li>
+<li>temp_inode()
+: <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a9be07898862c1c14cf4bd984a57c5626">boost::afio::v2_xxx::file_handle</a>
+</li>
<li>to_time_point()
: <a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1deadline.html#a9fbf04ae37e6a7dec7f505303ec149a9">boost::afio::v2_xxx::deadline</a>
</li>
@@ -153,8 +159,8 @@ $(document).ready(function(){initNavTree('functions_func_0x74.html','');});
, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1section__handle.html#a5a4ed3e38634ee4378133c7ccbb882d6">boost::afio::v2_xxx::section_handle</a>
</li>
<li>try_lock()
-: <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#aab870fe5fa041af29e2d85a5c292077f">boost::afio::v2_xxx::io_handle</a>
-, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html#a851d41aee26d0d58cc7e6371724dfd80">boost::afio::v2_xxx::algorithm::shared_fs_mutex::shared_fs_mutex</a>
+: <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html#ad8f772f5f052920879526dbb66a90823">boost::afio::v2_xxx::algorithm::shared_fs_mutex::shared_fs_mutex</a>
+, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#aab870fe5fa041af29e2d85a5c292077f">boost::afio::v2_xxx::io_handle</a>
</li>
</ul>
</div><!-- contents -->
diff --git a/functions_func_0x75.html b/functions_func_0x75.html
index ffbf57c1..50ec1aed 100644
--- a/functions_func_0x75.html
+++ b/functions_func_0x75.html
@@ -148,10 +148,11 @@ $(document).ready(function(){initNavTree('functions_func_0x75.html','');});
<li>unlock()
: <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1extent__guard.html#a40229ea71146d437079e68f2aca65d24">boost::afio::v2_xxx::io_handle::extent_guard</a>
, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a0d043e29e065db9618f6df2e43cc1d42">boost::afio::v2_xxx::io_handle</a>
+, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex_1_1entities__guard.html#a3633ff7db6fbab05a2d46da8302508ff">boost::afio::v2_xxx::algorithm::shared_fs_mutex::shared_fs_mutex::entities_guard</a>
, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1lock__files.html#ad28bd7249e7280d77be3f687b887c741">boost::afio::v2_xxx::algorithm::shared_fs_mutex::lock_files</a>
, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html#aeff040753a6344db13a37a40a0c4c3f1">boost::afio::v2_xxx::algorithm::shared_fs_mutex::byte_ranges</a>
, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html#ab598ba46a5b99ba81bc41be40d79b8e5">boost::afio::v2_xxx::algorithm::shared_fs_mutex::shared_fs_mutex</a>
-, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex_1_1entities__guard.html#a3633ff7db6fbab05a2d46da8302508ff">boost::afio::v2_xxx::algorithm::shared_fs_mutex::shared_fs_mutex::entities_guard</a>
+, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#a80efd5836f20ac304bdcf0033c95de8b">boost::afio::v2_xxx::algorithm::shared_fs_mutex::memory_map</a>
, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1atomic__append.html#aca5a30951f774a86874c53f090e1a6ab">boost::afio::v2_xxx::algorithm::shared_fs_mutex::atomic_append</a>
</li>
<li>using_kqueues()
diff --git a/functions_type.html b/functions_type.html
index 53fca117..b1b1572b 100644
--- a/functions_type.html
+++ b/functions_type.html
@@ -167,12 +167,14 @@ $(document).ready(function(){initNavTree('functions_type.html','');});
: <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1atomic__append.html#a7f7a092579354a2189a1b541d1993557">boost::afio::v2_xxx::algorithm::shared_fs_mutex::atomic_append</a>
, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html#a02af43575220c42252610c818e109b72">boost::afio::v2_xxx::algorithm::shared_fs_mutex::shared_fs_mutex</a>
, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1lock__files.html#a82ab65a36dc2dc72fc4b22db77e0e9f7">boost::afio::v2_xxx::algorithm::shared_fs_mutex::lock_files</a>
+, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#a9cc8c9f8c25a6ec30464839ebdf845af">boost::afio::v2_xxx::algorithm::shared_fs_mutex::memory_map</a>
, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html#a20147a7ddd0a3553bdcefeda4863b846">boost::afio::v2_xxx::algorithm::shared_fs_mutex::byte_ranges</a>
</li>
<li>entity_type
-: <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1atomic__append.html#a0077428ce79aeba4e529024de8fb2664">boost::afio::v2_xxx::algorithm::shared_fs_mutex::atomic_append</a>
-, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1lock__files.html#a0fb5503f53e6ac096efa6e25bad0ee33">boost::afio::v2_xxx::algorithm::shared_fs_mutex::lock_files</a>
+: <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1lock__files.html#a0fb5503f53e6ac096efa6e25bad0ee33">boost::afio::v2_xxx::algorithm::shared_fs_mutex::lock_files</a>
+, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#ab248a548b71660335d14f88270741b1c">boost::afio::v2_xxx::algorithm::shared_fs_mutex::memory_map</a>
, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html#a31c990c55f31e5b6d2cb45af1ae38b99">boost::afio::v2_xxx::algorithm::shared_fs_mutex::byte_ranges</a>
+, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1atomic__append.html#a0077428ce79aeba4e529024de8fb2664">boost::afio::v2_xxx::algorithm::shared_fs_mutex::atomic_append</a>
</li>
<li>enum_type
: <a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1bitfield.html#af56b8e2eb44e5d87d31c40ede740717f">boost::afio::v2_xxx::bitfield&lt; Enum &gt;</a>
@@ -181,8 +183,8 @@ $(document).ready(function(){initNavTree('functions_type.html','');});
: <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#af15c6e8c4f0cef2a29657c26886c9216">boost::afio::v2_xxx::async_file_handle</a>
</li>
<li>extent_type
-: <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__service.html#aa853170124634f2065cd5df672bf594d">boost::afio::v2_xxx::io_service</a>
-, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a617ab627aa596b325d7bfef5210a43f3">boost::afio::v2_xxx::handle</a>
+: <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a617ab627aa596b325d7bfef5210a43f3">boost::afio::v2_xxx::handle</a>
+, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__service.html#aa853170124634f2065cd5df672bf594d">boost::afio::v2_xxx::io_service</a>
</li>
</ul>
diff --git a/hierarchy.html b/hierarchy.html
index 06e94d82..8bce378b 100644
--- a/hierarchy.html
+++ b/hierarchy.html
@@ -112,55 +112,57 @@ $(document).ready(function(){initNavTree('hierarchy.html','');});
<div class="contents">
<div class="textblock">This inheritance list is sorted roughly, but not completely, alphabetically:</div><div class="directory">
<div class="levels">[detail level <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span><span onclick="javascript:toggleLevel(3);">3</span><span onclick="javascript:toggleLevel(4);">4</span>]</div><table class="directory">
-<tr id="row_0_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1deadline.html" target="_self">boost::afio::v2_xxx::deadline</a></td><td class="desc">A time deadline in either relative-to-now or absolute (system clock) terms</td></tr>
-<tr id="row_1_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1native__handle__type_1_1disposition__base.html" target="_self">boost::afio::v2_xxx::native_handle_type::disposition_base</a></td><td class="desc">The type of handle</td></tr>
-<tr id="row_2_" class="even"><td class="entry"><img id="arr_2_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('2_')"/><img src="ftv2cl.png" alt="C" width="24" height="22" /><b>disposition_base</b></td><td class="desc"></td></tr>
-<tr id="row_2_0_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1bitfield.html" target="_self">boost::afio::v2_xxx::bitfield&lt; disposition_base &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_3_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex_1_1entities__guard.html" target="_self">boost::afio::v2_xxx::algorithm::shared_fs_mutex::shared_fs_mutex::entities_guard</a></td><td class="desc">RAII holder for a lock on a sequence of entities</td></tr>
-<tr id="row_4_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex_1_1entity__type.html" target="_self">boost::afio::v2_xxx::algorithm::shared_fs_mutex::shared_fs_mutex::entity_type</a></td><td class="desc">The type of an entity id</td></tr>
-<tr id="row_5_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1extent__guard.html" target="_self">boost::afio::v2_xxx::io_handle::extent_guard</a></td><td class="desc">RAII holder a locked extent of bytes in a file</td></tr>
-<tr id="row_6_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1statfs__t_1_1f__flags__t.html" target="_self">boost::afio::v2_xxx::statfs_t::f_flags_t</a></td><td class="desc"></td></tr>
-<tr id="row_7_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1utils_1_1fast__hash.html" target="_self">boost::afio::v2_xxx::utils::fast_hash</a></td><td class="desc">Fast very collision resistant <a class="el" href="unionuint128.html" title="An unsigned 128 bit value.">uint128</a> hash. Currently SpookyHash @ 0.3 cycles/byte</td></tr>
-<tr id="row_8_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1handle_1_1flag__base.html" target="_self">boost::afio::v2_xxx::handle::flag_base</a></td><td class="desc">Bitwise flags which can be specified</td></tr>
-<tr id="row_9_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1section__handle_1_1flag__base.html" target="_self">boost::afio::v2_xxx::section_handle::flag_base</a></td><td class="desc">The behaviour of the memory section</td></tr>
-<tr id="row_10_"><td class="entry"><img id="arr_10_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('10_')"/><img src="ftv2cl.png" alt="C" width="24" height="22" /><b>flag_base</b></td><td class="desc"></td></tr>
-<tr id="row_10_0_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1bitfield.html" target="_self">boost::afio::v2_xxx::bitfield&lt; flag_base &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_11_"><td class="entry"><img id="arr_11_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('11_')"/><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html" target="_self">boost::afio::v2_xxx::handle</a></td><td class="desc">A <a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1native__handle__type.html" title="A native handle type used for wrapping file descriptors, process ids or HANDLEs. Unmanaged, wrap in a handle object to manage.">native_handle_type</a> which is managed by the lifetime of this object instance</td></tr>
-<tr id="row_11_0_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img id="arr_11_0_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('11_0_')"/><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html" target="_self">boost::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_11_0_0_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img id="arr_11_0_0_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('11_0_0_')"/><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html" target="_self">boost::afio::v2_xxx::file_handle</a></td><td class="desc">A handle to a regular file or device, kept data layout compatible with <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html" title="A handle to an open something.">async_file_handle</a></td></tr>
-<tr id="row_11_0_0_0_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html" target="_self">boost::afio::v2_xxx::async_file_handle</a></td><td class="desc">A handle to an open something</td></tr>
-<tr id="row_11_0_1_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html" target="_self">boost::afio::v2_xxx::map_handle</a></td><td class="desc">A handle to a memory mapped region of memory</td></tr>
-<tr id="row_11_1_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1section__handle.html" target="_self">boost::afio::v2_xxx::section_handle</a></td><td class="desc">A handle to a source of mapped memory</td></tr>
-<tr id="row_12_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1io__request.html" target="_self">boost::afio::v2_xxx::io_handle::io_request&lt; T &gt;</a></td><td class="desc">The i/o request type used by this handle</td></tr>
-<tr id="row_13_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__service.html" target="_self">boost::afio::v2_xxx::io_service</a></td><td class="desc">An asynchronous i/o multiplexer service</td></tr>
-<tr id="row_14_"><td class="entry"><img id="arr_14_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('14_')"/><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1item__base.html" target="_self">boost::afio::v2_xxx::storage_profile::item_base</a></td><td class="desc">Common base class for items</td></tr>
-<tr id="row_14_0_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1item.html" target="_self">boost::afio::v2_xxx::storage_profile::item&lt; T &gt;</a></td><td class="desc">A tag-value item in the storage profile where T is the type of value stored</td></tr>
-<tr id="row_14_1_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1item__erased.html" target="_self">boost::afio::v2_xxx::storage_profile::item_erased</a></td><td class="desc">A type erased tag-value item</td></tr>
-<tr id="row_14_2_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1item.html" target="_self">boost::afio::v2_xxx::storage_profile::item&lt; boost::afio::v2_xxx::io_service::extent_type &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_14_3_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1item.html" target="_self">boost::afio::v2_xxx::storage_profile::item&lt; float &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_14_4_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1item.html" target="_self">boost::afio::v2_xxx::storage_profile::item&lt; std::string &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_14_5_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1item.html" target="_self">boost::afio::v2_xxx::storage_profile::item&lt; unsigned &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_14_6_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1item.html" target="_self">boost::afio::v2_xxx::storage_profile::item&lt; unsigned long long &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_15_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1native__handle__type.html" target="_self">boost::afio::v2_xxx::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_16_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1utils_1_1page__allocator.html" target="_self">boost::afio::v2_xxx::utils::page_allocator&lt; T &gt;</a></td><td class="desc">An STL allocator which allocates large TLB page memory.If the operating system is configured to allow it, this type of memory is particularly efficient for doing large scale file i/o. This is because the kernel must normally convert the scatter gather buffers you pass into extended scatter gather buffers as the memory you see as contiguous may not, and probably isn't, actually be contiguous in physical memory. Regions returned by this allocator <em>may</em> be allocated contiguously in physical memory and therefore the kernel can pass through your scatter gather buffers unmodified</td></tr>
-<tr id="row_17_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1utils_1_1page__allocator_3_01void_01_4.html" target="_self">boost::afio::v2_xxx::utils::page_allocator&lt; void &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_18_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1handle_1_1really__copy.html" target="_self">boost::afio::v2_xxx::handle::really_copy</a></td><td class="desc">Tag type to enable copy constructor</td></tr>
-<tr id="row_19_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1utils_1_1page__allocator_1_1rebind.html" target="_self">boost::afio::v2_xxx::utils::page_allocator&lt; T &gt;::rebind&lt; U &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_20_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1utils_1_1page__allocator_3_01void_01_4_1_1rebind.html" target="_self">boost::afio::v2_xxx::utils::page_allocator&lt; void &gt;::rebind&lt; U &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_21_"><td class="entry"><img id="arr_21_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('21_')"/><img src="ftv2cl.png" alt="C" width="24" height="22" /><b>result</b></td><td class="desc"></td></tr>
-<tr id="row_21_0_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1io__result.html" target="_self">boost::afio::v2_xxx::io_handle::io_result&lt; T &gt;</a></td><td class="desc">The i/o result type used by this handle</td></tr>
-<tr id="row_21_1_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1io__result.html" target="_self">boost::afio::v2_xxx::io_handle::io_result&lt; BuffersType &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_22_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1utils_1_1secded__ecc.html" target="_self">boost::afio::v2_xxx::utils::secded_ecc&lt; blocksize &gt;</a></td><td class="desc">Calculates the single error correcting double error detecting (SECDED) Hamming Error Correcting Code for a <em>blocksize</em> block of bytes. For example, a secdec_ecc&lt;8&gt; would be the very common 72,64 Hamming code used in ECC RAM, or secdec_ecc&lt;4096&gt; would be for a 32784,32768 Hamming code</td></tr>
-<tr id="row_23_"><td class="entry"><img id="arr_23_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('23_')"/><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html" target="_self">boost::afio::v2_xxx::algorithm::shared_fs_mutex::shared_fs_mutex</a></td><td class="desc">Abstract base class for an object which protects shared filing system resources</td></tr>
-<tr id="row_23_0_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1atomic__append.html" target="_self">boost::afio::v2_xxx::algorithm::shared_fs_mutex::atomic_append</a></td><td class="desc">Scalable many entity shared/exclusive file system based lock</td></tr>
-<tr id="row_23_1_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html" target="_self">boost::afio::v2_xxx::algorithm::shared_fs_mutex::byte_ranges</a></td><td class="desc">Many entity shared/exclusive file system based lock</td></tr>
-<tr id="row_23_2_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1lock__files.html" target="_self">boost::afio::v2_xxx::algorithm::shared_fs_mutex::lock_files</a></td><td class="desc">Many entity exclusive compatibility file system based lock</td></tr>
-<tr id="row_24_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1statfs__t.html" target="_self">boost::afio::v2_xxx::statfs_t</a></td><td class="desc">Metadata about a filing system. Unsupported entries are all bits set</td></tr>
-<tr id="row_25_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1storage__profile.html" target="_self">boost::afio::v2_xxx::storage_profile::storage_profile</a></td><td class="desc">A (possibly incomplet) profile of storage</td></tr>
-<tr id="row_26_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="unionuint128.html" target="_self">uint128</a></td><td class="desc">An unsigned 128 bit value</td></tr>
-<tr id="row_27_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1statfs__t_1_1want__base.html" target="_self">boost::afio::v2_xxx::statfs_t::want_base</a></td><td class="desc">Used to indicate what metadata should be filled in</td></tr>
-<tr id="row_28_"><td class="entry"><img id="arr_28_" src="ftv2mlastnode.png" alt="\" width="16" height="22" onclick="toggleFolder('28_')"/><img src="ftv2cl.png" alt="C" width="24" height="22" /><b>Enum</b></td><td class="desc"></td></tr>
-<tr id="row_28_0_" class="even"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1bitfield.html" target="_self">boost::afio::v2_xxx::bitfield&lt; Enum &gt;</a></td><td class="desc">Constexpr typesafe bitwise flags support</td></tr>
+<tr id="row_0_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map_1_1__entity__idx.html" target="_self">boost::afio::v2_xxx::algorithm::shared_fs_mutex::memory_map::_entity_idx</a></td><td class="desc"></td></tr>
+<tr id="row_1_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1deadline.html" target="_self">boost::afio::v2_xxx::deadline</a></td><td class="desc">A time deadline in either relative-to-now or absolute (system clock) terms</td></tr>
+<tr id="row_2_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1native__handle__type_1_1disposition__base.html" target="_self">boost::afio::v2_xxx::native_handle_type::disposition_base</a></td><td class="desc">The type of handle</td></tr>
+<tr id="row_3_"><td class="entry"><img id="arr_3_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('3_')"/><img src="ftv2cl.png" alt="C" width="24" height="22" /><b>disposition_base</b></td><td class="desc"></td></tr>
+<tr id="row_3_0_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1bitfield.html" target="_self">boost::afio::v2_xxx::bitfield&lt; disposition_base &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_4_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex_1_1entities__guard.html" target="_self">boost::afio::v2_xxx::algorithm::shared_fs_mutex::shared_fs_mutex::entities_guard</a></td><td class="desc">RAII holder for a lock on a sequence of entities</td></tr>
+<tr id="row_5_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex_1_1entity__type.html" target="_self">boost::afio::v2_xxx::algorithm::shared_fs_mutex::shared_fs_mutex::entity_type</a></td><td class="desc">The type of an entity id</td></tr>
+<tr id="row_6_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1extent__guard.html" target="_self">boost::afio::v2_xxx::io_handle::extent_guard</a></td><td class="desc">RAII holder a locked extent of bytes in a file</td></tr>
+<tr id="row_7_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1statfs__t_1_1f__flags__t.html" target="_self">boost::afio::v2_xxx::statfs_t::f_flags_t</a></td><td class="desc"></td></tr>
+<tr id="row_8_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1utils_1_1fast__hash.html" target="_self">boost::afio::v2_xxx::utils::fast_hash</a></td><td class="desc">Fast very collision resistant <a class="el" href="unionuint128.html" title="An unsigned 128 bit value.">uint128</a> hash. Currently SpookyHash @ 0.3 cycles/byte</td></tr>
+<tr id="row_9_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1handle_1_1flag__base.html" target="_self">boost::afio::v2_xxx::handle::flag_base</a></td><td class="desc">Bitwise flags which can be specified</td></tr>
+<tr id="row_10_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1section__handle_1_1flag__base.html" target="_self">boost::afio::v2_xxx::section_handle::flag_base</a></td><td class="desc">The behaviour of the memory section</td></tr>
+<tr id="row_11_" class="even"><td class="entry"><img id="arr_11_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('11_')"/><img src="ftv2cl.png" alt="C" width="24" height="22" /><b>flag_base</b></td><td class="desc"></td></tr>
+<tr id="row_11_0_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1bitfield.html" target="_self">boost::afio::v2_xxx::bitfield&lt; flag_base &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_12_" class="even"><td class="entry"><img id="arr_12_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('12_')"/><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html" target="_self">boost::afio::v2_xxx::handle</a></td><td class="desc">A <a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1native__handle__type.html" title="A native handle type used for wrapping file descriptors, process ids or HANDLEs. Unmanaged, wrap in a handle object to manage.">native_handle_type</a> which is managed by the lifetime of this object instance</td></tr>
+<tr id="row_12_0_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img id="arr_12_0_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('12_0_')"/><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html" target="_self">boost::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_12_0_0_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img id="arr_12_0_0_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('12_0_0_')"/><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html" target="_self">boost::afio::v2_xxx::file_handle</a></td><td class="desc">A handle to a regular file or device, kept data layout compatible with <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html" title="A handle to an open something.">async_file_handle</a></td></tr>
+<tr id="row_12_0_0_0_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html" target="_self">boost::afio::v2_xxx::async_file_handle</a></td><td class="desc">A handle to an open something</td></tr>
+<tr id="row_12_0_1_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html" target="_self">boost::afio::v2_xxx::map_handle</a></td><td class="desc">A handle to a memory mapped region of memory</td></tr>
+<tr id="row_12_1_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1section__handle.html" target="_self">boost::afio::v2_xxx::section_handle</a></td><td class="desc">A handle to a source of mapped memory</td></tr>
+<tr id="row_13_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1io__request.html" target="_self">boost::afio::v2_xxx::io_handle::io_request&lt; T &gt;</a></td><td class="desc">The i/o request type used by this handle</td></tr>
+<tr id="row_14_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__service.html" target="_self">boost::afio::v2_xxx::io_service</a></td><td class="desc">An asynchronous i/o multiplexer service</td></tr>
+<tr id="row_15_" class="even"><td class="entry"><img id="arr_15_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('15_')"/><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1item__base.html" target="_self">boost::afio::v2_xxx::storage_profile::item_base</a></td><td class="desc">Common base class for items</td></tr>
+<tr id="row_15_0_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1item.html" target="_self">boost::afio::v2_xxx::storage_profile::item&lt; T &gt;</a></td><td class="desc">A tag-value item in the storage profile where T is the type of value stored</td></tr>
+<tr id="row_15_1_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1item__erased.html" target="_self">boost::afio::v2_xxx::storage_profile::item_erased</a></td><td class="desc">A type erased tag-value item</td></tr>
+<tr id="row_15_2_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1item.html" target="_self">boost::afio::v2_xxx::storage_profile::item&lt; boost::afio::v2_xxx::io_service::extent_type &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_15_3_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1item.html" target="_self">boost::afio::v2_xxx::storage_profile::item&lt; float &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_15_4_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1item.html" target="_self">boost::afio::v2_xxx::storage_profile::item&lt; std::string &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_15_5_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1item.html" target="_self">boost::afio::v2_xxx::storage_profile::item&lt; unsigned &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_15_6_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1item.html" target="_self">boost::afio::v2_xxx::storage_profile::item&lt; unsigned long long &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_16_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1native__handle__type.html" target="_self">boost::afio::v2_xxx::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_17_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1utils_1_1page__allocator.html" target="_self">boost::afio::v2_xxx::utils::page_allocator&lt; T &gt;</a></td><td class="desc">An STL allocator which allocates large TLB page memory.If the operating system is configured to allow it, this type of memory is particularly efficient for doing large scale file i/o. This is because the kernel must normally convert the scatter gather buffers you pass into extended scatter gather buffers as the memory you see as contiguous may not, and probably isn't, actually be contiguous in physical memory. Regions returned by this allocator <em>may</em> be allocated contiguously in physical memory and therefore the kernel can pass through your scatter gather buffers unmodified</td></tr>
+<tr id="row_18_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1utils_1_1page__allocator_3_01void_01_4.html" target="_self">boost::afio::v2_xxx::utils::page_allocator&lt; void &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_19_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1handle_1_1really__copy.html" target="_self">boost::afio::v2_xxx::handle::really_copy</a></td><td class="desc">Tag type to enable copy constructor</td></tr>
+<tr id="row_20_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1utils_1_1page__allocator_1_1rebind.html" target="_self">boost::afio::v2_xxx::utils::page_allocator&lt; T &gt;::rebind&lt; U &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_21_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1utils_1_1page__allocator_3_01void_01_4_1_1rebind.html" target="_self">boost::afio::v2_xxx::utils::page_allocator&lt; void &gt;::rebind&lt; U &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_22_" class="even"><td class="entry"><img id="arr_22_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('22_')"/><img src="ftv2cl.png" alt="C" width="24" height="22" /><b>result</b></td><td class="desc"></td></tr>
+<tr id="row_22_0_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1io__result.html" target="_self">boost::afio::v2_xxx::io_handle::io_result&lt; T &gt;</a></td><td class="desc">The i/o result type used by this handle</td></tr>
+<tr id="row_22_1_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1io__result.html" target="_self">boost::afio::v2_xxx::io_handle::io_result&lt; BuffersType &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_23_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1utils_1_1secded__ecc.html" target="_self">boost::afio::v2_xxx::utils::secded_ecc&lt; blocksize &gt;</a></td><td class="desc">Calculates the single error correcting double error detecting (SECDED) Hamming Error Correcting Code for a <em>blocksize</em> block of bytes. For example, a secdec_ecc&lt;8&gt; would be the very common 72,64 Hamming code used in ECC RAM, or secdec_ecc&lt;4096&gt; would be for a 32784,32768 Hamming code</td></tr>
+<tr id="row_24_" class="even"><td class="entry"><img id="arr_24_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('24_')"/><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html" target="_self">boost::afio::v2_xxx::algorithm::shared_fs_mutex::shared_fs_mutex</a></td><td class="desc">Abstract base class for an object which protects shared filing system resources</td></tr>
+<tr id="row_24_0_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1atomic__append.html" target="_self">boost::afio::v2_xxx::algorithm::shared_fs_mutex::atomic_append</a></td><td class="desc">Scalable many entity shared/exclusive file system based lock</td></tr>
+<tr id="row_24_1_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html" target="_self">boost::afio::v2_xxx::algorithm::shared_fs_mutex::byte_ranges</a></td><td class="desc">Many entity shared/exclusive file system based lock</td></tr>
+<tr id="row_24_2_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1lock__files.html" target="_self">boost::afio::v2_xxx::algorithm::shared_fs_mutex::lock_files</a></td><td class="desc">Many entity exclusive compatibility file system based lock</td></tr>
+<tr id="row_24_3_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html" target="_self">boost::afio::v2_xxx::algorithm::shared_fs_mutex::memory_map</a></td><td class="desc">Many entity memory mapped shared/exclusive file system based lock</td></tr>
+<tr id="row_25_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1statfs__t.html" target="_self">boost::afio::v2_xxx::statfs_t</a></td><td class="desc">Metadata about a filing system. Unsupported entries are all bits set</td></tr>
+<tr id="row_26_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1storage__profile.html" target="_self">boost::afio::v2_xxx::storage_profile::storage_profile</a></td><td class="desc">A (possibly incomplet) profile of storage</td></tr>
+<tr id="row_27_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="unionuint128.html" target="_self">uint128</a></td><td class="desc">An unsigned 128 bit value</td></tr>
+<tr id="row_28_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1statfs__t_1_1want__base.html" target="_self">boost::afio::v2_xxx::statfs_t::want_base</a></td><td class="desc">Used to indicate what metadata should be filled in</td></tr>
+<tr id="row_29_"><td class="entry"><img id="arr_29_" src="ftv2mlastnode.png" alt="\" width="16" height="22" onclick="toggleFolder('29_')"/><img src="ftv2cl.png" alt="C" width="24" height="22" /><b>Enum</b></td><td class="desc"></td></tr>
+<tr id="row_29_0_" class="even"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1bitfield.html" target="_self">boost::afio::v2_xxx::bitfield&lt; Enum &gt;</a></td><td class="desc">Constexpr typesafe bitwise flags support</td></tr>
</table>
</div><!-- directory -->
</div><!-- contents -->
diff --git a/hierarchy.js b/hierarchy.js
index 20341de2..fd51a523 100644
--- a/hierarchy.js
+++ b/hierarchy.js
@@ -1,5 +1,6 @@
var hierarchy =
[
+ [ "boost::afio::v2_xxx::algorithm::shared_fs_mutex::memory_map::_entity_idx", "structboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map_1_1__entity__idx.html", null ],
[ "boost::afio::v2_xxx::deadline", "structboost_1_1afio_1_1v2__xxx_1_1deadline.html", null ],
[ "boost::afio::v2_xxx::native_handle_type::disposition_base", "structboost_1_1afio_1_1v2__xxx_1_1native__handle__type_1_1disposition__base.html", null ],
[ "disposition_base", null, [
@@ -49,7 +50,8 @@ var hierarchy =
[ "boost::afio::v2_xxx::algorithm::shared_fs_mutex::shared_fs_mutex", "classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html", [
[ "boost::afio::v2_xxx::algorithm::shared_fs_mutex::atomic_append", "classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1atomic__append.html", null ],
[ "boost::afio::v2_xxx::algorithm::shared_fs_mutex::byte_ranges", "classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html", null ],
- [ "boost::afio::v2_xxx::algorithm::shared_fs_mutex::lock_files", "classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1lock__files.html", null ]
+ [ "boost::afio::v2_xxx::algorithm::shared_fs_mutex::lock_files", "classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1lock__files.html", null ],
+ [ "boost::afio::v2_xxx::algorithm::shared_fs_mutex::memory_map", "classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html", null ]
] ],
[ "boost::afio::v2_xxx::statfs_t", "structboost_1_1afio_1_1v2__xxx_1_1statfs__t.html", null ],
[ "boost::afio::v2_xxx::storage_profile::storage_profile", "structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1storage__profile.html", null ],
diff --git a/memory__map_8hpp.html b/memory__map_8hpp.html
new file mode 100644
index 00000000..a2f19ddc
--- /dev/null
+++ b/memory__map_8hpp.html
@@ -0,0 +1,164 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>Boost.AFIO: include/boost/afio/v2.0/algorithm/shared_fs_mutex/memory_map.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>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Boost.AFIO
+ &#160;<span id="projectnumber">v2.00 early alpha</span>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('memory__map_8hpp.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#namespaces">Namespaces</a> </div>
+ <div class="headertitle">
+<div class="title">memory_map.hpp File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Provides algorithm::shared_fs_mutex::memory_map.
+<a href="#details">More...</a></p>
+<div class="textblock"><code>#include &quot;<a class="el" href="map__handle_8hpp_source.html">../../map_handle.hpp</a>&quot;</code><br/>
+<code>#include &quot;<a class="el" href="base_8hpp_source.html">base.hpp</a>&quot;</code><br/>
+<code>#include &quot;../boost-lite/include/algorithm/hash.hpp&quot;</code><br/>
+<code>#include &quot;../boost-lite/include/spinlock.hpp&quot;</code><br/>
+</div>
+<p><a href="memory__map_8hpp_source.html">Go to the source code of this file.</a></p>
+<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="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html">boost::afio::v2_xxx::algorithm::shared_fs_mutex::memory_map</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Many entity memory mapped shared/exclusive file system based lock. <a href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.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="structboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map_1_1__entity__idx.html">boost::afio::v2_xxx::algorithm::shared_fs_mutex::memory_map::_entity_idx</a></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>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceboost"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost.html">boost</a></td></tr>
+<tr class="memdesc:namespaceboost"><td class="mdescLeft">&#160;</td><td class="mdescRight">The Boost namespace. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:namespaceboost_1_1afio"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1afio.html">boost::afio</a></td></tr>
+<tr class="memdesc:namespaceboost_1_1afio"><td class="mdescLeft">&#160;</td><td class="mdescRight">The AFIO namespace. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:namespaceboost_1_1afio_1_1v2__xxx"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1afio_1_1v2__xxx.html">boost::afio::v2_xxx</a></td></tr>
+<tr class="memdesc:namespaceboost_1_1afio_1_1v2__xxx"><td class="mdescLeft">&#160;</td><td class="mdescRight">Inline namespace for this version of AFIO. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:namespaceboost_1_1afio_1_1v2__xxx_1_1algorithm"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1afio_1_1v2__xxx_1_1algorithm.html">boost::afio::v2_xxx::algorithm</a></td></tr>
+<tr class="memdesc:namespaceboost_1_1afio_1_1v2__xxx_1_1algorithm"><td class="mdescLeft">&#160;</td><td class="mdescRight">Collection of file system based algorithms. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:namespaceboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex.html">boost::afio::v2_xxx::algorithm::shared_fs_mutex</a></td></tr>
+<tr class="memdesc:namespaceboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex"><td class="mdescLeft">&#160;</td><td class="mdescRight">Algorithms for protecting a shared filing system resource from racy modification. <br/></td></tr>
+<tr class="separator:"><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 algorithm::shared_fs_mutex::memory_map. </p>
+</div></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="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_1878a3f4746a95c6aad317458cc7ef80.html">boost</a></li><li class="navelem"><a class="el" href="dir_ab196a265b6af1574b3a29b000b1d247.html">afio</a></li><li class="navelem"><a class="el" href="dir_a38a52e61a9b0b56a6ddbdae4d4f5a3e.html">v2.0</a></li><li class="navelem"><a class="el" href="dir_915e9fcce4b5dcb2e972f08f09b5e22d.html">algorithm</a></li><li class="navelem"><a class="el" href="dir_9fa9dee9180068c16577875815e1b7dd.html">shared_fs_mutex</a></li><li class="navelem"><a class="el" href="memory__map_8hpp.html">memory_map.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.3.1 </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/memory__map_8hpp_source.html b/memory__map_8hpp_source.html
new file mode 100644
index 00000000..cc4bcc17
--- /dev/null
+++ b/memory__map_8hpp_source.html
@@ -0,0 +1,447 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>Boost.AFIO: include/boost/afio/v2.0/algorithm/shared_fs_mutex/memory_map.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Boost.AFIO
+ &#160;<span id="projectnumber">v2.00 early alpha</span>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('memory__map_8hpp_source.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">memory_map.hpp</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="memory__map_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/* memory_map.hpp</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">Efficient large actor read-write lock</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">(C) 2016 Niall Douglas http://www.nedprod.com/</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">File Created: Aug 2016</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">Boost Software License - Version 1.0 - August 17th, 2003</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">Permission is hereby granted, free of charge, to any person or organization</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">obtaining a copy of the software and accompanying documentation covered by</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">this license (the &quot;Software&quot;) to use, reproduce, display, distribute,</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">execute, and transmit the Software, and to prepare derivative works of the</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">Software, and to permit third-parties to whom the Software is furnished to</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">do so, all subject to the following:</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">The copyright notices in the Software and this entire statement, including</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">the above license grant, this restriction and the following disclaimer,</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">must be included in all copies of the Software, in whole or in part, and</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">all derivative works of the Software, unless such copies or derivative</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">works are solely in the form of machine-executable object code generated by</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">a source language processor.</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">THE SOFTWARE IS PROVIDED &quot;AS IS&quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment">FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment">ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="comment">DEALINGS IN THE SOFTWARE.</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="comment">*/</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#ifndef BOOST_AFIO_SHARED_FS_MUTEX_MEMORY_MAP_HPP</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define BOOST_AFIO_SHARED_FS_MUTEX_MEMORY_MAP_HPP</span></div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;../../map_handle.hpp&quot;</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="base_8hpp.html" title="Provides algorithm::shared_fs_mutex::shared_fs_mutex.">base.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#include &quot;../boost-lite/include/algorithm/hash.hpp&quot;</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">#include &quot;../boost-lite/include/spinlock.hpp&quot;</span></div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<a class="code" href="group__config.html#gaa1c6bc5f2e5ebf3d2d18ee8ceee0f740" title="Expands into the appropriate namespace markup to enter the AFIO v2 namespace.">BOOST_AFIO_V2_NAMESPACE_BEGIN</a></div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="keyword">namespace </span>algorithm</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;{</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keyword">namespace </span>shared_fs_mutex</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; {</div>
+<div class="line"><a name="l00094"></a><span class="lineno"><a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html"> 94</a></span>&#160; <span class="keyword">class </span><a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html" title="Many entity memory mapped shared/exclusive file system based lock.">memory_map</a> : <span class="keyword">public</span> <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html" title="Abstract base class for an object which protects shared filing system resources.">shared_fs_mutex</a></div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; {</div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00098"></a><span class="lineno"><a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#ab248a548b71660335d14f88270741b1c"> 98</a></span>&#160; <span class="keyword">using</span> <a class="code" href="structboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex_1_1entity__type.html" title="The type of an entity id.">entity_type</a> = <a class="code" href="structboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex_1_1entity__type.html" title="The type of an entity id.">shared_fs_mutex::entity_type</a>;</div>
+<div class="line"><a name="l00100"></a><span class="lineno"><a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#a9cc8c9f8c25a6ec30464839ebdf845af"> 100</a></span>&#160; <span class="keyword">using</span> <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html#a02af43575220c42252610c818e109b72" title="The type of a sequence of entities.">entities_type</a> = <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html#a02af43575220c42252610c818e109b72" title="The type of a sequence of entities.">shared_fs_mutex::entities_type</a>;</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keyword">using</span> _spinlock_type = boost_lite::configurable_spinlock::shared_spinlock&lt;&gt;;</div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keyword">static</span> constexpr <span class="keywordtype">size_t</span> HashIndexSize = 4096;</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keyword">using</span> Hasher = boost_lite::algorithm::hash::fnv1a_hash&lt;entity_type::value_type&gt;;</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keyword">static</span> constexpr <span class="keywordtype">size_t</span> _container_entries = HashIndexSize / <span class="keyword">sizeof</span>(_spinlock_type);</div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keyword">using</span> _hash_index_type = std::array&lt;_spinlock_type, _container_entries&gt;;</div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html" title="A handle to a regular file or device, kept data layout compatible with async_file_handle.">file_handle</a> _h, _temph;</div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; file_handle::extent_guard _hlockinuse; <span class="comment">// shared lock of last byte of _h marking if lock is in use</span></div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; file_handle::extent_guard _hmapinuse; <span class="comment">// shared lock of second last byte of _h marking if mmap is in use</span></div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html" title="A handle to a memory mapped region of memory.">map_handle</a> _hmap, _temphmap;</div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; _hash_index_type &amp;_index()<span class="keyword"> const</span></div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;<span class="keyword"> </span>{</div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; _hash_index_type *ret = (_hash_index_type *) _temphmap.<a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a31c50127e7255b7dc99eab306a225298" title="The address in memory where this mapped view resides.">address</a>();</div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordflow">return</span> *ret;</div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; }</div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html" title="Many entity memory mapped shared/exclusive file system based lock.">memory_map</a>(<a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html" title="A handle to a regular file or device, kept data layout compatible with async_file_handle.">file_handle</a> &amp;&amp;h, <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html" title="A handle to a regular file or device, kept data layout compatible with async_file_handle.">file_handle</a> &amp;&amp;temph, <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1extent__guard.html" title="RAII holder a locked extent of bytes in a file.">file_handle::extent_guard</a> &amp;&amp;hlockinuse, <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1extent__guard.html" title="RAII holder a locked extent of bytes in a file.">file_handle::extent_guard</a> &amp;&amp;hmapinuse, <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html" title="A handle to a memory mapped region of memory.">map_handle</a> &amp;&amp;hmap, <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html" title="A handle to a memory mapped region of memory.">map_handle</a> &amp;&amp;temphmap)</div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; : _h(std::move(h))</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; , _temph(std::move(temph))</div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; , _hlockinuse(std::move(hlockinuse))</div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; , _hmapinuse(std::move(hmapinuse))</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; , _hmap(std::move(hmap))</div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; , _temphmap(std::move(temphmap))</div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; {</div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; }</div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; memory_map(<span class="keyword">const</span> memory_map &amp;) = <span class="keyword">delete</span>;</div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; memory_map &amp;operator=(<span class="keyword">const</span> memory_map &amp;) = <span class="keyword">delete</span>;</div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;</div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00134"></a><span class="lineno"><a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#a8803169706293901b29fbae2eaad1ee6"> 134</a></span>&#160; <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#a8803169706293901b29fbae2eaad1ee6" title="Move constructor.">memory_map</a>(<a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html" title="Many entity memory mapped shared/exclusive file system based lock.">memory_map</a> &amp;&amp;o) noexcept : _h(std::move(o._h)), _temph(std::move(o._temph)), _hlockinuse(std::move(o._hlockinuse)), _hmapinuse(std::move(o._hmapinuse)), _hmap(std::move(o._hmap)), _temphmap(std::move(o._temphmap)) {}</div>
+<div class="line"><a name="l00136"></a><span class="lineno"><a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#a0245abc2bf944b196efeb4f8bdb1dd24"> 136</a></span>&#160; <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html" title="Many entity memory mapped shared/exclusive file system based lock.">memory_map</a> &amp;operator=(<a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html" title="Many entity memory mapped shared/exclusive file system based lock.">memory_map</a> &amp;&amp;o) noexcept</div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; {</div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; this-&gt;~<a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html" title="Many entity memory mapped shared/exclusive file system based lock.">memory_map</a>();</div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keyword">new</span>(<span class="keyword">this</span>) <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html" title="Many entity memory mapped shared/exclusive file system based lock.">memory_map</a>(std::move(o));</div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; }</div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; ~<a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html" title="Many entity memory mapped shared/exclusive file system based lock.">memory_map</a>()</div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; {</div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="comment">// Release my shared locks and try locking entire file exclusively</span></div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; _hmapinuse.<a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#a80efd5836f20ac304bdcf0033c95de8b" title="Unlock a previously locked sequence of entities.">unlock</a>();</div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; _hlockinuse.unlock();</div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keyword">auto</span> lockresult = _h.try_lock(0, (<a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a617ab627aa596b325d7bfef5210a43f3" title="The file extent type used by this handle.">handle::extent_type</a>) -1, <span class="keyword">true</span>);</div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keywordflow">if</span>(lockresult)</div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; {</div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="comment">// This means I am the last user, so zop the file contents as temp file is about to go away</span></div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keywordtype">char</span> buffer[4096];</div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; memset(buffer, 0, <span class="keyword">sizeof</span>(buffer));</div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; (void) _h.write(0, buffer, <span class="keyword">sizeof</span>(buffer));</div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="comment">// You might wonder why I am now truncating to zero? It&#39;s to ensure any</span></div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="comment">// memory maps definitely get written with zeros before truncation, some</span></div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="comment">// OSs don&#39;t reflect zeros into memory maps upon truncation for quite a</span></div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="comment">// long time</span></div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; _h.truncate(0);</div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;<span class="preprocessor">#ifndef _WIN32</span></div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;<span class="preprocessor"></span> <span class="comment">// On POSIX we also need to delete the temp file</span></div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; _temph.unlink();</div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;<span class="preprocessor"></span> }</div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; }</div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="comment">//[[bindlib::make_free]]</span></div>
+<div class="line"><a name="l00168"></a><span class="lineno"><a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#a9a91ca12fd4b0bede7c30c5adf1946b2"> 168</a></span>&#160; <span class="keyword">static</span> <a class="code" href="namespaceboost_1_1afio_1_1v2__xxx.html#ac8d06ecaa9660e7251c1251d88c1305c" title="Please see https://ned14.github.io/boost.outcome/classboost_1_1outcome_1_1v1__xxx_1_1basic__monad.html.">result&lt;memory_map&gt;</a> fs_mutex_map(file_handle::path_type lockfile) noexcept</div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; {</div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; BOOST_AFIO_LOG_FUNCTION_CALL(0);</div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keywordflow">try</span></div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; {</div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; BOOST_OUTCOME_FILTER_ERROR(ret, file_handle::file(std::move(lockfile), file_handle::mode::write, file_handle::creation::if_needed, file_handle::caching::temporary, file_handle::flag::win_delete_on_last_close));</div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html" title="A handle to a regular file or device, kept data layout compatible with async_file_handle.">file_handle</a> temph;</div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="comment">// Am I the first person to this file? Lock the entire file exclusively</span></div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keyword">auto</span> lockinuse = ret.<a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#aab870fe5fa041af29e2d85a5c292077f">try_lock</a>(0, (<a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a617ab627aa596b325d7bfef5210a43f3" title="The file extent type used by this handle.">handle::extent_type</a>) -1, <span class="keyword">true</span>);</div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; file_handle::extent_guard mapinuse;</div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keywordflow">if</span>(lockinuse.has_error())</div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; {</div>
+<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keywordflow">if</span>(lockinuse.get_error().value() != ETIMEDOUT)</div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keywordflow">return</span> lockinuse.get_error();</div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</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="l00183"></a><span class="lineno"> 183</span>&#160; lockinuse = ret.lock((<a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a617ab627aa596b325d7bfef5210a43f3" title="The file extent type used by this handle.">handle::extent_type</a>) -1, 1, <span class="keyword">false</span>); <span class="comment">// last byte shared access</span></div>
+<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keywordtype">char</span> buffer[65536];</div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; memset(buffer, 0, <span class="keyword">sizeof</span>(buffer));</div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; {</div>
+<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; BOOST_OUTCOME_FILTER_ERROR(_, ret.read(0, buffer, 65535));</div>
+<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; (void) _;</div>
+<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; }</div>
+<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; fixme_path::value_type *temphpath = (fixme_path::value_type *) buffer;</div>
+<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <a class="code" href="namespaceboost_1_1afio_1_1v2__xxx.html#ac8d06ecaa9660e7251c1251d88c1305c" title="Please see https://ned14.github.io/boost.outcome/classboost_1_1outcome_1_1v1__xxx_1_1basic__monad.html.">result&lt;file_handle&gt;</a> _temph;</div>
+<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="comment">// If path is zeroed, fall back onto backup lock</span></div>
+<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keywordflow">if</span>(!buffer[1])</div>
+<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keywordflow">goto</span> use_fall_back_lock;</div>
+<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; _temph = file_handle::file(temphpath, file_handle::mode::write, file_handle::creation::open_existing, file_handle::caching::temporary, file_handle::flag::win_delete_on_last_close);</div>
+<div class="line"><a name="l00197"></a><span class="lineno"> 197</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="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keywordflow">if</span>(!_temph)</div>
+<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; {</div>
+<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="comment">// Zop the path so any new entrants into this lock will go to the fallback lock</span></div>
+<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordtype">char</span> buffer[4096];</div>
+<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; memset(buffer, 0, <span class="keyword">sizeof</span>(buffer));</div>
+<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; (void) ret.write(0, buffer, <span class="keyword">sizeof</span>(buffer));</div>
+<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; use_fall_back_lock:</div>
+<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="comment">// I am guaranteed that all mmap users have locked the second last byte</span></div>
+<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="comment">// and will unlock it once everyone has stopped using the mmap, so make</span></div>
+<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="comment">// absolutely sure the mmap is not in use by anyone by taking an exclusive</span></div>
+<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="comment">// lock on the second final byte</span></div>
+<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; BOOST_OUTCOME_FILTER_ERROR(mapinuse2, ret.lock((<a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a617ab627aa596b325d7bfef5210a43f3" title="The file extent type used by this handle.">handle::extent_type</a>) -2, 1, <span class="keyword">true</span>));</div>
+<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="comment">// TODO, awaiting a template parameter to specify the backup lock</span></div>
+<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; abort();</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="keywordflow">else</span></div>
+<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; {</div>
+<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="comment">// Mark the map as being in use by me too</span></div>
+<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; BOOST_OUTCOME_FILTER_ERROR(mapinuse2, ret.lock((<a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a617ab627aa596b325d7bfef5210a43f3" title="The file extent type used by this handle.">handle::extent_type</a>) -2, 1, <span class="keyword">false</span>));</div>
+<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; mapinuse = std::move(mapinuse2);</div>
+<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; temph = std::move(_temph.get());</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; }</div>
+<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keywordflow">else</span></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; <span class="comment">// I am the first person to be using this (stale?) file, so create a new hash index file and write its path</span></div>
+<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; ret.<a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a562b5568e9cd0f1a26f0379a9d1a3b79">truncate</a>(0);</div>
+<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; BOOST_OUTCOME_FILTER_ERROR(_temph, file_handle::temp_file());</div>
+<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; temph = std::move(_temph);</div>
+<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="keyword">auto</span> temppath(temph.<a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a8581a32e1ed27a84046bc5cd9a248392" title="The path this handle refers to, if any.">path</a>());</div>
+<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; temph.<a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a562b5568e9cd0f1a26f0379a9d1a3b79">truncate</a>(HashIndexSize);</div>
+<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="comment">// Write the path of my new hash index file and convert my lock to a shared one</span></div>
+<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; {</div>
+<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; BOOST_OUTCOME_FILTER_ERROR(_, ret.write(0, (<span class="keyword">const</span> <span class="keywordtype">char</span> *) temppath.c_str(), temppath.native().size() * <span class="keyword">sizeof</span>(*temppath.c_str())));</div>
+<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; (void) _;</div>
+<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; }</div>
+<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="comment">// Convert exclusive whole file lock into lock in use</span></div>
+<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; BOOST_OUTCOME_FILTER_ERROR(lockinuse2, ret.lock((<a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a617ab627aa596b325d7bfef5210a43f3" title="The file extent type used by this handle.">handle::extent_type</a>) -1, 1, <span class="keyword">false</span>));</div>
+<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; BOOST_OUTCOME_FILTER_ERROR(mapinuse2, ret.lock((<a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a617ab627aa596b325d7bfef5210a43f3" title="The file extent type used by this handle.">handle::extent_type</a>) -2, 1, <span class="keyword">false</span>));</div>
+<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; mapinuse = std::move(mapinuse2);</div>
+<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; lockinuse = std::move(lockinuse2);</div>
+<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; }</div>
+<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="comment">// Map the files into memory, being very careful that ret is only ever mapped read only</span></div>
+<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; BOOST_OUTCOME_FILTER_ERROR(hsection, section_handle::section(ret, 0, section_handle::flag::read));</div>
+<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; BOOST_OUTCOME_FILTER_ERROR(temphsection, section_handle::section(temph, HashIndexSize));</div>
+<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; BOOST_OUTCOME_FILTER_ERROR(hmap, map_handle::map(hsection, 0, 0, section_handle::flag::read));</div>
+<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; BOOST_OUTCOME_FILTER_ERROR(temphmap, map_handle::map(temphsection, HashIndexSize));</div>
+<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html" title="Many entity memory mapped shared/exclusive file system based lock.">memory_map</a>(std::move(ret), std::move(temph), std::move(lockinuse.get()), std::move(mapinuse), std::move(hmap), std::move(temphmap));</div>
+<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; }</div>
+<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; BOOST_OUTCOME_CATCH_EXCEPTION_TO_RESULT(<a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html" title="Many entity memory mapped shared/exclusive file system based lock.">memory_map</a>)</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;</div>
+<div class="line"><a name="l00251"></a><span class="lineno"><a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#acf3ab16b4bfebf3b6988146e4fbeb138"> 251</a></span>&#160; <span class="keyword">const</span> <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html" title="A handle to a regular file or device, kept data layout compatible with async_file_handle.">file_handle</a> &amp;<a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#acf3ab16b4bfebf3b6988146e4fbeb138" title="Return the handle to file being used for this lock.">handle</a>() const noexcept { <span class="keywordflow">return</span> _h; }</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="keyword">protected</span>:</div>
+<div class="line"><a name="l00254"></a><span class="lineno"><a class="code" href="structboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map_1_1__entity__idx.html"> 254</a></span>&#160; <span class="keyword">struct </span><a class="code" href="structboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map_1_1__entity__idx.html">_entity_idx</a></div>
+<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; {</div>
+<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="keywordtype">unsigned</span> value : 31;</div>
+<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="keywordtype">unsigned</span> exclusive : 1;</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; <span class="comment">// Create a cache of entities to their indices, eliding collisions where necessary</span></div>
+<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="keyword">static</span> span&lt;_entity_idx&gt; _hash_entities(<a class="code" href="structboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map_1_1__entity__idx.html">_entity_idx</a> *entity_to_idx, <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html#a02af43575220c42252610c818e109b72" title="The type of a sequence of entities.">entities_type</a> &amp;entities)</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; <a class="code" href="structboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map_1_1__entity__idx.html">_entity_idx</a> *ep = entity_to_idx;</div>
+<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">size_t</span> n = 0; n &lt; entities.size(); n++)</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; ep-&gt;value = Hasher()(entities[n].value) % _container_entries;</div>
+<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; ep-&gt;exclusive = entities[n].exclusive;</div>
+<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <span class="keywordtype">bool</span> skip = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">size_t</span> m = 0; m &lt; n; m++)</div>
+<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; {</div>
+<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <span class="keywordflow">if</span>(entity_to_idx[m].value == ep-&gt;value)</div>
+<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; {</div>
+<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <span class="keywordflow">if</span>(ep-&gt;exclusive &amp;&amp; !entity_to_idx[m].exclusive)</div>
+<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; entity_to_idx[m].exclusive = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; skip = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; }</div>
+<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; }</div>
+<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; <span class="keywordflow">if</span>(!skip)</div>
+<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; ++ep;</div>
+<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; }</div>
+<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <span class="keywordflow">return</span> span&lt;_entity_idx&gt;(entity_to_idx, ep - entity_to_idx);</div>
+<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; }</div>
+<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <span class="keyword">virtual</span> result&lt;void&gt; _lock(entities_guard &amp;out, deadline d, <span class="keywordtype">bool</span> spin_not_sleep) noexcept <span class="keyword">override</span> <span class="keyword">final</span></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; BOOST_AFIO_LOG_FUNCTION_CALL(<span class="keyword">this</span>);</div>
+<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <span class="keywordflow">if</span>(_hmap.address()[1] != 0)</div>
+<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; {</div>
+<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <span class="comment">// TODO: Fall back onto backup locking system</span></div>
+<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; abort();</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; stl11::chrono::steady_clock::time_point began_steady;</div>
+<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; stl11::chrono::system_clock::time_point end_utc;</div>
+<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; <span class="keywordflow">if</span>(d)</div>
+<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; {</div>
+<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="keywordflow">if</span>((d).steady)</div>
+<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; began_steady = stl11::chrono::steady_clock::now();</div>
+<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; end_utc = (d).to_time_point();</div>
+<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; }</div>
+<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; span&lt;_entity_idx&gt; entity_to_idx(_hash_entities((_entity_idx *) alloca(<span class="keyword">sizeof</span>(_entity_idx) * out.entities.size()), out.entities));</div>
+<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; _hash_index_type &amp;index = _index();</div>
+<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; <span class="comment">// Fire this if an error occurs</span></div>
+<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; <span class="keyword">auto</span> disableunlock = detail::Undoer([&amp;] { out.release(); });</div>
+<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <span class="keywordtype">size_t</span> n;</div>
+<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <span class="keywordflow">for</span>(;;)</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; <span class="keywordtype">size_t</span> was_contended = (size_t) -1;</div>
+<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; {</div>
+<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; <span class="keyword">auto</span> undo = detail::Undoer([&amp;] {</div>
+<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <span class="comment">// 0 to (n-1) need to be closed</span></div>
+<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <span class="keywordflow">if</span>(n &gt; 0)</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; --n;</div>
+<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; <span class="comment">// Now 0 to n needs to be closed</span></div>
+<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <span class="keywordflow">for</span>(; n &gt; 0; n--)</div>
+<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; entity_to_idx[n].exclusive ? index[entity_to_idx[n].value].unlock() : index[entity_to_idx[n].value].unlock_shared();</div>
+<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; entity_to_idx[0].exclusive ? index[entity_to_idx[0].value].unlock() : index[entity_to_idx[0].value].unlock_shared();</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; <span class="keywordflow">for</span>(n = 0; n &lt; entity_to_idx.size(); n++)</div>
+<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; {</div>
+<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <span class="keywordflow">if</span>(!(entity_to_idx[n].exclusive ? index[entity_to_idx[n].value].try_lock() : index[entity_to_idx[n].value].try_lock_shared()))</div>
+<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; {</div>
+<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; was_contended = n;</div>
+<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; <span class="keywordflow">goto</span> failed;</div>
+<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; }</div>
+<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="comment">// Everything is locked, exit</span></div>
+<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; undo.dismiss();</div>
+<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; disableunlock.dismiss();</div>
+<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; <span class="keywordflow">return</span> make_result&lt;void&gt;();</div>
+<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; }</div>
+<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; failed:</div>
+<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <span class="keywordflow">if</span>(d)</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="keywordflow">if</span>((d).steady)</div>
+<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">if</span>(stl11::chrono::steady_clock::now() &gt;= (began_steady + stl11::chrono::nanoseconds((d).nsecs)))</div>
+<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; <span class="keywordflow">return</span> make_errored_result&lt;void&gt;(ETIMEDOUT);</div>
+<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; }</div>
+<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; <span class="keywordflow">else</span></div>
+<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">if</span>(stl11::chrono::system_clock::now() &gt;= end_utc)</div>
+<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; <span class="keywordflow">return</span> make_errored_result&lt;void&gt;(ETIMEDOUT);</div>
+<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; }</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="comment">// Move was_contended to front and randomise rest of out.entities</span></div>
+<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; std::swap(entity_to_idx[was_contended], entity_to_idx[0]);</div>
+<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; <span class="keyword">auto</span> front = entity_to_idx.begin();</div>
+<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; ++front;</div>
+<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; std::random_shuffle(front, entity_to_idx.end());</div>
+<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; <span class="keywordflow">if</span>(!spin_not_sleep)</div>
+<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; std::this_thread::yield();</div>
+<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="comment">// return make_result&lt;void&gt;();</span></div>
+<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;</div>
+<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00358"></a><span class="lineno"><a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#a80efd5836f20ac304bdcf0033c95de8b"> 358</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> unlock(<a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html#a02af43575220c42252610c818e109b72" title="The type of a sequence of entities.">entities_type</a> entities, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span>) noexcept <span class="keyword">override</span> <span class="keyword">final</span></div>
+<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; {</div>
+<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; BOOST_AFIO_LOG_FUNCTION_CALL(<span class="keyword">this</span>);</div>
+<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; span&lt;_entity_idx&gt; entity_to_idx(_hash_entities((<a class="code" href="structboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map_1_1__entity__idx.html">_entity_idx</a> *) alloca(<span class="keyword">sizeof</span>(<a class="code" href="structboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map_1_1__entity__idx.html">_entity_idx</a>) * entities.size()), entities));</div>
+<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; _hash_index_type &amp;index = _index();</div>
+<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">const</span> <span class="keyword">auto</span> &amp;i : entity_to_idx)</div>
+<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; i.exclusive ? index[i.value].unlock() : index[i.value].unlock_shared();</div>
+<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; }</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; };</div>
+<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160;</div>
+<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; } <span class="comment">// namespace</span></div>
+<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160;} <span class="comment">// namespace</span></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;<a class="code" href="group__config.html#ga39f521144fef02193249bb7e3b0698fe" title="Expands into the appropriate namespace markup to exit the AFIO v2 namespace.">BOOST_AFIO_V2_NAMESPACE_END</a></div>
+<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160;</div>
+<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160;</div>
+<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160;<span class="preprocessor">#endif</span></div>
+</div><!-- fragment --></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="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_1878a3f4746a95c6aad317458cc7ef80.html">boost</a></li><li class="navelem"><a class="el" href="dir_ab196a265b6af1574b3a29b000b1d247.html">afio</a></li><li class="navelem"><a class="el" href="dir_a38a52e61a9b0b56a6ddbdae4d4f5a3e.html">v2.0</a></li><li class="navelem"><a class="el" href="dir_915e9fcce4b5dcb2e972f08f09b5e22d.html">algorithm</a></li><li class="navelem"><a class="el" href="dir_9fa9dee9180068c16577875815e1b7dd.html">shared_fs_mutex</a></li><li class="navelem"><a class="el" href="memory__map_8hpp.html">memory_map.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.3.1 </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/namespaceboost_1_1afio_1_1v2__xxx.html b/namespaceboost_1_1afio_1_1v2__xxx.html
index efb83b25..85def421 100644
--- a/namespaceboost_1_1afio_1_1v2__xxx.html
+++ b/namespaceboost_1_1afio_1_1v2__xxx.html
@@ -208,6 +208,9 @@ span&lt; char &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1afio_1_1v2__xxx.html#aaa526a2f0758c697b243b93ce14bc461">strip_pretty_function</a> (char *out, size_t bytes, const char *in)</td></tr>
<tr class="memdesc:aaa526a2f0758c697b243b93ce14bc461"><td class="mdescLeft">&#160;</td><td class="mdescRight">Strips a <b>PRETTY_FUNCTION</b> of all instances of <a class="el" href="namespaceboost_1_1afio.html" title="The AFIO namespace.">boost::afio</a>:: and boost::outcome:: <br/></td></tr>
<tr class="separator:aaa526a2f0758c697b243b93ce14bc461"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad7da7a1d3240d7574fc7c6ee5831b7ee"><td class="memItemLeft" align="right" valign="top">const fixme_path &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1afio_1_1v2__xxx.html#ad7da7a1d3240d7574fc7c6ee5831b7ee">fixme_temporary_files_directory</a> () noexcept</td></tr>
+<tr class="memdesc:ad7da7a1d3240d7574fc7c6ee5831b7ee"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a path to a directory reported by the operating system to be suitable for storing temporary files. As operating systems are known to sometimes lie about the validity of this path, each of the available temporary file path options reported by the OS are probed by trying to create a file in each until success is found. If none of the available options are writable, some valid path containing the string "no_temporary_directories_accessible" will be returned which should cause all operations using that path to fail with a usefully user visible error message. <a href="#ad7da7a1d3240d7574fc7c6ee5831b7ee">More...</a><br/></td></tr>
+<tr class="separator:ad7da7a1d3240d7574fc7c6ee5831b7ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a79c5b6d82d8ad47e694e69228446ace5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a79c5b6d82d8ad47e694e69228446ace5"></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="classboost_1_1afio_1_1v2__xxx_1_1handle.html">handle</a> &amp;v)</td></tr>
<tr class="separator:a79c5b6d82d8ad47e694e69228446ace5"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -226,7 +229,34 @@ std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operato
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Inline namespace for this version of AFIO. </p>
-</div></div><!-- contents -->
+</div><h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="ad7da7a1d3240d7574fc7c6ee5831b7ee"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">const fixme_path&amp; boost::afio::v2_xxx::fixme_temporary_files_directory </td>
+ <td>(</td>
+ <td class="paramname"></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>Returns a path to a directory reported by the operating system to be suitable for storing temporary files. As operating systems are known to sometimes lie about the validity of this path, each of the available temporary file path options reported by the OS are probed by trying to create a file in each until success is found. If none of the available options are writable, some valid path containing the string "no_temporary_directories_accessible" will be returned which should cause all operations using that path to fail with a usefully user visible error message. </p>
+<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000002">Todo:</a></b></dt><dd>This function needs to become a static member function of <code>afio::path</code> once that is written, hence the 'fixme' in its title. </dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
diff --git a/namespaceboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex.html b/namespaceboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex.html
index ee41b38e..2f641310 100644
--- a/namespaceboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex.html
+++ b/namespaceboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex.html
@@ -129,6 +129,9 @@ 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="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1lock__files.html">lock_files</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Many entity exclusive compatibility file system based lock. <a href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1lock__files.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="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html">memory_map</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Many entity memory mapped shared/exclusive file system based lock. <a href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.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="typedef-members"></a>
Typedefs</h2></td></tr>
diff --git a/namespaceboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex.js b/namespaceboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex.js
index 59ded5b5..df4ff68f 100644
--- a/namespaceboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex.js
+++ b/namespaceboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex.js
@@ -3,5 +3,6 @@ var namespaceboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex =
[ "atomic_append", "classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1atomic__append.html", "classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1atomic__append" ],
[ "shared_fs_mutex", "classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html", "classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex" ],
[ "byte_ranges", "classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html", "classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges" ],
- [ "lock_files", "classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1lock__files.html", "classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1lock__files" ]
+ [ "lock_files", "classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1lock__files.html", "classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1lock__files" ],
+ [ "memory_map", "classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html", "classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map" ]
]; \ No newline at end of file
diff --git a/namespacemembers.html b/namespacemembers.html
index 9b9219da..99134828 100644
--- a/namespacemembers.html
+++ b/namespacemembers.html
@@ -125,6 +125,9 @@ $(document).ready(function(){initNavTree('namespacemembers.html','');});
<li>file_buffer_default_size()
: <a class="el" href="namespaceboost_1_1afio_1_1v2__xxx_1_1utils.html#a372dccddba2f36695a095dbe98474f1a">boost::afio::v2_xxx::utils</a>
</li>
+<li>fixme_temporary_files_directory()
+: <a class="el" href="namespaceboost_1_1afio_1_1v2__xxx.html#ad7da7a1d3240d7574fc7c6ee5831b7ee">boost::afio::v2_xxx</a>
+</li>
<li>from_hex_string()
: <a class="el" href="namespaceboost_1_1afio_1_1v2__xxx_1_1utils.html#a4757e475a9bdd0df572f7bf1babc5aae">boost::afio::v2_xxx::utils</a>
</li>
diff --git a/namespacemembers_func.html b/namespacemembers_func.html
index e25d449f..7ef2813b 100644
--- a/namespacemembers_func.html
+++ b/namespacemembers_func.html
@@ -125,6 +125,9 @@ $(document).ready(function(){initNavTree('namespacemembers_func.html','');});
<li>file_buffer_default_size()
: <a class="el" href="namespaceboost_1_1afio_1_1v2__xxx_1_1utils.html#a372dccddba2f36695a095dbe98474f1a">boost::afio::v2_xxx::utils</a>
</li>
+<li>fixme_temporary_files_directory()
+: <a class="el" href="namespaceboost_1_1afio_1_1v2__xxx.html#ad7da7a1d3240d7574fc7c6ee5831b7ee">boost::afio::v2_xxx</a>
+</li>
<li>from_hex_string()
: <a class="el" href="namespaceboost_1_1afio_1_1v2__xxx_1_1utils.html#a4757e475a9bdd0df572f7bf1babc5aae">boost::afio::v2_xxx::utils</a>
</li>
diff --git a/navtree.js b/navtree.js
index a2f9f77b..37ad7f5a 100644
--- a/navtree.js
+++ b/navtree.js
@@ -38,10 +38,10 @@ var NAVTREE =
var NAVTREEINDEX =
[
"afio_8hpp.html",
-"classboost_1_1afio_1_1v2__xxx_1_1handle.html#a81c7de194feaa88684ca9851d0d527ca",
-"classboost_1_1afio_1_1v2__xxx_1_1section__handle.html#acd7f0c039e94c7ad40937fe32a2cabada334c4a4c42fdb79d7ebc3e73b517e6f8",
-"io__service_8hpp_source.html",
-"structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1storage__profile.html#a10d6cab54ce1b2bc1e7236d39b9dc361"
+"classboost_1_1afio_1_1v2__xxx_1_1handle.html#a2c20412387db2551d9b26824412d4986",
+"classboost_1_1afio_1_1v2__xxx_1_1section__handle.html#a81c7de194feaa88684ca9851d0d527caad5197d93c063a2b1e22d1630a39b7aef",
+"group__config.html#gad9fda2e1537705604ffb6f707cb9eed7",
+"structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1item__base.html#a4768051e2c28b127b07a4f7914d94de5"
];
var SYNCONMSG = 'click to disable panel synchronisation';
diff --git a/navtreeindex0.js b/navtreeindex0.js
index 86313bfc..4c2ca10d 100644
--- a/navtreeindex0.js
+++ b/navtreeindex0.js
@@ -65,6 +65,23 @@ var NAVTREEINDEX0 =
"classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1lock__files.html#adc91b1e075ed52fc277c59213cf7b357":[3,0,0,0,0,0,0,3,5],
"classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1lock__files.html#add03e83899cc96555d1c9b3169cef068":[3,0,0,0,0,0,0,3,3],
"classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1lock__files.html#ade23c2f167c550c66fa5522ad3e27b7e":[3,0,0,0,0,0,0,3,8],
+"classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html":[3,0,0,0,0,0,0,4],
+"classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#a0245abc2bf944b196efeb4f8bdb1dd24":[3,0,0,0,0,0,0,4,12],
+"classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#a19fafd3b1f9a098c9e60212e7ba97e32":[3,0,0,0,0,0,0,4,10],
+"classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#a493872c8b5dbfa83fdf82242b928e112":[3,0,0,0,0,0,0,4,13],
+"classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#a50848058867ee3533b812378aff20b03":[3,0,0,0,0,0,0,4,8],
+"classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#a6d121be3d16ec5fcd15d61e59f8b66bd":[3,0,0,0,0,0,0,4,6],
+"classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#a80efd5836f20ac304bdcf0033c95de8b":[3,0,0,0,0,0,0,4,16],
+"classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#a851d41aee26d0d58cc7e6371724dfd80":[3,0,0,0,0,0,0,4,14],
+"classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#a8689cb5c9090d4701fac23be0bb2aebe":[3,0,0,0,0,0,0,4,5],
+"classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#a8803169706293901b29fbae2eaad1ee6":[3,0,0,0,0,0,0,4,3],
+"classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#a9cc8c9f8c25a6ec30464839ebdf845af":[3,0,0,0,0,0,0,4,1],
+"classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#ab248a548b71660335d14f88270741b1c":[3,0,0,0,0,0,0,4,2],
+"classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#acbbdc594d360ed48c621a4aca786e8bf":[3,0,0,0,0,0,0,4,4],
+"classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#acf3ab16b4bfebf3b6988146e4fbeb138":[3,0,0,0,0,0,0,4,9],
+"classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#ad8f772f5f052920879526dbb66a90823":[3,0,0,0,0,0,0,4,15],
+"classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#adc91b1e075ed52fc277c59213cf7b357":[3,0,0,0,0,0,0,4,7],
+"classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#ade23c2f167c550c66fa5522ad3e27b7e":[3,0,0,0,0,0,0,4,11],
"classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html":[3,0,0,0,0,0,0,1],
"classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html#a02af43575220c42252610c818e109b72":[3,0,0,0,0,0,0,1,2],
"classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html#a0aa6687944f4489fd680c4f8cf8ce50e":[3,0,0,0,0,0,0,1,5],
@@ -232,22 +249,5 @@ var NAVTREEINDEX0 =
"classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#af2d9387a79e320e2902880fee38b392a":[3,0,0,0,0,6,29],
"classboost_1_1afio_1_1v2__xxx_1_1handle.html":[3,0,0,0,0,7],
"classboost_1_1afio_1_1v2__xxx_1_1handle.html#a0dbf908498e5cbf54ee0fff752c0c490":[3,0,0,0,0,7,12],
-"classboost_1_1afio_1_1v2__xxx_1_1handle.html#a28bfd52c52de4aa17ceb208e54bcc4e6":[3,0,0,0,0,7,11],
-"classboost_1_1afio_1_1v2__xxx_1_1handle.html#a2c20412387db2551d9b26824412d4986":[3,0,0,0,0,7,13],
-"classboost_1_1afio_1_1v2__xxx_1_1handle.html#a3460c3419d165c7d9e8aaee8db3c7f2c":[3,0,0,0,0,7,23],
-"classboost_1_1afio_1_1v2__xxx_1_1handle.html#a3c14ec910a3eac02b44688807c9b7511":[3,0,0,0,0,7,27],
-"classboost_1_1afio_1_1v2__xxx_1_1handle.html#a3e08545dd29f09a40ff8439ac774ae1e":[3,0,0,0,0,7,15],
-"classboost_1_1afio_1_1v2__xxx_1_1handle.html#a461355ae526806b338fd2eaadc564a43":[3,0,0,0,0,7,35],
-"classboost_1_1afio_1_1v2__xxx_1_1handle.html#a5037b058e4f8ef02a776d870b10d379a":[3,0,0,0,0,7,42],
-"classboost_1_1afio_1_1v2__xxx_1_1handle.html#a59c9bc1338196095a028b2870dcfb61d":[3,0,0,0,0,7,36],
-"classboost_1_1afio_1_1v2__xxx_1_1handle.html#a5c7d33dcd1f366fa378607e1dd087744":[3,0,0,0,0,7,40],
-"classboost_1_1afio_1_1v2__xxx_1_1handle.html#a617ab627aa596b325d7bfef5210a43f3":[3,0,0,0,0,7,2],
-"classboost_1_1afio_1_1v2__xxx_1_1handle.html#a651ff10099e7522df784507aca8b8f0f":[3,0,0,0,0,7,17],
-"classboost_1_1afio_1_1v2__xxx_1_1handle.html#a6aa861f1403424bf5768d6dd25da402f":[3,0,0,0,0,7,28],
-"classboost_1_1afio_1_1v2__xxx_1_1handle.html#a70998344e2234961c5ad64491d042ff8":[3,0,0,0,0,7,14],
-"classboost_1_1afio_1_1v2__xxx_1_1handle.html#a72da822cb2e7c406aaa40be0f44b16fa":[3,0,0,0,0,7,29],
-"classboost_1_1afio_1_1v2__xxx_1_1handle.html#a75bedfc2b14073a20ac359edc29f9cc9":[3,0,0,0,0,7,26],
-"classboost_1_1afio_1_1v2__xxx_1_1handle.html#a75d78e5591cafbc68e8ba4e2b2deffa9":[3,0,0,0,0,7,20],
-"classboost_1_1afio_1_1v2__xxx_1_1handle.html#a7d1fa70986dc1edea222e17fbabc6425":[3,0,0,0,0,7,37],
-"classboost_1_1afio_1_1v2__xxx_1_1handle.html#a81b36f2dcb205e049f3c3781c7973b6e":[3,0,0,0,0,7,25]
+"classboost_1_1afio_1_1v2__xxx_1_1handle.html#a28bfd52c52de4aa17ceb208e54bcc4e6":[3,0,0,0,0,7,11]
};
diff --git a/navtreeindex1.js b/navtreeindex1.js
index 7ca9f596..9d02755c 100644
--- a/navtreeindex1.js
+++ b/navtreeindex1.js
@@ -1,5 +1,22 @@
var NAVTREEINDEX1 =
{
+"classboost_1_1afio_1_1v2__xxx_1_1handle.html#a2c20412387db2551d9b26824412d4986":[3,0,0,0,0,7,13],
+"classboost_1_1afio_1_1v2__xxx_1_1handle.html#a3460c3419d165c7d9e8aaee8db3c7f2c":[3,0,0,0,0,7,23],
+"classboost_1_1afio_1_1v2__xxx_1_1handle.html#a3c14ec910a3eac02b44688807c9b7511":[3,0,0,0,0,7,27],
+"classboost_1_1afio_1_1v2__xxx_1_1handle.html#a3e08545dd29f09a40ff8439ac774ae1e":[3,0,0,0,0,7,15],
+"classboost_1_1afio_1_1v2__xxx_1_1handle.html#a461355ae526806b338fd2eaadc564a43":[3,0,0,0,0,7,35],
+"classboost_1_1afio_1_1v2__xxx_1_1handle.html#a5037b058e4f8ef02a776d870b10d379a":[3,0,0,0,0,7,42],
+"classboost_1_1afio_1_1v2__xxx_1_1handle.html#a59c9bc1338196095a028b2870dcfb61d":[3,0,0,0,0,7,36],
+"classboost_1_1afio_1_1v2__xxx_1_1handle.html#a5c7d33dcd1f366fa378607e1dd087744":[3,0,0,0,0,7,40],
+"classboost_1_1afio_1_1v2__xxx_1_1handle.html#a617ab627aa596b325d7bfef5210a43f3":[3,0,0,0,0,7,2],
+"classboost_1_1afio_1_1v2__xxx_1_1handle.html#a651ff10099e7522df784507aca8b8f0f":[3,0,0,0,0,7,17],
+"classboost_1_1afio_1_1v2__xxx_1_1handle.html#a6aa861f1403424bf5768d6dd25da402f":[3,0,0,0,0,7,28],
+"classboost_1_1afio_1_1v2__xxx_1_1handle.html#a70998344e2234961c5ad64491d042ff8":[3,0,0,0,0,7,14],
+"classboost_1_1afio_1_1v2__xxx_1_1handle.html#a72da822cb2e7c406aaa40be0f44b16fa":[3,0,0,0,0,7,29],
+"classboost_1_1afio_1_1v2__xxx_1_1handle.html#a75bedfc2b14073a20ac359edc29f9cc9":[3,0,0,0,0,7,26],
+"classboost_1_1afio_1_1v2__xxx_1_1handle.html#a75d78e5591cafbc68e8ba4e2b2deffa9":[3,0,0,0,0,7,20],
+"classboost_1_1afio_1_1v2__xxx_1_1handle.html#a7d1fa70986dc1edea222e17fbabc6425":[3,0,0,0,0,7,37],
+"classboost_1_1afio_1_1v2__xxx_1_1handle.html#a81b36f2dcb205e049f3c3781c7973b6e":[3,0,0,0,0,7,25],
"classboost_1_1afio_1_1v2__xxx_1_1handle.html#a81c7de194feaa88684ca9851d0d527ca":[3,0,0,0,0,7,6],
"classboost_1_1afio_1_1v2__xxx_1_1handle.html#a81c7de194feaa88684ca9851d0d527caa0fb9cf5f04f61bb6f1151da57ceb1ca1":[3,0,0,0,0,7,6,3],
"classboost_1_1afio_1_1v2__xxx_1_1handle.html#a81c7de194feaa88684ca9851d0d527caa334c4a4c42fdb79d7ebc3e73b517e6f8":[3,0,0,0,0,7,6,1],
@@ -232,22 +249,5 @@ var NAVTREEINDEX1 =
"classboost_1_1afio_1_1v2__xxx_1_1section__handle.html#a81c7de194feaa88684ca9851d0d527caa334c4a4c42fdb79d7ebc3e73b517e6f8":[3,0,0,0,0,10,5,1],
"classboost_1_1afio_1_1v2__xxx_1_1section__handle.html#a81c7de194feaa88684ca9851d0d527caa8d7b3d6b83c0a517eac07e1aac94b773":[3,0,0,0,0,10,5,0],
"classboost_1_1afio_1_1v2__xxx_1_1section__handle.html#a81c7de194feaa88684ca9851d0d527caaa181a603769c1f98ad927e7367c7aa51":[3,0,0,0,0,10,5,5],
-"classboost_1_1afio_1_1v2__xxx_1_1section__handle.html#a81c7de194feaa88684ca9851d0d527caab8a61dd00ce6fc5888706bda8fab2e98":[3,0,0,0,0,10,5,2],
-"classboost_1_1afio_1_1v2__xxx_1_1section__handle.html#a81c7de194feaa88684ca9851d0d527caad5197d93c063a2b1e22d1630a39b7aef":[3,0,0,0,0,10,5,7],
-"classboost_1_1afio_1_1v2__xxx_1_1section__handle.html#a81c7de194feaa88684ca9851d0d527caadec4ecca8ae1593f84eea4656599a693":[3,0,0,0,0,10,5,4],
-"classboost_1_1afio_1_1v2__xxx_1_1section__handle.html#a81c7de194feaa88684ca9851d0d527caadfa4d35596e04e042a53c64b25c22db3":[3,0,0,0,0,10,5,6],
-"classboost_1_1afio_1_1v2__xxx_1_1section__handle.html#a8d3193d192d5de93d3ea781b93ea398b":[3,0,0,0,0,10,46],
-"classboost_1_1afio_1_1v2__xxx_1_1section__handle.html#a8d4b2f3b095a80e651c18143246ee4e9":[3,0,0,0,0,10,20],
-"classboost_1_1afio_1_1v2__xxx_1_1section__handle.html#aa28b35a32f1292b6126a82bba20a2c90":[3,0,0,0,0,10,3],
-"classboost_1_1afio_1_1v2__xxx_1_1section__handle.html#aa8de6675205db68de70bf9075a6c649f":[3,0,0,0,0,10,38],
-"classboost_1_1afio_1_1v2__xxx_1_1section__handle.html#aac2ebb1d0f361f4178bb5802598f0234":[3,0,0,0,0,10,10],
-"classboost_1_1afio_1_1v2__xxx_1_1section__handle.html#ab7acaf4e9155f8ad4023813354de5357":[3,0,0,0,0,10,6],
-"classboost_1_1afio_1_1v2__xxx_1_1section__handle.html#ab7acaf4e9155f8ad4023813354de5357a244f58cf07c35fd48d7524b289551e5c":[3,0,0,0,0,10,6,3],
-"classboost_1_1afio_1_1v2__xxx_1_1section__handle.html#ab7acaf4e9155f8ad4023813354de5357a8f0339e854eb5321306a443ce9199e1d":[3,0,0,0,0,10,6,2],
-"classboost_1_1afio_1_1v2__xxx_1_1section__handle.html#ab7acaf4e9155f8ad4023813354de5357aa200dcd6176417e93be2405188ae7cc9":[3,0,0,0,0,10,6,0],
-"classboost_1_1afio_1_1v2__xxx_1_1section__handle.html#ab7acaf4e9155f8ad4023813354de5357abba3bc579480e6c94ecd81b7b5923255":[3,0,0,0,0,10,6,1],
-"classboost_1_1afio_1_1v2__xxx_1_1section__handle.html#abe273f17a7504e8247846f3b300df9d1":[3,0,0,0,0,10,43],
-"classboost_1_1afio_1_1v2__xxx_1_1section__handle.html#abef3375ff35a72bd780cbee0b600b26d":[3,0,0,0,0,10,17],
-"classboost_1_1afio_1_1v2__xxx_1_1section__handle.html#ac847865f7370c00ca1e7d0b2ac8ee4e7":[3,0,0,0,0,10,28],
-"classboost_1_1afio_1_1v2__xxx_1_1section__handle.html#acd7f0c039e94c7ad40937fe32a2cabad":[3,0,0,0,0,10,7]
+"classboost_1_1afio_1_1v2__xxx_1_1section__handle.html#a81c7de194feaa88684ca9851d0d527caab8a61dd00ce6fc5888706bda8fab2e98":[3,0,0,0,0,10,5,2]
};
diff --git a/navtreeindex2.js b/navtreeindex2.js
index 73fcf98e..0777e1b4 100644
--- a/navtreeindex2.js
+++ b/navtreeindex2.js
@@ -1,5 +1,22 @@
var NAVTREEINDEX2 =
{
+"classboost_1_1afio_1_1v2__xxx_1_1section__handle.html#a81c7de194feaa88684ca9851d0d527caad5197d93c063a2b1e22d1630a39b7aef":[3,0,0,0,0,10,5,7],
+"classboost_1_1afio_1_1v2__xxx_1_1section__handle.html#a81c7de194feaa88684ca9851d0d527caadec4ecca8ae1593f84eea4656599a693":[3,0,0,0,0,10,5,4],
+"classboost_1_1afio_1_1v2__xxx_1_1section__handle.html#a81c7de194feaa88684ca9851d0d527caadfa4d35596e04e042a53c64b25c22db3":[3,0,0,0,0,10,5,6],
+"classboost_1_1afio_1_1v2__xxx_1_1section__handle.html#a8d3193d192d5de93d3ea781b93ea398b":[3,0,0,0,0,10,46],
+"classboost_1_1afio_1_1v2__xxx_1_1section__handle.html#a8d4b2f3b095a80e651c18143246ee4e9":[3,0,0,0,0,10,20],
+"classboost_1_1afio_1_1v2__xxx_1_1section__handle.html#aa28b35a32f1292b6126a82bba20a2c90":[3,0,0,0,0,10,3],
+"classboost_1_1afio_1_1v2__xxx_1_1section__handle.html#aa8de6675205db68de70bf9075a6c649f":[3,0,0,0,0,10,38],
+"classboost_1_1afio_1_1v2__xxx_1_1section__handle.html#aac2ebb1d0f361f4178bb5802598f0234":[3,0,0,0,0,10,10],
+"classboost_1_1afio_1_1v2__xxx_1_1section__handle.html#ab7acaf4e9155f8ad4023813354de5357":[3,0,0,0,0,10,6],
+"classboost_1_1afio_1_1v2__xxx_1_1section__handle.html#ab7acaf4e9155f8ad4023813354de5357a244f58cf07c35fd48d7524b289551e5c":[3,0,0,0,0,10,6,3],
+"classboost_1_1afio_1_1v2__xxx_1_1section__handle.html#ab7acaf4e9155f8ad4023813354de5357a8f0339e854eb5321306a443ce9199e1d":[3,0,0,0,0,10,6,2],
+"classboost_1_1afio_1_1v2__xxx_1_1section__handle.html#ab7acaf4e9155f8ad4023813354de5357aa200dcd6176417e93be2405188ae7cc9":[3,0,0,0,0,10,6,0],
+"classboost_1_1afio_1_1v2__xxx_1_1section__handle.html#ab7acaf4e9155f8ad4023813354de5357abba3bc579480e6c94ecd81b7b5923255":[3,0,0,0,0,10,6,1],
+"classboost_1_1afio_1_1v2__xxx_1_1section__handle.html#abe273f17a7504e8247846f3b300df9d1":[3,0,0,0,0,10,43],
+"classboost_1_1afio_1_1v2__xxx_1_1section__handle.html#abef3375ff35a72bd780cbee0b600b26d":[3,0,0,0,0,10,17],
+"classboost_1_1afio_1_1v2__xxx_1_1section__handle.html#ac847865f7370c00ca1e7d0b2ac8ee4e7":[3,0,0,0,0,10,28],
+"classboost_1_1afio_1_1v2__xxx_1_1section__handle.html#acd7f0c039e94c7ad40937fe32a2cabad":[3,0,0,0,0,10,7],
"classboost_1_1afio_1_1v2__xxx_1_1section__handle.html#acd7f0c039e94c7ad40937fe32a2cabada334c4a4c42fdb79d7ebc3e73b517e6f8":[3,0,0,0,0,10,7,1],
"classboost_1_1afio_1_1v2__xxx_1_1section__handle.html#acd7f0c039e94c7ad40937fe32a2cabada8d7b3d6b83c0a517eac07e1aac94b773":[3,0,0,0,0,10,7,0],
"classboost_1_1afio_1_1v2__xxx_1_1section__handle.html#acd7f0c039e94c7ad40937fe32a2cabada9516dfb15f51c7ee19a4d46b8c0dbe1d":[3,0,0,0,0,10,7,6],
@@ -159,6 +176,7 @@ var NAVTREEINDEX2 =
"dir_ab196a265b6af1574b3a29b000b1d247.html":[4,0,0,0,0],
"dir_d44c64559bbebec7f509842c48db8b23.html":[4,0,0],
"file__handle_8hpp.html":[4,0,0,0,0,0,5],
+"file__handle_8hpp.html#ad7da7a1d3240d7574fc7c6ee5831b7ee":[4,0,0,0,0,0,5,1],
"file__handle_8hpp_source.html":[4,0,0,0,0,0,5],
"files.html":[4,0],
"functions.html":[3,3,0],
@@ -231,23 +249,5 @@ var NAVTREEINDEX2 =
"group__config.html#gaa1c6bc5f2e5ebf3d2d18ee8ceee0f740":[1,0,13],
"group__config.html#gab4f63024aa1238f1d6a067b3d7fb23c7":[1,0,4],
"group__config.html#gab5974d84a78dbcf8b072fca370f1291d":[1,0,9],
-"group__config.html#gad8f3e2fb1aa278110cc8d7952abab5b6":[1,0,2],
-"group__config.html#gad9fda2e1537705604ffb6f707cb9eed7":[1,0,12],
-"group__config.html#gadf729c61872b75229d5582f9d4581cd5":[1,0,8],
-"group__config.html#gaeec5ceb4b6aeef697acbc5bc2a2ae439":[1,0,16],
-"group__config.html#gaf3a6425bd3fbc48f39ce521d685d3816":[1,0,11],
-"handle_8hpp.html":[4,0,0,0,0,0,6],
-"handle_8hpp.html#a36e611d6b3c5c461ec23965b8b31a221":[4,0,0,0,0,0,6,9],
-"handle_8hpp.html#a79c5b6d82d8ad47e694e69228446ace5":[4,0,0,0,0,0,6,7],
-"handle_8hpp.html#a83bbe16587513bb06c3264bfa1c765df":[4,0,0,0,0,0,6,8],
-"handle_8hpp.html#abd83344e30b7243b425f99ae20ba5e2a":[4,0,0,0,0,0,6,11],
-"handle_8hpp.html#ae1e2df470945bf6682ef9ef59b1de856":[4,0,0,0,0,0,6,10],
-"handle_8hpp_source.html":[4,0,0,0,0,0,6],
-"hierarchy.html":[3,2],
-"index.html":[],
-"io__service_8hpp.html":[4,0,0,0,0,0,7],
-"io__service_8hpp.html#a1b6876c3aadf9312dd9a8e3243b947fb":[4,0,0,0,0,0,7,2],
-"io__service_8hpp.html#ab9c867c05f1692955f174763005b0267":[4,0,0,0,0,0,7,1],
-"io__service_8hpp.html#abdaca09b588fa6e093d02785faf5694e":[4,0,0,0,0,0,7,4],
-"io__service_8hpp.html#abe3ed2afdf4ef53e3e2d85853f127a95":[4,0,0,0,0,0,7,3]
+"group__config.html#gad8f3e2fb1aa278110cc8d7952abab5b6":[1,0,2]
};
diff --git a/navtreeindex3.js b/navtreeindex3.js
index f96f3a49..12edce21 100644
--- a/navtreeindex3.js
+++ b/navtreeindex3.js
@@ -1,24 +1,44 @@
var NAVTREEINDEX3 =
{
+"group__config.html#gad9fda2e1537705604ffb6f707cb9eed7":[1,0,12],
+"group__config.html#gadf729c61872b75229d5582f9d4581cd5":[1,0,8],
+"group__config.html#gaeec5ceb4b6aeef697acbc5bc2a2ae439":[1,0,16],
+"group__config.html#gaf3a6425bd3fbc48f39ce521d685d3816":[1,0,11],
+"handle_8hpp.html":[4,0,0,0,0,0,6],
+"handle_8hpp.html#a36e611d6b3c5c461ec23965b8b31a221":[4,0,0,0,0,0,6,9],
+"handle_8hpp.html#a79c5b6d82d8ad47e694e69228446ace5":[4,0,0,0,0,0,6,7],
+"handle_8hpp.html#a83bbe16587513bb06c3264bfa1c765df":[4,0,0,0,0,0,6,8],
+"handle_8hpp.html#abd83344e30b7243b425f99ae20ba5e2a":[4,0,0,0,0,0,6,11],
+"handle_8hpp.html#ae1e2df470945bf6682ef9ef59b1de856":[4,0,0,0,0,0,6,10],
+"handle_8hpp_source.html":[4,0,0,0,0,0,6],
+"hierarchy.html":[3,2],
+"index.html":[],
+"io__service_8hpp.html":[4,0,0,0,0,0,7],
+"io__service_8hpp.html#a1b6876c3aadf9312dd9a8e3243b947fb":[4,0,0,0,0,0,7,2],
+"io__service_8hpp.html#ab9c867c05f1692955f174763005b0267":[4,0,0,0,0,0,7,1],
+"io__service_8hpp.html#abdaca09b588fa6e093d02785faf5694e":[4,0,0,0,0,0,7,4],
+"io__service_8hpp.html#abe3ed2afdf4ef53e3e2d85853f127a95":[4,0,0,0,0,0,7,3],
"io__service_8hpp_source.html":[4,0,0,0,0,0,7],
"lock__files_8hpp.html":[4,0,0,0,0,0,0,0,3],
"lock__files_8hpp_source.html":[4,0,0,0,0,0,0,0,3],
"map__handle_8hpp.html":[4,0,0,0,0,0,8],
"map__handle_8hpp.html#abd83344e30b7243b425f99ae20ba5e2a":[4,0,0,0,0,0,8,3],
"map__handle_8hpp_source.html":[4,0,0,0,0,0,8],
+"memory__map_8hpp.html":[4,0,0,0,0,0,0,0,4],
+"memory__map_8hpp_source.html":[4,0,0,0,0,0,0,0,4],
"modules.html":[1],
"namespaceboost.html":[3,0,0],
"namespaceboost.html":[2,0,0],
-"namespaceboost_1_1afio.html":[2,0,0,0],
"namespaceboost_1_1afio.html":[3,0,0,0],
+"namespaceboost_1_1afio.html":[2,0,0,0],
"namespaceboost_1_1afio_1_1v2__xxx.html":[2,0,0,0,0],
"namespaceboost_1_1afio_1_1v2__xxx.html":[3,0,0,0,0],
"namespaceboost_1_1afio_1_1v2__xxx_1_1algorithm.html":[2,0,0,0,0,0],
"namespaceboost_1_1afio_1_1v2__xxx_1_1algorithm.html":[3,0,0,0,0,0],
"namespaceboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex.html":[2,0,0,0,0,0,0],
"namespaceboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex.html":[3,0,0,0,0,0,0],
-"namespaceboost_1_1afio_1_1v2__xxx_1_1storage__profile.html":[3,0,0,0,0,1],
"namespaceboost_1_1afio_1_1v2__xxx_1_1storage__profile.html":[2,0,0,0,0,1],
+"namespaceboost_1_1afio_1_1v2__xxx_1_1storage__profile.html":[3,0,0,0,0,1],
"namespaceboost_1_1afio_1_1v2__xxx_1_1utils.html":[2,0,0,0,0,2],
"namespaceboost_1_1afio_1_1v2__xxx_1_1utils.html":[3,0,0,0,0,2],
"namespacemembers.html":[2,1,0],
@@ -57,6 +77,9 @@ var NAVTREEINDEX3 =
"storage__profile_8hpp.html#adfa92b32c637b2e291e6ee4791836d30":[4,0,0,0,0,0,11,17],
"storage__profile_8hpp.html#af5aab634094165426c4cce71787560a6":[4,0,0,0,0,0,11,13],
"storage__profile_8hpp_source.html":[4,0,0,0,0,0,11],
+"structboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map_1_1__entity__idx.html":[3,0,0,0,0,0,0,4,0],
+"structboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map_1_1__entity__idx.html#a832dbc34c257aedcc94fc2506f4069cf":[3,0,0,0,0,0,0,4,0,0],
+"structboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map_1_1__entity__idx.html#ad936eba6d3a1d73876e7479ac76e6bf0":[3,0,0,0,0,0,0,4,0,1],
"structboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex_1_1entity__type.html":[3,0,0,0,0,0,0,1,1],
"structboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex_1_1entity__type.html#a133925631cc0c739bf1d5475a4276cff":[3,0,0,0,0,0,0,1,1,1],
"structboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex_1_1entity__type.html#a227a55dd53f95688f8859839d84d40d5":[3,0,0,0,0,0,0,1,1,2],
@@ -226,28 +249,5 @@ var NAVTREEINDEX3 =
"structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1item.html#a6c85d3008ac29a3e42d5f0354b12eb29":[3,0,0,0,0,1,1,4],
"structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1item.html#a836d1718337dae26b9df900f345f86b2":[3,0,0,0,0,1,1,10],
"structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1item.html#ad0e92cf4f4ffbbfc0cc70f02ab8caf17":[3,0,0,0,0,1,1,1],
-"structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1item__base.html":[3,0,0,0,0,1,0],
-"structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1item__base.html#a4768051e2c28b127b07a4f7914d94de5":[3,0,0,0,0,1,0,1],
-"structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1item__base.html#a55d90af1165e015d30489f253396b6c7":[3,0,0,0,0,1,0,2],
-"structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1item__base.html#a5694fece1d182ad76eedd0be4aa59f76":[3,0,0,0,0,1,0,3],
-"structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1item__base.html#a642e481b85a5fc293799731e2312522d":[3,0,0,0,0,1,0,4],
-"structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1item__base.html#ac50981eecd188191dc343943031998d4":[3,0,0,0,0,1,0,0],
-"structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1item__erased.html":[3,0,0,0,0,1,2],
-"structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1item__erased.html#a51695587d7800ddee17b2fd981faa6cf":[3,0,0,0,0,1,2,4],
-"structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1item__erased.html#a55d90af1165e015d30489f253396b6c7":[3,0,0,0,0,1,2,10],
-"structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1item__erased.html#a5641181ff9c67f4d881a0140cfc1e2ef":[3,0,0,0,0,1,2,3],
-"structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1item__erased.html#a5694fece1d182ad76eedd0be4aa59f76":[3,0,0,0,0,1,2,11],
-"structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1item__erased.html#a642e481b85a5fc293799731e2312522d":[3,0,0,0,0,1,2,12],
-"structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1item__erased.html#a76630fb1b49e99f9ea63c08e88089df0":[3,0,0,0,0,1,2,5],
-"structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1item__erased.html#a76f7e011168f83fea557ca114060bf06":[3,0,0,0,0,1,2,1],
-"structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1item__erased.html#a87f1f83906322e0514950e9340992677":[3,0,0,0,0,1,2,2],
-"structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1item__erased.html#a8a45ca725996bfdfab78fcba47f678ed":[3,0,0,0,0,1,2,8],
-"structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1item__erased.html#a8f2336612e1cf2f6a12d909fc3208cc7":[3,0,0,0,0,1,2,0],
-"structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1item__erased.html#a9ddc0d4856a642e11fdaaaf4fc2f99f8":[3,0,0,0,0,1,2,7],
-"structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1item__erased.html#aa09d84ce9c8049e7145fb5ba4e907d45":[3,0,0,0,0,1,2,9],
-"structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1item__erased.html#ab8d8c8607a64200b3d216887bf6303a3":[3,0,0,0,0,1,2,6],
-"structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1storage__profile.html":[3,0,0,0,0,1,3],
-"structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1storage__profile.html#a03efff9ee431c43b9288e2869bace13a":[3,0,0,0,0,1,3,27],
-"structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1storage__profile.html#a08e117ddec1c0b1cb2a601dc4e34a323":[3,0,0,0,0,1,3,15],
-"structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1storage__profile.html#a0a870aa7cede1bd98ac357bb368b1086":[3,0,0,0,0,1,3,37]
+"structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1item__base.html":[3,0,0,0,0,1,0]
};
diff --git a/navtreeindex4.js b/navtreeindex4.js
index a609ed1b..8fcc27ca 100644
--- a/navtreeindex4.js
+++ b/navtreeindex4.js
@@ -1,5 +1,28 @@
var NAVTREEINDEX4 =
{
+"structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1item__base.html#a4768051e2c28b127b07a4f7914d94de5":[3,0,0,0,0,1,0,1],
+"structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1item__base.html#a55d90af1165e015d30489f253396b6c7":[3,0,0,0,0,1,0,2],
+"structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1item__base.html#a5694fece1d182ad76eedd0be4aa59f76":[3,0,0,0,0,1,0,3],
+"structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1item__base.html#a642e481b85a5fc293799731e2312522d":[3,0,0,0,0,1,0,4],
+"structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1item__base.html#ac50981eecd188191dc343943031998d4":[3,0,0,0,0,1,0,0],
+"structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1item__erased.html":[3,0,0,0,0,1,2],
+"structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1item__erased.html#a51695587d7800ddee17b2fd981faa6cf":[3,0,0,0,0,1,2,4],
+"structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1item__erased.html#a55d90af1165e015d30489f253396b6c7":[3,0,0,0,0,1,2,10],
+"structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1item__erased.html#a5641181ff9c67f4d881a0140cfc1e2ef":[3,0,0,0,0,1,2,3],
+"structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1item__erased.html#a5694fece1d182ad76eedd0be4aa59f76":[3,0,0,0,0,1,2,11],
+"structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1item__erased.html#a642e481b85a5fc293799731e2312522d":[3,0,0,0,0,1,2,12],
+"structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1item__erased.html#a76630fb1b49e99f9ea63c08e88089df0":[3,0,0,0,0,1,2,5],
+"structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1item__erased.html#a76f7e011168f83fea557ca114060bf06":[3,0,0,0,0,1,2,1],
+"structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1item__erased.html#a87f1f83906322e0514950e9340992677":[3,0,0,0,0,1,2,2],
+"structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1item__erased.html#a8a45ca725996bfdfab78fcba47f678ed":[3,0,0,0,0,1,2,8],
+"structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1item__erased.html#a8f2336612e1cf2f6a12d909fc3208cc7":[3,0,0,0,0,1,2,0],
+"structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1item__erased.html#a9ddc0d4856a642e11fdaaaf4fc2f99f8":[3,0,0,0,0,1,2,7],
+"structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1item__erased.html#aa09d84ce9c8049e7145fb5ba4e907d45":[3,0,0,0,0,1,2,9],
+"structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1item__erased.html#ab8d8c8607a64200b3d216887bf6303a3":[3,0,0,0,0,1,2,6],
+"structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1storage__profile.html":[3,0,0,0,0,1,3],
+"structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1storage__profile.html#a03efff9ee431c43b9288e2869bace13a":[3,0,0,0,0,1,3,27],
+"structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1storage__profile.html#a08e117ddec1c0b1cb2a601dc4e34a323":[3,0,0,0,0,1,3,15],
+"structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1storage__profile.html#a0a870aa7cede1bd98ac357bb368b1086":[3,0,0,0,0,1,3,37],
"structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1storage__profile.html#a10d6cab54ce1b2bc1e7236d39b9dc361":[3,0,0,0,0,1,3,6],
"structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1storage__profile.html#a16582ee69c4ecd8ca6030f8fad3de639":[3,0,0,0,0,1,3,20],
"structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1storage__profile.html#a19b3d6259b76cc4279e08f1fd1ab57a3":[3,0,0,0,0,1,3,22],
diff --git a/search/all_5f.js b/search/all_5f.js
index 5b9f7612..2dc27834 100644
--- a/search/all_5f.js
+++ b/search/all_5f.js
@@ -1,4 +1,5 @@
var searchData=
[
+ ['_5fentity_5fidx',['_entity_idx',['../structboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map_1_1__entity__idx.html',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::memory_map']]],
['_5flock',['_lock',['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1atomic__append.html#a4c16831d072f5e2ec9a33532b6764616',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::atomic_append']]]
];
diff --git a/search/all_65.js b/search/all_65.js
index c3735c0e..2b51c293 100644
--- a/search/all_65.js
+++ b/search/all_65.js
@@ -3,11 +3,11 @@ var searchData=
['empty',['empty',['../structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1storage__profile.html#a43ac0d85d157bf049680fe649378fb8e',1,'boost::afio::v2_xxx::storage_profile::storage_profile']]],
['end',['end',['../structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1storage__profile.html#a74d51da11db5f95ae0914b2135b73608',1,'boost::afio::v2_xxx::storage_profile::storage_profile::end() noexcept'],['../structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1storage__profile.html#aa6dafcd221084212079d14d67522e26c',1,'boost::afio::v2_xxx::storage_profile::storage_profile::end() const noexcept']]],
['entities_5fguard',['entities_guard',['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex_1_1entities__guard.html',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::shared_fs_mutex']]],
- ['entities_5ftype',['entities_type',['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1atomic__append.html#a7f7a092579354a2189a1b541d1993557',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::atomic_append::entities_type()'],['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html#a02af43575220c42252610c818e109b72',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::shared_fs_mutex::entities_type()'],['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html#a20147a7ddd0a3553bdcefeda4863b846',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::byte_ranges::entities_type()'],['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1lock__files.html#a82ab65a36dc2dc72fc4b22db77e0e9f7',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::lock_files::entities_type()']]],
+ ['entities_5ftype',['entities_type',['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1atomic__append.html#a7f7a092579354a2189a1b541d1993557',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::atomic_append::entities_type()'],['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html#a02af43575220c42252610c818e109b72',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::shared_fs_mutex::entities_type()'],['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html#a20147a7ddd0a3553bdcefeda4863b846',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::byte_ranges::entities_type()'],['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1lock__files.html#a82ab65a36dc2dc72fc4b22db77e0e9f7',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::lock_files::entities_type()'],['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#a9cc8c9f8c25a6ec30464839ebdf845af',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::memory_map::entities_type()']]],
['entity_5ffrom_5fbuffer',['entity_from_buffer',['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html#a6d121be3d16ec5fcd15d61e59f8b66bd',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::shared_fs_mutex']]],
['entity_5ffrom_5fstring',['entity_from_string',['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html#adc91b1e075ed52fc277c59213cf7b357',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::shared_fs_mutex']]],
['entity_5ftype',['entity_type',['../structboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex_1_1entity__type.html',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::shared_fs_mutex']]],
- ['entity_5ftype',['entity_type',['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1atomic__append.html#a0077428ce79aeba4e529024de8fb2664',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::atomic_append::entity_type()'],['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html#a31c990c55f31e5b6d2cb45af1ae38b99',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::byte_ranges::entity_type()'],['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1lock__files.html#a0fb5503f53e6ac096efa6e25bad0ee33',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::lock_files::entity_type()'],['../structboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex_1_1entity__type.html#a133925631cc0c739bf1d5475a4276cff',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::shared_fs_mutex::entity_type::entity_type()'],['../structboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex_1_1entity__type.html#a227a55dd53f95688f8859839d84d40d5',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::shared_fs_mutex::entity_type::entity_type(value_type _value, bool _exclusive)']]],
+ ['entity_5ftype',['entity_type',['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1atomic__append.html#a0077428ce79aeba4e529024de8fb2664',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::atomic_append::entity_type()'],['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html#a31c990c55f31e5b6d2cb45af1ae38b99',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::byte_ranges::entity_type()'],['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1lock__files.html#a0fb5503f53e6ac096efa6e25bad0ee33',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::lock_files::entity_type()'],['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#ab248a548b71660335d14f88270741b1c',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::memory_map::entity_type()'],['../structboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex_1_1entity__type.html#a133925631cc0c739bf1d5475a4276cff',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::shared_fs_mutex::entity_type::entity_type()'],['../structboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex_1_1entity__type.html#a227a55dd53f95688f8859839d84d40d5',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::shared_fs_mutex::entity_type::entity_type(value_type _value, bool _exclusive)']]],
['enum_5ftype',['enum_type',['../structboost_1_1afio_1_1v2__xxx_1_1handle_1_1flag__base.html#a341bd60b4fd9aa6a6737f40e52d22458',1,'boost::afio::v2_xxx::handle::flag_base::enum_type()'],['../structboost_1_1afio_1_1v2__xxx_1_1section__handle_1_1flag__base.html#aadb6d09d6768eb7ef629f3c10aa24b21',1,'boost::afio::v2_xxx::section_handle::flag_base::enum_type()'],['../structboost_1_1afio_1_1v2__xxx_1_1native__handle__type_1_1disposition__base.html#a3f5231b1a86b8c661b39312f0f4a02f5',1,'boost::afio::v2_xxx::native_handle_type::disposition_base::enum_type()'],['../structboost_1_1afio_1_1v2__xxx_1_1bitfield.html#af56b8e2eb44e5d87d31c40ede740717f',1,'boost::afio::v2_xxx::bitfield::enum_type()']]],
['erased_5fio_5fstate_5fptr',['erased_io_state_ptr',['../classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#af15c6e8c4f0cef2a29657c26886c9216',1,'boost::afio::v2_xxx::async_file_handle']]],
['exclusive',['exclusive',['../structboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex_1_1entity__type.html#a4f5ca2fa3e36606b954a882137077051',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::shared_fs_mutex::entity_type']]],
diff --git a/search/all_66.js b/search/all_66.js
index fba14d1e..87913c83 100644
--- a/search/all_66.js
+++ b/search/all_66.js
@@ -28,11 +28,13 @@ var searchData=
['fill_5frandom_5fentities',['fill_random_entities',['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html#a50848058867ee3533b812378aff20b03',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::shared_fs_mutex']]],
['finalise',['finalise',['../classboost_1_1afio_1_1v2__xxx_1_1utils_1_1fast__hash.html#ad8ee83af7299e1d637573dbe980d0682',1,'boost::afio::v2_xxx::utils::fast_hash']]],
['find_5fbad_5fbit',['find_bad_bit',['../classboost_1_1afio_1_1v2__xxx_1_1utils_1_1secded__ecc.html#a096555892089139936db034997de8a86',1,'boost::afio::v2_xxx::utils::secded_ecc']]],
+ ['fixme_5ftemporary_5ffiles_5fdirectory',['fixme_temporary_files_directory',['../namespaceboost_1_1afio_1_1v2__xxx.html#ad7da7a1d3240d7574fc7c6ee5831b7ee',1,'boost::afio::v2_xxx']]],
['flag_5fbase',['flag_base',['../structboost_1_1afio_1_1v2__xxx_1_1handle_1_1flag__base.html',1,'boost::afio::v2_xxx::handle']]],
['flag_5fbase',['flag_base',['../structboost_1_1afio_1_1v2__xxx_1_1section__handle_1_1flag__base.html',1,'boost::afio::v2_xxx::section_handle']]],
['flags',['flags',['../classboost_1_1afio_1_1v2__xxx_1_1handle.html#add27fa17cd6356b49a26a8b6dafb6a6d',1,'boost::afio::v2_xxx::handle']]],
['from_5fhex_5fstring',['from_hex_string',['../namespaceboost_1_1afio_1_1v2__xxx_1_1utils.html#a4757e475a9bdd0df572f7bf1babc5aae',1,'boost::afio::v2_xxx::utils']]],
['fs_5fmutex_5fappend',['fs_mutex_append',['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1atomic__append.html#a4ad149b7199d2fb919b73ef17a1d61b8',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::atomic_append']]],
['fs_5fmutex_5fbyte_5franges',['fs_mutex_byte_ranges',['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html#ad5ec22e222542607ce161d666506fb2b',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::byte_ranges']]],
- ['fs_5fmutex_5flock_5ffiles',['fs_mutex_lock_files',['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1lock__files.html#a7ea9ac1e0ce49d90245e0e3c55b51168',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::lock_files']]]
+ ['fs_5fmutex_5flock_5ffiles',['fs_mutex_lock_files',['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1lock__files.html#a7ea9ac1e0ce49d90245e0e3c55b51168',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::lock_files']]],
+ ['fs_5fmutex_5fmap',['fs_mutex_map',['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#a9a91ca12fd4b0bede7c30c5adf1946b2',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::memory_map']]]
];
diff --git a/search/all_68.js b/search/all_68.js
index 0a937e59..8bb1ab26 100644
--- a/search/all_68.js
+++ b/search/all_68.js
@@ -1,7 +1,7 @@
var searchData=
[
['h',['h',['../structboost_1_1afio_1_1v2__xxx_1_1native__handle__type.html#a3bbd7284f58a31e68893eab7acede3db',1,'boost::afio::v2_xxx::native_handle_type']]],
- ['handle',['handle',['../classboost_1_1afio_1_1v2__xxx_1_1handle.html#aa845780704a8508c658c2b878f574ba7',1,'boost::afio::v2_xxx::handle::handle()'],['../classboost_1_1afio_1_1v2__xxx_1_1handle.html#afeb3459e9b79236dbd664a816cd94079',1,'boost::afio::v2_xxx::handle::handle(native_handle_type h, caching caching=caching::none, flag flags=flag::none)'],['../classboost_1_1afio_1_1v2__xxx_1_1handle.html#a0dbf908498e5cbf54ee0fff752c0c490',1,'boost::afio::v2_xxx::handle::handle(handle &amp;&amp;o) noexcept'],['../classboost_1_1afio_1_1v2__xxx_1_1handle.html#a2c20412387db2551d9b26824412d4986',1,'boost::afio::v2_xxx::handle::handle(const handle &amp;o, really_copy)'],['../classboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1extent__guard.html#a61781f315d92cdf5b077766df650a245',1,'boost::afio::v2_xxx::io_handle::extent_guard::handle()'],['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1atomic__append.html#a5f4ce4442c8011ec8ac2b7e53ff04e71',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::atomic_append::handle()'],['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html#ab569324e766b934eeb6017a9a86544e9',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::byte_ranges::handle()']]],
+ ['handle',['handle',['../classboost_1_1afio_1_1v2__xxx_1_1handle.html#aa845780704a8508c658c2b878f574ba7',1,'boost::afio::v2_xxx::handle::handle()'],['../classboost_1_1afio_1_1v2__xxx_1_1handle.html#afeb3459e9b79236dbd664a816cd94079',1,'boost::afio::v2_xxx::handle::handle(native_handle_type h, caching caching=caching::none, flag flags=flag::none)'],['../classboost_1_1afio_1_1v2__xxx_1_1handle.html#a0dbf908498e5cbf54ee0fff752c0c490',1,'boost::afio::v2_xxx::handle::handle(handle &amp;&amp;o) noexcept'],['../classboost_1_1afio_1_1v2__xxx_1_1handle.html#a2c20412387db2551d9b26824412d4986',1,'boost::afio::v2_xxx::handle::handle(const handle &amp;o, really_copy)'],['../classboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1extent__guard.html#a61781f315d92cdf5b077766df650a245',1,'boost::afio::v2_xxx::io_handle::extent_guard::handle()'],['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1atomic__append.html#a5f4ce4442c8011ec8ac2b7e53ff04e71',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::atomic_append::handle()'],['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html#ab569324e766b934eeb6017a9a86544e9',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::byte_ranges::handle()'],['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#acf3ab16b4bfebf3b6988146e4fbeb138',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::memory_map::handle()']]],
['handle',['handle',['../classboost_1_1afio_1_1v2__xxx_1_1handle.html',1,'boost::afio::v2_xxx']]],
['handle_2ehpp',['handle.hpp',['../handle_8hpp.html',1,'']]],
['handle_5ftype',['handle_type',['../structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1item__base.html#ac50981eecd188191dc343943031998d4',1,'boost::afio::v2_xxx::storage_profile::item_base::handle_type()'],['../structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1storage__profile.html#a902cdf343a238d8bc4773968ae6f294a',1,'boost::afio::v2_xxx::storage_profile::storage_profile::handle_type()']]],
diff --git a/search/all_6d.js b/search/all_6d.js
index 8f9d8fd6..f742ea6c 100644
--- a/search/all_6d.js
+++ b/search/all_6d.js
@@ -1,11 +1,14 @@
var searchData=
[
['map',['map',['../classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a6f0fc242efb1e28078aa13812335df3b',1,'boost::afio::v2_xxx::map_handle']]],
- ['map_5fhandle',['map_handle',['../classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a2bfe92df14ea41912f362558adcf066c',1,'boost::afio::v2_xxx::map_handle::map_handle()'],['../classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#ad7e261e816a1c394d556bfb62b618a02',1,'boost::afio::v2_xxx::map_handle::map_handle(io_handle h, section_handle *section)'],['../classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a856c6f55f486070b67e210065000454c',1,'boost::afio::v2_xxx::map_handle::map_handle(map_handle &amp;&amp;o) noexcept']]],
['map_5fhandle',['map_handle',['../classboost_1_1afio_1_1v2__xxx_1_1map__handle.html',1,'boost::afio::v2_xxx']]],
+ ['map_5fhandle',['map_handle',['../classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a2bfe92df14ea41912f362558adcf066c',1,'boost::afio::v2_xxx::map_handle::map_handle()'],['../classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#ad7e261e816a1c394d556bfb62b618a02',1,'boost::afio::v2_xxx::map_handle::map_handle(io_handle h, section_handle *section)'],['../classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a856c6f55f486070b67e210065000454c',1,'boost::afio::v2_xxx::map_handle::map_handle(map_handle &amp;&amp;o) noexcept']]],
['map_5fhandle_2ehpp',['map_handle.hpp',['../map__handle_8hpp.html',1,'']]],
['map_5fto_5fstorage_5ftype',['map_to_storage_type',['../namespaceboost_1_1afio_1_1v2__xxx_1_1storage__profile.html#a2ea36c51799cf6a8216c9d24a775d607',1,'boost::afio::v2_xxx::storage_profile']]],
['max_5fsize',['max_size',['../structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1storage__profile.html#a7cfd0a293329c63b919c74c63ca7cb6e',1,'boost::afio::v2_xxx::storage_profile::storage_profile']]],
+ ['memory_5fmap',['memory_map',['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#a8803169706293901b29fbae2eaad1ee6',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::memory_map']]],
+ ['memory_5fmap',['memory_map',['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex']]],
+ ['memory_5fmap_2ehpp',['memory_map.hpp',['../memory__map_8hpp.html',1,'']]],
['mode',['mode',['../classboost_1_1afio_1_1v2__xxx_1_1handle.html#acd7f0c039e94c7ad40937fe32a2cabad',1,'boost::afio::v2_xxx::handle']]],
['multiplexer',['multiplexer',['../structboost_1_1afio_1_1v2__xxx_1_1native__handle__type_1_1disposition__base.html#a3f5231b1a86b8c661b39312f0f4a02f5a1f40773df790828587987eb23baaa72d',1,'boost::afio::v2_xxx::native_handle_type::disposition_base']]]
];
diff --git a/search/all_6f.js b/search/all_6f.js
index 18be81d6..a90d01c1 100644
--- a/search/all_6f.js
+++ b/search/all_6f.js
@@ -10,7 +10,7 @@ var searchData=
['operator_26_26',['operator&amp;&amp;',['../structboost_1_1afio_1_1v2__xxx_1_1bitfield.html#a9db9f796d9f81a445bb0bf2cd79773d5',1,'boost::afio::v2_xxx::bitfield']]],
['operator_26_3d',['operator&amp;=',['../structboost_1_1afio_1_1v2__xxx_1_1bitfield.html#a0a6a0bb4b8148c726a07546af49dcdaf',1,'boost::afio::v2_xxx::bitfield::operator&amp;=(bitfield o) noexcept'],['../structboost_1_1afio_1_1v2__xxx_1_1bitfield.html#a6a8e7f49e62660edff801f7344199fc0',1,'boost::afio::v2_xxx::bitfield::operator&amp;=(enum_type o) noexcept']]],
['operator_28_29',['operator()',['../structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1item.html#a6c85d3008ac29a3e42d5f0354b12eb29',1,'boost::afio::v2_xxx::storage_profile::item::operator()()'],['../structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1item__erased.html#ab8d8c8607a64200b3d216887bf6303a3',1,'boost::afio::v2_xxx::storage_profile::item_erased::operator()()'],['../classboost_1_1afio_1_1v2__xxx_1_1utils_1_1secded__ecc.html#a1c12c9e00d20a81a52982f7d7f28a42e',1,'boost::afio::v2_xxx::utils::secded_ecc::operator()(result_type ecc, const char *buffer) const noexcept'],['../classboost_1_1afio_1_1v2__xxx_1_1utils_1_1secded__ecc.html#abd3713084f15cb7c27ee83ad4b5300cd',1,'boost::afio::v2_xxx::utils::secded_ecc::operator()(result_type ecc, const char *buffer, size_t length) const noexcept']]],
- ['operator_3d',['operator=',['../classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#ad86e1421f2b1cb12c635a35ecb6ee417',1,'boost::afio::v2_xxx::async_file_handle::operator=()'],['../classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#ae2d1e75105df6d59aa5637a1a68cbf06',1,'boost::afio::v2_xxx::file_handle::operator=()'],['../classboost_1_1afio_1_1v2__xxx_1_1handle.html#aae278681887f4cb68b0b57c5ef6c8d4e',1,'boost::afio::v2_xxx::handle::operator=(handle &amp;&amp;o)=delete'],['../classboost_1_1afio_1_1v2__xxx_1_1handle.html#acda0caaacf4404bffc57508930ba52be',1,'boost::afio::v2_xxx::handle::operator=(const handle &amp;o)=delete'],['../classboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1extent__guard.html#af8937c84d38c085192e9256211694dc0',1,'boost::afio::v2_xxx::io_handle::extent_guard::operator=()'],['../classboost_1_1afio_1_1v2__xxx_1_1section__handle.html#a4b8a67f1d2da5bb2123da30835b0f894',1,'boost::afio::v2_xxx::section_handle::operator=()'],['../classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#ae07b3e5449e9116d733ef449b6ac0713',1,'boost::afio::v2_xxx::map_handle::operator=()'],['../structboost_1_1afio_1_1v2__xxx_1_1native__handle__type.html#abd0ab4087b10e21c534e33ea70c3006b',1,'boost::afio::v2_xxx::native_handle_type::operator=(const native_handle_type &amp;)=default'],['../structboost_1_1afio_1_1v2__xxx_1_1native__handle__type.html#a0321d20d2c13b33eca28882dc408fbad',1,'boost::afio::v2_xxx::native_handle_type::operator=(native_handle_type &amp;&amp;o) noexcept'],['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1atomic__append.html#a1dbf4e731e06b9ee79a32d31f713de09',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::atomic_append::operator=()'],['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html#af40acef1ee8401d03f0356b6782257b9',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::byte_ranges::operator=()'],['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1lock__files.html#a49aebd3a989559ce96f4ffa33bedd6fb',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::lock_files::operator=()']]],
+ ['operator_3d',['operator=',['../classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#ad86e1421f2b1cb12c635a35ecb6ee417',1,'boost::afio::v2_xxx::async_file_handle::operator=()'],['../classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#ae2d1e75105df6d59aa5637a1a68cbf06',1,'boost::afio::v2_xxx::file_handle::operator=()'],['../classboost_1_1afio_1_1v2__xxx_1_1handle.html#aae278681887f4cb68b0b57c5ef6c8d4e',1,'boost::afio::v2_xxx::handle::operator=(handle &amp;&amp;o)=delete'],['../classboost_1_1afio_1_1v2__xxx_1_1handle.html#acda0caaacf4404bffc57508930ba52be',1,'boost::afio::v2_xxx::handle::operator=(const handle &amp;o)=delete'],['../classboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1extent__guard.html#af8937c84d38c085192e9256211694dc0',1,'boost::afio::v2_xxx::io_handle::extent_guard::operator=()'],['../classboost_1_1afio_1_1v2__xxx_1_1section__handle.html#a4b8a67f1d2da5bb2123da30835b0f894',1,'boost::afio::v2_xxx::section_handle::operator=()'],['../classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#ae07b3e5449e9116d733ef449b6ac0713',1,'boost::afio::v2_xxx::map_handle::operator=()'],['../structboost_1_1afio_1_1v2__xxx_1_1native__handle__type.html#abd0ab4087b10e21c534e33ea70c3006b',1,'boost::afio::v2_xxx::native_handle_type::operator=(const native_handle_type &amp;)=default'],['../structboost_1_1afio_1_1v2__xxx_1_1native__handle__type.html#a0321d20d2c13b33eca28882dc408fbad',1,'boost::afio::v2_xxx::native_handle_type::operator=(native_handle_type &amp;&amp;o) noexcept'],['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1atomic__append.html#a1dbf4e731e06b9ee79a32d31f713de09',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::atomic_append::operator=()'],['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html#af40acef1ee8401d03f0356b6782257b9',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::byte_ranges::operator=()'],['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1lock__files.html#a49aebd3a989559ce96f4ffa33bedd6fb',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::lock_files::operator=()'],['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#a0245abc2bf944b196efeb4f8bdb1dd24',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::memory_map::operator=()']]],
['operator_3d_3d',['operator==',['../structboost_1_1afio_1_1v2__xxx_1_1bitfield.html#a52b248bae4c8986b03e40fecf693d8c1',1,'boost::afio::v2_xxx::bitfield::operator==(bitfield o) const noexcept'],['../structboost_1_1afio_1_1v2__xxx_1_1bitfield.html#a5db63e2f79f2c90f3113c83c84fd60bb',1,'boost::afio::v2_xxx::bitfield::operator==(enum_type o) const noexcept']]],
['operator_5e',['operator^',['../structboost_1_1afio_1_1v2__xxx_1_1bitfield.html#ac2bbff8d0d820eda6a0a04183a7f5f4f',1,'boost::afio::v2_xxx::bitfield::operator^(bitfield o) const noexcept'],['../structboost_1_1afio_1_1v2__xxx_1_1bitfield.html#a03a1634b5fbb39f48f6ab519713f45b7',1,'boost::afio::v2_xxx::bitfield::operator^(enum_type o) const noexcept']]],
['operator_5e_3d',['operator^=',['../structboost_1_1afio_1_1v2__xxx_1_1bitfield.html#ab5a10d2848c2f70f2c73d761521c52da',1,'boost::afio::v2_xxx::bitfield::operator^=(bitfield o) noexcept'],['../structboost_1_1afio_1_1v2__xxx_1_1bitfield.html#a0d4fd7ce20353cf0348897a51fe17063',1,'boost::afio::v2_xxx::bitfield::operator^=(enum_type o) noexcept']]],
diff --git a/search/all_72.js b/search/all_72.js
index 43ddba6b..0846fcde 100644
--- a/search/all_72.js
+++ b/search/all_72.js
@@ -1,6 +1,7 @@
var searchData=
[
['random_5fentity',['random_entity',['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html#a493872c8b5dbfa83fdf82242b928e112',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::shared_fs_mutex']]],
+ ['random_5ffile',['random_file',['../classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a603b0827a9ae139b8f5806b1297fa5f0',1,'boost::afio::v2_xxx::file_handle']]],
['random_5ffill',['random_fill',['../namespaceboost_1_1afio_1_1v2__xxx_1_1utils.html#ac7b89428cdd460548bd9a645a6565df4',1,'boost::afio::v2_xxx::utils']]],
['random_5fstring',['random_string',['../namespaceboost_1_1afio_1_1v2__xxx_1_1utils.html#a051e8deb72941b3460811a1cf5f29915',1,'boost::afio::v2_xxx::utils']]],
['rdonly',['rdonly',['../structboost_1_1afio_1_1v2__xxx_1_1statfs__t_1_1f__flags__t.html#a888a1dcf7397f05e735c80f2e33bcf89',1,'boost::afio::v2_xxx::statfs_t::f_flags_t']]],
diff --git a/search/all_74.js b/search/all_74.js
index 9dfeb817..04655544 100644
--- a/search/all_74.js
+++ b/search/all_74.js
@@ -1,5 +1,7 @@
var searchData=
[
+ ['temp_5ffile',['temp_file',['../classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#aa1effcf350c823b713f7767e7530c545',1,'boost::afio::v2_xxx::file_handle']]],
+ ['temp_5finode',['temp_inode',['../classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a9be07898862c1c14cf4bd984a57c5626',1,'boost::afio::v2_xxx::file_handle']]],
['temporary',['temporary',['../classboost_1_1afio_1_1v2__xxx_1_1handle.html#a81c7de194feaa88684ca9851d0d527caad5197d93c063a2b1e22d1630a39b7aef',1,'boost::afio::v2_xxx::handle']]],
['to_5fhex_5fstring',['to_hex_string',['../namespaceboost_1_1afio_1_1v2__xxx_1_1utils.html#aaa31dc5969be9b20e5f992c77f2998ec',1,'boost::afio::v2_xxx::utils::to_hex_string(char *out, size_t outlen, const char *_in, size_t inlen)'],['../namespaceboost_1_1afio_1_1v2__xxx_1_1utils.html#a46906d763fbc209f3ede923e3cdb1d00',1,'boost::afio::v2_xxx::utils::to_hex_string(span&lt; char &gt; out, const span&lt; char &gt; in)'],['../namespaceboost_1_1afio_1_1v2__xxx_1_1utils.html#a775c89fe351b10ff3e4a088acb7d1865',1,'boost::afio::v2_xxx::utils::to_hex_string(span&lt; char &gt; in)']]],
['to_5ftime_5fpoint',['to_time_point',['../structboost_1_1afio_1_1v2__xxx_1_1deadline.html#a9fbf04ae37e6a7dec7f505303ec149a9',1,'boost::afio::v2_xxx::deadline']]],
diff --git a/search/all_75.js b/search/all_75.js
index 2d1884c2..eaaf3647 100644
--- a/search/all_75.js
+++ b/search/all_75.js
@@ -3,7 +3,7 @@ var searchData=
['uint128',['uint128',['../unionuint128.html',1,'uint128'],['../namespaceboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex.html#aadc75b962fac6b2c028d7c7fce7cd1ac',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::uint128()']]],
['uint64',['uint64',['../namespaceboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex.html#afd820c56571aaad5c76b5104cf9b370c',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex']]],
['underlying_5ftype',['underlying_type',['../structboost_1_1afio_1_1v2__xxx_1_1bitfield.html#a4eba4c606fbe96424ec8860e45951b1d',1,'boost::afio::v2_xxx::bitfield']]],
- ['unlock',['unlock',['../classboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1extent__guard.html#a40229ea71146d437079e68f2aca65d24',1,'boost::afio::v2_xxx::io_handle::extent_guard::unlock()'],['../classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a0d043e29e065db9618f6df2e43cc1d42',1,'boost::afio::v2_xxx::io_handle::unlock()'],['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1atomic__append.html#aca5a30951f774a86874c53f090e1a6ab',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::atomic_append::unlock()'],['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex_1_1entities__guard.html#a3633ff7db6fbab05a2d46da8302508ff',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::shared_fs_mutex::entities_guard::unlock()'],['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html#ab598ba46a5b99ba81bc41be40d79b8e5',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::shared_fs_mutex::unlock()'],['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html#aeff040753a6344db13a37a40a0c4c3f1',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::byte_ranges::unlock()'],['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1lock__files.html#ad28bd7249e7280d77be3f687b887c741',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::lock_files::unlock()']]],
+ ['unlock',['unlock',['../classboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1extent__guard.html#a40229ea71146d437079e68f2aca65d24',1,'boost::afio::v2_xxx::io_handle::extent_guard::unlock()'],['../classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a0d043e29e065db9618f6df2e43cc1d42',1,'boost::afio::v2_xxx::io_handle::unlock()'],['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1atomic__append.html#aca5a30951f774a86874c53f090e1a6ab',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::atomic_append::unlock()'],['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex_1_1entities__guard.html#a3633ff7db6fbab05a2d46da8302508ff',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::shared_fs_mutex::entities_guard::unlock()'],['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html#ab598ba46a5b99ba81bc41be40d79b8e5',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::shared_fs_mutex::unlock()'],['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html#aeff040753a6344db13a37a40a0c4c3f1',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::byte_ranges::unlock()'],['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1lock__files.html#ad28bd7249e7280d77be3f687b887c741',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::lock_files::unlock()'],['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#a80efd5836f20ac304bdcf0033c95de8b',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::memory_map::unlock()']]],
['using_5fkqueues',['using_kqueues',['../classboost_1_1afio_1_1v2__xxx_1_1io__service.html#a7d87d14cc56ca5b16429ecc546aa49ff',1,'boost::afio::v2_xxx::io_service']]],
['utc',['utc',['../structboost_1_1afio_1_1v2__xxx_1_1deadline.html#ae6f0f9241a42307c10af5dba5d099ced',1,'boost::afio::v2_xxx::deadline']]],
['utils_2ehpp',['utils.hpp',['../utils_8hpp.html',1,'']]]
diff --git a/search/classes_5f.html b/search/classes_5f.html
new file mode 100644
index 00000000..75fc6db4
--- /dev/null
+++ b/search/classes_5f.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="classes_5f.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/search/classes_5f.js b/search/classes_5f.js
new file mode 100644
index 00000000..83b8ee52
--- /dev/null
+++ b/search/classes_5f.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['_5fentity_5fidx',['_entity_idx',['../structboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map_1_1__entity__idx.html',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::memory_map']]]
+];
diff --git a/search/classes_6d.js b/search/classes_6d.js
index 5b9820e0..6931934e 100644
--- a/search/classes_6d.js
+++ b/search/classes_6d.js
@@ -1,4 +1,5 @@
var searchData=
[
- ['map_5fhandle',['map_handle',['../classboost_1_1afio_1_1v2__xxx_1_1map__handle.html',1,'boost::afio::v2_xxx']]]
+ ['map_5fhandle',['map_handle',['../classboost_1_1afio_1_1v2__xxx_1_1map__handle.html',1,'boost::afio::v2_xxx']]],
+ ['memory_5fmap',['memory_map',['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex']]]
];
diff --git a/search/files_6d.js b/search/files_6d.js
index 3a0f695e..b9d852af 100644
--- a/search/files_6d.js
+++ b/search/files_6d.js
@@ -1,4 +1,5 @@
var searchData=
[
- ['map_5fhandle_2ehpp',['map_handle.hpp',['../map__handle_8hpp.html',1,'']]]
+ ['map_5fhandle_2ehpp',['map_handle.hpp',['../map__handle_8hpp.html',1,'']]],
+ ['memory_5fmap_2ehpp',['memory_map.hpp',['../memory__map_8hpp.html',1,'']]]
];
diff --git a/search/functions_66.js b/search/functions_66.js
index d6f4a926..6133979a 100644
--- a/search/functions_66.js
+++ b/search/functions_66.js
@@ -8,9 +8,11 @@ var searchData=
['fill_5frandom_5fentities',['fill_random_entities',['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html#a50848058867ee3533b812378aff20b03',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::shared_fs_mutex']]],
['finalise',['finalise',['../classboost_1_1afio_1_1v2__xxx_1_1utils_1_1fast__hash.html#ad8ee83af7299e1d637573dbe980d0682',1,'boost::afio::v2_xxx::utils::fast_hash']]],
['find_5fbad_5fbit',['find_bad_bit',['../classboost_1_1afio_1_1v2__xxx_1_1utils_1_1secded__ecc.html#a096555892089139936db034997de8a86',1,'boost::afio::v2_xxx::utils::secded_ecc']]],
+ ['fixme_5ftemporary_5ffiles_5fdirectory',['fixme_temporary_files_directory',['../namespaceboost_1_1afio_1_1v2__xxx.html#ad7da7a1d3240d7574fc7c6ee5831b7ee',1,'boost::afio::v2_xxx']]],
['flags',['flags',['../classboost_1_1afio_1_1v2__xxx_1_1handle.html#add27fa17cd6356b49a26a8b6dafb6a6d',1,'boost::afio::v2_xxx::handle']]],
['from_5fhex_5fstring',['from_hex_string',['../namespaceboost_1_1afio_1_1v2__xxx_1_1utils.html#a4757e475a9bdd0df572f7bf1babc5aae',1,'boost::afio::v2_xxx::utils']]],
['fs_5fmutex_5fappend',['fs_mutex_append',['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1atomic__append.html#a4ad149b7199d2fb919b73ef17a1d61b8',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::atomic_append']]],
['fs_5fmutex_5fbyte_5franges',['fs_mutex_byte_ranges',['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html#ad5ec22e222542607ce161d666506fb2b',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::byte_ranges']]],
- ['fs_5fmutex_5flock_5ffiles',['fs_mutex_lock_files',['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1lock__files.html#a7ea9ac1e0ce49d90245e0e3c55b51168',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::lock_files']]]
+ ['fs_5fmutex_5flock_5ffiles',['fs_mutex_lock_files',['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1lock__files.html#a7ea9ac1e0ce49d90245e0e3c55b51168',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::lock_files']]],
+ ['fs_5fmutex_5fmap',['fs_mutex_map',['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#a9a91ca12fd4b0bede7c30c5adf1946b2',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::memory_map']]]
];
diff --git a/search/functions_68.js b/search/functions_68.js
index 20b6dac0..7883246d 100644
--- a/search/functions_68.js
+++ b/search/functions_68.js
@@ -1,5 +1,5 @@
var searchData=
[
- ['handle',['handle',['../classboost_1_1afio_1_1v2__xxx_1_1handle.html#aa845780704a8508c658c2b878f574ba7',1,'boost::afio::v2_xxx::handle::handle()'],['../classboost_1_1afio_1_1v2__xxx_1_1handle.html#afeb3459e9b79236dbd664a816cd94079',1,'boost::afio::v2_xxx::handle::handle(native_handle_type h, caching caching=caching::none, flag flags=flag::none)'],['../classboost_1_1afio_1_1v2__xxx_1_1handle.html#a0dbf908498e5cbf54ee0fff752c0c490',1,'boost::afio::v2_xxx::handle::handle(handle &amp;&amp;o) noexcept'],['../classboost_1_1afio_1_1v2__xxx_1_1handle.html#a2c20412387db2551d9b26824412d4986',1,'boost::afio::v2_xxx::handle::handle(const handle &amp;o, really_copy)'],['../classboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1extent__guard.html#a61781f315d92cdf5b077766df650a245',1,'boost::afio::v2_xxx::io_handle::extent_guard::handle()'],['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1atomic__append.html#a5f4ce4442c8011ec8ac2b7e53ff04e71',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::atomic_append::handle()'],['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html#ab569324e766b934eeb6017a9a86544e9',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::byte_ranges::handle()']]],
+ ['handle',['handle',['../classboost_1_1afio_1_1v2__xxx_1_1handle.html#aa845780704a8508c658c2b878f574ba7',1,'boost::afio::v2_xxx::handle::handle()'],['../classboost_1_1afio_1_1v2__xxx_1_1handle.html#afeb3459e9b79236dbd664a816cd94079',1,'boost::afio::v2_xxx::handle::handle(native_handle_type h, caching caching=caching::none, flag flags=flag::none)'],['../classboost_1_1afio_1_1v2__xxx_1_1handle.html#a0dbf908498e5cbf54ee0fff752c0c490',1,'boost::afio::v2_xxx::handle::handle(handle &amp;&amp;o) noexcept'],['../classboost_1_1afio_1_1v2__xxx_1_1handle.html#a2c20412387db2551d9b26824412d4986',1,'boost::afio::v2_xxx::handle::handle(const handle &amp;o, really_copy)'],['../classboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1extent__guard.html#a61781f315d92cdf5b077766df650a245',1,'boost::afio::v2_xxx::io_handle::extent_guard::handle()'],['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1atomic__append.html#a5f4ce4442c8011ec8ac2b7e53ff04e71',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::atomic_append::handle()'],['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html#ab569324e766b934eeb6017a9a86544e9',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::byte_ranges::handle()'],['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#acf3ab16b4bfebf3b6988146e4fbeb138',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::memory_map::handle()']]],
['hash',['hash',['../classboost_1_1afio_1_1v2__xxx_1_1utils_1_1fast__hash.html#a5563217f87a97056bd5bc662a8c4c78e',1,'boost::afio::v2_xxx::utils::fast_hash::hash(const char *data, size_t bytes, const uint128 &amp;seed=uint128(nullptr)) noexcept'],['../classboost_1_1afio_1_1v2__xxx_1_1utils_1_1fast__hash.html#add85551b9f29910b17f7b33b7c8d3626',1,'boost::afio::v2_xxx::utils::fast_hash::hash(const span&lt; T &gt; &amp;str) noexcept']]]
];
diff --git a/search/functions_6d.js b/search/functions_6d.js
index 1a492869..3c79bd5d 100644
--- a/search/functions_6d.js
+++ b/search/functions_6d.js
@@ -3,5 +3,6 @@ var searchData=
['map',['map',['../classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a6f0fc242efb1e28078aa13812335df3b',1,'boost::afio::v2_xxx::map_handle']]],
['map_5fhandle',['map_handle',['../classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a2bfe92df14ea41912f362558adcf066c',1,'boost::afio::v2_xxx::map_handle::map_handle()'],['../classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#ad7e261e816a1c394d556bfb62b618a02',1,'boost::afio::v2_xxx::map_handle::map_handle(io_handle h, section_handle *section)'],['../classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a856c6f55f486070b67e210065000454c',1,'boost::afio::v2_xxx::map_handle::map_handle(map_handle &amp;&amp;o) noexcept']]],
['map_5fto_5fstorage_5ftype',['map_to_storage_type',['../namespaceboost_1_1afio_1_1v2__xxx_1_1storage__profile.html#a2ea36c51799cf6a8216c9d24a775d607',1,'boost::afio::v2_xxx::storage_profile']]],
- ['max_5fsize',['max_size',['../structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1storage__profile.html#a7cfd0a293329c63b919c74c63ca7cb6e',1,'boost::afio::v2_xxx::storage_profile::storage_profile']]]
+ ['max_5fsize',['max_size',['../structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1storage__profile.html#a7cfd0a293329c63b919c74c63ca7cb6e',1,'boost::afio::v2_xxx::storage_profile::storage_profile']]],
+ ['memory_5fmap',['memory_map',['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#a8803169706293901b29fbae2eaad1ee6',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::memory_map']]]
];
diff --git a/search/functions_6f.js b/search/functions_6f.js
index 0396edf7..912acdef 100644
--- a/search/functions_6f.js
+++ b/search/functions_6f.js
@@ -8,7 +8,7 @@ var searchData=
['operator_26_26',['operator&amp;&amp;',['../structboost_1_1afio_1_1v2__xxx_1_1bitfield.html#a9db9f796d9f81a445bb0bf2cd79773d5',1,'boost::afio::v2_xxx::bitfield']]],
['operator_26_3d',['operator&amp;=',['../structboost_1_1afio_1_1v2__xxx_1_1bitfield.html#a0a6a0bb4b8148c726a07546af49dcdaf',1,'boost::afio::v2_xxx::bitfield::operator&amp;=(bitfield o) noexcept'],['../structboost_1_1afio_1_1v2__xxx_1_1bitfield.html#a6a8e7f49e62660edff801f7344199fc0',1,'boost::afio::v2_xxx::bitfield::operator&amp;=(enum_type o) noexcept']]],
['operator_28_29',['operator()',['../structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1item.html#a6c85d3008ac29a3e42d5f0354b12eb29',1,'boost::afio::v2_xxx::storage_profile::item::operator()()'],['../structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1item__erased.html#ab8d8c8607a64200b3d216887bf6303a3',1,'boost::afio::v2_xxx::storage_profile::item_erased::operator()()'],['../classboost_1_1afio_1_1v2__xxx_1_1utils_1_1secded__ecc.html#a1c12c9e00d20a81a52982f7d7f28a42e',1,'boost::afio::v2_xxx::utils::secded_ecc::operator()(result_type ecc, const char *buffer) const noexcept'],['../classboost_1_1afio_1_1v2__xxx_1_1utils_1_1secded__ecc.html#abd3713084f15cb7c27ee83ad4b5300cd',1,'boost::afio::v2_xxx::utils::secded_ecc::operator()(result_type ecc, const char *buffer, size_t length) const noexcept']]],
- ['operator_3d',['operator=',['../classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#ad86e1421f2b1cb12c635a35ecb6ee417',1,'boost::afio::v2_xxx::async_file_handle::operator=()'],['../classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#ae2d1e75105df6d59aa5637a1a68cbf06',1,'boost::afio::v2_xxx::file_handle::operator=()'],['../classboost_1_1afio_1_1v2__xxx_1_1handle.html#aae278681887f4cb68b0b57c5ef6c8d4e',1,'boost::afio::v2_xxx::handle::operator=(handle &amp;&amp;o)=delete'],['../classboost_1_1afio_1_1v2__xxx_1_1handle.html#acda0caaacf4404bffc57508930ba52be',1,'boost::afio::v2_xxx::handle::operator=(const handle &amp;o)=delete'],['../classboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1extent__guard.html#af8937c84d38c085192e9256211694dc0',1,'boost::afio::v2_xxx::io_handle::extent_guard::operator=()'],['../classboost_1_1afio_1_1v2__xxx_1_1section__handle.html#a4b8a67f1d2da5bb2123da30835b0f894',1,'boost::afio::v2_xxx::section_handle::operator=()'],['../classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#ae07b3e5449e9116d733ef449b6ac0713',1,'boost::afio::v2_xxx::map_handle::operator=()'],['../structboost_1_1afio_1_1v2__xxx_1_1native__handle__type.html#abd0ab4087b10e21c534e33ea70c3006b',1,'boost::afio::v2_xxx::native_handle_type::operator=(const native_handle_type &amp;)=default'],['../structboost_1_1afio_1_1v2__xxx_1_1native__handle__type.html#a0321d20d2c13b33eca28882dc408fbad',1,'boost::afio::v2_xxx::native_handle_type::operator=(native_handle_type &amp;&amp;o) noexcept'],['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1atomic__append.html#a1dbf4e731e06b9ee79a32d31f713de09',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::atomic_append::operator=()'],['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html#af40acef1ee8401d03f0356b6782257b9',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::byte_ranges::operator=()'],['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1lock__files.html#a49aebd3a989559ce96f4ffa33bedd6fb',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::lock_files::operator=()']]],
+ ['operator_3d',['operator=',['../classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#ad86e1421f2b1cb12c635a35ecb6ee417',1,'boost::afio::v2_xxx::async_file_handle::operator=()'],['../classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#ae2d1e75105df6d59aa5637a1a68cbf06',1,'boost::afio::v2_xxx::file_handle::operator=()'],['../classboost_1_1afio_1_1v2__xxx_1_1handle.html#aae278681887f4cb68b0b57c5ef6c8d4e',1,'boost::afio::v2_xxx::handle::operator=(handle &amp;&amp;o)=delete'],['../classboost_1_1afio_1_1v2__xxx_1_1handle.html#acda0caaacf4404bffc57508930ba52be',1,'boost::afio::v2_xxx::handle::operator=(const handle &amp;o)=delete'],['../classboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1extent__guard.html#af8937c84d38c085192e9256211694dc0',1,'boost::afio::v2_xxx::io_handle::extent_guard::operator=()'],['../classboost_1_1afio_1_1v2__xxx_1_1section__handle.html#a4b8a67f1d2da5bb2123da30835b0f894',1,'boost::afio::v2_xxx::section_handle::operator=()'],['../classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#ae07b3e5449e9116d733ef449b6ac0713',1,'boost::afio::v2_xxx::map_handle::operator=()'],['../structboost_1_1afio_1_1v2__xxx_1_1native__handle__type.html#abd0ab4087b10e21c534e33ea70c3006b',1,'boost::afio::v2_xxx::native_handle_type::operator=(const native_handle_type &amp;)=default'],['../structboost_1_1afio_1_1v2__xxx_1_1native__handle__type.html#a0321d20d2c13b33eca28882dc408fbad',1,'boost::afio::v2_xxx::native_handle_type::operator=(native_handle_type &amp;&amp;o) noexcept'],['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1atomic__append.html#a1dbf4e731e06b9ee79a32d31f713de09',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::atomic_append::operator=()'],['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html#af40acef1ee8401d03f0356b6782257b9',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::byte_ranges::operator=()'],['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1lock__files.html#a49aebd3a989559ce96f4ffa33bedd6fb',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::lock_files::operator=()'],['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#a0245abc2bf944b196efeb4f8bdb1dd24',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::memory_map::operator=()']]],
['operator_3d_3d',['operator==',['../structboost_1_1afio_1_1v2__xxx_1_1bitfield.html#a52b248bae4c8986b03e40fecf693d8c1',1,'boost::afio::v2_xxx::bitfield::operator==(bitfield o) const noexcept'],['../structboost_1_1afio_1_1v2__xxx_1_1bitfield.html#a5db63e2f79f2c90f3113c83c84fd60bb',1,'boost::afio::v2_xxx::bitfield::operator==(enum_type o) const noexcept']]],
['operator_5e',['operator^',['../structboost_1_1afio_1_1v2__xxx_1_1bitfield.html#ac2bbff8d0d820eda6a0a04183a7f5f4f',1,'boost::afio::v2_xxx::bitfield::operator^(bitfield o) const noexcept'],['../structboost_1_1afio_1_1v2__xxx_1_1bitfield.html#a03a1634b5fbb39f48f6ab519713f45b7',1,'boost::afio::v2_xxx::bitfield::operator^(enum_type o) const noexcept']]],
['operator_5e_3d',['operator^=',['../structboost_1_1afio_1_1v2__xxx_1_1bitfield.html#ab5a10d2848c2f70f2c73d761521c52da',1,'boost::afio::v2_xxx::bitfield::operator^=(bitfield o) noexcept'],['../structboost_1_1afio_1_1v2__xxx_1_1bitfield.html#a0d4fd7ce20353cf0348897a51fe17063',1,'boost::afio::v2_xxx::bitfield::operator^=(enum_type o) noexcept']]],
diff --git a/search/functions_72.js b/search/functions_72.js
index 4fb90a15..6ef81b05 100644
--- a/search/functions_72.js
+++ b/search/functions_72.js
@@ -1,6 +1,7 @@
var searchData=
[
['random_5fentity',['random_entity',['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html#a493872c8b5dbfa83fdf82242b928e112',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::shared_fs_mutex']]],
+ ['random_5ffile',['random_file',['../classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a603b0827a9ae139b8f5806b1297fa5f0',1,'boost::afio::v2_xxx::file_handle']]],
['random_5ffill',['random_fill',['../namespaceboost_1_1afio_1_1v2__xxx_1_1utils.html#ac7b89428cdd460548bd9a645a6565df4',1,'boost::afio::v2_xxx::utils']]],
['random_5fstring',['random_string',['../namespaceboost_1_1afio_1_1v2__xxx_1_1utils.html#a051e8deb72941b3460811a1cf5f29915',1,'boost::afio::v2_xxx::utils']]],
['read',['read',['../classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#ab371d8427aeb4bd0ca5f8a39a98ea5a2',1,'boost::afio::v2_xxx::io_handle::read(io_request&lt; buffers_type &gt; reqs, deadline d=deadline()) noexcept'],['../classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a4480a48b8e54cde62fd2cee4ceed3725',1,'boost::afio::v2_xxx::io_handle::read(extent_type offset, char *data, size_type bytes, deadline d=deadline()) noexcept'],['../classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a5b832e5045ae54db8561133763837a47',1,'boost::afio::v2_xxx::map_handle::read()'],['../structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1storage__profile.html#afc56522cf4f6d90bd825f7f50bff7432',1,'boost::afio::v2_xxx::storage_profile::storage_profile::read()']]],
diff --git a/search/functions_74.js b/search/functions_74.js
index a35b84f8..96b28e53 100644
--- a/search/functions_74.js
+++ b/search/functions_74.js
@@ -1,5 +1,7 @@
var searchData=
[
+ ['temp_5ffile',['temp_file',['../classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#aa1effcf350c823b713f7767e7530c545',1,'boost::afio::v2_xxx::file_handle']]],
+ ['temp_5finode',['temp_inode',['../classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a9be07898862c1c14cf4bd984a57c5626',1,'boost::afio::v2_xxx::file_handle']]],
['to_5fhex_5fstring',['to_hex_string',['../namespaceboost_1_1afio_1_1v2__xxx_1_1utils.html#aaa31dc5969be9b20e5f992c77f2998ec',1,'boost::afio::v2_xxx::utils::to_hex_string(char *out, size_t outlen, const char *_in, size_t inlen)'],['../namespaceboost_1_1afio_1_1v2__xxx_1_1utils.html#a46906d763fbc209f3ede923e3cdb1d00',1,'boost::afio::v2_xxx::utils::to_hex_string(span&lt; char &gt; out, const span&lt; char &gt; in)'],['../namespaceboost_1_1afio_1_1v2__xxx_1_1utils.html#a775c89fe351b10ff3e4a088acb7d1865',1,'boost::afio::v2_xxx::utils::to_hex_string(span&lt; char &gt; in)']]],
['to_5ftime_5fpoint',['to_time_point',['../structboost_1_1afio_1_1v2__xxx_1_1deadline.html#a9fbf04ae37e6a7dec7f505303ec149a9',1,'boost::afio::v2_xxx::deadline']]],
['truncate',['truncate',['../classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a562b5568e9cd0f1a26f0379a9d1a3b79',1,'boost::afio::v2_xxx::file_handle::truncate()'],['../classboost_1_1afio_1_1v2__xxx_1_1section__handle.html#a5a4ed3e38634ee4378133c7ccbb882d6',1,'boost::afio::v2_xxx::section_handle::truncate()']]],
diff --git a/search/functions_75.js b/search/functions_75.js
index 28f0a1d4..57d98e19 100644
--- a/search/functions_75.js
+++ b/search/functions_75.js
@@ -1,5 +1,5 @@
var searchData=
[
- ['unlock',['unlock',['../classboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1extent__guard.html#a40229ea71146d437079e68f2aca65d24',1,'boost::afio::v2_xxx::io_handle::extent_guard::unlock()'],['../classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a0d043e29e065db9618f6df2e43cc1d42',1,'boost::afio::v2_xxx::io_handle::unlock()'],['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1atomic__append.html#aca5a30951f774a86874c53f090e1a6ab',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::atomic_append::unlock()'],['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex_1_1entities__guard.html#a3633ff7db6fbab05a2d46da8302508ff',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::shared_fs_mutex::entities_guard::unlock()'],['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html#ab598ba46a5b99ba81bc41be40d79b8e5',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::shared_fs_mutex::unlock()'],['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html#aeff040753a6344db13a37a40a0c4c3f1',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::byte_ranges::unlock()'],['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1lock__files.html#ad28bd7249e7280d77be3f687b887c741',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::lock_files::unlock()']]],
+ ['unlock',['unlock',['../classboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1extent__guard.html#a40229ea71146d437079e68f2aca65d24',1,'boost::afio::v2_xxx::io_handle::extent_guard::unlock()'],['../classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a0d043e29e065db9618f6df2e43cc1d42',1,'boost::afio::v2_xxx::io_handle::unlock()'],['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1atomic__append.html#aca5a30951f774a86874c53f090e1a6ab',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::atomic_append::unlock()'],['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex_1_1entities__guard.html#a3633ff7db6fbab05a2d46da8302508ff',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::shared_fs_mutex::entities_guard::unlock()'],['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html#ab598ba46a5b99ba81bc41be40d79b8e5',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::shared_fs_mutex::unlock()'],['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html#aeff040753a6344db13a37a40a0c4c3f1',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::byte_ranges::unlock()'],['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1lock__files.html#ad28bd7249e7280d77be3f687b887c741',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::lock_files::unlock()'],['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#a80efd5836f20ac304bdcf0033c95de8b',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::memory_map::unlock()']]],
['using_5fkqueues',['using_kqueues',['../classboost_1_1afio_1_1v2__xxx_1_1io__service.html#a7d87d14cc56ca5b16429ecc546aa49ff',1,'boost::afio::v2_xxx::io_service']]]
];
diff --git a/search/search.js b/search/search.js
index 9567e923..014b3f32 100644
--- a/search/search.js
+++ b/search/search.js
@@ -8,7 +8,7 @@
var indexSectionsWithContent =
{
0: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010111111011011111101111111010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- 1: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000110111011001110101101010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ 1: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010110111011001110101101010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
2: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
3: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111101011001110000101100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
4: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010111111011011111101111110010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
diff --git a/search/typedefs_65.js b/search/typedefs_65.js
index bd51fcb4..5cbac40c 100644
--- a/search/typedefs_65.js
+++ b/search/typedefs_65.js
@@ -1,7 +1,7 @@
var searchData=
[
- ['entities_5ftype',['entities_type',['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1atomic__append.html#a7f7a092579354a2189a1b541d1993557',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::atomic_append::entities_type()'],['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html#a02af43575220c42252610c818e109b72',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::shared_fs_mutex::entities_type()'],['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html#a20147a7ddd0a3553bdcefeda4863b846',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::byte_ranges::entities_type()'],['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1lock__files.html#a82ab65a36dc2dc72fc4b22db77e0e9f7',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::lock_files::entities_type()']]],
- ['entity_5ftype',['entity_type',['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1atomic__append.html#a0077428ce79aeba4e529024de8fb2664',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::atomic_append::entity_type()'],['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html#a31c990c55f31e5b6d2cb45af1ae38b99',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::byte_ranges::entity_type()'],['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1lock__files.html#a0fb5503f53e6ac096efa6e25bad0ee33',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::lock_files::entity_type()']]],
+ ['entities_5ftype',['entities_type',['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1atomic__append.html#a7f7a092579354a2189a1b541d1993557',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::atomic_append::entities_type()'],['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html#a02af43575220c42252610c818e109b72',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::shared_fs_mutex::entities_type()'],['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html#a20147a7ddd0a3553bdcefeda4863b846',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::byte_ranges::entities_type()'],['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1lock__files.html#a82ab65a36dc2dc72fc4b22db77e0e9f7',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::lock_files::entities_type()'],['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#a9cc8c9f8c25a6ec30464839ebdf845af',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::memory_map::entities_type()']]],
+ ['entity_5ftype',['entity_type',['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1atomic__append.html#a0077428ce79aeba4e529024de8fb2664',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::atomic_append::entity_type()'],['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html#a31c990c55f31e5b6d2cb45af1ae38b99',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::byte_ranges::entity_type()'],['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1lock__files.html#a0fb5503f53e6ac096efa6e25bad0ee33',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::lock_files::entity_type()'],['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#ab248a548b71660335d14f88270741b1c',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::memory_map::entity_type()']]],
['enum_5ftype',['enum_type',['../structboost_1_1afio_1_1v2__xxx_1_1bitfield.html#af56b8e2eb44e5d87d31c40ede740717f',1,'boost::afio::v2_xxx::bitfield']]],
['erased_5fio_5fstate_5fptr',['erased_io_state_ptr',['../classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#af15c6e8c4f0cef2a29657c26886c9216',1,'boost::afio::v2_xxx::async_file_handle']]],
['extent_5ftype',['extent_type',['../classboost_1_1afio_1_1v2__xxx_1_1handle.html#a617ab627aa596b325d7bfef5210a43f3',1,'boost::afio::v2_xxx::handle::extent_type()'],['../classboost_1_1afio_1_1v2__xxx_1_1io__service.html#aa853170124634f2065cd5df672bf594d',1,'boost::afio::v2_xxx::io_service::extent_type()']]]
diff --git a/structboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map_1_1__entity__idx-members.html b/structboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map_1_1__entity__idx-members.html
new file mode 100644
index 00000000..d1886565
--- /dev/null
+++ b/structboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map_1_1__entity__idx-members.html
@@ -0,0 +1,129 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>Boost.AFIO: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Boost.AFIO
+ &#160;<span id="projectnumber">v2.00 early alpha</span>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('structboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map_1_1__entity__idx.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">boost::afio::v2_xxx::algorithm::shared_fs_mutex::memory_map::_entity_idx Member List</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map_1_1__entity__idx.html">boost::afio::v2_xxx::algorithm::shared_fs_mutex::memory_map::_entity_idx</a>, including all inherited members.</p>
+<table class="directory">
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>exclusive</b> (defined in <a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map_1_1__entity__idx.html">boost::afio::v2_xxx::algorithm::shared_fs_mutex::memory_map::_entity_idx</a>)</td><td class="entry"><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map_1_1__entity__idx.html">boost::afio::v2_xxx::algorithm::shared_fs_mutex::memory_map::_entity_idx</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>value</b> (defined in <a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map_1_1__entity__idx.html">boost::afio::v2_xxx::algorithm::shared_fs_mutex::memory_map::_entity_idx</a>)</td><td class="entry"><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map_1_1__entity__idx.html">boost::afio::v2_xxx::algorithm::shared_fs_mutex::memory_map::_entity_idx</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">Generated by
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.3.1 </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/structboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map_1_1__entity__idx.html b/structboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map_1_1__entity__idx.html
new file mode 100644
index 00000000..6f0224d3
--- /dev/null
+++ b/structboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map_1_1__entity__idx.html
@@ -0,0 +1,141 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>Boost.AFIO: boost::afio::v2_xxx::algorithm::shared_fs_mutex::memory_map::_entity_idx Struct 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>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Boost.AFIO
+ &#160;<span id="projectnumber">v2.00 early alpha</span>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('structboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map_1_1__entity__idx.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pub-attribs">Public Attributes</a> &#124;
+<a href="structboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map_1_1__entity__idx-members.html">List of all members</a> </div>
+ <div class="headertitle">
+<div class="title">boost::afio::v2_xxx::algorithm::shared_fs_mutex::memory_map::_entity_idx Struct Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Public Attributes</h2></td></tr>
+<tr class="memitem:ad936eba6d3a1d73876e7479ac76e6bf0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad936eba6d3a1d73876e7479ac76e6bf0"></a>
+unsigned&#160;</td><td class="memItemRight" valign="bottom"><b>value</b>: 31</td></tr>
+<tr class="separator:ad936eba6d3a1d73876e7479ac76e6bf0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a832dbc34c257aedcc94fc2506f4069cf"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a832dbc34c257aedcc94fc2506f4069cf"></a>
+unsigned&#160;</td><td class="memItemRight" valign="bottom"><b>exclusive</b>: 1</td></tr>
+<tr class="separator:a832dbc34c257aedcc94fc2506f4069cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<hr/>The documentation for this struct was generated from the following file:<ul>
+<li>include/boost/afio/v2.0/algorithm/shared_fs_mutex/<a class="el" href="memory__map_8hpp_source.html">memory_map.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="namespaceboost.html">boost</a></li><li class="navelem"><a class="el" href="namespaceboost_1_1afio.html">afio</a></li><li class="navelem"><a class="el" href="namespaceboost_1_1afio_1_1v2__xxx.html">v2_xxx</a></li><li class="navelem"><a class="el" href="namespaceboost_1_1afio_1_1v2__xxx_1_1algorithm.html">algorithm</a></li><li class="navelem"><a class="el" href="namespaceboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex.html">shared_fs_mutex</a></li><li class="navelem"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html">memory_map</a></li><li class="navelem"><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map_1_1__entity__idx.html">_entity_idx</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.3.1 </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/structboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map_1_1__entity__idx.js b/structboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map_1_1__entity__idx.js
new file mode 100644
index 00000000..620bdf96
--- /dev/null
+++ b/structboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map_1_1__entity__idx.js
@@ -0,0 +1,5 @@
+var structboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map_1_1__entity__idx =
+[
+ [ "exclusive", "structboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map_1_1__entity__idx.html#a832dbc34c257aedcc94fc2506f4069cf", null ],
+ [ "value", "structboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map_1_1__entity__idx.html#ad936eba6d3a1d73876e7479ac76e6bf0", null ]
+]; \ No newline at end of file
diff --git a/todo.html b/todo.html
index 9c736f48..97160a46 100644
--- a/todo.html
+++ b/todo.html
@@ -105,14 +105,16 @@ $(document).ready(function(){initNavTree('todo.html','');});
<div class="textblock"><dl class="reflist">
<dt><a class="anchor" id="_todo000001"></a>Namespace <a class="el" href="namespaceboost.html">boost</a> </dt>
<dd>TODO FIXME Replace in-memory log with memory map file backed log. </dd>
-<dt><a class="anchor" id="_todo000003"></a>Class <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1atomic__append.html">boost::afio::v2_xxx::algorithm::shared_fs_mutex::atomic_append</a> </dt>
+<dt><a class="anchor" id="_todo000004"></a>Class <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1atomic__append.html">boost::afio::v2_xxx::algorithm::shared_fs_mutex::atomic_append</a> </dt>
<dd><p class="startdd">Implement hole punching once I port that code from AFIO v1. </p>
<p>Decide on some resolution mechanism for sudden process exit. </p>
<p class="enddd">There is a 1 out of 2^64-2 chance of unique id collision. It would be nice if we actually formally checked that our chosen unique id is actually unique. </p>
</dd>
-<dt><a class="anchor" id="_todo000004"></a>Member <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1atomic__append.html#a4c16831d072f5e2ec9a33532b6764616">boost::afio::v2_xxx::algorithm::shared_fs_mutex::atomic_append::_lock</a> (entities_guard &amp;out, deadline d, bool spin_not_sleep) noexceptoverridefinal</dt>
+<dt><a class="anchor" id="_todo000005"></a>Member <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1atomic__append.html#a4c16831d072f5e2ec9a33532b6764616">boost::afio::v2_xxx::algorithm::shared_fs_mutex::atomic_append::_lock</a> (entities_guard &amp;out, deadline d, bool spin_not_sleep) noexceptoverridefinal</dt>
<dd>Read from header.last_known_good immediately if possible in order to avoid a duplicate read later </dd>
-<dt><a class="anchor" id="_todo000002"></a>Class <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html">boost::afio::v2_xxx::map_handle</a> </dt>
+<dt><a class="anchor" id="_todo000002"></a>Member <a class="el" href="namespaceboost_1_1afio_1_1v2__xxx.html#ad7da7a1d3240d7574fc7c6ee5831b7ee">boost::afio::v2_xxx::fixme_temporary_files_directory</a> () noexcept</dt>
+<dd>This function needs to become a static member function of <code>afio::path</code> once that is written, hence the 'fixme' in its title. </dd>
+<dt><a class="anchor" id="_todo000003"></a>Class <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html">boost::afio::v2_xxx::map_handle</a> </dt>
<dd><p class="startdd">MADV_NOSYNC on FreeBSD needs to applied when the file is temporary </p>
<p class="enddd">MADV_FREE on FreeBSD seems to do what MADV_DONTNEED does on Linux, investigate. </p>
</dd>
diff --git a/v2_80_2afio_8hpp.html b/v2_80_2afio_8hpp.html
index c38fff7e..5696b944 100644
--- a/v2_80_2afio_8hpp.html
+++ b/v2_80_2afio_8hpp.html
@@ -120,6 +120,8 @@ $(document).ready(function(){initNavTree('v2_80_2afio_8hpp.html','');});
<code>#include &quot;<a class="el" href="storage__profile_8hpp_source.html">storage_profile.hpp</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="atomic__append_8hpp_source.html">algorithm/shared_fs_mutex/atomic_append.hpp</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="byte__ranges_8hpp_source.html">algorithm/shared_fs_mutex/byte_ranges.hpp</a>&quot;</code><br/>
+<code>#include &quot;<a class="el" href="lock__files_8hpp_source.html">algorithm/shared_fs_mutex/lock_files.hpp</a>&quot;</code><br/>
+<code>#include &quot;<a class="el" href="memory__map_8hpp_source.html">algorithm/shared_fs_mutex/memory_map.hpp</a>&quot;</code><br/>
<code>#include &quot;detail/child_process.hpp&quot;</code><br/>
</div>
<p><a href="v2_80_2afio_8hpp_source.html">Go to the source code of this file.</a></p>
diff --git a/v2_80_2afio_8hpp_source.html b/v2_80_2afio_8hpp_source.html
index a0f62668..47b8034f 100644
--- a/v2_80_2afio_8hpp_source.html
+++ b/v2_80_2afio_8hpp_source.html
@@ -174,10 +174,12 @@ $(document).ready(function(){initNavTree('v2_80_2afio_8hpp_source.html','');});
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="atomic__append_8hpp.html" title="Provides algorithm::shared_fs_mutex::atomic_append.">algorithm/shared_fs_mutex/atomic_append.hpp</a>&quot;</span></div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="byte__ranges_8hpp.html" title="Provides algorithm::shared_fs_mutex::byte_ranges.">algorithm/shared_fs_mutex/byte_ranges.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="preprocessor">#include &quot;detail/child_process.hpp&quot;</span></div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="lock__files_8hpp.html" title="Provides algorithm::shared_fs_mutex::lock_files.">algorithm/shared_fs_mutex/lock_files.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="memory__map_8hpp.html" title="Provides algorithm::shared_fs_mutex::memory_map.">algorithm/shared_fs_mutex/memory_map.hpp</a>&quot;</span></div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="preprocessor">#include &quot;detail/child_process.hpp&quot;</span></div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="preprocessor">#endif</span></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->