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] Wortlaut noch nicht übernommenUpstream: RS_SHWA_00006
class DeviceSelector {...};
Die Spezifikation definiert diesen Klassentyp mit der gezeigten Schnittstelle.
Dient als abstrakte Schnittstelle zur Bewertung und Selektion von Geräten anhand einer spezifischen Auswahlstrategie.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 4c64c523c424HerkunftOffene Fragen (3)
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Dient als abstrakte Schnittstelle zur Bewertung und Selektion von Geräten anhand einer spezifischen Auswahlstrategie.
Die abstrakte Klasse ara::shwa::DeviceSelector definiert eine Strategie-Schnittstelle zur Bewertung und Auswahl von Zielgeräten im Subsystem shwa. Sie ermöglicht über SelectDevice() die direkte Bestimmung eines optimalen Geräts sowie über operator() die vergleichende Bewertung einzelner Gerätekandidaten [AP_SWS_SHWA_00403], [AP_SWS_SHWA_00404]. Der virtuelle Standard-Destruktor garantiert die sichere Zerstörung abgeleiteter Strategie-Instanzen. Zu den zentralen Randbedingungen zählt, dass die Aufrufe nicht threadsicher sind und bei Fehlschlägen keine automatische Rollback-Semantik greift.
Kontext
Die Klasse ara::shwa::DeviceSelector stellt im Modul shwa eine abstrakte Schnittstelle zur Verfügung, um Hardware- oder Funktionsgeräte (Device) auf Basis einer spezifischen Selektionsstrategie auszuwählen oder zu bewerten. Sie dient als Entkopplungsschicht zwischen einer übergeordneten Steuerungsanwendung und den konkreten Auswahlverfahren. Zu den beteiligten Interaktionspartnern gehören die aufrufende Anwendung, die konkrete Implementierung der Auswahlstrategie sowie die Zielobjekte vom Typ Device. Die Schnittstelle definiert zwei zentrale Operationen: die direkte Auswahl eines Geräts über SelectDevice()[AP_SWS_SHWA_00403] sowie die vergleichende Einzelbewertung eines Geräts über den Funktionsaufruf-Operator operator()[AP_SWS_SHWA_00404].
Als abstrakte Basisklasse mit rein virtuellen Methoden kann DeviceSelector nicht direkt instanziiert werden. Konkrete Selektionsstrategien dürften als abgeleitete Klassen implementiert und durch die Anwendungskomponente erzeugt werden. Frage Q-4e22b2e57ef141e9 (offen) Die Verwaltung der Besitzverhältnisse obliegt typischerweise der Anwendung, beispielsweise über Smart Pointer wie std::unique_ptr<DeviceSelector>. Für eine saubere polymorphe Zerstörung der spezialisierten Klassen deklariert die Schnittstelle einen virtuellen Standard-Destruktor ~DeviceSelector()[AP_SWS_SHWA_00402]. Dieser ist explizit als noexcept ausgewiesen und erfüllt damit die Anforderungen an Ausnahme-Sicherheit (exception safe) beim Abbau der Instanzen [AP_SWS_SHWA_00402].
Hinsichtlich Nebenläufigkeit und Zustandsübergängen sind die Schnittstellenoperationen als nicht threadsicher (not thread-safe) eingestuft [AP_SWS_SHWA_00403], [AP_SWS_SHWA_00404]. Obwohl die Memberfunktionen mit const annotiert sind, dürfen nebenläufige Zugriffe auf dieselbe Instanz aus verschiedenen Threads nicht ohne externe Synchronisation erfolgen. Die Spezifikation sieht für fehlerhafte Aufrufe zudem keine automatische Rückabwicklung vor (no_rollback_semantics) [AP_SWS_SHWA_00403], [AP_SWS_SHWA_00404].
Nutzungspfad
Ein typischer Nutzungsablauf umfasst die Initialisierung einer konkreten Strategieinstanz und die anschließende Bewertung oder Selektion von Gerätekandidaten. Hierbei existieren zwei primäre Aufrufpfade:
Direkte Geräteselektion: Die Anwendung ruft die parameterlose Methode SelectDevice() auf [AP_SWS_SHWA_00403]. Die konkrete Strategie bestimmt autonom das am besten geeignete Gerät und liefert ein ara::core::Result<Device> zurück.
Iterative Einzelbewertung: Bei Algorithmen zur Filterung oder Sortierung mehrerer Kandidaten übergibt die Anwendung die jeweiligen Instanzen sukzessive an operator()(const Device &device)[AP_SWS_SHWA_00404]. Die Auswertung über operator() dürfte intern relevante Eigenschaften oder Betriebszustände des übergebenen Geräts analysieren. Frage Q-8ba0b9b900196d50 (offen) Der zurückgegebene int-Wert im ara::core::Result<int> dürfte hierbei eine Eignungskennzahl oder Priorität widerspiegeln, anhand derer die aufrufende Stelle eine Auswahlentscheidung trifft.
Sequenzdiagramm: Aufrufsequenzen zur Einzelbewertung und direkten Selektion einschließlich Fehlerbehandlung. Quellen: [AP_SWS_SHWA_00403], [AP_SWS_SHWA_00404]
Fehlerszenarien
Beide Selektionsmethoden sind als noexcept deklariert und werfen keine C++-Ausnahmen (exception safe). Stattdessen signalisieren sie Fehlschläge über den Fehlerkanal von ara::core::Result. Anwendungen müssen den Rückgabewert stets auf Fehler prüfen, bevor auf das Ergebnis zugegriffen wird. Folgende Fehlerzustände sind für SelectDevice() und operator() definiert:
ShwaErrorCode::kResourceBusy: Die angeforderte Operation konnte nicht ausgeführt werden, da die erforderliche Ressource derzeit belegt ist [AP_SWS_SHWA_00403], [AP_SWS_SHWA_00404]. In diesem Fall kann die Anwendung den Aufruf zu einem späteren Zeitpunkt wiederholen oder eine alternative Strategie wählen.
ShwaErrorCode::kFeatureNotSupported: Wird zurückgegeben, wenn eine für die Selektion oder Bewertung angeforderte Funktionalität von der zugrunde liegenden Implementierung nicht unterstützt wird [AP_SWS_SHWA_00403], [AP_SWS_SHWA_00404].
Da keine Rollback-Semantik existiert (no_rollback_semantics) [AP_SWS_SHWA_00403], [AP_SWS_SHWA_00404], verbleibt das System im Fehlerfall im aktuellen Zustand, und die aufrufende Stelle ist für geeignete Kompensationsmaßnahmen verantwortlich. Als Vorbedingung für operator() gilt zudem, dass die übergebene Gerätereferenz während des gesamten Aufrufs gültig bleiben muss.
Dieser Klassen-Leitfaden basiert auf der Spezifikation AUTOSAR Adaptive R25-11 (Modul shwa) und wurde automatisiert kuratiert.
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-medium· 2026-10-13