Record THPDFCABIOperationV1

Descritor versionado de C ABI para uma operação JSON de documento com IO via callbacks

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

A unit é HPDFCAPI; StructSize e ABIVersion precisam corresponder aos tamanhos e versões reportados por hpdf_abi_operation_v1_size e hpdf_abi_version, ou a chamada é rejeitada

JSON com JSONLength carrega o objeto de operação UTF-8 aceito pelo mesmo engine de THPDFJobProcessor.ExecuteLoadedOperation

Os três records de IO são bundles de callbacks emprestados: InputIO fornece os bytes da origem, OutputIO recebe resultados binários, e ResultIO recebe o documento de resultado JSON

Para execute JSON e comparação de dois handles, um callback de gravação com falha não é chamado de novo para publicar um resultado de erro pelo mesmo par de writer e user-data, inclusive quando OutputIO e ResultIO compartilham esse par; os bytes parciais do candidato já recebidos pelo chamador permanecem responsabilidade do chamador

Status de gravação fora da faixa definida de status não nulos, e contagens de bytes bem-sucedidas zero ou excessivas, viram HPDF_STATUS_IO_ERROR; o layout do record V1 e o comportamento de partial-write bem-sucedido permanecem inalterados

A struct é passada por ponteiro para hpdf_document_execute_json_v1 e hpdf_document_compare_json_v1, e só é estendida anexando campos atrás de uma nova versão da ABI

Operações de documento via JSON e C ABI