THPDFRandomAccessSource Class
Αφηρημένη βασική κλάση που επιτρέπει στο THotPDF.LoadFromRandomAccessSource να φορτώσει ένα PDF από οποιοδήποτε seekable byte store που ορίζει ο καλών χωρίς να απαιτείται υλοποίηση TStream
Δήλωση
THPDFRandomAccessSource = class
public
function GetSize: Int64; virtual; abstract;
function IsRangeAvailable(Offset, Count: Int64): Boolean; virtual;
function ReadAt(Offset: Int64; var Buffer;
Count: Longint): Longint; virtual; abstract;
function ReadAtCancellable(Offset: Int64; var Buffer;
Count: Longint; CancellationToken: THPDFCancellationToken): Longint; virtual;
function TransferAt(Offset, Count: Int64;
Destination: TStream): Int64; virtual;
end;
Μονάδα
HPDFDoc
Μέλη
| Όνομα | Σκοπός |
|---|---|
GetSize | Επιστρέφει το σταθερό μήκος byte του αποθηκευτικού μέσου |
ReadAt | Διαβάζει Count bytes ξεκινώντας από το Offset στο Buffer |
IsRangeAvailable | Αναφέρει αν ένα εύρος μπορεί να διαβαστεί χωρίς αναμονή για πρόσθετα δεδομένα |
ReadAtCancellable | Παρέχει συνεργατική διαδρομή ακύρωσης για απομακρυσμένες ή άλλως μπλοκαριστικές αναγνώσεις |
TransferAt | Γράφει εύρος πηγής σε ροή προορισμού με περιορισμένη εφεδρική υλοποίηση |
Σημειώσεις χρήσης
- Προκύψτε από μια υποκλάση και παρακάμψτε και τις δύο αφηρημένες μεθόδους για να προσαρμόσετε το HotPDF σε HTTP range requests, database BLOBs, συμπιεσμένα αρχεία, κρυπτογραφημένους τόμους, ή οποιαδήποτε εικονική αποθήκευση μπορεί να παρέχει bytes ανά offset
- Το
GetSizeπρέπει να επιστρέφει ένα σταθερό, μη αρνητικό μήκος byte για τη διάρκεια ζωής της φόρτωσης· το HotPDF αναλύει τους πίνακες διασταυρωμένης αναφοράς και τα object streams μεταβαίνοντας μέσω αυτής της πηγής - Το
ReadAtεπιστρέφει τον αριθμό των bytes που μεταφέρθηκαν όντως (μηδέν έωςCount)· ο αναλυτής αντιμετωπίζει μια βραχεία ανάγνωση στο τεκμηριωμένο τέλος αρχείου ως end-of-stream, όχι ως σφάλμα - Η προεπιλεγμένη υλοποίηση
ReadAtCancellableελέγχει το παρεχόμενο token πριν και μετά την ανάθεση στοReadAt· οι απομακρυσμένες υλοποιήσεις πρέπει να την υπερκαλύπτουν για να διακόπτουν εργασία μεταφοράς όσο αίτημα βρίσκεται σε εξέλιξη - Η προεπιλεγμένη υλοποίηση
TransferAtχρησιμοποιεί περιορισμένο buffer 64 KiB· οι προσαρμογείς αποθήκευσης μπορούν να την υπερκαλύπτουν για να γράφουν απευθείας από διατηρημένη μνήμη πηγής - Το
THPDFCoalescingRandomAccessSourceπροσθέτει περιορισμένη κρυφή μνήμη εύρους, συνένωση αιτημάτων, ασύγχρονη προφόρτωση, ακύρωση και στατιστικά γύρω από κάθε πηγή - Η πηγή πρέπει να παραμένει έγκυρη όσο το φορτωμένο έγγραφο βρίσκεται σε χρήση· περάστε
OwnsSource = Trueστο LoadFromRandomAccessSource για να απελευθερώσει το HotPDF την πηγή αυτόματα