Boost.Iostream(3)

公開:2006-04-22 21:46
更新:2020-02-15 04:36
カテゴリ:boost,windows,c++

2.1.2. Writing a container_sourceの勉強メモ

http://www.boost.org/libs/iostreams/doc/tutorial/container_source.html

・読み取りのみを行うクラスはSourceと呼ばれる。
・Sourceクラス中には下記の型定義を行う。
-キャラクタタイプを示す、char_type。
-デバイスがサポートするI/O操作を示すcategory
 例)typedef source_tag category;//読み取りをサポートする。
・std::streamsize read(char s, std::streamsize n)メソッドを定義する。
-これはnだけデータを読み取とり、sにセットする
-返却値は実際に読み取ったサイズを返却する。EOFもしくは読み取った数が0の場合は-1を返却する。
・ノンブロッキングデバイス...readメソッドでストリームの残りサイズがまだnより大きく、EOFにも達していないが、要求されたnよりも小さいデータを返却する場合があるデバイス。ノンブロッキングデバイスはstd::iostreamとうまく協調できない。
・sourceクラス
-char_typeやcategoryがあらかじめ定義されているクラス
・Boost.Iostreamにはfiltering streams や stream buffersのコンストラクタにboost::iterator_rangeを直接指定できる。これによってコンテナを容易に読み取ることができる。