DEENESPTFRRUARHIKOZHNL

clase 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

Guía del usuarioGENERADO POR IA

Encapsula transferencias de datos de diagnóstico de escritura y coordina la tramitación a través de manejadores de escritura.
GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 6f5de6951762 Procedencia Preguntas abiertas (2)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

Encapsula transferencias de datos de diagnóstico de escritura y coordina la tramitación a través de manejadores de escritura.

La clase ara::diag::DataTransferWriteSession encapsula transferencias de datos de diagnóstico de escritura y coordina el reenvío a manejadores de escritura específicos de la aplicación ([SWS_DM_01555]). Con servicios UDS entrantes como TransferData (0x36) o RequestTransferExit (0x37), la instancia del servidor de diagnóstico llama a los correspondientes métodos Write o Exit de los manejadores registrados ([SWS_DM_01317]). Dado que la construcción por defecto y de copia están eliminadas, la sesión existe como una instancia única segura frente a excepciones cuya creación se realiza presumiblemente a través de constructores de plantilla. Pregunta (abierta)

Contexto

La clase ara::diag::DataTransferWriteSession encapsula todas las variantes de transferencias de datos de escritura dentro del área funcional Adaptive Platform Diagnostics ([SWS_DM_01555]). Actúa como elemento de enlace entre la instancia del servidor de diagnóstico de la plataforma y las implementaciones específicas de la aplicación que llevan a cabo la transferencia de escritura propiamente dicha.

