DEENESPTFRRUARHIKOZHNL

class ara::diag::DataTransferReadSession

[SWS_DM_01548] Upstream: RS_Diag_04135

class DataTransferReadSession final {...};

Encapsulates all data transfer reading variants.

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

User GuideKI-GENERIERT

Kapselt aktive diagnosegestützte Leseübertragungen und leitet eingehende Datentransfers an registrierte Handler weiter.
KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 9db606b147f6 Herkunft Offene Fragen (2)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Kapselt aktive diagnosegestützte Leseübertragungen und leitet eingehende Datentransfers an registrierte Handler weiter.

Die Klasse dient der Kapselung und strukturierten Verwaltung aller Varianten diagnosebasierter Leseübertragungen innerhalb des adaptiven AUTOSAR-Diagnosemoduls gemäß [SWS_DM_01548]. Nach der erfolgreichen Einleitung eines Lesevorgangs delegiert die Diagnostic-Server-Instanz eingehende Anfragen für den sequenziellen Datenblocktransfer sowie für den Sitzungsabschluss an die registrierten Methoden des Lese-Handlers [SWS_DM_01317]. Durch die gezielte Deaktivierung von Kopieroperationen bei gleichzeitiger Unterstützung von Move-Semantik gewährleistet die Klasse dabei eine eindeutige Besitzzuordnung der zugrunde liegenden Transfersitzung.

Kontext

Die Klasse ara::diag::DataTransferReadSession repräsentiert die Kapselung aller Varianten für das diagnosegestützte Lesen von Datenblöcken im adaptiven Diagnosemodul [SWS_DM_01548]. Im Rahmen standardisierter UDS-Dienste wie RequestFileTransfer (0x38), TransferData (0x36) und RequestTransferExit (0x37) fungiert die Sitzungsklasse als Bindeglied zwischen der internen Laufzeitumgebung des Diagnose-Servers und den anwendungsspezifischen Lese-Handlern SWS Diagnostics §7 „Realization of TransferData and RequestTransferExit“. Sie stellt sicher, dass laufende Auslesevorgänge – etwa für Dateien über ReadFile [SWS_DM_01314] oder Verzeichnisse über ReadDir [SWS_DM_01315] – isoliert verwaltet und an die zugehörigen Handler weitergeleitet werden.

DataTransferReadSessionContext client Diagnose-Client (Tester) server Diagnostic Server (ara::diag) client->server UDS RequestFileTransfer TransferData / Exit session ara::diag::DataTransferReadSession (Transfersitzung) server->session verwaltet Lesesitzung handler Lese-Handler (Applikation) session->handler delegiert Read() / Exit()

Kontextdiagramm: Einbettung von DataTransferReadSession zwischen Diagnose-Server und Anwendungs-Handler. Quellen: [SWS_DM_01317], [SWS_DM_01318], SWS Diagnostics §7 „Realization of TransferData and RequestTransferExit“

Lebenszyklus

Eine Instanz von ara::diag::DataTransferReadSession besitzt eine strikt an die Transfersitzung gekoppelte Lebensdauer. Die Erzeugung über einen Standardkonstruktor ist explizit untersagt [SWS_DM_01549]. Stattdessen wird die Sitzung über spezialisierte Template-Konstruktoren initialisiert, welche die anwendungsspezifischen Handler registrieren SWS Diagnostics §7 „Realization of TransferData and RequestTransferExit“. Die Instanziierung dürfte in der Praxis typischerweise durch den Diagnose-Server oder den Service-Handler bei Initiierung des Dateitransfers erfolgen. Frage Q-b0706bcd28c702c6 (offen)

Um Mehrfachbelegungen oder inkonsistente Sitzungszustände auszuschließen, ist ara::diag::DataTransferReadSession als unkopierbare Einzelinstanz konzipiert: Sowohl der Kopierkonstruktor [SWS_DM_01553] als auch der Kopierzuweisungsoperator [SWS_DM_01554] sind gelöscht (=delete). Eine Übergabe von Besitzverhältnissen ist ausschließlich über Move-Semantik vorgesehen. Der Move-Konstruktor [SWS_DM_01551] und der Move-Zuweisungsoperator [SWS_DM_01552] sind als noexcept=default definiert. Die Zerstörung erfolgt deterministisch über den Destruktor [SWS_DM_01550], der ebenfalls als noexcept=default deklariert ist. Vermutlich führt der Abschluss des Transfers über RequestTransferExit zur Freigabe des Objekts. Frage Q-c1999fd1f283a007 (offen)

Nutzungspfad

