DEENESPTFRRUARHIKOZHNL

classe 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

Guide utilisateurGÉNÉRÉ PAR IA

Encapsule les transferts de lecture assistés par le diagnostic actifs et relaie les transferts de données entrants vers les gestionnaires enregistrés.
GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 9db606b147f6 Provenance Questions ouvertes (2)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

Encapsule les transferts de lecture assistés par le diagnostic actifs et relaie les transferts de données entrants vers les gestionnaires enregistrés.

La classe sert à encapsuler et à gérer de manière structurée toutes les variantes de transferts de lecture basés sur le diagnostic au sein du module de diagnostic adaptatif AUTOSAR conformément à [SWS_DM_01548]. Après le lancement réussi d'une opération de lecture, l'instance du serveur de diagnostic délègue les requêtes entrantes pour le transfert séquentiel de blocs de données ainsi que pour la clôture de session aux méthodes enregistrées du gestionnaire de lecture [SWS_DM_01317]. En désactivant délibérément les opérations de copie tout en prenant en charge la sémantique de déplacement, la classe garantit ainsi une attribution univoque de la propriété de la session de transfert sous-jacente.

Contexte

La classe ara::diag::DataTransferReadSession représente l'encapsulation de toutes les variantes pour la lecture de blocs de données assistée par le diagnostic dans le module de diagnostic adaptatif [SWS_DM_01548]. Dans le cadre de services UDS standardisés tels que RequestFileTransfer (0x38), TransferData (0x36) et RequestTransferExit (0x37), la classe de session sert de lien entre l'environnement d'exécution interne du serveur de diagnostic et les gestionnaires de lecture spécifiques à l'application SWS Diagnostics §7 « Realization of TransferData and RequestTransferExit ». Elle garantit que les opérations d'extraction en cours – par exemple pour des fichiers via ReadFile [SWS_DM_01314] ou des répertoires via ReadDir [SWS_DM_01315] – soient gérées de manière isolée et relayées vers les gestionnaires correspondants.

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()

Diagramme de contexte : intégration de DataTransferReadSession entre le serveur de diagnostic et le gestionnaire applicatif. Sources : [SWS_DM_01317], [SWS_DM_01318], SWS Diagnostics §7 « Realization of TransferData and RequestTransferExit »

Cycle de vie

Une instance de ara::diag::DataTransferReadSession possède une durée de vie strictement liée à la session de transfert. La création via un constructeur par défaut est explicitement interdite [SWS_DM_01549]. À la place, la session est initialisée via des constructeurs modèles spécialisés qui enregistrent les gestionnaires spécifiques à l'application SWS Diagnostics §7 « Realization of TransferData and RequestTransferExit ». En pratique, l'instanciation devrait généralement être effectuée par le serveur de diagnostic ou le gestionnaire de service lors de l'initiation du transfert de fichiers. Question Q-b0706bcd28c702c6 (ouverte)

Afin d'exclure les affectations multiples ou les états de session incohérents, ara::diag::DataTransferReadSession est conçue comme une instance unique non copiable : le constructeur de copie [SWS_DM_01553] ainsi que l'opérateur d'assignation par copie [SWS_DM_01554] sont supprimés (=delete). Un transfert de propriété est exclusivement prévu par sémantique de déplacement. Le constructeur de déplacement [SWS_DM_01551] et l'opérateur d'assignation par déplacement [SWS_DM_01552] sont définis comme noexcept=default. La destruction s'effectue de manière déterministe via le destructeur [SWS_DM_01550], qui est également déclaré comme noexcept=default. Vraisemblablement, la clôture du transfert via RequestTransferExit entraîne la libération de l'objet. Question Q-c1999fd1f283a007 (ouverte)

Parcours d'utilisation

Le déroulement typique d'une session de transfert en lecture se divise en trois phases successives :

  • Initialisation : un client de diagnostic externe envoie RequestFileTransfer avec un mode de lecture tel que ReadFile (0x04) [SWS_DM_01314] ou ReadDir (0x05) [SWS_DM_01315]. L'instance de session est alors créée et le gestionnaire de lecture est enregistré.
  • Transfert de données : le serveur de diagnostic traite les requêtes de diagnostic entrantes du type TransferData (0x36) en appelant la méthode Read correspondante du gestionnaire enregistré via les constructeurs modèles [SWS_DM_01317]. Cela s'effectue de manière itérative pour chaque bloc de données demandé.
  • Clôture : dès que toutes les données ont été transférées, le client envoie RequestTransferExit (0x37). Le serveur de diagnostic appelle ensuite la méthode Exit du gestionnaire enregistré afin de terminer l'opération de lecture de manière conforme [SWS_DM_01318].
Déroulement d'un transfert de lecture basé sur fichierClient de diagnosticDiagnostic ServerDataTransferReadSessionRequestFileTransfer (0x38)ReadFile / ReadDirInitialisierung viaTemplate-KonstruktorPositiv-Response (0x78)loopTant que des blocs de données sont transférésTransferData (0x36)Read()Gelesene BlockdatenTransferData Positiv-ResponseRequestTransferExit (0x37)Exit()Confirmation de finalisationRequestTransferExit Response

Diagramme de séquence : séquence d'appels d'un transfert de lecture UDS avec transmission à la session enregistrée. Sources : [SWS_DM_01314], [SWS_DM_01315], [SWS_DM_01317], [SWS_DM_01318]

Scénarios d'erreur

Puisque ara::diag::DataTransferReadSession est déclarée comme final et que le constructeur par défaut [SWS_DM_01549] n'existe pas, une création erronée sans gestionnaire enregistré est évitée dès la compilation. De même, les opérations de copie supprimées [SWS_DM_01553] empêchent la duplication accidentelle des états de session. Tant la construction par déplacement que l'assignation par déplacement et la destruction garantissent une sécurité absolue vis-à-vis des exceptions grâce à leur spécification noexcept [SWS_DM_01551] [SWS_DM_01550]. Si la mise à disposition de blocs de données dans le gestionnaire échoue, cela est traité au niveau du protocole dans le cadre de la communication UDS.

Ce guide repose sur la spécification AUTOSAR Adaptive Platform R25-11 (module diag) et récapitule les exigences relatives à ara::diag::DataTransferReadSession.

Carte des membres

Opérateurs

1

Diagramme de classes

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

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

Vue détaillée

Sélectionnez une entrée dans le plan.

Constructeurs et destructeur

No default construction allowed.

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

Opérateurs

operator= fonction 2

Move assigns an instance of this class.

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

Documentation des méthodes

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

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

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

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

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

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