DEENESPTFRRUARHIKOZHNL

class ara::diag::DataTransferReadSharedDataHandler

[SWS_DM_01497] Upstream: RS_Diag_04135

class DataTransferReadSharedDataHandler {...};

Handles data transfers initiated by RequestReadFile/-Directory with shared data from the implementation.

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

User GuideKI-GENERIERT

Ermöglicht das Auslesen kompletter Dateien oder Verzeichnisse über geteilte Speicherbereiche bei Diagnoseanfragen.
KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 4c654c39d186 Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Ermöglicht das Auslesen kompletter Dateien oder Verzeichnisse über geteilte Speicherbereiche bei Diagnoseanfragen.

Die Klasse ara::diag::DataTransferReadSharedDataHandler dient der Abwicklung lesender Diagnose-Datentransfers für Datei- und Verzeichnisinhalte über geteilten Speicher ([SWS_DM_01497]). Nach dem Start der Sitzung stellt die Anwendungs-Implementierung die gesamten Daten als Shared Data View per Read() bereit und hält den alloziierten Puffer bis zur Freigabemeldung durch den ReleaseHandler vor ([SWS_DM_01504]). Vor der Zerstörung des handlerspezifischen Objekts muss die Übertragungssitzung zwingend über ExitRead() abgeschlossen werden. Das Objekt ist ausschließlich für eine einzelne Übertragungssitzung bestimmt und darf daher verschoben, aber nicht kopiert werden.

Kontext

Die Klasse ara::diag::DataTransferReadSharedDataHandler gehört zum Diagnose-Bereich der AUTOSAR Adaptive Platform im Modul diag (AUTOSAR_AP_SWS_Diagnostics §8.10.5 „Class: DataTransferReadSharedDataHandler“). Ihre Kernaufgabe besteht in der Abwicklung von Datentransfers für Datei- und Verzeichnisinhalte, die durch UDS-Anfragen wie RequestReadFile oder RequestReadDirectory angestoßen werden ([SWS_DM_01497]). Statt einzelner Kopierschritte für jeden Übertragungsblock ermöglicht dieser Handler der anwendungsspezifischen Implementierung, die gesamten Daten als zusammenhängenden, geteilten Speicherbereich bereitzustellen.

Im Systemgesamtablauf kooperieren drei Hauptakteure: Der externe UDS-Client sendet die Leseanfrage an das Steuergerät. Die Diagnose-Laufzeitumgebung AraDiag nimmt die Anfrage entgegen und leitet die Ausführung an die konkrete Implementierung von DataTransferReadSharedDataHandler weiter ([SWS_DM_01497], [SWS_DM_01504]). Ein dritter Partner, der ReleaseHandler, signalisiert der Anwendung, sobald die geteilten Speicherressourcen von der Plattform nicht mehr benötigt werden und freigegeben werden dürfen ([SWS_DM_01504]).

DataTransferContext UdsClient UDS-Client AraDiag AraDiag UdsClient->AraDiag UDS RequestReadFile / RequestReadDirectory AraDiag->UdsClient UDS-Antwortdaten Handler DataTransferReadSharedDataHandler AraDiag->Handler Read() / ExitRead() ReleaseHandler ReleaseHandler AraDiag->ReleaseHandler Freigabebenachrichtigung Handler->AraDiag Shared Data (Span) / Vector ReleaseHandler->Handler Speicherfreigabe signalisiert

Kontextdiagramm: Zusammenspiel zwischen UDS-Client, AraDiag-Laufzeitumgebung und der anwendungsseitigen Handler-Implementierung. Quellen: [SWS_DM_01497], [SWS_DM_01504], [SWS_DM_01505]

Lebenszyklus

