DEENESPTFRRUARHIKOZHNL

class 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

User GuideKI-GENERIERT

Kapselt schreibende Diagnose-Datenübertragungen und koordiniert die Abwicklung über Schreib-Handler.
KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 6f5de6951762 Herkunft Offene Fragen (2)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Kapselt schreibende Diagnose-Datenübertragungen und koordiniert die Abwicklung über Schreib-Handler.

Die Klasse ara::diag::DataTransferWriteSession kapselt schreibende Diagnose-Datenübertragungen und koordiniert die Weiterleitung an anwendungsspezifische Schreib-Handler ([SWS_DM_01555]). Bei eingehenden UDS-Diensten wie TransferData (0x36) oder RequestTransferExit (0x37) ruft die Diagnoseserver-Instanz die entsprechenden Write- bzw. Exit-Methoden der registrierten Handler auf ([SWS_DM_01317]). Da Standard- und Kopierkonstruktion gelöscht sind, existiert die Session als ausnahmesicheres Einzelexemplar, dessen Erzeugung vermutlich über Template-Konstruktoren erfolgt. Frage (offen)

Kontext

Die Klasse ara::diag::DataTransferWriteSession kapselt sämtliche Varianten schreibender Datenübertragungen innerhalb des Funktionsbereichs Adaptive Platform Diagnostics ([SWS_DM_01555]). Sie fungiert als verbindendes Element zwischen der Diagnoseserver-Instanz der Plattform und den anwendungsspezifischen Implementierungen, welche den eigentlichen Schreibtransfer durchführen.

Im Rahmen diagnostischer Dienste wie RequestFileTransfer (beispielsweise bei der Betriebsart ReplaceFile (0x03) gemäß [SWS_DM_01313]) nimmt die Diagnoseserver-Instanz Übertragungsanfragen entgegen. Treffen im weiteren Verlauf diagnostische Anforderungen des UDS-Dienstes TransferData (0x36) ein, delegiert der Server diese an die Write-Methode derjenigen Handler-Klasse, die an die jeweilige DataTransferWriteSession gebunden ist ([SWS_DM_01317]). Nach Übertragung aller Datenblöcke signalisiert der Dienst RequestTransferExit (0x37) den Abschluss, woraufhin die Diagnoseserver-Instanz die Exit-Methode des registrierten Handlers aufruft ([SWS_DM_01318]).

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

Kontextdiagramm: Zusammenspiel zwischen Diagnoseserver, DataTransferWriteSession und anwendungsspezifischer Handler-Klasse. Quellen: [SWS_DM_01555], [SWS_DM_01317], [SWS_DM_01318].

Lebenszyklus

Der Lebenszyklus einer DataTransferWriteSession unterliegt den Vorgaben aus der Header-Datei ara/diag/data_transfer.h ([SWS_DM_01339]). Die Standardkonstruktion ist explizit gelöscht (DataTransferWriteSession() = delete, [SWS_DM_01339]). Eine Instanziierung erfolgt daher vermutlich über Template-Konstruktoren, über welche spezifische Handler-Klassen an das Session-Objekt gebunden werden (AUTOSAR_AP_SWS_Diagnostics §8.10 „Context of RequestFileTransfer“). Frage Q-4575aa1e5d0889b3 (offen)

Zur Durchsetzung einer eindeutigen Eigentümerschaft ist DataTransferWriteSession weder kopierbar noch kopierzuweisbar: Sowohl der Kopierkonstruktor ([SWS_DM_01559]) als auch der Kopierzuweisungsoperator ([SWS_DM_01560]) sind als delete deklariert. Instanzen existieren folglich als exklusive Einzelexemplare.

Dagegen unterstützt die Klasse vollständige Verschiebesemantik: Der Verschiebekonstruktor ([SWS_DM_01557]) und der Verschiebezuweisungsoperator ([SWS_DM_01558]) sind als Standardimplementierung deklariert und als noexcept sowie ausnahmesicher („exception safe“) spezifiziert. Sie erlauben den effizienten Transfer des Sitzungszustands zwischen Programmkontexten. Die Zerstörung erfolgt über den ausnahmesicheren Standard-Destruktor (~DataTransferWriteSession() noexcept = default, [SWS_DM_01556]). Hinsichtlich der Nebenläufigkeit dürfte die Nutzung primär sequenziell innerhalb des ausführenden Server-Threads erfolgen, da keine Synchronisationsmechanismen für nebenläufige Zugriffe dokumentiert sind. Frage Q-2c2278884fa11b21 (offen)

Nutzungspfad

Der reguläre Ablauf einer schreibenden Übertragung vollzieht sich in folgenden Schritten:

  1. Initialisierung: Bei Eingang einer Schreibanfrage (beispielsweise RequestFileTransfer mit kReplace gemäß [SWS_DM_01313]) wird eine DataTransferWriteSession eingerichtet. Hierbei wird der anwendungsspezifische Handler für Schreiboperationen über Template-Konstruktoren registriert (AUTOSAR_AP_SWS_Diagnostics §8.10 „Context of RequestFileTransfer“).
  2. Datenblockübertragung: Für jede eintreffende Anforderung des UDS-Dienstes TransferData (0x36) ruft die Diagnoseserver-Instanz die Write-Methode der registrierten Handler-Klasse auf ([SWS_DM_01317]). Dieser Schritt wird zyklisch für alle Blöcke der Übertragung wiederholt.
  3. Abschluss der Sitzung: Nach der vollständigen Übertragung empfängt der Diagnoseserver RequestTransferExit (0x37) und ruft daraufhin die Exit-Methode der Handler-Klasse auf ([SWS_DM_01318]).
  4. Bereinigung: Nach erfolgreichem Abschluss oder bei vorzeitigem Abbruch wird das Session-Objekt zerstört ([SWS_DM_01556]).
Ablauf einer schreibenden DatenübertragungDiagnoseserverDataTransferWriteSessionHandler-KlasseErzeugung / RegistrierungloopTransferData (0x36)Write() [SWS_DM_01317]Write()Status / BestätigungExit() bei RequestTransferExit (0x37) [SWS_DM_01318]Exit() bei RequestTransferExit (0x37)Exit-BestätigungZerstörung (~DataTransferWriteSession) [SWS_DM_01556]Zerstörung (~DataTransferWriteSession)

Sequenzdiagramm: Typischer Ablauf einer schreibenden Datenübertragung über die beteiligten Instanzen. Quellen: [SWS_DM_01317], [SWS_DM_01318], [SWS_DM_01556].

Fehlerszenarien

Fehlerbehandlung und Zuverlässigkeit stützen sich bei ara::diag::DataTransferWriteSession maßgeblich auf statische Typsicherheit und Ausnahmesicherheit:

  • Vermeidung ungültiger Objektzustände: Das Löschen des Default-Konstruktors ([SWS_DM_01339]) verhindert, dass uninitialisierte Session-Objekte ohne gebundenen Handler existieren können. Das Verbot von Kopieroperationen ([SWS_DM_01559], [SWS_DM_01560]) schließt inkonsistente Zustände durch mehrfache Besitzverhältnisse bereits zur Compile-Zeit aus.
  • Ausnahmesicherheit beim Verschieben und Zerstören: Die Deklaration von Verschiebekonstruktor ([SWS_DM_01557]), Verschiebezuweisung ([SWS_DM_01558]) und Destruktor ([SWS_DM_01556]) als noexcept garantiert, dass bei Ressourcenübergaben und beim Abbau der Session zur Laufzeit keine Ausnahmen geworfen werden.
  • Vorzeitiger Abbruch: Schlägt ein Transfer vorzeitig fehl, stellt der noexcept-Destruktor sicher, dass das Session-Objekt auch im Rahmen von Exception-Unwinding zuverlässig aufgeräumt werden kann ([SWS_DM_01556]).

Dieser Leitfaden basiert auf den Spezifikationsdokumenten von AUTOSAR Adaptive Platform Release R25-11.

Mitgliederkarte

Operatoren

1

Klassendiagramm

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

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

Detailansicht

Wähle in der Gliederung einen Eintrag aus.

Konstruktoren und Destruktor

No default construction allowed.

Überladungen 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;

Operatoren

operator= function 2

Move assigns an instance of this class.

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

Dokumentation der Methoden

function 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#df974f04
Content hash
df974f04
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

function 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#c6845d2b
Content hash
c6845d2b
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

function 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#b426deb1
Content hash
b426deb1
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

function 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#f08e3256
Content hash
f08e3256
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

function 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#e3c6cc16
Content hash
e3c6cc16
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

function ~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#4df3679e
Content hash
4df3679e
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