Sert à encapsuler les tailles de fichier compressées et non compressées en octets lors des services de transfert de fichiers.
Contexte
La structure ara::diag::FileTransferService::FileSizes est une partie intégrante du module de diagnostic (diag) dans l'AUTOSAR Adaptive Platform [SWS_DM_01321]. Au sein de l'espace de noms du service de niveau supérieur ara::diag::FileTransferService, elle définit un modèle de données compact pour la représentation d'indications complètes de taille de fichier AUTOSAR_AP_SWS_Diagnostics §8.18.2 « Struct: FileSizes ». Le type est déclaré via le fichier d'en-tête ara/diag/file_transfer.h [SWS_DM_01322]. Sa responsabilité première consiste à regrouper les informations de taille pertinentes pour les opérations de transfert de fichiers dans une structure de données unifiée, de sorte que les composants de plateforme et d'application en interaction puissent échanger les tailles de fichier de manière cohérente AUTOSAR_AP_SWS_Diagnostics p. 1126.
Sur le plan fonctionnel, la structure de données saisit deux indications de taille distinctes : la taille totale non compressée d'un fichier via l'élément uncompressed_size [SWS_DM_01322] ainsi que la taille totale compressée via l'élément compressed_size [SWS_DM_01323]. Les deux valeurs sont gérées sous forme d'entiers non signés de 64 bits (std::uint64_t) dans l'unité de mesure octet. Ainsi, FileSizes sert de vecteur d'informations sémantique entre les clients de diagnostic, le Diagnostic Management et les fournisseurs de services concrets qui gèrent les transferts de fichiers sur la plateforme adaptative.
Cycle de vie
La structure ara::diag::FileTransferService::FileSizes est modélisée comme un simple enregistrement de données (Value Object) sans méthodes virtuelles propres ni hiérarchies d'héritage complexes AUTOSAR_AP_SWS_Diagnostics §8.18.2.1 « Public Member Variables ». La création s'effectue typiquement directement sur la pile d'appels ou en tant que membre d'une structure de données de niveau supérieur. Comme elle ne contient que des types entiers standards, la structure devrait être par défaut aussi bien copiable que déplaçable, et ne requérir aucune gestion dynamique de la mémoire sur le tas (heap). Question Q-f9c6e76fc8c62463 (ouverte)
Les relations de propriété dépendent du contexte d'utilisation respectif : si une instance est créée par une application de diagnostic, la propriété reste auprès de cette application ou est transférée par passage par valeur (pass-by-value) aux fonctions d'interface appelées. La destruction de l'instance est triviale et s'effectue automatiquement avec la sortie de la portée (scope) sans logique de nettoyage supplémentaire. Comme le type ne prévoit aucun mécanisme interne de synchronisation, l'utilisation coordonnée et thread-safe en cas d'accès concurrent à une même instance incombe probablement entièrement aux composants de diagnostic ou d'application impliqués. Question Q-d2e83f9098c7f8c8 (ouverte)
Parcours d'utilisation
L'utilisation typique de la structure se divise en phases d'initialisation, d'affectation des paramètres et de transmission aux routines de transfert du FileTransferService [SWS_DM_01321]. Dans un cas d'utilisation typique, un composant émetteur détermine les dimensions réelles du fichier sur le système de fichiers ou en mémoire avant le début d'un transfert de fichier. Ensuite, il instancie FileSizes et affecte les valeurs en octets mesurées aux deux variables publiques :
uncompressed_size : spécifie la taille absolue du fichier d'origine en octets [SWS_DM_01322].
compressed_size : spécifie la taille compressée du flux de données à transférer en octets [SWS_DM_01323].
Si un fichier est transféré sans compression préalable, compressed_size et uncompressed_size devraient vraisemblablement porter des valeurs identiques. Question Q-1edcb924fd5932ee (ouverte) Après l'initialisation, la structure est transmise aux méthodes correspondantes du transfert de fichiers afin que les systèmes distants puissent allouer au préalable l'espace mémoire requis et surveiller avec précision la progression du transfert AUTOSAR_AP_SWS_Diagnostics p. 77.
Scénarios d'erreur
Aucun code d'erreur de diagnostic propre, valeur de retour ou exception n'est défini dans la spécification de ara::diag::FileTransferService::FileSizes AUTOSAR_AP_SWS_Diagnostics §8.18.2 « Struct: FileSizes ». En tant que type de données passif, la structure ne déclenche elle-même aucun message d'erreur et ne valide pas les valeurs enregistrées au moment de l'exécution.
Les risques d'erreur résultent principalement de préconditions et de postconditions incorrectes lors du renseignement des paramètres. Grâce au type std::uint64_t, des valeurs allant jusqu'à $2^{64}-1$ octets peuvent être représentées [SWS_DM_01322], [SWS_DM_01323]. Si un composant venait à transmettre des tailles non plausibles — par exemple une valeur de zéro octet pour des fichiers existants ou une taille compressée dépassant considérablement la taille non compressée sans explication plausible —, cela doit être intercepté par la logique de traitement en amont ou en aval du FileTransferService. Un dépassement de la mémoire cible disponible constitue également un scénario d'erreur de niveau supérieur, qui doit être détecté avant le début du transfert de données à partir des valeurs en octets transmises dans FileSizes.
Ce guide de classe est basé sur la spécification AUTOSAR Adaptive Platform R25-11 (module diag) et a été rédigé pour autodocs.
gemini-3.8-flash-low· 2026-10-13 · Original allemand