AbstractProtected_The currently-held chapter list (may not yet be loaded from disk).
Protected_Whether chapters have been loaded from disk at least once.
Protected_Whether the in-memory chapter list differs from what is on disk.
Returns true if the in-memory chapter list has been modified.
Returns the held chapter list without triggering a disk read. Useful for mock implementations in tests.
AbstractgetReturns the current chapter list, loading from disk on first call.
The file stream to read from (used only on first call).
The chapter list.
AbstractreadReads chapters from disk into _chapters.
The file stream.
true if chapters were found on disk.
Writes the chapter list to disk only if it has been modified.
The file stream.
true if successful (or if no write was needed).
Updates the chapter list, marking it as modified if the new list differs from the current one or if the holder was not yet loaded.
Replacement chapter list.
Sets _modified directly (used in tests / mock subclasses).
New modified state.
AbstractwriteWrites _chapters to disk.
The file stream.
true on success.
Abstract base class for chapter list holders.
Implements the lazy-read / dirty-write pattern used by both Nero and QuickTime chapter implementations: