YSTest: platform 命名空间参考

YSTest PreAlpha_b700_20160611 The YSLib Test Project

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

- 命名空间列表
- 命名空间成员

命名空间 | 类 | 类型定义 | 枚举 | 函数 | 变量
platform 命名空间参考
Top-level Platform Namespaces

默认平台命名空间。 更多...

## 命名空间

| basic_types
| ColorSpace
| 系统默认颜色空间。
| Concurrency
| containers
| Descriptions
| 平台描述空间。
| FAT
| 文件分配表接口。
| KeyCategory
| 按键类别。
| KeyCodes
| 本机按键编码。
| references
| Threading

## 类

struct | AXYZMaskTrait
| AXYZ 掩码特征。 更多...
class | Color
| 颜色。 更多...
class | DirectorySession
| 目录会话：表示打开的目录。 更多...
class | FileDescriptor
| 文件描述符包装类。 更多...
class | FileOperationFailure
| 表示文件操作失败的异常。 更多...
class | HDirectory
| 目录句柄：表示打开的目录和内容迭代状态。 更多...
struct | HostedIDTagBase
| 宿主平台标识的公共标记类型：指定任意宿主平台。 更多...
struct | IDTag
| 平台标识的整数标记类型。 更多...
struct | IDTag< YF_Platform_Android >
struct | IDTag< YF_Platform_Android_ARM >
struct | IDTag< YF_Platform_Linux >
struct | IDTag< YF_Platform_Linux_x64 >
struct | IDTag< YF_Platform_Linux_x86 >
struct | IDTag< YF_Platform_MinGW32 >
struct | IDTag< YF_Platform_MinGW64 >
struct | IDTag< YF_Platform_Win32 >
struct | IDTag< YF_Platform_Win64 >
struct | IDTagBase
| 平台标识的公共标记类型：指定任意平台。 更多...
struct | IDTagSet
| 取平台标识的整数标记集合类型。 更多...
class | Logger
| 日志记录器。 更多...
class | MappedFile
| 只读内存映射文件。 更多...
class | UnmapDelete
struct | XYZAMaskTrait
| XYZA 掩码特征。 更多...
struct | XYZATrait
| XYZA 特征。 更多...

## 类型定义

using | KeyIndex = size_t
| 按键索引类型：标识特定的按键在按键集合中的位置。 更多...
using | KeyInput = std::bitset< KeyBitsetWidth >
| 按键并行位宽。 更多...
using | ssize_t = ystdex::make_signed_t< std::size_t >
using | SPos = std::int16_t
| 屏幕坐标度量。 更多...
using | SDst = std::uint16_t
| 屏幕坐标距离。 更多...
using | MaskTrait = XYZAMaskTrait< _vB, _vG, _vR, _vA >
using | ArrayType = typename Trait::ArrayType
using | IntegerType = typename Trait::IntegerType
using | mode_t = DefaultPMode()
| 文件模式类型。 更多...
using | MonoType = octet
using | AlphaType = octet
using | ID = std::uintmax_t
| `YF_Platform_*` 宏替换值的公共类型。 更多...
template<ID _vN>
using | MetaID = ystdex::integral_constant< ID, _vN >
| `YF_Platform_*` 宏替换值的对应的元类型。 更多...

## 枚举

enum

NodeCategory : std::uint_least32_t {
NodeCategory::Empty = 0, NodeCategory::Invalid = 1 << 0, NodeCategory::Regular = 1 << 1, NodeCategory::Unknown = Invalid | Regular,
NodeCategory::Device = 1 << 9, NodeCategory::Block = Device, NodeCategory::Character = Device | 1 << 7, NodeCategory::Communicator = 2 << 9,
NodeCategory::FIFO = Communicator | 1 << 6, NodeCategory::Socket = Communicator | 2 << 6, NodeCategory::SymbolicLink = 1 << 12, NodeCategory::MountPoint = 2 << 12,
NodeCategory::Junction = MountPoint, NodeCategory::Link = SymbolicLink | Junction, NodeCategory::Directory = 1 << 15, NodeCategory::Missing = 1 << 16,
NodeCategory::Special = Link | Missing
}

| 文件节点类别。 更多...
enum | FileSystemType { FileSystemType::Unknown, FileSystemType::FAT12, FileSystemType::FAT16, FileSystemType::FAT32 }
| 已知文件系统类型。 更多...

## 函数

