DEENESPTFRRUARHIKOZHNL

classe 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

Guide utilisateurGÉNÉRÉ PAR IA

Encapsule les transferts de données de diagnostic en écriture et coordonne le déroulement via des gestionnaires d'écriture.
GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 6f5de6951762 Provenance Questions ouvertes (2)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

Encapsule les transferts de données de diagnostic en écriture et coordonne le déroulement via des gestionnaires d'écriture.

La classe ara::diag::DataTransferWriteSession encapsule les transferts de données de diagnostic en écriture et coordonne l'acheminement vers des gestionnaires d'écriture spécifiques à l'application ([SWS_DM_01555]). Lors de services UDS entrants tels que TransferData (0x36) ou RequestTransferExit (0x37), l'instance du serveur de diagnostic appelle les méthodes Write ou Exit correspondantes des gestionnaires enregistrés ([SWS_DM_01317]). La construction par défaut et la construction par copie étant supprimées, la session existe sous forme d'instance unique sûre face aux exceptions, dont la création s'effectue probablement via des constructeurs modèles. Question (ouverte)

Contexte

La classe ara::diag::DataTransferWriteSession encapsule toutes les variantes de transferts de données en écriture au sein du domaine fonctionnel Adaptive Platform Diagnostics ([SWS_DM_01555]). Elle fait office d'élément de liaison entre l'instance du serveur de diagnostic de la plateforme et les implémentations spécifiques à l'application qui effectuent le transfert en écriture effectif.

Dans le cadre de services de diagnostic tels que RequestFileTransfer (par exemple pour le mode opératoire ReplaceFile (0x03) selon [SWS_DM_01313]), l'instance du serveur de diagnostic reçoit les demandes de transfert. Si, par la suite, des requêtes de diagnostic du service UDS TransferData (0x36) arrivent, le serveur les délègue à la méthode Write de la classe de gestionnaire liée à la DataTransferWriteSession respective ([SWS_DM_01317]). Après le transfert de tous les blocs de données, le service RequestTransferExit (0x37) signale l'achèvement, à la suite de quoi l'instance du serveur de diagnostic appelle la méthode Exit du gestionnaire enregistré ([SWS_DM_01318]).

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

Diagramme de contexte : interaction entre le serveur de diagnostic, DataTransferWriteSession et la classe de gestionnaire spécifique à l'application. Sources : [SWS_DM_01555], [SWS_DM_01317], [SWS_DM_01318].

Cycle de vie

Le cycle de vie d'une DataTransferWriteSession est soumis aux exigences du fichier d'en-tête ara/diag/data_transfer.h ([SWS_DM_01339]). La construction par défaut est explicitement supprimée (DataTransferWriteSession() = delete, [SWS_DM_01339]). Une instanciation s'effectue donc probablement via des constructeurs modèles au moyen desquels des classes de gestionnaires spécifiques sont liées à l'objet session (AUTOSAR_AP_SWS_Diagnostics §8.10 « Context of RequestFileTransfer »). Question Q-4575aa1e5d0889b3 (ouverte)

Pour imposer une propriété exclusive, DataTransferWriteSession n'est ni copiable ni assignable par copie : le constructeur de copie ([SWS_DM_01559]) ainsi que l'opérateur d'assignation par copie ([SWS_DM_01560]) sont tous deux déclarés comme delete. Les instances existent donc en tant qu'exemplaires uniques exclusifs.

En revanche, la classe prend en charge une sémantique de déplacement complète : le constructeur de déplacement ([SWS_DM_01557]) et l'opérateur d'assignation par déplacement ([SWS_DM_01558]) sont déclarés comme implémentation par défaut et spécifiés comme noexcept ainsi que sûrs face aux exceptions (« exception safe »). Ils permettent le transfert efficace de l'état de session entre contextes de programme. La destruction s'effectue via le destructeur par défaut sûr face aux exceptions (~DataTransferWriteSession() noexcept = default, [SWS_DM_01556]). En ce qui concerne la concurrence, l'utilisation devrait s'effectuer principalement de manière séquentielle au sein du thread de serveur exécutant, car aucun mécanisme de synchronisation pour les accès concurrents n'est documenté. Question Q-2c2278884fa11b21 (ouverte)

Parcours d'utilisation

Le déroulement régulier d'un transfert en écriture s'effectue selon les étapes suivantes :

  1. Initialisation : à la réception d'une demande d'écriture (par exemple RequestFileTransfer avec kReplace selon [SWS_DM_01313]), une DataTransferWriteSession est établie. Le gestionnaire spécifique à l'application pour les opérations d'écriture est alors enregistré via des constructeurs modèles (AUTOSAR_AP_SWS_Diagnostics §8.10 « Context of RequestFileTransfer »).
  2. Transfert de blocs de données : pour chaque requête entrante du service UDS TransferData (0x36), l'instance du serveur de diagnostic appelle la méthode Write de la classe de gestionnaire enregistrée ([SWS_DM_01317]). Cette étape est répétée cycliquement pour tous les blocs du transfert.
  3. Clôture de la session : une fois le transfert entièrement terminé, le serveur de diagnostic reçoit RequestTransferExit (0x37) et appelle ensuite la méthode Exit de la classe de gestionnaire ([SWS_DM_01318]).
  4. Nettoyage : après un achèvement réussi ou en cas d'interruption prématurée, l'objet session est détruit ([SWS_DM_01556]).
Déroulement d'un transfert de données en écritureDiagnoseserverDataTransferWriteSessionHandler-KlasseErzeugung / RegistrierungloopTransferData (0x36)Write() [SWS_DM_01317]Statut / ConfirmationExit() lors de RequestTransferExit (0x37) [SWS_DM_01318]Confirmation d'ExitDestruction (~DataTransferWriteSession) [SWS_DM_01556]

Diagramme de séquence : déroulement typique d'un transfert de données en écriture via les instances impliquées. Sources : [SWS_DM_01317], [SWS_DM_01318], [SWS_DM_01556].

Scénarios d'erreur

Le traitement des erreurs et la fiabilité reposent pour ara::diag::DataTransferWriteSession de manière déterminante sur la sécurité statique des types et la sécurité face aux exceptions :

  • Prévention des états d'objet non valides : la suppression du constructeur par défaut ([SWS_DM_01339]) empêche que des objets session non initialisés puissent exister sans gestionnaire lié. L'interdiction des opérations de copie ([SWS_DM_01559], [SWS_DM_01560]) exclut dès la compilation les états incohérents dus à des relations de possession multiples.
  • Sécurité face aux exceptions lors du déplacement et de la destruction : la déclaration du constructeur de déplacement ([SWS_DM_01557]), de l'assignation par déplacement ([SWS_DM_01558]) et du destructeur ([SWS_DM_01556]) en tant que noexcept garantit qu'aucune exception n'est levée lors des transferts de ressources et lors de la libération de la session au moment de l'exécution.
  • Interruption prématurée : si un transfert échoue prématurément, le destructeur noexcept garantit que l'objet session peut être nettoyé de manière fiable, y compris dans le cadre du déroulement d'exception (exception unwinding) ([SWS_DM_01556]).

Ce guide se base sur les documents de spécification de la version R25-11 d'AUTOSAR Adaptive Platform.

Carte des membres

Opérateurs

1

Diagramme de classes

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

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

Vue détaillée

Sélectionnez une entrée dans le plan.

Constructeurs et destructeur

No default construction allowed.

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

Opérateurs

operator= fonction 2

Move assigns an instance of this class.

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

Documentation des méthodes

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

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

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

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

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

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