DEENESPTFRRUARHIKOZHNL

clase 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] texto aún no importado 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

Guía del usuarioGENERADO POR IA

Sirve como interfaz abstracta para evaluar y seleccionar dispositivos en función de una estrategia de selección específica.
GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 4c64c523c424 Procedencia Preguntas abiertas (3)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

Sirve como interfaz abstracta para evaluar y seleccionar dispositivos en función de una estrategia de selección específica.

La clase abstracta ara::shwa::DeviceSelector define una interfaz de estrategia para evaluar y seleccionar dispositivos de destino en el subsistema shwa. Permite determinar directamente un dispositivo óptimo a través de SelectDevice(), así como realizar una evaluación comparativa de candidatos a dispositivos individuales mediante operator() [AP_SWS_SHWA_00403], [AP_SWS_SHWA_00404]. El destructor virtual por defecto garantiza la destrucción segura de las instancias de estrategia derivadas. Entre las restricciones centrales se encuentra que las llamadas no son seguras para subprocesos y que, en caso de fallo, no se aplica ninguna semántica de reversión automática.

Contexto

La clase ara::shwa::DeviceSelector proporciona en el módulo shwa una interfaz abstracta para seleccionar o evaluar dispositivos de hardware o funcionales (Device) sobre la base de una estrategia de selección específica. Actúa como capa de desacoplamiento entre una aplicación de control de nivel superior y los procedimientos de selección concretos. Entre las partes que interactúan se encuentran la aplicación llamadora, la implementación concreta de la estrategia de selección y los objetos de destino de tipo Device. La interfaz define dos operaciones centrales: la selección directa de un dispositivo mediante SelectDevice() [AP_SWS_SHWA_00403] y la evaluación individual comparativa de un dispositivo a través del operador de llamada a función operator() [AP_SWS_SHWA_00404].

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

Diagrama de contexto: integración de DeviceSelector entre la aplicación y los destinos de dispositivo. Fuentes: [AP_SWS_SHWA_00403], [AP_SWS_SHWA_00404]

Ciclo de vida

Como clase base abstracta con métodos virtuales puros, DeviceSelector no se puede instanciar directamente. Se asume que las estrategias de selección concretas se implementan como clases derivadas y son creadas por el componente de aplicación. Pregunta Q-4e22b2e57ef141e9 (abierta) La gestión de la propiedad suele corresponder a la aplicación, por ejemplo, mediante punteros inteligentes como std::unique_ptr<DeviceSelector>. Para una destrucción polimórfica limpia de las clases especializadas, la interfaz declara un destructor virtual por defecto ~DeviceSelector() [AP_SWS_SHWA_00402]. Este está designado explícitamente como noexcept, cumpliendo así los requisitos de seguridad frente a excepciones (exception safe) durante la liberación de las instancias [AP_SWS_SHWA_00402].

En lo relativo a la concurrencia y las transiciones de estado, las operaciones de la interfaz están clasificadas como no seguras para subprocesos (not thread-safe) [AP_SWS_SHWA_00403], [AP_SWS_SHWA_00404]. Aunque las funciones miembro están anotadas con const, no deben realizarse accesos concurrentes a la misma instancia desde diferentes subprocesos sin sincronización externa. Además, la especificación no contempla ninguna reversión automática en caso de llamadas erróneas (no_rollback_semantics) [AP_SWS_SHWA_00403], [AP_SWS_SHWA_00404].

Ruta de uso

Un flujo de uso típico comprende la inicialización de una instancia de estrategia concreta y la posterior evaluación o selección de dispositivos candidatos. Existen dos rutas de llamada principales para ello:

  • Selección directa de dispositivos: la aplicación invoca el método sin parámetros SelectDevice() [AP_SWS_SHWA_00403]. La estrategia concreta determina de forma autónoma el dispositivo más adecuado y devuelve un ara::core::Result<Device>.
  • Evaluación individual iterativa: en algoritmos destinados al filtrado o la ordenación de varios candidatos, la aplicación pasa sucesivamente las instancias respectivas a operator()(const Device &device) [AP_SWS_SHWA_00404]. Es de esperar que la evaluación a través de operator() analice internamente propiedades relevantes o estados operativos del dispositivo transferido. Pregunta Q-8ba0b9b900196d50 (abierta) El valor int devuelto en el ara::core::Result<int> debería reflejar un índice de idoneidad o prioridad a partir del cual el punto de llamada toma una decisión de selección.
Secuencias de llamada para la evaluación y selección de dispositivosAplicaciónDeviceSelectorUse Case: Evaluación individual de un dispositivo candidatooperator()(device)altErfolgreiche AuswertungResult<int> (Bewertungswert)Ressource belegtShwaErrorCode::kResourceBusyUse Case: Selección directa de dispositivoSelectDevice()altErfolgreiche SelektionResult<Device>Función no admitidaShwaErrorCode::kFeatureNotSupported

Diagrama de secuencia: secuencias de llamada para la evaluación individual y la selección directa, incluido el tratamiento de errores. Fuentes: [AP_SWS_SHWA_00403], [AP_SWS_SHWA_00404]

Escenarios de error

Ambos métodos de selección están declarados como noexcept y no lanzan excepciones C++ (exception safe). En su lugar, notifican los fallos mediante el canal de error de ara::core::Result. Las aplicaciones siempre deben comprobar el valor de retorno en busca de errores antes de acceder al resultado. Se definen los siguientes estados de error para SelectDevice() y operator():

  • ShwaErrorCode::kResourceBusy: la operación solicitada no pudo ejecutarse porque el recurso necesario está ocupado actualmente [AP_SWS_SHWA_00403], [AP_SWS_SHWA_00404]. En este caso, la aplicación puede reintentar la llamada más adelante o elegir una estrategia alternativa.
  • ShwaErrorCode::kFeatureNotSupported: se devuelve cuando la implementación subyacente no admite una funcionalidad solicitada para la selección o evaluación [AP_SWS_SHWA_00403], [AP_SWS_SHWA_00404].

Dado que no existe semántica de reversión (no_rollback_semantics) [AP_SWS_SHWA_00403], [AP_SWS_SHWA_00404], el sistema permanece en el estado actual en caso de error, y la entidad llamadora es responsable de adoptar las medidas compensatorias oportunas. Además, como precondición para operator(), la referencia de dispositivo pasada debe permanecer válida durante toda la llamada.

Esta guía de clase se basa en la especificación AUTOSAR Adaptive R25-11 (módulo shwa) y ha sido curada de forma automatizada.

Mapa de miembros

Constructores y destructor

1

Métodos

1

Operadores

1

Vista de detalle

Selecciona una entrada en el índice.

Constructores y destructor

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

virtual ~DeviceSelector () noexcept=default;

Métodos

SelectDevice función

Bewertet beziehungsweise selektiert ein Device entsprechend der Selektor-Strategie.

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

Operadores

operator() función

Bewertet beziehungsweise selektiert ein Device entsprechend der Selektor-Strategie.

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

Detalles

función ~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#6279e6fd
Content hash
6279e6fd
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

función 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#5f0eb069
Content hash
5f0eb069
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

función 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#f9bb443c
Content hash
f9bb443c
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