Der typische Ablauf einer Lese-Transfersitzung gliedert sich in drei aufeinanderfolgende Phasen:

  • Initialisierung: Ein externer Diagnose-Client sendet RequestFileTransfer mit einem Lese-Modus wie ReadFile (0x04) [SWS_DM_01314] oder ReadDir (0x05) [SWS_DM_01315]. Hierbei wird die Sitzungsinstanz erzeugt und der Lese-Handler registriert.
  • Datentransfer: Eingehende Diagnoseanfragen des Typs TransferData (0x36) verarbeitet der Diagnose-Server, indem er die korrespondierende Read-Methode des über die Template-Konstruktoren registrierten Handlers aufruft [SWS_DM_01317]. Dies geschieht iterativ für jeden angeforderten Datenblock.
  • Abschluss: Sobald alle Daten übertragen wurden, sendet der Client RequestTransferExit (0x37). Der Diagnose-Server ruft daraufhin die Exit-Methode des registrierten Handlers auf, um den Lesevorgang ordnungsgemäß zu beenden [SWS_DM_01318].
Ablauf eines dateibasierten Lese-TransfersDiagnose-ClientDiagnostic ServerDataTransferReadSessionRequestFileTransfer (0x38)ReadFile / ReadDirInitialisierung viaTemplate-KonstruktorPositiv-Response (0x78)loopSolange Datenblöcke übertragen werdenTransferData (0x36)Read()Gelesene BlockdatenTransferData Positiv-ResponseRequestTransferExit (0x37)Exit()Bestätigung AbschlussRequestTransferExit Response

Sequenzdiagramm: Aufrufsequenz eines UDS-Lese-Transfers mit Übergabe an die registrierte Sitzung. Quellen: [SWS_DM_01314], [SWS_DM_01315], [SWS_DM_01317], [SWS_DM_01318]

Fehlerszenarien

Da ara::diag::DataTransferReadSession als final deklariert ist und der Standardkonstruktor [SWS_DM_01549] nicht existiert, wird eine fehlerhafte Erzeugung ohne registrierten Handler bereits zur Übersetzungszeit verhindert. Ebenso unterbinden die gelöschten Kopieroperationen [SWS_DM_01553] versehentliches Duplizieren von Sitzungszuständen. Sowohl Move-Konstruktion als auch Move-Zuweisung und Zerstörung garantieren durch ihre noexcept-Spezifikation absolute Ausnahmesicherheit [SWS_DM_01551] [SWS_DM_01550]. Schlägt die Bereitstellung von Datenblöcken im Handler fehl, wird dies im Rahmen der UDS-Kommunikation auf Protokollebene behandelt.

Dieser Leitfaden basiert auf der Spezifikation AUTOSAR Adaptive Platform R25-11 (Modul diag) und fasst die Anforderungen an ara::diag::DataTransferReadSession zusammen.

Mitgliederkarte

Operatoren

1

Klassendiagramm

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

G nara__diag__DataTransferReadSession318 DataTransferReadSession + DataTransferReadSession() + ~DataTransferReadSession() + operator=()

Detailansicht

Wähle in der Gliederung einen Eintrag aus.

Konstruktoren und Destruktor

No default construction allowed.

Überladungen DataTransferReadSession 3
DataTransferReadSession ()=delete; SWS_DM_01549
DataTransferReadSession (DataTransferReadSession &&other) noexcept=default; SWS_DM_01551
DataTransferReadSession (DataTransferReadSession const &)=delete; SWS_DM_01553

Destructs an instance of this class.

~DataTransferReadSession () noexcept=default;

Operatoren

operator= function 2

Move assigns an instance of this class.

Überladungen = 2
auto operator= (DataTransferReadSession &&other) & noexcept -> Data TransferReadSession & =default; SWS_DM_01552
auto operator= (DataTransferReadSession const &) -> DataTransferRead Session &=delete; SWS_DM_01554

Dokumentation der Methoden

function DataTransferReadSession [SWS_DM_01549] Upstream: RS_Diag_04135

DataTransferReadSession ()=delete;

No default construction allowed.

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

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

Record
AUTOSAR/AP/record/SWS_DM_01549
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01549@rel:R25-11#c4cbcc0b
Content hash
c4cbcc0b
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01549
Status: valid/unmigrated Version: rel:R25-11#b12b963b 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_01549@rel:R25-11#b12b963b
Point-in-Time History:
Recorded Revisions (5):
  • R25-11rel:R25-11#c4cbcc0b2026-09-30
  • R22-11rel:R22-11#99668fac2026-10-14
  • R23-11rel:R23-11#f616e79a2026-10-14
  • R24-11rel:R24-11#b12b963b2026-10-14
  • R25-11rel:R25-11#b12b963b2026-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