Die Erzeugung des Handlers erfolgt über den parameterlosen Standardkonstruktor ([SWS_DM_01498], AUTOSAR_AP_SWS_Diagnostics §8.10.5.1.1.1 „Default Constructor“). Hinsichtlich der Besitzverhältnisse gilt das Einweg-Prinzip: Handler dürfen nicht kopiert werden, da eine Instanz exklusiv an eine einzelne Dateiübertragungssitzung gebunden ist ([SWS_DM_01501], [SWS_DM_01503]). Sowohl der Kopierkonstruktor (AUTOSAR_AP_SWS_Diagnostics §8.10.5.1.2.1 „DataTransferReadSharedDataHandler“) als auch der Kopierzuweisungsoperator sind daher als delete markiert. Ein Transfer von Instanzen ist über Verschiebeoperationen möglich: Verschiebekonstruktor ([SWS_DM_01500], AUTOSAR_AP_SWS_Diagnostics §8.10.5.1.1.2 „Move Constructor“) und Verschiebezuweisungsoperator ([SWS_DM_01502]) sind als default und noexcept deklariert.

Für die Zerstörung des Objekts besteht eine strikte Vorbedingung: Eine Instanz dieser Klasse darf keinesfalls zerstört werden, bevor die Transfersitzung durch den Aufruf von ExitRead() formal beendet wurde ([SWS_DM_01499], AUTOSAR_AP_SWS_Diagnostics §8.10.5.1.1.3 „Destructor“). Erst nach Vollzug dieser Abschlussbehandlung darf der virtuelle Destruktor ablaufen ([SWS_DM_01499]).

Bezüglich der Nebenläufigkeit sind die zentralen Methoden Read() und ExitRead() als nicht threadsicher (not thread-safe) ausgewiesen, während sämtliche Funktionen der Schnittstelle Ausnahmesicherheit (exception safe) garantieren ([SWS_DM_01498], [SWS_DM_01504], [SWS_DM_01505]).

Nutzungspfad

Die typische Aufrufabfolge eines Datentransfers mit geteilten Speicherbereichen umfasst mehrere Schritte:

  • Bereitstellung der Shared Data: AraDiag ruft die rein virtuelle Methode Read() auf und übergibt einen ReleaseHandler, MetaInfo sowie einen CancellationHandler ([SWS_DM_01504]). Die Anwendung alloziert den gesamten Datei- bzw. Verzeichnisinhalt und übergibt die geteilte Sicht darauf als ara::core::Span<ara::core::Byte> über ein ara::core::Future an AraDiag zurück ([SWS_DM_01504]).
  • Speichervorhaltung und Freigabe: Die Anwendung muss den alloziierten Speicher zwingend so lange intakt halten, bis der ReleaseHandler signalisiert, dass der Speicherbereich sicher freigegeben werden kann ([SWS_DM_01504]). Die Anwendung kann hierfür eine Notifier-Funktion am ReleaseHandler registrieren oder dessen Status aktiv abfragen ([SWS_DM_01504]). Interpretation: Die Signalisierung über den ReleaseHandler erfolgt vermutlich asynchron durch AraDiag, sobald die Datenblöcke erfolgreich an den UDS-Client übermittelt wurden. Frage Q-0fbc1c5e667c9a68 (offen)
  • Sitzungsabschluss: Zum Beenden der Übertragung ruft AraDiag die Methode ExitRead() auf ([SWS_DM_01505], AUTOSAR_AP_SWS_Diagnostics §8.10.5.1.3.1 „ExitRead“). Neben dem Beendigungsgrund (DataTransferExitType) werden fahrzeugherstellerspezifische Anforderungsparameter übergeben, deren Lebensdauer bis zur Erfüllung des Ergebnis-Promises garantiert ist ([SWS_DM_01505]). Die Anwendung liefert die Antwortdaten über ein ara::core::Future<ara::core::Vector<ara::core::Byte>> zurück ([SWS_DM_01505]).
  • Objektzerstörung: Nach erfolgreichem Aufruf von ExitRead() darf die Handler-Instanz freigegeben und zerstört werden ([SWS_DM_01499]).
Ablauf des lesenden Shared-Data-TransfersAraDiagDataTransferReadSharedDataHandlerReleaseHandlerRead(release_handler, meta_info, cancellation_handler)Speicher allozieren & Shared Data View erstellenFuture<Span<Byte>> mit Shared Data ViewUse Case: SpeicherfreigabeNotifier aufrufen oder Status setzenSpeicherfreigabe signalisiertAlloziierten Puffer freigebenUse Case: SitzungsabschlussExitRead(exit_type, param_record, meta_info, cancellation_handler)Future<Vector<Byte>> (OperationOutput)

Sequenzdiagramm: Schrittfolge von der Datenbereitstellung per Read() über die Speicherfreigabe bis zum Abschluss per ExitRead(). Quellen: [SWS_DM_01499], [SWS_DM_01504], [SWS_DM_01505]

Fehlerszenarien

Treten bei der Bereitstellung der Daten oder beim Beenden der Übertragung Fehler auf, werden diese über das jeweilige ara::core::Future mit einem ara::core::ErrorCode aus der Domäne DiagUdsNrcErrc gemäß ISO 14229-1 gemeldet ([SWS_DM_01504], [SWS_DM_01505]).

Ein weiteres Szenario stellt der Abbruch einer laufenden Diagnosekonversation dar. Beide Methoden erhalten einen CancellationHandler ([SWS_DM_01504], [SWS_DM_01505]). Die Anwendung kann über cancellation_handler.IsCanceled() den Abbruchstatus synchron prüfen oder über cancellation_handler.SetNotifier() eine Benachrichtigungsfunktion hinterlegen, um bei vorzeitigem Abbruch unverzüglich zu reagieren ([SWS_DM_01504], [SWS_DM_01505]).

Eine Verletzung der Vorbedingung bezüglich des Destruktors – wenn das Objekt zerstört wird, bevor ExitRead() aufgerufen wurde – widerspricht der Vorgabe [SWS_DM_01499] und führt zu fehlerhaften Programmzuständen.

Dieser Klassen-Leitfaden basiert auf der Spezifikation AUTOSAR Adaptive Platform Release R25-11.

Mitgliederkarte

Klassendiagramm

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

G nara__diag__DataTransferReadSharedDataHandler544 DataTransferReadSharedDataHandler + DataTransferReadSharedDataHandler() + ~DataTransferReadSharedDataHandler() + ExitRead() + Read() + operator=()

Detailansicht

Wähle in der Gliederung einen Eintrag aus.

Konstruktoren und Destruktor

Constructs an instance of this class.

Überladungen DataTransferReadSharedDataHandler 3
DataTransferReadSharedDataHandler () noexcept=default; SWS_DM_01498
DataTransferReadSharedDataHandler (DataTransferReadSharedDataHandler &&other) noexcept=default; SWS_DM_01500
DataTransferReadSharedDataHandler (DataTransferReadSharedDataHandler const &)=delete; SWS_DM_01501

Destructs an instance of this class. An instance of this class must not be destroyed before ExitRead() is called.

virtual ~DataTransferReadSharedDataHandler () noexcept=default;

Methoden

ExitRead function

Exits an ongoing data transfer session.

virtual auto ExitRead (DataTransferExitType exit_type, ara::core::Span< const ara::core::Byte > transfer_request_parameter_ record, MetaInfo const &meta_info, CancellationHandler cancellation_ handler) noexcept -> ara::core::Future< ara::core::Vector< ara::core::Byte > >=0;
Read function

Provides the whole data to be read out from the application in form of a shared data view. The whole file/directory info content to be sent back to the UDS client will be allocated by the application and its shared ownership (view over the memory location) is passed as a result to AraDiag. The allocated memory must be kept until the ReleaseHandler’s notifier is invoked or the status polled, signalling that the memory, addressed by the Span now can safely be released.

virtual auto Read (ReleaseHandler release_handler, MetaInfo const &meta_info, CancellationHandler cancellation_handler) noexcept -> ara::core::Future< ara::core::Span< ara::core::Byte > >=0;

Operatoren

operator= function 2

Move assigns an instance of this class.

Überladungen = 2
auto operator= (DataTransferReadSharedDataHandler &&other) & noexcept -> DataTransferReadSharedDataHandler & =default; SWS_DM_01502
auto operator= (DataTransferReadSharedDataHandler const &) -> Data TransferReadSharedDataHandler &=delete; SWS_DM_01503

Dokumentation der Methoden

function DataTransferReadSharedDataHandler [SWS_DM_01498] Upstream: RS_Diag_04135

DataTransferReadSharedDataHandler () noexcept=default;

Constructs an instance of this class.

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

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

Record
AUTOSAR/AP/record/SWS_DM_01498
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01498@rel:R25-11#9604c17f
Content hash
9604c17f
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01498
Status: valid/unmigrated Version: rel:R25-11#9b4d17d4 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_01498@rel:R25-11#9b4d17d4
Point-in-Time History:
Recorded Revisions (5):
  • R25-11rel:R25-11#9604c17f2026-09-30
  • R22-11rel:R22-11#484fb5092026-10-14
  • R23-11rel:R23-11#8a81d7d52026-10-14
  • R24-11rel:R24-11#b779c4dd2026-10-14
  • R25-11rel:R25-11#9b4d17d42026-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 DataTransferReadSharedDataHandler [SWS_DM_01500] Upstream: RS_Diag_04135

DataTransferReadSharedDataHandler (DataTransferReadSharedDataHandler &&other) noexcept=default;

Move constructs an instance of this class.

Header-Datei#include "ara/diag/data_transfer.h"
Scopeclass ara::diag::DataTransferReadSharedDataHandler
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_01500
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01500@rel:R25-11#e2f2ec4a
Content hash
e2f2ec4a
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01500
Status: valid/unmigrated Version: rel:R25-11#8e1ba0c2 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_01500@rel:R25-11#8e1ba0c2
Point-in-Time History:
Recorded Revisions (5):
  • R25-11rel:R25-11#e2f2ec4a2026-09-30
  • R22-11rel:R22-11#2549265b2026-10-14
  • R23-11rel:R23-11#4fc7fa8a2026-10-14
  • R24-11rel:R24-11#115062c32026-10-14
  • R25-11rel:R25-11#8e1ba0c22026-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 DataTransferReadSharedDataHandler [SWS_DM_01501] Upstream: RS_Diag_04135

DataTransferReadSharedDataHandler (DataTransferReadSharedDataHandler const &)=delete;

Handlers shall not be copy-able since only one way usage i.e. per single file transfer session.

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

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

Record
AUTOSAR/AP/record/SWS_DM_01501
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01501@rel:R25-11#d442aedb
Content hash
d442aedb
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01501
Status: valid/unmigrated Version: rel:R25-11#78df071e 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_01501@rel:R25-11#78df071e
Point-in-Time History:
Recorded Revisions (5):
  • R25-11rel:R25-11#d442aedb2026-09-30
  • R22-11rel:R22-11#231201f12026-10-14
  • R23-11rel:R23-11#6acf11902026-10-14
  • R24-11rel:R24-11#97f451652026-10-14
  • R25-11rel:R25-11#78df071e2026-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 ExitRead [SWS_DM_01505] Upstream: RS_Diag_04135

virtual auto ExitRead (DataTransferExitType exit_type, ara::core::Span< const ara::core::Byte > transfer_request_parameter_ record, MetaInfo const &meta_info, CancellationHandler cancellation_ handler) noexcept -> ara::core::Future< ara::core::Vector< ara::core::Byte > >=0;

Exits an ongoing data transfer session.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 8bcba929adb6 Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die Schnittstelle ExitRead der Klasse ara::diag::DataTransferReadSharedDataHandler ([SWS_DM_01505]; Header ara/diag/data_transfer.h) beendet eine laufende Datenübertragungssitzung.

Verwendung und Parameter

Der Aufruf erfolgt asynchron und liefert ein ara::core::Future<ara::core::Vector<ara::core::Byte>> zurück ([SWS_DM_01505]; AUTOSAR_AP_SWS_Diagnostics §8.10.5.1.3.1 „ExitRead“). Folgende Parameter werden übergeben:

  • exit_type (DataTransferExitType): Spezifiziert den Grund für das Beenden der Sitzung.
  • transfer_request_parameter_record (ara::core::Span<const ara::core::Byte>): Enthält herstellerspezifische Parameter zur Unterstützung des Transfers. Die Daten bleiben gültig, bis das zugehörige Promise erfüllt oder die Verarbeitung abgebrochen wird.
  • meta_info (MetaInfo const&): Beinhaltet zusätzliche Metainformationen der Diagnoseanfrage.
  • cancellation_handler (CancellationHandler): Erlaubt die Prüfung des Abbruchstatus mittels cancellation_handler.IsCanceled() sowie die Registrierung einer Benachrichtigungsfunktion über cancellation_handler.SetNotifier(), welche bei Abbruch der Konversation aufgerufen wird.

Fehlerbehandlung und Rückgabewerte

Bei erfolgreichem Abschluss stellt das Future die Ausgabedaten (transferResponseParameterRecord) bereit, welche in der positiven Antwort hinter der SID platziert werden [SWS_DM_01505]. Im Fehlerfall wird das Future mit einem Fehlercode aus DiagUdsNrcErrc (zutreffender NRC gemäß ISO 14229-1) erfüllt [SWS_DM_01505].

Nebenläufigkeit und Lebenszyklus

Die Methode ist als noexcept deklariert (exception safe), jedoch explizit als not thread-safe spezifiziert [SWS_DM_01505]. Bezüglich des Objektlebenszyklus gilt die Vorgabe, dass eine Instanz von DataTransferReadSharedDataHandler keinesfalls zerstört werden darf, bevor ExitRead() aufgerufen wurde ([SWS_DM_01499]). Analoge Beendigungsfunktionen und Destruktoranforderungen existieren für die verwandten Klassen DataTransferReadByPullHandler ([SWS_DM_01514]) und DataTransferReadByPushHandler ([SWS_DM_01523]).

Dieser Nutzungshinweis wurde von einer KI erstellt und basiert auf den Spezifikationen der AUTOSAR Adaptive Platform.

Implementer's Guide folgt (Komplexität I2)

Header-Datei#include "ara/diag/data_transfer.h"
Scopeclass ara::diag::DataTransferReadSharedDataHandler
Exception-Sicherheitexception safe
Thread-Sicherheitnot thread-safe

Parameter (in)

ParameterBeschreibung
exit_typeSpecifies the exit reason
transfer_request_This parameter record contains parameter(s), which are required
parameter_recordby the server to support the transfer of data. Format and length of this parameter(s) are vehicle manufacturer specific. Lifetime: Valid until Promise is fulfilled or the processing is cancelled by the cancellationHandler.
meta_infocontains additional meta information of the request.
cancellation_handlerThis parameter is used to • Query the current cancellation status by calling cancellation_ handler.IsCanceled(). Returns true in case, the current conversation has been cancelled and false otherwise. • Register a notifier function by calling cancellation_handler.Set Notifier(). The registered notifier is called if the current conversation is cancelled.

Rückgabewert

TypBeschreibung
ara::core::Future<ara::core::Vector<ara::core::Byte > >Returns a Future, which either gets readied to OperationOutput (transferResponseParameterRecord for a positive response message) or readied with ErrorCode from DiagUdsNrcErrc (for an negative response message). Data in OperationOutput.response_data will be placed after SID as transferResponseParameterRecord in the positive response.

Fehler

FehlercodeBeschreibung
Please use an applicable NRC, as defined in ISO 14229-1, using DiagUdsNrcErrc.

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

Record
AUTOSAR/AP/record/SWS_DM_01505
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01505@rel:R25-11#620bca3b
Content hash
620bca3b
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01505
Status: valid/unmigrated Version: rel:R25-11#e1792911 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_01505@rel:R25-11#e1792911
Point-in-Time History:
Recorded Revisions (5):
  • R25-11rel:R25-11#620bca3b2026-09-30
  • R22-11rel:R22-11#6fa010712026-10-14
  • R23-11rel:R23-11#aed9f17a2026-10-14
  • R24-11rel:R24-11#70ebc8d42026-10-14
  • R25-11rel:R25-11#e17929112026-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 Read [SWS_DM_01504] Upstream: RS_Diag_04135

