DEENESPTFRRUARHIKOZHNL

classe 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

Guide utilisateurGÉNÉRÉ PAR IA

Permet la lecture de fichiers complets ou de répertoires via des zones de mémoire partagée lors de requêtes de diagnostic.
GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 4c654c39d186 Provenance Questions ouvertes (1)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

Permet la lecture de fichiers complets ou de répertoires via des zones de mémoire partagée lors de requêtes de diagnostic.

La classe ara::diag::DataTransferReadSharedDataHandler sert au traitement des transferts de données de diagnostic en lecture pour des contenus de fichiers et de répertoires via la mémoire partagée ([SWS_DM_01497]). Après le démarrage de la session, l'implémentation applicative met l'ensemble des données à disposition sous la forme d'une vue de données partagées (Shared Data View) via Read() et maintient le tampon alloué jusqu'à la notification de libération par le ReleaseHandler ([SWS_DM_01504]). Avant la destruction de l'objet propre au handler, la session de transfert doit obligatoirement être close via ExitRead(). L'objet est exclusivement destiné à une seule session de transfert et peut donc être déplacé, mais non copié.

Contexte

La classe ara::diag::DataTransferReadSharedDataHandler appartient au domaine du diagnostic d'AUTOSAR Adaptive Platform dans le module diag (AUTOSAR_AP_SWS_Diagnostics §8.10.5 « Class: DataTransferReadSharedDataHandler »). Sa tâche principale consiste en l'exécution de transferts de données pour des contenus de fichiers et de répertoires déclenchés par des requêtes UDS telles que RequestReadFile ou RequestReadDirectory ([SWS_DM_01497]). Au lieu d'étapes de copie distinctes pour chaque bloc de transfert, ce handler permet à l'implémentation spécifique de l'application de fournir l'ensemble des données sous la forme d'une zone de mémoire partagée contiguë.

Dans le déroulement global du système, trois acteurs principaux coopèrent : le client UDS externe envoie la requête de lecture au calculateur. L'environnement d'exécution de diagnostic AraDiag reçoit la requête et transmet l'exécution à l'implémentation concrète de DataTransferReadSharedDataHandler ([SWS_DM_01497], [SWS_DM_01504]). Un troisième partenaire, le ReleaseHandler, signale à l'application dès que les ressources de mémoire partagée ne sont plus requises par la plateforme et peuvent être libérées ([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

Diagramme de contexte : interaction entre le client UDS, l'environnement d'exécution AraDiag et l'implémentation du handler côté application. Sources : [SWS_DM_01497], [SWS_DM_01504], [SWS_DM_01505]

Cycle de vie

La création du handler s'effectue via le constructeur par défaut sans paramètre ([SWS_DM_01498], AUTOSAR_AP_SWS_Diagnostics §8.10.5.1.1.1 « Default Constructor »). En ce qui concerne les relations de propriété, le principe d'usage unique s'applique : les handlers ne doivent pas être copiés, car une instance est liée exclusivement à une unique session de transfert de fichiers ([SWS_DM_01501], [SWS_DM_01503]). Le constructeur de copie (AUTOSAR_AP_SWS_Diagnostics §8.10.5.1.2.1 « DataTransferReadSharedDataHandler ») tout comme l'opérateur d'assignation par copie sont donc marqués comme delete. Un transfert d'instances est possible via des opérations de déplacement : le constructeur de déplacement ([SWS_DM_01500], AUTOSAR_AP_SWS_Diagnostics §8.10.5.1.1.2 « Move Constructor ») et l'opérateur d'assignation par déplacement ([SWS_DM_01502]) sont déclarés comme default et noexcept.

Il existe une précondition stricte pour la destruction de l'objet : une instance de cette classe ne doit en aucun cas être détruite avant que la session de transfert n'ait été formellement terminée par l'appel de ExitRead() ([SWS_DM_01499], AUTOSAR_AP_SWS_Diagnostics §8.10.5.1.1.3 « Destructor »). Ce n'est qu'après l'accomplissement de ce traitement de clôture que le destructeur virtuel a le droit de s'exécuter ([SWS_DM_01499]).

En matière de concurrence, les méthodes centrales Read() et ExitRead() sont désignées comme non thread-safe (not thread-safe), tandis que l'ensemble des fonctions de l'interface garantissent la sécurité vis-à-vis des exceptions (exception safe) ([SWS_DM_01498], [SWS_DM_01504], [SWS_DM_01505]).

Parcours d'utilisation

