DEENESPTFRRUARHIKOZHNL

类 ara::diag::DataTransferWriteSession

[SWS_DM_01555] Upstream: RS_Diag_04135

class DataTransferWriteSession final {...};

Encapsulates all data transfer writing variants.

Header-Datei#include "ara/diag/data_transfer.h"
Forwarding-Header#include "ara/diag/diag_fwd.h"
Scopenamespace ara::diag

用户指南人工智能生成

封装写入诊断数据传输并通过写入处理程序协调执行。
AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 6f5de6951762 来源 未决问题(2)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

封装写入诊断数据传输并通过写入处理程序协调执行。

类 ara::diag::DataTransferWriteSession 封装写入诊断数据传输,并协调向应用程序特定写入处理程序的转发 ([SWS_DM_01555])。当收到诸如 TransferData (0x36) 或 RequestTransferExit (0x37) 之类的传入 UDS 服务时,诊断服务器实例会调用已注册处理程序的相应 Write 或 Exit 方法 ([SWS_DM_01317])。由于默认构造和拷贝构造已被删除,该会话作为异常安全的单一实例存在,其创建大概是通过模板构造函数进行的。 问题 (未决)

上下文

类 ara::diag::DataTransferWriteSession 封装了 Adaptive Platform Diagnostics([SWS_DM_01555])功能领域内所有变体的写数据传输。它充当平台的诊断服务器实例与执行实际写传输的应用特定实现之间的连接元素。

在诸如 RequestFileTransfer(例如根据 [SWS_DM_01313] 的操作模式 ReplaceFile (0x03))等诊断服务的上下文中,诊断服务器实例接收传输请求。若在后续过程中收到 UDS 服务 TransferData (0x36) 的诊断请求,服务器会将其委托给绑定到相应 DataTransferWriteSession 的处理程序类的 Write 方法([SWS_DM_01317])。在所有数据块传输完毕后,服务 RequestTransferExit (0x37) 指示完成,随后诊断服务器实例调用已注册处理程序的 Exit 方法([SWS_DM_01318])。

diag-context Server Diagnoseserver-Instanz Session ara::diag::DataTransferWriteSession Server->Session kapselt Schreibvarianten [SWS_DM_01555] Handler Handler-Klasse (Schreib-Handler) Server->Handler 调用 Write / Exit [SWS_DM_01317], [SWS_DM_01318] Session->Handler bindet Handler

上下文图:诊断服务器、DataTransferWriteSession 与应用特定处理程序类之间的交互。来源:[SWS_DM_01555]、[SWS_DM_01317]、[SWS_DM_01318]。

生命周期

DataTransferWriteSession 的生命周期受头文件 ara/diag/data_transfer.h([SWS_DM_01339])中的规范约束。默认构造函数已被显式删除(DataTransferWriteSession() = delete、[SWS_DM_01339])。因此,实例化推测是通过模板构造函数进行的,特定的处理程序类通过这些模板构造函数绑定到会话对象(AUTOSAR_AP_SWS_Diagnostics §8.10 “Context of RequestFileTransfer”)。 问题 Q-4575aa1e5d0889b3 (未决)

为了实施明确的所有权,DataTransferWriteSession 既不可复制也不可复制赋值:复制构造函数([SWS_DM_01559])和复制赋值运算符([SWS_DM_01560])均被声明为 delete。因此,实例作为独占的单例存在。

相比之下,该类支持完整的移动语义:移动构造函数([SWS_DM_01557])和移动赋值运算符([SWS_DM_01558])被声明为默认实现,并被指定为 noexcept 以及异常安全(“exception safe”)。它们允许在程序上下文之间高效传输会话状态。析构通过异常安全的默认析构函数(~DataTransferWriteSession() noexcept = default、[SWS_DM_01556])执行。在并发方面,由于未记录用于并发访问的同步机制,其使用推测主要在执行服务器线程内按顺序进行。 问题 Q-2c2278884fa11b21 (未决)

使用路径

写传输的常规流程按以下步骤进行:

  1. 初始化:在收到写请求(例如根据 [SWS_DM_01313] 带有 kReplace 的 RequestFileTransfer)时,将建立一个 DataTransferWriteSession。在此过程中,用于写操作的应用特定处理程序通过模板构造函数进行注册(AUTOSAR_AP_SWS_Diagnostics §8.10 “Context of RequestFileTransfer”)。
  2. 数据块传输:对于 UDS 服务 TransferData (0x36) 的每个传入请求,诊断服务器实例都会调用已注册处理程序类的 Write 方法([SWS_DM_01317])。对传输的所有数据块循环重复该步骤。
  3. 结束会话:完整传输后,诊断服务器接收 RequestTransferExit (0x37),随后调用处理程序类的 Exit 方法([SWS_DM_01318])。
  4. 清理:在成功完成或提前中止后,会话对象将被销毁([SWS_DM_01556])。
