Diese Seite wurde vollständig KI-generiert auf Basis von SWS Safe Hardware Acceleration (R25-11) — kein offizieller AUTOSAR-Text und keine automatisch extrahierte API-Seite wie die übrigen Module. Als Interpretation gekennzeichnete Aussagen sind Schlussfolgerungen aus den Quellen.
[AP_SWS_SHWA_00701] texto ainda não importadoUpstream: RS_SHWA_00017
template <int Dimensions = 1> class Id final {...};
Die Spezifikation definiert diesen Klassentyp mit der gezeigten Schnittstelle.
Serve como identificador de índice multidimensional para endereçamento de recursos de hardware e de memória.
GERADO POR IAnão revisadoModelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 5df852eb2decProcedênciaPerguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão
Serve como identificador de índice multidimensional para endereçamento de recursos de hardware e de memória.
A classe de modelo ara::shwa::Id encapsula identificadores multidimensionais no módulo shwa e impõe uma instanciação controlada por meio de métodos de fábrica estáticos como Create[AP_SWS_SHWA_00707]. Como objeto de valor copiável e móvel, ela permite o acesso a índices de dimensões individuais por meio de Get e Set[AP_SWS_SHWA_00710]. Como os acessos de leitura e gravação, bem como as fábricas multidimensionais, não são seguros para threads, a sincronização necessária cabe à aplicação chamadora.
Contexto
A classe de modelo ara::shwa::Id representa, dentro do módulo shwa, uma identificação ou indexação multidimensional para estruturas de memória compartilhada ou de aceleradores de hardware. Ela encapsula coordenadas ou índices de dimensões que podem ser instanciados por meio de métodos de fábrica estáticos e, em seguida, consultados ou modificados. A classe é declarada como final e parametriza o número de dimensões por meio do parâmetro de modelo Dimensions com o valor padrão 1. Como parceiros de interação atuam tipicamente componentes de aplicação que precisam endereçar acessos estruturados a buffers de aceleradores ou recursos de memória. Nesse contexto, um objeto de instância de ara::shwa::Id serve como um objeto de valor compacto para o endereçamento relativo a dimensões.
Ciclo de vida
A instanciação de ara::shwa::Id está sujeita a requisitos rigorosos: o construtor padrão está explicitamente excluído [AP_SWS_SHWA_00702]. Uma criação direta e não inicializada de objetos fica, assim, excluída. Em vez disso, a criação ocorre de forma controlada por meio de funções de fábrica estáticas Create, as quais retornam o objeto encapsulado em um ara::core::Result[AP_SWS_SHWA_00707], [AP_SWS_SHWA_00708], [AP_SWS_SHWA_00709]. Dependendo da dimensionalidade exigida, estão disponíveis sobrecargas para uma dimensão [AP_SWS_SHWA_00707], duas dimensões [AP_SWS_SHWA_00708] ou três dimensões [AP_SWS_SHWA_00709].
No que diz respeito às relações de posse, o ara::shwa::Id comporta-se como um objeto de valor regular. Ele implementa tanto o construtor de cópia [AP_SWS_SHWA_00703] quanto o operador de atribuição por cópia [AP_SWS_SHWA_00704] como padronizados (default) e seguros contra exceções (noexcept). Da mesma forma, o construtor de movimentação [AP_SWS_SHWA_00705] e o operador de atribuição por movimentação [AP_SWS_SHWA_00706] estão disponíveis com noexcept. As instâncias podem, assim, ser armazenadas eficientemente em contêineres, passadas por valor ou movidas entre partes do programa. Atenção especial é requerida para a segurança de thread: enquanto o método de fábrica unidimensional é especificado como seguro para threads [AP_SWS_SHWA_00707], os métodos de fábrica bidimensionais e tridimensionais são explicitamente indicados como não seguros para threads [AP_SWS_SHWA_00708], [AP_SWS_SHWA_00709]. Em inicializações paralelas de índices multidimensionais, os chamadores devem prever medidas de sincronização correspondentes.
Caminho de utilização
O fluxo de utilização típico compreende a instanciação controlada por meio da chamada de fábrica apropriada, a verificação do objeto de resultado bem como subsequentes operações de leitura e escrita nas dimensões individuais. Primeiramente, a aplicação chama Create com os limites dimensionais ou valores de índice desejados. Após o retorno bem-sucedido de um ara::core::Result<Id>, o valor nele contido é desempacotado. Por meio do método constante Get, o valor de índice para uma determinada dimensão pode ser consultado [AP_SWS_SHWA_00710]. Se necessário, o valor de uma determinada dimensão pode ser modificado posteriormente por meio de Set[AP_SWS_SHWA_00711]. Ambos os métodos (Get e Set) são classificados como não seguros para threads; acessos simultâneos à mesma instância a partir de múltiplas threads devem ser sincronizados externamente.
Na criação por meio dos métodos estáticos Create, podem ocorrer erros de tempo de execução. Se a instanciação falhar, o método de fábrica fornece um ara::core::Result que contém o código de erro ShwaErrorCode::kRuntime[AP_SWS_SHWA_00707], [AP_SWS_SHWA_00708], [AP_SWS_SHWA_00709]. Portanto, os chamadores devem obrigatoriamente verificar o valor de retorno por meio de HasValue() antes de acessar a instância. Todas as funções Create garantem semântica de reversão (rollback) e são declaradas como seguras contra exceções (noexcept).
Em operação regular nos métodos Get e Set, deve-se atentar para o fato de que estes, segundo a especificação, não são seguros contra exceções (not exception safe) e não operam de forma segura para threads [AP_SWS_SHWA_00710], [AP_SWS_SHWA_00711]. Interpretação: a passagem de valores de dimensão inadmissíveis fora do intervalo de valores válido deve levar a comportamento indefinido ou exceções, uma vez que não estão definidos códigos de erro separados para parâmetros incorretos nesses métodos. Pergunta Q-6983f5f27702e6e8 (aberta) Os chamadores devem assegurar antes da chamada que o argumento dimension esteja dentro dos limites válidos da instância.
Este guia foi gerado por um assistente de IA com base na especificação AUTOSAR para R25-11.
gemini-3.8-flash-low· 2026-10-13 · Original em alemão