StartRangeSourcePrefetch
Gestión de documentos, carga progresiva, rendimiento
Descripción
Pone en cola un trabajo en segundo plano que descubre y obtiene repetidamente los rangos de bytes faltantes requeridos por un grafo de dependencias de páginas, formularios u objetos indirectos
Sintaxis
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 o PDF_RANGE_DATA_OBJECT |
|---|---|
| Index | Un número de página con base 1, cero para la consulta del formulario, o un número de objeto indirecto |
| Priority | PDF_RANGE_PREFETCH_PRIORITY_LOW, NORMAL, HIGH o CRITICAL |
| MaxBytes | El presupuesto de lectura del trabajo; cero selecciona 64 MiB y un valor explícito debe cubrir al menos un bloque fuente |
| ReadAheadBytes | Bytes adicionales programados después de cada rango de dependencia descubierto antes de la alineación de bloques |
| MaxPasses | El máximo de rondas de descubrimiento de dependencias; cero selecciona 128 |
Valor devuelto
Un manejador de trabajo local del stream positivo en caso de éxito, o cero con LastErrorCode establecido en 401 cuando el documento seleccionado no está respaldado por rangos o los argumentos no son válidos
Observaciones
Un worker atiende cada flujo por rangos y elige la prioridad en cola más alta, preservando el orden FIFO dentro de prioridades iguales
El worker usa un analizador aislado sobre la caché por rangos de bytes compartida, así que el descubrimiento de dependencias no comparte estado mutable de lector con las operaciones de documento en primer plano
El presupuesto de bytes incluye las lecturas sin caché realizadas al inicializar y avanzar el analizador de dependencias aislado
Los bytes precargados siguen sujetos al presupuesto de la caché de flujos y a la política de desalojo por menos uso reciente