classe ara::log::Argument
template <typename T> class Argument final {...};
Wrapper type for holding a payload argument with its attributes. The setup of this class is implementation-defined.
| Header-Datei | #include "ara/log/log_stream.h" |
|---|---|
| Forwarding-Header | #include "ara/log/log_fwd.h" |
| Scope | namespace ara::log |
Guia do utilizadorGERADO POR IA
Encapsula dados úteis tipados e seus atributos para a transferência ao sistema de registro adaptativo.
Encapsula dados úteis tipados e seus atributos para a transferência ao sistema de registro adaptativo.
A classe de template ara::log::Argument serve no módulo log como tipo de encapsulamento para um argumento de dados úteis e seus atributos. Como portador genérico de dados, a estrutura recebe um argumento do tipo T e deve viabilizar o transporte seguro quanto ao tipo para coletores de logging. Pergunta (aberta) A composição concreta e os membros internos da classe são definidos especificamente pelo fornecedor, razão pela qual o código de aplicação portátil não deve basear-se em estruturas de dados específicas. Por meio da marcação como final, a derivação é impedida, o que deve favorecer uma semântica de valor compacta e imutável.
Contexto
A classe ara::log::Argument constitui, no módulo de logging da AUTOSAR Adaptive Platform, um tipo wrapper genérico responsável por receber e encapsular um argumento de dados úteis (Payload Argument) juntamente com seus atributos específicos. De acordo com a sintaxe da classe, ela é implementada como template com o parâmetro de tipo T. Isso serve presumivelmente para acomodar dados úteis de quaisquer tipos primitivos ou complexos, sem que a infraestrutura de logging precise fornecer interfaces separadas para cada tipo. Pergunta Q-a8237897f16d62c7 (aberta)
Como parceiros de interação atuam, por um lado, componentes do lado da aplicação que desejam registrar informações de tempo de execução e, por outro, os mecanismos internos de registro do módulo log. Em sistemas automotivos distribuídos e passíveis de diagnóstico, o logging frequentemente exige não apenas a simples emissão de um valor puro, mas também a vinculação do valor a atributos. A classe ara::log::Argument assume aqui a tarefa de reunir o dado e suas características descritivas em uma unidade lógica.
Ciclo de vida
A declaração da classe como template <typename T> class Argument final estabelece que ara::log::Argument não pode ser utilizada como classe base para especializações adicionais. Por meio da palavra-chave final, a derivação deve ser deliberadamente evitada para assegurar uma semântica de valor compacta e descartar fontes potenciais de erro, como o fatiamento de objetos (object slicing) no encaminhamento de argumentos. Pergunta Q-cfcfbbdeaad3a21b (aberta)
A estrutura da classe é, de acordo com a especificação AUTOSAR, específica do fornecedor (implementation-defined). Por conseguinte, a realização interna de armazenamento, construtores e campos de atributos fica a cargo do respectivo provedor da plataforma. Desenvolvedores de aplicações devem estar cientes de que a representação interna dos atributos e campos de dados provavelmente variará conforme o fornecedor e, portanto, nenhum acesso direto a membros internos ou layout fixo de memória pode ser presumido. Pergunta Q-0630c61b22bcaab0 (aberta)
No tocante às relações de posse e ao tempo de vida, instâncias de ara::log::Argument são geralmente criadas com curta duração. Elas surgem no contexto de uma operação iminente de registro, transferem o argumento de dados úteis para os respectivos fluxos ou buffers de logging e são liberadas novamente após a conclusão do procedimento de escrita. No que concerne à concorrência, a estrutura definida pelo fornecedor significa que o acesso concorrente à mesma instância deve ser evitado sem sincronização externa. Recomenda-se instanciar e processar instâncias de argumento localmente na respectiva thread de execução.
Caminho de utilização
O fluxo de uso conceitual de ara::log::Argument divide-se nas fases de encapsulamento, encaminhamento e processamento:
- Criação e encapsulamento: Um valor de dados úteis do tipo
Té encapsulado juntamente com os atributos associados em uma instância deara::log::Argument<T>. - Transferência para o sistema de logging: O argumento encapsulado é passado para as interfaces do módulo
log, por exemplo, por meio de operadores de streaming ou funções de logging. - Processamento e formatação: O framework de logging avalia o valor de dados úteis encapsulado bem como seus atributos, formata a saída de acordo com o coletor configurado (por exemplo, console, backend DLT ou memória persistente) e serializa os dados.
- Destruição: Ao término da instrução de log, o ciclo de vida do objeto temporário de argumento se encerra automaticamente ao sair do escopo.
Através deste fluxo padronizado, a classe garante que os atributos dos dados úteis sejam transportados de forma consistente com o valor dos dados úteis, sem que o código da aplicação precise gerenciar construções proprietárias de buffer.
Este texto foi gerado por uma IA. Ele baseia-se nos dados formais de especificação do AUTOSAR R25-11.
gemini-3.8-flash-low· 2026-10-13 · Original em alemão