PDFium Delphi Component Docs

Kelas TPdfRangeRequestScheduler

Unit: PDFium
Penjadwalan yang thread-safe dan netral transport untuk request byte-range PDF sparse

Syntax

type TPdfRangeRequestScheduler = class ... end;

Methods

MethodDescription
CreateMembuat scheduler kosong dengan dua retry dan tanpa batas ukuran request
DestroyMelepaskan status scheduler dan primitif sinkronisasinya
Reset(AFileSize)Membatalkan pekerjaan transport aktif, memulai generasi baru, mengosongkan penghitung, dan secara opsional menegakkan batas file logis
CancelMengosongkan pekerjaan yang diantrekan, membatalkan generasi request yang sedang berjalan, dan memicu OnCancelRequest di luar lock scheduler
MarkAvailable(Offset, Size)Mencatat byte yang disuplai eksternal, menghapus tumpang-tindih yang tertunda, dan membatalkan transfer aktif yang redundan
EnqueueHints(Hints, Priority)Menambahkan interval yang belum ada, mempertahankan batas prioritas dan retry yang persis, serta menganulir transfer berprioritas lebih rendah yang tumpang-tindih
TryDequeue(out Request)Mengembalikan request berbatas dengan prioritas tertinggi dan offset terendah lalu menandainya sedang berjalan
CompleteRequest(Request)Menandai respons lengkap sebagai tersedia setelah host menyimpan byte-nya
CompleteRequest(Request, BytesReceived)Mengomitmen prefiks respons yang pendek lalu mengantre ulang atau mengabaikan sisanya di bawah batas retry
FailRequest(Request)Mengulang atau mengabaikan request yang sedang berjalan sesuai MaxRetryCount
IsRangeAvailable(Offset, Size)Menguji apakah interval yang selesai sepenuhnya menutupi sebuah rentang
DataAvailableMengadaptasi pencarian rentang selesai ke TPdfDataAvailableEvent
CopyCompletedRangesMengembalikan snapshot stabil interval tersedia yang sudah digabung
CopyStatisticsMenyalin penghitung melalui metode yang ramah C++Builder

Properties and events

MemberTypeDescription
CancelledBooleanApakah generasi aktif telah dibatalkan
FileSizeUInt64Batas request logis, atau nol untuk scheduler standalone tanpa batas
MergeGapUInt64Celah maksimum tak tertutup yang memenuhi syarat untuk digabung ketika tidak melintasi byte yang tersedia maupun sedang berjalan
MaxRequestSizeUInt64Ukuran maksimum yang dikembalikan satu panggilan TryDequeue
MaxRetryCountIntegerJumlah retry setelah percobaan transport awal
StatisticsTPdfRangeRequestStatisticsSnapshot atomik yang mencakup PendingRequestCount, InFlightRequestCount, AvailableRangeCount, penghitung byte PendingBytes, InFlightBytes, CompletedBytes, dan TransferredBytes, serta total FailedAttemptCount, RetriedRequestCount, AbandonedRequestCount, DequeuedRequestCount, CompletedRequestCount, PartialRequestCount, CancelledRequestCount, dan SupersededRequestCount
OnCancelRequestTPdfRangeRequestCancelEventMeminta pembatalan satu operasi transport aktif berdasarkan ID request dan percobaan

Scheduling rules

Example

var
  Request: TPdfRangeRequest;
begin
  while Scheduler.TryDequeue(Request) do
  begin
    try
      WriteRangeResponse(Request.Offset, Request.Size);
      Scheduler.CompleteRequest(Request);
    except
      Scheduler.FailRequest(Request);
    end;
  end;
end;

Threading and transport contract

Related types

TPdfRangeRequest, TPdfRangeRequests, TPdfRangeRequestPriority, TPdfRangeRequestStatistics, TPdfRangeRequestCancelEvent, TPdfProgressiveDocument