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.
Regroupe des propriétés pour des actionneurs matériels dans un objet-valeur sûr face aux exceptions pour transmission aux interfaces SHWA.
GÉNÉRÉ PAR IAnon vérifiéModèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 5dbb1d61ed77ProvenanceQuestions ouvertes (3)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand
Regroupe des propriétés pour des actionneurs matériels dans un objet-valeur sûr face aux exceptions pour transmission aux interfaces SHWA.
La classe finale ara::shwa::PropertyList sert, dans le module AUTOSAR Adaptive shwa, à agréger et transmettre des propriétés. La création s'effectue via un constructeur de modèle variadique, déclaré comme noexcept et par conséquent sûr face aux exceptions ([AP_SWS_SHWA_00802]). Interprétation : Les instances devraient être principalement utilisées comme des objets-valeurs éphémères pour transmettre des attributs de configuration groupés à des interfaces matérielles. En tant que contrainte centrale, la classe n'est pas thread-safe (not thread-safe), raison pour laquelle les accès simultanés depuis plusieurs threads doivent être synchronisés de manière externe ([AP_SWS_SHWA_00802]). Question Q-6303ee8ec36bf3e3 (ouverte)
Contexte
La classe ara::shwa::PropertyList fait partie du module shwa (Smart Hardware Actuator) au sein de l'AUTOSAR Adaptive Platform. La spécification définit ce type comme une classe finale (class PropertyList final), ce qui exclut par avance toute dérivation par des classes utilisateur. Le rôle principal de la classe consiste à regrouper et à transmettre de manière structurée des propriétés. Via le modèle de constructeur [AP_SWS_SHWA_00802], la classe accepte une quantité variable d'objets de propriété. Interprétation : La classe devrait servir, au sein du module, de conteneur d'agrégation sécurisé du point de vue des types, qui regroupe des configurations hétérogènes ou des attributs matériels pour des actionneurs et des capteurs et les transmet aux interfaces de traitement. Question Q-70687f2df4a18776 (ouverte)
En interaction avec d'autres composants, la classe agit comme vecteur d'informations. L'appelant agrège des propriétés spécifiques à l'application, tandis que le sous-système SHWA reçoit ces listes afin de piloter des opérations proches du matériel. La définition de classe étant finale, PropertyList forme une structure de données fermée qui empêche une hiérarchie d'héritage directe et impose ainsi une sémantique uniforme lors de la transmission des paramètres.
Cycle de vie
Le cycle de vie d'une instance de ara::shwa::PropertyList débute par l'initialisation directe via le constructeur variadique template <typename... Properties> PropertyList(Properties... props) conformément à [AP_SWS_SHWA_00802]. La déclaration avec noexcept garantit que la création d'une instance se déroule de façon totalement sûre face aux exceptions, dans le respect de l'Exception Safety ([AP_SWS_SHWA_00802]). Si des erreurs surviennent lors du passage des paramètres ou du traitement interne, cela conduit, en raison de la garantie noexcept, à un arrêt direct du programme via std::terminate si les opérations sous-jacentes venaient à lever des exceptions.
En ce qui concerne le comportement vis-à-vis de la concurrence, la spécification stipule que la classe n'est pas thread-safe (not thread-safe) ([AP_SWS_SHWA_00802]). Cela signifie que les instances ne doivent pas être utilisées simultanément par plusieurs threads pendant leur création et lors de toutes les opérations consécutives, sans mécanismes de synchronisation externes. Interprétation : Les instances de PropertyList devraient typiquement être créées en tant qu'objets-valeurs (Value Objects) locaux sur la pile ou transmises par sémantique de déplacement (move semantics) aux fonctions appelées, instaurant ainsi des relations de propriété locales au thread sans état partagé. Question (ouverte)
La fin du cycle de vie suit les règles ordinaires applicables aux objets C++ automatiques ou dynamiques. Comme aucun destructeur virtuel ni aucun héritage n'est prévu, toutes les ressources contenues sont libérées de manière déterministe lors de la destruction de l'objet.
Parcours d'utilisation
Le chemin d'utilisation nominal de ara::shwa::PropertyList comprend la composition des propriétés pertinentes et la transmission de l'objet agrégé au sous-système SHWA :
Instanciation : l'utilisateur crée un objet de la classe en transmettant directement les propriétés souhaitées au constructeur variadique ([AP_SWS_SHWA_00802]). Grâce au patron, différents types de propriétés peuvent être combinés en un unique appel tout en respectant les types.
Transmission : l'instance créée est transmise aux méthodes ou interfaces cibles correspondantes du module shwa. Interprétation : après la construction, l'accès aux valeurs regroupées s'effectue vraisemblablement en lecture seule par les composants de traitement du sous-système matériel. Question Q-350de0ec77d53e28 (ouverte)
Nettoyage : à l'issue du traitement ou lors de la sortie de la portée, l'instance est automatiquement détruite sans qu'aucune étape explicite de désinitialisation ne soit requise.
Scénarios d'erreur
Puisque le constructeur de ara::shwa::PropertyList est explicitement déclaré comme noexcept, aucune exception C++ ne survient lors de son appel ([AP_SWS_SHWA_00802]). La sécurité vis-à-vis des exceptions est expressément désignée dans la spécification des exigences comme exception safe ([AP_SWS_SHWA_00802]). Les utilisateurs n'ont donc pas besoin de placer des blocs try-catch autour de la construction de listes de propriétés.
Un scénario d'erreur majeur réside dans le non-respect de la sécurité des threads. Comme PropertyList est classé not thread-safe selon [AP_SWS_SHWA_00802], un accès concurrent non protégé de plusieurs threads d'exécution à la même instance entraîne des situations de compétition et un comportement indéfini. Les développeurs doivent s'assurer que les instances sont soit exploitées exclusivement au niveau local du thread, soit protégées des accès concurrents par des primitives de synchronisation appropriées telles que des mutex.
Ce guide a été généré par une intelligence artificielle sur la base de la spécification AUTOSAR R25-11.
gemini-3.8-flash-low· 2026-10-13 · Original allemand