Korpusminimeringsfunktioner
function HPDFMinimizeCorpusCase(const Input: TBytes;
const Predicate: THPDFFailurePredicate; MaximumAttempts: Integer;
out AInfo: THPDFCorpusMinimizationInfo): TBytes;
Reduktorn tar först bort fullständiga indirekta objektspridningar och tillämpar sedan allt mindre byträffs-reduktioner
En kandidat accepteras endast när predikatet fortfarande rapporterar den ursprungliga felsignaturen
AInfo rapporterar försök, accepterade reduktioner, borttagna objektspridningar, borttagna byträffar, ursprungliga och slutliga storlekar samt den bevarade signaturen
Kontinuerlig korpuslagring
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;
Lagret härleder ett stabilt fall-ID från SHA-256-digesten av felsignaturen, revaliderar varje befintligt fall, minimerar både det befintliga och det inkommande kandidaten och behåller det minsta resultatet
Ett tvärprocesslås serialiserar beslut för en korpuskatalog, medan write-through-tempfiler och atomärt byte förhindrar att läsare observerar partiella PDF- eller metadatafiler
THPDFCorpusStoreOptions avgränsar minimiseringsförsök, inkommande byte, lagrade byte och låsåterförsök, och THPDFCorpusCaseInfo.Action rapporterar om fallet lades till, ersattes eller behölls
Sidokartschemat hotpdf.corpus.case.v1 registrerar fall-ID, den exakta felsignaturen, innehållets SHA-256 och lagrat bytantal i stabil fältordning
HPDFCompareRegressionResultsDeterministic jämför upprepade tvärmotorssignaturer över parse-, render-, text- och spara-domäner och avvisar instabila eller misslyckade körningar