Rekord THPDFCABIOperationV1

Wersjonowany deskryptor C ABI dla jednej operacji dokumentu JSON z I/O opartym na callbackach

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

Unit to HPDFCAPI; StructSize i ABIVersion muszą zgadzać się z rozmiarami i wersjami raportowanymi przez hpdf_abi_operation_v1_size i hpdf_abi_version, w przeciwnym razie wywołanie jest odrzucane

JSON z JSONLength niesie obiekt operacji UTF-8 akceptowany przez ten sam silnik co THPDFJobProcessor.ExecuteLoadedOperation

Trzy rekordy IO to pożyczone bundle'y callbacków: InputIO dostarcza bajty źródła, OutputIO otrzymuje wyniki binarne, a ResultIO otrzymuje dokument wyniku JSON

Dla wykonywania JSON i porównania dwóch handle'y nieudany callback zapisu nie jest wywoływany ponownie, aby opublikować wynik błędu przez tę samą parę writer i user-data, także gdy OutputIO i ResultIO dzielą tę parę; częściowe bajty kandydata już odebrane przez wywołującego pozostają jego odpowiedzialnością

Wartości statusu zapisu poza zdefiniowanym niezerowym zakresem statusów oraz zerowe albo nadmierne udane liczby bajtów stają się HPDF_STATUS_IO_ERROR; layout rekordu V1 i zachowanie częściowych zapisów pozostają niezmienione

Struktura jest przekazywana przez wskaźnik do hpdf_document_execute_json_v1 i hpdf_document_compare_json_v1 i rozszerzana wyłącznie przez doklejanie pól za nową wersją ABI

Operacje dokumentu JSON i C ABI