## Class template basic_iso_file_source

hamigaki::archivers::basic_iso_file_source —

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

## Synopsis

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

      // construct/copy/destruct
      explicit basic_iso_file_source(const Source&);

      // Boost.Iostreams implementation
      std::streamsize read(const char*, std::streamsize);

      // Hamigaki.Archivers implementation
      bool next_entry();
      iso::header header() const;

      // queries
      std::vector<iso::volume_desc> volume_descs() const;

      // modifiers
      void select_volume_desc(std::size_t, bool = true);
    };

## Description

Sourceを受け取り、ISOイメージファイルとしてフォーマットを解釈した結果を読み出すことができる。

モデルとなるコンセプト:Source

### `basic_iso_file_source` construct/copy/destruct

1.     explicit basic_iso_file_source(const Source& src);

### `basic_iso_file_source` Boost.Iostreams implementation

1.     std::streamsize read(const char* s, std::streamsize n);

### `basic_iso_file_source` Hamigaki.Archivers implementation

1.     bool next_entry();

   Effects: | 読み出しの対象を次のエントリに移動する。ボリューム記述子が`select_volume_desc()`によって選択されていない場合は、最初のボリューム記述子が選択される。
   Returns: | 次のエントリがあれば`true`、なければ`false`

2.     iso::header header() const;

   Returns: | ヘッダ情報

### `basic_iso_file_source` queries

1.     std::vector<iso::volume_desc> volume_descs() const;

   Returns: | ボリューム記述子のベクタ

### `basic_iso_file_source` modifiers

1.     void select_volume_desc(std::size_t index, bool use_rrip = true);

   Effects: | `index`番目のボリューム記述子を読み出しように選択する。`use_rrip`が`true`ならば、Rock Ridge拡張が有効になる。

| 製作著作 © 2006, 2007 Takeshi Mouri