Permite que aplicações adaptativas construam listas de acesso dinâmicas e padrões de serviço para serviços de diagnóstico.
GERADO POR IAnão revisadoModelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: d14f1d69eb64ProcedênciaPerguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão
Permite que aplicações adaptativas construam listas de acesso dinâmicas e padrões de serviço para serviços de diagnóstico.
A classe serve a aplicações adaptativas para a criação e configuração de listas de acesso dinâmicas para serviços de diagnóstico [SWS_DM_01156]. Após a pré-alocação opcional de memória, ela cria, por meio de métodos como MakeServiceBuilder, instâncias para a definição de padrões de IDs de serviço individuais ou sequências de bytes [SWS_DM_01164]. Todas as funções-membro são declaradas como seguras contra exceções noexcept, enquanto operações modificadoras devem ser protegidas contra acessos concorrentes do lado da aplicação [SWS_DM_01163].
Contexto
A classe ara::diag::DiagnosticServiceDynamicAccessList serve para que uma aplicação adaptativa (AA) construa uma lista de acesso dinâmica (DynamicAccessList) para serviços de diagnóstico [SWS_DM_01156]. Ela atua como fábrica e unidade de gerenciamento para padrões de serviço ao criar instâncias de DynamicAccessListDiagServiceBuilder[SWS_DM_01164], [SWS_DM_01165]. Na arquitetura, a aplicação interage diretamente com a lista para definir regras de acesso com base em identificadores de serviço (SID) ou sequências de bytes, que formam a base para o controle de acesso dinâmico no subsistema de diagnóstico SWS Diagnostics §8.13.1 «Class: DiagnosticServiceDynamicAccessList».
Ciclo de vida
Instâncias de DiagnosticServiceDynamicAccessList são criadas por meio do construtor padrão sem parâmetros [SWS_DM_01157]. A classe está declarada como finalSWS Diagnostics §8.13.1 «Class: DiagnosticServiceDynamicAccessList». Ela suporta semântica de valor completa: objetos podem ser tanto copiados quanto movidos, para o que são disponibilizados os respectivos construtores de cópia e de movimento [SWS_DM_01159], [SWS_DM_01160], bem como operadores de atribuição [SWS_DM_01161], [SWS_DM_01162]. Após a inicialização, o objeto encontra-se no estado pronto para recebimento de padrões antes de ser limpo pelo destrutor ao final de sua vida útil [SWS_DM_01158].
Em relação à concorrência, os construtores (padrão, de cópia e de movimento) são explicitamente especificados como thread-safe [SWS_DM_01157], [SWS_DM_01159], [SWS_DM_01160]. Todas as operações de manipulação, tais como atribuições, reservas de memória e criações de builders, bem como o destrutor, são, por outro lado, definidas como não thread-safe [SWS_DM_01161], [SWS_DM_01162], [SWS_DM_01163], [SWS_DM_01164], [SWS_DM_01165], [SWS_DM_01158]. O acesso concorrente ao mesmo objeto requer, portanto, sincronização do lado da aplicação.
Caminho de utilização
O fluxo típico durante a construção de uma lista dinâmica de acesso a serviços compreende as seguintes fases:
Pré-alocação de memória: Antes da adição de padrões de serviço, a aplicação pode pré-reservar memória para todos os padrões de serviço esperados com Reserve[SWS_DM_01163]. Os parâmetros passados numberOfServiceHeads e maxServiceHeadSize permitem uma estimativa de pior caso da memória necessária para minimizar realocações dinâmicas posteriores.
Criação de padrões: A aplicação chama MakeServiceBuilder para iniciar um padrão de serviço de diagnóstico. Isso ocorre por meio de um byte de SID individual [SWS_DM_01164] ou de uma sequência de bytes serviceHead para verificações de padrão mais profundas [SWS_DM_01165].
Configuração de padrão: O método retorna um objeto do tipo DynamicAccessListDiagServiceBuilder[SWS_DM_01164], o qual é subsequentemente configurado pela aplicação.
Todas as funções-membro públicas e construtores da classe são declarados como noexcept e garantem estrita segurança contra exceções (exception safe) [SWS_DM_01157], [SWS_DM_01163], [SWS_DM_01164]. Condições de erro na forma de exceções C++ ou retorno de ara::core::Result com códigos de erro não ocorrem nessa interface. Na reserva de memória via Reserve, a indicação pode ser uma estimativa; uma subestimação não leva ao cancelamento da função, mas deve exigir novas alocações posteriores [SWS_DM_01163]. Pergunta Q-8d33a0315da27aed (aberta) Desenvolvedores de aplicações devem assegurar que as funções não thread-safe Reserve, MakeServiceBuilder e os operadores de atribuição nunca sejam executados concorrentemente no mesmo objeto sem bloqueio externo.
Este guia baseia-se no padrão AUTOSAR Release R25-11 e resume a especificação da classe ara::diag::DiagnosticServiceDynamicAccessList.
Preallocates memory for all service heads to fit into the DynamicAccessList. The preallocation can be just estimated and may calculate just the worst case of memory needed, not exact memory size needed for data numberOfServiceHeads.
This function is used by the AA to construct a pattern for the DynamicAccessList, using only the SID.
GERADO POR IAnão revisadoModelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: cfdb5e234f29ProcedênciaPerguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão
usar
A função síncrona MakeServiceBuilder da classe ara::diag::DiagnosticServiceDynamicAccessList serve para que uma aplicação adaptativa inicie um padrão para a lista de acesso dinâmica (DynamicAccessList) por meio de um único identificador de serviço (sid) ([SWS_DM_01164]). Ela recebe o parâmetro sid do tipo DynamicAccessListDiagServiceBuilder::Byte e retorna uma nova instância de DynamicAccessListDiagServiceBuilder ([SWS_DM_01164]). Por meio dessa chamada, a aplicação faz com que a instância do Diagnostic Server construa uma nova DynamicAccessList iniciando com o padrão de byte único fornecido ([SWS_DM_01218]; AUTOSAR_AP_SWS_Diagnostics §7.3.2.3.4 «DynamicAccessList Creation and Update»).
Interação e alternativas
Após a inicialização, a lista de acesso dinâmica de todos os clientes fica vazia por padrão ([SWS_DM_01214]). Além dessa função, está à disposição da aplicação uma sobrecarga com uma string de bytes (serviceHead) ([SWS_DM_01165]). Ambas as sobrecargas representam o ponto de entrada com o qual a criação de uma nova lista de acesso é disparada no servidor ([SWS_DM_01218]).
Tratamento de erros e simultaneidade
A interface é declarada como noexcept e especificada como segura contra exceções (exception safe) ([SWS_DM_01164]). Ela não lança exceções nem retorna códigos de erro; identificadores de serviço incorretos devem, portanto, ser notados apenas na avaliação posterior do padrão pelo Diagnostic Server. Pergunta Q-eacef79ec6be9fcd (aberta) Em relação à concorrência, a função é classificada explicitamente como não segura para threads (not thread-safe) ([SWS_DM_01164]). Em caso de acesso paralelo a partir de múltiplos contextos de execução, a aplicação chamadora deve providenciar uma sincronização externa.
Esta nota de utilização foi gerada por uma IA com base na especificação AUTOSAR R25-11.
This function is used by the AA to construct a pattern for the DynamicAccessList, using a string of bytes.
GERADO POR IAnão revisadoModelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 7426838ef9dfProcedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão
O método MakeServiceBuilder da classe ara::diag::DiagnosticServiceDynamicAccessList serve para que uma Adaptive Application crie um padrão de diagnóstico para a DynamicAccessList com base em uma sequência de bytes ([SWS_DM_01165]).
Parâmetro:serviceHead (tipo DynamicAccessListDiagServiceBuilder::Byte String) passa uma sequência de bytes que define o início do padrão para a correspondência de diagnóstico ([SWS_DM_01165]).
Valor de retorno: Retorna uma instância de DynamicAccessListDiagServiceBuilder para a configuração adicional do padrão de serviço ([SWS_DM_01165]).
Zusammenspiel e ciclo de vida
Na inicialização do sistema, a DynamicAccessList de todos os clientes fica vazia por padrão ([SWS_DM_01214]). Se uma sobrecarga de MakeServiceBuilder for chamada, a instância do Diagnostic Server provoca a criação de uma nova DynamicAccessList, iniciando com o padrão de string de bytes passado ([SWS_DM_01218], AUTOSAR_AP_SWS_Diagnostics §7.3.2.3.4 «DynamicAccessList Creation and Update»). Como alternativa, está disponível uma sobrecarga para um único byte ([SWS_DM_01164]).
Simultaneidade e tratamento de erros
A função é declarada como noexcept e segura contra exceções (exception safe), ou seja, não gera exceções C++ ([SWS_DM_01165]). Códigos de erro ou mensagens de DET/DEM não são especificados para esta chamada. Como a operação é classificada como não segura para threads (not thread-safe), chamadas paralelas na mesma instância devem ser sincronizadas no lado da aplicação ([SWS_DM_01165]).
Esta nota de uso foi gerada por uma IA com base na especificação AUTOSAR R25-11.
Preallocates memory for all service heads to fit into the DynamicAccessList. The preallocation can be just estimated and may calculate just the worst case of memory needed, not exact memory size needed for data numberOfServiceHeads.
GERADO POR IAnão revisadoModelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 77bde14da8eeProcedênciaPerguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão
O método ara::diag::DiagnosticServiceDynamicAccessList::Reserve pré-aloca memória para service heads dentro de uma instância de DiagnosticServiceDynamicAccessList ([SWS_DM_01163], SWS Diagnostics §8.13.1.1.3.3 «Reserve»). Essa pré-alocação não precisa corresponder ao tamanho exato de memória, podendo ser calculada como uma estimativa de pior caso da memória máxima necessária ([SWS_DM_01163]).
Utilização e parâmetros
A chamada ocorre de forma síncrona e processa dois parâmetros de entrada ([SWS_DM_01163]):
numberOfServiceHeads (std::size_t): Quantidade de padrões de serviço de diagnóstico (patterns).
maxServiceHeadSize (std::size_t): Quantidade máxima esperada de bytes de diagnóstico dentro de um único padrão.
A função não fornece valor de retorno (void) e é especificada com noexcept bem como a propriedade exception safe ([SWS_DM_01163]). Não existe tratamento de erros por meio de códigos de retorno ou exceções.
Simultaneidade e restrições
A função é classificada como not thread-safe ([SWS_DM_01163]). Acessos concorrentes de múltiplas threads à mesma instância exigem, portanto, obrigatoriamente uma sincronização externa. Presumivelmente, o método é chamado antes do registro de service patterns a fim de minimizar realocações posteriores de memória em tempo de execução. Pergunta Q-e58b6f12a3a0adac (aberta)
demarcação
Deve-se distinguir este método de funções SOVD homônimas, como em DiagnosticSovdArrayContentElementDataView ([SWS_DM_02240]), DiagnosticSovdRecordContentElementDataView ([SWS_DM_02283]) ou DiagnosticSovdContentElementData ([SWS_DM_02345]), que recebem respectivamente uma capacidade e são especificadas como thread-safe.
Esta nota de uso baseia-se na especificação AUTOSAR Adaptive R25-11.
gemini-3.8-flash-low· 2026-10-13 · Original em alemão