Pagina-object-omgekeerde index
HotPDF onderhoudt een document-lokale omgekeerde index van pagina-objectidentiteit naar nul-gebaseerde paginapositie
Opzoekgedrag
GetPageArrIndexForObjectNumber accepteert een PDF-objectnummer, terwijl GetPageArrIndexForObject ofwel een opgelost paginaobject ofwel een THPDFLink accepteert
Beide methoden retourneren -1 wanneer de waarde geen huidige pagina identificeert
Als onjuist gevormde invoer dezelfde identiteit meer dan eens blootlegt, wint de eerste pagina in documentvolgorde deterministisch
Constructie en ongeldigmaking
De index wordt lui gebouwd bij de eerste opzoeking en gebruikt afzonderlijke open-geadresseerde maps voor objectnummers en opgeloste object-aanwijzers
Laden, resetten, toevoegen, verwijderen, kopiëren, vervangen, verplaatsen, omkeren, wisselen, herordenen of reconciliëren van pagina's maakt de maps ongeldig
De volgende opzoeking herbouwt beide maps uit de huidige paginavolgorde, zodat de mutatiekost geen gretige indexreconstructie omvat
Prestaties en eigendom
De maps houden hun belastingsfactor onder de helft en bieden verwachte constante-tijd-opzoeking na een bouw van O(page count)
Een regressiepoort voert één miljoen opzoekingen uit na mutatie in een tabel van 100.000 pagina's en vereist p95-latentie onder 5 microseconden op beide ondersteunde Windows-doelen
De index slaat niet-eigendoms-object-aanwijzers op en wordt vrijgegeven met zijn THotPDF-instantie
Muteer een THotPDF-instantie niet gelijktijdig met paginaopzoeking, omdat mutatie van de geladen-documentgraaf geserialiseerd door de aanroeper blijft
Zie ook: GetPageArrIndexForObjectNumber, GetPageArrIndexForObject, GetPageReverseIndexStatistics