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

Guia do utilizadorGERADO POR IA

Encapsula transferências de dados de diagnóstico de escrita e coordena a execução por meio de handlers de escrita.
GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 6f5de6951762 Procedência Perguntas em aberto (2)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

Encapsula transferências de dados de diagnóstico de escrita e coordena a execução por meio de handlers de escrita.

A classe ara::diag::DataTransferWriteSession encapsula transferências de dados de diagnóstico de escrita e coordena o encaminhamento para handlers de escrita específicos da aplicação ([SWS_DM_01555]). Em serviços UDS de entrada, como TransferData (0x36) ou RequestTransferExit (0x37), a instância do servidor de diagnóstico chama os métodos correspondentes Write ou Exit dos handlers registrados ([SWS_DM_01317]). Como a construção padrão e por cópia estão excluídas, a sessão existe como uma instância única segura contra exceções, cuja instanciação ocorre presumivelmente por meio de construtores de template. Pergunta (aberta)

Contexto

A classe ara::diag::DataTransferWriteSession encapsula todas as variantes de transferências de dados de escrita no domínio funcional Adaptive Platform Diagnostics ([SWS_DM_01555]). Ela atua como elemento de ligação entre a instância do servidor de diagnóstico da plataforma e as implementações específicas da aplicação que executam a transferência de escrita propriamente dita.

No âmbito de serviços de diagnóstico como RequestFileTransfer (por exemplo, no modo de operação ReplaceFile (0x03) de acordo com [SWS_DM_01313]), a instância do servidor de diagnóstico recebe requisições de transferência. Se, na sequência, chegarem requisições de diagnóstico do serviço UDS TransferData (0x36), o servidor delega-as ao método Write daquela classe de handler que está vinculada à respectiva DataTransferWriteSession ([SWS_DM_01317]). Após a transferência de todos os blocos de dados, o serviço RequestTransferExit (0x37) sinaliza a conclusão, momento em que a instância do servidor de diagnóstico chama o método Exit do handler 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 chama Write / Exit [SWS_DM_01317], [SWS_DM_01318] Session->Handler bindet Handler

Diagrama de contexto: Interação entre servidor de diagnóstico, DataTransferWriteSession e classe de handler específica da aplicação. Fontes: [SWS_DM_01555], [SWS_DM_01317], [SWS_DM_01318].

Ciclo de vida

O ciclo de vida de uma DataTransferWriteSession está sujeito às diretrizes do arquivo de cabeçalho ara/diag/data_transfer.h ([SWS_DM_01339]). A construção padrão está explicitamente excluída (DataTransferWriteSession() = delete, [SWS_DM_01339]). Uma instanciação ocorre, portanto, presumivelmente por meio de construtores de template, através dos quais classes de handler específicas são vinculadas ao objeto de sessão (AUTOSAR_AP_SWS_Diagnostics §8.10 «Context of RequestFileTransfer»). Pergunta Q-4575aa1e5d0889b3 (aberta)

Para garantir uma propriedade exclusiva, DataTransferWriteSession não é copiável nem atribuível por cópia: tanto o construtor de cópia ([SWS_DM_01559]) quanto o operador de atribuição por cópia ([SWS_DM_01560]) estão declarados como delete. As instâncias existem, consequentemente, como exemplares únicos exclusivos.

Em contrapartida, a classe suporta semântica completa de movimento: o construtor de movimento ([SWS_DM_01557]) e o operador de atribuição por movimento ([SWS_DM_01558]) são declarados como implementação padrão e especificados como noexcept bem como seguros contra exceções (\"exception safe\"). Eles permitem a transferência eficiente do estado da sessão entre contextos de programa. A destruição ocorre por meio do destrutor padrão seguro contra exceções (~DataTransferWriteSession() noexcept = default, [SWS_DM_01556]). No que diz respeito à concorrência, a utilização deverá ocorrer primariamente de forma sequencial dentro da thread servidora em execução, uma vez que não há mecanismos de sincronização documentados para acessos concorrentes. Pergunta Q-2c2278884fa11b21 (aberta)

Caminho de utilização

O fluxo regular de uma transferência de escrita ocorre nas seguintes etapas:

  1. Inicialização: Ao receber uma requisição de escrita (por exemplo, RequestFileTransfer com kReplace de acordo com [SWS_DM_01313]), é estabelecida uma DataTransferWriteSession. Aqui, o handler específico da aplicação para operações de escrita é registrado por meio de construtores de template (AUTOSAR_AP_SWS_Diagnostics §8.10 «Context of RequestFileTransfer»).
  2. Transferência de blocos de dados: Para cada requisição recebida do serviço UDS TransferData (0x36), a instância do servidor de diagnóstico chama o método Write da classe de handler registrada ([SWS_DM_01317]). Esta etapa é repetida ciclicamente para todos os blocos da transferência.
  3. Encerramento da sessão: Após a conclusão da transferência, o servidor de diagnóstico recebe RequestTransferExit (0x37) e, em seguida, chama o método Exit da classe handler ([SWS_DM_01318]).
  4. Limpeza: Após a conclusão bem-sucedida ou em caso de cancelamento prematuro, o objeto de sessão é destruído ([SWS_DM_01556]).
Sequência de uma transmissão de dados de escritaDiagnoseserverDataTransferWriteSessionHandler-KlasseErzeugung / RegistrierungloopTransferData (0x36)Write() [SWS_DM_01317]Status / confirmaçãoExit() em RequestTransferExit (0x37) [SWS_DM_01318]Confirmação de exitDestruição (~DataTransferWriteSession) [SWS_DM_01556]

Diagrama de sequência: fluxo típico de uma transferência de dados de escrita por meio das instâncias envolvidas. Fontes: [SWS_DM_01317], [SWS_DM_01318], [SWS_DM_01556].

Cenários de erro

O tratamento de erros e a confiabilidade apoiam-se substancialmente, no ara::diag::DataTransferWriteSession, na segurança estática de tipos e na segurança de exceções:

  • Prevenção de estados inválidos de objetos: A exclusão do construtor padrão ([SWS_DM_01339]) impede que objetos de sessão não inicializados possam existir sem um handler associado. A proibição de operações de cópia ([SWS_DM_01559], [SWS_DM_01560]) exclui estados inconsistentes decorrentes de posse múltipla já em tempo de compilação.
  • Segurança de exceções na movimentação e destruição: A declaração do construtor de movimento ([SWS_DM_01557]), da atribuição por movimento ([SWS_DM_01558]) e do destrutor ([SWS_DM_01556]) como noexcept garante que nenhuma exceção seja lançada durante transferências de recursos e desmontagem da sessão em tempo de execução.
  • Cancelamento prematuro: Se uma transferência falhar prematuramente, o destrutor de noexcept assegura que o objeto de sessão possa ser limpo de forma confiável, inclusive no contexto de desenrolamento de pilha por exceção ([SWS_DM_01556]).

Este guia baseia-se nos documentos de especificação da AUTOSAR Adaptive Platform Release R25-11.

Mapa de membros

Diagrama de classes

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

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

Vista de detalhes

Selecione uma entrada no índice.

Construtores e destrutor

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= função 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

Documentação dos métodos

função 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#11959fed
Content hash
11959fed
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

função 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#9ec6007f
Content hash
9ec6007f
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

função 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#6851dea7
Content hash
6851dea7
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

função 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#0d8c19bd
Content hash
0d8c19bd
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

função 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#fa9a5d2c
Content hash
fa9a5d2c
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

função ~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#5f33fe41
Content hash
5f33fe41
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