La séquence d'appels typique d'un transfert de données avec des zones de mémoire partagée comprend plusieurs étapes :

  • Mise à disposition des données partagées (Shared Data) : AraDiag appelle la méthode purement virtuelle Read() et transmet un ReleaseHandler, MetaInfo ainsi qu'un CancellationHandler ([SWS_DM_01504]). L'application alloue l'intégralité du contenu du fichier ou du répertoire et renvoie la vue partagée correspondante en tant que ara::core::Span<ara::core::Byte> via un ara::core::Future à AraDiag ([SWS_DM_01504]).
  • Maintien en mémoire et libération : l'application doit impérativement conserver la mémoire allouée intacte jusqu'à ce que le ReleaseHandler signale que la zone de mémoire peut être libérée en toute sécurité ([SWS_DM_01504]). Pour ce faire, l'application peut enregistrer une fonction de notification (notifier) auprès du ReleaseHandler ou interroger activement son état ([SWS_DM_01504]). Interprétation : la signalisation via le ReleaseHandler intervient vraisemblablement de façon asynchrone par AraDiag dès que les blocs de données ont été transmis avec succès au client UDS. Question Q-0fbc1c5e667c9a68 (ouverte)
  • Clôture de session : pour terminer le transfert, AraDiag appelle la méthode ExitRead() ([SWS_DM_01505], AUTOSAR_AP_SWS_Diagnostics §8.10.5.1.3.1 « ExitRead »). Outre le motif de fin (DataTransferExitType), des paramètres de requête spécifiques au constructeur du véhicule sont transmis, leur durée de vie étant garantie jusqu'à la résolution de la promesse de résultat ([SWS_DM_01505]). L'application renvoie les données de réponse via un ara::core::Future<ara::core::Vector<ara::core::Byte>> ([SWS_DM_01505]).
  • Destruction de l'objet : après l'appel réussi de ExitRead(), l'instance de handler peut être libérée et détruite ([SWS_DM_01499]).
Déroulement du transfert en lecture de données partagéesAraDiagDataTransferReadSharedDataHandlerReleaseHandlerRead(release_handler, meta_info, cancellation_handler)Speicher allozieren & Shared Data View erstellenFuture<Span<Byte>> avec vue de données partagéesUse Case: SpeicherfreigabeAppeler le notificateur ou définir l'étatSpeicherfreigabe signalisiertAlloziierten Puffer freigebenUse Case: SitzungsabschlussExitRead(exit_type, param_record, meta_info, cancellation_handler)Future<Vector<Byte>> (OperationOutput)

Diagramme de séquence : séquence des étapes, de la mise à disposition des données via Read() en passant par la libération de la mémoire jusqu'à la clôture via ExitRead(). Sources : [SWS_DM_01499], [SWS_DM_01504], [SWS_DM_01505]

Scénarios d'erreur

Si des erreurs se produisent lors de la mise à disposition des données ou lors de la fin du transfert, elles sont signalées via le ara::core::Future respectif avec un ara::core::ErrorCode issu du domaine DiagUdsNrcErrc conformément à l'ISO 14229-1 ([SWS_DM_01504], [SWS_DM_01505]).

L'interruption d'une conversation de diagnostic en cours constitue un autre scénario. Les deux méthodes reçoivent un CancellationHandler ([SWS_DM_01504], [SWS_DM_01505]). L'application peut vérifier de manière synchrone l'état d'annulation via cancellation_handler.IsCanceled() ou définir une fonction de notification via cancellation_handler.SetNotifier() afin de réagir immédiatement en cas d'interruption prématurée ([SWS_DM_01504], [SWS_DM_01505]).

Une violation de la précondition relative au destructeur – si l'objet est détruit avant que ExitRead() n'ait été appelé – contredit l'exigence [SWS_DM_01499] et conduit à des états de programme défectueux.

Ce guide de classe est basé sur la spécification AUTOSAR Adaptive Platform Release R25-11.

Carte des membres

Diagramme de classes

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

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

Vue détaillée

Sélectionnez une entrée dans le plan.

Constructeurs et destructeur

Constructs an instance of this class.

Surcharges 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;

Méthodes

ExitRead fonction

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 fonction

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;

Opérateurs

operator= fonction 2

Move assigns an instance of this class.

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

Documentation des méthodes

fonction 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#34ced993
Content hash
34ced993
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

fonction 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#f80b15c8
Content hash
f80b15c8
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

fonction 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#92392953
Content hash
92392953
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

fonction 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.

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 8bcba929adb6 Provenance
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

L'interface ExitRead de la classe ara::diag::DataTransferReadSharedDataHandler ([SWS_DM_01505] ; en-tête ara/diag/data_transfer.h) met fin à une session de transfert de données en cours.

Utilisation et paramètres

