StartRangeSourcePrefetch

Dokumentverwaltung, progressives Laden, Performance

Beschreibung

Stellt einen Hintergrund-Job in die Warteschlange, der wiederholt die fehlenden Bytebereiche ermittelt und abruft, die ein Seiten-, Formular- oder Indirektobjekt-Abhängigkeitsgraph benötigt

Syntax

Delphi

Function TPDFlib.StartRangeSourcePrefetch(DataKind, Index, Priority: Integer;
  MaxBytes: Int64= 0; ReadAheadBytes: LongInt= 0;
  MaxPasses: Integer= 0): Integer;

Parameter

DataKindPDF_RANGE_DATA_PAGE, PDF_RANGE_DATA_FORM oder PDF_RANGE_DATA_OBJECT
IndexEine 1-basierte Seitennummer, null für die Formularabfrage oder eine indirekte Objektnummer
PriorityPDF_RANGE_PREFETCH_PRIORITY_LOW, NORMAL, HIGH oder CRITICAL
MaxBytesDas Lesebudget des Jobs; null wählt 64 MiB, und ein expliziter Wert muss mindestens einen Quell-Chunk fassen
ReadAheadBytesZusätzliche Bytes, die nach jedem erkannten Abhängigkeitsbereich vor der Chunk-Ausrichtung eingeplant werden
MaxPassesDie maximale Anzahl von Abhängigkeits-Erkennungsrunden; null wählt 128

Rückgabewert

Bei Erfolg ein positives stream-lokales Job-Handle, oder null, wobei LastErrorCode auf 401 gesetzt ist, wenn das ausgewählte Dokument nicht bereichsbasiert ist oder die Argumente ungültig sind

Anmerkungen

Ein Worker bedient jeden Range-Stream und wählt die höchste eingereihte Priorität, wobei innerhalb gleicher Prioritäten die FIFO-Reihenfolge erhalten bleibt

Der Worker nutzt einen isolierten Parser über dem geteilten Byte-Range-Cache, sodass die Abhängigkeitserkennung keinen veränderbaren Leserzustand mit Vordergrund-Dokumentoperationen teilt

Das Byte-Budget schließt ungecachte Lesevorgänge ein, die beim Initialisieren und Weiterschalten des isolierten Abhängigkeitsparsers anfallen

Vorgeladene Bytes unterliegen weiterhin dem Stream-Cache-Budget und der Least-recently-used-Verdrängungsrichtlinie