Служит для инкапсуляции сжатых и несжатых размеров файлов в байтах в службах передачи файлов.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: a9f49ae913f1ПроисхождениеОткрытые вопросы (3)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Служит для инкапсуляции сжатых и несжатых размеров файлов в байтах в службах передачи файлов.
Структура ara::diag::FileTransferService::FileSizes служит стандартизированным объектом-значением для инкапсуляции сведений о размере файлов внутри диагностического модуля AUTOSAR Adaptive Platform [SWS_DM_01321]. Она объединяет несжатый и сжатый размер файла в байтах в двух открытых 64-битных целочисленных переменных для подготовки и мониторинга операций передачи [SWS_DM_01322]. Будучи пассивной записью данных, структура не имеет ни собственных методов, ни внутренней обработки ошибок, поэтому проверка достоверности переданных значений, а также потокобезопасность должны обеспечиваться вызывающими компонентами.
Контекст
Структура ara::diag::FileTransferService::FileSizes является неотъемлемой частью диагностического модуля (diag) в AUTOSAR Adaptive Platform [SWS_DM_01321]. Внутри пространства имен вышестоящей службы ara::diag::FileTransferService она определяет компактную модель данных для представления полных сведений о размере файлов AUTOSAR_AP_SWS_Diagnostics §8.18.2 «Struct: FileSizes». Тип объявляется через заголовочный файл ara/diag/file_transfer.h[SWS_DM_01322]. Ее основная задача состоит в объединении релевантной для операций передачи файлов информации о размере в единой структуре данных, чтобы взаимодействующие компоненты платформы и приложений могли согласованно обмениваться размерами файлов AUTOSAR_AP_SWS_Diagnostics с. 1126.
С функциональной точки зрения структура данных фиксирует два отдельных показателя размера: общий несжатый размер файла через элемент uncompressed_size[SWS_DM_01322], а также общий сжатый размер через элемент compressed_size[SWS_DM_01323]. Оба значения ведутся как беззнаковые 64-битные целые числа (std::uint64_t) в единице измерения «байт». Благодаря этому FileSizes выступает в качестве семантического носителя информации между диагностическими клиентами, Diagnostic Management и конкретными поставщиками служб, выполняющими передачу файлов на адаптивной платформе.
Жизненный цикл
Структура ara::diag::FileTransferService::FileSizes смоделирована как чистая запись данных (Value Object) без собственных виртуальных методов или сложных иерархий наследования AUTOSAR_AP_SWS_Diagnostics §8.18.2.1 «Public Member Variables». Создание обычно происходит непосредственно в стеке вызовов или в качестве члена вышестоящей структуры данных. Поскольку содержатся исключительно стандартные целочисленные типы, структура по умолчанию, вероятно, допускает как копирование, так и перемещение и не требует динамического управления памятью в куче. Вопрос Q-f9c6e76fc8c62463 (открытый)
Отношения владения определяются соответствующим контекстом использования: если экземпляр создается диагностическим приложением, владение остается за этим приложением или переходит к вызываемым интерфейсным функциям путем передачи по значению (Pass-by-Value). Уничтожение экземпляра тривиально и происходит автоматически при выходе из области видимости (Scope) без дополнительной логики очистки. Поскольку тип не предусматривает внутренних механизмов синхронизации, скоординированное и потокобезопасное использование при параллельном доступе к одному и тому же экземпляру, по-видимому, полностью возлагается на задействованные диагностические или прикладные компоненты. Вопрос Q-d2e83f9098c7f8c8 (открытый)
Путь использования
Типичное применение структуры подразделяется на этапы инициализации, заполнения параметров и передачи процедурам передачи FileTransferService[SWS_DM_01321]. В типичном сценарии использования отправляющий компонент перед началом передачи файла определяет фактические размеры файла в файловой системе или в памяти. Затем он инстанцирует FileSizes и присваивает обеим открытым переменным измеренные байтовые значения:
uncompressed_size: указывает абсолютный размер исходного файла в байтах [SWS_DM_01322].
compressed_size: указывает сжатый размер передаваемого потока данных в байтах [SWS_DM_01323].
Если файл передается без предварительного сжатия, compressed_size и uncompressed_size, вероятно, содержат идентичные значения. Вопрос Q-1edcb924fd5932ee (открытый) После инициализации структура передается соответствующим методам передачи файлов, чтобы принимающие стороны могли заранее выделить требуемый объем памяти и точно отслеживать ход передачи AUTOSAR_AP_SWS_Diagnostics с. 77.
Сценарии ошибок
В спецификации ara::diag::FileTransferService::FileSizes не определено собственных диагностических кодов ошибок, возвращаемых значений или исключений AUTOSAR_AP_SWS_Diagnostics §8.18.2 «Struct: FileSizes». Будучи пассивным типом данных, сама структура не генерирует сообщений об ошибках и не проверяет внесенные значения во время выполнения.
Потенциальные ошибки возникают прежде всего из-за некорректных предусловий и постусловий при заполнении параметров. Благодаря типу std::uint64_t могут быть представлены значения вплоть до $2^{64}-1$ байт [SWS_DM_01322], [SWS_DM_01323]. Если компонент передаст недостоверные размеры — например, значение ноль байт для существующих файлов или сжатый размер, который без правдоподобного объяснения значительно превышает несжатый размер, — это должно перехватываться логикой предварительной или последующей обработки FileTransferService. Переполнение доступной целевой памяти также представляет собой вышестоящий сценарий ошибки, который должен выявляться на основе байтовых значений, переданных в FileSizes, до начала передачи данных.
Данное руководство по классу основано на спецификации AUTOSAR Adaptive Platform R25-11 (модуль diag) и создано для autodocs.
UML-диаграмма классов
Hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); Klicken öffnet die jeweilige Klassenseite.
gemini-3.8-flash-low· 2026-10-13 · Немецкий оригинал