boost.iostreams简介
目标
概要
怎样阅读iostreams文档
惯例
目标
Boost.Iostreams 有3个目标:
*更容易创建标准的C++ streams、stream缓冲、Sources以及Sinks。
*提供一个框架来定义Filters,并将其附加到标准stream和stream缓冲上。
*管理Filters,Sources,Sinks。
例如, Boost.Iostreams 能够被用来创建streams并使其访问TCP连接,或者被当作一个密码学和数据压缩的框架。这个库包含:访问内存映射文件模块,使用操作系统的文件描述符访问文件模块,编码转换模块,使用规则表达式过滤文本模块,行结束符转换模块以及使用zlib、gzip和bzip2格式压缩解压缩模块。
概要
Boost.Iostreams的核心部分是一系列的概念以及将概念模型变为标准中streams和stream buffers的一组模块。
概念
库的基本组成部分包含以下一个概念:
Source概念,它以读取的方式访问字符序列。
Sink概念,它以写的方式访问字符序列。
InputFilter概念,过滤通过Source读取的输入。
OutputFilter概念,过滤向Sink写入的输出
Sources和Sinks以及他们的refinements被成为Devices。InputFilters和OutputFilters以及他们的refinements被成为Filters。
普通的 Streams和Stream Buffers
类模板stream_buffer和stream实现了标准的stream buffers和stream,他们将输入输出操作委托给Device执行。Device通过open,is_open和close成员函数来访问,从而提供了一个与标准的基于文件的streams和stream buffers类似的接口。
过滤Streams和Stream Buffers
为了过滤,Boost.Iostream提供了模板filtering_streambuf和filtering_stream。这些模板的实例化包含一组Filters和Devices。
怎样阅读Iostreams文档
如果你没有使用过这个库, 从阅读Tutorial指南开始。阅读有关使用Devices的所有章节,并且至少阅读有关使用Filters的开始部分章节。及时你以前使用过这个库过去的版本,由于库的接口为了适应异步和非阻塞I/O而做了调整,你也可以看看这个指南。
另外,浏览一下“快速参考”,从而对boost.Iostreams的组成部分有一个概要性的了解。
最后,但你有疑问,并且不能从其他章节中找到答案是,参考“用户指导“,”参考“和FAQ。”用户指导“包含一系列彼此独立的短文。”参考“包含boost.Iostreams对每个公共部分的详细文档。
惯例
文档中介绍的所有类,函数和模板都包含在boost::iostreams名字空间中,除非特别声明,名字空间限制通常都被省略。
std::basic_istream的特化将会被称为标准的input streams,std::basic_ostream的特化将会被称为标准的output stream,std::basic_iostream的特化被称为标准的i/o streams,std::basic_streambuf的特化将会被称为标准的stream buffers。标准的 input streams, output streams以及i/o streams都被称为标准streams。
目标
概要
怎样阅读iostreams文档
惯例
目标
Boost.Iostreams 有3个目标:
*更容易创建标准的C++ streams、stream缓冲、Sources以及Sinks。
*提供一个框架来定义Filters,并将其附加到标准stream和stream缓冲上。
*管理Filters,Sources,Sinks。
例如, Boost.Iostreams 能够被用来创建streams并使其访问TCP连接,或者被当作一个密码学和数据压缩的框架。这个库包含:访问内存映射文件模块,使用操作系统的文件描述符访问文件模块,编码转换模块,使用规则表达式过滤文本模块,行结束符转换模块以及使用zlib、gzip和bzip2格式压缩解压缩模块。
概要
Boost.Iostreams的核心部分是一系列的概念以及将概念模型变为标准中streams和stream buffers的一组模块。
概念
库的基本组成部分包含以下一个概念:
Source概念,它以读取的方式访问字符序列。
Sink概念,它以写的方式访问字符序列。
InputFilter概念,过滤通过Source读取的输入。
OutputFilter概念,过滤向Sink写入的输出
Sources和Sinks以及他们的refinements被成为Devices。InputFilters和OutputFilters以及他们的refinements被成为Filters。
普通的 Streams和Stream Buffers
类模板stream_buffer和stream实现了标准的stream buffers和stream,他们将输入输出操作委托给Device执行。Device通过open,is_open和close成员函数来访问,从而提供了一个与标准的基于文件的streams和stream buffers类似的接口。
过滤Streams和Stream Buffers
为了过滤,Boost.Iostream提供了模板filtering_streambuf和filtering_stream。这些模板的实例化包含一组Filters和Devices。
怎样阅读Iostreams文档
如果你没有使用过这个库, 从阅读Tutorial指南开始。阅读有关使用Devices的所有章节,并且至少阅读有关使用Filters的开始部分章节。及时你以前使用过这个库过去的版本,由于库的接口为了适应异步和非阻塞I/O而做了调整,你也可以看看这个指南。
另外,浏览一下“快速参考”,从而对boost.Iostreams的组成部分有一个概要性的了解。
最后,但你有疑问,并且不能从其他章节中找到答案是,参考“用户指导“,”参考“和FAQ。”用户指导“包含一系列彼此独立的短文。”参考“包含boost.Iostreams对每个公共部分的详细文档。
惯例
文档中介绍的所有类,函数和模板都包含在boost::iostreams名字空间中,除非特别声明,名字空间限制通常都被省略。
std::basic_istream的特化将会被称为标准的input streams,std::basic_ostream的特化将会被称为标准的output stream,std::basic_iostream的特化被称为标准的i/o streams,std::basic_streambuf的特化将会被称为标准的stream buffers。标准的 input streams, output streams以及i/o streams都被称为标准streams。