From 5375617329a7ee85a591f119cadf3a7768632acf Mon Sep 17 00:00:00 2001 From: Jenkins nedprod CI Date: Sun, 27 May 2018 02:23:09 +0000 Subject: Travis CI updates documentation --- async__file__handle_8hpp.html | 4 +-- async__file__handle_8hpp.js | 2 +- ...io__v2__xxx_1_1async__file__handle-members.html | 4 +-- classafio__v2__xxx_1_1async__file__handle.html | 24 +++++++-------- classafio__v2__xxx_1_1directory__handle.html | 2 +- classafio__v2__xxx_1_1file__handle-members.html | 2 +- classafio__v2__xxx_1_1file__handle.html | 12 ++++---- classafio__v2__xxx_1_1fs__handle.html | 2 +- classafio__v2__xxx_1_1io__service.html | 2 +- ...o__v2__xxx_1_1mapped__file__handle-members.html | 4 +-- classafio__v2__xxx_1_1mapped__file__handle.html | 22 ++++++------- file__handle_8hpp.html | 4 +-- file__handle_8hpp.js | 2 +- functions_a.html | 2 +- functions_eval.html | 4 +-- functions_func_a.html | 2 +- functions_func_m.html | 2 +- functions_func_t.html | 2 +- functions_m.html | 2 +- functions_t.html | 2 +- functions_u.html | 4 +-- mapped__file__handle_8hpp.html | 4 +-- mapped__file__handle_8hpp.js | 2 +- namespaceafio__v2__xxx.html | 36 +++++++++++----------- namespacemembers.html | 6 ++-- namespacemembers_func.html | 6 ++-- navtreeindex0.js | 2 +- navtreeindex4.js | 2 +- navtreeindex5.js | 2 +- navtreeindex6.js | 2 +- navtreeindex8.js | 4 +-- search/all_1.js | 2 +- search/all_12.js | 2 +- search/all_13.js | 2 +- search/all_c.js | 2 +- search/enumvalues_10.js | 2 +- search/functions_1.js | 2 +- search/functions_12.js | 2 +- search/functions_c.js | 2 +- ...o__v2__xxx_1_1handle_1_1flag__base-members.html | 2 +- structafio__v2__xxx_1_1handle_1_1flag__base.html | 10 +++--- structafio__v2__xxx_1_1handle_1_1flag__base.js | 2 +- 42 files changed, 101 insertions(+), 101 deletions(-) diff --git a/async__file__handle_8hpp.html b/async__file__handle_8hpp.html index 65221227..e13caf26 100644 --- a/async__file__handle_8hpp.html +++ b/async__file__handle_8hpp.html @@ -133,8 +133,8 @@ void   result< async_file_handle > afio_v2_xxx::async_random_file (io_service &service, const path_handle &dirpath, async_file_handle::mode _mode=async_file_handle::mode::write, async_file_handle::caching _caching=async_file_handle::caching::only_metadata, async_file_handle::flag flags=async_file_handle::flag::none) noexcept   -result< async_file_handle > afio_v2_xxx::async_temp_file (io_service &service, async_file_handle::path_view_type name=async_file_handle::path_view_type(), async_file_handle::mode _mode=async_file_handle::mode::write, async_file_handle::creation _creation=async_file_handle::creation::if_needed, async_file_handle::caching _caching=async_file_handle::caching::only_metadata, async_file_handle::flag flags=async_file_handle::flag::unlink_on_close) noexcept -  +result< async_file_handle > afio_v2_xxx::async_temp_file (io_service &service, async_file_handle::path_view_type name=async_file_handle::path_view_type(), async_file_handle::mode _mode=async_file_handle::mode::write, async_file_handle::creation _creation=async_file_handle::creation::if_needed, async_file_handle::caching _caching=async_file_handle::caching::only_metadata, async_file_handle::flag flags=async_file_handle::flag::unlink_on_first_close) noexcept +  result< async_file_handle > afio_v2_xxx::async_temp_inode (io_service &service, const path_handle &dir=path_discovery::storage_backed_temporary_files_directory(), async_file_handle::mode _mode=async_file_handle::mode::write, async_file_handle::flag flags=async_file_handle::flag::none) noexcept   diff --git a/async__file__handle_8hpp.js b/async__file__handle_8hpp.js index 660acc8a..7ebb35b6 100644 --- a/async__file__handle_8hpp.js +++ b/async__file__handle_8hpp.js @@ -10,7 +10,7 @@ var async__file__handle_8hpp = [ "async_file", "async__file__handle_8hpp.html#a5b0168993998aafc342233aa782040a6", null ], [ "async_random_file", "async__file__handle_8hpp.html#a40cd3a25b8d4a293a8864fe6eb585034", null ], [ "async_read", "async__file__handle_8hpp.html#a0891bedb63147526aba998b0a2f18132", null ], - [ "async_temp_file", "async__file__handle_8hpp.html#a0b751376f48a4fd14cb90cce03b2b491", null ], + [ "async_temp_file", "async__file__handle_8hpp.html#ac754c36ee69e5352404b24e78c062923", null ], [ "async_temp_inode", "async__file__handle_8hpp.html#a5eb846433fec3c9c80336ff686c2527e", null ], [ "async_write", "async__file__handle_8hpp.html#aded93df5ea7777b501811ec593ed5b55", null ], [ "barrier", "async__file__handle_8hpp.html#a0ff925d5c5434bcec35b2167d87d5c55", null ], diff --git a/classafio__v2__xxx_1_1async__file__handle-members.html b/classafio__v2__xxx_1_1async__file__handle-members.html index 1b26d086..b847c76b 100644 --- a/classafio__v2__xxx_1_1async__file__handle-members.html +++ b/classafio__v2__xxx_1_1async__file__handle-members.html @@ -107,7 +107,7 @@ $(document).ready(function(){initNavTree('classafio__v2__xxx_1_1async__file__han async_file_handle(handle &&o, io_service *service, dev_t devid, ino_t inode) noexceptafio_v2_xxx::async_file_handleinlineexplicit async_random_file(io_service &service, const path_handle &dirpath, mode _mode=mode::write, caching _caching=caching::only_metadata, flag flags=flag::none) noexceptafio_v2_xxx::async_file_handleinlinestatic async_read(io_request< buffers_type > reqs, CompletionRoutine &&completion, span< char > mem={}) noexceptafio_v2_xxx::async_file_handleinline - async_temp_file(io_service &service, path_view_type name=path_view_type(), mode _mode=mode::write, creation _creation=creation::if_needed, caching _caching=caching::only_metadata, flag flags=flag::unlink_on_close) noexceptafio_v2_xxx::async_file_handleinlinestatic + async_temp_file(io_service &service, path_view_type name=path_view_type(), mode _mode=mode::write, creation _creation=creation::if_needed, caching _caching=caching::only_metadata, flag flags=flag::unlink_on_first_close) noexceptafio_v2_xxx::async_file_handleinlinestatic async_temp_inode(io_service &service, const path_handle &dir=path_discovery::storage_backed_temporary_files_directory(), mode _mode=mode::write, flag flags=flag::none) noexceptafio_v2_xxx::async_file_handleinlinestatic async_write(io_request< const_buffers_type > reqs, CompletionRoutine &&completion, span< char > mem={}) noexceptafio_v2_xxx::async_file_handleinline barrier(io_request< const_buffers_type > reqs=io_request< const_buffers_type >(), bool wait_for_device=false, bool and_metadata=false, deadline d=deadline()) noexcept override (defined in afio_v2_xxx::async_file_handle)afio_v2_xxx::async_file_handlevirtual @@ -204,7 +204,7 @@ $(document).ready(function(){initNavTree('classafio__v2__xxx_1_1async__file__han swap(async_file_handle &o) noexceptafio_v2_xxx::async_file_handleinline afio_v2_xxx::file_handle::swap(file_handle &o) noexceptafio_v2_xxx::file_handleinline afio_v2_xxx::io_handle::swap(handle &o) noexceptafio_v2_xxx::handleinline - temp_file(path_view_type name=path_view_type(), mode _mode=mode::write, creation _creation=creation::if_needed, caching _caching=caching::temporary, flag flags=flag::unlink_on_close) noexceptafio_v2_xxx::file_handleinlinestatic + temp_file(path_view_type name=path_view_type(), mode _mode=mode::write, creation _creation=creation::if_needed, caching _caching=caching::temporary, flag flags=flag::unlink_on_first_close) noexceptafio_v2_xxx::file_handleinlinestatic temp_inode(const path_handle &dirh=path_discovery::storage_backed_temporary_files_directory(), mode _mode=mode::write, flag flags=flag::none) noexceptafio_v2_xxx::file_handleinlinestatic truncate(extent_type newsize) noexceptafio_v2_xxx::file_handleinlinevirtual try_lock(extent_type offset, extent_type bytes, bool exclusive=true) noexceptafio_v2_xxx::io_handleinline diff --git a/classafio__v2__xxx_1_1async__file__handle.html b/classafio__v2__xxx_1_1async__file__handle.html index 641f44c6..73566ff2 100644 --- a/classafio__v2__xxx_1_1async__file__handle.html +++ b/classafio__v2__xxx_1_1async__file__handle.html @@ -414,16 +414,16 @@ Static Public Member Functions   static result< async_file_handleasync_random_file (io_service &service, const path_handle &dirpath, mode _mode=mode::write, caching _caching=caching::only_metadata, flag flags=flag::none) noexcept   -static result< async_file_handleasync_temp_file (io_service &service, path_view_type name=path_view_type(), mode _mode=mode::write, creation _creation=creation::if_needed, caching _caching=caching::only_metadata, flag flags=flag::unlink_on_close) noexcept -  +static result< async_file_handleasync_temp_file (io_service &service, path_view_type name=path_view_type(), mode _mode=mode::write, creation _creation=creation::if_needed, caching _caching=caching::only_metadata, flag flags=flag::unlink_on_first_close) noexcept +  static AFIO_HEADERS_ONLY_MEMFUNC_SPEC result< async_file_handleasync_temp_inode (io_service &service, const path_handle &dir=path_discovery::storage_backed_temporary_files_directory(), mode _mode=mode::write, flag flags=flag::none) noexcept   static result< file_handlefile (const path_handle &base, path_view_type path, mode _mode=mode::read, creation _creation=creation::open_existing, caching _caching=caching::all, flag flags=flag::none) noexcept   static result< file_handlerandom_file (const path_handle &dirpath, mode _mode=mode::write, caching _caching=caching::temporary, flag flags=flag::none) noexcept   -static result< file_handletemp_file (path_view_type name=path_view_type(), mode _mode=mode::write, creation _creation=creation::if_needed, caching _caching=caching::temporary, flag flags=flag::unlink_on_close) noexcept -  +static result< file_handletemp_file (path_view_type name=path_view_type(), mode _mode=mode::write, creation _creation=creation::if_needed, caching _caching=caching::temporary, flag flags=flag::unlink_on_first_close) noexcept +  static result< file_handletemp_inode (const path_handle &dirh=path_discovery::storage_backed_temporary_files_directory(), mode _mode=mode::write, flag flags=flag::none) noexcept   @@ -475,7 +475,7 @@ class <
io_servicemapped_file_handleMostLeastNoneCannot be used with uncached i/o
Warning
i/o initiated by this class MUST be on the same kernel thread as which created the owning io_service which MUST also be the same kernel thread as which runs the i/o service's run() function.
-
namespace afio = AFIO_V2_NAMESPACE;
// Create an i/o service for this thread
afio::io_service service;
// Create an async file i/o handle attached to the i/o service for this thread
afio::async_file_handle h = afio::async_file_handle::async_file(service, {}, "temp", afio::file_handle::mode::write, afio::file_handle::creation::if_needed, afio::file_handle::caching::only_metadata, afio::file_handle::flag::unlink_on_close).value();
// Truncate to 1Mb
h.truncate(1024 * 4096);
// Launch 8 coroutines, each writing 4Kb of chars 0-8 to every 32Kb block
auto coroutine = [&h](size_t no) -> std::future<void> {
std::vector<afio::byte, afio::utils::page_allocator<afio::byte>> buffer(4096);
memset(buffer.data(), (int) ('0' + no), 4096);
afio::async_file_handle::const_buffer_type bt{buffer.data(), buffer.size()};
for(size_t n = 0; n < 128; n++)
{
// This will initiate the i/o, and suspend the coroutine until completion.
// The caller will thus resume execution with a valid unsignaled future.
auto written = co_await h.co_write({bt, n * 32768 + no * 4096}).value();
written.value();
}
};
std::vector<std::future<void>> coroutines;
for(size_t n = 0; n < 8; n++)
{
// Construct each coroutine, initiating the i/o, then suspending.
coroutines.push_back(coroutine(n));
}
// Pump the i/o, multiplexing the coroutines, until no more work remains.
while(service.run().value())
;
// Make sure nothing went wrong by fetching the futures.
for(auto &i : coroutines)
{
i.get();
}

Member Typedef Documentation

+
namespace afio = AFIO_V2_NAMESPACE;
// Create an i/o service for this thread
afio::io_service service;
// Create an async file i/o handle attached to the i/o service for this thread
afio::async_file_handle h = afio::async_file_handle::async_file(service, {}, "temp", afio::file_handle::mode::write, afio::file_handle::creation::if_needed, afio::file_handle::caching::only_metadata, afio::file_handle::flag::unlink_on_first_close).value();
// Truncate to 1Mb
h.truncate(1024 * 4096);
// Launch 8 coroutines, each writing 4Kb of chars 0-8 to every 32Kb block
auto coroutine = [&h](size_t no) -> std::future<void> {
std::vector<afio::byte, afio::utils::page_allocator<afio::byte>> buffer(4096);
memset(buffer.data(), (int) ('0' + no), 4096);
afio::async_file_handle::const_buffer_type bt{buffer.data(), buffer.size()};
for(size_t n = 0; n < 128; n++)
{
// This will initiate the i/o, and suspend the coroutine until completion.
// The caller will thus resume execution with a valid unsignaled future.
auto written = co_await h.co_write({bt, n * 32768 + no * 4096}).value();
written.value();
}
};
std::vector<std::future<void>> coroutines;
for(size_t n = 0; n < 8; n++)
{
// Construct each coroutine, initiating the i/o, then suspending.
coroutines.push_back(coroutine(n));
}
// Pump the i/o, multiplexing the coroutines, until no more work remains.
while(service.run().value())
;
// Make sure nothing went wrong by fetching the futures.
for(auto &i : coroutines)
{
i.get();
}

Member Typedef Documentation

◆ io_state_ptr

@@ -767,8 +767,8 @@ template<class CompletionRoutine > - -

◆ async_temp_file()

+ +

◆ async_temp_file()

@@ -810,7 +810,7 @@ template<class CompletionRoutine >
flag  - flags = flag::unlink_on_close  + flags = flag::unlink_on_first_close  @@ -1899,8 +1899,8 @@ For portability, you can only assume that barriers write order for a single hand
- -

◆ temp_file()

+ +

◆ temp_file()

@@ -1936,7 +1936,7 @@ For portability, you can only assume that barriers write order for a single hand flag  - flags = flag::unlink_on_close  + flags = flag::unlink_on_first_close  @@ -2108,7 +2108,7 @@ For portability, you can only assume that barriers write order for a single hand
-

Unlinks the current path of this open handle, causing its entry to immediately disappear from the filing system. On Windows unless flag::win_disable_unlink_emulation is set, this behaviour is simulated by renaming the file to something random and setting its delete-on-last-close flag. Note that Windows may prevent the renaming of a file in use by another process, if so it will NOT be renamed. After the next handle to that file closes, it will become permanently unopenable by anyone else until the last handle is closed, whereupon the entry will be eventually removed by the operating system.

+

Unlinks the current path of this open handle, causing its entry to immediately disappear from the filing system. On Windows before Windows 10 1709 unless flag::win_disable_unlink_emulation is set, this behaviour is simulated by renaming the file to something random and setting its delete-on-last-close flag. Note that Windows may prevent the renaming of a file in use by another process, if so it will NOT be renamed. After the next handle to that file closes, it will become permanently unopenable by anyone else until the last handle is closed, whereupon the entry will be eventually removed by the operating system.

Warning
Some operating systems provide a race free syscall for unlinking an open handle (Windows). On all other operating systems this call is racy and can result in the wrong file entry being unlinked. Note that unless flag::disable_safety_unlinks is set, this implementation opens a path_handle to the containing directory first, then checks that the item about to be unlinked has the same inode as the open file handle. It will retry this matching until success until the deadline given. This should prevent most unmalicious accidental loss of data.
Parameters
diff --git a/classafio__v2__xxx_1_1directory__handle.html b/classafio__v2__xxx_1_1directory__handle.html index fc6859d6..e16f1dc7 100644 --- a/classafio__v2__xxx_1_1directory__handle.html +++ b/classafio__v2__xxx_1_1directory__handle.html @@ -966,7 +966,7 @@ ino_t <
_inode {0}
-

Unlinks the current path of this open handle, causing its entry to immediately disappear from the filing system. On Windows unless flag::win_disable_unlink_emulation is set, this behaviour is simulated by renaming the file to something random and setting its delete-on-last-close flag. Note that Windows may prevent the renaming of a file in use by another process, if so it will NOT be renamed. After the next handle to that file closes, it will become permanently unopenable by anyone else until the last handle is closed, whereupon the entry will be eventually removed by the operating system.

+

Unlinks the current path of this open handle, causing its entry to immediately disappear from the filing system. On Windows before Windows 10 1709 unless flag::win_disable_unlink_emulation is set, this behaviour is simulated by renaming the file to something random and setting its delete-on-last-close flag. Note that Windows may prevent the renaming of a file in use by another process, if so it will NOT be renamed. After the next handle to that file closes, it will become permanently unopenable by anyone else until the last handle is closed, whereupon the entry will be eventually removed by the operating system.

Warning
Some operating systems provide a race free syscall for unlinking an open handle (Windows). On all other operating systems this call is racy and can result in the wrong file entry being unlinked. Note that unless flag::disable_safety_unlinks is set, this implementation opens a path_handle to the containing directory first, then checks that the item about to be unlinked has the same inode as the open file handle. It will retry this matching until success until the deadline given. This should prevent most unmalicious accidental loss of data.
Parameters
diff --git a/classafio__v2__xxx_1_1file__handle-members.html b/classafio__v2__xxx_1_1file__handle-members.html index 6a27832a..e08c7d72 100644 --- a/classafio__v2__xxx_1_1file__handle-members.html +++ b/classafio__v2__xxx_1_1file__handle-members.html @@ -180,7 +180,7 @@ $(document).ready(function(){initNavTree('classafio__v2__xxx_1_1file__handle.htm - + diff --git a/classafio__v2__xxx_1_1file__handle.html b/classafio__v2__xxx_1_1file__handle.html index acd1a018..a5153bae 100644 --- a/classafio__v2__xxx_1_1file__handle.html +++ b/classafio__v2__xxx_1_1file__handle.html @@ -367,8 +367,8 @@ Static Public Member Functions - - + +
st_ino() const noexceptafio_v2_xxx::fs_handleinline
swap(file_handle &o) noexceptafio_v2_xxx::file_handleinline
afio_v2_xxx::io_handle::swap(handle &o) noexceptafio_v2_xxx::handleinline
temp_file(path_view_type name=path_view_type(), mode _mode=mode::write, creation _creation=creation::if_needed, caching _caching=caching::temporary, flag flags=flag::unlink_on_close) noexceptafio_v2_xxx::file_handleinlinestatic
temp_file(path_view_type name=path_view_type(), mode _mode=mode::write, creation _creation=creation::if_needed, caching _caching=caching::temporary, flag flags=flag::unlink_on_first_close) noexceptafio_v2_xxx::file_handleinlinestatic
temp_inode(const path_handle &dirh=path_discovery::storage_backed_temporary_files_directory(), mode _mode=mode::write, flag flags=flag::none) noexceptafio_v2_xxx::file_handleinlinestatic
truncate(extent_type newsize) noexceptafio_v2_xxx::file_handleinlinevirtual
try_lock(extent_type offset, extent_type bytes, bool exclusive=true) noexceptafio_v2_xxx::io_handleinline
 
static result< file_handlerandom_file (const path_handle &dirpath, mode _mode=mode::write, caching _caching=caching::temporary, flag flags=flag::none) noexcept
 
static result< file_handletemp_file (path_view_type name=path_view_type(), mode _mode=mode::write, creation _creation=creation::if_needed, caching _caching=caching::temporary, flag flags=flag::unlink_on_close) noexcept
 
static result< file_handletemp_file (path_view_type name=path_view_type(), mode _mode=mode::write, creation _creation=creation::if_needed, caching _caching=caching::temporary, flag flags=flag::unlink_on_first_close) noexcept
 
static result< file_handletemp_inode (const path_handle &dirh=path_discovery::storage_backed_temporary_files_directory(), mode _mode=mode::write, flag flags=flag::none) noexcept
 
@@ -1156,8 +1156,8 @@ For portability, you can only assume that barriers write order for a single hand - -

◆ temp_file()

+ +

◆ temp_file()

@@ -1193,7 +1193,7 @@ For portability, you can only assume that barriers write order for a single hand
- + @@ -1365,7 +1365,7 @@ For portability, you can only assume that barriers write order for a single hand
flag flags = flag::unlink_on_close flags = flag::unlink_on_first_close 
-

Unlinks the current path of this open handle, causing its entry to immediately disappear from the filing system. On Windows unless flag::win_disable_unlink_emulation is set, this behaviour is simulated by renaming the file to something random and setting its delete-on-last-close flag. Note that Windows may prevent the renaming of a file in use by another process, if so it will NOT be renamed. After the next handle to that file closes, it will become permanently unopenable by anyone else until the last handle is closed, whereupon the entry will be eventually removed by the operating system.

+

Unlinks the current path of this open handle, causing its entry to immediately disappear from the filing system. On Windows before Windows 10 1709 unless flag::win_disable_unlink_emulation is set, this behaviour is simulated by renaming the file to something random and setting its delete-on-last-close flag. Note that Windows may prevent the renaming of a file in use by another process, if so it will NOT be renamed. After the next handle to that file closes, it will become permanently unopenable by anyone else until the last handle is closed, whereupon the entry will be eventually removed by the operating system.

Warning
Some operating systems provide a race free syscall for unlinking an open handle (Windows). On all other operating systems this call is racy and can result in the wrong file entry being unlinked. Note that unless flag::disable_safety_unlinks is set, this implementation opens a path_handle to the containing directory first, then checks that the item about to be unlinked has the same inode as the open file handle. It will retry this matching until success until the deadline given. This should prevent most unmalicious accidental loss of data.
Parameters
diff --git a/classafio__v2__xxx_1_1fs__handle.html b/classafio__v2__xxx_1_1fs__handle.html index 9f1be48e..350344a0 100644 --- a/classafio__v2__xxx_1_1fs__handle.html +++ b/classafio__v2__xxx_1_1fs__handle.html @@ -306,7 +306,7 @@ ino_t <
_inode {0}
-

Unlinks the current path of this open handle, causing its entry to immediately disappear from the filing system. On Windows unless flag::win_disable_unlink_emulation is set, this behaviour is simulated by renaming the file to something random and setting its delete-on-last-close flag. Note that Windows may prevent the renaming of a file in use by another process, if so it will NOT be renamed. After the next handle to that file closes, it will become permanently unopenable by anyone else until the last handle is closed, whereupon the entry will be eventually removed by the operating system.

+

Unlinks the current path of this open handle, causing its entry to immediately disappear from the filing system. On Windows before Windows 10 1709 unless flag::win_disable_unlink_emulation is set, this behaviour is simulated by renaming the file to something random and setting its delete-on-last-close flag. Note that Windows may prevent the renaming of a file in use by another process, if so it will NOT be renamed. After the next handle to that file closes, it will become permanently unopenable by anyone else until the last handle is closed, whereupon the entry will be eventually removed by the operating system.

Warning
Some operating systems provide a race free syscall for unlinking an open handle (Windows). On all other operating systems this call is racy and can result in the wrong file entry being unlinked. Note that unless flag::disable_safety_unlinks is set, this implementation opens a path_handle to the containing directory first, then checks that the item about to be unlinked has the same inode as the open file handle. It will retry this matching until success until the deadline given. This should prevent most unmalicious accidental loss of data.
Parameters
diff --git a/classafio__v2__xxx_1_1io__service.html b/classafio__v2__xxx_1_1io__service.html index 8c20ef0a..dba852d5 100644 --- a/classafio__v2__xxx_1_1io__service.html +++ b/classafio__v2__xxx_1_1io__service.html @@ -201,7 +201,7 @@ class  - + @@ -205,7 +205,7 @@ $(document).ready(function(){initNavTree('classafio__v2__xxx_1_1mapped__file__ha - + diff --git a/classafio__v2__xxx_1_1mapped__file__handle.html b/classafio__v2__xxx_1_1mapped__file__handle.html index dbf23f3f..82fd5849 100644 --- a/classafio__v2__xxx_1_1mapped__file__handle.html +++ b/classafio__v2__xxx_1_1mapped__file__handle.html @@ -418,16 +418,16 @@ Static Public Member Functions - - + + - - + +
async_file_handleThis service is used in conjunction with async_file_handle to multiplex initating i/o and completing it onto a single kernel thread. Unlike the io_service in ASIO or the Networking TS, this io_service is much simpler, in particular it is single threaded per instance only i.e. you must run a separate io_service instance one per kernel thread if you wish to run i/o processing across multiple threads. AFIO does not do this for you (and for good reason, unlike socket i/o, it is generally unwise to distribute file i/o across kernel threads due to the much more code executable between user space and physical storage i.e. keeping processing per CPU core hot in cache delivers outsize benefits compared to socket i/o).

Furthermore, you cannot use this i/o service in any way from any thread other than where it was created. You cannot call its run() from any thread other than where it was created. And you cannot initiate i/o on an async_file_handle from any thread other than where its owning i/o service was created.

In other words, keep your i/o service and all associated file handles on their owning thread. The sole function you can call from another thread is post() which lets you execute some callback in the run() of the owning thread. This lets you schedule i/o from other threads if you really must do that.

-
namespace afio = AFIO_V2_NAMESPACE;
// Create an i/o service for this thread
afio::io_service service;
// Create an async file i/o handle attached to the i/o service for this thread
afio::async_file_handle h = afio::async_file_handle::async_file(service, {}, "temp", afio::file_handle::mode::write, afio::file_handle::creation::if_needed, afio::file_handle::caching::only_metadata, afio::file_handle::flag::unlink_on_close).value();
// Truncate to 1Mb
h.truncate(1024 * 4096);
// Launch 8 coroutines, each writing 4Kb of chars 0-8 to every 32Kb block
auto coroutine = [&h](size_t no) -> std::future<void> {
std::vector<afio::byte, afio::utils::page_allocator<afio::byte>> buffer(4096);
memset(buffer.data(), (int) ('0' + no), 4096);
afio::async_file_handle::const_buffer_type bt{buffer.data(), buffer.size()};
for(size_t n = 0; n < 128; n++)
{
// This will initiate the i/o, and suspend the coroutine until completion.
// The caller will thus resume execution with a valid unsignaled future.
auto written = co_await h.co_write({bt, n * 32768 + no * 4096}).value();
written.value();
}
};
std::vector<std::future<void>> coroutines;
for(size_t n = 0; n < 8; n++)
{
// Construct each coroutine, initiating the i/o, then suspending.
coroutines.push_back(coroutine(n));
}
// Pump the i/o, multiplexing the coroutines, until no more work remains.
while(service.run().value())
;
// Make sure nothing went wrong by fetching the futures.
for(auto &i : coroutines)
{
i.get();
}

Constructor & Destructor Documentation

+
namespace afio = AFIO_V2_NAMESPACE;
// Create an i/o service for this thread
afio::io_service service;
// Create an async file i/o handle attached to the i/o service for this thread
afio::async_file_handle h = afio::async_file_handle::async_file(service, {}, "temp", afio::file_handle::mode::write, afio::file_handle::creation::if_needed, afio::file_handle::caching::only_metadata, afio::file_handle::flag::unlink_on_first_close).value();
// Truncate to 1Mb
h.truncate(1024 * 4096);
// Launch 8 coroutines, each writing 4Kb of chars 0-8 to every 32Kb block
auto coroutine = [&h](size_t no) -> std::future<void> {
std::vector<afio::byte, afio::utils::page_allocator<afio::byte>> buffer(4096);
memset(buffer.data(), (int) ('0' + no), 4096);
afio::async_file_handle::const_buffer_type bt{buffer.data(), buffer.size()};
for(size_t n = 0; n < 128; n++)
{
// This will initiate the i/o, and suspend the coroutine until completion.
// The caller will thus resume execution with a valid unsignaled future.
auto written = co_await h.co_write({bt, n * 32768 + no * 4096}).value();
written.value();
}
};
std::vector<std::future<void>> coroutines;
for(size_t n = 0; n < 8; n++)
{
// Construct each coroutine, initiating the i/o, then suspending.
coroutines.push_back(coroutine(n));
}
// Pump the i/o, multiplexing the coroutines, until no more work remains.
while(service.run().value())
;
// Make sure nothing went wrong by fetching the futures.
for(auto &i : coroutines)
{
i.get();
}

Constructor & Destructor Documentation

◆ io_service()

diff --git a/classafio__v2__xxx_1_1mapped__file__handle-members.html b/classafio__v2__xxx_1_1mapped__file__handle-members.html index 5fb2f688..454b61ac 100644 --- a/classafio__v2__xxx_1_1mapped__file__handle-members.html +++ b/classafio__v2__xxx_1_1mapped__file__handle-members.html @@ -168,7 +168,7 @@ $(document).ready(function(){initNavTree('classafio__v2__xxx_1_1mapped__file__ha
mapped_file_handle(file_handle &&o) noexceptafio_v2_xxx::mapped_file_handleinlineexplicit
mapped_file_handle(file_handle &&o, size_type reservation) noexceptafio_v2_xxx::mapped_file_handleinlineexplicit
mapped_random_file(size_type reservation, const path_handle &dirpath, mode _mode=mode::write, caching _caching=caching::temporary, flag flags=flag::none) noexceptafio_v2_xxx::mapped_file_handleinlinestatic
mapped_temp_file(size_type reservation, path_view_type name=path_view_type(), mode _mode=mode::write, creation _creation=creation::if_needed, caching _caching=caching::temporary, flag flags=flag::unlink_on_close) noexceptafio_v2_xxx::mapped_file_handleinlinestatic
mapped_temp_file(size_type reservation, path_view_type name=path_view_type(), mode _mode=mode::write, creation _creation=creation::if_needed, caching _caching=caching::temporary, flag flags=flag::unlink_on_first_close) noexceptafio_v2_xxx::mapped_file_handleinlinestatic
mapped_temp_inode(const path_handle &dir=path_discovery::storage_backed_temporary_files_directory(), mode _mode=mode::write, flag flags=flag::none) noexceptafio_v2_xxx::mapped_file_handleinlinestatic
max_buffers() const noexceptafio_v2_xxx::io_handleinlinevirtual
maximum_extent() const noexcept overrideafio_v2_xxx::mapped_file_handleinlinevirtual
swap(mapped_file_handle &o) noexceptafio_v2_xxx::mapped_file_handleinline
afio_v2_xxx::file_handle::swap(file_handle &o) noexceptafio_v2_xxx::file_handleinline
afio_v2_xxx::io_handle::swap(handle &o) noexceptafio_v2_xxx::handleinline
temp_file(path_view_type name=path_view_type(), mode _mode=mode::write, creation _creation=creation::if_needed, caching _caching=caching::temporary, flag flags=flag::unlink_on_close) noexceptafio_v2_xxx::file_handleinlinestatic
temp_file(path_view_type name=path_view_type(), mode _mode=mode::write, creation _creation=creation::if_needed, caching _caching=caching::temporary, flag flags=flag::unlink_on_first_close) noexceptafio_v2_xxx::file_handleinlinestatic
temp_inode(const path_handle &dirh=path_discovery::storage_backed_temporary_files_directory(), mode _mode=mode::write, flag flags=flag::none) noexceptafio_v2_xxx::file_handleinlinestatic
truncate(extent_type newsize) noexcept overrideafio_v2_xxx::mapped_file_handleinlinevirtual
try_lock(extent_type offset, extent_type bytes, bool exclusive=true) noexceptafio_v2_xxx::io_handleinline
 
static result< mapped_file_handlemapped_random_file (size_type reservation, const path_handle &dirpath, mode _mode=mode::write, caching _caching=caching::temporary, flag flags=flag::none) noexcept
 
static result< mapped_file_handlemapped_temp_file (size_type reservation, path_view_type name=path_view_type(), mode _mode=mode::write, creation _creation=creation::if_needed, caching _caching=caching::temporary, flag flags=flag::unlink_on_close) noexcept
 
static result< mapped_file_handlemapped_temp_file (size_type reservation, path_view_type name=path_view_type(), mode _mode=mode::write, creation _creation=creation::if_needed, caching _caching=caching::temporary, flag flags=flag::unlink_on_first_close) noexcept
 
static result< mapped_file_handlemapped_temp_inode (const path_handle &dir=path_discovery::storage_backed_temporary_files_directory(), mode _mode=mode::write, flag flags=flag::none) noexcept
 
static result< file_handlefile (const path_handle &base, path_view_type path, mode _mode=mode::read, creation _creation=creation::open_existing, caching _caching=caching::all, flag flags=flag::none) noexcept
 
static result< file_handlerandom_file (const path_handle &dirpath, mode _mode=mode::write, caching _caching=caching::temporary, flag flags=flag::none) noexcept
 
static result< file_handletemp_file (path_view_type name=path_view_type(), mode _mode=mode::write, creation _creation=creation::if_needed, caching _caching=caching::temporary, flag flags=flag::unlink_on_close) noexcept
 
static result< file_handletemp_file (path_view_type name=path_view_type(), mode _mode=mode::write, creation _creation=creation::if_needed, caching _caching=caching::temporary, flag flags=flag::unlink_on_first_close) noexcept
 
static result< file_handletemp_inode (const path_handle &dirh=path_discovery::storage_backed_temporary_files_directory(), mode _mode=mode::write, flag flags=flag::none) noexcept
 
@@ -1117,8 +1117,8 @@ For portability, you can only assume that barriers write order for a single hand - -

◆ mapped_temp_file()

+ +

◆ mapped_temp_file()

@@ -1160,7 +1160,7 @@ For portability, you can only assume that barriers write order for a single hand
- + @@ -1613,8 +1613,8 @@ For portability, you can only assume that barriers write order for a single hand - -

◆ temp_file()

+ +

◆ temp_file()

@@ -1650,7 +1650,7 @@ For portability, you can only assume that barriers write order for a single hand
- + @@ -1824,7 +1824,7 @@ For portability, you can only assume that barriers write order for a single hand
flag flags = flag::unlink_on_close flags = flag::unlink_on_first_close 
flag flags = flag::unlink_on_close flags = flag::unlink_on_first_close 
-

Unlinks the current path of this open handle, causing its entry to immediately disappear from the filing system. On Windows unless flag::win_disable_unlink_emulation is set, this behaviour is simulated by renaming the file to something random and setting its delete-on-last-close flag. Note that Windows may prevent the renaming of a file in use by another process, if so it will NOT be renamed. After the next handle to that file closes, it will become permanently unopenable by anyone else until the last handle is closed, whereupon the entry will be eventually removed by the operating system.

+

Unlinks the current path of this open handle, causing its entry to immediately disappear from the filing system. On Windows before Windows 10 1709 unless flag::win_disable_unlink_emulation is set, this behaviour is simulated by renaming the file to something random and setting its delete-on-last-close flag. Note that Windows may prevent the renaming of a file in use by another process, if so it will NOT be renamed. After the next handle to that file closes, it will become permanently unopenable by anyone else until the last handle is closed, whereupon the entry will be eventually removed by the operating system.

Warning
Some operating systems provide a race free syscall for unlinking an open handle (Windows). On all other operating systems this call is racy and can result in the wrong file entry being unlinked. Note that unless flag::disable_safety_unlinks is set, this implementation opens a path_handle to the containing directory first, then checks that the item about to be unlinked has the same inode as the open file handle. It will retry this matching until success until the deadline given. This should prevent most unmalicious accidental loss of data.
Parameters
diff --git a/file__handle_8hpp.html b/file__handle_8hpp.html index a9f2bbc2..ff884b4f 100644 --- a/file__handle_8hpp.html +++ b/file__handle_8hpp.html @@ -120,8 +120,8 @@ void  - - + + diff --git a/file__handle_8hpp.js b/file__handle_8hpp.js index 2057fc73..a595d021 100644 --- a/file__handle_8hpp.js +++ b/file__handle_8hpp.js @@ -7,7 +7,7 @@ var file__handle_8hpp = [ "maximum_extent", "file__handle_8hpp.html#a8fbd7f7cc6449428269e22f9765b1d8d", null ], [ "random_file", "file__handle_8hpp.html#aac0b7d76c4298e86cef49c832c93edec", null ], [ "swap", "file__handle_8hpp.html#a579d619e4d73e584fdd41e34761afa67", null ], - [ "temp_file", "file__handle_8hpp.html#aa14b24c8bc330dd8e472f42676ba03d6", null ], + [ "temp_file", "file__handle_8hpp.html#a0c9b8bf8b5ad7b60fefd904d76a60c5b", null ], [ "temp_inode", "file__handle_8hpp.html#aca98b0cb43a2d925bb65e055b07b4a08", null ], [ "truncate", "file__handle_8hpp.html#a84d22c966fcabe50de30ad8cf26c7241", null ], [ "zero", "file__handle_8hpp.html#ae412aa7c9e37601d1814e75d09795185", null ] diff --git a/functions_a.html b/functions_a.html index 7ad1d4fc..941c30f9 100644 --- a/functions_a.html +++ b/functions_a.html @@ -130,7 +130,7 @@ $(document).ready(function(){initNavTree('functions_a.html','');}); : afio_v2_xxx::async_file_handle
  • async_temp_file() -: afio_v2_xxx::async_file_handle +: afio_v2_xxx::async_file_handle
  • async_temp_inode() : afio_v2_xxx::async_file_handle diff --git a/functions_eval.html b/functions_eval.html index 75354c46..dd7df18f 100644 --- a/functions_eval.html +++ b/functions_eval.html @@ -221,8 +221,8 @@ $(document).ready(function(){initNavTree('functions_eval.html','');});

    - u -

    diff --git a/functions_func_a.html b/functions_func_a.html index 70a9855d..9a546955 100644 --- a/functions_func_a.html +++ b/functions_func_a.html @@ -115,7 +115,7 @@ $(document).ready(function(){initNavTree('functions_func_a.html','');}); : afio_v2_xxx::async_file_handle
  • async_temp_file() -: afio_v2_xxx::async_file_handle +: afio_v2_xxx::async_file_handle
  • async_temp_inode() : afio_v2_xxx::async_file_handle diff --git a/functions_func_m.html b/functions_func_m.html index 9fed96aa..8f4ab407 100644 --- a/functions_func_m.html +++ b/functions_func_m.html @@ -103,7 +103,7 @@ $(document).ready(function(){initNavTree('functions_func_m.html','');}); : afio_v2_xxx::algorithm::mapped_span< T >
  • mapped_temp_file() -: afio_v2_xxx::mapped_file_handle +: afio_v2_xxx::mapped_file_handle
  • mapped_temp_inode() : afio_v2_xxx::mapped_file_handle diff --git a/functions_func_t.html b/functions_func_t.html index 78da4e08..739f09f0 100644 --- a/functions_func_t.html +++ b/functions_func_t.html @@ -87,7 +87,7 @@ $(document).ready(function(){initNavTree('functions_func_t.html','');}); : afio_v2_xxx::directory_handle
  • temp_file() -: afio_v2_xxx::file_handle +: afio_v2_xxx::file_handle
  • temp_inode() : afio_v2_xxx::file_handle diff --git a/functions_m.html b/functions_m.html index 81515ed7..00948baa 100644 --- a/functions_m.html +++ b/functions_m.html @@ -103,7 +103,7 @@ $(document).ready(function(){initNavTree('functions_m.html','');}); : afio_v2_xxx::algorithm::mapped_span< T >
  • mapped_temp_file() -: afio_v2_xxx::mapped_file_handle +: afio_v2_xxx::mapped_file_handle
  • mapped_temp_inode() : afio_v2_xxx::mapped_file_handle diff --git a/functions_t.html b/functions_t.html index d6a0b257..491a9f21 100644 --- a/functions_t.html +++ b/functions_t.html @@ -87,7 +87,7 @@ $(document).ready(function(){initNavTree('functions_t.html','');}); : afio_v2_xxx::directory_handle
  • temp_file() -: afio_v2_xxx::file_handle +: afio_v2_xxx::file_handle
  • temp_inode() : afio_v2_xxx::file_handle diff --git a/functions_u.html b/functions_u.html index e18c65e3..21748be6 100644 --- a/functions_u.html +++ b/functions_u.html @@ -95,8 +95,8 @@ $(document).ready(function(){initNavTree('functions_u.html','');});
  • unlink() : afio_v2_xxx::fs_handle
  • -
  • unlink_on_close -: afio_v2_xxx::handle::flag_base +
  • unlink_on_first_close +: afio_v2_xxx::handle::flag_base
  • unlock() : afio_v2_xxx::algorithm::shared_fs_mutex::atomic_append diff --git a/mapped__file__handle_8hpp.html b/mapped__file__handle_8hpp.html index add119b6..8ffc8b5e 100644 --- a/mapped__file__handle_8hpp.html +++ b/mapped__file__handle_8hpp.html @@ -121,8 +121,8 @@ void 
  • - - + +
     
    result< file_handle > afio_v2_xxx::random_file (const path_handle &dirpath, file_handle::mode _mode=file_handle::mode::write, file_handle::caching _caching=file_handle::caching::temporary, file_handle::flag flags=file_handle::flag::none) noexcept
     
    result< file_handle > afio_v2_xxx::temp_file (file_handle::path_view_type name=file_handle::path_view_type(), file_handle::mode _mode=file_handle::mode::write, file_handle::creation _creation=file_handle::creation::if_needed, file_handle::caching _caching=file_handle::caching::temporary, file_handle::flag flags=file_handle::flag::unlink_on_close) noexcept
     
    result< file_handle > afio_v2_xxx::temp_file (file_handle::path_view_type name=file_handle::path_view_type(), file_handle::mode _mode=file_handle::mode::write, file_handle::creation _creation=file_handle::creation::if_needed, file_handle::caching _caching=file_handle::caching::temporary, file_handle::flag flags=file_handle::flag::unlink_on_first_close) noexcept
     
    result< file_handle > afio_v2_xxx::temp_inode (const path_handle &dirh=path_discovery::storage_backed_temporary_files_directory(), file_handle::mode _mode=file_handle::mode::write, file_handle::flag flags=file_handle::flag::none) noexcept
     
    result< file_handle::extent_type > afio_v2_xxx::maximum_extent (const file_handle &self) noexcept
     
    result< mapped_file_handle > afio_v2_xxx::mapped_random_file (mapped_file_handle::size_type reservation, const path_handle &dirpath, mapped_file_handle::mode _mode=mapped_file_handle::mode::write, mapped_file_handle::caching _caching=mapped_file_handle::caching::temporary, mapped_file_handle::flag flags=mapped_file_handle::flag::none) noexcept
     
    result< mapped_file_handle > afio_v2_xxx::mapped_temp_file (mapped_file_handle::size_type reservation, mapped_file_handle::path_view_type name=mapped_file_handle::path_view_type(), mapped_file_handle::mode _mode=mapped_file_handle::mode::write, mapped_file_handle::creation _creation=mapped_file_handle::creation::if_needed, mapped_file_handle::caching _caching=mapped_file_handle::caching::temporary, mapped_file_handle::flag flags=mapped_file_handle::flag::unlink_on_close) noexcept
     
    result< mapped_file_handle > afio_v2_xxx::mapped_temp_file (mapped_file_handle::size_type reservation, mapped_file_handle::path_view_type name=mapped_file_handle::path_view_type(), mapped_file_handle::mode _mode=mapped_file_handle::mode::write, mapped_file_handle::creation _creation=mapped_file_handle::creation::if_needed, mapped_file_handle::caching _caching=mapped_file_handle::caching::temporary, mapped_file_handle::flag flags=mapped_file_handle::flag::unlink_on_first_close) noexcept
     
    result< mapped_file_handle > afio_v2_xxx::mapped_temp_inode (const path_handle &dir=path_discovery::storage_backed_temporary_files_directory(), mapped_file_handle::mode _mode=mapped_file_handle::mode::write, mapped_file_handle::flag flags=mapped_file_handle::flag::none) noexcept
     
    diff --git a/mapped__file__handle_8hpp.js b/mapped__file__handle_8hpp.js index bbcd22cd..38daa8d2 100644 --- a/mapped__file__handle_8hpp.js +++ b/mapped__file__handle_8hpp.js @@ -6,7 +6,7 @@ var mapped__file__handle_8hpp = [ "mapped_file", "mapped__file__handle_8hpp.html#abe51642ffc028c8f8b030944263b4a85", null ], [ "mapped_file", "mapped__file__handle_8hpp.html#a2c44844c18f66950187cb57292d7a676", null ], [ "mapped_random_file", "mapped__file__handle_8hpp.html#ac9be648f691d72c9cac6295ea7b3f9c8", null ], - [ "mapped_temp_file", "mapped__file__handle_8hpp.html#ab175b3720445c24cd43e3b7d88c6bbc9", null ], + [ "mapped_temp_file", "mapped__file__handle_8hpp.html#a854bf340650b26894c1f2ae2a6c4c5ab", null ], [ "mapped_temp_inode", "mapped__file__handle_8hpp.html#ac021261f7a8696b0f4cbdcfacef1e88a", null ], [ "swap", "mapped__file__handle_8hpp.html#aab2c5252a292132ac51a092ab6560b39", null ] ]; \ No newline at end of file diff --git a/namespaceafio__v2__xxx.html b/namespaceafio__v2__xxx.html index cf0b5f0d..fe16cffc 100644 --- a/namespaceafio__v2__xxx.html +++ b/namespaceafio__v2__xxx.html @@ -224,8 +224,8 @@ void   result< async_file_handleasync_random_file (io_service &service, const path_handle &dirpath, async_file_handle::mode _mode=async_file_handle::mode::write, async_file_handle::caching _caching=async_file_handle::caching::only_metadata, async_file_handle::flag flags=async_file_handle::flag::none) noexcept   -result< async_file_handleasync_temp_file (io_service &service, async_file_handle::path_view_type name=async_file_handle::path_view_type(), async_file_handle::mode _mode=async_file_handle::mode::write, async_file_handle::creation _creation=async_file_handle::creation::if_needed, async_file_handle::caching _caching=async_file_handle::caching::only_metadata, async_file_handle::flag flags=async_file_handle::flag::unlink_on_close) noexcept -  +result< async_file_handleasync_temp_file (io_service &service, async_file_handle::path_view_type name=async_file_handle::path_view_type(), async_file_handle::mode _mode=async_file_handle::mode::write, async_file_handle::creation _creation=async_file_handle::creation::if_needed, async_file_handle::caching _caching=async_file_handle::caching::only_metadata, async_file_handle::flag flags=async_file_handle::flag::unlink_on_first_close) noexcept +  result< async_file_handleasync_temp_inode (io_service &service, const path_handle &dir=path_discovery::storage_backed_temporary_files_directory(), async_file_handle::mode _mode=async_file_handle::mode::write, async_file_handle::flag flags=async_file_handle::flag::none) noexcept   @@ -312,8 +312,8 @@ void   result< file_handlerandom_file (const path_handle &dirpath, file_handle::mode _mode=file_handle::mode::write, file_handle::caching _caching=file_handle::caching::temporary, file_handle::flag flags=file_handle::flag::none) noexcept   -result< file_handletemp_file (file_handle::path_view_type name=file_handle::path_view_type(), file_handle::mode _mode=file_handle::mode::write, file_handle::creation _creation=file_handle::creation::if_needed, file_handle::caching _caching=file_handle::caching::temporary, file_handle::flag flags=file_handle::flag::unlink_on_close) noexcept -  +result< file_handletemp_file (file_handle::path_view_type name=file_handle::path_view_type(), file_handle::mode _mode=file_handle::mode::write, file_handle::creation _creation=file_handle::creation::if_needed, file_handle::caching _caching=file_handle::caching::temporary, file_handle::flag flags=file_handle::flag::unlink_on_first_close) noexcept +  result< file_handletemp_inode (const path_handle &dirh=path_discovery::storage_backed_temporary_files_directory(), file_handle::mode _mode=file_handle::mode::write, file_handle::flag flags=file_handle::flag::none) noexcept   result< file_handle::extent_type > maximum_extent (const file_handle &self) noexcept @@ -417,8 +417,8 @@ void   result< mapped_file_handlemapped_random_file (mapped_file_handle::size_type reservation, const path_handle &dirpath, mapped_file_handle::mode _mode=mapped_file_handle::mode::write, mapped_file_handle::caching _caching=mapped_file_handle::caching::temporary, mapped_file_handle::flag flags=mapped_file_handle::flag::none) noexcept   -result< mapped_file_handlemapped_temp_file (mapped_file_handle::size_type reservation, mapped_file_handle::path_view_type name=mapped_file_handle::path_view_type(), mapped_file_handle::mode _mode=mapped_file_handle::mode::write, mapped_file_handle::creation _creation=mapped_file_handle::creation::if_needed, mapped_file_handle::caching _caching=mapped_file_handle::caching::temporary, mapped_file_handle::flag flags=mapped_file_handle::flag::unlink_on_close) noexcept -  +result< mapped_file_handlemapped_temp_file (mapped_file_handle::size_type reservation, mapped_file_handle::path_view_type name=mapped_file_handle::path_view_type(), mapped_file_handle::mode _mode=mapped_file_handle::mode::write, mapped_file_handle::creation _creation=mapped_file_handle::creation::if_needed, mapped_file_handle::caching _caching=mapped_file_handle::caching::temporary, mapped_file_handle::flag flags=mapped_file_handle::flag::unlink_on_first_close) noexcept +  result< mapped_file_handlemapped_temp_inode (const path_handle &dir=path_discovery::storage_backed_temporary_files_directory(), mapped_file_handle::mode _mode=mapped_file_handle::mode::write, mapped_file_handle::flag flags=mapped_file_handle::flag::none) noexcept   result< path_handlepath (const path_handle &base, path_handle::path_view_type path) noexcept @@ -732,8 +732,8 @@ template<class CompletionRoutine >
    734  {}) noexcept
    735 {
    736  return self.async_read(std::forward<decltype(reqs)>(reqs), std::forward<decltype(completion)>(completion), std::forward<decltype(mem)>(mem));
    737 }
    - -

    ◆ async_temp_file()

    + +

    ◆ async_temp_file()

    @@ -775,7 +775,7 @@ template<class CompletionRoutine >
    async_file_handle::flag  - flags = async_file_handle::flag::unlink_on_close  + flags = async_file_handle::flag::unlink_on_first_close  @@ -792,7 +792,7 @@ template<class CompletionRoutine >

    Create an async file handle creating the named file on some path which the OS declares to be suitable for temporary files. Most OSs are very lazy about flushing changes made to these temporary files. Note the default flags are to have the newly created file deleted on first handle close. Note also that an empty name is equivalent to calling async_random_file(path_discovery::storage_backed_temporary_files_directory()) and the creation parameter is ignored.

    Note
    If the temporary file you are creating is not going to have its path sent to another process for usage, this is the WRONG function to use. Use temp_inode() instead, it is far more secure.
    Errors returnable
    Any of the values POSIX open() or CreateFile() can return.
    -
    670 {
    671  return async_file_handle::async_temp_file(std::forward<decltype(service)>(service), std::forward<decltype(name)>(name), std::forward<decltype(_mode)>(_mode), std::forward<decltype(_creation)>(_creation), std::forward<decltype(_caching)>(_caching), std::forward<decltype(flags)>(flags));
    672 }
    result< async_file_handle > async_temp_file(io_service &service, async_file_handle::path_view_type name=async_file_handle::path_view_type(), async_file_handle::mode _mode=async_file_handle::mode::write, async_file_handle::creation _creation=async_file_handle::creation::if_needed, async_file_handle::caching _caching=async_file_handle::caching::only_metadata, async_file_handle::flag flags=async_file_handle::flag::unlink_on_close) noexcept
    Definition: async_file_handle.hpp:668
    +
    670 {
    671  return async_file_handle::async_temp_file(std::forward<decltype(service)>(service), std::forward<decltype(name)>(name), std::forward<decltype(_mode)>(_mode), std::forward<decltype(_creation)>(_creation), std::forward<decltype(_caching)>(_caching), std::forward<decltype(flags)>(flags));
    672 }
    result< async_file_handle > async_temp_file(io_service &service, async_file_handle::path_view_type name=async_file_handle::path_view_type(), async_file_handle::mode _mode=async_file_handle::mode::write, async_file_handle::creation _creation=async_file_handle::creation::if_needed, async_file_handle::caching _caching=async_file_handle::caching::only_metadata, async_file_handle::flag flags=async_file_handle::flag::unlink_on_first_close) noexcept
    Definition: async_file_handle.hpp:668
    @@ -1732,8 +1732,8 @@ For portability, you can only assume that barriers write order for a single hand - -

    ◆ mapped_temp_file()

    + +

    ◆ mapped_temp_file()

    @@ -1775,7 +1775,7 @@ For portability, you can only assume that barriers write order for a single hand mapped_file_handle::flag  - flags = mapped_file_handle::flag::unlink_on_close  + flags = mapped_file_handle::flag::unlink_on_first_close  @@ -1792,7 +1792,7 @@ For portability, you can only assume that barriers write order for a single hand

    Create a mapped file handle creating the named file on some path which the OS declares to be suitable for temporary files. Most OSs are very lazy about flushing changes made to these temporary files. Note the default flags are to have the newly created file deleted on first handle close. Note also that an empty name is equivalent to calling mapped_random_file(path_discovery::storage_backed_temporary_files_directory()) and the creation parameter is ignored.

    Note
    If the temporary file you are creating is not going to have its path sent to another process for usage, this is the WRONG function to use. Use temp_inode() instead, it is far more secure.
    Errors returnable
    Any of the values POSIX open() or CreateFile() can return.
    -
    479 {
    480  return mapped_file_handle::mapped_temp_file(std::forward<decltype(reservation)>(reservation), std::forward<decltype(name)>(name), std::forward<decltype(_mode)>(_mode), std::forward<decltype(_creation)>(_creation), std::forward<decltype(_caching)>(_caching), std::forward<decltype(flags)>(flags));
    481 }
    result< mapped_file_handle > mapped_temp_file(mapped_file_handle::size_type reservation, mapped_file_handle::path_view_type name=mapped_file_handle::path_view_type(), mapped_file_handle::mode _mode=mapped_file_handle::mode::write, mapped_file_handle::creation _creation=mapped_file_handle::creation::if_needed, mapped_file_handle::caching _caching=mapped_file_handle::caching::temporary, mapped_file_handle::flag flags=mapped_file_handle::flag::unlink_on_close) noexcept
    Definition: mapped_file_handle.hpp:477
    +
    479 {
    480  return mapped_file_handle::mapped_temp_file(std::forward<decltype(reservation)>(reservation), std::forward<decltype(name)>(name), std::forward<decltype(_mode)>(_mode), std::forward<decltype(_creation)>(_creation), std::forward<decltype(_caching)>(_caching), std::forward<decltype(flags)>(flags));
    481 }
    result< mapped_file_handle > mapped_temp_file(mapped_file_handle::size_type reservation, mapped_file_handle::path_view_type name=mapped_file_handle::path_view_type(), mapped_file_handle::mode _mode=mapped_file_handle::mode::write, mapped_file_handle::creation _creation=mapped_file_handle::creation::if_needed, mapped_file_handle::caching _caching=mapped_file_handle::caching::temporary, mapped_file_handle::flag flags=mapped_file_handle::flag::unlink_on_first_close) noexcept
    Definition: mapped_file_handle.hpp:477
    @@ -2480,8 +2480,8 @@ For portability, you can only assume that barriers write order for a single hand
    - -

    ◆ temp_file()

    + +

    ◆ temp_file()

    @@ -2517,7 +2517,7 @@ For portability, you can only assume that barriers write order for a single hand file_handle::flag  - flags = file_handle::flag::unlink_on_close  + flags = file_handle::flag::unlink_on_first_close  @@ -2534,7 +2534,7 @@ For portability, you can only assume that barriers write order for a single hand

    Create a file handle creating the named file on some path which the OS declares to be suitable for temporary files. Most OSs are very lazy about flushing changes made to these temporary files. Note the default flags are to have the newly created file deleted on first handle close. Note also that an empty name is equivalent to calling random_file(path_discovery::storage_backed_temporary_files_directory()) and the creation parameter is ignored.

    Note
    If the temporary file you are creating is not going to have its path sent to another process for usage, this is the WRONG function to use. Use temp_inode() instead, it is far more secure.
    Errors returnable
    Any of the values POSIX open() or CreateFile() can return.
    -
    344 {
    345  return file_handle::temp_file(std::forward<decltype(name)>(name), std::forward<decltype(_mode)>(_mode), std::forward<decltype(_creation)>(_creation), std::forward<decltype(_caching)>(_caching), std::forward<decltype(flags)>(flags));
    346 }
    result< file_handle > temp_file(file_handle::path_view_type name=file_handle::path_view_type(), file_handle::mode _mode=file_handle::mode::write, file_handle::creation _creation=file_handle::creation::if_needed, file_handle::caching _caching=file_handle::caching::temporary, file_handle::flag flags=file_handle::flag::unlink_on_close) noexcept
    Definition: file_handle.hpp:342
    +
    344 {
    345  return file_handle::temp_file(std::forward<decltype(name)>(name), std::forward<decltype(_mode)>(_mode), std::forward<decltype(_creation)>(_creation), std::forward<decltype(_caching)>(_caching), std::forward<decltype(flags)>(flags));
    346 }
    result< file_handle > temp_file(file_handle::path_view_type name=file_handle::path_view_type(), file_handle::mode _mode=file_handle::mode::write, file_handle::creation _creation=file_handle::creation::if_needed, file_handle::caching _caching=file_handle::caching::temporary, file_handle::flag flags=file_handle::flag::unlink_on_first_close) noexcept
    Definition: file_handle.hpp:342
    diff --git a/namespacemembers.html b/namespacemembers.html index c1c65b48..4cba0fef 100644 --- a/namespacemembers.html +++ b/namespacemembers.html @@ -99,7 +99,7 @@ $(document).ready(function(){initNavTree('namespacemembers.html','');}); : afio_v2_xxx
  • async_temp_file() -: afio_v2_xxx +: afio_v2_xxx
  • async_temp_inode() : afio_v2_xxx @@ -203,7 +203,7 @@ $(document).ready(function(){initNavTree('namespacemembers.html','');}); : afio_v2_xxx
  • mapped_temp_file() -: afio_v2_xxx +: afio_v2_xxx
  • mapped_temp_inode() : afio_v2_xxx @@ -314,7 +314,7 @@ $(document).ready(function(){initNavTree('namespacemembers.html','');}); : afio_v2_xxx
  • temp_file() -: afio_v2_xxx +: afio_v2_xxx
  • temp_inode() : afio_v2_xxx diff --git a/namespacemembers_func.html b/namespacemembers_func.html index 919faf27..930f3418 100644 --- a/namespacemembers_func.html +++ b/namespacemembers_func.html @@ -99,7 +99,7 @@ $(document).ready(function(){initNavTree('namespacemembers_func.html','');}); : afio_v2_xxx
  • async_temp_file() -: afio_v2_xxx +: afio_v2_xxx
  • async_temp_inode() : afio_v2_xxx @@ -200,7 +200,7 @@ $(document).ready(function(){initNavTree('namespacemembers_func.html','');}); : afio_v2_xxx
  • mapped_temp_file() -: afio_v2_xxx +: afio_v2_xxx
  • mapped_temp_inode() : afio_v2_xxx @@ -308,7 +308,7 @@ $(document).ready(function(){initNavTree('namespacemembers_func.html','');}); : afio_v2_xxx
  • temp_file() -: afio_v2_xxx +: afio_v2_xxx
  • temp_inode() : afio_v2_xxx diff --git a/navtreeindex0.js b/navtreeindex0.js index 778d7929..e276fe89 100644 --- a/navtreeindex0.js +++ b/navtreeindex0.js @@ -8,7 +8,6 @@ var NAVTREEINDEX0 = "annotated.html":[3,0], "async__file__handle_8hpp.html":[4,0,0,0,0,2], "async__file__handle_8hpp.html#a0891bedb63147526aba998b0a2f18132":[4,0,0,0,0,2,9], -"async__file__handle_8hpp.html#a0b751376f48a4fd14cb90cce03b2b491":[4,0,0,0,0,2,10], "async__file__handle_8hpp.html#a0ff925d5c5434bcec35b2167d87d5c55":[4,0,0,0,0,2,13], "async__file__handle_8hpp.html#a1dc6d0f4535e760af697884e2e809595":[4,0,0,0,0,2,4], "async__file__handle_8hpp.html#a37590ba383783ccfca30404318eb1114":[4,0,0,0,0,2,14], @@ -18,6 +17,7 @@ var NAVTREEINDEX0 = "async__file__handle_8hpp.html#a5eb846433fec3c9c80336ff686c2527e":[4,0,0,0,0,2,11], "async__file__handle_8hpp.html#a6e6ab37dfca4a975e6d04696948c0728":[4,0,0,0,0,2,17], "async__file__handle_8hpp.html#ac6be3e0ba22cceed22dbe455c91219dd":[4,0,0,0,0,2,15], +"async__file__handle_8hpp.html#ac754c36ee69e5352404b24e78c062923":[4,0,0,0,0,2,10], "async__file__handle_8hpp.html#acd740f5aef6ca339575e7497fa873d06":[4,0,0,0,0,2,16], "async__file__handle_8hpp.html#ada4ceee47a205446a171bb0570f53bc3":[4,0,0,0,0,2,5], "async__file__handle_8hpp.html#aded93df5ea7777b501811ec593ed5b55":[4,0,0,0,0,2,12], diff --git a/navtreeindex4.js b/navtreeindex4.js index bdb1acb8..8ff2f960 100644 --- a/navtreeindex4.js +++ b/navtreeindex4.js @@ -154,10 +154,10 @@ var NAVTREEINDEX4 = "directory__handle_8hpp.html#ac095df054e29fb086f9e7b96274c3c67":[4,0,0,0,0,5,11], "directory__handle_8hpp.html#adc0cc191e052bf33253287e0d1baeb4c":[4,0,0,0,0,5,8], "file__handle_8hpp.html":[4,0,0,0,0,6], +"file__handle_8hpp.html#a0c9b8bf8b5ad7b60fefd904d76a60c5b":[4,0,0,0,0,6,7], "file__handle_8hpp.html#a579d619e4d73e584fdd41e34761afa67":[4,0,0,0,0,6,6], "file__handle_8hpp.html#a84d22c966fcabe50de30ad8cf26c7241":[4,0,0,0,0,6,9], "file__handle_8hpp.html#a8fbd7f7cc6449428269e22f9765b1d8d":[4,0,0,0,0,6,4], -"file__handle_8hpp.html#aa14b24c8bc330dd8e472f42676ba03d6":[4,0,0,0,0,6,7], "file__handle_8hpp.html#aac0b7d76c4298e86cef49c832c93edec":[4,0,0,0,0,6,5], "file__handle_8hpp.html#ab92ca63383ef7fe58af4620570d12803":[4,0,0,0,0,6,3], "file__handle_8hpp.html#ac3c009153d916556b991d4a79c664fe9":[4,0,0,0,0,6,2], diff --git a/navtreeindex5.js b/navtreeindex5.js index 7e982f18..6c00c5b7 100644 --- a/navtreeindex5.js +++ b/navtreeindex5.js @@ -48,9 +48,9 @@ var NAVTREEINDEX5 = "map__handle_8hpp.html#afc6d4594196e16ac67b25d91e48d09ee":[4,0,0,0,0,11,8], "mapped__file__handle_8hpp.html":[4,0,0,0,0,12], "mapped__file__handle_8hpp.html#a2c44844c18f66950187cb57292d7a676":[4,0,0,0,0,12,4], +"mapped__file__handle_8hpp.html#a854bf340650b26894c1f2ae2a6c4c5ab":[4,0,0,0,0,12,6], "mapped__file__handle_8hpp.html#a8a3f597169756730e5f6436486fbd44b":[4,0,0,0,0,12,2], "mapped__file__handle_8hpp.html#aab2c5252a292132ac51a092ab6560b39":[4,0,0,0,0,12,8], -"mapped__file__handle_8hpp.html#ab175b3720445c24cd43e3b7d88c6bbc9":[4,0,0,0,0,12,6], "mapped__file__handle_8hpp.html#abe51642ffc028c8f8b030944263b4a85":[4,0,0,0,0,12,3], "mapped__file__handle_8hpp.html#ac021261f7a8696b0f4cbdcfacef1e88a":[4,0,0,0,0,12,7], "mapped__file__handle_8hpp.html#ac9be648f691d72c9cac6295ea7b3f9c8":[4,0,0,0,0,12,5], diff --git a/navtreeindex6.js b/navtreeindex6.js index 5f3ec015..195b9594 100644 --- a/navtreeindex6.js +++ b/navtreeindex6.js @@ -125,12 +125,12 @@ var NAVTREEINDEX6 = "structafio__v2__xxx_1_1handle_1_1flag__base.html#a51aaa32c78950cedbc1b7a61e1738d3ea476a57854e60d134c425521a18099df1":[3,0,0,21,0,0,6], "structafio__v2__xxx_1_1handle_1_1flag__base.html#a51aaa32c78950cedbc1b7a61e1738d3ea67eb5d8757f506595ca2d5c06d8389dc":[3,0,0,21,0,0,5], "structafio__v2__xxx_1_1handle_1_1flag__base.html#a51aaa32c78950cedbc1b7a61e1738d3ea802bd6921ae57e138c9c7eb8e06c2409":[3,0,0,21,0,0,10], +"structafio__v2__xxx_1_1handle_1_1flag__base.html#a51aaa32c78950cedbc1b7a61e1738d3ea853b2bbe98f345e300f9016003c12e41":[3,0,0,21,0,0,1], "structafio__v2__xxx_1_1handle_1_1flag__base.html#a51aaa32c78950cedbc1b7a61e1738d3ea99093d0cc4dd36e5f36f336b33a826ab":[3,0,0,21,0,0,8], "structafio__v2__xxx_1_1handle_1_1flag__base.html#a51aaa32c78950cedbc1b7a61e1738d3ea9a3ba39dc74f2998838df3fc58400ce4":[3,0,0,21,0,0,2], "structafio__v2__xxx_1_1handle_1_1flag__base.html#a51aaa32c78950cedbc1b7a61e1738d3eadc582374ac8ba5ca2d5dd81cc81258e9":[3,0,0,21,0,0,0], "structafio__v2__xxx_1_1handle_1_1flag__base.html#a51aaa32c78950cedbc1b7a61e1738d3eae1fcc9d8ed4b5c23601bea4dda367316":[3,0,0,21,0,0,9], "structafio__v2__xxx_1_1handle_1_1flag__base.html#a51aaa32c78950cedbc1b7a61e1738d3eae448a705e5dc826a89900353c2601db4":[3,0,0,21,0,0,7], -"structafio__v2__xxx_1_1handle_1_1flag__base.html#a51aaa32c78950cedbc1b7a61e1738d3eae4a6e7b4b6489cd3761d9606ec07f09c":[3,0,0,21,0,0,1], "structafio__v2__xxx_1_1handle_1_1flag__base.html#a51aaa32c78950cedbc1b7a61e1738d3eaebfe097a938adbdf4adcbf5f559259f5":[3,0,0,21,0,0,4], "structafio__v2__xxx_1_1io__handle_1_1buffer__type.html":[3,0,0,22,0], "structafio__v2__xxx_1_1io__handle_1_1buffer__type.html#a2d991122b5a706c69def8631e2897a1d":[3,0,0,22,0,0], diff --git a/navtreeindex8.js b/navtreeindex8.js index adccde19..4324553f 100644 --- a/navtreeindex8.js +++ b/navtreeindex8.js @@ -13,6 +13,6 @@ var NAVTREEINDEX8 = "version_8hpp.html#a5d898772f113c64c7fa9ecb267a85e79":[4,0,0,0,2,5], "version_8hpp.html#aa446d6d4b32123465e362629430ea1c2":[4,0,0,0,2,4], "version_8hpp.html#ab033775f211bacf115ee33e020eca664":[4,0,0,0,2,0], -"version_8hpp.html#ab767a104191b56793f1e63713f8aa696":[4,0,0,0,2,2], -"version_8hpp.html#ab767a104191b56793f1e63713f8aa696":[4,0,0,0,2,1] +"version_8hpp.html#ab767a104191b56793f1e63713f8aa696":[4,0,0,0,2,1], +"version_8hpp.html#ab767a104191b56793f1e63713f8aa696":[4,0,0,0,2,2] }; diff --git a/search/all_1.js b/search/all_1.js index 4164ac5f..a0026f91 100644 --- a/search/all_1.js +++ b/search/all_1.js @@ -49,7 +49,7 @@ var searchData= ['async_5ffile_5fhandle_2ehpp',['async_file_handle.hpp',['../async__file__handle_8hpp.html',1,'']]], ['async_5frandom_5ffile',['async_random_file',['../classafio__v2__xxx_1_1async__file__handle.html#a9630051f939a20fe9424133a579804b3',1,'afio_v2_xxx::async_file_handle::async_random_file()'],['../namespaceafio__v2__xxx.html#a40cd3a25b8d4a293a8864fe6eb585034',1,'afio_v2_xxx::async_random_file()']]], ['async_5fread',['async_read',['../classafio__v2__xxx_1_1async__file__handle.html#ab0a1e11a3d208319cc8fc8a9171ec33f',1,'afio_v2_xxx::async_file_handle::async_read()'],['../namespaceafio__v2__xxx.html#a0891bedb63147526aba998b0a2f18132',1,'afio_v2_xxx::async_read()']]], - ['async_5ftemp_5ffile',['async_temp_file',['../classafio__v2__xxx_1_1async__file__handle.html#ae6ccde1ff634c32da094b7f1b1143d55',1,'afio_v2_xxx::async_file_handle::async_temp_file()'],['../namespaceafio__v2__xxx.html#a0b751376f48a4fd14cb90cce03b2b491',1,'afio_v2_xxx::async_temp_file()']]], + ['async_5ftemp_5ffile',['async_temp_file',['../classafio__v2__xxx_1_1async__file__handle.html#a19f82764eb2ea71e7d988cc1cb05a6c8',1,'afio_v2_xxx::async_file_handle::async_temp_file()'],['../namespaceafio__v2__xxx.html#ac754c36ee69e5352404b24e78c062923',1,'afio_v2_xxx::async_temp_file()']]], ['async_5ftemp_5finode',['async_temp_inode',['../classafio__v2__xxx_1_1async__file__handle.html#a4e4fc1ee894e1f112cb4123a24c2289d',1,'afio_v2_xxx::async_file_handle::async_temp_inode()'],['../namespaceafio__v2__xxx.html#a5eb846433fec3c9c80336ff686c2527e',1,'afio_v2_xxx::async_temp_inode()']]], ['async_5fwrite',['async_write',['../classafio__v2__xxx_1_1async__file__handle.html#ac38c4f8c4be552471c9ae07f2e247ba1',1,'afio_v2_xxx::async_file_handle::async_write()'],['../namespaceafio__v2__xxx.html#aded93df5ea7777b501811ec593ed5b55',1,'afio_v2_xxx::async_write()']]], ['at',['at',['../structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#acef8a7f2e2863ad778645f0b6a894cbd',1,'afio_v2_xxx::algorithm::impl::trivial_vector_impl::at(size_type i)'],['../structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#a5bdfa73da671e5c65e67960baca1462d',1,'afio_v2_xxx::algorithm::impl::trivial_vector_impl::at(size_type i) const']]], diff --git a/search/all_12.js b/search/all_12.js index 775f364f..9779e84a 100644 --- a/search/all_12.js +++ b/search/all_12.js @@ -1,7 +1,7 @@ var searchData= [ ['temp_5fdirectory',['temp_directory',['../classafio__v2__xxx_1_1directory__handle.html#a87b6b5fd0537c0915f2f9a669bccfcfb',1,'afio_v2_xxx::directory_handle::temp_directory()'],['../namespaceafio__v2__xxx.html#ac095df054e29fb086f9e7b96274c3c67',1,'afio_v2_xxx::temp_directory()']]], - ['temp_5ffile',['temp_file',['../classafio__v2__xxx_1_1file__handle.html#a458c1a73a67e74e20e221e3507a11b11',1,'afio_v2_xxx::file_handle::temp_file()'],['../namespaceafio__v2__xxx.html#aa14b24c8bc330dd8e472f42676ba03d6',1,'afio_v2_xxx::temp_file()']]], + ['temp_5ffile',['temp_file',['../classafio__v2__xxx_1_1file__handle.html#aa13c8771299e6ba4b868f991b3d5c575',1,'afio_v2_xxx::file_handle::temp_file()'],['../namespaceafio__v2__xxx.html#a0c9b8bf8b5ad7b60fefd904d76a60c5b',1,'afio_v2_xxx::temp_file()']]], ['temp_5finode',['temp_inode',['../classafio__v2__xxx_1_1file__handle.html#ae7c763babcbc3c8bc253b1be95578894',1,'afio_v2_xxx::file_handle::temp_inode()'],['../namespaceafio__v2__xxx.html#aca98b0cb43a2d925bb65e055b07b4a08',1,'afio_v2_xxx::temp_inode()']]], ['temporary',['temporary',['../classafio__v2__xxx_1_1handle.html#a6f7e37c73271968271c2342023f58c9ead5197d93c063a2b1e22d1630a39b7aef',1,'afio_v2_xxx::handle']]], ['throw_5fas_5fexception',['throw_as_exception',['../structafio__v2__xxx_1_1error__info.html#a36e4d0783244c7a127b7f13e61323819',1,'afio_v2_xxx::error_info']]], diff --git a/search/all_13.js b/search/all_13.js index 8407e179..149ee20c 100644 --- a/search/all_13.js +++ b/search/all_13.js @@ -7,7 +7,7 @@ var searchData= ['unique_5fid_5ftype',['unique_id_type',['../classafio__v2__xxx_1_1fs__handle.html#a0344f48ef10fa2b94199d5566aedd879',1,'afio_v2_xxx::fs_handle']]], ['unknown',['unknown',['../structafio__v2__xxx_1_1path__discovery_1_1discovered__path.html#a1deccea0a3ad1c3a5a2688a1a3cc118caad921d60486366258809553a3db49a4a',1,'afio_v2_xxx::path_discovery::discovered_path']]], ['unlink',['unlink',['../classafio__v2__xxx_1_1fs__handle.html#a6860b9626adc4d8e6db3ebb92974c054',1,'afio_v2_xxx::fs_handle::unlink()'],['../namespaceafio__v2__xxx.html#abefe1503efb01ea89200b829bcd87713',1,'afio_v2_xxx::unlink()']]], - ['unlink_5fon_5fclose',['unlink_on_close',['../structafio__v2__xxx_1_1handle_1_1flag__base.html#a51aaa32c78950cedbc1b7a61e1738d3eae4a6e7b4b6489cd3761d9606ec07f09c',1,'afio_v2_xxx::handle::flag_base']]], + ['unlink_5fon_5ffirst_5fclose',['unlink_on_first_close',['../structafio__v2__xxx_1_1handle_1_1flag__base.html#a51aaa32c78950cedbc1b7a61e1738d3ea853b2bbe98f345e300f9016003c12e41',1,'afio_v2_xxx::handle::flag_base']]], ['unlock',['unlock',['../classafio__v2__xxx_1_1io__handle_1_1extent__guard.html#a8774c7f192061ccff6659f645d1e51fd',1,'afio_v2_xxx::io_handle::extent_guard::unlock()'],['../classafio__v2__xxx_1_1io__handle.html#a96b9da71ee7791fbaaa2470c936ec763',1,'afio_v2_xxx::io_handle::unlock()'],['../classafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1atomic__append.html#ad8a5572b95c538b21c387e0dc9ccc4b9',1,'afio_v2_xxx::algorithm::shared_fs_mutex::atomic_append::unlock()'],['../classafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex_1_1entities__guard.html#afe255ddbd7c8c80b1dfe29a0b8d856ee',1,'afio_v2_xxx::algorithm::shared_fs_mutex::shared_fs_mutex::entities_guard::unlock()'],['../classafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html#aa7ca87a0dc1181fc4c6c3b2a09bc67e3',1,'afio_v2_xxx::algorithm::shared_fs_mutex::shared_fs_mutex::unlock()'],['../classafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html#ade7f672a228670cb193cf05e96368ff4',1,'afio_v2_xxx::algorithm::shared_fs_mutex::byte_ranges::unlock()'],['../classafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1lock__files.html#a8b37ac390b47fd3ef61fe12b60a82755',1,'afio_v2_xxx::algorithm::shared_fs_mutex::lock_files::unlock()'],['../classafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#a49e8e7e6460f4ee1bafe8426384f2d40',1,'afio_v2_xxx::algorithm::shared_fs_mutex::memory_map::unlock()'],['../classafio__v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1safe__byte__ranges.html#aa553587bce8b59ae47ce739863f1f534',1,'afio_v2_xxx::algorithm::shared_fs_mutex::safe_byte_ranges::unlock()']]], ['update_5fmap',['update_map',['../classafio__v2__xxx_1_1map__handle.html#abaff8ae673c35e9bb150e3970dd205a5',1,'afio_v2_xxx::map_handle::update_map()'],['../classafio__v2__xxx_1_1mapped__file__handle.html#a297b1f81b6d2875164e46a266c3f1f8a',1,'afio_v2_xxx::mapped_file_handle::update_map()']]], ['using_5fkqueues',['using_kqueues',['../classafio__v2__xxx_1_1io__service.html#a692d937b87fa783803c5342f993fede1',1,'afio_v2_xxx::io_service']]], diff --git a/search/all_c.js b/search/all_c.js index 0cf429dd..b74cc89b 100644 --- a/search/all_c.js +++ b/search/all_c.js @@ -10,7 +10,7 @@ var searchData= ['mapped_5frandom_5ffile',['mapped_random_file',['../classafio__v2__xxx_1_1mapped__file__handle.html#a00875e717f4b2725bb58ecbb5310fc6f',1,'afio_v2_xxx::mapped_file_handle::mapped_random_file()'],['../namespaceafio__v2__xxx.html#ac9be648f691d72c9cac6295ea7b3f9c8',1,'afio_v2_xxx::mapped_random_file()']]], ['mapped_5fspan',['mapped_span',['../classafio__v2__xxx_1_1algorithm_1_1mapped__span.html',1,'afio_v2_xxx::algorithm::mapped_span< T >'],['../classafio__v2__xxx_1_1algorithm_1_1mapped__span.html#aa5b20642220613876d8be474003785e9',1,'afio_v2_xxx::algorithm::mapped_span::mapped_span()'],['../classafio__v2__xxx_1_1algorithm_1_1mapped__span.html#af6a43d3c0201079dac97d407ddb00aaa',1,'afio_v2_xxx::algorithm::mapped_span::mapped_span(size_type length, section_handle::flag _flag=section_handle::flag::readwrite)'],['../classafio__v2__xxx_1_1algorithm_1_1mapped__span.html#aca48ca2f9558c5d6f57e398016311fe8',1,'afio_v2_xxx::algorithm::mapped_span::mapped_span(section_handle &sh, size_type length=(size_type) -1, extent_type byteoffset=0, section_handle::flag _flag=section_handle::flag::readwrite)'],['../classafio__v2__xxx_1_1algorithm_1_1mapped__span.html#aba42e9fbb4a9f17ca78317060293b619',1,'afio_v2_xxx::algorithm::mapped_span::mapped_span(map_handle &mh, size_type length=(size_type) -1, extent_type byteoffset=0)'],['../classafio__v2__xxx_1_1algorithm_1_1mapped__span.html#a236f0978be161027886300e85bf5ae8d',1,'afio_v2_xxx::algorithm::mapped_span::mapped_span(mapped_file_handle &mfh, size_type length=(size_type) -1, extent_type byteoffset=0)']]], ['mapped_5fspan_2ehpp',['mapped_span.hpp',['../mapped__span_8hpp.html',1,'']]], - ['mapped_5ftemp_5ffile',['mapped_temp_file',['../classafio__v2__xxx_1_1mapped__file__handle.html#ae19c88791bd2e0bca0d22ec576687a83',1,'afio_v2_xxx::mapped_file_handle::mapped_temp_file()'],['../namespaceafio__v2__xxx.html#ab175b3720445c24cd43e3b7d88c6bbc9',1,'afio_v2_xxx::mapped_temp_file()']]], + ['mapped_5ftemp_5ffile',['mapped_temp_file',['../classafio__v2__xxx_1_1mapped__file__handle.html#a94553bf238967eccf70ca1236c90b0f2',1,'afio_v2_xxx::mapped_file_handle::mapped_temp_file()'],['../namespaceafio__v2__xxx.html#a854bf340650b26894c1f2ae2a6c4c5ab',1,'afio_v2_xxx::mapped_temp_file()']]], ['mapped_5ftemp_5finode',['mapped_temp_inode',['../classafio__v2__xxx_1_1mapped__file__handle.html#afb68c9671a7ffb40cef4b6db0000a1a5',1,'afio_v2_xxx::mapped_file_handle::mapped_temp_inode()'],['../namespaceafio__v2__xxx.html#ac021261f7a8696b0f4cbdcfacef1e88a',1,'afio_v2_xxx::mapped_temp_inode()']]], ['max_5fbuffers',['max_buffers',['../classafio__v2__xxx_1_1io__handle.html#a4d9cbbb7aae98704c6ad97de080c4210',1,'afio_v2_xxx::io_handle']]], ['max_5fsize',['max_size',['../structafio__v2__xxx_1_1storage__profile_1_1storage__profile.html#ab6b3c4513e47e2905c8e6fe1c831d742',1,'afio_v2_xxx::storage_profile::storage_profile::max_size()'],['../structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#a659754b0f9d7e2f3fa26921ebe48e7c0',1,'afio_v2_xxx::algorithm::impl::trivial_vector_impl::max_size()']]], diff --git a/search/enumvalues_10.js b/search/enumvalues_10.js index 3a23e72d..1e7afc47 100644 --- a/search/enumvalues_10.js +++ b/search/enumvalues_10.js @@ -1,5 +1,5 @@ var searchData= [ ['unknown',['unknown',['../structafio__v2__xxx_1_1path__discovery_1_1discovered__path.html#a1deccea0a3ad1c3a5a2688a1a3cc118caad921d60486366258809553a3db49a4a',1,'afio_v2_xxx::path_discovery::discovered_path']]], - ['unlink_5fon_5fclose',['unlink_on_close',['../structafio__v2__xxx_1_1handle_1_1flag__base.html#a51aaa32c78950cedbc1b7a61e1738d3eae4a6e7b4b6489cd3761d9606ec07f09c',1,'afio_v2_xxx::handle::flag_base']]] + ['unlink_5fon_5ffirst_5fclose',['unlink_on_first_close',['../structafio__v2__xxx_1_1handle_1_1flag__base.html#a51aaa32c78950cedbc1b7a61e1738d3ea853b2bbe98f345e300f9016003c12e41',1,'afio_v2_xxx::handle::flag_base']]] ]; diff --git a/search/functions_1.js b/search/functions_1.js index 5e340c59..b7133769 100644 --- a/search/functions_1.js +++ b/search/functions_1.js @@ -11,7 +11,7 @@ var searchData= ['async_5ffile_5fhandle',['async_file_handle',['../classafio__v2__xxx_1_1async__file__handle.html#a3bee6c9f35239b1dce1e6910ea7d3aa3',1,'afio_v2_xxx::async_file_handle::async_file_handle()'],['../classafio__v2__xxx_1_1async__file__handle.html#a59973a4ee6681fa999bfcc7a6ee2b8eb',1,'afio_v2_xxx::async_file_handle::async_file_handle(io_service *service, native_handle_type h, dev_t devid, ino_t inode, caching caching=caching::none, flag flags=flag::none)'],['../classafio__v2__xxx_1_1async__file__handle.html#a7226567016e1729200791fd0423b605e',1,'afio_v2_xxx::async_file_handle::async_file_handle(async_file_handle &&o) noexcept=default'],['../classafio__v2__xxx_1_1async__file__handle.html#a5db0b1b1f371a0c8a1f989442e516cd6',1,'afio_v2_xxx::async_file_handle::async_file_handle(const async_file_handle &)=delete'],['../classafio__v2__xxx_1_1async__file__handle.html#acd47b60681f19ee2d2906d27ee703611',1,'afio_v2_xxx::async_file_handle::async_file_handle(file_handle &&o) noexcept'],['../classafio__v2__xxx_1_1async__file__handle.html#a6e6df4068e197e12169be113f18d0799',1,'afio_v2_xxx::async_file_handle::async_file_handle(handle &&o, io_service *service, dev_t devid, ino_t inode) noexcept']]], ['async_5frandom_5ffile',['async_random_file',['../classafio__v2__xxx_1_1async__file__handle.html#a9630051f939a20fe9424133a579804b3',1,'afio_v2_xxx::async_file_handle::async_random_file()'],['../namespaceafio__v2__xxx.html#a40cd3a25b8d4a293a8864fe6eb585034',1,'afio_v2_xxx::async_random_file()']]], ['async_5fread',['async_read',['../classafio__v2__xxx_1_1async__file__handle.html#ab0a1e11a3d208319cc8fc8a9171ec33f',1,'afio_v2_xxx::async_file_handle::async_read()'],['../namespaceafio__v2__xxx.html#a0891bedb63147526aba998b0a2f18132',1,'afio_v2_xxx::async_read()']]], - ['async_5ftemp_5ffile',['async_temp_file',['../classafio__v2__xxx_1_1async__file__handle.html#ae6ccde1ff634c32da094b7f1b1143d55',1,'afio_v2_xxx::async_file_handle::async_temp_file()'],['../namespaceafio__v2__xxx.html#a0b751376f48a4fd14cb90cce03b2b491',1,'afio_v2_xxx::async_temp_file()']]], + ['async_5ftemp_5ffile',['async_temp_file',['../classafio__v2__xxx_1_1async__file__handle.html#a19f82764eb2ea71e7d988cc1cb05a6c8',1,'afio_v2_xxx::async_file_handle::async_temp_file()'],['../namespaceafio__v2__xxx.html#ac754c36ee69e5352404b24e78c062923',1,'afio_v2_xxx::async_temp_file()']]], ['async_5ftemp_5finode',['async_temp_inode',['../classafio__v2__xxx_1_1async__file__handle.html#a4e4fc1ee894e1f112cb4123a24c2289d',1,'afio_v2_xxx::async_file_handle::async_temp_inode()'],['../namespaceafio__v2__xxx.html#a5eb846433fec3c9c80336ff686c2527e',1,'afio_v2_xxx::async_temp_inode()']]], ['async_5fwrite',['async_write',['../classafio__v2__xxx_1_1async__file__handle.html#ac38c4f8c4be552471c9ae07f2e247ba1',1,'afio_v2_xxx::async_file_handle::async_write()'],['../namespaceafio__v2__xxx.html#aded93df5ea7777b501811ec593ed5b55',1,'afio_v2_xxx::async_write()']]], ['at',['at',['../structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#acef8a7f2e2863ad778645f0b6a894cbd',1,'afio_v2_xxx::algorithm::impl::trivial_vector_impl::at(size_type i)'],['../structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#a5bdfa73da671e5c65e67960baca1462d',1,'afio_v2_xxx::algorithm::impl::trivial_vector_impl::at(size_type i) const']]], diff --git a/search/functions_12.js b/search/functions_12.js index 6221aec0..b2594d0f 100644 --- a/search/functions_12.js +++ b/search/functions_12.js @@ -1,7 +1,7 @@ var searchData= [ ['temp_5fdirectory',['temp_directory',['../classafio__v2__xxx_1_1directory__handle.html#a87b6b5fd0537c0915f2f9a669bccfcfb',1,'afio_v2_xxx::directory_handle::temp_directory()'],['../namespaceafio__v2__xxx.html#ac095df054e29fb086f9e7b96274c3c67',1,'afio_v2_xxx::temp_directory()']]], - ['temp_5ffile',['temp_file',['../classafio__v2__xxx_1_1file__handle.html#a458c1a73a67e74e20e221e3507a11b11',1,'afio_v2_xxx::file_handle::temp_file()'],['../namespaceafio__v2__xxx.html#aa14b24c8bc330dd8e472f42676ba03d6',1,'afio_v2_xxx::temp_file()']]], + ['temp_5ffile',['temp_file',['../classafio__v2__xxx_1_1file__handle.html#aa13c8771299e6ba4b868f991b3d5c575',1,'afio_v2_xxx::file_handle::temp_file()'],['../namespaceafio__v2__xxx.html#a0c9b8bf8b5ad7b60fefd904d76a60c5b',1,'afio_v2_xxx::temp_file()']]], ['temp_5finode',['temp_inode',['../classafio__v2__xxx_1_1file__handle.html#ae7c763babcbc3c8bc253b1be95578894',1,'afio_v2_xxx::file_handle::temp_inode()'],['../namespaceafio__v2__xxx.html#aca98b0cb43a2d925bb65e055b07b4a08',1,'afio_v2_xxx::temp_inode()']]], ['throw_5fas_5fexception',['throw_as_exception',['../structafio__v2__xxx_1_1error__info.html#a36e4d0783244c7a127b7f13e61323819',1,'afio_v2_xxx::error_info']]], ['trivial_5fvector_5fimpl',['trivial_vector_impl',['../structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#a2fcddb13db6a7262a77a00b7d1b899c7',1,'afio_v2_xxx::algorithm::impl::trivial_vector_impl::trivial_vector_impl()'],['../structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#a234bfbe0a9a83a626a8d0f43e8bf0018',1,'afio_v2_xxx::algorithm::impl::trivial_vector_impl::trivial_vector_impl(size_type count, const value_type &v)'],['../structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#a00d983f0c3de3a3bb421e8441f712cd4',1,'afio_v2_xxx::algorithm::impl::trivial_vector_impl::trivial_vector_impl(InputIt first, InputIt last)'],['../structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#a3bfb3d77f36a6edc598017b331b99161',1,'afio_v2_xxx::algorithm::impl::trivial_vector_impl::trivial_vector_impl(const trivial_vector_impl &)=delete'],['../structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#a6e346e2add92504c3b41d07a50a7c3cb',1,'afio_v2_xxx::algorithm::impl::trivial_vector_impl::trivial_vector_impl(trivial_vector_impl &&o) noexcept'],['../structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#a42ee94fc5fc4d0d2b35e6fd666d4d6a1',1,'afio_v2_xxx::algorithm::impl::trivial_vector_impl::trivial_vector_impl(std::initializer_list< value_type > il)'],['../structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl_3_01true_00_01_t_01_4.html#a1b202a51d39ad33e2962e74fd265653d',1,'afio_v2_xxx::algorithm::impl::trivial_vector_impl< true, T >::trivial_vector_impl()']]], diff --git a/search/functions_c.js b/search/functions_c.js index e24264c6..f4f06914 100644 --- a/search/functions_c.js +++ b/search/functions_c.js @@ -7,7 +7,7 @@ var searchData= ['mapped_5ffile_5fhandle',['mapped_file_handle',['../classafio__v2__xxx_1_1mapped__file__handle.html#a4195d7c5e0a05273ea92d9913189456c',1,'afio_v2_xxx::mapped_file_handle::mapped_file_handle()'],['../classafio__v2__xxx_1_1mapped__file__handle.html#a1e5228aa6431b2770752e842bae5123b',1,'afio_v2_xxx::mapped_file_handle::mapped_file_handle(mapped_file_handle &&o) noexcept'],['../classafio__v2__xxx_1_1mapped__file__handle.html#aa28cc8821b7516afacf6a8d2e19cdf14',1,'afio_v2_xxx::mapped_file_handle::mapped_file_handle(const mapped_file_handle &)=delete'],['../classafio__v2__xxx_1_1mapped__file__handle.html#afd7469b8fa7aa8e0a3dd84cb42697621',1,'afio_v2_xxx::mapped_file_handle::mapped_file_handle(file_handle &&o) noexcept'],['../classafio__v2__xxx_1_1mapped__file__handle.html#a12b186b46922da667e4efdd9a63e061c',1,'afio_v2_xxx::mapped_file_handle::mapped_file_handle(file_handle &&o, size_type reservation) noexcept']]], ['mapped_5frandom_5ffile',['mapped_random_file',['../classafio__v2__xxx_1_1mapped__file__handle.html#a00875e717f4b2725bb58ecbb5310fc6f',1,'afio_v2_xxx::mapped_file_handle::mapped_random_file()'],['../namespaceafio__v2__xxx.html#ac9be648f691d72c9cac6295ea7b3f9c8',1,'afio_v2_xxx::mapped_random_file()']]], ['mapped_5fspan',['mapped_span',['../classafio__v2__xxx_1_1algorithm_1_1mapped__span.html#aa5b20642220613876d8be474003785e9',1,'afio_v2_xxx::algorithm::mapped_span::mapped_span()'],['../classafio__v2__xxx_1_1algorithm_1_1mapped__span.html#af6a43d3c0201079dac97d407ddb00aaa',1,'afio_v2_xxx::algorithm::mapped_span::mapped_span(size_type length, section_handle::flag _flag=section_handle::flag::readwrite)'],['../classafio__v2__xxx_1_1algorithm_1_1mapped__span.html#aca48ca2f9558c5d6f57e398016311fe8',1,'afio_v2_xxx::algorithm::mapped_span::mapped_span(section_handle &sh, size_type length=(size_type) -1, extent_type byteoffset=0, section_handle::flag _flag=section_handle::flag::readwrite)'],['../classafio__v2__xxx_1_1algorithm_1_1mapped__span.html#aba42e9fbb4a9f17ca78317060293b619',1,'afio_v2_xxx::algorithm::mapped_span::mapped_span(map_handle &mh, size_type length=(size_type) -1, extent_type byteoffset=0)'],['../classafio__v2__xxx_1_1algorithm_1_1mapped__span.html#a236f0978be161027886300e85bf5ae8d',1,'afio_v2_xxx::algorithm::mapped_span::mapped_span(mapped_file_handle &mfh, size_type length=(size_type) -1, extent_type byteoffset=0)']]], - ['mapped_5ftemp_5ffile',['mapped_temp_file',['../classafio__v2__xxx_1_1mapped__file__handle.html#ae19c88791bd2e0bca0d22ec576687a83',1,'afio_v2_xxx::mapped_file_handle::mapped_temp_file()'],['../namespaceafio__v2__xxx.html#ab175b3720445c24cd43e3b7d88c6bbc9',1,'afio_v2_xxx::mapped_temp_file()']]], + ['mapped_5ftemp_5ffile',['mapped_temp_file',['../classafio__v2__xxx_1_1mapped__file__handle.html#a94553bf238967eccf70ca1236c90b0f2',1,'afio_v2_xxx::mapped_file_handle::mapped_temp_file()'],['../namespaceafio__v2__xxx.html#a854bf340650b26894c1f2ae2a6c4c5ab',1,'afio_v2_xxx::mapped_temp_file()']]], ['mapped_5ftemp_5finode',['mapped_temp_inode',['../classafio__v2__xxx_1_1mapped__file__handle.html#afb68c9671a7ffb40cef4b6db0000a1a5',1,'afio_v2_xxx::mapped_file_handle::mapped_temp_inode()'],['../namespaceafio__v2__xxx.html#ac021261f7a8696b0f4cbdcfacef1e88a',1,'afio_v2_xxx::mapped_temp_inode()']]], ['max_5fbuffers',['max_buffers',['../classafio__v2__xxx_1_1io__handle.html#a4d9cbbb7aae98704c6ad97de080c4210',1,'afio_v2_xxx::io_handle']]], ['max_5fsize',['max_size',['../structafio__v2__xxx_1_1storage__profile_1_1storage__profile.html#ab6b3c4513e47e2905c8e6fe1c831d742',1,'afio_v2_xxx::storage_profile::storage_profile::max_size()'],['../structafio__v2__xxx_1_1algorithm_1_1impl_1_1trivial__vector__impl.html#a659754b0f9d7e2f3fa26921ebe48e7c0',1,'afio_v2_xxx::algorithm::impl::trivial_vector_impl::max_size()']]], diff --git a/structafio__v2__xxx_1_1handle_1_1flag__base-members.html b/structafio__v2__xxx_1_1handle_1_1flag__base-members.html index b46e879c..f15b1e14 100644 --- a/structafio__v2__xxx_1_1handle_1_1flag__base-members.html +++ b/structafio__v2__xxx_1_1handle_1_1flag__base-members.html @@ -96,7 +96,7 @@ $(document).ready(function(){initNavTree('structafio__v2__xxx_1_1handle_1_1flag_ maximum_prefetching enum valueafio_v2_xxx::handle::flag_base none enum valueafio_v2_xxx::handle::flag_base overlapped enum valueafio_v2_xxx::handle::flag_base - unlink_on_close enum valueafio_v2_xxx::handle::flag_base + unlink_on_first_close enum valueafio_v2_xxx::handle::flag_base win_disable_sparse_file_creation enum valueafio_v2_xxx::handle::flag_base win_disable_unlink_emulation enum valueafio_v2_xxx::handle::flag_base
  • diff --git a/structafio__v2__xxx_1_1handle_1_1flag__base.html b/structafio__v2__xxx_1_1handle_1_1flag__base.html index 0f05d2c2..e5a6863c 100644 --- a/structafio__v2__xxx_1_1handle_1_1flag__base.html +++ b/structafio__v2__xxx_1_1handle_1_1flag__base.html @@ -97,7 +97,7 @@ $(document).ready(function(){initNavTree('structafio__v2__xxx_1_1handle_1_1flag_ Public Types enum  enum_type : unsigned {
      none = 0, -unlink_on_close = 1U << 0U, +unlink_on_first_close = 1U << 0U, disable_safety_fsyncs = 1U << 2U, disable_safety_unlinks = 1U << 3U,
    @@ -130,7 +130,7 @@ Public Types - -
    Enumerator
    none 

    No flags.

    unlink_on_close 

    Unlinks the file on handle close. On POSIX, this simply unlinks whatever is pointed to by path() upon the call of close() if and only if the inode matches. On Windows, this opens the file handle with the FILE_FLAG_DELETE_ON_CLOSE modifier which substantially affects caching policy and causes the first handle close to make the file unavailable for anyone else to open with an errc::resource_unavailable_try_again error return. Because this is confusing, unless the win_disable_unlink_emulation flag is also specified, this POSIX behaviour is somewhat emulated by AFIO on Windows by renaming the file to a random name on close() causing it to appear to have been unlinked immediately.

    +
    unlink_on_first_close 

    Unlinks the file on handle close. On POSIX, this simply unlinks whatever is pointed to by path() upon the call of close() if and only if the inode matches. On Windows, if you are on Windows 10 1709 or later, exactly the same thing occurs. If on previous editions of Windows, the file entry does not disappears but becomes unavailable for anyone else to open with an errc::resource_unavailable_try_again error return. Because this is confusing, unless the win_disable_unlink_emulation flag is also specified, this POSIX behaviour is somewhat emulated by AFIO on older Windows by renaming the file to a random name on close() causing it to appear to have been unlinked immediately.

    disable_safety_fsyncs 

    Some kernel caching modes have unhelpfully inconsistent behaviours in getting your data onto storage, so by default unless this flag is specified AFIO adds extra fsyncs to the following operations for the caching modes specified below: truncation of file length either explicitly or during file open. closing of the handle either explicitly or in the destructor.

    Additionally on Linux only to prevent loss of file metadata: On the parent directory whenever a file might have been created. On the parent directory on file close.

    @@ -142,7 +142,7 @@ Public Types
    maximum_prefetching 

    Ask the OS to maximise prefetching of data, possibly prefetching the entire file into kernel cache. This can improve sequential i/o performance.

    win_disable_unlink_emulation 

    See the documentation for unlink_on_close

    +
    win_disable_unlink_emulation 

    See the documentation for unlink_on_first_close

    win_disable_sparse_file_creation 

    Microsoft Windows NTFS, having been created in the late 1980s, did not originally implement extents-based storage and thus could only represent sparse files via efficient compression of intermediate zeros. With NTFS v3.0 (Microsoft Windows 2000), a proper extents-based on-storage representation was added, thus allowing only 64Kb extent chunks written to be stored irrespective of whatever the maximum file extent was set to.

    For various historical reasons, extents-based storage is disabled by default in newly created files on NTFS, unlike in almost every other major filing system. You have to explicitly "opt in" to extents-based storage.

    @@ -155,14 +155,14 @@ Public Types
    anonymous_inode 

    This is an inode created with no representation on the filing system.

    -
    97  {
    98  none = 0, //!< No flags
    99  /*! Unlinks the file on handle close. On POSIX, this simply unlinks whatever is pointed
    100  to by `path()` upon the call of `close()` if and only if the inode matches. On Windows,
    101  this opens the file handle with the `FILE_FLAG_DELETE_ON_CLOSE` modifier which substantially
    102  affects caching policy and causes the \b first handle close to make the file unavailable for
    103  anyone else to open with an `errc::resource_unavailable_try_again` error return. Because this is confusing, unless the
    104  `win_disable_unlink_emulation` flag is also specified, this POSIX behaviour is
    105  somewhat emulated by AFIO on Windows by renaming the file to a random name on `close()`
    106  causing it to appear to have been unlinked immediately.
    107  */
    108  unlink_on_close = 1U << 0U,
    109 
    110  /*! Some kernel caching modes have unhelpfully inconsistent behaviours
    111  in getting your data onto storage, so by default unless this flag is
    112  specified AFIO adds extra fsyncs to the following operations for the
    113  caching modes specified below:
    114  * truncation of file length either explicitly or during file open.
    115  * closing of the handle either explicitly or in the destructor.
    116 
    117  Additionally on Linux only to prevent loss of file metadata:
    118  * On the parent directory whenever a file might have been created.
    119  * On the parent directory on file close.
    120 
    121  This only occurs for these kernel caching modes:
    122  * caching::none
    123  * caching::reads
    124  * caching::reads_and_metadata
    125  * caching::safety_fsyncs
    126  */
    127  disable_safety_fsyncs = 1U << 2U,
    128  /*! `file_handle::unlink()` could accidentally delete the wrong file if someone has
    129  renamed the open file handle since the time it was opened. To prevent this occuring,
    130  where the OS doesn't provide race free unlink-by-open-handle we compare the inode of
    131  the path we are about to unlink with that of the open handle before unlinking.
    132  \warning This does not prevent races where in between the time of checking the inode
    133  and executing the unlink a third party changes the item about to be unlinked. Only
    134  operating systems with a true race-free unlink syscall are race free.
    135  */
    136  disable_safety_unlinks = 1U << 3U,
    137  /*! Ask the OS to disable prefetching of data. This can improve random
    138  i/o performance.
    139  */
    140  disable_prefetching = 1U << 4U,
    141  /*! Ask the OS to maximise prefetching of data, possibly prefetching the entire file
    142  into kernel cache. This can improve sequential i/o performance.
    143  */
    144  maximum_prefetching = 1U << 5U,
    145 
    146  win_disable_unlink_emulation = 1U << 24U, //!< See the documentation for `unlink_on_close`
    147  /*! Microsoft Windows NTFS, having been created in the late 1980s, did not originally
    148  implement extents-based storage and thus could only represent sparse files via
    149  efficient compression of intermediate zeros. With NTFS v3.0 (Microsoft Windows 2000),
    150  a proper extents-based on-storage representation was added, thus allowing only 64Kb
    151  extent chunks written to be stored irrespective of whatever the maximum file extent
    152  was set to.
    153 
    154  For various historical reasons, extents-based storage is disabled by default in newly
    155  created files on NTFS, unlike in almost every other major filing system. You have to
    156  explicitly "opt in" to extents-based storage.
    157 
    158  As extents-based storage is nearly cost free on NTFS, AFIO by default opts in to
    159  extents-based storage for any empty file it creates. If you don't want this, you
    160  can specify this flag to prevent that happening.
    161  */
    163 
    164  // NOTE: IF UPDATING THIS UPDATE THE std::ostream PRINTER BELOW!!!
    165 
    166  overlapped = 1U << 28U, //!< On Windows, create any new handles with OVERLAPPED semantics
    167  byte_lock_insanity = 1U << 29U, //!< Using insane POSIX byte range locks
    168  anonymous_inode = 1U << 30U //!< This is an inode created with no representation on the filing system
    169  }
    See the documentation for unlink_on_close
    Definition: handle.hpp:146
    +
    97  {
    98  none = 0, //!< No flags
    99  /*! Unlinks the file on handle close. On POSIX, this simply unlinks whatever is pointed
    100  to by `path()` upon the call of `close()` if and only if the inode matches. On Windows,
    101  if you are on Windows 10 1709 or later, exactly the same thing occurs. If on previous
    102  editions of Windows, the file entry does not disappears but becomes unavailable for
    103  anyone else to open with an `errc::resource_unavailable_try_again` error return. Because this is confusing, unless the
    104  `win_disable_unlink_emulation` flag is also specified, this POSIX behaviour is
    105  somewhat emulated by AFIO on older Windows by renaming the file to a random name on `close()`
    106  causing it to appear to have been unlinked immediately.
    107  */
    108  unlink_on_first_close = 1U << 0U,
    109 
    110  /*! Some kernel caching modes have unhelpfully inconsistent behaviours
    111  in getting your data onto storage, so by default unless this flag is
    112  specified AFIO adds extra fsyncs to the following operations for the
    113  caching modes specified below:
    114  * truncation of file length either explicitly or during file open.
    115  * closing of the handle either explicitly or in the destructor.
    116 
    117  Additionally on Linux only to prevent loss of file metadata:
    118  * On the parent directory whenever a file might have been created.
    119  * On the parent directory on file close.
    120 
    121  This only occurs for these kernel caching modes:
    122  * caching::none
    123  * caching::reads
    124  * caching::reads_and_metadata
    125  * caching::safety_fsyncs
    126  */
    127  disable_safety_fsyncs = 1U << 2U,
    128  /*! `file_handle::unlink()` could accidentally delete the wrong file if someone has
    129  renamed the open file handle since the time it was opened. To prevent this occuring,
    130  where the OS doesn't provide race free unlink-by-open-handle we compare the inode of
    131  the path we are about to unlink with that of the open handle before unlinking.
    132  \warning This does not prevent races where in between the time of checking the inode
    133  and executing the unlink a third party changes the item about to be unlinked. Only
    134  operating systems with a true race-free unlink syscall are race free.
    135  */
    136  disable_safety_unlinks = 1U << 3U,
    137  /*! Ask the OS to disable prefetching of data. This can improve random
    138  i/o performance.
    139  */
    140  disable_prefetching = 1U << 4U,
    141  /*! Ask the OS to maximise prefetching of data, possibly prefetching the entire file
    142  into kernel cache. This can improve sequential i/o performance.
    143  */
    144  maximum_prefetching = 1U << 5U,
    145 
    146  win_disable_unlink_emulation = 1U << 24U, //!< See the documentation for `unlink_on_first_close`
    147  /*! Microsoft Windows NTFS, having been created in the late 1980s, did not originally
    148  implement extents-based storage and thus could only represent sparse files via
    149  efficient compression of intermediate zeros. With NTFS v3.0 (Microsoft Windows 2000),
    150  a proper extents-based on-storage representation was added, thus allowing only 64Kb
    151  extent chunks written to be stored irrespective of whatever the maximum file extent
    152  was set to.
    153 
    154  For various historical reasons, extents-based storage is disabled by default in newly
    155  created files on NTFS, unlike in almost every other major filing system. You have to
    156  explicitly "opt in" to extents-based storage.
    157 
    158  As extents-based storage is nearly cost free on NTFS, AFIO by default opts in to
    159  extents-based storage for any empty file it creates. If you don't want this, you
    160  can specify this flag to prevent that happening.
    161  */
    163 
    164  // NOTE: IF UPDATING THIS UPDATE THE std::ostream PRINTER BELOW!!!
    165 
    166  overlapped = 1U << 28U, //!< On Windows, create any new handles with OVERLAPPED semantics
    167  byte_lock_insanity = 1U << 29U, //!< Using insane POSIX byte range locks
    168  anonymous_inode = 1U << 30U //!< This is an inode created with no representation on the filing system
    169  }
    See the documentation for unlink_on_first_close
    Definition: handle.hpp:146
    This is an inode created with no representation on the filing system.
    Definition: handle.hpp:168
    On Windows, create any new handles with OVERLAPPED semantics.
    Definition: handle.hpp:166
    Using insane POSIX byte range locks.
    Definition: handle.hpp:167
    +
    No flags.
    Definition: handle.hpp:98
    - diff --git a/structafio__v2__xxx_1_1handle_1_1flag__base.js b/structafio__v2__xxx_1_1handle_1_1flag__base.js index 8bc4cf31..7bdd16f0 100644 --- a/structafio__v2__xxx_1_1handle_1_1flag__base.js +++ b/structafio__v2__xxx_1_1handle_1_1flag__base.js @@ -2,7 +2,7 @@ var structafio__v2__xxx_1_1handle_1_1flag__base = [ [ "enum_type", "structafio__v2__xxx_1_1handle_1_1flag__base.html#a51aaa32c78950cedbc1b7a61e1738d3e", [ [ "none", "structafio__v2__xxx_1_1handle_1_1flag__base.html#a51aaa32c78950cedbc1b7a61e1738d3eadc582374ac8ba5ca2d5dd81cc81258e9", null ], - [ "unlink_on_close", "structafio__v2__xxx_1_1handle_1_1flag__base.html#a51aaa32c78950cedbc1b7a61e1738d3eae4a6e7b4b6489cd3761d9606ec07f09c", null ], + [ "unlink_on_first_close", "structafio__v2__xxx_1_1handle_1_1flag__base.html#a51aaa32c78950cedbc1b7a61e1738d3ea853b2bbe98f345e300f9016003c12e41", null ], [ "disable_safety_fsyncs", "structafio__v2__xxx_1_1handle_1_1flag__base.html#a51aaa32c78950cedbc1b7a61e1738d3ea9a3ba39dc74f2998838df3fc58400ce4", null ], [ "disable_safety_unlinks", "structafio__v2__xxx_1_1handle_1_1flag__base.html#a51aaa32c78950cedbc1b7a61e1738d3ea09f03ed90a3b187555210e8a8d09f4a0", null ], [ "disable_prefetching", "structafio__v2__xxx_1_1handle_1_1flag__base.html#a51aaa32c78950cedbc1b7a61e1738d3eaebfe097a938adbdf4adcbf5f559259f5", null ], -- cgit v1.2.3