Service proxy method class, one for each ClientServerOperation ( ClientServerOperation.fireAndForget ==FALSE) defined in the ServiceInterface in the role method.
Обеспечивает асинхронный вызов методов сервиса с возвращаемым значением, а также проверку статуса End-to-End.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 90f1e995b658ПроисхождениеОткрытые вопросы (2)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Обеспечивает асинхронный вызов методов сервиса с возвращаемым значением, а также проверку статуса End-to-End.
Класс прокси-метода <SI-Namespace>::proxy::methods::<Method> позволяет клиентским приложениям выполнять вызовы методов с возвращаемым значением для операций клиент-сервер, определенных в ServiceInterface[SWS_CM_00196]. Вызов происходит неблокирующим образом через operator(), который немедленно возвращает ara::core::Future для гибкого синхронного или асинхронного опроса результата [SWS_CM_00196]. Дополнительно GetE2EStateMachineState() позволяет считывать статус защиты связанного конечного автомата End-to-End [SWS_CM_00148]. Поскольку операции специфицированы как безисключительные, ошибки передачи и времени выполнения передаются через Future со стандартизированными кодами ошибок.
Контекст
Класс <SI-Namespace>::proxy::methods::<Method> представляет клиентский интерфейс для синхронных и асинхронных вызовов методов в рамках AUTOSAR Adaptive Communication Management. Для каждой клиент-серверной операции, объявленной в ServiceInterface, для которой сконфигурирован атрибут ClientServerOperation.fireAndForget == FALSE, коммуникационный фреймворк генерирует ровно один собственный класс прокси-метода в роли метода. Класс объявлен как final и подключается через заголовок #include "<SiNamespaceDerivedDirectoryPath>/<SiShortname>_proxy.h"SWS Communication Management, с. 39. В качестве прямых партнеров по взаимодействию выступают вызывающее клиентское приложение и сетевая привязка (Network Binding), которая перенаправляет передачу метода на удаленный экземпляр сервиса и принимает его ответ [SWS_CM_00196]. Прокси-метод принимает параметры вызова и инкапсулирует асинхронный процесс через объект ara::core::Future, с помощью которого клиент запрашивает завершение и результат вызова.
Жизненный цикл
Инстанцирование <SI-Namespace>::proxy::methods::<Method> происходит совместно с вышестоящим сервисным прокси. Интерпретация: класс метода, вероятно, как неотъемлемая составная часть сгенерированного прокси-объекта инстанцируется и уничтожается вместе с ним, поэтому пользователь не выделяет экземпляр отдельно. Вопрос Q-546c9b1bceedef6b (открытый) Что касается параллелизма, вызов метода через operator() спроектирован как неблокирующий; функция инициирует передачу и немедленно возвращает управление вызывающей стороне [SWS_CM_00196]. Центральным состоянием экземпляра является защита с помощью механизмов End-to-End (E2E). Через метод GetE2EStateMachineState() приложение может определять текущий статус связанного с методом конечного автомата (ara::com::e2e::SMState) [SWS_CM_00148]. Это состояние определяется внутренней функцией проверки E2E_Check(), которая выполняется во время обработки последнего вызова operator()[SWS_CM_00148], SWS Communication Management, с. 55. Интерпретация: обновление состояния конечного автомата E2E, предположительно, вступает в силу асинхронно по мере поступления и проверки ответного сообщения. Вопрос Q-283a9927420e2952 (открытый)
Путь использования
Типичная последовательность вызовов включает инициацию вызова метода, синхронизацию с результатом и последующую проверку целостности:
Инициирование вызова: клиентское приложение вызывает функциональный объект через operator() с объявленными входными параметрами [SWS_CM_00196], [SWS_CM_00191].
Немедленный возврат: вызов не блокирует запрашивающий поток, а незамедлительно возвращает объект типа ara::core::Future<Output>[SWS_CM_00196].
Запрос результата: вызывающая сторона автономно принимает решение о синхронном ожидании (например, через объект Future) или об асинхронном контроле завершения вызова [SWS_CM_00196]. При успешном завершении Future возвращает объект Output со значениями ответа [SWS_CM_00196], [SWS_CM_99333].
Проверка статуса защиты E2E: после завершения вызова приложение может запросить состояние конечного автомата E2E через GetE2EStateMachineState(), чтобы убедиться в достоверности передачи данных [SWS_CM_00148].
Диаграмма последовательности: типичный процесс вызова метода с асинхронным возвратом через Future и последующим запросом E2E-статуса. Источники: [SWS_CM_00196], [SWS_CM_00148].
Сценарии ошибок
Операции operator() и GetE2EStateMachineState() специфицированы как безисключительные (exception safe) и объявлены с noexcept[SWS_CM_00148], [SWS_CM_00196]. Поэтому ошибки связи и предоставления не передаются через исключения C++, а переносятся через результирующий объект ara::core::Future, который в случае ошибки инкапсулирует соответствующий ara::core::FutureErrc или коды ошибок [SWS_CM_00196]. К специфицированным причинам ошибок относятся, в частности:
CommunicationFailure: Network Binding сообщает об устранимой ошибке связи или о сбое защищенного соединения; при тайм-аутах связи это может привести к неопределенному состоянию на удаленном сервере [SWS_CM_00196].
ComErrc::kServiceNotAvailable: экземпляр сервиса после предварительного предоставления больше недоступен [SWS_CM_00196].
ComErrc::kUnknownApplicationError: удаленный сервис сообщает о несконфигурированной ошибке приложения [SWS_CM_00196].
ComE2EErrc::kUnspecifiedE2EError: удаленный сервис сообщает о неспецифицированной ошибке End-to-End [SWS_CM_00196].
ComErrc::kMinimumSendIntervalViolationError: запрос вызова произошел быстрее, чем допускает минимальный интервал отправки minimumSendInterval, сконфигурированный для элемента интерфейса [SWS_CM_00196].
Нарушение прав доступа (InsufficientPermissionsViolation): если у вызывающей стороны отсутствуют необходимые права, выполнение отклоняется механизмом Grant Enforcement [SWS_CM_00196].
Для этих ошибок приложения и связи в соответствии со спецификацией предусмотрена семантика отката (rollback_semantics) [SWS_CM_00196].
Это руководство основано исключительно на требованиях спецификации AUTOSAR Adaptive Release R25-11.
Returns the state of the specific method class, which was determined by the last run of E2E_Check() function invoked during the last call of operator()
Initiate a method call (ClientServerOperation. fireAndForget ==FALSE). The method call will return immediately. The caller’s selection of a synchronous or asynchronous behavior to get the method output is achieved by the use of the returned ara::core::Future object which is used to query for method completion and result including possible error.
Returns the state of the specific method class, which was determined by the last run of E2E_Check() function invoked during the last call of operator()
Initiate a method call (ClientServerOperation. fireAndForget ==FALSE). The method call will return immediately. The caller’s selection of a synchronous or asynchronous behavior to get the method output is achieved by the use of the returned ara::core::Future object which is used to query for method completion and result including possible error.
The network binding reported a recoverable communications error or a secure communication failure. In case of a communication timeout this could lead to an uncertain state on the remote server side.
ComErrc::kUnknownApplicationError
rollback_semantics A remote service returned an unconfigured application error.
ComErrc::kServiceNotAvailable
rollback_semantics Service is not available after being previously offered via Offer Service()
ComE2EErrc::kUnspecifiedE2EError
rollback_semantics A remote service returned an unspecified E2E error.
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-low· 2026-10-13 · Немецкий оригинал