Corpus Küçültme Fonksiyonları

function HPDFMinimizeCorpusCase(const Input: TBytes;
  const Predicate: THPDFFailurePredicate; MaximumAttempts: Integer;
  out AInfo: THPDFCorpusMinimizationInfo): TBytes;

Reducer önce tam indirect-object aralıklarını kaldırır, ardından giderek küçülen byte-range kısaltmaları uygular

Aday, yalnızca predicate hâlâ özgün failure signature'ını bildirdiğinde kabul edilir

AInfo; denemeleri, kabul edilen kısaltmaları, kaldırılan object aralıklarını, kaldırılan byte range'leri, özgün ve son boyutları ve korunan signature'ı bildirir

Sürekli corpus saklama

function HPDFDefaultCorpusStoreOptions: THPDFCorpusStoreOptions;

function HPDFMinimizeAndStoreCorpusCase(const Input: TBytes;
  const Predicate: THPDFFailurePredicate;
  const CorpusDirectory: string;
  const Options: THPDFCorpusStoreOptions;
  out AInfo: THPDFCorpusCaseInfo): Boolean;

function HPDFCorpusCaseInfoToJSON(
  const AInfo: THPDFCorpusCaseInfo): AnsiString;
type
  THPDFCorpusStoreAction = (csaAdded, csaReplaced, csaKeptExisting);

  THPDFCorpusStoreOptions = record
    MaximumAttempts: Integer;
    MaximumInputBytes: Int64;
    MaximumStoredBytes: Int64;
    LockRetryCount: Integer;
  end;

Store, failure signature'ının SHA-256 digest'inden kararlı bir case ID türetir, mevcut case'i yeniden doğrular, hem mevcut hem gelen adayları küçültür ve en küçük sonucu tutar

Cross-process bir kilit, tek bir corpus dizini için kararları sıralar; write-through geçici dosyalar ve atomik değiştirme ise okuyucuların kısmi PDF ya da metadata dosyaları görmesini engeller

THPDFCorpusStoreOptions; küçültme denemelerini, gelen baytları, saklanan baytları ve kilit yeniden denemelerini sınırlar; THPDFCorpusCaseInfo.Action ise case'in eklenmiş, değiştirilmiş ya da korunmuş olduğunu bildirir

Sidecar şeması hotpdf.corpus.case.v1; case ID'yi, tam failure signature'ını, content SHA-256'sını ve saklanan bayt sayısını kararlı field sırasıyla kaydeder

HPDFCompareRegressionResultsDeterministic; parse, render, text ve save domain'lerinde tekrarlanan cross-engine signature'ları karşılaştırır ve kararsız ya da başarısız koşuları eler