写入式数据传输流程DiagnoseserverDataTransferWriteSessionHandler-KlasseErzeugung / RegistrierungloopTransferData (0x36)Write() [SWS_DM_01317]状态 / 确认RequestTransferExit (0x37) 时的 Exit() [SWS_DM_01318]Exit 确认销毁 (~DataTransferWriteSession) [SWS_DM_01556]

时序图:通过所涉及实例进行写数据传输的典型流程。来源:[SWS_DM_01317]、[SWS_DM_01318]、[SWS_DM_01556]。

错误场景

对于 ara::diag::DataTransferWriteSession,错误处理和可靠性主要依托于静态类型安全和异常安全:

  • 避免无效对象状态:删除默认构造函数([SWS_DM_01339])可防止存在未初始化且没有绑定处理程序的会话对象。禁止复制操作([SWS_DM_01559]、[SWS_DM_01560])在编译期即可杜绝由多重所有权导致的不一致状态。
  • 移动与销毁时的异常安全:将移动构造函数([SWS_DM_01557])、移动赋值([SWS_DM_01558])和析构函数([SWS_DM_01556])声明为 noexcept 保证了在资源转移和运行时解构会话时不会抛出异常。
  • 提前中止:如果传输提前失败,noexcept 析构函数可确保即使在异常展开(Exception Unwinding)过程中也能可靠地清理会话对象([SWS_DM_01556])。

本指南基于 AUTOSAR Adaptive Platform Release R25-11 的规范文档。

成员图

类图

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

G nara__diag__DataTransferWriteSession996 DataTransferWriteSession + DataTransferWriteSession() + ~DataTransferWriteSession() + operator=()

详细视图

请在大纲中选择一个条目。

构造函数和析构函数

No default construction allowed.

重载 DataTransferWriteSession 3
DataTransferWriteSession ()=delete; SWS_DM_01339
DataTransferWriteSession (DataTransferWriteSession &&other) noexcept=default; SWS_DM_01557
DataTransferWriteSession (DataTransferWriteSession const &)=delete; SWS_DM_01559

Destructs an instance of this class.

~DataTransferWriteSession () noexcept=default;

运算符

operator= 函数 2

Move assigns an instance of this class.

重载 = 2
auto operator= (DataTransferWriteSession &&other) & noexcept -> Data TransferWriteSession & =default; SWS_DM_01558
auto operator= (DataTransferWriteSession const &) -> DataTransferWrite Session &=delete; SWS_DM_01560

方法文档

函数 DataTransferWriteSession [SWS_DM_01339] Upstream: RS_Diag_04135

DataTransferWriteSession ()=delete;

No default construction allowed.

Header-Datei#include "ara/diag/data_transfer.h"
Scopeclass ara::diag::DataTransferWriteSession

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

Record
AUTOSAR/AP/record/SWS_DM_01339
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01339@rel:R25-11#7329d23e
Content hash
7329d23e
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01339
Status: valid/unmigrated Version: rel:R25-11#bb684435 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_01339@rel:R25-11#bb684435
Point-in-Time History:
Recorded Revisions (5):
  • R25-11rel:R25-11#df974f042026-09-30
  • R22-11rel:R22-11#05c5fa902026-10-14
  • R23-11rel:R23-11#d68056ea2026-10-14
  • R24-11rel:R24-11#bb6844352026-10-14
  • R25-11rel:R25-11#bb6844352026-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

函数 DataTransferWriteSession [SWS_DM_01557] Upstream: RS_Diag_04135

DataTransferWriteSession (DataTransferWriteSession &&other) noexcept=default;

Move constructs an instance of this class.

Header-Datei#include "ara/diag/data_transfer.h"
Scopeclass ara::diag::DataTransferWriteSession
Exception-Sicherheitexception safe

Parameter (out)

ParameterBeschreibung
otherThe other object

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