virtual auto Read (ReleaseHandler release_handler, MetaInfo const &meta_info, CancellationHandler cancellation_handler) noexcept -> ara::core::Future< ara::core::Span< ara::core::Byte > >=0;

Provides the whole data to be read out from the application in form of a shared data view. The whole file/directory info content to be sent back to the UDS client will be allocated by the application and its shared ownership (view over the memory location) is passed as a result to AraDiag. The allocated memory must be kept until the ReleaseHandler’s notifier is invoked or the status polled, signalling that the memory, addressed by the Span now can safely be released.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: cba844c9db1e Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die Methode Read der Schnittstelle ara::diag::DataTransferReadSharedDataHandler stellt auszulesende Datei- oder Verzeichnisdaten für den UDS-Client über eine geteilte Speicheransicht ([SWS_DM_01504]) bereit. Der Aufruf erfolgt asynchron und liefert ein ara::core::Future mit einem ara::core::Span<ara::core::Byte> zurück ([SWS_DM_01504]).

Verwendung und Lebenszyklus

Die implementierende Anwendung allokiert den gesamten Inhalt selbst und übergibt die Sicht an AraDiag. Der zugrunde liegende Speicherbereich muss zwingend so lange unverändert vorgehalten werden, bis die Freigabe über den übergebenen ReleaseHandler durch dessen Notifier signalisiert oder per Statusprüfung abgefragt wurde ([SWS_DM_01504]). Der ReleaseHandler ist für denselben UDS-Client anhand der MetaInfo zu speichern ([SWS_DM_01504]). Über den CancellationHandler kann ein laufender Transfer via IsCanceled() überwacht oder ein Abbruch-Notifier per SetNotifier() registriert werden ([SWS_DM_01504]).

Fehlerbehandlung und Nebenläufigkeit

Im Erfolgsfall werden die Daten als transferResponseParameterRecord nach dem blockSequenceCounter gesendet ([SWS_DM_01504]). Schlägt das Auslesen fehl, ist das Future mit einem passenden Fehlercode aus DiagUdsNrcErrc gemäß ISO 14229-1 zu komplettieren ([SWS_DM_01504]). Wurde die Schnittstelle der Anwendung noch nicht oder nicht mehr per offer() bereitgestellt, meldet der Server NRC 0x94 (ResourceTemporarilyNotAvailable) ([SWS_DM_01257]). Die Funktion ist als noexcept und ausnahmesicher spezifiziert, gilt jedoch als nicht threadsicher (not thread-safe) ([SWS_DM_01504]).

Abgrenzung

Im Gegensatz zu DataTransferReadByPullHandler::Read, bei dem Datenblöcke in einen vorgegebenen Puffer kopiert werden ([SWS_DM_01513]), oder DataTransferReadByPushHandler::Read, das Vektoren per Eigentumsübergabe liefert ([SWS_DM_01522]), überträgt dieser Handler den Gesamtinhalt ohne Pufferkopie über geteilten Speicher ([SWS_DM_01504]).

Dieser Nutzungshinweis wurde automatisiert auf Basis des AUTOSAR-Standards generiert.

Implementer's Guide folgt (Komplexität I1)

Header-Datei#include "ara/diag/data_transfer.h"
Scopeclass ara::diag::DataTransferReadSharedDataHandler
Exception-Sicherheitexception safe
Thread-Sicherheitnot thread-safe

Parameter (in)

ParameterBeschreibung
release_handlerThe release shared resource handler to be stored and used by the application until a new one is passed for the same meta_info (UDS client).
meta_infoContains additional meta information.
cancellation_handlerThis parameter is used to • Query the current cancellation status by calling cancellation_ handler.IsCanceled(). Returns true in case, the current conversation has been cancelled and false otherwise. • Register a notifier function by calling cancellation_handler.Set Notifier(). The registered notifier is called if the current conversation is cancelled.

