DEENESPTFRRUARHIKOZHNL

clase 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

Guía del usuarioGENERADO POR IA

Encapsula transferencias de lectura activas asistidas por diagnóstico y reenvía transferencias de datos entrantes a los handlers registrados.
GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 9db606b147f6 Procedencia Preguntas abiertas (2)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

Encapsula transferencias de lectura activas asistidas por diagnóstico y reenvía transferencias de datos entrantes a los handlers registrados.

La clase sirve para la encapsulación y la gestión estructurada de todas las variantes de transferencias de lectura basadas en diagnóstico dentro del módulo de diagnóstico adaptable de AUTOSAR según [SWS_DM_01548]. Tras la iniciación exitosa de un proceso de lectura, la instancia del servidor de diagnóstico delega las solicitudes entrantes para la transferencia secuencial de bloques de datos, así como para la finalización de la sesión, en los métodos registrados del handler de lectura [SWS_DM_01317]. Mediante la desactivación selectiva de las operaciones de copia manteniendo al mismo tiempo la compatibilidad con la semántica de movimiento, la clase garantiza una asignación unívoca de la propiedad de la sesión de transferencia subyacente.

Contexto

La clase ara::diag::DataTransferReadSession representa la encapsulación de todas las variantes para la lectura de bloques de datos asistida por diagnóstico en el módulo de diagnóstico adaptable [SWS_DM_01548]. En el marco de servicios UDS estandarizados como RequestFileTransfer (0x38), TransferData (0x36) y RequestTransferExit (0x37), la clase de sesión actúa como enlace entre el entorno de tiempo de ejecución interno del servidor de diagnóstico y los handlers de lectura específicos de la aplicación SWS Diagnostics §7 «Realization of TransferData and RequestTransferExit». Asegura que los procesos de lectura en curso (por ejemplo, para archivos mediante ReadFile [SWS_DM_01314] o directorios mediante ReadDir [SWS_DM_01315]) se gestionen de forma aislada y se reenvíen a los handlers correspondientes.

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

Diagrama de contexto: integración de DataTransferReadSession entre el servidor de diagnóstico y el handler de la aplicación. Fuentes: [SWS_DM_01317], [SWS_DM_01318], SWS Diagnostics §7 «Realization of TransferData and RequestTransferExit»

Ciclo de vida

Una instancia de ara::diag::DataTransferReadSession posee un tiempo de vida estrictamente acoplado a la sesión de transferencia. La creación mediante un constructor predeterminado está explícitamente prohibida [SWS_DM_01549]. En su lugar, la sesión se inicializa mediante constructores de plantilla especializados que registran los handlers específicos de la aplicación SWS Diagnostics §7 «Realization of TransferData and RequestTransferExit». En la práctica, es de suponer que la instanciación sea realizada típicamente por el servidor de diagnóstico o el handler del servicio al iniciarse la transferencia de archivos. Pregunta Q-b0706bcd28c702c6 (abierta)

Para excluir asignaciones múltiples o estados de sesión inconsistentes, ara::diag::DataTransferReadSession está concebido como una instancia única no copiable: tanto el constructor de copia [SWS_DM_01553] como el operador de asignación por copia [SWS_DM_01554] están eliminados (=delete). La transferencia de propiedad solo está prevista mediante semántica de movimiento. El constructor de movimiento [SWS_DM_01551] y el operador de asignación por movimiento [SWS_DM_01552] están definidos como noexcept=default. La destrucción se realiza de forma determinista mediante el destructor [SWS_DM_01550], que también está declarado como noexcept=default. Presumiblemente, la finalización de la transferencia mediante RequestTransferExit conduce a la liberación del objeto. Pregunta Q-c1999fd1f283a007 (abierta)

Ruta de uso

El flujo típico de una sesión de transferencia de lectura se divide en tres fases consecutivas:

  • Inicialización: un cliente de diagnóstico externo envía RequestFileTransfer con un modo de lectura como ReadFile (0x04) [SWS_DM_01314] o ReadDir (0x05) [SWS_DM_01315]. Con ello se crea la instancia de sesión y se registra el manejador de lectura.
  • Transferencia de datos: el servidor de diagnóstico procesa las solicitudes de diagnóstico entrantes del tipo TransferData (0x36) invocando el método Read correspondiente del manejador registrado a través de los constructores de plantilla [SWS_DM_01317]. Esto se realiza de manera iterativa para cada bloque de datos solicitado.
  • Finalización: en cuanto se han transferido todos los datos, el cliente envía RequestTransferExit (0x37). A continuación, el servidor de diagnóstico invoca el método Exit del manejador registrado para finalizar debidamente el proceso de lectura [SWS_DM_01318].
Flujo de una transferencia de lectura basada en archivosCliente de diagnósticoDiagnostic ServerDataTransferReadSessionRequestFileTransfer (0x38)ReadFile / ReadDirInitialisierung viaTemplate-KonstruktorPositiv-Response (0x78)loopMientras se transmitan bloques de datosTransferData (0x36)Read()Gelesene BlockdatenTransferData Positiv-ResponseRequestTransferExit (0x37)Exit()Confirmación de finalizaciónRequestTransferExit Response

Diagrama de secuencia: secuencia de llamadas de una transferencia de lectura UDS con transferencia a la sesión registrada. Fuentes: [SWS_DM_01314], [SWS_DM_01315], [SWS_DM_01317], [SWS_DM_01318]

Escenarios de error

Dado que ara::diag::DataTransferReadSession está declarado como final y el constructor por defecto [SWS_DM_01549] no existe, se evita una creación errónea sin manejador registrado ya en tiempo de compilación. Asimismo, las operaciones de copia eliminadas [SWS_DM_01553] impiden la duplicación accidental de estados de sesión. Tanto la construcción por movimiento como la asignación por movimiento y la destrucción garantizan una seguridad frente a excepciones absoluta gracias a su especificación noexcept [SWS_DM_01551] [SWS_DM_01550]. Si falla la provisión de bloques de datos en el manejador, esto se gestiona en el marco de la comunicación UDS a nivel de protocolo.

Esta guía se basa en la especificación AUTOSAR Adaptive Platform R25-11 (módulo diag) y resume los requisitos para ara::diag::DataTransferReadSession.

Mapa de miembros

Operadores

1

Diagrama de clases

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

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

Vista de detalle

Selecciona una entrada en el índice.

Constructores y destructor

No default construction allowed.

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

Operadores

operator= función 2

Move assigns an instance of this class.

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

Documentación de los métodos

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

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

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

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

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

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