Encapsula transferências de leitura ativas baseadas em diagnóstico e encaminha transferências de dados recebidas para handlers registrados.
GERADO POR IAnão revisadoModelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 9db606b147f6ProcedênciaPerguntas em aberto (2)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão
Encapsula transferências de leitura ativas baseadas em diagnóstico e encaminha transferências de dados recebidas para handlers registrados.
A classe serve para o encapsulamento e gerenciamento estruturado de todas as variantes de transferências de leitura baseadas em diagnóstico dentro do módulo de diagnóstico do AUTOSAR Adaptive de acordo com [SWS_DM_01548]. Após o início bem-sucedido de uma operação de leitura, a instância do servidor de diagnóstico delega requisições recebidas para a transferência sequencial de blocos de dados, bem como para o encerramento da sessão, aos métodos registrados do handler de leitura [SWS_DM_01317]. Por meio da desativação intencional de operações de cópia aliada ao suporte à semântica de movimentação, a classe assegura uma atribuição de posse inequívoca da sessão de transferência subjacente.
Contexto
A classe ara::diag::DataTransferReadSession representa o encapsulamento de todas as variantes para a leitura de blocos de dados assistida por diagnóstico no módulo de diagnóstico adaptativo [SWS_DM_01548]. No âmbito de serviços UDS padronizados, tais como RequestFileTransfer (0x38), TransferData (0x36) e RequestTransferExit (0x37), a classe de sessão atua como elo de ligação entre o ambiente de execução interno do servidor de diagnóstico e os handlers de leitura específicos da aplicação SWS Diagnostics §7 «Realization of TransferData and RequestTransferExit». Ela assegura que operações de leitura em andamento – por exemplo, para arquivos via ReadFile[SWS_DM_01314] ou diretórios via ReadDir[SWS_DM_01315] – sejam gerenciadas de forma isolada e encaminhadas para os handlers associados.
Uma instância de ara::diag::DataTransferReadSession possui um tempo de vida estritamente vinculado à sessão de transferência. A criação por meio de um construtor padrão é explicitamente proibida [SWS_DM_01549]. Em vez disso, a sessão é inicializada por meio de construtores de modelo especializados, os quais registram os manipuladores específicos da aplicação SWS Diagnostics §7 «Realization of TransferData and RequestTransferExit». Na prática, a instanciação deve ocorrer tipicamente pelo servidor de diagnóstico ou pelo manipulador de serviço na iniciação da transferência de arquivos. Pergunta Q-b0706bcd28c702c6 (aberta)
Para excluir alocações múltiplas ou estados de sessão inconsistentes, ara::diag::DataTransferReadSession foi concebido como uma instância única não copiável: tanto o construtor de cópia [SWS_DM_01553] quanto o operador de atribuição por cópia [SWS_DM_01554] foram excluídos (=delete). A transferência de propriedade está prevista exclusivamente por meio de semântica de movimento. O construtor de movimento [SWS_DM_01551] e o operador de atribuição por movimento [SWS_DM_01552] são definidos como noexcept=default. A destruição ocorre de forma determinística por meio do destrutor [SWS_DM_01550], que também é declarado como noexcept=default. Presume-se que a conclusão da transferência via RequestTransferExit leve à liberação do objeto. Pergunta Q-c1999fd1f283a007 (aberta)
Caminho de utilização
O fluxo típico de uma sessão de transferência de leitura divide-se em três fases sucessivas:
Inicialização: Um cliente de diagnóstico externo envia RequestFileTransfer com um modo de leitura como ReadFile (0x04) [SWS_DM_01314] ou ReadDir (0x05) [SWS_DM_01315]. Com isso, a instância da sessão é criada e o manipulador de leitura é registrado.
Transferência de dados: O servidor de diagnóstico processa requisições de diagnóstico recebidas do tipo TransferData (0x36), chamando o método Read correspondente do manipulador registrado por meio dos construtores de modelo [SWS_DM_01317]. Isso ocorre iterativamente para cada bloco de dados requisitado.
Conclusão: Assim que todos os dados tiverem sido transmitidos, o cliente envia RequestTransferExit (0x37). O servidor de diagnóstico chama em seguida o método Exit do manipulador registrado para encerrar devidamente o procedimento de leitura [SWS_DM_01318].
Como ara::diag::DataTransferReadSession é declarado como final e o construtor padrão [SWS_DM_01549] não existe, uma criação incorreta sem manipulador registrado é impedida já em tempo de compilação. Da mesma forma, as operações de cópia excluídas [SWS_DM_01553] evitam a duplicação acidental de estados de sessão. Tanto a construção por movimento quanto a atribuição por movimento e a destruição garantem total segurança contra exceções por meio de sua especificação noexcept[SWS_DM_01551][SWS_DM_01550]. Se o fornecimento de blocos de dados no manipulador falhar, isso será tratado no nível do protocolo no âmbito da comunicação UDS.
Este guia baseia-se na especificação AUTOSAR Adaptive Platform R25-11 (módulo diag) e resume os requisitos para ara::diag::DataTransferReadSession.
gemini-3.8-flash-low· 2026-10-13 · Original em alemão