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_00401] libellé pas encore importéUpstream: RS_SHWA_00006
class DeviceSelector {...};
Die Spezifikation definiert diesen Klassentyp mit der gezeigten Schnittstelle.
Sert d’interface abstraite pour l’évaluation et la sélection de périphériques selon une stratégie de sélection spécifique.
GÉNÉRÉ PAR IAnon vérifiéModèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 4c64c523c424ProvenanceQuestions ouvertes (3)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand
Sert d’interface abstraite pour l’évaluation et la sélection de périphériques selon une stratégie de sélection spécifique.
La classe abstraite ara::shwa::DeviceSelector définit une interface de stratégie pour l’évaluation et la sélection de périphériques cibles dans le sous-système shwa. Elle permet de déterminer directement un périphérique optimal via SelectDevice() ainsi que d’évaluer de manière comparative différents périphériques candidats via operator()[AP_SWS_SHWA_00403], [AP_SWS_SHWA_00404]. Le destructeur virtuel par défaut garantit la destruction sécurisée des instances de stratégie dérivées. Parmi les contraintes centrales, on compte le fait que les appels ne sont pas thread-safe et qu’aucune sémantique de rollback automatique ne s’applique en cas d’échec.
Contexte
Dans le module shwa, la classe ara::shwa::DeviceSelector met à disposition une interface abstraite permettant de sélectionner ou d’évaluer des périphériques matériels ou fonctionnels (Device) sur la base d’une stratégie de sélection spécifique. Elle sert de couche de découplage entre une application de commande de niveau supérieur et les procédures de sélection concrètes. Parmi les partenaires d’interaction impliqués figurent l’application appelante, l’implémentation concrète de la stratégie de sélection ainsi que les objets cibles de type Device. L’interface définit deux opérations fondamentales : la sélection directe d’un périphérique via SelectDevice()[AP_SWS_SHWA_00403] ainsi que l’évaluation individuelle comparative d’un périphérique via l’opérateur d’appel de fonction operator()[AP_SWS_SHWA_00404].
Diagramme de contexte : intégration de DeviceSelector entre l’application et les périphériques cibles. Sources : [AP_SWS_SHWA_00403], [AP_SWS_SHWA_00404]
Cycle de vie
En tant que classe de base abstraite dotée de méthodes virtuelles pures, DeviceSelector ne peut pas être directement instanciée. Les stratégies de sélection concrètes devraient être implémentées sous forme de classes dérivées et créées par le composant applicatif. La gestion de la propriété incombe typiquement à l’application, par exemple via des pointeurs intelligents tels que std::unique_ptr<DeviceSelector>. Pour une destruction polymorphique propre des classes spécialisées, l’interface déclare un destructeur virtuel par défaut ~DeviceSelector()[AP_SWS_SHWA_00402]. Celui-ci est explicitement désigné comme noexcept et répond ainsi aux exigences de sécurité face aux exceptions (exception safe) lors de la destruction des instances [AP_SWS_SHWA_00402]. Question Q-4e22b2e57ef141e9 (ouverte)
En ce qui concerne la concurrence et les transitions d’état, les opérations de l’interface sont classées comme non thread-safe (not thread-safe) [AP_SWS_SHWA_00403], [AP_SWS_SHWA_00404]. Bien que les fonctions membres soient annotées avec const, les accès concurrents à la même instance depuis différents threads ne doivent pas avoir lieu sans synchronisation externe. De plus, la spécification ne prévoit aucune rétrocession automatique (no_rollback_semantics) en cas d’appels erronés [AP_SWS_SHWA_00403], [AP_SWS_SHWA_00404].
Parcours d'utilisation
Un déroulement d’utilisation typique comprend l’initialisation d’une instance de stratégie concrète, suivie de l’évaluation ou de la sélection de périphériques candidats. Deux chemins d’appel principaux existent à cet égard :
Sélection directe de périphérique : l’application appelle la méthode sans paramètre SelectDevice()[AP_SWS_SHWA_00403]. La stratégie concrète détermine de manière autonome le périphérique le plus approprié et renvoie un ara::core::Result<Device>.
Évaluation individuelle itérative : lors d’algorithmes de filtrage ou de tri de plusieurs candidats, l’application transmet successivement les instances respectives à operator()(const Device &device)[AP_SWS_SHWA_00404]. L’évaluation via operator() devrait analyser en interne les propriétés ou états de fonctionnement pertinents du périphérique transmis. Question Q-8ba0b9b900196d50 (ouverte) La valeur de int renvoyée dans le ara::core::Result<int> devrait refléter ici un indicateur d’adéquation ou une priorité sur la base de laquelle l’entité appelante prend une décision de sélection.
Diagramme de séquence : séquences d’appels pour l’évaluation individuelle et la sélection directe, y compris le traitement des erreurs. Sources : [AP_SWS_SHWA_00403], [AP_SWS_SHWA_00404]
Scénarios d'erreur
Les deux méthodes de sélection sont déclarées comme noexcept et ne lèvent aucune exception C++ (exception safe). Au lieu de cela, elles signalent les échecs via le canal d’erreur de ara::core::Result. Les applications doivent systématiquement vérifier la valeur de retour quant aux erreurs avant d’accéder au résultat. Les états d’erreur suivants sont définis pour SelectDevice() et operator() :
ShwaErrorCode::kResourceBusy : l’opération demandée n’a pas pu être exécutée, car la ressource requise est actuellement occupée [AP_SWS_SHWA_00403], [AP_SWS_SHWA_00404]. Dans ce cas, l’application peut réitérer l’appel ultérieurement ou choisir une stratégie alternative.
ShwaErrorCode::kFeatureNotSupported : renvoyé lorsqu’une fonctionnalité demandée pour la sélection ou l’évaluation n’est pas prise en charge par l’implémentation sous-jacente [AP_SWS_SHWA_00403], [AP_SWS_SHWA_00404].
Puisqu’aucune sémantique de rollback n’existe (no_rollback_semantics) [AP_SWS_SHWA_00403], [AP_SWS_SHWA_00404], le système reste dans l’état actuel en cas d’erreur, et l’entité appelante est responsable des mesures de compensation appropriées. En outre, la précondition pour operator() exige que la référence de périphérique transmise reste valide pendant toute la durée de l’appel.
Ce guide de classe est basé sur la spécification AUTOSAR Adaptive R25-11 (module shwa) et a été élaboré de manière automatisée.
Bewertet beziehungsweise selektiert ein Device entsprechend der Selektor-Strategie.
Scope
class ara::shwa::DeviceSelector
Thread Safety
not thread-safe no_rollback_semantics ShwaErrorCode::k ResourceBusy The operation could not be performed because the resource is currently busy no_rollback_semantics
Exception Safety
exception safe
Errors
ShwaErrorCode::k FeatureNotSupported Used when a requested feature isn’t supported
Request a governed re-review of this record. The record is not changed immediately.
virtual ara::core::Result< int > operator() (const Device &device) const noexcept=0;
Bewertet beziehungsweise selektiert ein Device entsprechend der Selektor-Strategie.
Scope
class ara::shwa::DeviceSelector
Thread Safety
not thread-safe no_rollback_semantics ShwaErrorCode::k ResourceBusy The operation could not be performed because the resource is currently busy no_rollback_semantics
Exception Safety
exception safe
Errors
ShwaErrorCode::k FeatureNotSupported Used when a requested feature isn’t supported
Request a governed re-review of this record. The record is not changed immediately.
gemini-3.8-flash-low· 2026-10-13 · Original allemand