DEENESPTFRRUARHIKOZHNL

classe ara::shwa::DeviceSelector

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.

Header-Datei#include "ara/shwa/device_selector.h"
Scopenamespace ara::shwa

Guide utilisateurGÉNÉRÉ PAR IA

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 IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 4c64c523c424 Provenance Questions 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].

DeviceSelectorKontext Anwendung Anwendung DeviceSelector DeviceSelector Anwendung->DeviceSelector utilise Device Device DeviceSelector->Device selektiert / bewertet

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.
Séquences d'appels pour l'évaluation et la sélection de périphériquesApplicationDeviceSelectorUse Case: Évaluation individuelle d'un candidat de périphériqueoperator()(device)altErfolgreiche AuswertungResult<int> (Bewertungswert)Ressource belegtShwaErrorCode::kResourceBusyUse Case: Sélection directe du périphériqueSelectDevice()altErfolgreiche SelektionResult<Device>Fonction non prise en chargeShwaErrorCode::kFeatureNotSupported

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.

Carte des membres

Constructeurs et destructeur

1

Méthodes

1

Opérateurs

1

Vue détaillée

Sélectionnez une entrée dans le plan.

Constructeurs et destructeur

Die Spezifikation definiert diese Deklaration mit der in der Signatur ausgewiesenen Semantik.

virtual ~DeviceSelector () noexcept=default;

Méthodes

SelectDevice fonction

Bewertet beziehungsweise selektiert ein Device entsprechend der Selektor-Strategie.

virtual ara::core::Result< Device > SelectDevice () const noexcept=0;

Opérateurs

operator() fonction

Bewertet beziehungsweise selektiert ein Device entsprechend der Selektor-Strategie.

virtual ara::core::Result< int > operator() (const Device &device) const noexcept=0;

Détails

fonction ~DeviceSelector [AP_SWS_SHWA_00402] Upstream: RS_SHWA_00006

virtual ~DeviceSelector () noexcept=default;

Die Spezifikation definiert diese Deklaration mit der in der Signatur ausgewiesenen Semantik.

Scopeclass ara::shwa::DeviceSelector
Exception Safetyexception safe

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/AP_SWS_SHWA_00402
Status
valid/unmigrated
Version
AUTOSAR/AP/record/AP_SWS_SHWA_00402@rel:R25-11#b0226ff6
Content hash
b0226ff6
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_SafeHardwareAcceleration.pdf#nameddest=AP_SWS_SHWA_00402
Status: valid/unmigrated Version: rel:R25-11#8e9d36b4 Versionshistorie & Revisions (1 transition)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/AP_SWS_SHWA_00402@rel:R25-11#8e9d36b4
Point-in-Time History:
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

fonction SelectDevice [AP_SWS_SHWA_00403] Upstream: RS_SHWA_00006, RS_SHWA_00007

virtual ara::core::Result< Device > SelectDevice () const noexcept=0;

Bewertet beziehungsweise selektiert ein Device entsprechend der Selektor-Strategie.

Scopeclass ara::shwa::DeviceSelector
Thread Safetynot thread-safe no_rollback_semantics ShwaErrorCode::k ResourceBusy The operation could not be performed because the resource is currently busy no_rollback_semantics
Exception Safetyexception safe
ErrorsShwaErrorCode::k FeatureNotSupported Used when a requested feature isn’t supported

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/AP_SWS_SHWA_00403
Status
valid/unmigrated
Version
AUTOSAR/AP/record/AP_SWS_SHWA_00403@rel:R25-11#78a63925
Content hash
78a63925
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_SafeHardwareAcceleration.pdf#nameddest=AP_SWS_SHWA_00403
Status: valid/unmigrated Version: rel:R25-11#83b7e520 Versionshistorie & Revisions (1 transition)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/AP_SWS_SHWA_00403@rel:R25-11#83b7e520
Point-in-Time History:
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

fonction operator() [AP_SWS_SHWA_00404] Upstream: RS_SHWA_00006, RS_SHWA_00007

virtual ara::core::Result< int > operator() (const Device &device) const noexcept=0;

Bewertet beziehungsweise selektiert ein Device entsprechend der Selektor-Strategie.

Scopeclass ara::shwa::DeviceSelector
Thread Safetynot thread-safe no_rollback_semantics ShwaErrorCode::k ResourceBusy The operation could not be performed because the resource is currently busy no_rollback_semantics
Exception Safetyexception safe
ErrorsShwaErrorCode::k FeatureNotSupported Used when a requested feature isn’t supported

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/AP_SWS_SHWA_00404
Status
valid/unmigrated
Version
AUTOSAR/AP/record/AP_SWS_SHWA_00404@rel:R25-11#4fb0bdac
Content hash
4fb0bdac
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_SafeHardwareAcceleration.pdf#nameddest=AP_SWS_SHWA_00404
Status: valid/unmigrated Version: rel:R25-11#2bfa9942 Versionshistorie & Revisions (1 transition)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/AP_SWS_SHWA_00404@rel:R25-11#2bfa9942
Point-in-Time History:
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill