Record THPDFCABIOperationV1

Versionierter C-ABI-Descriptor für eine JSON-Dokumentoperation mit Callback-basiertem IO

THPDFCABIOperationV1 = record
  StructSize: UInt32;
  ABIVersion: UInt32;
  Flags: UInt64;
  JSON: PAnsiChar;
  JSONLength: NativeUInt;
  InputIO: PHPDFCABIIOV1;
  OutputIO: PHPDFCABIIOV1;
  ResultIO: PHPDFCABIIOV1;
end;

Die Unit ist HPDFCAPI; StructSize und ABIVersion müssen zu den Größen und Versionen passen, die hpdf_abi_operation_v1_size und hpdf_abi_version melden, sonst wird der Aufruf zurückgewiesen

JSON mit JSONLength trägt das UTF-8-Operationsobjekt, das dieselbe Engine akzeptiert wie THPDFJobProcessor.ExecuteLoadedOperation

Die drei IO-Records sind geliehene Callback-Bündel: InputIO liefert Source-Bytes, OutputIO empfängt binäre Ergebnisse, und ResultIO empfängt das JSON-Ergebnisdokument

Bei JSON-execute- und Zwei-Handle-Vergleichsoperationen wird ein fehlgeschlagener Write-Callback nicht erneut aufgerufen, um ein Fehlerergebnis über dasselbe Writer- und User-Data-Paar zu publizieren, auch wenn sich OutputIO und ResultIO dieses Paar teilen; teilweise bereits vom Aufrufer empfangene Kandidatenbytes bleiben in dessen Verantwortung

Write-Statuswerte außerhalb des definierten Nicht-null-Statusbereichs sowie null oder übermäßige erfolgreiche Bytezahlen werden zu HPDF_STATUS_IO_ERROR; das V1-Record-Layout und das erfolgreiche Partial-Write-Verhalten bleiben unverändert

Das Struct wird per Zeiger an hpdf_document_execute_json_v1 und hpdf_document_compare_json_v1 übergeben und nur erweitert, indem Felder hinter einer neuen ABI-Version angehängt werden

JSON- und C-ABI-Dokumentoperationen