| Type | Description |
|---|---|
EPdfCacheError | Hlásí neplatné rozpočty, velikosti položek a účastníky |
TPdfCacheKind | Klasifikuje scény stránek (pckPageScene), dlaždice (pckTile), miniatury (pckThumbnail), systémová písma (pckSystemFont), strukturní data (pckStructure), textové snímky (pckTextSnapshot), snímky objektů stránek (pckPageObjectSnapshot), dekódované proudy (pckDecodedStream) a aplikační položky (pckApplication) |
TPdfCacheGovernorStatistics | Hlásí rozpočet, aktuální a špičkové uchované bajty, připíchnuté bajty, počet položek, rezervace, dotyky, evikce a odmítnutí; pole zahrnují MaxBytes, StoredBytes, PeakStoredBytes, PinnedBytes, EntryCount, ReservationCount, TouchCount, EvictionCount, RejectionCount |
TPdfCacheParticipant | Přijímá synchronní zpětná volání EvictCacheEntry poté, co governor odstranil token ze své účetnosti |
TPdfCacheGovernorEntry | Interní účetní záznam vystavený pro kompatibilitu s kompilátorem; pole zahrnují Token, Participant, Kind, StoredBytes, LastUsed a Pinned |
TPdfCacheGovernor | Thread-safe registr tokenů s jediným globálním pořadím least-recently-used napříč účastníky a druhy mezipaměti |
| Member | Description |
|---|---|
Create(AMaxBytes: Int64) | Vytvoří governor s nezáporným bajtovým rozpočtem |
Destroy | Vymaže registrované položky před uvolněním synchronizačního stavu |
Reserve | Rezervuje bajty a vrátí kladný token, přičemž pokud možno evikuje globální LRU položky, nebo vrátí nulu, když se položka nevejde |
Touch | Přesune existující token na nejnovější pozici |
Release | Odstraní účetnictví tokenu bez vyvolání jeho evikčního zpětného volání |
SetPinned | Chrání nebo zruší ochranu používané položky a po odpíchnutí provede zúžení |
Clear | Odstraní všechny tokeny a požádá každého účastníka o uvolnění jeho uchované položky |
Contains | Testuje, zda token zůstává registrován |
UsageForKind | Vrací uchované bajty pro jeden TPdfCacheKind |
EntryCountForKind | Vrací počet registrovaných položek pro jeden TPdfCacheKind |
Statistics | Vrací zámekem chráněný telemetrický snímek |
MaxBytes | Čte nebo mění celkový rozpočet a po snížení okamžitě zúží nepřipíchnuté položky |
Governor nikdy nevlastní účastníky ani jejich uchovaná data
Každý účastník musí přežívat všechny své registrované tokeny a nesmí vyvolávat výjimku z EvictCacheEntry
Zpětná volání běží synchronně bez drženého zámku governoru, takže účastníci mohou bezpečně volat Release pro související tokeny
Připíchnuté položky mohou dočasně udržet StoredBytes nad sníženou hodnotou MaxBytes, dokud je poslední uživatel neodpíchne
FPDF_RENDER_LIMITEDIMAGECACHE zůstává dostupný přes reLimitCache a aplikuje pevný nativní limit mezipaměti obrázků PDFium na stránku
PDFium nevystavuje žádné public ABI pro konfigurovatelný či dotazovatelný celoprocesový bajtový rozpočet mezipaměti
Governor proto měří uchované objekty vlastněné PDFiumPas a pro neprůhledné parsované scény stránek používá explicitní odhad