DEENESPTFRRUARHIKOZHNL

क्लास ara::diag::DataTransferReadByPullHandler

[SWS_DM_01506] Upstream: RS_Diag_04135

class DataTransferReadByPullHandler {...};

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

Header-Datei#include "ara/diag/data_transfer.h"
Forwarding-Header#include "ara/diag/diag_fwd.h"
Scopenamespace ara::diag

उपयोगकर्ता गाइडएआई जनित

डायग्नोस्टिक रनटाइम एनवायरनमेंट को किसी ऐप्लिकेशन से फ़ाइल और डायरेक्टरी डेटा को चरणबद्ध तरीके से प्राप्त करने में सक्षम बनाता है।
एआई-जनित असत्यापित मॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: a81aee002281 उद्गम खुले प्रश्न (1)
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल

डायग्नोस्टिक रनटाइम एनवायरनमेंट को किसी ऐप्लिकेशन से फ़ाइल और डायरेक्टरी डेटा को चरणबद्ध तरीके से प्राप्त करने में सक्षम बनाता है।

क्लास ara::diag::DataTransferReadByPullHandler फ़ाइल या डायरेक्टरी डेटा उपलब्ध कराने का काम करती है, जिसे UDS रीड ऑपरेशन के संदर्भ में डायग्नोस्टिक लेयर AraDiag द्वारा ऐप्लिकेशन से सक्रिय रूप से प्राप्त ([SWS_DM_01506]) किया जाता है। इस प्रक्रिया में Read() के माध्यम से चरणबद्ध डेटा पुनर्प्राप्ति से लेकर ExitRead() के माध्यम से अंतिम सत्र समाप्ति तक शामिल है। एक सख्त लाइफ़साइकिल शर्त के रूप में, ठीक एक सिंगल ट्रांसफ़र सत्र से संबद्ध किसी हैंडलर इंस्टेंस को किसी भी स्थिति में ExitRead() के कॉल से पहले नष्ट नहीं किया जाना चाहिए ([SWS_DM_01510])।

संदर्भ

क्लास ara::diag::DataTransferReadByPullHandler ([SWS_DM_01506], AUTOSAR_AP_SWS_Diagnostics §8.10.2 “Class: DataTransferReadByPullHandler”) फ़ाइलों या डायरेक्टरीज़ को पढ़ने के लिए डायग्नोस्टिक अनुरोधों (जैसे RequestReadFile या RequestReadDirectory) द्वारा शुरू किए गए डेटा ट्रांसफ़र को संभालती है। यह आर्किटेक्चर एक पुल-प्रक्रिया पर आधारित है, जिसमें डायग्नोस्टिक लेयर AraDiag ट्रांसफ़र किए जाने वाले डेटा को कार्यान्वयन से सक्रिय रूप से पुनर्प्राप्त (“pulled”) करती है।

इस इंटरैक्शन में तीन घटक शामिल होते हैं: बाहरी UDS क्लाइंट (डायग्नोस्टिक टेस्टर), डायग्नोस्टिक सबसिस्टम AraDiag और ऐप्लिकेशन-विशिष्ट हैंडलर कार्यान्वयन। बाहरी क्लाइंट रीड अनुरोध भेजता है, जिसके बाद AraDiag चरणबद्ध तरीके से डेटा चंक्स उपलब्ध कराने और उन्हें UDS क्लाइंट को प्रेषित करने के लिए हैंडलर के मेथड्स को कॉल करता है ([SWS_DM_01513])।

जीवनचक्र

किसी हैंडलर इंस्टेंस का लाइफ़साइकिल विशेष रूप से किसी एकल फ़ाइल ट्रांसफ़र सत्र से बंधा होता है। डिफ़ॉल्ट कंस्ट्रक्टर protected घोषित किया गया है ([SWS_DM_01507])। व्याख्या: इसलिए, ठोस ऐप्लिकेशन संभवतः एक व्युत्पन्न सबक्लास को कार्यान्वित और इंस्टैंसिएट करेगा। प्रश्न Q-cb78bc4a1d40968b (खुला)

कॉपी ऑपरेशन पूरी तरह से अक्षम हैं: कॉपी कंस्ट्रक्टर ([SWS_DM_01509]) और कॉपी असाइनमेंट ऑपरेटर ([SWS_DM_01512]) हटाए गए (=delete) के रूप में निर्दिष्ट हैं, क्योंकि हैंडलर किसी सत्र के भीतर वन-वे उपयोग के लिए निर्धारित हैं (“only one way usage i.e. per single file transfer session”)। इसके विपरीत, मूव ऑपरेशन्स (Move Constructor और Move Assignment) डिफ़ॉल्ट कार्यान्वयन के रूप में परिभाषित हैं और noexcept के रूप में घोषित हैं ([SWS_DM_01508], [SWS_DM_01511], AUTOSAR_AP_SWS_Diagnostics §8.10.2.1.1.1 “Move Constructor”)।

रिलीज़ के लिए एक सख्त पूर्व-शर्त लागू होती है: मेथड ExitRead() को कॉल किए जाने से पहले क्लास के किसी भी इंस्टेंस को नष्ट नहीं किया जाना चाहिए ([SWS_DM_01510], AUTOSAR_AP_SWS_Diagnostics §8.10.2.1.1.2 “Destructor”)। कॉनकरेंसी के संबंध में, इंटरफ़ेस मेथड्स Read() और ExitRead() को नॉन-थ्रेड-सेफ़ (“not thread-safe”), लेकिन अपवाद-सुरक्षित (noexcept) परिभाषित किया गया है ([SWS_DM_01513], [SWS_DM_01514])।

उपयोग पथ

डेटा पुनर्प्राप्ति का नियमित प्रवाह निम्नलिखित चरणों में विभाजित है:

  1. आरंभीकरण: ऐप्लिकेशन आगामी ट्रांसफ़र सत्र के लिए व्युत्पन्न हैंडलर क्लास को इंस्टैंसिएट करता है।
  2. डेटा पुनर्प्राप्ति: डेटा ब्लॉक्स उपलब्ध कराने के लिए AraDiag मेथड Read() को कॉल करता है ([SWS_DM_01513], AUTOSAR_AP_SWS_Diagnostics §8.10.2.1.3.2 “Read”)। ऐप्लिकेशन AraDiag द्वारा पूर्व-आवंटित बफ़र पर एक मेमोरी व्यू response_data (प्रकार ara::core::Span<const ara::core::Byte> का) प्राप्त करता है, इसे अगली फ़ाइल सामग्री से भरता है और लिखे गए बाइट्स की संख्या के साथ ara::core::Future<std::uint32_t> को पूरा करता है। AraDiag ब्लॉक अनुक्रम काउंटर (blockSequenceCounter) के बाद इस डेटा को transferResponseParameterRecord के रूप में सकारात्मक UDS प्रतिक्रिया में सम्मिलित करता है ([SWS_DM_01513])। यह चरण बाद के चंक्स के लिए दोहराया जाता है।
  3. सत्र समाप्ति: ट्रांसफ़र को नियमित रूप से समाप्त करने के लिए AraDiag, ExitRead() को कॉल करता है ([SWS_DM_01514], AUTOSAR_AP_SWS_Diagnostics §8.10.2.1.3.1 “ExitRead”)। समाप्ति का कारण exit_type, निर्माता-विशिष्ट पैरामीटर्स (transfer_request_parameter_record), meta_info और एक cancellation_handler पास किए जाते हैं। कार्यान्वयन इसे एक ara::core::Future<ara::core::Vector<ara::core::Byte>> के माध्यम से स्वीकार करता है, जिसके रिटर्न मान सकारात्मक प्रतिक्रिया में SID के बाद प्रेषित किए जाते हैं ([SWS_DM_01514])।
  4. रिलीज़: हैंडलर ऑब्जेक्ट को केवल ExitRead() के सफल कॉल के बाद ही नष्ट किया जा सकता है ([SWS_DM_01510])।
पुल विधि द्वारा डेटा ट्रांसफ़र का अनुक्रमUDS-ClientAraDiagHandlerLeseanforderung (RequestReadFile/-Directory)Read(response_data, meta_info, cancellation_handler)Datenblock in response_data schreibenFuture<uint32_t> (geschriebene Bytezahl)Positive UDS-Antwort (Datenblock)Abschlussanforderung (TransferExit)ExitRead(exit_type, transfer_request_parameter_record, ...)Future<Vector<Byte>> (पुष्टि/अतिरिक्त डेटा)Positive UDS-Antwort (TransferExit)

अनुक्रम आरेख: AraDiag के माध्यम से पुल-प्रक्रिया द्वारा डेटा पुनर्प्राप्ति का विशिष्ट प्रवाह। स्रोत: [SWS_DM_01513], [SWS_DM_01514]

त्रुटि परिदृश्य

यदि डेटा तैयार करने या समाप्ति के दौरान त्रुटियां होती हैं, तो ऐप्लिकेशन इसे लौटाए गए Future के माध्यम से रिपोर्ट करता है, इसे ISO 14229-1 के अनुसार UDS त्रुटि कोड (DiagUdsNrcErrc) के साथ प्रदान करके ([SWS_DM_01513], [SWS_DM_01514])। AraDiag इसके बाद टेस्टर को संबंधित नकारात्मक UDS प्रतिक्रिया (NRC) उत्पन्न करता है।

समयपूर्व निरस्तीकरण के लिए, दोनों मेथड्स को एक CancellationHandler पास किया जाता है ([SWS_DM_01513], [SWS_DM_01514])। ऐप्लिकेशन cancellation_handler.IsCanceled() के माध्यम से जांच सकता है कि क्या वार्तालाप रद्द कर दिया गया था, या cancellation_handler.SetNotifier() के माध्यम से एक कॉलबैक फ़ंक्शन पंजीकृत कर सकता है। प्रदान किए गए बफ़र्स (response_data और transfer_request_parameter_record) प्रॉमिस की पूर्ति तक या हैंडलर के माध्यम से निरस्तीकरण तक मान्य रहते हैं।

यदि इंस्टेंस को ExitRead() के कॉल से पहले नष्ट कर दिया जाता है, तो यह विनिर्देश आवश्यकता का उल्लंघन है ([SWS_DM_01510]), जिससे अपूर्ण ट्रांसफ़र सत्र और अनिर्धारित सिस्टम स्थितियां हो सकती हैं।

यह क्लास गाइड AUTOSAR Adaptive R25-11 विनिर्देश पर आधारित है और इंटरफ़ेस ara::diag::DataTransferReadByPullHandler की आवश्यकताओं को सारांशित करता है।

सदस्य मानचित्र

कंस्ट्रक्टर और डिस्ट्रक्टर

2

मेथड

2

ऑपरेटर

1

क्लास आरेख

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

G nara__diag__DataTransferReadByPullHandler313 DataTransferReadByPullHandler + DataTransferReadByPullHandler() + ~DataTransferReadByPullHandler() + ExitRead() + Read() + operator=()

विवरण दृश्य

रूपरेखा में कोई प्रविष्टि चुनें।

कंस्ट्रक्टर और डिस्ट्रक्टर

DataTransferReadByPullHandler फ़ंक्शन 3

Constructs an instance of this class.

ओवरलोड DataTransferReadByPullHandler 3
DataTransferReadByPullHandler () noexcept=default; SWS_DM_01507
DataTransferReadByPullHandler (DataTransferReadByPullHandler &&other) noexcept=default; SWS_DM_01508
DataTransferReadByPullHandler (DataTransferReadByPullHandler const &)=delete; SWS_DM_01509
~DataTransferReadByPullHandler फ़ंक्शन

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

virtual ~DataTransferReadByPullHandler () 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 फ़ंक्शन

Reads data chunk from the application. The first or subsequent file/directory info content chunk to be sent back to the UDS client will be composed by the application and copied into the provided by ara::diag Span with up to the requested Span size.

virtual auto Read (ara::core::Span< const ara::core::Byte > response_ data, MetaInfo const &meta_info, CancellationHandler cancellation_ handler) noexcept -> ara::core::Future< std::uint32_t >=0;

ऑपरेटर

operator= फ़ंक्शन 2

Move assigns an instance of this class.

ओवरलोड = 2
auto operator= (DataTransferReadByPullHandler &&other) & noexcept -> DataTransferReadByPullHandler & =default; SWS_DM_01511
auto operator= (DataTransferReadByPullHandler const &) -> DataTransfer ReadByPullHandler &=delete; SWS_DM_01512

मेथड का प्रलेखन

फ़ंक्शन DataTransferReadByPullHandler [SWS_DM_01507] Upstream: RS_Diag_04135

DataTransferReadByPullHandler () noexcept=default;

Constructs an instance of this class.

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

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

Record
AUTOSAR/AP/record/SWS_DM_01507
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01507@rel:R25-11#6a0e182d
Content hash
6a0e182d
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01507
Status: valid/unmigrated Version: rel:R25-11#60e90ec2 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_01507@rel:R25-11#60e90ec2
Point-in-Time History:
Recorded Revisions (5):
  • R25-11rel:R25-11#326df67e2026-09-30
  • R22-11rel:R22-11#5e0a297b2026-10-14
  • R23-11rel:R23-11#c1526a6f2026-10-14
  • R24-11rel:R24-11#c9a8ba842026-10-14
  • R25-11rel:R25-11#60e90ec22026-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

फ़ंक्शन DataTransferReadByPullHandler [SWS_DM_01508] Upstream: RS_Diag_04135

DataTransferReadByPullHandler (DataTransferReadByPullHandler &&other) noexcept=default;

Move constructs an instance of this class.

Header-Datei#include "ara/diag/data_transfer.h"
Scopeclass ara::diag::DataTransferReadByPullHandler
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_01508
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01508@rel:R25-11#2234c0fa
Content hash
2234c0fa
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01508
Status: valid/unmigrated Version: rel:R25-11#86fd98f3 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_01508@rel:R25-11#86fd98f3
Point-in-Time History:
Recorded Revisions (5):
  • R25-11rel:R25-11#017f4b222026-09-30
  • R22-11rel:R22-11#2ef417eb2026-10-14
  • R23-11rel:R23-11#11faa0bb2026-10-14
  • R24-11rel:R24-11#8d1119962026-10-14
  • R25-11rel:R25-11#86fd98f32026-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

फ़ंक्शन DataTransferReadByPullHandler [SWS_DM_01509] Upstream: RS_Diag_04135

DataTransferReadByPullHandler (DataTransferReadByPullHandler const &)=delete;

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

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

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

Record
AUTOSAR/AP/record/SWS_DM_01509
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01509@rel:R25-11#b66eb525
Content hash
b66eb525
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01509
Status: valid/unmigrated Version: rel:R25-11#23947b98 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_01509@rel:R25-11#23947b98
Point-in-Time History:
Recorded Revisions (5):
  • R25-11rel:R25-11#22037eeb2026-09-30
  • R22-11rel:R22-11#8ff68aa32026-10-14
  • R23-11rel:R23-11#f186fbd82026-10-14
  • R24-11rel:R24-11#3c2842b72026-10-14
  • R25-11rel:R25-11#23947b982026-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_01514] 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.

एआई-जनित असत्यापित मॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: 7a822a7b2a3d उद्गम
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल

प्योर वर्चुअल मेथड ExitRead, ara::diag::DataTransferReadByPullHandler [SWS_DM_01514] (AUTOSAR_AP_SWS_Diagnostics §8.10.2.1.3.1 “ExitRead”) के ढांचे में चल रहे डेटा ट्रांसफर सत्र को समाप्त करती है। यह पैरामीटर के रूप में समाप्ति कारण exit_type (प्रकार DataTransferExitType), transfer_request_parameter_record में वाहन निर्माता-विशिष्ट पैरामीटर (ara::core::Span<const ara::core::Byte> के रूप में), अनुरोध संदर्भ meta_info तथा एक cancellation_handler स्वीकार करती है। पैरामीटर transfer_request_parameter_record तब तक मान्य रहता है जब तक कि संबंधित Promise पूरा नहीं हो जाता या Cancellation-Handler के माध्यम से निष्पादन रद्द नहीं कर दिया जाता [SWS_DM_01514]।

कॉल एसिंक्रोनस रूप से होता है और एक ara::core::Future<ara::core::Vector<ara::core::Byte>> लौटाता है [SWS_DM_01514]:

  • सफलता के मामले में, सकारात्मक रिस्पॉन्स संदेश के लिए Future प्रदान किया जाता है; इस दौरान OperationOutput.response_data का डेटा सर्विस ID के बाद transferResponseParameterRecord के रूप में रखा जाता है।
  • त्रुटि के मामले में, नकारात्मक रिस्पॉन्स संदेश के लिए Future को ISO 14229-1 के अनुसार DiagUdsNrcErrc से एक UDS त्रुटि कोड (NRC) के साथ पूरा किया जाता है।

फ़ंक्शन को noexcept घोषित किया गया है और यह अपवाद-सुरक्षित (exception safe) है, लेकिन थ्रेड-सुरक्षित नहीं (not thread-safe) है [SWS_DM_01514]। cancellation_handler के माध्यम से, cancellation_handler.IsCanceled() का उपयोग करके रद्दीकरण स्थिति की क्वेरी की जा सकती है या वार्तालाप के रद्दीकरण के लिए cancellation_handler.SetNotifier() के माध्यम से एक अधिसूचना फ़ंक्शन पंजीकृत किया जा सकता है [SWS_DM_01514]।

क्रम के संबंध में, DataTransferReadByPullHandler के किसी इंस्टेंस को ExitRead() के कॉल होने से पहले किसी भी स्थिति में नष्ट नहीं किया जाना चाहिए [SWS_DM_01510]। इसी प्रकार के टर्मिनेशन फ़ंक्शन्स और डिस्ट्रक्टर स्थितियाँ समानांतर में ara::diag::DataTransferReadSharedDataHandler::ExitRead [SWS_DM_01505] ([SWS_DM_01499]) और ara::diag::DataTransferReadByPushHandler::ExitRead [SWS_DM_01523] ([SWS_DM_01519]) के लिए मौजूद हैं।

यह पाठ एक AI द्वारा तैयार किया गया था; केवल विनिर्देश ही बाध्यकारी है।

इम्प्लीमेंटर गाइड जल्द आएगी (जटिलता I2)

Header-Datei#include "ara/diag/data_transfer.h"
Scopeclass ara::diag::DataTransferReadByPullHandler
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_infoMetaInfo 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 > >A Future, which either gets readied to OperationOutput (transfer ResponseParameterRecord for a positive response message) or readied with UDS 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_01514
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01514@rel:R25-11#17442684
Content hash
17442684
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01514
Status: valid/unmigrated Version: rel:R25-11#5862e917 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_01514@rel:R25-11#5862e917
Point-in-Time History:
Recorded Revisions (5):
  • R25-11rel:R25-11#b7df1d392026-09-30
  • R22-11rel:R22-11#a8dad66b2026-10-14
  • R23-11rel:R23-11#bb1c081f2026-10-14
  • R24-11rel:R24-11#8447e69b2026-10-14
  • R25-11rel:R25-11#5862e9172026-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_01513] Upstream: RS_Diag_04135

virtual auto Read (ara::core::Span< const ara::core::Byte > response_ data, MetaInfo const &meta_info, CancellationHandler cancellation_ handler) noexcept -> ara::core::Future< std::uint32_t >=0;

Reads data chunk from the application. The first or subsequent file/directory info content chunk to be sent back to the UDS client will be composed by the application and copied into the provided by ara::diag Span with up to the requested Span size.

एआई-जनित असत्यापित मॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: 104f857aa59e उद्गम
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल

उपयोग और कॉल सिमेंटिक्स

क्लास ara::diag::DataTransferReadByPullHandler का मेथड Read UDS डेटा स्थानांतरण के संदर्भ में एप्लिकेशन द्वारा डेटा ब्लॉक्स को पढ़ने के लिए उपयोग किया जाता है [SWS_DM_01513]। एप्लिकेशन पहले या बाद के फ़ाइल अथवा निर्देशिका सामग्री ब्लॉक्स को संकलित करता है और इन्हें ara::diag द्वारा पास किए गए बफ़र response_data (प्रकार ara::core::Span<const ara::core::Byte>) में अधिकतम स्पैन के आकार तक कॉपी करता है।

कॉल एसिंक्रोनस रूप से होती है और एक ara::core::Future<std::uint32_t> लौटाती है [SWS_DM_01513]। सफलता के मामले में Future वास्तव में प्रदान की गई बाइट संख्या के साथ पूर्ण होता है; यह डेटा सकारात्मक UDS प्रतिक्रिया में blockSequenceCounter के बाद transferResponseParameterRecord के रूप में रखा जाता है। पैरामीटर cancellation_handler के माध्यम से एप्लिकेशन IsCanceled() का उपयोग करके रद्दीकरण स्थिति की क्वेरी कर सकता है या SetNotifier() के माध्यम से रद्दीकरण के लिए एक अधिसूचना फ़ंक्शन पंजीकृत कर सकता है।

त्रुटि प्रबंधन और सीमा शर्तें

त्रुटि की स्थिति में Future को ISO 14229-1 के अनुसार DiagUdsNrcErrc से एक लागू UDS NRC के साथ पूरा किया जाता है [SWS_DM_01513]। यदि कोई इंटरफ़ेस offer() के माध्यम से प्रदान नहीं किया गया है या अब प्रदान नहीं किया गया है, तो DM NRC 0x94 (ResourceTemporarilyNotAvailable) के साथ उत्तर देता है [SWS_DM_01257]।

समवर्तीता और परस्पर क्रिया

इंटरफ़ेस को गैर-थ्रेड-सुरक्षित (not thread-safe), लेकिन अपवाद-सुरक्षित (exception safe) के रूप में निर्दिष्ट किया गया है [SWS_DM_01513]। response_data का मेमोरी क्षेत्र केवल तब तक मान्य रहता है जब तक कि संबंधित Promise पूरा न हो जाए या प्रक्रिया रद्द न हो जाए। पुल पैटर्न के विकल्प के रूप में, डेटा स्थानांतरण के लिए DataTransferReadByPushHandler::Read [SWS_DM_01522] के माध्यम से पुश विधि और साथ ही DataTransferReadSharedOwnershipHandler::Read [SWS_DM_01504] के माध्यम से साझा स्वामित्व वाला स्थानांतरण मौजूद है।

यह उपयोग संबंधी निर्देश AUTOSAR Adaptive के विनिर्देश दस्तावेज़ों के आधार पर स्वचालित रूप से तैयार किया गया था।

इम्प्लीमेंटर गाइड जल्द आएगी (जटिलता I1)

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

Parameter (in)

ParameterBeschreibung
response_dataThe view over a pre-allocated by AraDiag memory to write in this data chunk. Lifetime: Valid until Promise is fulfilled or the processing is cancelled by the cancellationHandler.
meta_infoMetaInfo 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<std::uint32_t >A Future, which either gets readied to actual amount of data provided in the Span (for a positive response message) or readied with UDS ErrorCode from DiagUdsNrcErrc (for an negative response message). Data in response_data will be placed after 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_01513
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01513@rel:R25-11#d70567c8
Content hash
d70567c8
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01513
Status: valid/unmigrated Version: rel:R25-11#63972da5 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_01513@rel:R25-11#63972da5
Point-in-Time History:
Recorded Revisions (5):
  • R25-11rel:R25-11#1d9ca4162026-09-30
  • R22-11rel:R22-11#75393c2a2026-10-14
  • R23-11rel:R23-11#ca5dc2382026-10-14
  • R24-11rel:R24-11#8cc6dd042026-10-14
  • R25-11rel:R25-11#63972da52026-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_01511] Upstream: RS_Diag_04135

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

Move assigns an instance of this class.

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

Parameter (out)

ParameterBeschreibung
otherThe other object

Rückgabewert

TypBeschreibung
DataTransferReadByPullHandlerReference to self

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

Record
AUTOSAR/AP/record/SWS_DM_01511
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01511@rel:R25-11#26f6fd1b
Content hash
26f6fd1b
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01511
Status: valid/unmigrated Version: rel:R25-11#b782b337 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_01511@rel:R25-11#b782b337
Point-in-Time History:
Recorded Revisions (5):
  • R25-11rel:R25-11#c6a866242026-09-30
  • R22-11rel:R22-11#4b9d42d12026-10-14
  • R23-11rel:R23-11#44c930122026-10-14
  • R24-11rel:R24-11#5df4ff4d2026-10-14
  • R25-11rel:R25-11#b782b3372026-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_01512] Upstream: RS_Diag_04135

auto operator= (DataTransferReadByPullHandler const &) -> DataTransfer ReadByPullHandler &=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::DataTransferReadByPullHandler

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

Record
AUTOSAR/AP/record/SWS_DM_01512
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01512@rel:R25-11#da2f04ed
Content hash
da2f04ed
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01512
Status: valid/unmigrated Version: rel:R25-11#c19a0a89 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_01512@rel:R25-11#c19a0a89
Point-in-Time History:
Recorded Revisions (5):
  • R25-11rel:R25-11#9cf22d9e2026-09-30
  • R22-11rel:R22-11#8bde9da32026-10-14
  • R23-11rel:R23-11#e27d97752026-10-14
  • R24-11rel:R24-11#fef1656d2026-10-14
  • R25-11rel:R25-11#c19a0a892026-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

फ़ंक्शन ~DataTransferReadByPullHandler [SWS_DM_01510] Upstream: RS_Diag_04135

virtual ~DataTransferReadByPullHandler () 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::DataTransferReadByPullHandler
Exception-Sicherheitexception safe

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

Record
AUTOSAR/AP/record/SWS_DM_01510
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01510@rel:R25-11#7980462f
Content hash
7980462f
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01510
Status: valid/unmigrated Version: rel:R25-11#b0161e65 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_01510@rel:R25-11#b0161e65
Point-in-Time History:
Recorded Revisions (5):
  • R25-11rel:R25-11#aa3b8d842026-09-30
  • R22-11rel:R22-11#66de4fbf2026-10-14
  • R23-11rel:R23-11#ac8a6a602026-10-14
  • R24-11rel:R24-11#6759ad7c2026-10-14
  • R25-11rel:R25-11#b0161e652026-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