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

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

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

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

Класс ara::diag::DataTransferWriteSession инкапсулирует операции записи при диагностической передаче данных и координирует перенаправление в ориентированные на приложение обработчики записи ([SWS_DM_01555]). При входящих службах UDS, таких как TransferData (0x36) или RequestTransferExit (0x37), экземпляр диагностического сервера вызывает соответствующие методы Write или Exit зарегистрированных обработчиков ([SWS_DM_01317]). Поскольку конструктор по умолчанию и конструктор копирования удалены, сессия существует как исключающий создание копий безопасный относительно исключений одиночный экземпляр, создание которого, вероятно, осуществляется через шаблонные конструкторы. Вопрос (открытый)

Контекст

Класс ara::diag::DataTransferWriteSession инкапсулирует все варианты операций записи при передаче данных в функциональной области Adaptive Platform Diagnostics ([SWS_DM_01555]). Он выступает связующим элементом между экземпляром диагностического сервера платформы и специализированными реализациями приложения, которые осуществляют фактическую передачу данных на запись.

В рамках диагностических служб, таких как RequestFileTransfer (например, при режиме работы ReplaceFile (0x03) согласно [SWS_DM_01313]), экземпляр диагностического сервера принимает запросы на передачу. Если в дальнейшем поступают диагностические запросы службы UDS TransferData (0x36), сервер делегирует их методу Write того класса обработчика, который привязан к соответствующей DataTransferWriteSession ([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. Инициализация: при поступлении запроса на запись (например, RequestFileTransfer с kReplace согласно [SWS_DM_01313]) настраивается 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]Статус / подтверждениеExit() при RequestTransferExit (0x37) [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 Release R25-11.

Карта членов

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

2

Операторы

1

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

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

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

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

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

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

DataTransferWriteSession функция 3

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#a3371561
Content hash
a3371561
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#38203ed3
Content hash
38203ed3
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#c9f7eaa5
Content hash
c9f7eaa5
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#d73643d6
Content hash
d73643d6
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#f5b21c31
Content hash
f5b21c31
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#822e0f2a
Content hash
822e0f2a
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