DEENESPTFRRUARHIKOZHNL

클래스 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

사용자 가이드AI 생성

쓰기 진단 데이터 전송을 캡슐화하고 쓰기 핸들러를 통한 처리를 조정합니다.
AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 6f5de6951762 출처 열린 질문 (2)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

쓰기 진단 데이터 전송을 캡슐화하고 쓰기 핸들러를 통한 처리를 조정합니다.

클래스 ara::diag::DataTransferWriteSession은 쓰기 진단 데이터 전송을 캡슐화하고 애플리케이션별 쓰기 핸들러([SWS_DM_01555])로의 전달을 조정합니다. TransferData(0x36) 또는 RequestTransferExit(0x37)과 같은 수신 UDS 서비스의 경우 진단 서버 인스턴스는 등록된 핸들러의 해당 Write 또는 Exit 메서드를 호출합니다([SWS_DM_01317]). 기본 및 복사 생성이 삭제되어 있으므로 세션은 예외 안전한 단일 인스턴스로 존재하며, 그 생성은 템플릿 생성자를 통해 수행될 것으로 추정됩니다. 질문 (열림)

컨텍스트

클래스 ara::diag::DataTransferWriteSession은 Adaptive Platform Diagnostics([SWS_DM_01555]) 기능 영역 내의 모든 변형의 쓰기 데이터 전송을 캡슐화합니다. 이는 플랫폼의 진단 서버 인스턴스와 실제 쓰기 전송을 수행하는 애플리케이션별 구현 간의 연결 요소로 기능합니다.

