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

DataKindPDF_RANGE_DATA_PAGE, PDF_RANGE_DATA_FORM ou PDF_RANGE_DATA_OBJECT
IndexUm número de página com base 1, zero para a consulta de formulário, ou um número de objeto indireto
PriorityPDF_RANGE_PREFETCH_PRIORITY_LOW, NORMAL, HIGH ou CRITICAL
MaxBytesO orçamento de leitura do trabalho; zero seleciona 64 MiB e um valor explícito deve comportar pelo menos um chunk de origem
ReadAheadBytesBytes extras agendados após cada intervalo de dependência descoberto, antes do alinhamento de chunk
MaxPassesO 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