Rückgabewert

TypBeschreibung
ara::core::Future<ara::core::Span<ara::core::Byte > >Returns a Future, which either gets readied to ReadSharedOutput (transferResponseParameterRecord for a positive response message) or readied with ErrorCode from DiagUdsNrcErrc (for an negative response message). Data in ReleaseSharedHandler.responseData will be placed after the blockSequenceCounter as transferResponseParameterRecord in the positive response.

Fehler

FehlercodeBeschreibung
Please use an applicable NRC, as defined in ISO 14229-1, using DiagUdsNrcErrc.

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

Record
AUTOSAR/AP/record/SWS_DM_01504
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01504@rel:R25-11#c2d85673
Content hash
c2d85673
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01504
Status: valid/unmigrated Version: rel:R25-11#70152a76 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_01504@rel:R25-11#70152a76
Point-in-Time History:
Recorded Revisions (5):
  • R25-11rel:R25-11#c2d856732026-09-30
  • R22-11rel:R22-11#2ac3f98c2026-10-14
  • R23-11rel:R23-11#a77ff00a2026-10-14
  • R24-11rel:R24-11#cb8092b92026-10-14
  • R25-11rel:R25-11#70152a762026-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_01502] Upstream: RS_Diag_04135

auto operator= (DataTransferReadSharedDataHandler &&other) & noexcept -> DataTransferReadSharedDataHandler & =default;

Move assigns an instance of this class.

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

Parameter (out)

ParameterBeschreibung
otherThe other object

Rückgabewert

TypBeschreibung
DataTransferReadSharedDataHandlerReference to self

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

Record
AUTOSAR/AP/record/SWS_DM_01502
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01502@rel:R25-11#1624a504
Content hash
1624a504
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01502
Status: valid/unmigrated Version: rel:R25-11#832e8a63 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_01502@rel:R25-11#832e8a63
Point-in-Time History:
Recorded Revisions (5):
  • R25-11rel:R25-11#1624a5042026-09-30
  • R22-11rel:R22-11#e14988b02026-10-14
  • R23-11rel:R23-11#50b572f72026-10-14
  • R24-11rel:R24-11#267467a32026-10-14
  • R25-11rel:R25-11#832e8a632026-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_01503] Upstream: RS_Diag_04135

auto operator= (DataTransferReadSharedDataHandler const &) -> Data TransferReadSharedDataHandler &=delete;

Handlers shall not be copy-able since only one way usage i.e. per single file transfer session.

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

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

Record
AUTOSAR/AP/record/SWS_DM_01503
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01503@rel:R25-11#12b3008f
Content hash
12b3008f
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01503
Status: valid/unmigrated Version: rel:R25-11#b992cd12 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_01503@rel:R25-11#b992cd12
Point-in-Time History:
Recorded Revisions (5):
  • R25-11rel:R25-11#12b3008f2026-09-30
  • R22-11rel:R22-11#82fbd70f2026-10-14
  • R23-11rel:R23-11#c35f38a12026-10-14
  • R24-11rel:R24-11#15d3796f2026-10-14
  • R25-11rel:R25-11#b992cd122026-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 ~DataTransferReadSharedDataHandler [SWS_DM_01499] Upstream: RS_Diag_04135

virtual ~DataTransferReadSharedDataHandler () noexcept=default;

Destructs an instance of this class. An instance of this class must not be destroyed before ExitRead() is called.

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

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

Record
AUTOSAR/AP/record/SWS_DM_01499
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01499@rel:R25-11#9cd521aa
Content hash
9cd521aa
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01499
Status: valid/unmigrated Version: rel:R25-11#885ef68d 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_01499@rel:R25-11#885ef68d
Point-in-Time History:
Recorded Revisions (5):
  • R25-11rel:R25-11#9cd521aa2026-09-30
  • R22-11rel:R22-11#8b4091042026-10-14
  • R23-11rel:R23-11#404559c12026-10-14
  • R24-11rel:R24-11#e200ae122026-10-14
  • R25-11rel:R25-11#885ef68d2026-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