Índice reverso de objeto de página
O HotPDF mantém um índice reverso local ao documento da identidade do objeto de página para a posição de página baseada em zero
Comportamento de consulta
GetPageArrIndexForObjectNumber aceita um número de objeto PDF, enquanto GetPageArrIndexForObject aceita um objeto de página resolvido ou um THPDFLink
Ambos os métodos retornam -1 quando o valor não identifica uma página atual
Se uma entrada malformada expõe a mesma identidade mais de uma vez, a primeira página em ordem do documento vence deterministicamente
Construção e invalidação
O índice é construído preguiçosamente na primeira consulta e usa mapas separados de endereçamento aberto para números de objeto e ponteiros de objeto resolvidos
Carregar, redefinir, adicionar, excluir, copiar, substituir, mover, inverter, trocar, reordenar ou reconciliar páginas invalida os mapas
A próxima consulta reconstrói ambos os mapas a partir da ordem atual de páginas, de modo que o custo de mutação não inclui uma reconstrução ansiosa de índice
Desempenho e propriedade
Os mapas mantêm seu fator de carga abaixo da metade e fornecem consulta esperada de tempo constante após uma construção O(contagem de páginas)
Um portão de regressão realiza um milhão de consultas após mutação em uma tabela de 100.000 páginas e exige latência p95 abaixo de 5 microssegundos em ambos os alvos Windows suportados
O índice armazena ponteiros de objeto não proprietários e é liberado com sua instância THotPDF
Não mude uma instância THotPDF simultaneamente com a consulta de página porque a mutação do grafo de documento carregado permanece serializada pelo chamador
Veja também: GetPageArrIndexForObjectNumber, GetPageArrIndexForObject, GetPageReverseIndexStatistics