Позволяет Service-Skeleton отправлять триггерные сигналы и отслеживать статус подписчиков.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 6e97d3082affПроисхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Позволяет Service-Skeleton отправлять триггерные сигналы и отслеживать статус подписчиков.
Класс <SI-Namespace>::skeleton::triggers::<Trigger> позволяет серверному приложению отправлять триггерные сигналы подписанным клиентам через Communication Management ([SWS_CM_00721]). Для управления последовательностью выполнения можно отслеживать статус подписчиков и регистрировать обработчики уведомлений ([SWS_CM_01109], [SWS_CM_01110]). Инициирование через Send() требует предоставленного Service-Skeleton и подтверждает нарушения минимальных интервалов отправки или сетевые ошибки соответствующими кодами ошибок ([SWS_CM_00721], [SWS_CM_10517]).
Контекст
Шаблонный класс <SI-Namespace>::skeleton::triggers::<Trigger> представляет собой интерфейс триггера на стороне сервера, который определен внутри ServiceInterface в роли trigger. Являясь составной частью скелета сервиса (Skeleton), этот класс служит экземпляру сервиса для отправки асинхронных уведомлений или сигналов запуска подписанным клиентским приложениям во всей системе. Триггер отличается от обычных событий тем, что функционирует преимущественно как чисто сигнальное событие без сложных полезных данных, как показывает классификация в EXP_ARAComAPI §3 «Trigger::Send» и SWS_CommunicationManagement §7.2.2.1.4 «Handling Triggers». Стороны взаимодействия включают предоставляющее серверное приложение, связующее программное обеспечение Communication Management (ara::com), а также подключенных по сети клиентов-подписчиков (Subscriber).
Жизненный цикл
Инстанцирование объектов триггера обычно выполняется как неотъемлемая часть экземпляра Skeleton соответствующего ServiceInterface. Перед активным использованием Skeleton должен быть предложен через Communication Management; при попытке инициировать триггер до этого передача завершается неудачей ([SWS_CM_00721]). Класс управляет состоянием подписки подписчиков через ara::com::SubscriptionState, которое в любой момент можно запросить с помощью GetSubscriptionState() ([SWS_CM_01109]). Для асинхронного мониторинга состояния с помощью SetSubscriptionStateChangeHandler() можно зарегистрировать функцию обратного вызова ([SWS_CM_01110]). Для параллельных архитектур существует перегрузка, принимающая пользовательский Executor, благодаря чему уведомления выполняются в желаемом контексте потока или задачи ([SWS_CM_01111]). Регистрацию можно отменить через UnsetSubscriptionStateChangeHandler() ([SWS_CM_01112]). Все методы класса обеспечивают гарантию безопасности исключений noexcept (exception safe).
Путь использования
Типичный порядок использования триггера включает наблюдение за статусом подписки, а также непосредственную инициацию передачи всем активным подписчикам:
Регистрация обработчика: сервисное приложение опционально регистрирует обработчик состояния через SetSubscriptionStateChangeHandler() ([SWS_CM_01110], [SWS_CM_01111]), чтобы получать информацию о вновь появляющихся подписчиках.
Проверка состояния: с помощью GetSubscriptionState() сервер проверяет наличие хотя бы одного активного подписчика ([SWS_CM_01109]), что согласно [SWS_CM_10518] является предварительным условием для запроса на отправку.
Отправка триггера: отправка инициируется вызовом Send() ([SWS_CM_00721], EXP_ARAComAPI §3 «Trigger::Send»), после чего Communication Management распределяет сигнал по всем подписанным приложениям.
Отмена регистрации: при завершении работы или если уведомления о состоянии больше не требуются, вызывается UnsetSubscriptionStateChangeHandler() ([SWS_CM_01112]).
Метод Send() возвращает ara::core::Result<void>, посредством которого передаются возможные ошибки отправки и конфигурации ([SWS_CM_00721]):
ComErrc::kServiceNotOffered: возникает, если экземпляр сервиса еще не был предоставлен через OfferService() ([SWS_CM_00721]).
ComErrc::kMinimumSendIntervalViolationError: возвращается, если нарушен сконфигурированный минимальный интервал отправки (minimumSendInterval) между последовательными передачами ([SWS_CM_00721]).
ComErrc::kCommunicationFailure: выдается, если локальная отправка триггера завершается сбоем из-за базовой сетевой ошибки ([SWS_CM_10517]).
Недопустимый обработчик (InvalidHandlerViolation): передача отсутствующего или пустого вызываемого объекта (Callable) в SetSubscriptionStateChangeHandler() представляет собой нарушение условий контракта API ([SWS_CM_01110], [SWS_CM_01111]).
Настоящее руководство основано исключительно на спецификациях AUTOSAR Adaptive Platform выпуска R25-11.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: a3259c7728c6ПроисхождениеОткрытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Метод Send передает триггер без полезных данных всем подписанным приложениям ([SWS_CM_00721]). Он принадлежит классу скелетона <SI-Namespace>::skeleton::triggers::<Trigger> и предоставляется через заголовочный файл #include "<SiNamespaceDerivedDirectoryPath>/<SiShortname>_skeleton.h" ([SWS_CM_00721]).
Функция определена как noexcept, считается безопасной относительно исключений и не ожидает входных параметров ([SWS_CM_00721]). В качестве возвращаемого типа служит ara::core::Result<void> ([SWS_CM_00721]):
Случай успеха: результат содержит пустое значение (void) и сигнализирует об успешном запуске передачи ([SWS_CM_00721]).
Случай ошибки: результат инкапсулирует код ошибки из домена ara::com::ComErrc ([SWS_CM_10432]). Возможными ошибками с семантикой отката являются:
ComErrc::kServiceNotOffered: сервис ранее еще не был предложен с помощью OfferService() ([SWS_CM_00721]).
ComErrc::kMinimumSendIntervalViolationError: запрос на передачу поступил до истечения сконфигурированного минимального интервала отправки ServiceInterfaceDeploymentElement.minimumSendInterval ([SWS_CM_00721]).
• If successful: an ara::core::Result containing a ara:: core::Result::value_type containing a void • If unsuccessful: an ara::core::Result containing an ara:: core::Result::error_type i.e. a corresponding ara:: com::ComErrc
Fehler
Fehlercode
Beschreibung
ComErrc::kServiceNotOffered
rollback_semantics Service has not yet been offered via OfferService()
ComErrc::kMinimumSendIntervalViolationError
rollback_semantics Minimum Send Interval violation, because a transmission request for a service instance element (event, field or method call) was issued faster than allowed, i.e., the configured minimum send interval ServiceInterfaceDeploymentElement. minimumSendInterval for the service instance element has not yet expired.
Request a governed re-review of this record. The record is not changed immediately.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: d968f8357edfПроисхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Функция SetSubscriptionStateChangeHandler служит на стороне скелетона для регистрации функции обратного вызова для мониторинга изменений подписки на триггере [SWS_CM_01110]. Метод относится к пространству имен <SI-Namespace>::skeleton::triggers::<Trigger> и предоставляется через заголовочный файл <SiNamespaceDerivedDirectoryPath>/<SiShortname>_skeleton.h[SWS_CM_01110].
В качестве параметра передается вызываемый функциональный объект типа SubscriptionStateChangeHandler[SWS_CM_00311][SWS_CM_01110]. Вызов объявлен как noexcept, не возвращает значения и специфицирован как безопасный относительно исключений (exception safe) [SWS_CM_01110]. Если переданный вызываемый объект обработчика не существует или равен null, система сообщает о InvalidHandlerViolation[SWS_CM_01110].
Communication Management вызывает зарегистрированную функцию обратного вызова, как только изменяется статус подписки триггера [SWS_CM_01101]:
со значением статуса kSubscribed, как только количество активных подписок для этого триггера становится больше 0 [SWS_CM_01102],
со значением статуса kNotSubscribed на стороне скелетона, когда активные подписки больше отсутствуют [SWS_CM_01103].
Зарегистрированный обработчик разрешается перезаписывать во время выполнения [SWS_CM_01101]. Если выполнение обработчика должно происходить в определенном контексте выполнения, в качестве альтернативы доступен перегруженный шаблонный вариант с параметром ExecutorT&&[SWS_CM_01111].
Этот текст был сгенерирован ИИ на основе спецификации AUTOSAR R25-11.
Руководство разработчика реализации в подготовке (сложность I2)
class <SI-Namespace>::skeleton:: triggers::<Trigger>
Exception-Sicherheit
exception safe
Verletzungen (Violations)
InvalidHandlerVio- Provided Callable handler does not exist or is null lation
Parameter (in)
Parameter
Beschreibung
handler
The handler (as per [SWS_CM_00311]) that shall be called by Communication Management as soon as the ara::com:: SubscriptionState of the trigger has changed.
Rückgabewert
Typ
Beschreibung
None
Request a governed re-review of this record. The record is not changed immediately.
As per [SWS_CM_12008] but the method shall execute in a provided context
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: f69a35ebe8e5ПроисхождениеОткрытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Шаблонная функция SetSubscriptionStateChangeHandler регистрирует на уровне скелетона для триггеров ([SWS_CM_01111]) обработчик обратного вызова для изменений статуса подписки (ara::com::SubscriptionState). Помимо вызываемого параметра handler, метод принимает контекст выполнения executor типа ExecutorT ([SWS_CM_01111]). Функция не имеет возвращаемого значения и определена в области видимости <SI-Namespace>::skeleton::triggers::<Trigger> ([SWS_CM_01111]).
В отличие от базовой функции без исполнителя ([SWS_CM_01110]), данная сигнатура гарантирует, что обратный вызов будет выполнен в пользовательском контексте ([SWS_CM_01111]). Как и в случае событийно-ориентированного варианта согласно [SWS_CM_12008], выполнение, вероятно, делегируется переданному объекту-исполнителю для адресного управления потоками внутри скелетон-приложения. Вопрос Q-ba14993b00a7d972 (открытый)
Интерфейс специфицирован как noexcept и безопасный относительно исключений ([SWS_CM_01111]). Если переданный вызываемый объект недействителен или равен null, согласно спецификации имеет место InvalidHandlerViolation ([SWS_CM_01111]).
Функционально метод соответствует аналогичным перегрузкам с исполнителем для скелетон-событий ([SWS_CM_12009]), а также клиентским эквивалентам прокси-интерфейса ([SWS_CM_01106], [SWS_CM_11354]).
Это указание по использованию было сгенерировано автоматически на основе данных спецификации AUTOSAR Adaptive R25-11.
Руководство разработчика реализации в подготовке (сложность I2)
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: d6281d4aa1edПроисхождениеОткрытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Функция UnsetSubscriptionStateChangeHandler служит на стороне скелетона для удаления ранее зарегистрированного обратного вызова для изменений состояния подписки (SubscriptionState) в триггере сервиса ([SWS_CM_01112]). Она определена в пространстве имен <SI-Namespace>::skeleton::triggers::<Trigger> через заголовочный файл <SiNamespaceDerivedDirectoryPath>/<SiShortname>_skeleton.h ([SWS_CM_01112]).
Использование и семантика: интерфейс имеет сигнатуру void UnsetSubscriptionStateChangeHandler() noexcept, не ожидает входных параметров и не имеет возвращаемого значения ([SWS_CM_01112]). Согласно спецификации он классифицирован как безопасный относительно исключений (exception safe) ([SWS_CM_01112]). Коды ошибок или специальные механизмы отчетности (DET/DEM) для этого вызова не предусмотрены.
gemini-3.8-flash-low· 2026-10-13 · Немецкий оригинал