函数 <FnFMethod> [SWS_CM_90434] Upstream: RS_CM_00215, RS_AP_00114
virtual void {<fnfmethod-name>} ({<fnfmethod-in-arg-derived-type-0to N>} {<fnfmethod-in-arg-symbol-0toN>}) noexcept=0;
Provision of a fire-and-forget method (ClientServerOperation. fireAndForget ==TRUE)
API 函数 [SWS_CM_90434] 定义了服务端 fire-and-forget 方法的纯虚接口。它是生成的 Skeleton 类 {<hierarchical-namespace-list-lower-skeleton>}::skeleton::{<service-interface-name>}Skeleton 的组成部分,并通过头文件 {<si-namespace-derived-directory-path-lower>}/{<si-shortname-lower>}_skeleton.h 提供 (AUTOSAR_AP_SWS_CommunicationManagement §8.4.5.2.4.1 “{<fnfmethod-name>}”)。一旦在 ClientServerOperation 的设计模型中配置了属性 ClientServerOperation.fireAndForget == TRUE,就会生成该函数。
以下核心要点适用于实现和运行时行为:
- 调用语义与参数:该方法根据 [SWS_CM_00191] 接收输入参数,与常规方法类似。由于这是纯单向通信,签名具有返回类型
void。既不向调用客户端传输输出参数,也不传输返回值。 - 错误处理与异常安全性:该操作声明为
noexcept=0,因此被规范为严格异常安全(exception safe)([SWS_CM_90434])。既不存在特定于应用程序的错误码,也不存在其他反馈通道;服务实现绝不允许任何 C++ 异常从该方法中逃逸。 - 执行上下文与并发性:如果 Skeleton 在
ara::com::MethodCallProcessingMode == kPoll模式下运行,则挂起的 [SWS_CM_90434] 调用将在ProcessNextMethodCall()调用的线程上下文中确定性地处理 (AUTOSAR_AP_SWS_CommunicationManagement 第410页)。在轮询模式之外,执行大概率会在通信中间件的内部工作线程中并发进行。 问题 Q-08f014e191f9aab0 (未决)
本使用说明基于 AUTOSAR R25-11 规范自动生成。
<FnFMethod> 用于在服务骨架端(Skeleton)声明并提供“单向触发即忘”(Fire-and-Forget)方法,对应模型中 ClientServerOperation.fireAndForget == TRUE 的配置 [SWS_CM_90434]。该纯虚函数位于命名空间 {<hierarchical-namespace-list-lower-skeleton>}::skeleton::{<service-interface-name>}Skeleton 中,通过包含头文件 #include "{<si-namespace-derived-directory-path-lower>}/{<si-shortname-lower>}_skeleton.h" 引入(AUTOSAR_AP_SWS_CommunicationManagement 第 406 页,[SWS_CM_90434])。
其函数原型定义为 virtual void {<fnfmethod-name>} ({<fnfmethod-in-arg-derived-type-0to N>} {<fnfmethod-in-arg-symbol-0toN>}) noexcept=0; [SWS_CM_90434]。方法仅接收输入参数 {<fnfmethod-in-arg-symbol-0toN>}(参考 [SWS_CM_00191]),返回类型固定为 void 且无返回值 [SWS_CM_90434]。签名显式标记为 noexcept,要求服务端的覆盖实现必须具备异常安全性(exception safe),不得向外抛出任何异常 [SWS_CM_90434]。
在调用上下文与并发调度方面,若通信处理模式配置为 ara::com::MethodCallProcessingMode == kPoll,则挂起的服务方法(参见 [SWS_CM_00191] 或 [SWS_CM_90434])将在调用 ProcessNextMethodCall() 的执行上下文中被触发与执行(AUTOSAR_AP_SWS_CommunicationManagement 第 410 页)。推测:在此轮询模式下,服务应用端必须周期性或按需主动调用 ProcessNextMethodCall(),以确保待处理的请求能够得到及时分发。 问题 (未决)
本使用说明基于 AUTOSAR Adaptive R25-11 规范自动生成。
实现者指南即将推出(复杂度 I1)
| Header-Datei | #include "{<si-namespace-derived-directory-path-lower>}/{ <si-shortname-lower>}_skeleton.h" |
|---|---|
| Scope | class {<hierarchical-namespace-list-lower-skeleton>}::skeleton::{ <service-interface-name>}Skeleton |
| Exception-Sicherheit | exception safe |
Parameter (in)
| Parameter | Beschreibung |
|---|---|
| {<fnfmethod-in-arg-symbol-0toN>} | As per {<method-in-arg-symbol-0toN>} in [SWS_CM_00191] |
Rückgabewert
| Typ | Beschreibung |
|---|---|
| None |
Request a governed re-review of this record. The record is not changed immediately.
- Record
AUTOSAR/AP/record/SWS_CM_90434- Status
- valid/unmigrated
- Version
AUTOSAR/AP/record/SWS_CM_90434@rel:R25-11#5125dd6b- Content hash
5125dd6b- Source
- https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_CommunicationManagement.pdf#nameddest=SWS_CM_90434
Status: valid/unmigrated
Version: rel:R25-11#f1dee805
Versionshistorie & Revisions (1 transition, 8 revision)
- Current State
valid/unmigrated- Reason
- mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
- Campaign
2026-08-13-status-backfill- Active Version
AUTOSAR/AP/record/SWS_CM_90434@rel:R25-11#f1dee805
Recorded Revisions (8):
- R25-11
rel:R25-11#293042c22026-09-30 - R19-11
rel:R19-11#bbdaa18c2026-10-14 - R20-11
rel:R20-11#e392aff42026-10-14 - R21-11
rel:R21-11#e392aff42026-10-14 - R22-11
rel:R22-11#256b25262026-10-14 - R23-11
rel:R23-11#256b25262026-10-14 - R24-11
rel:R24-11#60298f242026-10-14 - R25-11
rel:R25-11#f1dee8052026-10-14 active
Requirement Text as-of this release:
Curation Decisions:
Reachable Artifacts & Dependents:
| Date | Actor | Transition | Reason / Rationale | Campaign |
|---|---|---|---|---|
| 2026-08-13 | tool | none → valid/unmigrated | mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record | 2026-08-13-status-backfill |
gemini-3.8-flash-low· 2026-10-13 · 德文原文