THPDFCABIOperationV1 レコード

コールバックで動く IO を持つ 1 つの JSON ドキュメント操作の、バージョン付き C ABI 記述子です

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

ユニットは HPDFCAPI です。StructSize と ABIVersion は hpdf_abi_operation_v1_size と hpdf_abi_version が報告するサイズ・バージョンと一致しなければならず、一致しない呼び出しは拒否されます

JSON と JSONLength は、THPDFJobProcessor.ExecuteLoadedOperation と同じエンジンが受け入れる UTF-8 操作オブジェクトを運びます

3 つの IO レコードは借り受けのコールバックバンドルです。InputIO がソースバイトを供給し、OutputIO がバイナリ結果を受け取り、ResultIO が JSON 結果ドキュメントを受け取ります

JSON execute や 2 ハンドル比較の操作では、書き込みコールバックが失敗したとき、同じ writer と user-data のペアを通じてエラー結果を公開するためにコールバックが再度呼ばれることはありません。OutputIO と ResultIO がそのペアを共有している場合も同様です。呼び出し側がすでに受け取った部分的な候補バイトは、呼び出し側の責任で処理します

定義された非ゼロステータス範囲外の書き込みステータスや、ゼロまたは過大な成功バイト数は HPDF_STATUS_IO_ERROR になります。V1 のレコードレイアウトと部分的な成功書き込みの動作は変更されません

構造体はポインタで hpdf_document_execute_json_v1 と hpdf_document_compare_json_v1 に渡され、新しい ABI バージョンの背後にフィールドを追加する形でだけ拡張されます

JSON と C ABI ドキュメント操作