Record THPDFCABIOperationV1

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

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

La unit 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 engine que THPDFJobProcessor.ExecuteLoadedOperation

Los tres records IO son bundles de callbacks prestados: InputIO suministra bytes de la fuente, OutputIO recibe 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 writer y user-data, incluso 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 estados no cero definido, y los conteos de bytes exitosos de cero o excesivos, se convierten en HPDF_STATUS_IO_ERROR; el layout del record V1 y el comportamiento de escritura parcial exitosa 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 agregando campos detrás de una nueva versión de ABI

Operaciones de documentos JSON y C ABI