Sese Framework  x.y.z
A cross-platform framework
载入中...
搜索中...
未找到
sese::io::BaseStreamReader< T > 模板类 参考

输出流包装类,Windows 下 UTF-8 需要特殊处理 更多...

#include <BaseStreamReader.h>

Public 类型

using Ptr = std::shared_ptr<BaseStreamReader<T>>
 

Public 成员函数

 BaseStreamReader (const Stream::Ptr &source)
 构造函数
 
bool read (T &ch)
 读取一个字符
 
std::basic_string< T > readLine ()
 读取一行
 
const ByteBuilder::PtrgetBuffer () noexcept
 由于 BaseStreamReader 的缓存机制,导致缓存尾部数据可能丢失,该函数返回超前未被读取部分数据长度
 

Private 成员函数

int64_t preRead ()
 

Private 属性

Stream::Ptr sourceStream
 
ByteBuilder::Ptr bufferStream
 

详细描述

template<typename T = char>
class sese::io::BaseStreamReader< T >

输出流包装类,Windows 下 UTF-8 需要特殊处理

成员类型定义说明

◆ Ptr

template<typename T = char>
using sese::io::BaseStreamReader< T >::Ptr = std::shared_ptr<BaseStreamReader<T>>

构造及析构函数说明

◆ BaseStreamReader()

template<typename T = char>
sese::io::BaseStreamReader< T >::BaseStreamReader ( const Stream::Ptr & source)
inlineexplicit

构造函数

参数
source欲包装流

引用了 sese::io::BaseStreamReader< T >::bufferStream , 以及 sese::io::BaseStreamReader< T >::sourceStream.

成员函数说明

◆ getBuffer()

template<typename T = char>
const ByteBuilder::Ptr & sese::io::BaseStreamReader< T >::getBuffer ( )
inlinenoexcept

由于 BaseStreamReader 的缓存机制,导致缓存尾部数据可能丢失,该函数返回超前未被读取部分数据长度

返回
超前数据长度 用于缓存超前部分数据
缓存

引用了 sese::io::BaseStreamReader< T >::bufferStream.

◆ preRead()

◆ read()

template<typename T = char>
bool sese::io::BaseStreamReader< T >::read ( T & ch)
inline

读取一个字符

参数
ch字符容器
返回
读取是否成功

未命中缓存,尝试从源中读取

FileStream 读至文件尾返回值为 0 源已被读完

嘿嘿,读取到一个字符

引用了 sese::io::BaseStreamReader< T >::bufferStream , 以及 sese::io::BaseStreamReader< T >::preRead().

被这些函数引用 sese::io::BaseStreamReader< T >::readLine().

◆ readLine()

template<typename T = char>
std::basic_string< T > sese::io::BaseStreamReader< T >::readLine ( )
inline

读取一行

返回
返回读取的字符串,长度为零测读取完成

有东西可读

引用了 sese::io::BaseStreamReader< T >::bufferStream, sese::io::BaseStreamReader< T >::preRead() , 以及 sese::io::BaseStreamReader< T >::read().

类成员变量说明

◆ bufferStream

◆ sourceStream

template<typename T = char>
Stream::Ptr sese::io::BaseStreamReader< T >::sourceStream
private

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