## Class template basic_iso_file_sink

hamigaki::archivers::basic_iso_file_sink —

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

## Synopsis

    template<typename Sink>
    class basic_iso_file_sink {
    public:
      // types
      typedef char                   char_type;
      typedef implementation defined category;
      typedef iso::header            header_type;

      // construct/copy/destruct
      basic_iso_file_sink(const Sink&,
                          const iso::volume_info& = iso::volume_info(),
                          boost::uint32_t = 0);

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

      // Hamigaki.Archivers implementation
      void create_entry(const iso::header&);
      void rewind_entry();
      void close_archive();

      // modifiers
      void add_volume_desc(const iso::volume_desc&);
    };

## Description

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

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

### `basic_iso_file_sink` construct/copy/destruct

1.     basic_iso_file_sink(const Sink& sink,
                           const iso::volume_info& info = iso::volume_info(),
                           boost::uint32_t max_extent_size = 0);

### `basic_iso_file_sink` Boost.Iostreams implementation

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

2.     void close();

### `basic_iso_file_sink` Hamigaki.Archivers implementation

1.     void create_entry(const iso::header& head);

   Effects: | 新しいエントリを作成し、書き込みの対象とする。基本ボリューム記述子が`add_volume_desc()`によって追加されていない場合は、空の基本ボリューム記述子が追加される。

2.     void rewind_entry();

   Throws: | std::runtime_error

3.     void close_archive();

   Effects: | 終端ブロックを出力し、アーカイブを閉じる。出力先の外部Sinkも閉じられる。

### `basic_iso_file_sink` modifiers

1.     void add_volume_desc(const iso::volume_desc& desc);

   Effects: | ボリューム記述子`desc`を追加する。

| 製作著作 © 2006-2008 Takeshi Mouri