Record
AUTOSAR/AP/record/SWS_DM_01557
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01557@rel:R25-11#94206d38
Content hash
94206d38
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01557
Status: valid/unmigrated Version: rel:R25-11#c06644f6 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_01557@rel:R25-11#c06644f6
Point-in-Time History:
Recorded Revisions (5):
  • R25-11rel:R25-11#c6845d2b2026-09-30
  • R22-11rel:R22-11#561cac2d2026-10-14
  • R23-11rel:R23-11#e94010d52026-10-14
  • R24-11rel:R24-11#d442d2622026-10-14
  • R25-11rel:R25-11#c06644f62026-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

函数 DataTransferWriteSession [SWS_DM_01559] Upstream: RS_Diag_04135

DataTransferWriteSession (DataTransferWriteSession const &)=delete;

DataTransferWriteSession shall be a single not copy-able instance.

Header-Datei#include "ara/diag/data_transfer.h"
Scopeclass ara::diag::DataTransferWriteSession

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

Record
AUTOSAR/AP/record/SWS_DM_01559
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01559@rel:R25-11#e9c93c2c
Content hash
e9c93c2c
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01559
Status: valid/unmigrated Version: rel:R25-11#2bc05d20 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_01559@rel:R25-11#2bc05d20
Point-in-Time History:
Recorded Revisions (5):
  • R25-11rel:R25-11#b426deb12026-09-30
  • R22-11rel:R22-11#0786de092026-10-14
  • R23-11rel:R23-11#fedcdb6a2026-10-14
  • R24-11rel:R24-11#6b2b05782026-10-14
  • R25-11rel:R25-11#2bc05d202026-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

函数 operator= [SWS_DM_01558] Upstream: RS_Diag_04135

auto operator= (DataTransferWriteSession &&other) & noexcept -> Data TransferWriteSession & =default;

Move assigns an instance of this class.

Header-Datei#include "ara/diag/data_transfer.h"
Scopeclass ara::diag::DataTransferWriteSession
Exception-Sicherheitexception safe

Parameter (out)

ParameterBeschreibung
otherThe other object

Rückgabewert

TypBeschreibung
DataTransferWriteSessionReference to self

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

Record
AUTOSAR/AP/record/SWS_DM_01558
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01558@rel:R25-11#d6ab2796
Content hash
d6ab2796
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01558
Status: valid/unmigrated Version: rel:R25-11#98b7f297 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_01558@rel:R25-11#98b7f297
Point-in-Time History:
Recorded Revisions (5):
  • R25-11rel:R25-11#f08e32562026-09-30
  • R22-11rel:R22-11#9dc2babb2026-10-14
  • R23-11rel:R23-11#40e5e8552026-10-14
  • R24-11rel:R24-11#a9c2662c2026-10-14
  • R25-11rel:R25-11#98b7f2972026-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

函数 operator= [SWS_DM_01560] Upstream: RS_Diag_04135

auto operator= (DataTransferWriteSession const &) -> DataTransferWrite Session &=delete;

DataTransferWriteSession shall be a single not assignable instance.

Header-Datei#include "ara/diag/data_transfer.h"
Scopeclass ara::diag::DataTransferWriteSession

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

Record
AUTOSAR/AP/record/SWS_DM_01560
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01560@rel:R25-11#31fb1858
Content hash
31fb1858
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01560
Status: valid/unmigrated Version: rel:R25-11#dcf22359 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_01560@rel:R25-11#dcf22359
Point-in-Time History:
Recorded Revisions (5):
  • R25-11rel:R25-11#e3c6cc162026-09-30
  • R22-11rel:R22-11#56026dd62026-10-14
  • R23-11rel:R23-11#3b74c86b2026-10-14
  • R24-11rel:R24-11#dcf223592026-10-14
  • R25-11rel:R25-11#dcf223592026-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

函数 ~DataTransferWriteSession [SWS_DM_01556] Upstream: RS_Diag_04135

~DataTransferWriteSession () noexcept=default;

Destructs an instance of this class.

Header-Datei#include "ara/diag/data_transfer.h"
Scopeclass ara::diag::DataTransferWriteSession
Exception-Sicherheitexception safe

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

Record
AUTOSAR/AP/record/SWS_DM_01556
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01556@rel:R25-11#1e51afca
Content hash
1e51afca
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01556
Status: valid/unmigrated Version: rel:R25-11#cfbf332f 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_01556@rel:R25-11#cfbf332f
Point-in-Time History:
Recorded Revisions (5):
  • R25-11rel:R25-11#4df3679e2026-09-30
  • R22-11rel:R22-11#abce2ef62026-10-14
  • R23-11rel:R23-11#c58302302026-10-14
  • R24-11rel:R24-11#9b7407d22026-10-14
  • R25-11rel:R25-11#cfbf332f2026-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