Rückwärtsindex für Seitenobjekte
HotPDF unterhält einen dokumentlokalen Rückwärtsindex von der Identität eines Seitenobjekts zur nullbasierten Seitenposition
Nachschlageverhalten
GetPageArrIndexForObjectNumber akzeptiert eine PDF-Objektnummer, während GetPageArrIndexForObject ein aufgelöstes Seitenobjekt oder einen THPDFLink akzeptiert
Beide Methoden geben -1 zurück, wenn der Wert keine aktuelle Seite identifiziert
Falls fehlerhafte Eingaben dieselbe Identität mehrfach offenlegen, gewinnt deterministisch die erste Seite in Dokumentreihenfolge
Aufbau und Invalidierung
Der Index wird beim ersten Nachschlagen verzögert aufgebaut und verwendet getrennte Maps mit offener Adressierung für Objektnummern und aufgelöste Objektzeiger
Laden, Zurücksetzen, Hinzufügen, Löschen, Kopieren, Ersetzen, Verschieben, Umkehren, Tauschen, Neuanordnen oder Abgleichen von Seiten invalidiert die Maps
Die nächste Suche baut beide Maps aus der aktuellen Seitenreihenfolge neu auf, sodass Mutationskosten keinen gierigen Neuaufbau des Index enthalten
Leistung und Besitz
Die Maps halten ihren Füllfaktor unter der Hälfte und bieten erwartete Nachschlagezeit in konstanter Zeit nach einem Aufbau in O(page count)
Eine Regressionssperre führt nach Mutation eine Million Nachschlagevorgänge in einer Tabelle mit 100.000 Seiten aus und verlangt auf beiden unterstützten Windows-Zielen eine p95-Latenz unter 5 Mikrosekunden
Der Index speichert nicht besitzende Objektzeiger und wird mit seiner THotPDF-Instanz freigegeben
Verändern Sie eine THotPDF-Instanz nicht gleichzeitig mit dem Seitennachschlagen, da die Mutation des geladenen Dokumentgraphen weiterhin vom Aufrufer serialisiert wird
Siehe auch: GetPageArrIndexForObjectNumber, GetPageArrIndexForObject, GetPageReverseIndexStatistics