PDFium Delphi Component Docs

FPdfCache 유닛

유닛: FPdfCache
소유자가 필요할 때 항목을 해제할 수 있는 보관형 PDF 데이터를 위한 공유 바이트 예산 거버너를 제공합니다

Types

TypeDescription
EPdfCacheError잘못된 예산, 항목 크기, 참여자를 보고합니다
TPdfCacheKind페이지 씬(pckPageScene), 타일(pckTile), 썸네일(pckThumbnail), 시스템 폰트(pckSystemFont), 구조 데이터(pckStructure), 텍스트 스냅샷(pckTextSnapshot), 페이지 객체 스냅샷(pckPageObjectSnapshot), 디코딩된 스트림(pckDecodedStream), 애플리케이션 항목(pckApplication)을 분류합니다
TPdfCacheGovernorStatistics예산, 현재와 최대 보관 바이트, 고정된 바이트, 항목 수, 예약, 터치, 퇴거, 거부를 보고합니다. 필드에는 MaxBytes, StoredBytes, PeakStoredBytes, PinnedBytes, EntryCount, ReservationCount, TouchCount, EvictionCount, RejectionCount가 있습니다
TPdfCacheParticipant거버너가 회계에서 토큰을 제거한 뒤 동기 EvictCacheEntry 콜백을 받습니다
TPdfCacheGovernorEntry컴파일러 호환성을 위해 노출된 내부 회계 레코드이며, 필드에는 Token, Participant, Kind, StoredBytes, LastUsed, Pinned가 있습니다
TPdfCacheGovernor참여자와 캐시 종류 전체에 하나의 전역 LRU 순서를 두는 스레드 안전 토큰 레지스트리입니다

TPdfCacheGovernor members

MemberDescription
Create(AMaxBytes: Int64)음수가 아닌 바이트 예산으로 거버너를 만듭니다
Destroy동기화 상태를 해제하기 전에 등록된 항목을 지웁니다
Reserve바이트를 예약하고 양수 토큰을 반환합니다. 가능하면 전역 LRU 항목을 퇴거시키고, 항목이 들어갈 수 없으면 0을 반환합니다
Touch기존 토큰을 가장 최근 위치로 옮깁니다
Release퇴거 콜백을 부르지 않고 토큰 회계를 제거합니다
SetPinned사용 중인 항목을 고정하거나 고정을 풀며, 고정 해제 후에는 여유를 만듭니다
Clear모든 토큰을 제거하고 각 참여자에게 보관 항목 해제를 요청합니다
Contains토큰이 아직 등록되어 있는지 검사합니다
UsageForKind하나의 TPdfCacheKind에 대한 보관 바이트를 반환합니다
EntryCountForKind하나의 TPdfCacheKind에 대한 등록 항목 수를 반환합니다
Statistics잠금으로 보호되는 텔레메트리 스냅샷을 반환합니다
MaxBytes전체 예산을 읽거나 바꾸며, 줄인 직후 고정되지 않은 항목을 곧바로 잘라냅니다

Ownership and callback contract

거버너는 참여자나 그 보관 데이터를 소유하지 않습니다

모든 참여자는 자신이 등록한 모든 토큰보다 오래 살아 있어야 하며, EvictCacheEntry에서 예외를 던져서는 안 됩니다

콜백은 거버너 잠금을 잡지 않은 채 동기적으로 실행되므로, 참여자는 관련 토큰에 대해 안전하게 Release를 호출할 수 있습니다

고정된 항목은 마지막 사용자가 고정을 풀 때까지 줄어든 MaxBytes 값을 넘는 StoredBytes를 일시적으로 유지할 수 있습니다

PDFium boundary

FPDF_RENDER_LIMITEDIMAGECACHE는 reLimitCache를 통해 계속 사용할 수 있으며, PDFium의 고정된 페이지별 네이티브 이미지 캐시 한도를 적용합니다

PDFium은 설정하거나 조회할 수 있는 프로세스 전체 캐시 바이트 예산에 대한 공개 ABI를 제공하지 않습니다

따라서 거버너는 PDFium Delphi Component가 소유한 보관 객체를 측정하고, 불투명하게 파싱된 페이지 씬에는 명시적 추정치를 사용합니다

See Also

TPdf cache governor, TPdfTileCache, ConfigureSystemFontCacheGovernor