Record THPDFCABIOperationV1

Descriptor C ABI versionado para una operación JSON de documento con IO respaldada por callbacks

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

La unidad es HPDFCAPI; StructSize y ABIVersion deben coincidir con los tamaños y versiones que reportan hpdf_abi_operation_v1_size y hpdf_abi_version, o la llamada se rechaza

JSON con JSONLength transporta el objeto de operación UTF-8 aceptado por el mismo motor que THPDFJobProcessor.ExecuteLoadedOperation

Los tres records de IO son bundles de callbacks prestados: InputIO suministra los bytes de la fuente, OutputIO recibe los resultados binarios, y ResultIO recibe el documento de resultado JSON

Para las operaciones JSON execute y de comparación de dos handles, un callback de escritura fallido no se vuelve a llamar para publicar un resultado de error a través del mismo par de escritor y datos de usuario, incluido cuando OutputIO y ResultIO comparten ese par; los bytes candidatos parciales ya recibidos por el llamador siguen siendo responsabilidad del llamador

Los valores de estado de escritura fuera del rango de estado distinto de cero definido, y los recuentos de bytes correctos cero o excesivos, se convierten en HPDF_STATUS_IO_ERROR; el layout del record V1 y el comportamiento de escritura parcial correcta permanecen sin cambios

El struct se pasa por puntero a hpdf_document_execute_json_v1 y hpdf_document_compare_json_v1, y solo se extiende añadiendo campos tras una nueva versión de ABI

Operaciones de documento JSON y C ABI