DEENESPTFRRUARHIKOZHNL

类 ara::log::Argument

[SWS_LOG_00261] Upstream: RS_LT_00003

template <typename T> class Argument final {...};

Wrapper type for holding a payload argument with its attributes. The setup of this class is implementation-defined.

Header-Datei#include "ara/log/log_stream.h"
Forwarding-Header#include "ara/log/log_fwd.h"
Scopenamespace ara::log

用户指南人工智能生成

封装类型化有效负载数据及其属性,以传递给自适应日志记录系统。
AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: c1790b7e43da 来源 未决问题(3)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

封装类型化有效负载数据及其属性,以传递给自适应日志记录系统。

模板类 ara::log::Argument 在模块 log 内用作有效负载数据实参及其属性的封装类型。作为泛型数据载体,该结构接收类型为 T 的实参,并且应该能够向日志接收器进行类型安全的传输。 问题 (未决)该类的具体结构和内部成员由供应商特定定义,因此可移植的应用程序代码不应依赖于特定的数据结构。通过标记为 final,阻止了派生,这应该支持紧凑且不可变的值语义。

上下文

类 ara::log::Argument 在 AUTOSAR Adaptive Platform 的日志模块中形成一个泛型包装器类型,负责接收和封装有效负载数据实参(Payload Argument)及其特定属性。根据类语法,它被实现为具有类型参数 T 的模板。这推测用于接收任意基本或复杂数据类型的有效负载数据,而日志记录基础架构无需为每种类型提供单独的接口。 问题 Q-a8237897f16d62c7 (未决)

交互伙伴一方面是希望记录运行时信息的应用程序端组件,另一方面是模块 log 的内部日志记录机制。在分布式和可诊断的汽车系统中,日志记录通常不仅需要单纯输出裸值,还需要将该值与属性相关联。类 ara::log::Argument 在此承担将数据及其描述特征合并在一个逻辑单元中的任务。

生命周期

该类声明为 template <typename T> class Argument final 规定了 ara::log::Argument 不能用作进一步特化的基类。通过关键字 final,可以有针对性地防止派生,以确保紧凑的值语义,并消除实参传递期间诸如对象切片(object slicing)之类的潜在错误源。 问题 Q-cfcfbbdeaad3a21b (未决)

根据 AUTOSAR 规范,该类的结构是供应商特定的(implementation-defined)。因此,存储、构造函数和属性字段的内部实现由各个平台提供商负责。应用程序开发人员应做好准备,属性和数据字段的内部表示可能会因供应商而异,因此不得假定直接访问内部成员或固定的内存布局。 问题 Q-0630c61b22bcaab0 (未决)

关于所有权关系和生命周期,ara::log::Argument 的实例通常是短生命周期生成的。它们在即将到来的日志记录操作的上下文中创建,将有效负载数据实参传递给相应的日志流或缓冲区,并在写入过程完成后再次释放。关于并发性,供应商定义的结构意味着在没有外部同步的情况下应避免对同一实例的并发访问。建议在各自的执行线程本地实例化和处理实参实例。

使用路径

ara::log::Argument 的概念性使用路径分为封装、转发和处理阶段:

  • 创建和封装:类型为 T 的有效负载数据值与其关联属性一起封装在 ara::log::Argument<T> 的实例中。
  • 传递给日志记录系统:封装的实参传递给模块 log 的接口,例如通过流运算符或日志记录函数。
  • 处理和格式化:日志记录框架评估封装的有效负载数据值及其属性,根据配置的接收器(例如控制台、DLT 后端或持久性存储)格式化输出并序列化数据。
  • 销毁:随着日志语句的结束,临时实参对象的生命周期通过离开作用域而自动结束。

通过这种标准化流程,该类确保有效负载属性与有效负载数据值一致传输,而应用程序代码无需管理专有缓冲区构造。

此文本由 AI 创建。它基于 AUTOSAR R25-11 的形式化规范数据。