Состояния жизненного цикла объектов
Каждый объект загруженного документа несёт явное состояние жизненного цикла из THPDFObjectLifecycleState: olsRaw — для проиндексированных, но ещё не материализованных сжатых членов, olsParsed — для объектов, материализованных из исходных байтов без изменений, olsDirty / olsMustWrite — для изменённых или подлежащих записи при обновлении объектов, olsFlushed — для объектов, уже сериализованных в выходной документ, и olsReleased — для объектов, чьи базовые буферы освобождены
Запросы состояния
GetLoadedObjectLifecycleState сообщает состояние любого номера объекта, возвращая olsRaw для сжатых членов, чьё тело ещё не материализовано; GetLoadedObjectLifecycleStatistics агрегирует счётчики по состояниям, включая новые поля RawCount, ParsedCount и FlushedCount; THPDFObject.MarkRaw, MarkParsed и MarkFlushed устанавливают состояния явно
Поведение при сохранении
Пути полного сохранения переводят каждый записанный объект в olsFlushed (как wrapper, так и внутренний объект), снимки графовых транзакций восстанавливают зафиксированное состояние при откате, а базовая линия инкрементального обновления по-прежнему сбрасывает объекты в olsClean, так что добавленные ревизии содержат только явно изменённые записи; IsDirty сохраняет исходный смысл olsDirty или olsMustWrite, поэтому новые состояния никогда не провоцируют ложные перезаписи