DEENESPTFRRUARHIKOZHNL

класс 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

Руководство пользователяСОЗДАНО ИИ

Инкапсулирует активные сеансы диагностического чтения и перенаправляет входящие передачи данных зарегистрированным обработчикам.
СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 9db606b147f6 Происхождение Открытые вопросы (2)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Инкапсулирует активные сеансы диагностического чтения и перенаправляет входящие передачи данных зарегистрированным обработчикам.

Класс служит для инкапсуляции и структурированного управления всеми вариантами диагностических передач при чтении в адаптивном модуле диагностики AUTOSAR согласно [SWS_DM_01548]. После успешного запуска операции чтения экземпляр диагностического сервера делегирует входящие запросы на последовательную передачу блоков данных и на завершение сеанса зарегистрированным методам обработчика чтения [SWS_DM_01317]. За счет целенаправленного отключения операций копирования при одновременной поддержке семантики перемещения класс обеспечивает однозначное закрепление владения базовым сеансом передачи.

Контекст

Класс ara::diag::DataTransferReadSession представляет собой инкапсуляцию всех вариантов диагностического чтения блоков данных в адаптивном модуле диагностики [SWS_DM_01548]. В рамках стандартизированных сервисов UDS, таких как RequestFileTransfer (0x38), TransferData (0x36) и RequestTransferExit (0x37), класс сеанса выступает связующим звеном между внутренней средой выполнения диагностического сервера и специфичными для приложения обработчиками чтения SWS Diagnostics §7 «Realization of TransferData and RequestTransferExit». Он гарантирует, что текущие операции считывания — например, для файлов через ReadFile [SWS_DM_01314] или каталогов через ReadDir [SWS_DM_01315] — управляются изолированно и перенаправляются соответствующим обработчикам.

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

Контекстная диаграмма: встраивание DataTransferReadSession между сервером диагностики и обработчиком приложения. Источники: [SWS_DM_01317], [SWS_DM_01318], SWS Diagnostics §7 «Realization of TransferData and RequestTransferExit»

Жизненный цикл

Экземпляр ara::diag::DataTransferReadSession имеет время жизни, строго привязанное к сеансу передачи. Создание через конструктор по умолчанию явно запрещено [SWS_DM_01549]. Вместо этого сеанс инициализируется через специализированные шаблонные конструкторы, которые регистрируют специфичные для приложения обработчики SWS Diagnostics §7 «Realization of TransferData and RequestTransferExit». На практике создание экземпляра, вероятно, обычно выполняется сервером диагностики или обработчиком сервиса при инициации передачи файла. Вопрос Q-b0706bcd28c702c6 (открытый)

Чтобы исключить множественное владение или несогласованные состояния сеанса, ara::diag::DataTransferReadSession спроектирован как некопируемый единичный экземпляр: как конструктор копирования [SWS_DM_01553], так и оператор присваивания копированием [SWS_DM_01554] удалены (=delete). Передача владения предусмотрена исключительно через семантику перемещения. Конструктор перемещения [SWS_DM_01551] и оператор присваивания перемещением [SWS_DM_01552] определены как noexcept=default. Уничтожение происходит детерминированно через деструктор [SWS_DM_01550], который также объявлен как noexcept=default. По-видимому, завершение передачи через RequestTransferExit приводит к освобождению объекта. Вопрос Q-c1999fd1f283a007 (открытый)

Путь использования

Типичный процесс сеанса передачи при чтении делится на три последовательные фазы:

  • Инициализация: внешний диагностический клиент отправляет RequestFileTransfer с режимом чтения, таким как ReadFile (0x04) [SWS_DM_01314] или ReadDir (0x05) [SWS_DM_01315]. При этом создается экземпляр сеанса и регистрируется обработчик чтения.
  • Передача данных: входящие диагностические запросы типа TransferData (0x36) диагностический сервер обрабатывает путем вызова соответствующего метода Read обработчика, зарегистрированного через шаблонные конструкторы [SWS_DM_01317]. Это происходит итеративно для каждого запрошенного блока данных.
  • Завершение: как только все данные переданы, клиент отправляет RequestTransferExit (0x37). После этого диагностический сервер вызывает метод Exit зарегистрированного обработчика для корректного завершения операции чтения [SWS_DM_01318].
Последовательность передачи данных для чтения на основе файловДиагностический клиентDiagnostic ServerDataTransferReadSessionRequestFileTransfer (0x38)ReadFile / ReadDirInitialisierung viaTemplate-KonstruktorPositiv-Response (0x78)loopПока передаются блоки данныхTransferData (0x36)Read()Gelesene BlockdatenTransferData Positiv-ResponseRequestTransferExit (0x37)Exit()Подтверждение завершенияRequestTransferExit Response

Диаграмма последовательности: последовательность вызовов операции UDS-чтения с передачей зарегистрированному сеансу. Источники: [SWS_DM_01314], [SWS_DM_01315], [SWS_DM_01317], [SWS_DM_01318]

Сценарии ошибок

Поскольку ara::diag::DataTransferReadSession объявлен как final, а конструктор по умолчанию [SWS_DM_01549] отсутствует, ошибочное создание без зарегистрированного обработчика предотвращается еще на этапе компиляции. Удаленные операции копирования [SWS_DM_01553] также исключают случайное дублирование состояний сеанса. Как конструктор перемещения, так и перемещающее присваивание и деструктор гарантируют абсолютную безопасность относительно исключений благодаря спецификации noexcept [SWS_DM_01551] [SWS_DM_01550]. Сбой предоставления блоков данных в обработчике обрабатывается на уровне протокола в рамках UDS-коммуникации.

Настоящее руководство основано на спецификации AUTOSAR Adaptive Platform R25-11 (модуль diag) и обобщает требования к ara::diag::DataTransferReadSession.

Карта членов

Конструкторы и деструктор

2

Операторы

1

Диаграмма классов

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

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

Подробный вид

Выберите элемент в оглавлении.

Конструкторы и деструктор

DataTransferReadSession функция 3

No default construction allowed.

Перегрузки 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;

Операторы

operator= функция 2

Move assigns an instance of this class.

Перегрузки = 2
auto operator= (DataTransferReadSession &&other) & noexcept -> Data TransferReadSession & =default; SWS_DM_01552
auto operator= (DataTransferReadSession const &) -> DataTransferRead Session &=delete; SWS_DM_01554

Документация методов

функция 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#e533099a
Content hash
e533099a
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

функция 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#561270af
Content hash
561270af
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

функция 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#c8344fad
Content hash
c8344fad
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

функция 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#bef60748
Content hash
bef60748
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

функция 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#9c09faa8
Content hash
9c09faa8
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

функция ~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#fae9f588
Content hash
fae9f588
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