1#ifndef NEFORCE_CORE_FILE_FILE_MAPPER_HPP__
2#define NEFORCE_CORE_FILE_FILE_MAPPER_HPP__
14NEFORCE_BEGIN_NAMESPACE__
47#ifdef NEFORCE_PLATFORM_WINDOWS
65 file_access
access = file_access::READ;
74 file_access access_ = file_access::READ;
77#ifdef NEFORCE_PLATFORM_WINDOWS
176 NEFORCE_NODISCARD
void*
data() const noexcept {
return ptr_; }
191 NEFORCE_NODISCARD file_access
access() const noexcept {
return access_; }
196 NEFORCE_NODISCARD
bool is_mapped() const noexcept {
return ptr_ !=
nullptr; }
206NEFORCE_END_NAMESPACE__
bool lock_pages(bool lock_in_memory) const noexcept
锁定/解锁映射页到物理内存
NEFORCE_NODISCARD void * data() const noexcept
获取映射起始地址指针
file_mapper(file_mapper &&other) noexcept
移动构造函数
NEFORCE_NODISCARD size_type offset() const noexcept
获取映射偏移
file_mapper(native_handle_type file_handle)
构造函数
NEFORCE_NODISCARD file_access access() const noexcept
获取访问权限
void unmap() noexcept
解除映射
NEFORCE_NODISCARD size_type size() const noexcept
获取映射字节大小
_NEFORCE native_handle_type native_handle_type
原生文件句柄类型
file_mapper & operator=(file_mapper &&other) noexcept
移动赋值运算符
bool flush(bool async=false) noexcept
刷新映射区域到磁盘
bool map(size_type offset=0, size_type size=0, file_access access=file_access::READ, file_map_hint hint=file_map_hint::SEQUENTIAL)
映射文件到内存
bool remap(size_type new_offset, size_type new_size)
重新映射到新区域
NEFORCE_NODISCARD bool is_mapped() const noexcept
检查是否已映射
NEFORCE_NODISCARD map_info info() const noexcept
获取映射状态快照
NEFORCE_NODISCARD future< async_result_t< Func, Args... > > async(launch policy, Func &&function, Args &&... args)
异步执行函数(指定策略)
file_map_hint
内存映射文件访问提示枚举