上下文
类 <SI-Namespace>::proxy::methods::<FnFMethod> 表示 AUTOSAR Adaptive Platform 通信管理中客户端或代理端的 Fire-and-Forget 方法 [SWS_CM_90435] 。在面向服务的架构中,对于接口中定义的且指定了 ClientServerOperation.fireAndForget == TRUE 的每个操作 (ClientServerOperation),在代理角色中都精确存在一个这样的实例 [SWS_CM_90435] 、SWS CommunicationManagement §8.3.4.1.2.1 “operator()” 。
其核心职责在于接收调用实参并将其转发到传输层。不同于通过 ara::core::Future 通知调用方并传输任何应用程序错误的同步或异步双向调用 [SWS_CM_00197] ,Fire-and-Forget 调用既不需要响应,也不需要服务器端的确认。交互参与方包括发起调用的客户端应用程序、服务代理的方法实例以及包含 E2E 保护的下游通信绑定。
Client
客户端应用
FnFMethod
proxy::methods::<FnFMethod>
Client->FnFMethod
operator()
Client->FnFMethod
GetE2EStateMachineState()
Binding
Kommunikations-Binding / E2E
FnFMethod->Binding
E2E_Check() 与传输
上下文图:代理 Fire-and-Forget 方法类的组件和接口关系。来源:[SWS_CM_90435] 、[SWS_CM_00147]
生命周期
该类在分层作用域 <SI-Namespace>::proxy::methods::<FnFMethod> 内的生成头文件 #include "<SiNamespaceDerivedDirectoryPath>/<SiShortname>_proxy.h" 中声明 [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 (未决)
使用路径
使用 Fire-and-Forget 方法的典型流程包括以下步骤:
Fire-and-Forget 方法调用流程 客户端应用 proxy::methods::<FnFMethod> Kommunikations-Binding / E2E operator()({in-args}) E2E_Check() 与发送传输 返回 (void) GetE2EStateMachineState() ara::com::e2e::SMState
时序图:调用 Fire-and-Forget 方法及随后进行状态查询时的典型交互顺序。来源:[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 进行返回,且 Fire-and-Forget 操作不支持传输 ApApplicationError 或 ara::core::ErrorCode [SWS_CM_00197] ,因此传输错误不会反馈给调用者。数据安全性或传输通道中的任何潜在错误均仅体现在 E2E 状态机的状态中,该状态可通过 GetE2EStateMachineState() 进行诊断 [SWS_CM_00147] 。
本指南基于 AUTOSAR Adaptive Platform Release R25-11 规范,并描述 Proxy Fire-and-Forget 方法类的功能原理。
gemini-3.8-flash-low· 2026-10-13 · 德文原文