RequestFileTransfer과 같은 진단 서비스(예: [SWS_DM_01313]에 따른 동작 모드 ReplaceFile(0x03))의 프레임워크 내에서 진단 서버 인스턴스는 전송 요청을 수신합니다. 이후 UDS 서비스 TransferData(0x36)의 진단 요청이 도달하면 서버는 이를 해당 DataTransferWriteSession에 바인딩된 핸들러 클래스의 Write 메서드에 위임합니다([SWS_DM_01317]). 모든 데이터 블록이 전송된 후 서비스 RequestTransferExit(0x37)이 완료를 알리고, 이에 따라 진단 서버 인스턴스는 등록된 핸들러의 Exit 메서드를 호출합니다([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 Write / Exit 호출 [SWS_DM_01317], [SWS_DM_01318] Session->Handler bindet Handler

컨텍스트 다이어그램: 진단 서버, DataTransferWriteSession 및 애플리케이션별 핸들러 클래스 간의 상호작용. 출처: [SWS_DM_01555], [SWS_DM_01317], [SWS_DM_01318].

수명 주기

DataTransferWriteSession의 라이프사이클은 헤더 파일 ara/diag/data_transfer.h([SWS_DM_01339])의 사양을 따릅니다. 기본 생성은 명시적으로 삭제되었습니다(DataTransferWriteSession() = delete, [SWS_DM_01339]). 따라서 인스턴스화는 특정 핸들러 클래스가 세션 객체에 바인딩되는 템플릿 생성자를 통해 이루어질 것으로 추정됩니다(AUTOSAR_AP_SWS_Diagnostics §8.10 “Context of RequestFileTransfer”). 질문 Q-4575aa1e5d0889b3 (열림)

명확한 소유권을 강화하기 위해 DataTransferWriteSession은 복사할 수도 없고 복사 대입할 수도 없습니다. 복사 생성자([SWS_DM_01559])와 복사 대입 연산자([SWS_DM_01560]) 모두 delete(으)로 선언되어 있습니다. 따라서 인스턴스는 독점적인 단일 인스턴스로 존재합니다.

반면 이 클래스는 완전한 이동 시맨틱을 지원합니다. 이동 생성자([SWS_DM_01557])와 이동 대입 연산자([SWS_DM_01558])는 기본 구현으로 선언되어 있으며, noexcept 및 예외 안전(“exception safe”)으로 명시되어 있습니다. 이를 통해 프로그램 컨텍스트 간에 세션 상태를 효율적으로 전송할 수 있습니다. 소멸은 예외 안전한 기본 소멸자(~DataTransferWriteSession() noexcept = default, [SWS_DM_01556])를 통해 수행됩니다. 동시 액세스를 위한 동기화 메커니즘이 문서화되어 있지 않으므로, 동시성과 관련하여 사용은 주로 실행 중인 서버 스레드 내에서 순차적으로 이루어질 것으로 추정됩니다. 질문 Q-2c2278884fa11b21 (열림)

사용 경로

쓰기 전송의 일반적인 흐름은 다음 단계로 진행됩니다:

  1. 초기화: 쓰기 요청(예: [SWS_DM_01313]에 따른 kReplace을 동반한 RequestFileTransfer) 수신 시 DataTransferWriteSession이 설정됩니다. 이때 쓰기 연산을 위한 애플리케이션별 핸들러가 템플릿 생성자를 통해 등록됩니다(AUTOSAR_AP_SWS_Diagnostics §8.10 “Context of RequestFileTransfer”).
  2. 데이터 블록 전송: 수신되는 UDS 서비스 TransferData(0x36)의 각 요청에 대해 진단 서버 인스턴스는 등록된 핸들러 클래스의 Write 메서드를 호출합니다([SWS_DM_01317]). 이 단계는 전송의 모든 블록에 대해 주기적으로 반복됩니다.
  3. 세션 종료: 완전한 전송 후 진단 서버는 RequestTransferExit(0x37)을 수신하고, 이에 따라 핸들러 클래스의 Exit 메서드를 호출합니다([SWS_DM_01318]).
  4. 정리: 성공적으로 완료되거나 조기 중단된 경우 세션 객체가 소멸됩니다([SWS_DM_01556]).
쓰기 데이터 전송 시퀀스DiagnoseserverDataTransferWriteSessionHandler-KlasseErzeugung / RegistrierungloopTransferData (0x36)Write() [SWS_DM_01317]상태 / 확인RequestTransferExit (0x37) 시 Exit() [SWS_DM_01318]Exit 확인소멸 (~DataTransferWriteSession) [SWS_DM_01556]

시퀀스 다이어그램: 참여 인스턴스를 통한 쓰기 데이터 전송의 일반적인 흐름. 출처: [SWS_DM_01317], [SWS_DM_01318], [SWS_DM_01556].

오류 시나리오

ara::diag::DataTransferWriteSession에서 오류 처리 및 신뢰성은 주로 정적 타입 안전성과 예외 안전성에 기반합니다:

  • 유효하지 않은 객체 상태 방지: 기본 생성자([SWS_DM_01339])의 삭제는 핸들러가 바인딩되지 않은 초기화되지 않은 세션 객체가 존재하는 것을 방지합니다. 복사 연산의 금지([SWS_DM_01559], [SWS_DM_01560])는 컴파일 타임에 다중 소유권으로 인한 일관되지 않은 상태를 배제합니다.
  • 이동 및 소멸 시 예외 안전성: 이동 생성자([SWS_DM_01557]), 이동 대입([SWS_DM_01558]) 및 소멸자([SWS_DM_01556])를 noexcept(으)로 선언함으로써 런타임에 리소스 인계 및 세션 해제 시 예외가 발생하지 않음을 보장합니다.
  • 조기 중단: 전송이 조기에 실패하는 경우 noexcept 소멸자는 예외 언와인딩 프레임워크 내에서도 세션 객체가 안정적으로 정리될 수 있도록 보장합니다([SWS_DM_01556]).

이 가이드는 AUTOSAR Adaptive Platform 릴리스 R25-11의 사양 문서를 기반으로 합니다.

멤버 맵

클래스 다이어그램

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

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

상세 보기

개요에서 항목을 선택하세요.

생성자 및 소멸자

No default construction allowed.

오버로드 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;

연산자

operator= 함수 2

Move assigns an instance of this class.

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

메서드 문서

함수 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#dbc2e913
Content hash
dbc2e913
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

함수 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#0a182c1a
Content hash
0a182c1a
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

함수 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#ff86bffd
Content hash
ff86bffd
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

함수 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#09e84d1f
Content hash
09e84d1f
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

함수 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#d52d2456
Content hash
d52d2456
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

함수 ~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#4b429d2b
Content hash
4b429d2b
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