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