Stany cyklu życia obiektów
Każdy obiekt w załadowanym dokumencie nosi jawny stan cyklu życia z THPDFObjectLifecycleState: olsRaw dla skompresowanych członków zaindeksowanych, lecz niezmaterializowanych, olsParsed dla obiektów zmaterializowanych z bajtów źródłowych bez modyfikacji, olsDirty / olsMustWrite dla obiektów zmodyfikowanych lub wymaganych przez aktualizację, olsFlushed dla obiektów już zserializowanych do dokumentu wyjściowego i olsReleased dla obiektów, którym zwolniono bufory zapasowe
Zapytania o stan
GetLoadedObjectLifecycleState raportuje stan dowolnego numeru obiektu, zwracając olsRaw dla skompresowanych członków, których treść nie została jeszcze zmaterializowana; GetLoadedObjectLifecycleStatistics agreguje liczniki per stan, w tym nowe pola RawCount, ParsedCount i FlushedCount; THPDFObject.MarkRaw, MarkParsed i MarkFlushed ustawiają stany jawnie
Zachowanie przy zapisie
Ścieżki pełnego zapisu przesuwają każdy emitowany obiekt do olsFlushed (obiekt opakowujący i wewnętrzny), migawki transakcji grafu przywracają przechwycony stan przy wycofaniu, a baza aktualizacji przyrostowej nadal resetuje obiekty do olsClean, więc doczepiane rewizje zawierają tylko jawnie pobrudzone wpisy; IsDirty zachowuje pierwotne znaczenie olsDirty lub olsMustWrite, więc nowe stany nigdy nie wyzwalają zbędnych przepisań