DEENESPTFRRUARHIKOZHNL

class 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] Wortlaut noch nicht übernommen 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

User GuideKI-GENERIERT

Dient als abstrakte Schnittstelle zur Bewertung und Selektion von Geräten anhand einer spezifischen Auswahlstrategie.
KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 4c64c523c424 Herkunft Offene 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].

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

Kontextdiagramm: Einbettung von DeviceSelector zwischen Anwendung und Gerätezielen. Quellen: [AP_SWS_SHWA_00403], [AP_SWS_SHWA_00404]

Lebenszyklus

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.
Aufrufsequenzen zur Gerätebewertung und -selektionAnwendungDeviceSelectorUse Case: Einzelbewertung eines Gerätekandidatenoperator()(device)altErfolgreiche AuswertungResult<int> (Bewertungswert)Ressource belegtShwaErrorCode::kResourceBusyUse Case: Direkte GeräteselektionSelectDevice()altErfolgreiche SelektionResult<Device>Funktion nicht unterstuetztShwaErrorCode::kFeatureNotSupported

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.

Mitgliederkarte

Konstruktoren und Destruktor

1

Methoden

1

Operatoren

1

Detailansicht

Wähle in der Gliederung einen Eintrag aus.

Konstruktoren und Destruktor

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

virtual ~DeviceSelector () noexcept=default;

Methoden

SelectDevice function

Bewertet beziehungsweise selektiert ein Device entsprechend der Selektor-Strategie.

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

Operatoren

operator() function

Bewertet beziehungsweise selektiert ein Device entsprechend der Selektor-Strategie.

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

Details

function ~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#8e9d36b4
Content hash
8e9d36b4
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

function 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#83b7e520
Content hash
83b7e520
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

function 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#2bfa9942
Content hash
2bfa9942
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