estrutura <SI-Namespace>::proxy::methods::<Method>::Output
struct Output {...};
Structure wrapping the out arguments for a method
| Header-Datei | #include "<SiNamespaceDerivedDirectoryPath>/<SiShortname>_proxy.h" |
|---|---|
| Forwarding-Header | #include "<SiNamespaceDerivedDirectoryPath>/<SiShortname>_proxy/<SiShortname>_proxy_fwd.h" |
| Scope | class <SI-Namespace>::proxy::methods::<Method> |
Guia do utilizadorGERADO POR IA
Encapsula, como estrutura de dados, os parâmetros de saída de um método de serviço invocado de forma assíncrona para o proxy receptor.
Encapsula, como estrutura de dados, os parâmetros de saída de um método de serviço invocado de forma assíncrona para o proxy receptor.
A estrutura <SI-Namespace>::proxy::methods::<Method>::Output encapsula os argumentos de saída de um método de serviço proxy da AUTOSAR Adaptive Platform ([SWS_CM_99333]). Em caso de sucesso, o chamador recebe a estrutura através de um ara::core::Future retornado, após sua resolução via get() ou GetResult() (AUTOSAR_AP_SWS_CommunicationManagement §8.3.6 «Struct: Output»). Se ocorrerem erros durante o processamento, nenhum objeto Output é criado; em vez disso, um código de erro é disponibilizado por meio do contexto do future. Ao destruir o objeto future, o cliente pode cancelar prematuramente uma chamada de método em andamento.
Contexto
A estrutura <SI-Namespace>::proxy::methods::<Method>::Output serve no gerenciamento de comunicação (com) da AUTOSAR Adaptive Platform como encapsulamento estruturado para os argumentos de saída de um método de serviço ([SWS_CM_99333]). No lado do consumidor do serviço (proxy), essa classe é gerada tipada para transferir à aplicação cliente, de forma agrupada, os valores de resultado apurados pelo provedor de serviço e transmitidos através do middleware. No lado do provedor de serviço (skeleton), existe uma estrutura de dados correspondente para disponibilizar o retorno do método ([SWS_CM_99556]). Parceiros de interação essenciais são a aplicação cliente chamadora, a instância do método proxy e o ara::core::Future retornado pela interface de invocação, que transporta o objeto Output em caso de sucesso (AUTOSAR_AP_SWS_CommunicationManagement §8.3.6 «Struct: Output»).
Ciclo de vida
O ciclo de vida de uma instância de Output está diretamente incorporado ao padrão de comunicação assíncrona da Adaptive Platform. Ao executar uma chamada de método no proxy, o ambiente de tempo de execução cria um ara::core::Future, que serve como contêiner para o futuro objeto Output (AUTOSAR_AP_SWS_CommunicationManagement §8.3.6 «Struct: Output»). Os dados de resultado propriamente ditos são gerados no lado do provedor: após a conclusão do processamento – seja de forma síncrona no corpo do método de serviço ou de forma assíncrona em uma thread separada –, os parâmetros de saída são gravados na estrutura de saída e passados a um Promise para o Future correspondente (ARAComAPI §6.19 «Returning Future with already set result»).
Assim que o resultado estiver disponível, o cliente extrai a instância de Output via get() ou GetResult(). Com isso, o objeto passa para a posse do chamador; a partir desse momento, a continuidade do ciclo de vida fica, presumivelmente, sob responsabilidade do código da aplicação chamadora. Pergunta Q-27f51b3c9fb838ed (aberta) Uma restrição relevante para o ciclo de vida diz respeito ao cancelamento prematuro: o destrutor do objeto ara::core::Future retornado serve para o chamador cancelar a requisição após o seu envio ([SWS_CM_00194]). Se o future for destruído prematuramente, isso leva ao cancelamento da chamada, de modo que nenhuma entrega da estrutura Output ocorre.
Caminho de utilização
O fluxo típico para receber os parâmetros de saída do método compreende as seguintes etapas:
- Disparar a chamada: o cliente chama o método de serviço no proxy e recebe imediatamente um
ara::core::Future<Output>(AUTOSAR_AP_SWS_CommunicationManagement §8.3.6 «Struct: Output»). - Consultar o resultado: o cliente sincroniza-se no resultado ou chama diretamente
get()ouGetResult(). Se o resultado já tiver sido definido no lado do servidor noPromise, a chamada não bloqueia, mas retorna imediatamente a estruturaOutput(ARAComAPI §6.19 «Returning Future with already set result»). - Processar os valores: o cliente lê os valores de saída a partir da estrutura recebida. Interpretação: a estrutura
Outputdeve disponibilizar todos os argumentos Out e Inout definidos do método como membros livremente acessíveis. Pergunta Q-3a292028627f3c64 (aberta)
Diagrama de sequência: chamada de um método proxy e obtenção da estrutura Output por meio do future. Fontes: [SWS_CM_99333], AUTOSAR_AP_SWS_CommunicationManagement §8.3.6 «Struct: Output», ARAComAPI §6.19 «Returning Future with already set result».
Cenários de erro
Se ocorrer um erro durante o processamento do método, nenhum objeto regular de Output é retornado. O gerenciamento de comunicação lida com isso através de mecanismos de erro específicos:
- Erros de aplicação verificados (Checked Errors): se ocorrer um erro definido durante o processamento da chamada de método, o respectivo
ara::core::ErrorCodeé fornecido no contexto da chamadaget()ouGetResult()([SWS_CM_10371]). - Erros de infraestrutura e de transmissão: se a chamada falhar, o
ara::core::Futurecontém um código de erro correspondente, comoara::core::FutureErrc(AUTOSAR_AP_SWS_CommunicationManagement §8.3.6 «Struct: Output») ou, no lado do provedor,ara::com::ComErrc(AUTOSAR_AP_SWS_CommunicationManagement §8.4 «Methods»). - Métodos Fire-and-Forget: para métodos sem valores de retorno (fire and forget), nenhum erro verificado é reportado ([SWS_CM_90436]); para tais métodos, não existe a estrutura
Output. - Aborto de chamada: a destruição do objeto
Futurecancela a requisição em andamento e impede a disponibilização de um resultadoOutput([SWS_CM_00194]).
Este guia baseia-se exclusivamente nas especificações da release Adaptive R25-11.
gemini-3.8-flash-low· 2026-10-13 · Original em alemão