En el marco de servicios de diagnóstico como RequestFileTransfer (por ejemplo, en el modo de funcionamiento ReplaceFile (0x03) según [SWS_DM_01313]), la instancia del servidor de diagnóstico acepta solicitudes de transferencia. Si más adelante llegan solicitudes de diagnóstico del servicio UDS TransferData (0x36), el servidor las delega al método Write de la clase de manejador que esté vinculada a la respectiva DataTransferWriteSession ([SWS_DM_01317]). Tras la transferencia de todos los bloques de datos, el servicio RequestTransferExit (0x37) señaliza la finalización, tras lo cual la instancia del servidor de diagnóstico llama al método Exit del manejador registrado ([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 llama a Write / Exit [SWS_DM_01317], [SWS_DM_01318] Session->Handler bindet Handler

Diagrama de contexto: interacción entre el servidor de diagnóstico, DataTransferWriteSession y la clase de manejador específica de la aplicación. Fuentes: [SWS_DM_01555], [SWS_DM_01317], [SWS_DM_01318].

Ciclo de vida

El ciclo de vida de una DataTransferWriteSession está sujeto a los requisitos del archivo de encabezado ara/diag/data_transfer.h ([SWS_DM_01339]). La construcción por defecto está explícitamente eliminada (DataTransferWriteSession() = delete, [SWS_DM_01339]). Por lo tanto, una instanciación se realiza presumiblemente a través de constructores de plantilla, mediante los cuales se vinculan clases de manejador específicas al objeto de sesión (AUTOSAR_AP_SWS_Diagnostics §8.10 «Context of RequestFileTransfer»). Pregunta Q-4575aa1e5d0889b3 (abierta)

Para imponer una propiedad unívoca, DataTransferWriteSession no es copiable ni admite asignación por copia: tanto el constructor de copia ([SWS_DM_01559]) como el operador de asignación por copia ([SWS_DM_01560]) están declarados como delete. Por consiguiente, las instancias existen como ejemplares únicos exclusivos.

En cambio, la clase admite una semántica de movimiento completa: el constructor de movimiento ([SWS_DM_01557]) y el operador de asignación por movimiento ([SWS_DM_01558]) están declarados como implementación predeterminada y especificados como noexcept, así como seguros frente a excepciones («exception safe»). Permiten la transferencia eficiente del estado de la sesión entre contextos de programa. La destrucción se realiza a través del destructor por defecto seguro frente a excepciones (~DataTransferWriteSession() noexcept = default, [SWS_DM_01556]). En cuanto a la concurrencia, es de suponer que el uso es principalmente secuencial dentro del subproceso del servidor en ejecución, ya que no hay documentados mecanismos de sincronización para accesos concurrentes. Pregunta Q-2c2278884fa11b21 (abierta)

Ruta de uso

La secuencia regular de una transferencia de escritura se lleva a cabo en los siguientes pasos:

  1. Inicialización: al recibirse una solicitud de escritura (por ejemplo, RequestFileTransfer con kReplace según [SWS_DM_01313]), se configura una DataTransferWriteSession. En este proceso, el manejador específico de la aplicación para operaciones de escritura se registra a través de constructores de plantilla (AUTOSAR_AP_SWS_Diagnostics §8.10 «Context of RequestFileTransfer»).
  2. Transferencia de bloques de datos: para cada solicitud entrante del servicio UDS TransferData (0x36), la instancia del servidor de diagnóstico llama al método Write de la clase de manejador registrada ([SWS_DM_01317]). Este paso se repite cíclicamente para todos los bloques de la transferencia.
  3. Finalización de la sesión: tras la transferencia completa, el servidor de diagnóstico recibe RequestTransferExit (0x37) y, a continuación, llama al método Exit de la clase de manejador ([SWS_DM_01318]).
  4. Limpieza: tras una finalización exitosa o en caso de interrupción prematura, el objeto de sesión se destruye ([SWS_DM_01556]).
Flujo de una transferencia de datos en modo escrituraDiagnoseserverDataTransferWriteSessionHandler-KlasseErzeugung / RegistrierungloopTransferData (0x36)Write() [SWS_DM_01317]Estado / confirmaciónExit() en RequestTransferExit (0x37) [SWS_DM_01318]Confirmación de ExitDestrucción (~DataTransferWriteSession) [SWS_DM_01556]

Diagrama de secuencia: flujo típico de una transferencia de datos de escritura a través de las instancias involucradas. Fuentes: [SWS_DM_01317], [SWS_DM_01318], [SWS_DM_01556].

Escenarios de error

En ara::diag::DataTransferWriteSession, el tratamiento de errores y la fiabilidad se basan fundamentalmente en la seguridad estática de tipos y la seguridad frente a excepciones:

  • Prevención de estados de objeto no válidos: la eliminación del constructor por defecto ([SWS_DM_01339]) evita que puedan existir objetos de sesión no inicializados sin un manejador vinculado. La prohibición de operaciones de copia ([SWS_DM_01559], [SWS_DM_01560]) descarta estados inconsistentes por múltiples relaciones de propiedad ya en tiempo de compilación.
  • Seguridad frente a excepciones al mover y destruir: La declaración del constructor de movimiento ([SWS_DM_01557]), de la asignación por movimiento ([SWS_DM_01558]) y del destructor ([SWS_DM_01556]) como noexcept garantiza que no se lancen excepciones durante las transferencias de recursos ni durante el desmantelamiento de la sesión en tiempo de ejecución.
  • Cancelación prematura: Si una transferencia falla prematuramente, el destructor noexcept asegura que el objeto de sesión también pueda limpiarse de forma fiable en el marco del desenrollado de la pila por excepciones ([SWS_DM_01556]).

Esta guía se basa en los documentos de especificación de AUTOSAR Adaptive Platform Release R25-11.

Mapa de miembros

Diagrama de clases

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

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

Vista de detalle

Selecciona una entrada en el índice.

Constructores y destructor

No default construction allowed.

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

Operadores

operator= función 2

Move assigns an instance of this class.

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

Documentación de los métodos

función 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#267a323d
Content hash
267a323d
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

función 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#b506623a
Content hash
b506623a
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

función 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#435914ef
Content hash
435914ef
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

función 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#48764f3f
Content hash
48764f3f
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

función 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#05d66d60
Content hash
05d66d60
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

función ~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#d4716567
Content hash
d4716567
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