L'appel s'effectue de manière asynchrone et renvoie un ara::core::Future<ara::core::Vector<ara::core::Byte>> ([SWS_DM_01505] ; AUTOSAR_AP_SWS_Diagnostics §8.10.5.1.3.1 « ExitRead »). Les paramètres suivants sont transmis :

  • exit_type (DataTransferExitType) : spécifie le motif de l'interruption de la session.
  • transfer_request_parameter_record (ara::core::Span<const ara::core::Byte>) : contient des paramètres spécifiques au constructeur pour assister le transfert. Les données restent valides jusqu'à ce que la promise associée soit satisfaite ou que le traitement soit interrompu.
  • meta_info (MetaInfo const&) : contient des métadonnées supplémentaires de la requête de diagnostic.
  • cancellation_handler (CancellationHandler) : permet la vérification de l'état d'annulation au moyen de cancellation_handler.IsCanceled() ainsi que l'enregistrement d'une fonction de notification via cancellation_handler.SetNotifier(), qui est appelée en cas d'annulation de la conversation.

Gestion des erreurs et valeurs de retour

En cas de conclusion avec succès, le Future fournit les données de sortie (transferResponseParameterRecord), lesquelles sont placées derrière le SID dans la réponse positive [SWS_DM_01505]. En cas d'erreur, le Future est satisfait avec un code d'erreur issu de DiagUdsNrcErrc (NRC applicable selon l'ISO 14229-1) [SWS_DM_01505].

Concurrence et cycle de vie

La méthode est déclarée comme noexcept (exception safe), mais explicitement spécifiée comme not thread-safe [SWS_DM_01505]. Concernant le cycle de vie de l'objet, la règle stipule qu'une instance de DataTransferReadSharedDataHandler ne doit en aucun cas être détruite avant que ExitRead() n'ait été appelée ([SWS_DM_01499]). Des fonctions de terminaison et des exigences de destructeur analogues existent pour les classes apparentées DataTransferReadByPullHandler ([SWS_DM_01514]) et DataTransferReadByPushHandler ([SWS_DM_01523]).

Cette note d'utilisation a été rédigée par une IA et se fonde sur les spécifications de l'AUTOSAR Adaptive Platform.

Guide de l'implémenteur à venir (complexité 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#0188e8f1
Content hash
0188e8f1
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

fonction 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.

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : cba844c9db1e Provenance
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

La méthode Read de l'interface ara::diag::DataTransferReadSharedDataHandler met à disposition du client UDS des données de fichier ou de répertoire à lire via une vue de mémoire partagée ([SWS_DM_01504]). L'appel s'effectue de manière asynchrone et renvoie un ara::core::Future avec un ara::core::Span<ara::core::Byte> ([SWS_DM_01504]).

Utilisation et cycle de vie

L'application d'implémentation alloue elle-même la totalité du contenu et transmet la vue à AraDiag. La zone mémoire sous-jacente doit obligatoirement être conservée inchangée jusqu'à ce que la libération via le ReleaseHandler transmis ait été signalée par son notificateur ou interrogée par contrôle d'état ([SWS_DM_01504]). Le ReleaseHandler doit être enregistré pour le même client UDS à l'aide du MetaInfo ([SWS_DM_01504]). Via le CancellationHandler, un transfert en cours peut être surveillé par IsCanceled() ou un notificateur d'interruption peut être enregistré par SetNotifier() ([SWS_DM_01504]).

Gestion des erreurs et concurrence

En cas de succès, les données sont envoyées sous forme de transferResponseParameterRecord après le blockSequenceCounter ([SWS_DM_01504]). Si la lecture échoue, le Future doit être complété avec un code d'erreur approprié issu de DiagUdsNrcErrc conformément à l'ISO 14229-1 ([SWS_DM_01504]). Si l'interface de l'application n'a pas encore été mise à disposition ou ne l'est plus via offer(), le serveur signale le NRC 0x94 (ResourceTemporarilyNotAvailable) ([SWS_DM_01257]). La fonction est spécifiée comme noexcept et sûre vis-à-vis des exceptions, mais elle est considérée comme non sûre pour les threads (not thread-safe) ([SWS_DM_01504]).

Délimitation

Contrairement à DataTransferReadByPullHandler::Read, où des blocs de données sont copiés dans un tampon prédéfini ([SWS_DM_01513]), ou à DataTransferReadByPushHandler::Read, qui fournit des vecteurs par transfert de propriété ([SWS_DM_01522]), ce gestionnaire transmet l'intégralité du contenu sans copie de tampon via de la mémoire partagée ([SWS_DM_01504]).

Cette note d'utilisation a été générée automatiquement sur la base du standard AUTOSAR.

Guide de l'implémenteur à venir (complexité 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#65f8b789
Content hash
65f8b789
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

fonction 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#8faa4732
Content hash
8faa4732
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

fonction 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#b43bc8bb
Content hash
b43bc8bb
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

fonction ~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#f9a57a87
Content hash
f9a57a87
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