| Type | Description |
|---|---|
EPdfCacheError | Segnala budget, dimensioni di voce e partecipanti non validi |
TPdfCacheKind | Classifica scene di pagina (pckPageScene), tile (pckTile), miniature (pckThumbnail), font di sistema (pckSystemFont), dati di struttura (pckStructure), istantanee di testo (pckTextSnapshot), istantanee di oggetti di pagina (pckPageObjectSnapshot), stream decodificati (pckDecodedStream) e voci applicative (pckApplication) |
TPdfCacheGovernorStatistics | Riporta il budget, i byte trattenuti correnti e di picco, i byte bloccati, il numero di voci, le prenotazioni, gli accessi, le evizioni e i rifiuti; i campi includono MaxBytes, StoredBytes, PeakStoredBytes, PinnedBytes, EntryCount, ReservationCount, TouchCount, EvictionCount, RejectionCount |
TPdfCacheParticipant | Riceve callback sincroni EvictCacheEntry dopo che il governatore ha rimosso un token dalla propria contabilità |
TPdfCacheGovernorEntry | Record contabile interno esposto per compatibilità con il compilatore; i campi includono Token, Participant, Kind, StoredBytes, LastUsed e Pinned |
TPdfCacheGovernor | Registro di token thread-safe con un unico ordine globalmente least-recently-used tra partecipanti e tipi di cache |
| Member | Description |
|---|---|
Create(AMaxBytes: Int64) | Crea un governatore con un budget di byte non negativo |
Destroy | Cancella le voci registrate prima di rilasciare lo stato di sincronizzazione |
Reserve | Prenota byte e restituisce un token positivo, effettuando l'evizione di voci LRU globali quando possibile o restituendo zero quando la voce non può trovarvi spazio |
Touch | Sposta un token esistente nella posizione più recente |
Release | Rimuove la contabilità di un token senza invocare la sua callback di evizione |
SetPinned | Blocca o sblocca una voce in uso e riduce le voci dopo lo sblocco |
Clear | Rimuove tutti i token e chiede a ogni partecipante di rilasciare la voce trattenuta |
Contains | Verifica se un token resta registrato |
UsageForKind | Restituisce i byte trattenuti per un TPdfCacheKind |
EntryCountForKind | Restituisce il numero di voci registrate per un TPdfCacheKind |
Statistics | Restituisce un'istantanea di telemetria protetta da lock |
MaxBytes | Legge o modifica il budget totale e riduce immediatamente le voci non bloccate dopo una diminuzione |
Il governatore non è mai proprietario dei partecipanti né dei loro dati trattenuti
Ogni partecipante deve sopravvivere a tutti i propri token registrati e non deve sollevare eccezioni da EvictCacheEntry
I callback girano in modo sincrono senza che il lock del governatore sia trattenuto, quindi i partecipanti possono chiamare in sicurezza Release per token correlati
Le voci bloccate possono mantenere temporaneamente StoredBytes sopra un valore MaxBytes ridotto finché l'ultimo utente non le sblocca
FPDF_RENDER_LIMITEDIMAGECACHE resta disponibile tramite reLimitCache e applica il limite nativo fisso di PDFium per la cache immagini per pagina
PDFium non espone alcun ABI pubblico per un budget di byte di cache a livello di processo configurabile o interrogabile
Il governatore misura quindi gli oggetti trattenuti di proprietà di PDFium Delphi Component e usa una stima esplicita per le scene di pagina analizzate non trasparenti