ISO 9660 Level 3

今度こそISO 9660 Level 3に対応しました。
iso_file_sink_impl.hpp
iso_file_source_impl.hpp


ISO Level2とLevel3の違いは、Level3が複数エクステントに対応していることです。
ISO 9660では構造上、エクステント(ファイルの内容)のサイズが4GBまでに制限されていますが、一つのファイルに対して、複数のエクステントを用意することで4GBより大きなファイルも扱えるわけです。
基本的な構造はLevel2と同じなので、これまでのiso_file_sink/iso_file_sourceはraw_iso_file_sink/raw_iso_file_sourceに改名して、raw版のラッパーとして実装しています。


Level3用のテストも用意しました。
iso9660_lv3_test.cpp
4GB超のファイルでテストすると時間がかかるので、最大エクステントサイズを指定できるようにして、そのサイズより大きなファイルのエクステントが分割されているかどうか確認しています。
別途、4GB超のファイルも1回だけテストしておけば問題ないでしょう。