Service proxy fire-and-forget method class, one for each ClientServerOperation ( ClientServerOperation.fireAndForget==TRUE) defined in the ServiceInterface in the role method.
Обеспечивает неподтвержденный вызов односторонних методов интерфейса сервиса без возвращаемого значения на стороне клиента.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: c09dd8b0ab24ПроисхождениеОткрытые вопросы (2)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Обеспечивает неподтвержденный вызов односторонних методов интерфейса сервиса без возвращаемого значения на стороне клиента.
Прокси-класс позволяет клиентскому приложению инициировать неподтвержденные вызовы методов для сервисных операций с семантикой «выстрелил и забыл» (fire-and-forget) [SWS_CM_90435]. При вызове функционального оператора входные параметры передаются без формирования возвращаемого значения или future-объекта ответа для результата. Одновременно при каждом вызове метода выполняется сквозная защита E2E, текущее состояние проверки которой можно запросить отдельно [SWS_CM_00147]. Вызов является безопасным с точки зрения исключений, однако при недостаточных правах доступа завершается сбоем из-за нарушения прав.
Контекст
Класс <SI-Namespace>::proxy::methods::<FnFMethod> представляет метод типа «выстрелил и забыл» на стороне клиента или прокси в рамках управления связью AUTOSAR Adaptive Platform [SWS_CM_90435]. В сервис-ориентированной архитектуре для каждой определенной в интерфейсе операции (ClientServerOperation), для которой задано ClientServerOperation.fireAndForget == TRUE, в роли прокси существует ровно один такой экземпляр [SWS_CM_90435], SWS CommunicationManagement §8.3.4.1.2.1 «operator()».
Его основная ответственность заключается в приеме аргументов вызова и их пересылке на уровень передачи. В отличие от синхронных или асинхронных двунаправленных вызовов, которые уведомляют вызывающую сторону через ara::core::Future и передают возможные ошибки приложения [SWS_CM_00197], вызов типа «выстрелил и забыл» не требует ни ответа, ни подтверждения со стороны сервера. Партнеры по взаимодействию включают вызывающее клиентское приложение, экземпляр метода прокси сервиса, а также нижележащий коммуникационный байдинг, включая E2E-защиту.
Контекстная диаграмма: компоненты и связи интерфейсов класса методов «выстрелил и забыл» для прокси. Источники: [SWS_CM_90435], [SWS_CM_00147]
Жизненный цикл
Объявление класса выполняется внутри сгенерированного заголовочного файла #include "<SiNamespaceDerivedDirectoryPath>/<SiShortname>_proxy.h" в иерархической области видимости <SI-Namespace>::proxy::methods::<FnFMethod>[SWS_CM_90435]. Время жизни экземпляра метода, предположительно, связано со временем жизни родительского объекта прокси сервиса (интерпретация: метод создается и уничтожается как подобъект вместе с прокси сервиса). Вопрос Q-9ee6da68f325c3d0 (открытый)
Помимо самого вызова, класс обладает внутренним состоянием, касающимся защиты E2E (End-to-End-Protection). Это состояние E2E определяется при каждом вызове метода через функцию E2E_Check() и может быть запрошено через GetE2EStateMachineState(), которая возвращает значение статуса типа ara::com::e2e::SMState[SWS_CM_00147], SWS CommunicationManagement §8.3.4.1.1.1 «GetE2EStateMachineState». Все функции-члены объявлены как noexcept[SWS_CM_00147], [SWS_CM_90435]; при одновременном вызове из нескольких потоков может потребоваться внешняя синхронизация, если байдинг не гарантирует реентерабельность. Вопрос Q-e59aae09676d76c2 (открытый)
Путь использования
Типичный порядок использования метода типа «выстрелил и забыл» включает следующие шаги:
Предоставление прокси: приложение создает экземпляр или получает сгенерированный прокси сервиса через определенный заголовочный интерфейс [SWS_CM_90435].
Выполнение вызова метода: приложение вызывает объект метода через operator() с передачей входных параметров [SWS_CM_90435]. Функция не возвращает значения (void) и немедленно завершает работу, не ожидая реакции сервера SWS CommunicationManagement §8.3.4.1.2.1 «operator()».
Обновление E2E: во время вызова operator() связующее ПО (middleware) выполняет внутреннюю проверку защиты E2E_Check() и обновляет внутренний конечный автомат [SWS_CM_00147].
Диаграмма последовательности: типичная последовательность взаимодействия при вызове метода типа «выстрелил и забыл» и последующем опросе статуса. Источники: [SWS_CM_90435], [SWS_CM_00147]
Сценарии ошибок
Как operator(), так и GetE2EStateMachineState() являются безопасными с точки зрения исключений (exception safe) и объявлены как noexcept[SWS_CM_00147], [SWS_CM_90435]. Поэтому исключения C++ не генерируются.
При отсутствии прав доступа срабатывает контроль полномочий (Grant Enforcement): если у вызывающего контекста отсутствуют необходимые права, вызов отклоняется и регистрируется InsufficientPermissionsViolation[SWS_CM_90435].
Поскольку возврат через ara::core::Future не осуществляется, а операции типа «выстрелил и забыл» не поддерживают передачу ApApplicationError или ara::core::ErrorCode[SWS_CM_00197], ошибки передачи не возвращаются вызывающей стороне. Любые ошибки целостности данных или в канале передачи проявляются исключительно в состоянии конечного автомата E2E, которое можно диагностировать через GetE2EStateMachineState()[SWS_CM_00147].
Настоящее руководство основано на спецификации AUTOSAR Adaptive Platform релиза R25-11 и описывает принцип работы класса методов «выстрелил и забыл» для прокси.
UML-диаграмма классов
Hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); Klicken öffnet die jeweilige Klassenseite.
Returns the state of the specific fnfmethod class, which was determined by the last run of E2E_Check() function invoked during the last call of operator()
Returns the state of the specific fnfmethod class, which was determined by the last run of E2E_Check() function invoked during the last call of operator()
gemini-3.8-flash-low· 2026-10-13 · Немецкий оригинал