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] текст ещё не импортированUpstream: RS_SHWA_00006
class DeviceSelector {...};
Die Spezifikation definiert diesen Klassentyp mit der gezeigten Schnittstelle.
Служит абстрактным интерфейсом для оценки и выбора устройств на основе определенной стратегии выбора.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 4c64c523c424ПроисхождениеОткрытые вопросы (3)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Служит абстрактным интерфейсом для оценки и выбора устройств на основе определенной стратегии выбора.
Абстрактный класс ara::shwa::DeviceSelector определяет интерфейс стратегии для оценки и выбора целевых устройств в подсистеме shwa. Он позволяет напрямую определить оптимальное устройство через SelectDevice(), а также выполнить сравнительную оценку отдельных устройств-кандидатов через operator()[AP_SWS_SHWA_00403], [AP_SWS_SHWA_00404]. Виртуальный стандартный деструктор гарантирует безопасное уничтожение производных экземпляров стратегий. К ключевым граничным условиям относится то, что вызовы не являются потокобезопасными и при сбоях автоматическая семантика отката не применяется.
Контекст
Класс ara::shwa::DeviceSelector предоставляет в модуле shwa абстрактный интерфейс для выбора или оценки аппаратных либо функциональных устройств (Device) на основе конкретной стратегии выбора. Он служит уровнем развязки между вышестоящим управляющим приложением и конкретными процедурами выбора. К участвующим сторонам взаимодействия относятся вызывающее приложение, конкретная реализация стратегии выбора и целевые объекты типа Device. Интерфейс определяет две центральные операции: прямой выбор устройства через SelectDevice()[AP_SWS_SHWA_00403] и сравнительную индивидуальную оценку устройства через оператор вызова функции operator()[AP_SWS_SHWA_00404].
Являясь абстрактным базовым классом с чисто виртуальными методами, DeviceSelector не может быть инстанцирован напрямую. Конкретные стратегии выбора должны быть реализованы в виде производных классов и создаваться компонентом приложения. Вопрос Q-4e22b2e57ef141e9 (открытый) Управление владением обычно возлагается на приложение, например, через умные указатели, такие как std::unique_ptr<DeviceSelector>. Для корректного полиморфного уничтожения специализированных классов интерфейс объявляет виртуальный стандартный деструктор ~DeviceSelector()[AP_SWS_SHWA_00402]. Он явно обозначен как noexcept, тем самым выполняя требования к безопасности исключений (exception safe) при удалении экземпляров [AP_SWS_SHWA_00402].
Что касается параллелизма и переходов между состояниями, операции интерфейса классифицируются как непотокобезопасные (not thread-safe) [AP_SWS_SHWA_00403], [AP_SWS_SHWA_00404]. Хотя функции-члены аннотированы как const, параллельный доступ к одному и тому же экземпляру из разных потоков не должен осуществляться без внешней синхронизации. Спецификация также не предусматривает автоматического отката для ошибочных вызовов (no_rollback_semantics) [AP_SWS_SHWA_00403], [AP_SWS_SHWA_00404].
Путь использования
Типичный сценарий использования включает инициализацию конкретного экземпляра стратегии и последующую оценку или выбор устройств-кандидатов. При этом существуют два основных пути вызова:
Прямой выбор устройства: приложение вызывает метод SelectDevice() без параметров [AP_SWS_SHWA_00403]. Конкретная стратегия автономно определяет наиболее подходящее устройство и возвращает ara::core::Result<Device>.
Итеративная индивидуальная оценка: в алгоритмах фильтрации или сортировки нескольких кандидатов приложение последовательно передает соответствующие экземпляры в operator()(const Device &device)[AP_SWS_SHWA_00404]. Оценка через operator(), предположительно, анализирует релевантные свойства или рабочие состояния переданного устройства внутри. Вопрос Q-8ba0b9b900196d50 (открытый) Возвращаемое значение int в ara::core::Result<int>, вероятно, отражает показатель пригодности или приоритет, на основании которого вызывающая сторона принимает решение о выборе.
Диаграмма последовательности: последовательности вызовов для индивидуальной оценки и прямого выбора, включая обработку ошибок. Источники: [AP_SWS_SHWA_00403], [AP_SWS_SHWA_00404]
Сценарии ошибок
Оба метода выбора объявлены как noexcept и не генерируют исключений C++ (exception safe). Вместо этого они сигнализируют о сбоях через канал ошибок ara::core::Result. Приложения должны всегда проверять возвращаемое значение на наличие ошибок перед обращением к результату. Для SelectDevice() и operator() определены следующие состояния ошибок:
ShwaErrorCode::kResourceBusy: запрошенная операция не может быть выполнена, так как требуемый ресурс в данный момент занят [AP_SWS_SHWA_00403], [AP_SWS_SHWA_00404]. В этом случае приложение может повторить вызов позже или выбрать альтернативную стратегию.
ShwaErrorCode::kFeatureNotSupported: возвращается, если функциональность, запрошенная для выбора или оценки, не поддерживается базовой реализацией [AP_SWS_SHWA_00403], [AP_SWS_SHWA_00404].
Поскольку семантика отката отсутствует (no_rollback_semantics) [AP_SWS_SHWA_00403], [AP_SWS_SHWA_00404], в случае ошибки система остается в текущем состоянии, и вызывающая сторона несет ответственность за надлежащие компенсационные меры. Кроме того, предусловием для operator() является сохранение действительности переданной ссылки на устройство на протяжении всего вызова.
Настоящее руководство по классу основано на спецификации AUTOSAR Adaptive R25-11 (модуль shwa) и сформировано автоматически.
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 · Немецкий оригинал