StartRangeSourcePrefetch
Gerenciamento de documentos, Carregamento progressivo, Desempenho
Descrição
Enfileira um trabalho em segundo plano que descobre e busca repetidamente os intervalos de bytes ausentes exigidos por um grafo de dependências de página, formulário ou objeto indireto
Sintaxe
Delphi
Function TPDFlib.StartRangeSourcePrefetch(DataKind, Index, Priority: Integer;
MaxBytes: Int64= 0; ReadAheadBytes: LongInt= 0;
MaxPasses: Integer= 0): Integer;Parâmetros
| DataKind | PDF_RANGE_DATA_PAGE, PDF_RANGE_DATA_FORM ou PDF_RANGE_DATA_OBJECT |
|---|---|
| Index | Um número de página com base 1, zero para a consulta de formulário, ou um número de objeto indireto |
| Priority | PDF_RANGE_PREFETCH_PRIORITY_LOW, NORMAL, HIGH ou CRITICAL |
| MaxBytes | O orçamento de leitura do trabalho; zero seleciona 64 MiB e um valor explícito deve comportar pelo menos um chunk de origem |
| ReadAheadBytes | Bytes extras agendados após cada intervalo de dependência descoberto, antes do alinhamento de chunk |
| MaxPasses | O máximo de rodadas de descoberta de dependências; zero seleciona 128 |
Valor de retorno
Um handle positivo de trabalho local do stream em caso de sucesso, ou zero com LastErrorCode definido como 401 quando o documento selecionado não é respaldado por intervalos ou os argumentos são inválidos
Observações
Um worker atende cada range stream e seleciona a maior prioridade enfileirada, preservando a ordem FIFO dentro de prioridades iguais
O worker usa um parser isolado sobre o cache de byte-range compartilhado, então a descoberta de dependências não compartilha estado mutável de leitor com operações de documento em primeiro plano
O orçamento de bytes inclui leituras fora do cache realizadas ao inicializar e avançar o parser de dependências isolado
Bytes pré-buscados permanecem sujeitos ao orçamento do cache de streams e à política de despejo least-recently-used