DEENESPTFRRUARHIKOZHNL

结构体 ara::diag::FileTransferService::FileSizes

[SWS_DM_01321] Upstream: RS_Diag_04135

struct FileSizes {...};

Definition of total file sizes.

Header-Datei#include "ara/diag/file_transfer.h"
Forwarding-Header#include "ara/diag/diag_fwd.h"
Scopeclass ara::diag::FileTransferService

用户指南人工智能生成

用于在文件传输服务中封装以字节为单位的压缩和未压缩文件大小。
AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: a9f49ae913f1 来源 未决问题(3)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

用于在文件传输服务中封装以字节为单位的压缩和未压缩文件大小。

结构体 ara::diag::FileTransferService::FileSizes 用作标准化值对象,用于在 AUTOSAR Adaptive Platform 的诊断模块中封装文件大小规范 [SWS_DM_01321]。它将文件的未压缩和压缩字节大小捆绑在两个公共 64 位整数变量中,用于准备和监视传输操作 [SWS_DM_01322]。作为被动数据记录,该结构体既没有自身的方法也没有内部错误处理,因此必须由调用组件确保传入值的合理性检查以及线程安全性。

上下文

结构体 ara::diag::FileTransferService::FileSizes 是 AUTOSAR Adaptive Platform 中诊断模块(diag)不可或缺的组成部分 [SWS_DM_01321]。在上级服务 ara::diag::FileTransferService 的命名空间内,它定义了一个用于表示完整文件大小规范的紧凑数据模型 AUTOSAR_AP_SWS_Diagnostics §8.18.2 “Struct: FileSizes”。该类型通过头文件 ara/diag/file_transfer.h [SWS_DM_01322] 声明。其主要职责是将与文件传输操作相关的大小信息捆绑在统一的数据结构中,以便相互交互的平台和应用程序组件能够一致地交换文件大小 AUTOSAR_AP_SWS_Diagnostics 第1126页。

从功能上讲,该数据结构记录了两个不同的大小规范:通过元素 uncompressed_size [SWS_DM_01322] 记录文件的未压缩总大小,以及通过元素 compressed_size [SWS_DM_01323] 记录压缩总大小。两个值均作为无符号 64 位整数(std::uint64_t)以字节为单位管理。因此,FileSizes 在诊断客户端、Diagnostic Management 以及在自适应平台上处理文件传输的具体服务提供程序之间充当语义信息载体。

生命周期

结构体 ara::diag::FileTransferService::FileSizes 被建模为纯数据记录(Value Object),没有自身的虚方法或复杂的继承层次结构 AUTOSAR_AP_SWS_Diagnostics §8.18.2.1 “Public Member Variables”。其创建通常直接在调用栈上进行,或作为上层数据结构的成员。由于仅包含标准整数类型,该结构体默认应当既可复制也可移动,并且不需要堆上的动态内存管理。 问题 Q-f9c6e76fc8c62463 (未决)

所有权取决于具体的使用上下文:如果实例由诊断应用程序创建,则所有权保留在该应用程序中,或通过按值传递(Pass-by-Value)转移到被调用的接口函数。实例的销毁是微不足道的,并在离开作用域(Scope)时自动完成,无需额外的清理逻辑。由于该类型未提供内部同步机制,在并发访问同一实例时进行协调且线程安全的使用推测完全由参与的诊断或应用程序组件负责。 问题 Q-d2e83f9098c7f8c8 (未决)

使用路径

该结构体的典型用法分为初始化、参数赋值以及传递给 FileTransferService [SWS_DM_01321] 的传输例程这几个阶段。在典型应用场景中,发送组件在开始文件传输之前确定文件系统或内存中的实际文件尺寸。随后,它实例化 FileSizes 并将测量到的字节值分配给这两个公共变量:

  • uncompressed_size:指定原始文件的绝对大小(以字节为单位)[SWS_DM_01322]。
  • compressed_size:指定待传输数据流的压缩大小(以字节为单位)[SWS_DM_01323]。

如果在未预先压缩的情况下传输文件,compressed_size 和 uncompressed_size 推测带有相同的值。 问题 Q-1edcb924fd5932ee (未决)初始化后,该结构体被传递给文件传输的相应方法,以便对端可以预先分配存储需求并精确监控传输进度 AUTOSAR_AP_SWS_Diagnostics 第77页。

错误场景

在 ara::diag::FileTransferService::FileSizes 的规范中,未定义自身的诊断错误码、返回值或异常 AUTOSAR_AP_SWS_Diagnostics §8.18.2 “Struct: FileSizes”。作为被动数据类型,该结构体本身不会触发错误消息,也不会在运行时验证填入的值。

潜在错误主要源于参数填充时错误的前置和后置条件。通过类型 std::uint64_t 可以映射高达 $2^{64}-1$ 字节的值 [SWS_DM_01322]、[SWS_DM_01323]。如果组件传递了不合理的大小——例如现有文件为零字节的值,或者在没有合理解释的情况下压缩大小急剧超过未压缩大小——这必须由 FileTransferService 的前置或后置处理逻辑予以拦截。可用目标内存溢出也构成了一个上层错误场景,必须在开始数据传输之前根据 FileSizes 中传输的字节值进行识别。

本类指南基于 AUTOSAR Adaptive Platform R25-11 规范(diag 模块),专为 autodocs 创建。

UML 类图

Hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); Klicken öffnet die jeweilige Klassenseite.

G nara__diag__FileTransferService__FileSizes857 «struct» FileSizes + compressed_size + uncompressed_size

常量

Specifies the compressed file size in bytes.

std::uint64_t compressed_size;

Specifies the uncompressed file size in bytes.

std::uint64_t uncompressed_size;

常量 / 变量文档

变量 compressed_size [SWS_DM_01323] Upstream: RS_Diag_04135

std::uint64_t compressed_size;

Specifies the compressed file size in bytes.

Header-Datei#include "ara/diag/file_transfer.h"
Scopestruct ara::diag::FileTransferService::FileSizes
Symbolcompressed_size
Typstd::uint64_t

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_DM_01323
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01323@rel:R25-11#83797468
Content hash
83797468
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01323
Status: valid/unmigrated Version: rel:R25-11#6febc963 Versionshistorie & Revisions (1 transition, 5 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_DM_01323@rel:R25-11#6febc963
Point-in-Time History:
Recorded Revisions (5):
  • R25-11rel:R25-11#e096074a2026-09-30
  • R22-11rel:R22-11#4f01daa22026-10-14
  • R23-11rel:R23-11#7011a9a42026-10-14
  • R24-11rel:R24-11#7011a9a42026-10-14
  • R25-11rel:R25-11#6febc9632026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

变量 uncompressed_size [SWS_DM_01322] Upstream: RS_Diag_04135

std::uint64_t uncompressed_size;

Specifies the uncompressed file size in bytes.

Header-Datei#include "ara/diag/file_transfer.h"
Scopestruct ara::diag::FileTransferService::FileSizes
Symboluncompressed_size
Typstd::uint64_t

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_DM_01322
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01322@rel:R25-11#299e885f
Content hash
299e885f
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01322
Status: valid/unmigrated Version: rel:R25-11#803a2562 Versionshistorie & Revisions (1 transition, 5 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_DM_01322@rel:R25-11#803a2562
Point-in-Time History:
Recorded Revisions (5):
  • R25-11rel:R25-11#e266e40a2026-09-30
  • R22-11rel:R22-11#3c01ce6e2026-10-14
  • R23-11rel:R23-11#e0a2616f2026-10-14
  • R24-11rel:R24-11#e0a2616f2026-10-14
  • R25-11rel:R25-11#803a25622026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill