DEENESPTFRRUARHIKOZHNL

클래스 ara::diag::DataTransferReadSharedDataHandler

[SWS_DM_01497] Upstream: RS_Diag_04135

class DataTransferReadSharedDataHandler {...};

Handles data transfers initiated by RequestReadFile/-Directory with shared data from the implementation.

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 · 온도: 제어 불가 · 프롬프트: 4c654c39d186 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

진단 요청 시 공유 메모리 영역을 통해 전체 파일 또는 디렉터리를 읽을 수 있도록 지원합니다.

ara::diag::DataTransferReadSharedDataHandler 클래스는 공유 메모리([SWS_DM_01497])를 통한 파일 및 디렉터리 내용의 읽기 진단 데이터 전송을 처리하는 데 사용됩니다. 세션이 시작된 후 애플리케이션 구현체는 Read()를 통해 전체 데이터를 공유 데이터 뷰로 제공하고, ReleaseHandler에 의한 해제 알림이 있을 때까지 할당된 버퍼를 유지합니다([SWS_DM_01504]). 핸들러 전용 객체를 소멸시키기 전에 반드시 ExitRead()를 통해 전송 세션을 종료해야 합니다. 이 객체는 단일 전송 세션 전용이므로 이동할 수는 있지만 복사할 수는 없습니다.

컨텍스트

ara::diag::DataTransferReadSharedDataHandler 클래스는 diag 모듈(AUTOSAR_AP_SWS_Diagnostics §8.10.5 “Class: DataTransferReadSharedDataHandler”) 내 AUTOSAR Adaptive Platform의 진단 영역에 속합니다. 이 클래스의 핵심 역할은 RequestReadFile 또는 RequestReadDirectory와 같은 UDS 요청에 의해 트리거된 파일 및 디렉터리 내용에 대한 데이터 전송을 처리하는 것입니다([SWS_DM_01497]). 각 전송 블록마다 개별 복사 단계를 거치는 대신, 이 핸들러를 사용하면 애플리케이션별 구현체가 전체 데이터를 연속된 공유 메모리 영역으로 제공할 수 있습니다.

전체 시스템 흐름에서 세 가지 주요 주체가 협력합니다. 외부 UDS 클라이언트가 제어기에 읽기 요청을 전송합니다. 진단 런타임 환경 AraDiag은 요청을 수신하여 DataTransferReadSharedDataHandler의 구체적인 구현체로 실행을 전달합니다([SWS_DM_01497], [SWS_DM_01504]). 세 번째 파트너인 ReleaseHandler는 플랫폼에서 공유 메모리 리소스가 더 이상 필요하지 않아 해제될 수 있는 즉시 애플리케이션에 신호를 보냅니다([SWS_DM_01504]).

DataTransferContext UdsClient UDS-Client AraDiag AraDiag UdsClient->AraDiag UDS RequestReadFile / RequestReadDirectory AraDiag->UdsClient UDS-Antwortdaten Handler DataTransferReadSharedDataHandler AraDiag->Handler Read() / ExitRead() ReleaseHandler ReleaseHandler AraDiag->ReleaseHandler Freigabebenachrichtigung Handler->AraDiag Shared Data (Span) / Vector ReleaseHandler->Handler Speicherfreigabe signalisiert

컨텍스트 다이어그램: UDS 클라이언트, AraDiag 런타임 환경 및 애플리케이션 측 핸들러 구현 간의 상호작용. 출처: [SWS_DM_01497], [SWS_DM_01504], [SWS_DM_01505]

수명 주기

핸들러 생성은 매개변수가 없는 기본 생성자([SWS_DM_01498], AUTOSAR_AP_SWS_Diagnostics §8.10.5.1.1.1 “Default Constructor”)를 통해 수행됩니다. 소유권과 관련하여 단방향 원칙이 적용됩니다. 인스턴스는 단일 파일 전송 세션에 독점적으로 바인딩되므로 핸들러를 복사해서는 안 됩니다([SWS_DM_01501], [SWS_DM_01503]). 따라서 복사 생성자(AUTOSAR_AP_SWS_Diagnostics §8.10.5.1.2.1 “DataTransferReadSharedDataHandler”)와 복사 할당 연산자 모두 delete로 표시되어 있습니다. 인스턴스 전송은 이동 작업을 통해 가능합니다. 이동 생성자([SWS_DM_01500], AUTOSAR_AP_SWS_Diagnostics §8.10.5.1.1.2 “Move Constructor”) 및 이동 할당 연산자([SWS_DM_01502])는 default 및 noexcept로 선언되어 있습니다.

객체 소멸에 대해 엄격한 선행 조건이 있습니다. ExitRead() 호출을 통해 전송 세션이 공식적으로 종료되기 전에는 이 클래스의 인스턴스를 절대로 소멸시켜서는 안 됩니다([SWS_DM_01499], AUTOSAR_AP_SWS_Diagnostics §8.10.5.1.1.3 “Destructor”). 이러한 종료 처리가 완료된 후에만 가상 소멸자가 실행될 수 있습니다([SWS_DM_01499]).

동시성과 관련하여 핵심 메서드 Read() 및 ExitRead()은 스레드 안전하지 않은 것(not thread-safe)으로 식별되는 반면, 인터페이스의 모든 함수는 예외 안전성(exception safe)을 보장합니다([SWS_DM_01498], [SWS_DM_01504], [SWS_DM_01505]).

사용 경로

공유 메모리 영역을 사용한 데이터 전송의 일반적인 호출 순서는 여러 단계로 구성됩니다:

  • 공유 데이터 제공: AraDiag은 순수 가상 메서드 Read()을 호출하고 ReleaseHandler, MetaInfo 및 CancellationHandler를 전달합니다([SWS_DM_01504]). 애플리케이션은 전체 파일 또는 디렉터리 콘텐츠를 할당하고 이에 대한 공유 뷰를 ara::core::Span<ara::core::Byte>로서 ara::core::Future을 통해 AraDiag에 다시 전달합니다([SWS_DM_01504]).
  • 메모리 유지 및 해제: 애플리케이션은 메모리 영역을 안전하게 해제할 수 있음을 ReleaseHandler이 알릴 때까지 할당된 메모리를 반드시 온전하게 유지해야 합니다([SWS_DM_01504]). 애플리케이션은 이를 위해 ReleaseHandler에 알림자(notifier) 함수를 등록하거나 그 상태를 능동적으로 쿼리할 수 있습니다([SWS_DM_01504]). 해석: ReleaseHandler을 통한 신호 전달은 데이터 블록이 UDS 클라이언트에 성공적으로 전송되는 즉시 AraDiag에 의해 비동기적으로 수행될 것으로 보입니다. 질문 Q-0fbc1c5e667c9a68 (열림)
  • 세션 종료: 전송을 종료하기 위해 AraDiag은 ExitRead() 메서드를 호출합니다([SWS_DM_01505], AUTOSAR_AP_SWS_Diagnostics §8.10.5.1.3.1 “ExitRead”). 종료 이유(DataTransferExitType) 외에도 차량 제조사별 요청 파라미터가 전달되며, 이 파라미터의 수명은 결과 프라미스가 충족될 때까지 보장됩니다([SWS_DM_01505]). 애플리케이션은 ara::core::Future<ara::core::Vector<ara::core::Byte>>을 통해 응답 데이터를 반환합니다([SWS_DM_01505]).
  • 객체 소멸: ExitRead()이 성공적으로 호출된 후에만 핸들러 인스턴스를 해제하고 소멸시킬 수 있습니다([SWS_DM_01499]).
공유 데이터 읽기 전송 시퀀스AraDiagDataTransferReadSharedDataHandlerReleaseHandlerRead(release_handler, meta_info, cancellation_handler)Speicher allozieren & Shared Data View erstellen공유 데이터 뷰가 포함된 Future<Span<Byte>>Use Case: SpeicherfreigabeNotifier 호출 또는 상태 설정Speicherfreigabe signalisiertAlloziierten Puffer freigebenUse Case: SitzungsabschlussExitRead(exit_type, param_record, meta_info, cancellation_handler)Future<Vector<Byte>> (OperationOutput)

시퀀스 다이어그램: Read()를 통한 데이터 제공부터 메모리 해제를 거쳐 ExitRead()를 통한 종료까지의 단계 순서. 출처: [SWS_DM_01499], [SWS_DM_01504], [SWS_DM_01505]

오류 시나리오

데이터 제공 시 또는 전송 종료 시 오류가 발생하면, ISO 14229-1에 따른 DiagUdsNrcErrc 도메인의 ara::core::ErrorCode과 함께 각 ara::core::Future을 통해 보고됩니다([SWS_DM_01504], [SWS_DM_01505]).

또 다른 시나리오는 진행 중인 진단 대화의 취소입니다. 두 메서드 모두 CancellationHandler을 수신합니다([SWS_DM_01504], [SWS_DM_01505]). 애플리케이션은 cancellation_handler.IsCanceled()을 통해 취소 상태를 동기식으로 확인하거나 조기 취소 시 즉각적으로 대응할 수 있도록 cancellation_handler.SetNotifier()를 통해 알림 함수를 등록할 수 있습니다([SWS_DM_01504], [SWS_DM_01505]).

소멸자와 관련된 선행 조건 위반(즉, ExitRead()이 호출되기 전에 객체가 소멸되는 경우)은 요구사항 [SWS_DM_01499]에 위배되며 잘못된 프로그램 상태를 초래합니다.

이 클래스 가이드는 AUTOSAR Adaptive Platform 릴리스 R25-11 사양을 기반으로 한다.

멤버 맵

클래스 다이어그램

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

G nara__diag__DataTransferReadSharedDataHandler544 DataTransferReadSharedDataHandler + DataTransferReadSharedDataHandler() + ~DataTransferReadSharedDataHandler() + ExitRead() + Read() + operator=()

상세 보기

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

생성자 및 소멸자

Constructs an instance of this class.

오버로드 DataTransferReadSharedDataHandler 3
DataTransferReadSharedDataHandler () noexcept=default; SWS_DM_01498
DataTransferReadSharedDataHandler (DataTransferReadSharedDataHandler &&other) noexcept=default; SWS_DM_01500
DataTransferReadSharedDataHandler (DataTransferReadSharedDataHandler const &)=delete; SWS_DM_01501

Destructs an instance of this class. An instance of this class must not be destroyed before ExitRead() is called.

virtual ~DataTransferReadSharedDataHandler () noexcept=default;

메서드

ExitRead 함수

Exits an ongoing data transfer session.

virtual auto ExitRead (DataTransferExitType exit_type, ara::core::Span< const ara::core::Byte > transfer_request_parameter_ record, MetaInfo const &meta_info, CancellationHandler cancellation_ handler) noexcept -> ara::core::Future< ara::core::Vector< ara::core::Byte > >=0;
Read 함수

Provides the whole data to be read out from the application in form of a shared data view. The whole file/directory info content to be sent back to the UDS client will be allocated by the application and its shared ownership (view over the memory location) is passed as a result to AraDiag. The allocated memory must be kept until the ReleaseHandler’s notifier is invoked or the status polled, signalling that the memory, addressed by the Span now can safely be released.

virtual auto Read (ReleaseHandler release_handler, MetaInfo const &meta_info, CancellationHandler cancellation_handler) noexcept -> ara::core::Future< ara::core::Span< ara::core::Byte > >=0;

연산자

operator= 함수 2

Move assigns an instance of this class.

오버로드 = 2
auto operator= (DataTransferReadSharedDataHandler &&other) & noexcept -> DataTransferReadSharedDataHandler & =default; SWS_DM_01502
auto operator= (DataTransferReadSharedDataHandler const &) -> Data TransferReadSharedDataHandler &=delete; SWS_DM_01503

메서드 문서

함수 DataTransferReadSharedDataHandler [SWS_DM_01498] Upstream: RS_Diag_04135

DataTransferReadSharedDataHandler () noexcept=default;

Constructs an instance of this class.

Header-Datei#include "ara/diag/data_transfer.h"
Scopeclass ara::diag::DataTransferReadSharedDataHandler
Exception-Sicherheitexception safe

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_DM_01498
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01498@rel:R25-11#bbe5fed5
Content hash
bbe5fed5
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01498
Status: valid/unmigrated Version: rel:R25-11#9b4d17d4 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_01498@rel:R25-11#9b4d17d4
Point-in-Time History:
Recorded Revisions (5):
  • R25-11rel:R25-11#9604c17f2026-09-30
  • R22-11rel:R22-11#484fb5092026-10-14
  • R23-11rel:R23-11#8a81d7d52026-10-14
  • R24-11rel:R24-11#b779c4dd2026-10-14
  • R25-11rel:R25-11#9b4d17d42026-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

함수 DataTransferReadSharedDataHandler [SWS_DM_01500] Upstream: RS_Diag_04135

DataTransferReadSharedDataHandler (DataTransferReadSharedDataHandler &&other) noexcept=default;

Move constructs an instance of this class.

Header-Datei#include "ara/diag/data_transfer.h"
Scopeclass ara::diag::DataTransferReadSharedDataHandler
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_01500
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01500@rel:R25-11#62ac6286
Content hash
62ac6286
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01500
Status: valid/unmigrated Version: rel:R25-11#8e1ba0c2 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_01500@rel:R25-11#8e1ba0c2
Point-in-Time History:
Recorded Revisions (5):
  • R25-11rel:R25-11#e2f2ec4a2026-09-30
  • R22-11rel:R22-11#2549265b2026-10-14
  • R23-11rel:R23-11#4fc7fa8a2026-10-14
  • R24-11rel:R24-11#115062c32026-10-14
  • R25-11rel:R25-11#8e1ba0c22026-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

함수 DataTransferReadSharedDataHandler [SWS_DM_01501] Upstream: RS_Diag_04135

DataTransferReadSharedDataHandler (DataTransferReadSharedDataHandler const &)=delete;

Handlers shall not be copy-able since only one way usage i.e. per single file transfer session.

Header-Datei#include "ara/diag/data_transfer.h"
Scopeclass ara::diag::DataTransferReadSharedDataHandler

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_DM_01501
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01501@rel:R25-11#c2f2329b
Content hash
c2f2329b
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01501
Status: valid/unmigrated Version: rel:R25-11#78df071e 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_01501@rel:R25-11#78df071e
Point-in-Time History:
Recorded Revisions (5):
  • R25-11rel:R25-11#d442aedb2026-09-30
  • R22-11rel:R22-11#231201f12026-10-14
  • R23-11rel:R23-11#6acf11902026-10-14
  • R24-11rel:R24-11#97f451652026-10-14
  • R25-11rel:R25-11#78df071e2026-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

함수 ExitRead [SWS_DM_01505] Upstream: RS_Diag_04135

virtual auto ExitRead (DataTransferExitType exit_type, ara::core::Span< const ara::core::Byte > transfer_request_parameter_ record, MetaInfo const &meta_info, CancellationHandler cancellation_ handler) noexcept -> ara::core::Future< ara::core::Vector< ara::core::Byte > >=0;

Exits an ongoing data transfer session.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 8bcba929adb6 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

ara::diag::DataTransferReadSharedDataHandler 클래스([SWS_DM_01505]; 헤더 ara/diag/data_transfer.h)의 인터페이스 ExitRead은(는) 진행 중인 데이터 전송 세션을 종료합니다.

사용법 및 매개변수

호출은 비동기식으로 수행되며 ara::core::Future<ara::core::Vector<ara::core::Byte>>을(를) 반환합니다([SWS_DM_01505]; AUTOSAR_AP_SWS_Diagnostics §8.10.5.1.3.1 “ExitRead”). 다음 매개변수가 전달됩니다:

  • exit_type (DataTransferExitType): 세션 종료 이유를 지정합니다.
  • transfer_request_parameter_record (ara::core::Span<const ara::core::Byte>): 전송을 지원하기 위한 제조업체별 매개변수를 포함합니다. 데이터는 관련 Promise가 충족되거나 처리가 취소될 때까지 유효하게 유지됩니다.
  • meta_info (MetaInfo const&): 진단 요청의 추가 메타 정보를 포함합니다.
  • cancellation_handler (CancellationHandler): cancellation_handler.IsCanceled()을(를) 통한 취소 상태 확인 및 대화 취소 시 호출되는 알림 함수의 cancellation_handler.SetNotifier()을(를) 통한 등록을 허용합니다.

오류 처리 및 반환값

성공적으로 완료되면 Future은(는) 긍정 응답에서 SID 뒤에 배치되는 출력 데이터(transferResponseParameterRecord)를 제공합니다 [SWS_DM_01505]. 오류 발생 시 Future은(는) DiagUdsNrcErrc의 오류 코드(ISO 14229-1에 따른 해당 NRC)로 충족됩니다 [SWS_DM_01505].

동시성 및 수명 주기

이 메서드는 noexcept(으)로 선언되어 있지만(exception safe), 명시적으로 not thread-safe로 지정되어 있습니다 [SWS_DM_01505]. 객체 수명 주기와 관련하여 ExitRead()이(가) 호출되기 전에는 DataTransferReadSharedDataHandler 인스턴스를 어떠한 경우에도 소멸시켜서는 안 된다는 규정이 적용됩니다([SWS_DM_01499]). 관련 클래스 DataTransferReadByPullHandler ([SWS_DM_01514]) 및 DataTransferReadByPushHandler ([SWS_DM_01523])에 대해서도 유사한 종료 함수 및 소멸자 요구사항이 존재합니다.

이 사용 지침은 AI에 의해 작성되었으며 AUTOSAR Adaptive Platform의 사양을 기반으로 합니다.

구현자 가이드 준비 중 (복잡도 I2)

Header-Datei#include "ara/diag/data_transfer.h"
Scopeclass ara::diag::DataTransferReadSharedDataHandler
Exception-Sicherheitexception safe
Thread-Sicherheitnot thread-safe

Parameter (in)

ParameterBeschreibung
exit_typeSpecifies the exit reason
transfer_request_This parameter record contains parameter(s), which are required
parameter_recordby the server to support the transfer of data. Format and length of this parameter(s) are vehicle manufacturer specific. Lifetime: Valid until Promise is fulfilled or the processing is cancelled by the cancellationHandler.
meta_infocontains additional meta information of the request.
cancellation_handlerThis parameter is used to • Query the current cancellation status by calling cancellation_ handler.IsCanceled(). Returns true in case, the current conversation has been cancelled and false otherwise. • Register a notifier function by calling cancellation_handler.Set Notifier(). The registered notifier is called if the current conversation is cancelled.

Rückgabewert

TypBeschreibung
ara::core::Future<ara::core::Vector<ara::core::Byte > >Returns a Future, which either gets readied to OperationOutput (transferResponseParameterRecord for a positive response message) or readied with ErrorCode from DiagUdsNrcErrc (for an negative response message). Data in OperationOutput.response_data will be placed after SID as transferResponseParameterRecord in the positive response.

Fehler

FehlercodeBeschreibung
Please use an applicable NRC, as defined in ISO 14229-1, using DiagUdsNrcErrc.

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_DM_01505
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01505@rel:R25-11#1313b1a2
Content hash
1313b1a2
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01505
Status: valid/unmigrated Version: rel:R25-11#e1792911 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_01505@rel:R25-11#e1792911
Point-in-Time History:
Recorded Revisions (5):
  • R25-11rel:R25-11#620bca3b2026-09-30
  • R22-11rel:R22-11#6fa010712026-10-14
  • R23-11rel:R23-11#aed9f17a2026-10-14
  • R24-11rel:R24-11#70ebc8d42026-10-14
  • R25-11rel:R25-11#e17929112026-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

함수 Read [SWS_DM_01504] Upstream: RS_Diag_04135

virtual auto Read (ReleaseHandler release_handler, MetaInfo const &meta_info, CancellationHandler cancellation_handler) noexcept -> ara::core::Future< ara::core::Span< ara::core::Byte > >=0;

Provides the whole data to be read out from the application in form of a shared data view. The whole file/directory info content to be sent back to the UDS client will be allocated by the application and its shared ownership (view over the memory location) is passed as a result to AraDiag. The allocated memory must be kept until the ReleaseHandler’s notifier is invoked or the status polled, signalling that the memory, addressed by the Span now can safely be released.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: cba844c9db1e 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

인터페이스 ara::diag::DataTransferReadSharedDataHandler의 메서드 Read은(는) UDS 클라이언트를 위해 공유 메모리 뷰([SWS_DM_01504])를 통해 읽어올 파일 또는 디렉터리 데이터를 제공합니다. 호출은 비동기식으로 수행되며 ara::core::Span<ara::core::Byte>을(를) 포함하는 ara::core::Future을(를) 반환합니다([SWS_DM_01504]).

사용 및 수명 주기

구현 애플리케이션은 전체 콘텐츠를 직접 할당하고 해당 뷰를 AraDiag에 전달합니다. 기본 메모리 영역은 전달된 ReleaseHandler을(를) 통해 해당 알리미(notifier)에 의해 해제가 신호되거나 상태 확인을 통해 쿼리될 때까지([SWS_DM_01504]) 반드시 변경되지 않은 상태로 유지되어야 합니다. ReleaseHandler은(는) 동일한 UDS 클라이언트에 대해 MetaInfo을(를) 기반으로 저장되어야 합니다([SWS_DM_01504]). CancellationHandler을(를) 통해 진행 중인 전송을 IsCanceled()(으)로 모니터링하거나 중단 알리미를 SetNotifier()(으)로 등록할 수 있습니다([SWS_DM_01504]).

오류 처리 및 동시성

성공 시 데이터는 blockSequenceCounter 뒤에 transferResponseParameterRecord(으)로 전송됩니다([SWS_DM_01504]). 읽기에 실패하면 Future은(는) ISO 14229-1에 따라 DiagUdsNrcErrc의 적절한 오류 코드로 완료되어야 합니다([SWS_DM_01504]). 애플리케이션의 인터페이스가 아직 또는 더 이상 offer()(으)로 제공되지 않는 경우, 서버는 NRC 0x94(ResourceTemporarilyNotAvailable)를 보고합니다([SWS_DM_01257]). 이 함수는 noexcept 및 예외 안전으로 지정되어 있지만 스레드 안전하지 않은 것으로 간주됩니다(not thread-safe)([SWS_DM_01504]).

경계

데이터 블록이 미리 정의된 버퍼로 복사되는 DataTransferReadByPullHandler::Read([SWS_DM_01513])이나 소유권 이전을 통해 벡터를 제공하는 DataTransferReadByPushHandler::Read([SWS_DM_01522])와 달리, 이 핸들러는 버퍼 복사 없이 공유 메모리를 통해 전체 콘텐츠를 전송합니다([SWS_DM_01504]).

본 사용 지침은 AUTOSAR 표준을 기반으로 자동 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I1)

Header-Datei#include "ara/diag/data_transfer.h"
Scopeclass ara::diag::DataTransferReadSharedDataHandler
Exception-Sicherheitexception safe
Thread-Sicherheitnot thread-safe

Parameter (in)

ParameterBeschreibung
release_handlerThe release shared resource handler to be stored and used by the application until a new one is passed for the same meta_info (UDS client).
meta_infoContains additional meta information.
cancellation_handlerThis parameter is used to • Query the current cancellation status by calling cancellation_ handler.IsCanceled(). Returns true in case, the current conversation has been cancelled and false otherwise. • Register a notifier function by calling cancellation_handler.Set Notifier(). The registered notifier is called if the current conversation is cancelled.

Rückgabewert

TypBeschreibung
ara::core::Future<ara::core::Span<ara::core::Byte > >Returns a Future, which either gets readied to ReadSharedOutput (transferResponseParameterRecord for a positive response message) or readied with ErrorCode from DiagUdsNrcErrc (for an negative response message). Data in ReleaseSharedHandler.responseData will be placed after the blockSequenceCounter as transferResponseParameterRecord in the positive response.

Fehler

FehlercodeBeschreibung
Please use an applicable NRC, as defined in ISO 14229-1, using DiagUdsNrcErrc.

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_DM_01504
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01504@rel:R25-11#1ae333fb
Content hash
1ae333fb
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01504
Status: valid/unmigrated Version: rel:R25-11#70152a76 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_01504@rel:R25-11#70152a76
Point-in-Time History:
Recorded Revisions (5):
  • R25-11rel:R25-11#c2d856732026-09-30
  • R22-11rel:R22-11#2ac3f98c2026-10-14
  • R23-11rel:R23-11#a77ff00a2026-10-14
  • R24-11rel:R24-11#cb8092b92026-10-14
  • R25-11rel:R25-11#70152a762026-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_01502] Upstream: RS_Diag_04135

auto operator= (DataTransferReadSharedDataHandler &&other) & noexcept -> DataTransferReadSharedDataHandler & =default;

Move assigns an instance of this class.

Header-Datei#include "ara/diag/data_transfer.h"
Scopeclass ara::diag::DataTransferReadSharedDataHandler
Exception-Sicherheitexception safe

Parameter (out)

ParameterBeschreibung
otherThe other object

Rückgabewert

TypBeschreibung
DataTransferReadSharedDataHandlerReference to self

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_DM_01502
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01502@rel:R25-11#e78dda3d
Content hash
e78dda3d
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01502
Status: valid/unmigrated Version: rel:R25-11#832e8a63 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_01502@rel:R25-11#832e8a63
Point-in-Time History:
Recorded Revisions (5):
  • R25-11rel:R25-11#1624a5042026-09-30
  • R22-11rel:R22-11#e14988b02026-10-14
  • R23-11rel:R23-11#50b572f72026-10-14
  • R24-11rel:R24-11#267467a32026-10-14
  • R25-11rel:R25-11#832e8a632026-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_01503] Upstream: RS_Diag_04135

auto operator= (DataTransferReadSharedDataHandler const &) -> Data TransferReadSharedDataHandler &=delete;

Handlers shall not be copy-able since only one way usage i.e. per single file transfer session.

Header-Datei#include "ara/diag/data_transfer.h"
Scopeclass ara::diag::DataTransferReadSharedDataHandler

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_DM_01503
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01503@rel:R25-11#97a9bc25
Content hash
97a9bc25
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01503
Status: valid/unmigrated Version: rel:R25-11#b992cd12 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_01503@rel:R25-11#b992cd12
Point-in-Time History:
Recorded Revisions (5):
  • R25-11rel:R25-11#12b3008f2026-09-30
  • R22-11rel:R22-11#82fbd70f2026-10-14
  • R23-11rel:R23-11#c35f38a12026-10-14
  • R24-11rel:R24-11#15d3796f2026-10-14
  • R25-11rel:R25-11#b992cd122026-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

함수 ~DataTransferReadSharedDataHandler [SWS_DM_01499] Upstream: RS_Diag_04135

virtual ~DataTransferReadSharedDataHandler () noexcept=default;

Destructs an instance of this class. An instance of this class must not be destroyed before ExitRead() is called.

Header-Datei#include "ara/diag/data_transfer.h"
Scopeclass ara::diag::DataTransferReadSharedDataHandler
Exception-Sicherheitexception safe

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_DM_01499
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01499@rel:R25-11#3558aa71
Content hash
3558aa71
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01499
Status: valid/unmigrated Version: rel:R25-11#885ef68d 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_01499@rel:R25-11#885ef68d
Point-in-Time History:
Recorded Revisions (5):
  • R25-11rel:R25-11#9cd521aa2026-09-30
  • R22-11rel:R22-11#8b4091042026-10-14
  • R23-11rel:R23-11#404559c12026-10-14
  • R24-11rel:R24-11#e200ae122026-10-14
  • R25-11rel:R25-11#885ef68d2026-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