YSTest: platform::MappedFile类 参考

YSTest PreAlpha_b800_20170810 The YSLib Test Project

- 首页
- 相关页面
- 模块
- 命名空间
- 类
- 文件

- 类列表
- 类索引
- 类继承关系
- 类成员

Public 成员函数 | Public 属性 | Private 属性 | 所有成员列表
platform::MappedFile类 参考

只读内存映射文件。 更多...

`#include <MemoryMapping.h>`

类 platform::MappedFile 继承关系图:
[图例]
platform::MappedFile 的协作图:
[图例]

## Public 成员函数

| DefDeCtor (MappedFile) explicit MappedFile(std
| 无参数构造：空状态。 更多...
| DefDeMoveCtor (MappedFile)~MappedFile()
| 析构：刷新并捕获所有错误，然后释放资源。 更多...
file option | DefGetter (const ynothrow, byte *, Ptr, mapped.get()) DefGetterMem(const ynothrow
file option mapped | get_deleter ()) DefGetter(const ynothrow
file option mapped const UniqueFile file | PDefH (void, Flush,) ImplExpr(FlushView()
| 刷新映射视图和文件。 更多...
file option mapped const UniqueFile file | FlushFile ()) void FlushView()
| 刷新映射视图。 更多...
void | FlushFile ()
| 刷新文件。 更多...

## Public 属性

file option | size_t
file option | Size
file option mapped const UniqueFile | UniqueFile

## Private 属性

FileMappingOption | option
UniqueFile | file {}
unique_ptr< byte[], UnmapDelete > | mapped {}
| MappedFile (size_t, UniqueFile, FileMappingOption=FileMappingOption::ReadOnly, FileMappingKey={})
| MappedFile (pair< size_t, UniqueFile > pr, FileMappingOption opt, FileMappingKey key)
| 以指定的区域长度、文件、选项和键创建映射。 更多...
| FileMappingOption = FileMappingOption::ReadOnly
| FileMappingKey = {})
| MappedFile (UniqueFile, FileMappingOption=FileMappingOption::ReadOnly, FileMappingKey={})

异常

  ystdex::narrowing_error | 映射的文件大小不被支持。

更多...

| YB_NONNULL (2) MappedFile(const char *
template<class _tString , typename... _tParams>
| MappedFile (const _tString &filename, _tParams &&...args)
| FileDescriptor
| File
file | FileMappingOption
file | MappingOption
| DefDeMoveAssignment (MappedFile) DefBoolNeg(explicit
| bool (file)) DefGetter(const ynothrow
file | get ()) DefGetter(const ynothrow

## 详细描述

只读内存映射文件。

注解
  可移植实现仅保证进程内生存期，但进程间可能共享。
  对不支持内存映射的实现，使用 POSIX 文件 IO 模拟。

警告
  转移后具有空状态。
  非虚析构。

自从
  build 324

在文件 MemoryMapping.h 第 111 行定义.

## 构造及析构函数说明

platform::MappedFile::MappedFile | ( | pair< size_t, UniqueFile > | pr,
|  | FileMappingOption | opt,
|  | FileMappingKey | key
| ) |  |

inlineexplicitprivate

以指定的区域长度、文件、选项和键创建映射。

在文件 MemoryMapping.h 第 158 行定义.

platform::MappedFile::MappedFile | ( | size_t | len,
|  | UniqueFile | f,
|  | FileMappingOption | opt = `FileMappingOption::ReadOnly`,
|  | FileMappingKey | key = `{}`
| ) |  |

explicit

在文件 MemoryMapping.cpp 第 130 行定义.

platform::MappedFile::MappedFile | ( | UniqueFile | f,
|  | FileMappingOption | opt = `FileMappingOption::ReadOnly`,
|  | FileMappingKey | key = `{}`
| ) |  |

explicit

异常

  ystdex::narrowing_error | 映射的文件大小不被支持。

以指定的文件、选项和键创建映射。

在文件 MemoryMapping.cpp 第 134 行定义.

参考 CHRLib::s, ystdex::throw_error() , 以及 yfsig.

函数调用图:
template<class _tString , typename... _tParams>

platform::MappedFile::MappedFile | ( | const _tString & | filename,
|  | _tParams &&... | args
| ) |  |

inlineexplicit

在文件 MemoryMapping.h 第 181 行定义.

## 成员函数说明

platform::MappedFile::bool | ( | file |  | ) | const

自从
  build 721

platform::MappedFile::DefDeCtor | ( | MappedFile |  | ) |

inline

无参数构造：空状态。

自从
  build 712

构造：创建映射文件。

异常

  std::system_error | 取文件大小失败。
  std::invalid_argument | 取文件大小结果小于 0 。
  std::runtime_error | 嵌套异常：映射失败。
  std::system_error | 文件打开失败。

注解
  非宿主平台：忽略第三参数。
  DS 平台：使用文件 IO 模拟。

自从
  build 711

创建映射到已存在的文件上的映射。 若键非空且不使用写时复制选项，创建全局可见的共享映射； 否则创建修改仅在进程内可见的映射。

前置条件
  文件可读；使用可写映射时文件可写；文件长度非零。
  指定的长度非零；文件包含指定的区域。

以指定的区域偏移、区域长度、文件、选项和键创建映射。

注解
  DS 和 POSIX 平台： 偏移截断为 `::off_t` 。

前置条件
  偏移位置按页对齐。

在文件 MemoryMapping.h 第 126 行定义.

platform::MappedFile::DefDeMoveAssignment | ( | MappedFile |  | ) |

自从
  build 712

platform::MappedFile::DefDeMoveCtor | ( | MappedFile |  | ) |

析构：刷新并捕获所有错误，然后释放资源。

自从
  build 712

参见
  Flush

自从
  build 711

file option platform::MappedFile::DefGetter | ( | const ynothrow | ,
|  | byte * | ,
|  | Ptr | ,
|  | mapped. | get()
| ) |  | const

自从
  build 413
  build 711

void platform::MappedFile::FlushFile | ( |  | ) |

刷新映射视图。

前置条件
  断言： `GetPtr()` 。

注解
  DS 平台：空操作。
  POSIX 平台：未指定只读视图关联的永久存储。

自从
  build 711

在文件 MemoryMapping.cpp 第 193 行定义.

参考 option, platform::ReadOnly , 以及 YAssertNonnull.

void platform::MappedFile::FlushFile | ( |  | ) |

刷新文件。

前置条件
  断言： `file` 。

注解
  非可写时忽略。

file platform::MappedFile::get | ( |  | ) | const

file option mapped platform::MappedFile::get_deleter | ( |  | ) | const

自从
  build 723

file option mapped const UniqueFile file platform::MappedFile::PDefH | ( | void | ,
|  | Flush |
| ) |  |

刷新映射视图和文件。

自从
  build 712

前置条件
  间接断言： `GetPtr() && file` 。

platform::MappedFile::YB_NONNULL | ( | 2 |  | ) | const

explicit

前置条件
  间接断言：第一参数非空。

## 类成员变量说明

UniqueFile platform::MappedFile::file {}

private

自从
  build 669

在文件 MemoryMapping.h 第 117 行定义.

platform::MappedFile::File

在文件 MemoryMapping.h 第 203 行定义.

platform::MappedFile::FileDescriptor

在文件 MemoryMapping.h 第 203 行定义.

platform::MappedFile::FileMappingKey = {})

在文件 MemoryMapping.h 第 178 行定义.

platform::MappedFile::FileMappingOption = FileMappingOption::ReadOnly

在文件 MemoryMapping.h 第 177 行定义.

file platform::MappedFile::FileMappingOption

在文件 MemoryMapping.h 第 204 行定义.

unique_ptr<byte[], UnmapDelete> platform::MappedFile::mapped {}

private

自从
  build 711

在文件 MemoryMapping.h 第 119 行定义.

file platform::MappedFile::MappingOption

在文件 MemoryMapping.h 第 204 行定义.

FileMappingOption platform::MappedFile::option

private

自从
  build 712

在文件 MemoryMapping.h 第 115 行定义.

参考自 FlushFile().

file option platform::MappedFile::Size

在文件 MemoryMapping.h 第 209 行定义.

file option platform::MappedFile::size_t

在文件 MemoryMapping.h 第 209 行定义.

file option mapped const UniqueFile platform::MappedFile::UniqueFile

在文件 MemoryMapping.h 第 211 行定义.

该类的文档由以下文件生成:

- MemoryMapping.h
- MemoryMapping.cpp