Permite o acesso thread-safe, somente leitura, a elementos de array de um objeto de dados de diagnóstico SOVD.
GERADO POR IAnão revisadoModelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 46670b91e1adProcedênciaPerguntas em aberto (2)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão
Permite o acesso thread-safe, somente leitura, a elementos de array de um objeto de dados de diagnóstico SOVD.
A classe ara::diag::DiagnosticSovdArrayContentElementDataConstView oferece uma visualização somente leitura para um DiagnosticSovdContentElementData do tipo array visando à consulta eficiente de diagnóstico [SWS_DM_02248]. As aplicações verificam inicialmente o estado de integridade por meio de HasError() e, em seguida, acessam os elementos do array aleatoriamente via operator[] ou iterativamente via CBegin() e CEnd()[SWS_DM_02253]. Todas as operações são executadas de modo thread-safe bem como seguro contra exceções (noexcept), pressupondo, contudo, a validade contínua do elemento base referenciado.
Contexto
A classe ara::diag::DiagnosticSovdArrayContentElementDataConstView disponibiliza uma visão somente de leitura (const view) para um elemento de dados de diagnóstico do tipo array dentro da arquitetura de diagnóstico do Adaptive AUTOSAR para SOVD (Service-Oriented Vehicle Diagnostics) [SWS_DM_02248] (AUTOSAR_AP_SWS_Diagnostics §8.60.3 «Class: DiagnosticSovdArrayContentElementDataConstView»). Ela permite o acesso de leitura controlado a elementos sequenciais de um conteúdo de diagnóstico, sem a necessidade de copiar o buffer de dados subjacente.
Entre os principais parceiros de interação da classe estão:
a aplicação de diagnóstico chamadora, que avalia dados de array,
o DiagnosticSovdContentElementData referenciado, que armazena os elementos de array concretos e para o qual é feita referência em caso de acesso aleatório via [SWS_DM_02253],
o tipo auxiliar DiagnosticSovdArrayContentElementDataConstIterator, que é gerado para iterações em conformidade com o padrão sobre os elementos do array [SWS_DM_02254].
A classe está disponível através do cabeçalho #include "ara/diag/diagnostic_sovd_content_element_data.h"[SWS_DM_02248]. Como uma classe puramente de visão, ela não possui a propriedade dos dados reais do array. Interpretação: O tempo de vida de uma instância de view está vinculado à validade do DiagnosticSovdContentElementData subjacente; o objeto de dados deve permanecer na memória durante o período de utilização da view. Pergunta Q-1a3079bdd09b4ddd (aberta)
Em relação à simultaneidade, todas as funções-membro da classe são explicitamente declaradas como thread-safe [SWS_DM_02250], [SWS_DM_02253]. Múltiplas threads podem, portanto, acessar simultaneamente a mesma instância de view para leitura (interpretação: desde que o objeto de dados subjacente não seja modificado concorrentemente por operações de escrita). Pergunta Q-61e5fa3990052e70 (aberta) Além disso, todos os métodos garantem segurança de exceção completa (exception safe) e são especificados, sem exceção, com noexcept[SWS_DM_02249], [SWS_DM_02251]. Por se tratar de uma visão imutável, a classe não apresenta transições de estado internas ou fases complexas de ciclo de vida.
Caminho de utilização
O fluxo regular para o uso dos dados de array divide-se em verificação de integridade, consulta de dimensões e extração de dados:
Verificação de integridade: antes do acesso, a aplicação deve verificar via HasError() se o elemento de conteúdo está livre de erros [SWS_DM_02249].
Acesso aos dados: estão disponíveis dois caminhos para o acesso aos elementos do array:
Acesso aleatório por índice: via operator[](std::size_t index), solicita-se uma referência para o elemento de destino, encapsulada em ara::core::Result<std::reference_wrapper<DiagnosticSovdContentElementData const>>[SWS_DM_02253].
A classe abre mão de C++ Exceptions e reporta erros funcionais via ara::core::Result:
Conteúdo de dados incorreto: caso o elemento de conteúdo contenha dados incorretos, HasError() não fornece um Result de sucesso vazio, mas sim um código de erro do tipo ara::diag::DiagSovdErrc[SWS_DM_02249].
Conflito de tipos no acesso por índice: o operator[] exige obrigatoriamente que o elemento referenciado seja de fato do tipo ArrayContentElementData[SWS_DM_02253]. Se este não for o caso, a chamada falha e retorna um objeto de erro correspondente no Result em vez de uma referência.
Limites de índice: como operator[] só pode ser chamado dentro da faixa válida, os chamadores devem assegurar previamente via Size()[SWS_DM_02250] ou Empty()[SWS_DM_02252] que o índice solicitado existe.
Este guia baseia-se na especificação AUTOSAR Adaptive R25-11.
gemini-3.8-flash-low· 2026-10-13 · Original em alemão