LoadFromRangeSource

Belge yönetimi, Performans

Açıklama

Bir PDF'yi senkron bir rastgele erişim geri çağırması üzerinden yükler ve seçer; böylece HTTP istemcileri, veritabanları, nesne depoları ve özel depolama sağlayıcıları yalnızca ayrıştırıcının dokunduğu bayt aralıklarını sunabilir

Sözdizimi

Delphi

Function TPDFlib.LoadFromRangeSource(SourceSize: Int64;
  ReadCallback: TPDFlibRangeReadEvent; Const Password: WideString;
  ChunkSize: LongInt= 0; CacheLimitBytes: Int64= 0;
  CoalesceWindowMS: Cardinal= PDF_NET_DEFAULT_COALESCE_WINDOW_MS;
  AvailabilityCallback: TPDFlibRangeAvailabilityEvent= Nil): Integer;

Parametreler

SourceSizeYetkili toplam kaynak boyutu, bayt cinsinden
ReadCallbackMutlak bir kaynak ofseti için bayt kopyalayan geri çağırma
PasswordPDF'yi açmak için kullanılan parola; şifrelenmemiş belge için boş dize
ChunkSizeHizalanmış aralık getirme granülaritesi; sıfır 64 KiB varsayılanını seçer ve 4096 altındaki değerler de varsayılanı kullanır
CacheLimitBytesEn son kullanılan pencereler boyunca tutulan en yüksek bayt; sıfır 4 MiB varsayılanını seçer ve bir parçanın altındaki değerler bir parçaya yükseltilir
CoalesceWindowMSHer mutlak okumanın önbelleğe alınmamış ilk parçası için toplama penceresi; varsayılan 2 milisaniye ve sıfır ilk gecikmeyi devre dışı bırakır
AvailabilityCallbackAşamalı depolamada zaten bulunan bayt aralıkları için isteğe bağlı, getirme yapmayan bir sınama

Dönüş değerleri

0Kaynak bağımsız değişkenleri geçersizdi veya PDF yüklenemedi; LastErrorCode değerini inceleyin
1Belge yüklendi ve seçildi

Açıklamalar

Okuma geri çağrımı mutlak sıfır tabanlı ofsetler alır, Buffer'a en fazla Count bayt yazmalı ve yazılan sayıyı döndürmelidir

Sayfa işleme, ayıklama ve kaydetme daha sonra ek aralıklar isteyebileceğinden geri çağrım hedefi ve onu destekleyen depolama, yüklenen belge kapatılana dek geçerli kalmalıdır

Çağrılar eşzamanlıdır ve sırasız gelebilir; kaynağın fiziksel sonunda kısa bir sonuç kabul edilirken beklenmedik bir sıfır sonuç, yüklemeyi veya geçerli ertelenmiş işlemi başarısız kılar

AvailabilityCallback atandığında, yalnızca istenen aralığın tamamı aktarım veya engelleyici G/Ç olmaksızın hemen okunabilecekken sıfır olmayan bir değer döndürün

Önbellekteki bir aralık, geri çağrım sonucundan bağımsız olarak kullanılabilir; Nil geri çağrımı, her geçerli kaynak aralığını kullanılabilir sayarak eşzamanlı davranışı korur

Hizalanmış öbekler, üst üste binen okumalar için yinelenen aktarım getirmelerinden kaçınır; bayt bütçesi ise saklanan yükü belge boyutundan bağımsız sınırlar

Ertelenmiş nesne ve bölüm okumaları mutlak ofsetler kullanır; böylece eşzamanlı iş aynı öbek isteklerini paylaşır ve kuyruktaki bitişik öbekleri konumsal akış imlecini değiştirmeden birleştirir

Kaynak geri çağrımları serileştirilir ve aynı aralık akışından özyinelemeli okumamalıdır

Eksik bildirilen aralıkları okumadan sayfa, form veya dolaylı nesne bağımlılıklarını sınamak için GetRangeSourceDataAvailability kullanın

Etkin önbelleği gözlemlemek veya değiştirmek için GetRangeSourceCacheInfo, SetRangeSourceCacheLimit ve ClearRangeSourceCache kullanın

Kitaplık kendi iç konumlandırılabilir aralık akışının sahibidir ama geri çağrım hedefinin veya onu destekleyen depolamanın sahibi değildir