VMime Book 日本語訳 第4章 4.5
2020-07-01 K.OHWADA
原文
VMime Book: A Developer’s Guide To VMime
https://www.vmime.org/public/documentation/book/vmime-book.pdf
第4章 基本
Basics
ページ内 目次
4.5 ストリーム
4.5.1 ストリームと ストリームアダプタ
4.5.2 ストリームフィルター
4.5 ストリーム
Streams
4.5.1 ストリームと ストリームアダプタ
Streams and stream adapters
ストリームは、基盤となるシステムが何であれ、データの読み取りまたは書き込みを許可します。
ハードディスク上のファイル、リモートサービスに接続されたソケット...
ストリームには、入力ストリーム(データを読み取ることができる)と出力ストリーム(データを書き込むことができる)の2種類があります。
互換性と利便性のために、次のような一部のアダプターが提供されています。
- inputStreamAdapterおよびoutputStreamAdapter:
VMimeで標準のC ++ iostreamを使用できるようにします。
-inputStreamStringAdapterおよびoutputStreamStringAdapter:
vmime :: stringオブジェクトを使用してデータの読み取り/書き込みを行います
次の例は、ストリームアダプタを使用して現在の日付を標準出力に書き込む2つの方法を示しています。
リスト4.7:ストリームアダプターの使用
Using stream adapters
// Get current date and time const vmime::datetime date = vmime::datetime::now(); // 1. Using outputStreamAdapter vmime::utility::outputStreamAdapter out(std::cout); std::cout << ”Current date is: ”; date.generate(out); std::cout << std::endl; // 2. Using outputStreamStringAdapter vmime::string dateStr; vmime:: utility ::outputStreamStringAdapter outStr(dateStr); date.generate(outStr); std::cout << ”Current date is: ” << dateStr << std::endl;
4.5.2 ストリームフィルター
Stream filters
入力ストリームと出力ストリームをフィルタリングして、インライン変換を実行できます
(たとえば、「\ r \ n」シーケンスを次のように変換するフィルターがあります。
vmime:: utility :: filteredInputStreamまたは
vmime :: Utility :: filteredOutputStreamは、アダプターのように使用されます(一部のフィルターはパラメーターも受け入れます。ドキュメントを参照してください)
VMimeで最も便利なフィルター(そしておそらくあなたが必要とする唯一のフィルター)は、charsetのインライン変換を実行するcharsetFilteredOutputStreamです。
使用方法については、4.7を参照してください。
注:
フィルター処理された出力ストリームの使用が終了したら、そのストリームでflush()を呼び出して内部バッファーをフラッシュすることが重要です。 flush()が呼び出されない場合、すべてのデータが基になるストリームに書き込まれるとは限りません。