続 Rock Ridgeを含めた共通化

だいぶ考えがまとまってきました。
Rock Ridgeでは実際のファイル名とファイルIDが異なるため、ディレクトリレコードのファイルIDに基づく二分探索ができません。
このため、rock_ridge_file_sourceはディレクトリのトラバースに二分探索を使わないで済むように書き直していたわけですが、この手法はISO 9660やJolietでも使うことができます。
こうすると、ファイルIDをパースする必要がないため、ディレクトリレコードのパースを単純化&共通化できます。
この方針でディレクトリレコードのパースを専門に行うクラスiso_directory_readerを作成しました。
iso_directory_reader.hpp


このiso_directory_readerを使うひとつ上のクラスiso_data_readerまでできました。
iso_data_reader.hpp
書きかけでコンパイルも試していませんが、ディレクトリのトラバース処理を分離できた格好です。
あとは、ディレクトリのトラバースと親パスの管理を追加すれば完成です。