PDFium Delphi Component Docs

מחלקת TPdfRangeRequestScheduler

Unit: PDFium
תזמון thread-safe וניטרלי לתעבורה עבור בקשות byte-range דלילות של PDF

Syntax

type TPdfRangeRequestScheduler = class ... end;

Methods

MethodDescription
Createיוצר מתזמן ריק עם שני ניסיונות חזרה וללא הגבלת גודל בקשה
Destroyמשחרר את מצב המתזמן ואת פרימיטיב הסנכרון שלו
Reset(AFileSize)מבטל עבודת תעבורה פעילה, פותח דור חדש, מאפס מונים, ואוכף באופן אופציונלי חסם גודל קובץ לוגי
Cancelמנקה עבודה שהמתינה בתור, מבטל את תוקף דורות של בקשות בעיצומן, ומעלה את OnCancelRequest מחוץ לנעילת המתזמן
MarkAvailable(Offset, Size)רושם בתים שסופקו חיצונית, מסיר חפיפה ממתינה, ומבטל העברות פעילות מיותרות
EnqueueHints(Hints, Priority)מוסיף מרווחים חסרים, שומר על גבולות עדיפות וניסיון חזרה מדויקים, ודוחק העברות חופפות בעדיפות נמוכה יותר
TryDequeue(out Request)מחזיר את הבקשה החסומה בעלת העדיפות הגבוהה ביותר וה-offset הנמוך ביותר ומסמן אותה כבעיצומה
CompleteRequest(Request)מסמן תגובה מלאה כזמינה לאחר שהמארח אחסן את בתיה
CompleteRequest(Request, BytesReceived)מחייב קידומת תגובה חלקית ומחזיר את היתרה לתור או מוותר עליה בגבולות הניסיונות החוזרים
FailRequest(Request)חוזר או מוותר על בקשה בעיצומה בגבולות MaxRetryCount
IsRangeAvailable(Offset, Size)בודק אם המרווחים שהושלמו מכסים טווח במלואו
DataAvailableמתאים חיפוש טווחים שהושלמו אל TPdfDataAvailableEvent
CopyCompletedRangesמחזיר תמונת מצב יציבה של מרווחים זמינים ממוזגים
CopyStatisticsמעתיק מונים דרך שיטה ידידותית ל-C++Builder

Properties and events

MemberTypeDescription
CancelledBooleanהאם הדור הפעיל בוטל
FileSizeUInt64חסם בקשות לוגי, או אפס עבור מתזמן עצמאי ללא חסם
MergeGapUInt64מרווח לא מכוסה מרבי שזכאי למיזוג כאשר הוא אינו חוצה בתים זמינים או בעיצומם
MaxRequestSizeUInt64הגודל המרבי שמוחזר בקריאת TryDequeue אחת
MaxRetryCountIntegerמספר הניסיונות החוזרים אחרי ניסיון התעבורה הראשוני
StatisticsTPdfRangeRequestStatisticsתמונת מצב אטומית הכוללת את PendingRequestCount, InFlightRequestCount, AvailableRangeCount, מוני הבתים PendingBytes, InFlightBytes, CompletedBytes ו-TransferredBytes, ואת סיכומי FailedAttemptCount, RetriedRequestCount, AbandonedRequestCount, DequeuedRequestCount, CompletedRequestCount, PartialRequestCount, CancelledRequestCount ו-SupersededRequestCount
OnCancelRequestTPdfRangeRequestCancelEventמבקש ביטול של פעולת תעבורה פעילה אחת לפי מזהה בקשה וניסיון

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