| Type | Description |
|---|---|
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 순서를 두는 스레드 안전 토큰 레지스트리입니다 |
| Member | Description |
|---|---|
Create(AMaxBytes: Int64) | 음수가 아닌 바이트 예산으로 거버너를 만듭니다 |
Destroy | 동기화 상태를 해제하기 전에 등록된 항목을 지웁니다 |
Reserve | 바이트를 예약하고 양수 토큰을 반환합니다. 가능하면 전역 LRU 항목을 퇴거시키고, 항목이 들어갈 수 없으면 0을 반환합니다 |
Touch | 기존 토큰을 가장 최근 위치로 옮깁니다 |
Release | 퇴거 콜백을 부르지 않고 토큰 회계를 제거합니다 |
SetPinned | 사용 중인 항목을 고정하거나 고정을 풀며, 고정 해제 후에는 여유를 만듭니다 |
Clear | 모든 토큰을 제거하고 각 참여자에게 보관 항목 해제를 요청합니다 |
Contains | 토큰이 아직 등록되어 있는지 검사합니다 |
UsageForKind | 하나의 TPdfCacheKind에 대한 보관 바이트를 반환합니다 |
EntryCountForKind | 하나의 TPdfCacheKind에 대한 등록 항목 수를 반환합니다 |
Statistics | 잠금으로 보호되는 텔레메트리 스냅샷을 반환합니다 |
MaxBytes | 전체 예산을 읽거나 바꾸며, 줄인 직후 고정되지 않은 항목을 곧바로 잘라냅니다 |
거버너는 참여자나 그 보관 데이터를 소유하지 않습니다
모든 참여자는 자신이 등록한 모든 토큰보다 오래 살아 있어야 하며, EvictCacheEntry에서 예외를 던져서는 안 됩니다
콜백은 거버너 잠금을 잡지 않은 채 동기적으로 실행되므로, 참여자는 관련 토큰에 대해 안전하게 Release를 호출할 수 있습니다
고정된 항목은 마지막 사용자가 고정을 풀 때까지 줄어든 MaxBytes 값을 넘는 StoredBytes를 일시적으로 유지할 수 있습니다
FPDF_RENDER_LIMITEDIMAGECACHE는 reLimitCache를 통해 계속 사용할 수 있으며, PDFium의 고정된 페이지별 네이티브 이미지 캐시 한도를 적용합니다
PDFium은 설정하거나 조회할 수 있는 프로세스 전체 캐시 바이트 예산에 대한 공개 ABI를 제공하지 않습니다
따라서 거버너는 PDFium Delphi Component가 소유한 보관 객체를 측정하고, 불투명하게 파싱된 페이지 씬에는 명시적 추정치를 사용합니다