YSTest: YSLib::Text::TextFileBuffer类 参考

YSTest PreAlpha_b800_20170810 The YSLib Test Project

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

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

类 | Public 类型 | Public 成员函数 | Public 属性 | 静态 Public 属性 | Protected 属性 | Private 属性 | 所有成员列表
YSLib::Text::TextFileBuffer类 参考

文本文件块缓冲区。 更多...

`#include <TextManager.h>`

YSLib::Text::TextFileBuffer 的协作图:
[图例]

## 类

class | iterator
| 目标编码迭代器类型。 更多...

## Public 类型

using | BlockType = pair< vector< char16_t >, size_t >
| 缓冲区块类型。 更多...
using | MapType = map< size_t, BlockType >
| 缓冲映射类型。 更多...
using | const_iterator = iterator

## Public 成员函数

| TextFileBuffer (std::streambuf &, Encoding=CharSet::Null)
| 构造：使用流和指定编码。 更多...
BlockType & | operator[] (size_t)
| 块随机访问。 更多...
| DefGetter (const ynothrow, size_t, BlockN, n_block) DefGetter(const ynothrow
| 取缓冲区块数。 更多...
encoding | DefGetter (const ynothrow, size_t, Size, fsize) DefGetter(const ynothrow
encoding n_text_size iterator | GetIterator (size_t)
| 取文本字节位置对应的迭代器。 更多...
size_t | GetPosition (iterator)
| 取迭代器对应的文本字节位置。 更多...
void | Seek (std::streamoff)
| 使用相对于文本位置的（跳过 BOM ）偏移指定的参数设置流缓冲读取位置。 更多...
iterator | begin () ynothrow
| 取文本缓冲区起始迭代器。 更多...
iterator | end () ynothrow
| 取文本缓冲区终止迭代器。 更多...

## Public 属性

| Encoding
encoding | size_t
encoding | TextSize

## 静态 Public 属性

static yconstexpr const size_t | BlockSize = 2048U
| 默认文本区块大小。 更多...

## Protected 属性

std::streambuf & | File
| 流缓冲引用。 更多...

## Private 属性

size_t | fixed_width
| 固定编码每字符的字节数。 更多...
size_t | max_width
| 最大编码每字符的字节数。 更多...
size_t | fsize
Encoding | encoding
size_t | bl
size_t | n_text_size
| 文本大小。 更多...
size_t | n_block
| 区块数。 更多...
MapType | buffer {}
| 缓冲映射。 更多...

## 详细描述

文本文件块缓冲区。

自从
  build 145

在文件 TextManager.h 第 47 行定义.

## 成员类型定义说明

using YSLib::Text::TextFileBuffer::BlockType = pair<vector<char16_t>, size_t>

缓冲区块类型。

保存转换后的文本区块和初始转换偏移状态。

自从
  build 641

在文件 TextManager.h 第 56 行定义.

using YSLib::Text::TextFileBuffer::const_iterator = iterator

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

using YSLib::Text::TextFileBuffer::MapType = map<size_t, BlockType>

缓冲映射类型。

区块号到指定缓冲区快的映射。

自从
  build 273

在文件 TextManager.h 第 63 行定义.

## 构造及析构函数说明

YSLib::Text::TextFileBuffer::TextFileBuffer | ( | std::streambuf & | file,
|  | Encoding | enc = `CharSet::Null`
| ) |  |

explicit

构造：使用流和指定编码。

前置条件
  流支持定位到结尾访问以保证大小等于字符数。

异常

  LoggedEvent | 取文件大小失败。

注解
  编码为 `CharSet::Null` 时自动推断，若无法推断，默认为 CharSet::GBK 。

自从
  build 744

在文件 TextManager.cpp 第 180 行定义.

参考 ystdex::cpp2011::end() , 以及 File.

函数调用图:

## 成员函数说明

TextFileBuffer::iterator YSLib::Text::TextFileBuffer::begin | ( |  | ) |

取文本缓冲区起始迭代器。

自从
  build 460

注解
  指向起始字符。

在文件 TextManager.cpp 第 334 行定义.

YSLib::Text::TextFileBuffer::DefGetter | ( | const ynothrow | ,
|  | size_t | ,
|  | BlockN | ,
|  | n_block |
| ) |  | const

取缓冲区块数。

自从
  build 273

encoding YSLib::Text::TextFileBuffer::DefGetter | ( | const ynothrow | ,
|  | size_t | ,
|  | Size | ,
|  | fsize |
| ) |  | const

TextFileBuffer::iterator YSLib::Text::TextFileBuffer::end | ( |  | ) |

取文本缓冲区终止迭代器。

注解
  指向终止字符后一位置。

在文件 TextManager.cpp 第 340 行定义.

参考 n_block.

参考自 YSLib::Text::CopySliceFrom(), GetIterator() , 以及 GetPosition().

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

TextFileBuffer::iterator YSLib::Text::TextFileBuffer::GetIterator | ( | size_t | pos | ) |

取文本字节位置对应的迭代器。

自从
  build 273

在文件 TextManager.cpp 第 254 行定义.

参考 BlockSize, encoding, end(), File, max_width, n_text_size , 以及 Seek().

参考自 YSLib::Text::CopySliceFrom().

函数调用图:

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

size_t YSLib::Text::TextFileBuffer::GetPosition | ( | TextFileBuffer::iterator | i | ) |

取迭代器对应的文本字节位置。

自从
  build 273

在文件 TextManager.cpp 第 284 行定义.

参考 BlockSize, encoding, end(), File, max_width, n_text_size, Seek() , 以及 YSLib::YAssert().

函数调用图:

TextFileBuffer::BlockType & YSLib::Text::TextFileBuffer::operator[] | ( | size_t | idx | ) |

块随机访问。

前置条件
  断言：参数不大于 `GetBlock()` 。
  断言：需要读取时文本文件已打开。

自从
  build 273

在文件 TextManager.cpp 第 219 行定义.

参考 BlockSize, buffer, CHRLib::c, CHRLib::char16_t(), encoding, File, n_block, n_text_size, Seek(), YSLib::YAssert() , 以及 YB_UNLIKELY.

函数调用图:

void YSLib::Text::TextFileBuffer::Seek | ( | std::streamoff | off | ) |

使用相对于文本位置的（跳过 BOM ）偏移指定的参数设置流缓冲读取位置。

异常

  LoggedEvent | 操作失败。

自从
  build 744

在文件 TextManager.cpp 第 326 行定义.

参考 bl, File , 以及 YB_UNLIKELY.

参考自 GetIterator(), GetPosition() , 以及 operator[]().

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

## 类成员变量说明

size_t YSLib::Text::TextFileBuffer::bl

private

在文件 TextManager.h 第 138 行定义.

参考自 Seek().

yconstexpr const size_t YSLib::Text::TextFileBuffer::BlockSize = 2048U

static

默认文本区块大小。

自从
  build 273

在文件 TextManager.h 第 124 行定义.

参考自 GetIterator(), GetPosition() , 以及 operator[]().

MapType YSLib::Text::TextFileBuffer::buffer {}

private

缓冲映射。

在文件 TextManager.h 第 147 行定义.

参考自 operator[]().

Encoding YSLib::Text::TextFileBuffer::encoding

private

在文件 TextManager.h 第 137 行定义.

参考自 GetIterator(), GetPosition() , 以及 operator[]().

YSLib::Text::TextFileBuffer::Encoding

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

std::streambuf& YSLib::Text::TextFileBuffer::File

protected

流缓冲引用。

自从
  build 744

在文件 TextManager.h 第 131 行定义.

参考自 GetIterator(), GetPosition(), operator[](), Seek() , 以及 TextFileBuffer().

size_t YSLib::Text::TextFileBuffer::fixed_width

private

固定编码每字符的字节数。

注解
  变长编码为 1 。

自从
  build 273;

在文件 TextManager.h 第 156 行定义.

size_t YSLib::Text::TextFileBuffer::fsize

private

自从
  build 622

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

size_t YSLib::Text::TextFileBuffer::max_width

private

最大编码每字符的字节数。

自从
  build 273;

在文件 TextManager.h 第 161 行定义.

参考自 GetIterator() , 以及 GetPosition().

size_t YSLib::Text::TextFileBuffer::n_block

private

区块数。

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

参考自 end() , 以及 operator[]().

size_t YSLib::Text::TextFileBuffer::n_text_size

private

文本大小。

自从
  build 694

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

参考自 GetIterator(), GetPosition() , 以及 operator[]().

encoding YSLib::Text::TextFileBuffer::size_t

在文件 TextManager.h 第 190 行定义.

encoding YSLib::Text::TextFileBuffer::TextSize

在文件 TextManager.h 第 190 行定义.

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

- TextManager.h
- TextManager.cpp