Jazz2::AssetPacker::Iso9660Reader class

Reads an ISO 9660 file system.

Only as much of the format as taking a volume apart again requires: the descriptors, so a generated one can keep the identity of the one it replaces, and the directory hierarchy, so the files that are not being replaced can be carried over.

Public types

struct Entry
One entry of a directory.

Constructors, destructors, conversion operators

Iso9660Reader()

Public functions

auto Open(ISectorReader& reader, std::uint32_t trackStartLba) -> bool
Reads the volume descriptors of the file system in the specified track.
auto ReadDirectory(std::uint32_t lba, std::uint32_t size, SmallVectorImpl<Entry>& entries) -> bool
Reads the entries of a directory, leaving out the . and .. records.
auto GetPrimaryDescriptor() const -> ArrayView<const std::uint8_t>
The primary volume descriptor, exactly as it is stored.
auto GetSupplementaryDescriptor() const -> ArrayView<const std::uint8_t>
The Joliet supplementary volume descriptor, or an empty view if the volume has none.
auto GetRootLba() const -> std::uint32_t
Absolute address of the root directory, of the Joliet hierarchy if the volume has one.
auto GetRootSize() const -> std::uint32_t
Size of the extent holding the root directory.
auto GetVolumeSpaceSize() const -> std::uint32_t
Number of logical sectors the volume declares, which is not always the whole track.

Function documentation

bool Jazz2::AssetPacker::Iso9660Reader::Open(ISectorReader& reader, std::uint32_t trackStartLba)

Reads the volume descriptors of the file system in the specified track.

Parameters
reader Provides the sectors of the track
trackStartLba Absolute address the track begins at, which its system area is relative to