![]() |
hamigaki::archivers::basic_lzh_file_sink —
LZHファイルへの書き込み専用アクセスを提供するSinkモデル
template<typename SeekableSink> class basic_lzh_file_sink { public: // types typedef char char_type; typedef implementation defined category; typedef lha::header header_type; // construct/copy/destruct basic_lzh_file_sink(const SeekableSink&); // Boost.Iostreams implementation std::streamsize write(const char_type*, std::streamsize); void close(); // Hamigaki.Archivers implementation void create_entry(const lha::header&); void rewind_entry(); void close_archive(); // modifiers void default_method(const char*); };
受け取ったSeekableSinkへ複数のファイルデータをLZHファイルとして書き出すことができる。
モデルとなるコンセプト:Sink, ClosableDevice
basic_lzh_file_sink
Boost.Iostreams implementationstd::streamsize write(const char_type* s, std::streamsize n);
Effects: |
但し、ヘッダの |
Throws: | 圧縮後のサイズが、ヘッダのfile_size を超えた場合、give_up_compression |
void close();
basic_lzh_file_sink
Hamigaki.Archivers implementationvoid create_entry(const lha::header& head);
Effects: | 新しいエントリを作成し、書き込みの対象とする |
void rewind_entry();
Effects: | 現在のエントリの圧縮メソッドを「-lh0-」に変更し、書き込み位置を先頭に戻す |
void close_archive();
Effects: | LZHエンドマークを出力し、アーカイブを閉じる。出力先の外部SeekableSinkも閉じられる。 |
製作著作 © 2006, 2007 Takeshi Mouri |