function DataTransferReadSession [SWS_DM_01551] Upstream: RS_Diag_04135

DataTransferReadSession (DataTransferReadSession &&other) noexcept=default;

Move constructs an instance of this class.

Header-Datei#include "ara/diag/data_transfer.h"
Scopeclass ara::diag::DataTransferReadSession
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_01551
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01551@rel:R25-11#21edf176
Content hash
21edf176
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01551
Status: valid/unmigrated Version: rel:R25-11#9d8ef11f 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_01551@rel:R25-11#9d8ef11f
Point-in-Time History:
Recorded Revisions (5):
  • R25-11rel:R25-11#21edf1762026-09-30
  • R22-11rel:R22-11#313c13512026-10-14
  • R23-11rel:R23-11#ab0c46e72026-10-14
  • R24-11rel:R24-11#5b475da32026-10-14
  • R25-11rel:R25-11#9d8ef11f2026-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

function DataTransferReadSession [SWS_DM_01553] Upstream: RS_Diag_04135

DataTransferReadSession (DataTransferReadSession const &)=delete;

DataTransferReadSession shall be a single not copy-able instance.

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

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

Record
AUTOSAR/AP/record/SWS_DM_01553
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01553@rel:R25-11#a630ea6c
Content hash
a630ea6c
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01553
Status: valid/unmigrated Version: rel:R25-11#fbc13491 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_01553@rel:R25-11#fbc13491
Point-in-Time History:
Recorded Revisions (5):
  • R25-11rel:R25-11#a630ea6c2026-09-30
  • R22-11rel:R22-11#35a6d77b2026-10-14
  • R23-11rel:R23-11#c1d834202026-10-14
  • R24-11rel:R24-11#6803928e2026-10-14
  • R25-11rel:R25-11#fbc134912026-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

function operator= [SWS_DM_01552] Upstream: RS_Diag_04135

auto operator= (DataTransferReadSession &&other) & noexcept -> Data TransferReadSession & =default;

Move assigns an instance of this class.

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

Parameter (out)

ParameterBeschreibung
otherThe other object

Rückgabewert

TypBeschreibung
DataTransferReadSessionReference to self

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

Record
AUTOSAR/AP/record/SWS_DM_01552
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01552@rel:R25-11#457fd3d0
Content hash
457fd3d0
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01552
Status: valid/unmigrated Version: rel:R25-11#d99670ce 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_01552@rel:R25-11#d99670ce
Point-in-Time History:
Recorded Revisions (5):
  • R25-11rel:R25-11#457fd3d02026-09-30
  • R22-11rel:R22-11#85ce121e2026-10-14
  • R23-11rel:R23-11#e7bc25f92026-10-14
  • R24-11rel:R24-11#826c7d1b2026-10-14
  • R25-11rel:R25-11#d99670ce2026-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

function operator= [SWS_DM_01554] Upstream: RS_Diag_04135

auto operator= (DataTransferReadSession const &) -> DataTransferRead Session &=delete;

DataTransferReadSession shall be a single not assign-able instance.

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

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

Record
AUTOSAR/AP/record/SWS_DM_01554
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01554@rel:R25-11#a2fa062f
Content hash
a2fa062f
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01554
Status: valid/unmigrated Version: rel:R25-11#8d7ab93b 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_01554@rel:R25-11#8d7ab93b
Point-in-Time History:
Recorded Revisions (5):
  • R25-11rel:R25-11#a2fa062f2026-09-30
  • R22-11rel:R22-11#609b1c622026-10-14
  • R23-11rel:R23-11#22a9c8aa2026-10-14
  • R24-11rel:R24-11#c9a88d712026-10-14
  • R25-11rel:R25-11#8d7ab93b2026-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

function ~DataTransferReadSession [SWS_DM_01550] Upstream: RS_Diag_04135

~DataTransferReadSession () noexcept=default;

Destructs an instance of this class.

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

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

Record
AUTOSAR/AP/record/SWS_DM_01550
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01550@rel:R25-11#d3c56064
Content hash
d3c56064
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01550
Status: valid/unmigrated Version: rel:R25-11#0b5bb2a2 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_01550@rel:R25-11#0b5bb2a2
Point-in-Time History:
Recorded Revisions (5):
  • R25-11rel:R25-11#d3c560642026-09-30
  • R22-11rel:R22-11#18bafff82026-10-14
  • R23-11rel:R23-11#bfe91d802026-10-14
  • R24-11rel:R24-11#94e05f472026-10-14
  • R25-11rel:R25-11#0b5bb2a22026-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