hamigaki.png

前のページ 上に戻る ホーム 次のページ

Class template basic_zip_file_sink

hamigaki::archivers::basic_zip_file_sink —

ZIPファイルへの書き込み専用アクセスを提供するSinkモデル

Synopsis

template<typename SeekableSink, typename Path = boost::filesystem::path> 
class basic_zip_file_sink {
public:
  // types
  typedef char                    char_type;  
  typedef implementation defined  category;   
  typedef Path                    path_type;  
  typedef zip::basic_header<Path> header_type;

  // construct/copy/destruct
  basic_zip_file_sink(const SeekableSink&);

  // Boost.Iostreams implementation
  std::streamsize write(const char_type*, std::streamsize);
  void close();

  // Hamigaki.Archivers implementation
  void create_entry(const zip::basic_header<Path>&);
  void rewind_entry();
  void close_archive();

  // modifiers
  void password(const std::string&);
};

Description

受け取ったSeekableSinkへ複数のファイルデータをZIPファイルとして書き出すことができる。

モデルとなるコンセプト:Sink, ClosableDevice

basic_zip_file_sink construct/copy/destruct

  1. basic_zip_file_sink(const SeekableSink& sink);

basic_zip_file_sink Boost.Iostreams implementation

  1. std::streamsize write(const char_type* s, std::streamsize n);
    Effects:

    create_entry()に渡したヘッダのmethodに従い、圧縮したデータを書き出す。

    但し、ヘッダのcompressed_sizeに値が設定されている場合は、予め圧縮されたデータを入力として渡さなければならない。

    Throws: 圧縮後のサイズが、ヘッダのfile_sizeを超えた場合、give_up_compression
  2. void close();

basic_zip_file_sink Hamigaki.Archivers implementation

  1. void create_entry(const zip::basic_header<Path>& head);
    Effects: 新しいエントリを作成し、書き込みの対象とする
  2. void rewind_entry();
    Effects: 現在のエントリの圧縮メソッドをstoreに変更し、書き込み位置を先頭に戻す
  3. void close_archive();
    Effects: セントラルディレクトリを出力し、アーカイブを閉じる。出力先の外部SeekableSinkも閉じられる。

basic_zip_file_sink modifiers

  1. void password(const std::string& pswd);
    Effects: 暗号化に用いるパスワードをpswdに設定する
製作著作 © 2006-2008 Takeshi Mouri

前のページ 上に戻る ホーム 次のページ