Dient der Kapselung von komprimierten und unkomprimierten Dateigrößen in Bytes bei Dateiübertragungsdiensten.
Kontext
Die Struktur ara::diag::FileTransferService::FileSizes ist ein integraler Bestandteil des Diagnosemoduls (diag) in der AUTOSAR Adaptive Platform [SWS_DM_01321]. Innerhalb des Namensraums des übergeordneten Dienstes ara::diag::FileTransferService definiert sie ein kompaktes Datenmodell zur Repräsentation vollständiger Dateigrößenangaben AUTOSAR_AP_SWS_Diagnostics §8.18.2 „Struct: FileSizes“. Deklariert wird der Typ über die Header-Datei ara/diag/file_transfer.h [SWS_DM_01322]. Ihre primäre Verantwortung besteht darin, die für Dateiübertragungsoperationen relevanten Größeninformationen in einer einheitlichen Datenstruktur zu bündeln, sodass interagierende Plattform- und Applikationskomponenten Dateigrößen konsistent austauschen können AUTOSAR_AP_SWS_Diagnostics S. 1126.
Fachlich erfasst die Datenstruktur zwei distinkte Größenangaben: die unkomprimierte Gesamtgröße einer Datei über das Element uncompressed_size [SWS_DM_01322] sowie die komprimierte Gesamtgröße über das Element compressed_size [SWS_DM_01323]. Beide Werte werden als vorzeichenlose 64-Bit-Ganzzahlen (std::uint64_t) in der Maßeinheit Byte geführt. Dadurch fungiert FileSizes als semantischer Informationsträger zwischen Diagnose-Clients, dem Diagnose-Management und den konkreten Dienstanbietern, die Dateiübertragungen auf der adaptiven Plattform abwickeln.
Lebenszyklus
Die Struktur ara::diag::FileTransferService::FileSizes ist als reiner Datensatz (Value Object) ohne eigene virtuelle Methoden oder komplexe Vererbungshierarchien modelliert AUTOSAR_AP_SWS_Diagnostics §8.18.2.1 „Public Member Variables“. Die Erzeugung erfolgt typischerweise direkt auf dem Aufruf-Stack oder als Member einer übergeordneten Datenstruktur. Da ausschließlich Standard-Ganzzahltypen enthalten sind, dürfte die Struktur standardmäßig sowohl kopierbar als auch verschiebbar sein und keine dynamische Speicherverwaltung auf dem Heap erfordern. Frage Q-f9c6e76fc8c62463 (offen)
Besitzverhältnisse richten sich nach dem jeweiligen Nutzungskontext: Wird eine Instanz von einer Diagnoseanwendung erstellt, verbleibt der Besitz bei dieser Anwendung oder geht durch Wertübergabe (Pass-by-Value) an aufgerufene Schnittstellenfunktionen über. Die Zerstörung der Instanz ist trivial und vollzieht sich automatisch mit dem Verlassen des Gültigkeitsbereichs (Scope) ohne zusätzliche Bereinigungslogik. Da der Typ keine internen Synchronisationsmechanismen vorsieht, obliegt die koordinierte und thread-sichere Verwendung bei nebenläufigem Zugriff auf dieselbe Instanz vermutlich vollständig den beteiligten Diagnose- oder Anwendungskomponenten. Frage Q-d2e83f9098c7f8c8 (offen)
Nutzungspfad
Der typische Einsatz der Struktur gliedert sich in die Phasen der Initialisierung, der Parameterbelegung und der Weitergabe an Übertragungsroutinen des FileTransferService [SWS_DM_01321]. In einem typischen Anwendungsfall ermittelt eine sendende Komponente vor Beginn einer Dateiübertragung die tatsächlichen Dateidimensionen auf dem Dateisystem oder im Speicher. Anschließend instanziiert sie FileSizes und weist den beiden öffentlichen Variablen die gemessenen Bytewerte zu:
uncompressed_size: Spezifiziert die absolute Größe der Originaldatei in Bytes [SWS_DM_01322].
compressed_size: Spezifiziert die komprimierte Größe des zu übertragenden Datenstroms in Bytes [SWS_DM_01323].
Wird eine Datei ohne vorherige Komprimierung übertragen, dürften compressed_size und uncompressed_size vermutlich identische Werte tragen. Frage Q-1edcb924fd5932ee (offen) Nach der Initialisierung wird die Struktur an die entsprechenden Methoden des Dateitransfers übergeben, damit Gegenstellen den Speicherbedarf vorab allozieren und den Übertragungsfortschritt exakt überwachen können AUTOSAR_AP_SWS_Diagnostics S. 77.
Fehlerszenarien
In der Spezifikation von ara::diag::FileTransferService::FileSizes sind keine eigenen diagnostischen Fehlercodes, Rückgabewerte oder Ausnahmen definiert AUTOSAR_AP_SWS_Diagnostics §8.18.2 „Struct: FileSizes“. Als passiver Datentyp löst die Struktur selbst keine Fehlermeldungen aus und validiert die eingetragenen Werte nicht zur Laufzeit.
Fehlerpotenziale ergeben sich vor allem aus fehlerhaften Vor- und Nachbedingungen bei der Parameterbefüllung. Durch den Typ std::uint64_t können Werte bis zu $2^{64}-1$ Bytes abgebildet werden [SWS_DM_01322], [SWS_DM_01323]. Sollte eine Komponente unplausible Größen übergeben – beispielsweise einen Wert von null Bytes für vorhandene Dateien oder eine komprimierte Größe, die ohne plausible Erklärung die unkomprimierte Größe drastisch übersteigt –, muss dies durch die vor- oder nachgelagerte Verarbeitungslogik des FileTransferService abgefangen werden. Auch ein Überlauf des verfügbaren Zielspeichers stellt ein übergeordnetes Fehlerszenario dar, das anhand der in FileSizes übermittelten Bytewerte vor Beginn des Datentransfers erkannt werden muss.
Dieser Klassen-Leitfaden basiert auf der Spezifikation AUTOSAR Adaptive Platform R25-11 (Modul diag) und wurde für autodocs erstellt.
gemini-3.8-flash-medium· 2026-10-13