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