DEENESPTFRRUARHIKOZHNL

命名空间 <SI-Namespace>::proxy::methods

用户指南人工智能生成

提供用于常规服务调用和单向(Fire-and-Forget)操作的 Proxy 端方法类。
AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 7fa554ce3c3b 来源 未决问题(3)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

提供用于常规服务调用和单向(Fire-and-Forget)操作的 Proxy 端方法类。

命名空间 <SI-Namespace>::proxy::methods 在 AUTOSAR Adaptive Platform 的模块 com 中提供用于 ServiceInterface 的方法调用的 Proxy 端类。针对每个 ClientServerOperation,根据元模型属性 ClientServerOperation.fireAndForget 实例化用于常规调用的类 <Method> 或用于单向调用的 <FnFMethod>。常规方法支持服务器端返回值和错误消息,而 Fire-and-Forget 方法原则上不处理响应消息。方法对象的生命周期大概直接与上层 Proxy 实例的存在绑定。 问题 (未决)

上下文

命名空间 <SI-Namespace>::proxy::methods 在 AUTOSAR Adaptive Platform 的模块 com 内映射用于服务 Proxy 的方法特定接口类。在 ServiceInterface 中建模的每个 ClientServerOperation 根据其配置属性映射到相应的方法类。该命名空间主要包含两种类模式:用于带响应行为的操作的 <Method> 以及用于所谓 Fire-and-Forget 操作的 <FnFMethod>。

这些类的主要职责是接收客户端应用程序的方法调用,准备用于传输的传入参数,并处理与底层中间件层的通信。交互伙伴在调用方为特定于应用程序的客户端组件,在协调方为聚合方法实例的命名空间 <SI-Namespace>::proxy 的上层 Proxy 类。

这两个类的区分取决于元模型属性 ClientServerOperation.fireAndForget:

  • <Method> 针对配置了 ClientServerOperation.fireAndForget == FALSE 的操作生成。推测此类的实例封装对服务的异步调用,并通过面向未来的结果类型提供结果或可能的应用程序错误。 问题 Q-75c8a4495ee9c1cb (未决)
  • <FnFMethod> 在配置了 ClientServerOperation.fireAndForget == TRUE 时生成。此类的某个方法大概被实现为单向调用,不期望来自服务器的响应,也不向调用方提供返回值。 问题 Q-1f9698a27137b73d (未决)

生命周期

此命名空间中定义的方法类的创建和销毁与上层 Proxy 紧密耦合。方法对象的生命周期大概绑定到命名空间 <SI-Namespace>::proxy 中外层 Proxy 实例的生命周期。 问题 Q-ec1ef4d1ebc90d5a (未决)在 Proxy 对象实例化时,<Method> 和 <FnFMethod> 的关联实例作为成员被初始化,并立即可供应用程序进行调用。

关于内部状态,方法对象在初始化后只要 Proxy 实例保持有效就具有持久的调用就绪状态。各个调用的状态转换不影响方法实例本身,而是影响各个调用上下文。当来自客户端应用程序的多个线程进行并发访问时,必须确保可以线程安全地发起对同一方法实例的并行调用。销毁在离开作用域或显式销毁 Proxy 实例时隐式发生,此时会清理打开的通信资源。

使用路径

客户端应用程序使用方法类的典型流程遵循固定顺序:

  1. 提供 Proxy:应用程序从命名空间 <SI-Namespace>::proxy 创建或获取服务 Proxy 的已初始化实例。
  2. 访问方法:通过实例化类 <Method> 或 <FnFMethod> 的 Proxy 实例的方法成员来调用所需的操作。
  3. 执行常规操作:在调用 <Method> 的实例时,客户端传递所需的输入参数。该调用触发到目标系统的传输。返回对象使应用程序能够等待结果到达或继续异步工作。
  4. 执行 Fire-and-Forget 操作:在调用 <FnFMethod> 的实例时,传递参数并立即传输以转发到底层传输层。该方法在移交给调用方后直接返回。
  5. 结果处理:在常规方法调用中,客户端评估所提供的结果并检查操作是否成功完成。

错误场景

错误处理在这两种方法类型之间存在根本差异:在通过 <Method> 进行常规操作时,既可能发生传输层错误,也可能发生接口定义中指定的特定应用程序错误。由于配置了 ClientServerOperation.fireAndForget == FALSE,包含可能错误消息的响应消息由服务器返回给 Proxy。客户端应用程序可以通过调用的返回对象评估这些错误,并启动适当的处理例程。

与此相反,<FnFMethod> 的设计由于 ClientServerOperation.fireAndForget == TRUE 在原则上排除了向调用方反馈服务器端错误。在操作处理期间发生在服务器上的错误无法传输到 Proxy。前置条件和后置条件仅限于本地调用端:前置条件要求有效的参数值和就绪的通信基础架构。如果在发送时发生本地错误,则可在方法调用时立即发出信号,而服务器端执行错误对调用方而言则无法察觉。

本指南由人工智能基于 AUTOSAR 规范数据生成。

类

Service proxy fire-and-forget method class, one for each ClientServerOperation ( ClientServerOperation.fireAndForget==TRUE) defined in the S

Service proxy method class, one for each ClientServerOperation ( ClientServerOperation.fireAndForget ==FALSE) defined in the ServiceInterfac

类图

Abgerundete Rahmen = Namespace- bzw. Klassen-Scopes; hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); graue Boxen = namespace-fremde bzw. externe Basisklassen. Klicken öffnet die jeweilige Klassen- bzw. cppreference-Seite.

G cluster_ns <SI-Namespace>::proxy::methods cluster_c0 <SI-Namespace>::proxy::methods::<Method> n_SI_Namespace___proxy__methods___FnFMethod_ <FnFMethod> n_SI_Namespace___proxy__methods___Method_ <Method> n_SI_Namespace___proxy__methods___Method___Output «struct» Output