YF_API Logger & | FetchCommonLogger ()
| 取公共日志记录器。 更多...
YF_API | YB_ATTR_gnu_printf (3, 4) YB_NONNULL(1
| 格式输出日志字符串前追加记录源文件名和行号。 更多...
YF_API string | LogWithSource (const char *, int, const char *,...) ynothrow
template<typename _type >
_type && | Nonnull (_type &&p) ynothrow
| 断言并返回非空指针。 更多...
template<typename _type >
_type && | CheckIter (_type &&i) ynothrow
| 检查迭代器。 更多...
template<typename _type >
yconstfn auto | Deref (_type &&p) -> decltype(*p)
| 断言并解引用非空指针。 更多...
YF_API YB_STATELESS mode_t | DefaultPMode () ynothrow
| 取默认权限。 更多...
template<typename _tChar >
basic_string< _tChar > | TryGetCurrentWorkingDirectory (size_t init)
| 尝试按指定的起始缓冲区大小取当前工作目录的路径。 更多...
bool | IsNodeShared (FileDescriptor, FileDescriptor) ynothrow
YF_API void | WaitForInput ()
| 等待任意按键。 更多...
YF_API KeyIndex | FindFirstKey (const KeyInput &) ynothrow
| 找到输入缓冲区记录中最小的按键编码。 更多...
YF_API KeyIndex | FindNextKey (const KeyInput &, KeyIndex) ynothrow
| 找到输入缓冲区记录中大于指定编码的最小的按键编码。 更多...
YF_API std::uint32_t | GetTicks () ynothrow
| 取 tick 数。 更多...
YF_API std::uint64_t | GetHighResolutionTicks () ynothrow
| 取高精度 tick 数。 更多...
template<size_t _vB, size_t _vG, size_t _vR, size_t _vA>
union | YB_ATTR (packed) YB_ATTR(aligned(yalignof(typename XYZATrait< _vB
| BGRA 四元组。 更多...
| DefDeCtor (BGRA) yconstfn BGRA(typename Trait
yconstfn | BGRA (typename Trait::BType b, typename Trait::GType g, typename Trait::RType r, typename Trait::AType a)
yconstfn | DefCvt (const ynothrow, typename Trait::IntegerType, Integer) yconstfn DefGetter(const ynothrow
yconstfn Integer &MaskTrait::AMask MaskTrait::XYZMaskN yconstfn | DefGetter (const ynothrow, typename Trait::BType, B, Integer &MaskTrait::XMask) yconstfn DefGetter(const ynothrow
yconstfn Integer &MaskTrait::AMask MaskTrait::XYZMaskN yconstfn Integer &MaskTrait::YMask MaskTrait::XMaskN yconstfn | DefGetter (const ynothrow, typename Trait::RType, R,(Integer &MaskTrait::ZMask) >> MaskTrait::XYMaskN)}
| DefDeCtor (RGBA) yconstfn RGBA(typename Trait
yconstfn | RGBA (typename Trait::BType r, typename Trait::GType g, typename Trait::RType b, typename Trait::AType a)
yconstfn Integer &MaskTrait::AMask MaskTrait::XYZMaskN yconstfn | DefGetter (const ynothrow, typename Trait::BType, B,(Integer &MaskTrait::ZMask) >> MaskTrait::XYMaskN) yconstfn DefGetter(const ynothrow
yconstfn Integer &MaskTrait::AMask MaskTrait::XYZMaskN yconstfn Integer &MaskTrait::YMask MaskTrait::XMaskN yconstfn | DefGetter (const ynothrow, typename Trait::RType, R, Integer &MaskTrait::XMask)}
| DefDeCtor (ARGB) yconstfn ARGB(typename Trait
yconstfn | ARGB (typename Trait::BType a, typename Trait::GType r, typename Trait::RType g, typename Trait::AType b)
yconstfn Integer &MaskTrait::AMask yconstfn | DefGetter (const ynothrow, typename Trait::BType, B,(Integer &MaskTrait::ZMask) >> MaskTrait::AXYMaskN) yconstfn DefGetter(const ynothrow
yconstfn Integer &MaskTrait::AMask yconstfn Integer &MaskTrait::YMask MaskTrait::AXMaskN yconstfn | DefGetter (const ynothrow, typename Trait::RType, R,(Integer &MaskTrait::XMask) >> MaskTrait::AMaskN)}
YF_API bool | InitVideo ()
| 初始化视频输出。 更多...
YB_NORETURN YF_API void | terminate () ynothrow
| 异常终止函数。 更多...
string | MakePathString (const char16_t *s)
NodeCategory | CategorizeNode (mode_t st_mode) ynothrow
int | omode_conv (std::ios_base::openmode mode) ynothrow
int | uaccess (const char *path, int amode) ynothrowv
int | uaccess (const char16_t *path, int amode) ynothrowv
int | uopen (const char *filename, int oflag, mode_t pmode) ynothrowv
int | uopen (const char16_t *filename, int oflag, mode_t pmode) ynothrowv
std::FILE * | ufopen (const char *filename, const char *mode) ynothrowv
std::FILE * | ufopen (const char16_t *filename, const char16_t *mode) ynothrowv
std::FILE * | ufopen (const char *filename, std::ios_base::openmode mode) ynothrowv
std::FILE * | ufopen (const char16_t *filename, std::ios_base::openmode mode) ynothrowv
bool | ufexists (const char *filename) ynothrowv
bool | ufexists (const char16_t *filename) ynothrowv
int | upclose (std::FILE *fp) ynothrowv
std::FILE * | upopen (const char *filename, const char *mode) ynothrowv
std::FILE * | upopen (const char16_t *filename, const char16_t *mode) ynothrowv
char * | ugetcwd (char *buf, size_t size) ynothrowv
char16_t * | ugetcwd (char16_t *buf, size_t size) ynothrowv
bool | uchdir (const char *path) ynothrowv
bool | umkdir (const char *path) ynothrowv
bool | urmdir (const char *path) ynothrowv
bool | uunlink (const char *path) ynothrowv
bool | uremove (const char *path) ynothrowv
| ImplDeDtor (FileOperationFailure) FileTime GetFileAccessTimeOf(const char *filename
FileTime | GetFileAccessTimeOf (const char16_t *filename, bool follow_link)
FileTime | GetFileModificationTimeOf (const char *filename, bool follow_link)
FileTime | GetFileModificationTimeOf (const char16_t *filename, bool follow_link)
| estat (st, path, follow_link)
return | size_t (st.st_nlink > 0?st.st_nlink:0)
UniqueFile | EnsureUniqueFile (const char *dst, mode_t mode, size_t allowed_links, bool share)
bool | HaveSameContents (const char *path_a, const char *path_b, mode_t mode)
bool | HaveSameContents (UniqueFile p_a, UniqueFile p_b, const char *name_a, const char *name_b)
bool | IsNodeShared (const char *a, const char *b, bool follow_link) ynothrowv
bool | IsNodeShared (const char16_t *a, const char16_t *b, bool follow_link) ynothrowv
void | CreateHardLink (const char *dst, const char *src)
void | CreateHardLink (const char16_t *dst, const char16_t *src)
void | CreateSymbolicLink (const char *dst, const char *src, bool is_dir)
void | CreateSymbolicLink (const char16_t *dst, const char16_t *src, bool is_dir)
string | ReadLink (const char *path)
u16string | ReadLink (const char16_t *path)
YF_API void | SetBinaryIO (std::FILE *) ynothrowv
| 设置标准库流二进制输入/输出模式。 更多...
| PDefH (void, SetupBinaryStdIO, std::FILE *in=stdin, std::FILE *out=stdout, bool sync={}) ynothrowv ImplExpr(SetBinaryIO(in)
| SetBinaryIO (out)
std::ios_base::sync_with_stdio(sync)) YF_API YB_STATELESS int omode_conv(std YF_API YB_STATELESS int | omode_convb (std::ios_base::openmode) ynothrow
| ISO C++ 标准输入输出接口打开模式转换为 POSIX 文件打开模式。 更多...
YF_API const char const char *yconstfn YB_PURE | PDefH (bool, IsNodeShared, const FileNodeID &x, const FileNodeID &y) ynothrow ImplRet(x!
| 判断参数是否表示共享的文件节点。 更多...
yconstfn | PDefH (char, MapKeyChar, KeyIndex) ynothrow ImplRet(
| 映射按键到键入的字符。 更多...
yconstfn | PDefH (char, MapKeyChar, const KeyInput &, KeyIndex) ynothrow ImplRet(
| PDefH (bool, IsPrint, char c) ImplRet(ystdex
| 检查默认区域下指定字符是否为可打印字符。 更多...
| PDefH (ystdex::uchar_t *, ucast, wchar_t *p) ynothrow ImplRet(ystdex
| 循环重复操作。 更多...
YF_API int | usystem (const char *)
| 执行 UTF-8 字符串的环境命令。 更多...

## 变量

union _vA::IntegerType | BGRA
ArrayType | Bytes
IntegerType | Integer
yconstfn | A
yconstfn Integer &MaskTrait::AMask MaskTrait::XYZMaskN yconstfn | G
union _vA::IntegerType | RGBA
union _vA::IntegerType | ARGB
bool | follow_link
size_t | n
YF_API int | oflag
YF_API int mode_t | pmode = 0) ynothrowv
YF_API | size_t = 1
| MakePathString
| PDefH (string, MakePathString, const char *s) ImplRet(Nonnull(s)) inline PDefH(const string &
| 构造适合表示路径的字符串。 更多...
const string &s | ImplRet (s) YF_API string MakePathString(const char16_t *)
| PDefH (string, MakePathString, u16string_view sv) ImplRet(MakePathString(sv.data())) using FileNodeID
| 文件节点标识类型。 更多...
YF_API int amode | ynothrowv
YF_API | YB_NONNULL (1) int uaccess(const char *path
| 测试路径可访问性。 更多...
| GetFileAccessTimeOf
std::FILE *fp | bool = {})
std::FILE *fp | ImplRet (FileDescriptor(fp).GetAccessTime()) YF_API YB_NONNULL(1) FileTime GetFileAccessTimeOf(const char *
| GetFileModificationTimeOf
std::FILE *fp | ImplRet (FileDescriptor(fp).GetModificationTime()) YF_API YB_NONNULL(1) FileTime GetFileModificationTimeOf(const char *
| GetFileModificationAndAccessTimeOf
std::FILE *fp | ImplRet (FileDescriptor(fp).GetModificationAndAccessTime()) YF_API YB_NONNULL(1) array< FileTime
std::FILE *fp | GetFileModificationAndAccessTimeOf (const char *, bool={})
YF_API | GetFileModificationAndAccessTimeOf (const char16_t *, bool={})
using | UniqueFile = unique_ptr_from< FileDescriptor::Deleter >
YF_API | YB_NONNULL (1, 2) bool HaveSameContents(const char *
| 比较文件内容相等。 更多...
YF_API | YB_NONNULL (3, 4) bool HaveSameContents(UniqueFile
while p | p
const _tString &path | ynothrow
template<typename _tChar >
yconstfn bool | IsColon (_tChar c) ynothrow
template<typename _tChar >
yconstfn bool | IsSlash (_tChar c) ynothrow
template<typename _tChar >
| YB_NONNULL (2) bool IsAbsolute_P(IDTag< YF_Platform_DS >
| 判断指定路径字符串是否表示一个绝对路径。 更多...
template<typename _tChar >
bool | IsAbsolute_P (IDTag< YF_Platform_DS >, basic_string_view< _tChar > path) ynothrowv
template<typename _tChar >
bool | IsAbsolute_P (IDTag< YF_Platform_Win32 >, basic_string_view< _tChar > path) ynothrowv
template<typename _tChar >
bool | IsAbsolute_P (IDTagBase, basic_string_view< _tChar > path) ynothrowv
| YCL_DefPlatformFwdTmpl (IsAbsolute, IsAbsolute_P) template< typename _tChar > YB_NONNULL(2) size_t FetchRootNameLength_P(IDTag< YF_Platform_DS >
| 取指定路径的文件系统根节点名称的长度。 更多...
| if (!p) p
return | size_t (p-path)
template<typename _tChar >
size_t | FetchRootNameLength_P (IDTag< YF_Platform_DS >, basic_string_view< _tChar > path) ynothrowv
template<typename _tChar >
size_t | FetchRootNameLength_P (IDTag< YF_Platform_Win32 >, basic_string_view< _tChar > path) ynothrowv
template<typename _tChar >
size_t | FetchRootNameLength_P (IDTagBase, const basic_string_view< _tChar > path) ynothrowv
| YCL_DefPlatformFwdTmpl (FetchRootNameLength, FetchRootNameLength_P) template< class _tString > yconstfn bool EndsWithNonSeperator_P(IDTag< YF_Platform_Win32 >
template<class _tString >
yconstfn bool | EndsWithNonSeperator_P (IDTagBase, const _tString &path) ynothrow

## 详细描述

默认平台命名空间。

自从
  build 680

## 类型定义说明

using platform::AlphaType = typedef octet

在文件 Video.h 第 289 行定义.

typedef typename Trait::ArrayType platform::ArrayType

自从
  build 555

在文件 Video.h 第 141 行定义.

typedef typename Trait::IntegerType platform::IntegerType

自从
  build 555

在文件 Video.h 第 143 行定义.

using platform::KeyIndex = typedef size_t

按键索引类型：标识特定的按键在按键集合中的位置。

自从
  build 490

在文件 Keys.h 第 42 行定义.

using platform::KeyInput = typedef std::bitset<KeyBitsetWidth>

按键并行位宽。

注解
  不少于实际表示的 KeyPad 按键数。

自从
  build 490

本机输入类型。

自从
  build 298

支持并行按键的缓冲区数据类型。

在文件 Keys.h 第 67 行定义.

typedef AXYZMaskTrait< _vA, _vR, _vG, _vB > platform::MaskTrait

自从
  build 507

在文件 Video.h 第 139 行定义.

YF_API const char platform::mode_t = DefaultPMode()

文件模式类型。

自从
  build 626

在文件 FileIO.h 第 108 行定义.

using platform::MonoType = typedef octet

自从
  build 417

在文件 Video.h 第 288 行定义.

using platform::SDst = typedef std::uint16_t

屏幕坐标距离。

在文件 Video.h 第 43 行定义.

using platform::SPos = typedef std::int16_t

屏幕坐标度量。

在文件 Video.h 第 42 行定义.

using platform::ssize_t = typedef ystdex::make_signed_t<std::size_t>

在文件 NativeAPI.h 第 73 行定义.

YF_API platform::UniqueFile

自从
  build 626

在文件 FileIO.h 第 427 行定义.

## 枚举类型说明

enum platform::FileSystemType

strong

已知文件系统类型。

自从
  build 607

枚举值
Unknown |
FAT12 |
FAT16 |
FAT32 |

在文件 YCLib/FileSystem.h 第 612 行定义.

enum platform::NodeCategory : std::uint_least32_t

strong

文件节点类别。

自从
  build 412

枚举值
Empty |

Invalid

自从
  build 474

Regular |
Unknown |

Device

自从
  build 474

Block |
Character |
Communicator |
FIFO |
Socket |
SymbolicLink |
MountPoint |
Junction |

Link

自从
  build 474

Directory |

Missing

自从
  build 474

Special |

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

## 函数说明

yconstfn platform::ARGB | ( | typename Trait::BType | a,
|  | typename Trait::GType | r,
|  | typename Trait::RType | g,
|  | typename Trait::AType | b
| ) |  |

在文件 Video.h 第 267 行定义.

yconstfn platform::BGRA | ( | typename Trait::BType | b,
|  | typename Trait::GType | g,
|  | typename Trait::RType | r,
|  | typename Trait::AType | a
| ) |  |

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

NodeCategory platform::CategorizeNode | ( | mode_t | st_mode | ) |

在文件 FileIO.cpp 第 376 行定义.

参考 platform::KeyCategory::Character, platform_ex::Windows::Directory, platform::KeyCodes::Win32::Empty , 以及 YB_UNLIKELY.

参考自 platform::FileDescriptor::GetCategory().

这是这个函数的调用关系图:
template<typename _type >

_type&& platform::CheckIter | ( | _type && | i | ) |

inline

检查迭代器。

前置条件
  断言：迭代器非确定不可解引用。

自从
  build 566

在文件 Debug.h 第 424 行定义.

参考 YSLib::i, ystdex::is_undereferenceable(), YAssert , 以及 yforward.

参考自 Deref().

函数调用图:

这是这个函数的调用关系图:

void platform::CreateHardLink | ( | const char * | dst,
|  | const char * | src
| ) |  |

在文件 YCLib/FileSystem.cpp 第 208 行定义.

参考 NPL::c_str(), CreateHardLink(), Nonnull(), ystdex::throw_error(), platform_ex::Windows::UTF8ToWCS , 以及 YAssertNonnull.

参考自 NPL::InstallHardLink().

函数调用图:

这是这个函数的调用关系图:

void platform::CreateHardLink | ( | const char16_t * | dst,
|  | const char16_t * | src
| ) |  |

在文件 YCLib/FileSystem.cpp 第 225 行定义.

参考 NPL::c_str(), CHRLib::MakeMBCS(), ystdex::throw_error(), YAssertNonnull , 以及 YCL_CallWin32F.

参考自 CreateHardLink().

函数调用图:

这是这个函数的调用关系图:

void platform::CreateSymbolicLink | ( | const char * | dst,
|  | const char * | src,
|  | bool | is_dir
| ) |  |

在文件 YCLib/FileSystem.cpp 第 240 行定义.

参考 NPL::c_str(), CreateSymbolicLink(), Nonnull(), ystdex::throw_error(), platform_ex::Windows::UTF8ToWCS , 以及 yunused.

参考自 NPL::InstallSymbolicLink().

函数调用图:

这是这个函数的调用关系图:

void platform::CreateSymbolicLink | ( | const char16_t * | dst,
|  | const char16_t * | src,
|  | bool | is_dir
| ) |  |

在文件 YCLib/FileSystem.cpp 第 257 行定义.

参考 NPL::c_str(), CHRLib::MakeMBCS(), ystdex::throw_error() , 以及 yunused.

参考自 CreateSymbolicLink().

函数调用图:

这是这个函数的调用关系图:

mode_t platform::DefaultPMode | ( |  | ) |

取默认权限。

自从
  build 638

在文件 FileIO.cpp 第 716 行定义.

yconstfn platform::DefCvt | ( | const ynothrow | ,
|  | typename Trait::IntegerType | ,
|  | Integer |
| ) |  | const

自从
  build 442
  build 448

platform::DefDeCtor | ( | BGRA |  | ) |

在文件 Video.h 第 152 行定义.

platform::DefDeCtor | ( | RGBA |  | ) |

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

platform::DefDeCtor | ( | ARGB |  | ) |

在文件 Video.h 第 261 行定义.

yconstfn Integer& MaskTrait::AMask MaskTrait::XYZMaskN yconstfn platform::DefGetter | ( | const ynothrow | ,
|  | typename Trait::BType | ,
|  | B | ,
|  | Integer &MaskTrait::XMask |
| ) |  | const

自从
  build 448

yconstfn Integer& MaskTrait::AMask MaskTrait::XYZMaskN yconstfn Integer& MaskTrait::YMask MaskTrait::XMaskN yconstfn platform::DefGetter | ( | const ynothrow | ,
|  | typename Trait::RType | ,
|  | R | ,
|  | (Integer &MaskTrait::ZMask) >> MaskTrait::XYMaskN |
| ) |  |

自从
  build 448

yconstfn Integer& MaskTrait::AMask MaskTrait::XYZMaskN yconstfn platform::DefGetter | ( | const ynothrow | ,
|  | typename Trait::BType | ,
|  | B | ,
|  | (Integer &MaskTrait::ZMask) >> MaskTrait::XYMaskN |
| ) |  | const

自从
  build 448

yconstfn Integer& MaskTrait::AMask MaskTrait::XYZMaskN yconstfn Integer& MaskTrait::YMask MaskTrait::XMaskN yconstfn platform::DefGetter | ( | const ynothrow | ,
|  | typename Trait::RType | ,
|  | R | ,
|  | Integer &MaskTrait::XMask |
| ) |  |

自从
  build 448

yconstfn Integer& MaskTrait::AMask yconstfn platform::DefGetter | ( | const ynothrow | ,
|  | typename Trait::BType | ,
|  | B | ,
|  | (Integer &MaskTrait::ZMask) >> MaskTrait::AXYMaskN |
| ) |  | const

yconstfn Integer& MaskTrait::AMask yconstfn Integer& MaskTrait::YMask MaskTrait::AXMaskN yconstfn platform::DefGetter | ( | const ynothrow | ,
|  | typename Trait::RType | ,
|  | R | ,
|  | (Integer &MaskTrait::XMask) >> MaskTrait::AMaskN |
| ) |  |

template<typename _type >

yconstfn auto platform::Deref | ( | _type && | p | ) | -> decltype(*p)

断言并解引用非空指针。

前置条件
  使用 ADL 指定的 CheckIter 调用的表达式语义等价于 platform::CheckIter 。
  间接断言：指针非空。

自从
  build 553

在文件 Debug.h 第 440 行定义.

参考 CheckIter(), p , 以及 yforward.

参考自 YSLib::Drawing::NativeFontSize::Activate(), platform_ex::ClearKeyStates(), NPL::SXML::ConvertAttributeNodeString(), NPL::SXML::ConvertDocumentNode(), YSLib::Devices::InputManager::DispatchInput(), NPL::A1::EvaluateContextFirst(), YSLib::FetchShell(), YSLib::GUIApplication::GetEnvironmentRef(), platform::HDirectory::GetNativeName(), platform::HDirectory::GetNodeCategory(), YSLib::ValueObject::GetObject(), YSLib::UI::AMUnitControlList::GetUnitRef(), YSLib::UI::ImplDeDtor(), NPL::A1::LoadNodeSequence(), YSLib::DS::UI::DualScreenReader::Locate(), main(), YSLib::UI::MoveToBottom(), YSLib::UI::MoveToCenter(), YSLib::UI::MoveToRight(), YSLib::Application::OnGotMessage(), NPL::A1::FunctionContextHandler::operator()(), YSLib::Drawing::CopyLine< _bDec >::operator()(), YSLib::Text::TextFileBuffer::iterator::operator*(), YSLib::Text::TextFileBuffer::iterator::operator++(), YSLib::Text::TextFileBuffer::iterator::operator--(), NPL::SXML::PrintSyntaxNode(), YSLib::DS::UI::DualScreenReader::ScrollByPixel(), YSLib::ValueNode::SplitChildren(), YSLib::UI::WidgetLoader::TransformUILayout(), ufopen(), upopen(), YSLib::UI::Widget::WrapRenderer(), platform_ex::Windows::YB_NONNULL() , 以及 YSLib::Drawing::Typeface::~Typeface().

函数调用图:

这是这个函数的调用关系图:
template<class _tString >

yconstfn bool platform::EndsWithNonSeperator_P | ( | IDTagBase | ,
|  | const _tString & | path
| ) |  |

在文件 YCLib/FileSystem.h 第 309 行定义.

参考 YSLib::path.

UniqueFile platform::EnsureUniqueFile | ( | const char * | dst,
|  | mode_t | mode,
|  | size_t | allowed_links,
|  | bool | share
| ) |  |

在文件 FileIO.cpp 第 1122 行定义.

参考 uopen(), uunlink() , 以及 yconstexpr.

参考自 YSLib::IO::CopyFile().

函数调用图:

这是这个函数的调用关系图:

platform::estat | ( | st | ,
|  | path | ,
|  | follow_link |
| ) |  |

参考自 platform::FileDescriptor::GetCategory(), platform::FileDescriptor::GetMode(), platform::FileDescriptor::GetNodeID(), platform::FileDescriptor::GetNumberOfLinks() , 以及 platform::FileDescriptor::GetSize().

这是这个函数的调用关系图:

Logger & platform::FetchCommonLogger | ( |  | ) |

取公共日志记录器。

自从
  build 498

在文件 Debug.cpp 第 223 行定义.

参考自 YSLib::Environment::Environment() , 以及 YSLib::Application::OnGotMessage().

这是这个函数的调用关系图:
template<typename _tChar >

size_t platform::FetchRootNameLength_P | ( | IDTag< YF_Platform_DS > | ,
|  | basic_string_view< _tChar > | path
| ) |  |

在文件 YCLib/FileSystem.h 第 231 行定义.

参考 n, YSLib::path , 以及 YAssertNonnull.

template<typename _tChar >

size_t platform::FetchRootNameLength_P | ( | IDTag< YF_Platform_Win32 > | ,
|  | basic_string_view< _tChar > | path
| ) |  |

在文件 YCLib/FileSystem.h 第 260 行定义.

参考 IsColon(), n, YSLib::path , 以及 YAssertNonnull.

函数调用图:
template<typename _tChar >

size_t platform::FetchRootNameLength_P | ( | IDTagBase | ,
|  | const basic_string_view< _tChar > | path
| ) |  |

inline

在文件 YCLib/FileSystem.h 第 286 行定义.

参考 YSLib::path , 以及 YAssertNonnull.

KeyIndex platform::FindFirstKey | ( | const KeyInput & | keys | ) |

找到输入缓冲区记录中最小的按键编码。

返回
  若存在编码则为最小值，否则为 KeyBitsetWidth 。

自从
  build 490

待办事项:
  支持 libstdc++ 以外的实现。

在文件 Keys.cpp 第 38 行定义.

参考自 platform::KeyCategory::FindFirstKeyInCategroy().

这是这个函数的调用关系图:

KeyIndex platform::FindNextKey | ( | const KeyInput & | keys,
|  | KeyIndex | key
| ) |  |

找到输入缓冲区记录中大于指定编码的最小的按键编码。

返回
  若存在编码则为大于指定编码的最小值，否则为 KeyBitsetWidth 。

自从
  build 490

待办事项:
  支持 libstdc++ 以外的实现。

在文件 Keys.cpp 第 48 行定义.

参考自 platform::KeyCategory::FindFirstKeyInCategroy().

这是这个函数的调用关系图:

FileTime platform::GetFileAccessTimeOf | ( | const char16_t * | filename,
|  | bool | follow_link
| ) |  |

在文件 FileIO.cpp 第 1071 行定义.

std::FILE* fp platform::GetFileModificationAndAccessTimeOf | ( | const char * | filename,
|  | bool | follow_link = `{}`
| ) |  |

在文件 FileIO.cpp 第 1088 行定义.

YF_API platform::GetFileModificationAndAccessTimeOf | ( | const char16_t * | filename,
|  | bool | follow_link = `{}`
| ) |  |

在文件 FileIO.cpp 第 1093 行定义.

FileTime platform::GetFileModificationTimeOf | ( | const char * | filename,
|  | bool | follow_link
| ) |  |

在文件 FileIO.cpp 第 1077 行定义.

FileTime platform::GetFileModificationTimeOf | ( | const char16_t * | filename,
|  | bool | follow_link
| ) |  |

在文件 FileIO.cpp 第 1082 行定义.

std::uint64_t platform::GetHighResolutionTicks | ( |  | ) |

取高精度 tick 数。

注解
  单位为纳秒。

警告
  首次调用 StartTicks 前非线程安全。

自从
  build 555

在文件 Timer.cpp 第 88 行定义.

参考自 YSLib::FPSCounter::Refresh().

这是这个函数的调用关系图:

std::uint32_t platform::GetTicks | ( |  | ) |

取 tick 数。

注解
  单位为毫秒。

警告
  首次调用 StartTicks 前非线程安全。

自从
  build 555

在文件 Timer.cpp 第 76 行定义.

bool platform::HaveSameContents | ( | const char * | path_a,
|  | const char * | path_b,
|  | mode_t | mode
| ) |  |

在文件 FileIO.cpp 第 1155 行定义.

参考 HaveSameContents() , 以及 uopen().

参考自 NPL::InstallFile().

函数调用图:

这是这个函数的调用关系图:

bool platform::HaveSameContents | ( | UniqueFile | p_a,
|  | UniqueFile | p_b,
|  | const char * | name_a,
|  | const char * | name_b
| ) |  |

在文件 FileIO.cpp 第 1176 行定义.

参考 platform_ex::Windows::Directory, IsNodeShared(), Nonnull() , 以及 ystdex::streambuf_equal().

参考自 HaveSameContents().

函数调用图:

这是这个函数的调用关系图:

platform::if | ( | ! | p | ) |

platform::ImplDeDtor | ( | FileOperationFailure |  | ) | const

const string& s platform::ImplRet | ( | s |  | ) | const

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

std::FILE* fp platform::ImplRet | ( | FileDescriptor(fp).GetAccessTime() |  | ) | const

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

注解
  最后一个参数指定若文件系统支持，访问链接的文件而不是链接自身。

std::FILE* fp platform::ImplRet | ( | FileDescriptor(fp).GetModificationTime() |  | ) | const

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

注解
  最后一个参数指定若文件系统支持，访问链接的文件而不是链接自身。

std::FILE* fp platform::ImplRet | ( | FileDescriptor(fp).GetModificationAndAccessTime() |  | ) |

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

注解
  最后一个参数指定若文件系统支持，访问链接的文件而不是链接自身。

bool platform::InitVideo | ( |  | ) |

初始化视频输出。

警告
  不保证线程安全性。

自从
  build 441

在文件 Video.cpp 第 43 行定义.

template<typename _tChar >

bool platform::IsAbsolute_P | ( | IDTag< YF_Platform_DS > | ,
|  | basic_string_view< _tChar > | path
| ) |  |

inline

在文件 YCLib/FileSystem.h 第 173 行定义.

参考 IsSlash(), YSLib::path , 以及 YAssertNonnull.

函数调用图:
template<typename _tChar >

bool platform::IsAbsolute_P | ( | IDTag< YF_Platform_Win32 > | ,
|  | basic_string_view< _tChar > | path
| ) |  |

inline

在文件 YCLib/FileSystem.h 第 188 行定义.

参考 IsColon(), YSLib::path , 以及 YAssertNonnull.

函数调用图:
template<typename _tChar >

bool platform::IsAbsolute_P | ( | IDTagBase | ,
|  | basic_string_view< _tChar > | path
| ) |  |

inline

在文件 YCLib/FileSystem.h 第 202 行定义.

参考 IsSlash(), YSLib::path , 以及 YAssertNonnull.

函数调用图:
template<typename _tChar >

yconstfn bool platform::IsColon | ( | _tChar | c | ) |

自从
  build 402
  build 654

在文件 YCLib/FileSystem.h 第 131 行定义.

参考 CHRLib::c.

参考自 FetchRootNameLength_P() , 以及 IsAbsolute_P().

这是这个函数的调用关系图:

bool platform::IsNodeShared | ( | const char * | a,
|  | const char * | b,
|  | bool | follow_link
| ) |  |

在文件 FileIO.cpp 第 1207 行定义.

参考 YSLib::a, follow_link, Nonnull() , 以及 ystdex::ntctscmp().

函数调用图:

bool platform::IsNodeShared | ( | const char16_t * | a,
|  | const char16_t * | b,
|  | bool | follow_link
| ) |  |

在文件 FileIO.cpp 第 1213 行定义.

参考 YSLib::a, follow_link, Nonnull() , 以及 ystdex::ntctscmp().

参考自 HaveSameContents().

函数调用图:

这是这个函数的调用关系图:

bool platform::IsNodeShared | ( | FileDescriptor | x,
|  | FileDescriptor | y
| ) |  |

注解
  取节点失败视为不共享。

参见
  FileDescriptor::GetNodeID

在文件 FileIO.cpp 第 1219 行定义.

参考 YSLib::Drawing::x , 以及 YSLib::UI::y.

template<typename _tChar >

yconstfn bool platform::IsSlash | ( | _tChar | c | ) |

在文件 YCLib/FileSystem.h 第 138 行定义.

参考 CHRLib::c.

参考自 IsAbsolute_P().

这是这个函数的调用关系图:

string platform::LogWithSource | ( | const char * | file,
|  | int | line,
|  | const char * | fmt,
|  |  | ...
| ) |  |

在文件 Debug.cpp 第 232 行定义.

参考 CHRLib::args, CatchExpr, platform::Descriptions::Emergent, platform::Descriptions::Notice, ystdex::sfmt(), YSLib::Text::str, ystdex::vsfmt() , 以及 ystdex::ytrace().

函数调用图:

string platform::MakePathString | ( | const char16_t * | s | ) |

在文件 FileIO.cpp 第 365 行定义.

参考 CHRLib::MakeMBCS() , 以及 platform_ex::Windows::WCSToUTF8.

函数调用图:
template<typename _type >

_type&& platform::Nonnull | ( | _type && | p | ) |

inline

断言并返回非空指针。

前置条件
  断言：指针非空。

自从
  build 563

在文件 Debug.h 第 411 行定义.

参考 p, YAssertNonnull , 以及 yforward.

参考自 YSLib::Drawing::GGraphics< unique_ptr< Pixel[]> >::bool(), platform::FAT::CheckColons(), YSLib::Drawing::CopyBitmapBuffer(), YSLib::Drawing::CopyBuffer(), YSLib::IO::CopyFile(), CreateHardLink(), CreateSymbolicLink(), YSLib::Environment::Environment(), YSLib::FetchEnvironmentVariable(), HaveSameContents(), IsNodeShared(), YSLib::LoadNPLA1File(), YSLib::Drawing::PlotHLineSeg(), YSLib::Drawing::PlotVLineSeg(), ReadLink(), SetBinaryIO(), YSLib::Drawing::to_string(), YSLib::Text::VerifyEncoding(), platform_ex::Windows::RegistryKey::YB_NONNULL() , 以及 platform_ex::Windows::YB_NONNULL().

这是这个函数的调用关系图:

int platform::omode_conv | ( | std::ios_base::openmode | mode | ) |

在文件 FileIO.cpp 第 740 行定义.

参考自 omode_convb().

这是这个函数的调用关系图:

int platform::omode_convb | ( | std::ios_base::openmode | mode | ) |

ISO C++ 标准输入输出接口打开模式转换为 POSIX 文件打开模式。

返回
  若失败为 0 ，否则为对应的值。

自从
  build 648

注解
  忽略二进制模式。
  扩展：不忽略二进制模式。
  POSIX 平台：同 omode_conv 。

在文件 FileIO.cpp 第 768 行定义.

参考 omode_conv().

函数调用图:

platform::PDefH | ( | string | ,
|  | MakePathString | ,
|  | const char * | s
| ) |  | const

inline

构造适合表示路径的字符串。

注解
  字符类型非 `char` 时转换，假定为 UTF-8 编码。

自从
  build 634

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

platform::PDefH | ( | string | ,
|  | MakePathString | ,
|  | u16string_view | sv
| ) |  |

inline

文件节点标识类型。

自从
  build 658
  build 638

platform::PDefH | ( | bool | ,
|  | IsPrint | ,
|  | char | c
| ) |  |

inline

检查默认区域下指定字符是否为可打印字符。

注解
  MSVCRT 的 isprint/iswprint 实现缺陷的变通。

参见
  https://connect.microsoft.com/VisualStudio/feedback/details/799287/isprint-incorrectly-classifies-t-as-printable-in-c-locale

自从
  build 512

在文件 YCommon.h 第 173 行定义.

platform::PDefH | ( | ystdex::uchar_t * | ,
|  | ucast | ,
|  | wchar_t * | p
| ) |  |

inline

循环重复操作。

自从
  build 631
  build 625

在文件 YCommon.h 第 188 行定义.

参考 p.

yconstfn platform::PDefH | ( | char | ,
|  | MapKeyChar | ,
|  | KeyIndex |
| ) |  |

映射按键到键入的字符。

返回
  若未找到对应按键或不支持为 char() ，否则为对应的字符。

注解
  对 Win32 ，返回值不大于 0x80 。

自从
  build 490

待办事项:
  Android 实现。

在文件 Keys.h 第 189 行定义.

yconstfn platform::PDefH | ( | char | ,
|  | MapKeyChar | ,
|  | const KeyInput & | ,
|  | KeyIndex |
| ) |  |

自从
  build 489

在文件 Keys.h 第 192 行定义.

platform::PDefH | ( | void | ,
|  | SetupBinaryStdIO | ,
|  | std::FILE * | in = `stdin`,
|  | std::FILE * | out = `stdout`,
|  | bool | sync = `{}`
| ) |  |

inline

警告
  改变默认日志默认发送器前，不应使用 std::cerr 和 std::clog 等依赖 `stderr` 的流，以避免导致同步问题。

参见
  FetchCommonLogger
  Logger::DefaultSendLog

YF_API const char const char* yconstfn YB_PURE platform::PDefH | ( | bool | ,
|  | IsNodeShared | ,
|  | const FileNodeID & | x,
|  | const FileNodeID & | y
| ) |  |

判断参数是否表示共享的文件节点。

注解
  可能设置 errno 。 build 638

string platform::ReadLink | ( | const char * | path | ) |

在文件 YCLib/FileSystem.cpp 第 271 行定义.

参考 NPL::c_str(), n, Nonnull(), ReadLink(), ystdex::size(), ystdex::throw_error(), platform_ex::Windows::UTF8ToWCS, platform_ex::Windows::WCSToUTF8 , 以及 YAssertNonnull.

函数调用图:

u16string platform::ReadLink | ( | const char16_t * | path | ) |

在文件 YCLib/FileSystem.cpp 第 306 行定义.

参考 NPL::c_str(), CHRLib::MakeMBCS(), CHRLib::MakeUCS2LE(), ystdex::throw_error() , 以及 YAssertNonnull.

参考自 ReadLink().

函数调用图:

这是这个函数的调用关系图:

yconstfn platform::RGBA | ( | typename Trait::BType | r,
|  | typename Trait::GType | g,
|  | typename Trait::RType | b,
|  | typename Trait::AType | a
| ) |  |

在文件 Video.h 第 215 行定义.

void platform::SetBinaryIO | ( | std::FILE * | stream | ) |

设置标准库流二进制输入/输出模式。

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

自从
  build 669

在文件 FileIO.cpp 第 728 行定义.

参考 YSLib::IO::FileDescriptor , 以及 Nonnull().

函数调用图:

platform::SetBinaryIO | ( | out |  | ) |

return platform::size_t | ( | p- | path | ) |

return platform::size_t | ( | st. | st_nlink,
|  | 0?st.st_nlink:0 |
| ) |  |

void platform::terminate | ( |  | ) |

异常终止函数。

自从
  build 319

在文件 YCommon.cpp 第 42 行定义.

参考自 YSLib::Environment::Environment(), YSLib::TraceForOutermost() , 以及 ystdex::yassert().

这是这个函数的调用关系图:
template<typename _tChar >

basic_string<_tChar> platform::TryGetCurrentWorkingDirectory | ( | size_t | init | ) |

尝试按指定的起始缓冲区大小取当前工作目录的路径。

前置条件
  间接断言：参数不等于 0 。

注解
  使用 ADL ugetcwd 。

自从
  build 699

在文件 FileIO.h 第 1117 行定义.

参考 CHRLib::e, YSLib::Drawing::r, size_t, ystdex::throw_error() , 以及 ugetcwd().

函数调用图:

int platform::uaccess | ( | const char * | path,
|  | int | amode
| ) |  |

在文件 FileIO.cpp 第 781 行定义.

参考 NPL::c_str(), platform_ex::Windows::UTF8ToWCS, YAssertNonnull , 以及 YCL_Impl_RetTryCatchAll.

函数调用图:

int platform::uaccess | ( | const char16_t * | path,
|  | int | amode
| ) |  |

在文件 FileIO.cpp 第 792 行定义.

参考 NPL::c_str(), CHRLib::MakeMBCS(), YAssertNonnull , 以及 YCL_Impl_RetTryCatchAll.

函数调用图:

bool platform::uchdir | ( | const char * | path | ) |

在文件 FileIO.cpp 第 1023 行定义.

bool platform::ufexists | ( | const char * | filename | ) |

在文件 FileIO.cpp 第 875 行定义.

参考 ystdex::call_value_or(), ystdex::compose(), ystdex::fexists(), ufopen() , 以及 yimpl.

参考自 YSLib::IO::ClassifyNode(), YSLib::LoadComponents(), YSLib::LoadNPLA1File() , 以及 YSLib::Drawing::FontCache::LoadTypefaces().

函数调用图:

这是这个函数的调用关系图:

bool platform::ufexists | ( | const char16_t * | filename | ) |

在文件 FileIO.cpp 第 885 行定义.

参考 ystdex::call_value_or(), ystdex::compose(), ufopen() , 以及 yimpl.

函数调用图:

std::FILE* platform::ufopen | ( | const char * | filename,
|  | const char * | mode
| ) |  |

在文件 FileIO.cpp 第 828 行定义.

参考 NPL::c_str(), Deref(), platform_ex::Windows::UTF8ToWCS, YAssert, YAssertNonnull , 以及 YCL_Impl_RetTryCatchAll.

函数调用图:

std::FILE* platform::ufopen | ( | const char16_t * | filename,
|  | const char16_t * | mode
| ) |  |

在文件 FileIO.cpp 第 841 行定义.

参考 NPL::c_str(), Deref(), CHRLib::MakeMBCS(), YAssert, YAssertNonnull , 以及 YCL_Impl_RetTryCatchAll.

函数调用图:

std::FILE* platform::ufopen | ( | const char * | filename,
|  | std::ios_base::openmode | mode
| ) |  |

在文件 FileIO.cpp 第 854 行定义.

参考 ystdex::openmode_conv() , 以及 ufopen().

函数调用图:

std::FILE* platform::ufopen | ( | const char16_t * | filename,
|  | std::ios_base::openmode | mode
| ) |  |

在文件 FileIO.cpp 第 861 行定义.

参考 NPL::c_str(), CHRLib::MakeMBCS(), ystdex::openmode_conv(), platform_ex::Windows::UTF8ToWCS, YAssertNonnull , 以及 YCL_Impl_RetTryCatchAll.

参考自 ufexists() , 以及 ufopen().

函数调用图:

这是这个函数的调用关系图:

char* platform::ugetcwd | ( | char * | buf,
|  | size_t | size
| ) |  |

在文件 FileIO.cpp 第 939 行定义.

参考 CatchExpr, YSLib::IO::int, ystdex::cpp2014::make_unique(), ystdex::ntctscpy(), CHRLib::p(), platform_ex::Windows::WCSToUTF8 , 以及 YAssertNonnull.

参考自 YSLib::IO::FetchCurrentWorkingDirectory() , 以及 TryGetCurrentWorkingDirectory().

函数调用图:

这是这个函数的调用关系图:

char16_t* platform::ugetcwd | ( | char16_t * | buf,
|  | size_t | size
| ) |  |

在文件 FileIO.cpp 第 972 行定义.

参考 CatchExpr, CHRLib::MakeUCS2LE(), ystdex::ntctscpy() , 以及 YAssertNonnull.

函数调用图:

bool platform::umkdir | ( | const char * | path | ) |

在文件 FileIO.cpp 第 1025 行定义.

参考自 YSLib::IO::EnsureDirectory().

这是这个函数的调用关系图:

int platform::uopen | ( | const char * | filename,
|  | int | oflag,
|  | mode_t | pmode
| ) |  |

在文件 FileIO.cpp 第 804 行定义.

参考 NPL::c_str(), oflag, pmode, platform_ex::Windows::UTF8ToWCS, YAssertNonnull , 以及 YCL_Impl_RetTryCatchAll.

参考自 YSLib::IO::OpenFile().

函数调用图:

这是这个函数的调用关系图:

int platform::uopen | ( | const char16_t * | filename,
|  | int | oflag,
|  | mode_t | pmode
| ) |  |

在文件 FileIO.cpp 第 816 行定义.

参考 NPL::c_str(), CHRLib::MakeMBCS(), oflag, pmode, YAssertNonnull , 以及 YCL_Impl_RetTryCatchAll.

参考自 EnsureUniqueFile() , 以及 HaveSameContents().

函数调用图:

这是这个函数的调用关系图:

int platform::upclose | ( | std::FILE * | fp | ) |

在文件 FileIO.cpp 第 892 行定义.

参考 CHRLib::fp , 以及 YAssertNonnull.

std::FILE* platform::upopen | ( | const char * | filename,
|  | const char * | mode
| ) |  |

在文件 FileIO.cpp 第 906 行定义.

参考 NPL::c_str(), Deref(), platform_ex::Windows::UTF8ToWCS, YAssert, YAssertNonnull , 以及 YCL_Impl_RetTryCatchAll.

函数调用图:

std::FILE* platform::upopen | ( | const char16_t * | filename,
|  | const char16_t * | mode
| ) |  |

在文件 FileIO.cpp 第 922 行定义.

参考 NPL::c_str(), Deref(), CHRLib::MakeMBCS(), YAssert, YAssertNonnull , 以及 YCL_Impl_RetTryCatchAll.

函数调用图:

bool platform::uremove | ( | const char * | path | ) |

在文件 FileIO.cpp 第 1044 行定义.

参考 platform_ex::Windows::Directory.

参考自 NPL::InstallHardLink(), NPL::InstallSymbolicLink() , 以及 YSLib::IO::YB_NONNULL().

这是这个函数的调用关系图:

bool platform::urmdir | ( | const char * | path | ) |

在文件 FileIO.cpp 第 1033 行定义.

int platform::usystem | ( | const char * | cmd | ) |

执行 UTF-8 字符串的环境命令。

注解
  使用 std::system 实现；若参数为空则和 std::system 行为一致。

自从
  build 539

在文件 YCommon.cpp 第 53 行定义.

参考 NPL::c_str() , 以及 platform_ex::Windows::MBCSToWCS().

函数调用图:

bool platform::uunlink | ( | const char * | path | ) |

在文件 FileIO.cpp 第 1035 行定义.

参考自 EnsureUniqueFile().

这是这个函数的调用关系图:

void platform::WaitForInput | ( |  | ) |

等待任意按键。

在文件 Input.cpp 第 46 行定义.

参考 platform_ex::FetchKeyDownState() , 以及 platform_ex::UpdateKeyStates().

参考自 YSLib::UI::Console::Pause().

函数调用图:

这是这个函数的调用关系图:
template<size_t _vB, size_t _vG, size_t _vR, size_t _vA>

union platform::YB_ATTR | ( | packed |  | ) |

BGRA 四元组。

ARGB 四元组。

RGBA 四元组。

注解
  作为 POD 类型，可以用于储存像素。

警告
  用户应检查存储表示的实际大小是否和本类型一致。

Bug:

  当前仅支持小端整数字节序。

  当前忽略对齐和特定类型的一致性。

  自从
    build 441

注解
  作为 POD 类型，可以用于储存像素。

警告
  用户应检查存储表示的实际大小是否和本类型一致。

Bug:

  当前仅支持小端整数字节序。

  当前忽略对齐和特定类型的一致性。

  自从
    build 441

注解
  作为 POD 类型，可以用于储存像素。

警告
  用户应检查存储表示的实际大小是否和本类型一致。

Bug:

  当前仅支持小端整数字节序。

  当前忽略对齐和特定类型的一致性。

  自从
    build 507

YF_API platform::YB_ATTR_gnu_printf | ( | 3 | ,
|  | 4 |
| ) |  |

格式输出日志字符串前追加记录源文件名和行号。

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

注解
  允许第一参数为空指针，视为未知。
  当失败时调用 ystdex::trace 记录，但只保留参数中的文件名和行号。

自从
  build 593

template<typename _tChar >

platform::YB_NONNULL | ( | 2 |  | ) |

inline

判断指定路径字符串是否表示一个绝对路径。

注解
  使用 ADL IsSlash 。

待办事项:
  支持非 Win32 文件路径特化。

前置条件
  间接断言：指针路径参数或路径参数的数据指针非空。

待办事项:
  支持非 POSIX 文件路径特化。

注解
  空路径不是绝对路径。

自从
  build 653

platform::YB_NONNULL | ( | 1 |  | ) | const

inline

测试路径可访问性。

检查参数指定的 MS-DOS 风格路径冒号。

生成别名校验和。

解析路径：取跟踪链接的绝对路径。

读取链接指向的路径。

尝试删除指定路径的文件后再以指定路径和模式创建常规文件。

取路径指定的文件链接数。

异常

  FileOperationFailure | 参数无效或文件时间查询失败。

按路径移除一个文件。

按路径删除一个非目录文件。

按路径删除一个空目录。

按路径以默认权限新建一个目录。

切换当前工作路径至指定路径。

关闭管道流。

判断指定 UCS-2 文件名的文件是否存在。

以 UTF-8 文件名打开文件。

以 UCS-2 文件名无缓冲打开文件。

以 UTF-8 文件名无缓冲打开文件。

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

注解
  若存储分配失败，设置 errno 为 `ENOMEM` 。

自从
  build 669

参数

  path | 路径，意义同 POSIX `::open` 。
  amode | 模式，基本语义同 POSIX.1 2004 ，具体行为取决于实现。 。

注解
  errno 在出错时会被设置，具体值由实现定义。

参数

  filename | 文件名，意义同 POSIX `::open` 。
  oflag | 打开旗标，基本语义同 POSIX.1 2004 ，具体行为取决于实现。
  pmode | 打开模式，基本语义同 POSIX.1 2004 ，具体行为取决于实现。
  filename | 文件名，意义同 std::fopen 。
  mode | 打开模式，基本语义同 ISO C11 ，具体行为取决于实现。

前置条件
  断言：`mode && *mode != 0` 。以 UCS-2 文件名打开文件。

参数

  mode | 打开模式，基本语义与 ISO C++11 对应，具体行为取决于实现。 以 UTF-8 文件名打开文件。 以 UCS-2 文件名打开文件。

注解
  使用 ufopen 二进制只读模式打开测试实现。 判断指定 UTF-8 文件名的文件是否存在。

前置条件
  参数非空，表示通过和 upopen 或使用相同实现打开的管道流。

注解
  基本语义同 POSIX.1 2004 的 `::pclose` ，具体行为取决于实现。
  DS 平台：不支持操作，总是失败并设置 errno 为 ENOSYS 。
  若存储分配失败，设置 errno 为 `ENOMEM` 。

参数

  filename | 文件名，意义同 POSIX `::popen` 。
  mode | 打开模式，基本语义同 POSIX.1 2004 ，具体行为取决于实现。

前置条件
  断言：`filename` 。
  间接断言： `mode` 。

警告
  应使用 upclose 而不是 std::close 关闭管道流，否则可能引起未定义行为。

注解
  DS 平台：不支持操作，总是失败并设置 errno 为 ENOSYS 。以 UTF-8 文件名无缓冲打开管道流。 以 UCS-2 文件名无缓冲打开管道流。

取当前工作目录复制至指定缓冲区中。

参数

  size | 缓冲区长。

返回
  若成功为第一参数，否则为空指针。

注解
  基本语义同 POSIX.1 2013 的 `::getcwd` ，具体行为取决于实现。

自从
  build 699

参数

  buf | UTF-8 缓冲区起始指针。
  buf | UCS-2 缓冲区起始指针。

前置条件
  断言：参数非空。

返回
  操作是否成功。

注解
  errno 在出错时会被设置，具体值除以上明确的外，由实现定义。
  参数表示路径，使用 UTF-8 编码。
  DS 使用 newlib 实现。 MinGW32 使用 MSVCRT 实现。 Android 使用 bionic 实现。 其它 Linux 使用 GLibC 实现。
  POSIX 平台：除路径和返回值外语义同 `::chdir` 。
  权限由实现定义： DS 使用最大权限； MinGW32 使用 `::_wmkdir` 指定的默认权限。
  POSIX 平台：除路径和返回值外语义同 `::rmdir` 。
  POSIX 平台：除路径和返回值外语义同 `::unlink` 。
  Win32 平台：支持移除只读文件，但删除打开的文件总是失败。
  POSIX 平台：除路径和返回值外语义同 `::remove` 。移除非空目录总是失败。
  Win32 平台：支持移除空目录和只读文件，但删除打开的文件总是失败。

参见
  https://msdn.microsoft.com/en-us/library/kc07117k.aspx 。
  FileDescriptor::GetAccessTime

自从
  build 631

参见
  FileDescriptor::GetModificationTime

自从
  build 628

参见
  FileDescriptor::GetModificationAndAccessTime

自从
  build 631

返回
  若成功为连接数，否则为 0 。

注解
  最后参数表示跟踪连接。

自从
  build 669

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

注解
  参数依次表示目标路径、打开模式、覆盖目标允许的链接数和是否允许共享覆盖。
  第二参数被限制 Mode::User 内。
  若目标已存在，创建或覆盖文件保证目标文件链接数不超过第三参数指定的值。
  若目标已存在、链接数大于 1 且不允许写入共享则先删除目标。
  忽略目标不存在导致的删除失败。

异常

  FileOperationFailure | 创建目标失败。

自从
  build 639

异常

  std::invalid_argument | 指定的路径存在但不是连接。

注解
  支持 Windows 目录链接和符号链接，不特别区分。

Bug:
  不保证支持不完全符合 POSIX 的文件系统（如 Linux 的 /proc ）。
  自从
    build 660

注解
  第二参数指定解析链接的次数上限。

异常

  std::system_error | std::errc::too_many_symbolic_link_levels 超过链接限制。

自从
  build 698

返回
  解析得到的绝对路径。

在文件 YCLib/FileSystem.h 第 144 行定义.

YF_API platform::YB_NONNULL | ( | 1 | ,
|  | 2 |
| ) |  | const

比较文件内容相等。

创建符号链接。

创建硬链接。

异常

  FileOperationFailure | 文件按流打开失败。

警告
  读取失败时即截断返回，因此需要另行比较文件大小。

参见
  IsNodeShared

自从
  build 658

首先比较文件节点，若为相同文件直接相等，否则清除 errno ，打开文件读取内容并比较。

注解
  间接断言：参数非空。

自从
  build 658

前置条件
  断言：路径指针非空。

异常

  Win32Exception | Win32 平台：本机 API 调用失败。

  std::system_error

  系统错误。
  - std::errc::function_not_supported 操作不被文件系统支持。
  - 可能有其它错误。

注解
  DS 平台：当前实现不支持替换文件系统，因此始终不支持操作。
  前两个参数为目标路径和源路径。
  源路径指定符号链接时，跟随符号链接目标。

自从
  build 633

注解
  第三参数指定是否创建目录链接。
  Win32 平台：成功调用需要操作系统和权限（或组策略）支持。
  非 Win32 平台：忽略第三参数。

自从
  build 651

YF_API platform::YB_NONNULL | ( | 3 | ,
|  | 4 |
| ) |  |

注解
  间接断言：文件指针非空。
  使用表示文件名称的字符串，仅用于在异常消息中显示（若为空则省略）。
  参数表示的文件已以可读形式打开，否则按流打开失败。
  视文件起始于当前读位置。

自从
  build 658

platform::YCL_DefPlatformFwdTmpl | ( | IsAbsolute | ,
|  | IsAbsolute_P |
| ) |  |

取指定路径的文件系统根节点名称的长度。

自从
  build 652

注解
  计入可能存在的紧随在根名称后的一个或多个文件分隔符。

platform::YCL_DefPlatformFwdTmpl | ( | FetchRootNameLength | ,
|  | FetchRootNameLength_P |
| ) |  |

自从
  build 653
  build 693

## 变量说明

yconstfn platform::A

在文件 Video.h 第 169 行定义.

union _vA ::IntegerType platform::ARGB

初始值:
{
using Trait = XYZATrait<_vB, _vG, _vR, _vA>

在文件 Video.h 第 250 行定义.

union _vA ::IntegerType platform::BGRA

初始值:
{
using Trait = XYZATrait<_vB, _vG, _vR, _vA>

在文件 Video.h 第 136 行定义.

YF_API const char16_t platform::bool = {})

在文件 FileIO.h 第 1187 行定义.

参考自 YSLib::DS::UI::DualScreenReader::AdjustScrollOffset(), ystdex::examiners::equal::are_equal(), ystdex::call_value_or(), YSLib::Text::TextFileBuffer::GetPosition(), YSLib::Drawing::Typeface::LookupBitmap(), ystdex::native_little_bit_order(), ystdex::nonnull_or(), ystdex::nptr< _type >::operator bool(), ystdex::nptr< _type >::operator!(), ystdex::details::tcompare< _tWrappedKey, _fComp, false >::operator()(), ystdex::details::tcompare< _tWrappedKey, _fComp, true >::operator()(), ystdex::operator<(), ystdex::operator==(), ystdex::strict_all_of(), ystdex::strict_any_of() , 以及 ystdex::value_or().

Trait::ArrayType platform::Bytes

在文件 Video.h 第 145 行定义.

bool platform::follow_link

初始值:
{
return FetchFileTime(get_st_atime, filename, follow_link)
platform::follow_link
bool follow_link
Definition: FileIO.cpp:1067

在文件 FileIO.cpp 第 1067 行定义.

参考自 IsNodeShared().

yconstfn Integer &MaskTrait::AMask yconstfn platform::G

在文件 Video.h 第 174 行定义.

platform::GetFileAccessTimeOf

在文件 FileIO.h 第 1179 行定义.

array< FileTime, 2 > platform::GetFileModificationAndAccessTimeOf

在文件 FileIO.h 第 1221 行定义.

platform::GetFileModificationTimeOf

在文件 FileIO.h 第 1199 行定义.

Trait::IntegerType platform::Integer

在文件 Video.h 第 146 行定义.

platform::MakePathString

在文件 FileIO.h 第 61 行定义.

参考自 YSLib::IO::YB_NONNULL().

size_t platform::n

初始值:
{
return ResolvePathImpl<char>(path, n)
YSLib::path
YF_API const char * path
Definition: Initialization.h:74
platform::n
size_t n
Definition: YCLib/FileSystem.cpp:321

在文件 YCLib/FileSystem.cpp 第 321 行定义.

参考自 ytest::timing::average(), YSLib::UI::ATrack::CheckArea(), YSLib::Drawing::TextRegion::ClearLine(), YSLib::Drawing::ClearPixels(), YSLib::ClearSequence(), ystdex::const_ntctscmp(), ystdex::const_ntctsfind(), NPL::SXML::ConvertAttributeNodeString(), YSLib::Devices::InputManager::DispatchInput(), ystdex::details::str_algos< 0 >::erase_left(), ystdex::details::str_algos< 1 >::erase_left(), ystdex::erase_multi(), ystdex::details::str_algos< 0 >::erase_right(), ystdex::details::str_algos< 1 >::erase_right(), ystdex::extract(), YSLib::Drawing::FetchLastLineBasePosition(), FetchRootNameLength_P(), YSLib::Drawing::FetchStringOffsets(), YSLib::Drawing::FetchStringWidth(), ystdex::block_buffer::fill(), YSLib::Drawing::FillVerticalLine(), YSLib::UI::TextBox::GetCaretPosition(), YSLib::UI::TreeList::GetNodePath(), YReader::ImplDeDtor(), ystdex::make_allocator_guard(), ystdex::max(), ystdex::min(), YSLib::DS::UI::DualScreenReader::MoveUpForLastLine(), ystdex::next_if(), ystdex::next_if_eq(), ystdex::ntctscmp(), ystdex::ntctscpy(), ystdex::ntctsicmp(), ystdex::ntctslen(), ystdex::ntctsmove(), ystdex::ntctsncpy(), YSLib::ValueNode::operator%=(), YSLib::CountedHandlerInvoker::operator()(), NPL::A1::FunctionContextHandler::operator()(), ystdex::pointer_iterator< _type >::operator+=(), ystdex::tuple_iterator< _tIter, _tTraits, _tSlaves >::operator+=(), ystdex::prototyped_iterator< _type, _fUpdater >::operator+=(), ystdex::subscriptive_iterator< _tCon, _type, _tDifference, _tPointer, _tReference >::operator+=(), ystdex::bitseg_iterator< _vN, _bEndian >::operator-=(), ystdex::pointer_iterator< _type >::operator-=(), ystdex::tuple_iterator< _tIter, _tTraits, _tSlaves >::operator-=(), ystdex::transposed_iterator< _tIter >::operator-=(), ystdex::prototyped_iterator< _type, _fUpdater >::operator-=(), ystdex::subscriptive_iterator< _tCon, _type, _tDifference, _tPointer, _tReference >::operator-=(), YSLib::PostQuitMessage(), ystdex::prev_if(), ystdex::prev_if_eq(), ystdex::block_buffer::read(), ReadLink(), YSLib::UI::HexViewArea::Refresh(), ystdex::basic_string_view< _tChar, _tTraits >::remove_prefix(), ystdex::basic_string_view< _tChar, _tTraits >::remove_suffix(), platform_ex::Reset(), ystdex::str_find(), ystdex::str_find_first_not_of(), ystdex::str_find_first_of(), ystdex::str_find_last_not_of(), ystdex::str_find_last_of(), ystdex::str_rfind(), ystdex::basic_string_view< _tChar, _tTraits >::substr(), ytest::timing::total(), ytest::timing::total_c(), NPL::A1::TransformNodeSequence(), ystdex::trivially_copy_n(), ystdex::trivially_move_n(), ystdex::unpack_uint(), YSLib::UI::HexViewArea::UpdateData(), YSLib::Text::VerifyEncoding(), CHRLib::VerifyUC(), ystdex::block_buffer::write() , 以及 ystdex::write().

YF_API int platform::oflag

在文件 FileIO.h 第 504 行定义.

参考自 uopen().

while p platform::p

在文件 YCLib/FileSystem.h 第 225 行定义.

参考自 YSLib::AccessNode(), YSLib::AccessNodePtr(), YSLib::AddMIMEItems(), ystdex::any::any_cast(), YSLib::GHEvent< _tRet(_tParams...)>::GEquality< _tRet, _tParams >::AreEqual(), YSLib::UI::ClearFocusingOf(), YSLib::Drawing::CompactPixmap::CompactPixmap(), Deref(), platform_ex::Detach(), YSLib::UI::DoReleaseFocus(), YSLib::UI::DoRequestFocus(), ystdex::dynamic_pointer_cast(), NPL::A1::EvaluateContextFirst(), YSLib::Drawing::FetchDefaultTypeface(), YSLib::UI::FetchTopLevel(), ystdex::get_init(), ystdex::any_ops::holder_handler< _tHolder >::get_pointer(), ystdex::get_raw(), ystdex::any_ops::value_handler< _tHolder >::get_reference_impl(), YSLib::Drawing::FontFamily::GetTypefacePtr(), YSLib::Drawing::FontFamily::GetTypefaceRef(), YSLib::Drawing::HSL::HSL(), YSLib::UI::ImplDeDtor(), YSLib::Drawing::ImplDeDtor(), ystdex::is_undereferenceable(), YSLib::UI::IsFocused(), ystdex::iterate_exceptions(), ystdex::make_observer(), YSLib::UI::MakeLabel(), ystdex::any_ops::input_iterator_handler< _type >::manage(), YSLib::UI::Menu::Menu(), Nonnull(), ystdex::ntctschr(), ystdex::openmode_conv(), YSLib::operator!=(), platform::UnmapDelete::operator()(), YSLib::Drawing::HBitmap::Deleter::operator()(), ystdex::free_delete< _type >::operator()(), ystdex::free_delete< _type[]>::operator()(), ystdex::temporary_buffer_delete< _type[]>::operator()(), ystdex::allocator_delete< _tAlloc >::operator()(), YSLib::operator==(), PDefH(), ystdex::polymorphic_cast(), ystdex::polymorphic_crosscast(), NPL::PrintNode(), ystdex::pvoid(), YSLib::UI::ProgressBar::Refresh(), YSLib::UI::ReleaseFocusCascade(), YSLib::UI::ReleaseFocusFrom(), YSLib::UI::RequestFocusCascade(), YSLib::UI::RequestFocusFrom(), YSLib::reset(), ystdex::block_buffer::set(), YSLib::Drawing::Font::SetStyle(), ystdex::share_raw(), YSLib::UI::Caret::Stop(), ystdex::str_find(), ystdex::str_find_first_not_of(), ystdex::str_find_first_of(), ystdex::str_find_last_not_of(), ystdex::str_find_last_of(), ystdex::str_rfind(), YSLib::UI::TabControl::SwitchPage(), YSLib::TraceForOutermost(), NPL::TransformToSyntaxNode(), YSLib::TranslateTime(), ystdex::any::unchecked_any_cast(), ystdex::unique_raw(), ystdex::any::unsafe_any_cast(), YSLib::UI::TextBox::UpdateTextBoxClippedText(), YSLib::ValueObject::ValueObject(), platform_ex::Windows::YB_NONNULL() , 以及 YSLib::GUIHost::~GUIHost().

YF_API int mode_t platform::pmode = 0) ynothrowv

在文件 FileIO.h 第 504 行定义.

参考自 uopen().

union _vA ::IntegerType platform::RGBA

初始值:
{
using Trait = XYZATrait<_vR, _vG, _vB, _vA>

在文件 Video.h 第 193 行定义.

YF_API platform::size_t = 1

在文件 FileIO.h 第 1262 行定义.

参考自 YSLib::Drawing::ClearImage(), YSLib::Drawing::Fill(), ystdex::temporary_buffer< _type >::temporary_buffer(), TryGetCurrentWorkingDirectory() , 以及 ystdex::vfmtlen().

const _tString& path platform::ynothrow

初始值:
{
return !path.empty() && !IsSlash(path.back())
&& path.back() != YCL_PATH_DELIMITER
YSLib::path
YF_API const char * path
Definition: Initialization.h:74
platform::IsSlash
yconstfn bool IsSlash(_tChar c) ynothrow
Definition: YCLib/FileSystem.h:138

在文件 YCLib/FileSystem.h 第 303 行定义.

bool follow_link platform::ynothrowv

初始值:
{
return IsSlash(Deref(path)) || platform::FindColon(path)
platform::Deref
yconstfn auto Deref(_type &&p) -> decltype(*p)
断言并解引用非空指针。
Definition: Debug.h:440
YSLib::path
YF_API const char * path
Definition: Initialization.h:74
platform::IsSlash
yconstfn bool IsSlash(_tChar c) ynothrow
Definition: YCLib/FileSystem.h:138

在文件 FileIO.h 第 491 行定义.