Sirve para encapsular tamaños de archivo comprimidos y sin comprimir en bytes en servicios de transferencia de archivos.
Contexto
La estructura ara::diag::FileTransferService::FileSizes es un componente integral del módulo de diagnóstico (diag) en AUTOSAR Adaptive Platform [SWS_DM_01321]. Dentro del espacio de nombres del servicio de nivel superior ara::diag::FileTransferService, define un modelo de datos compacto para representar indicaciones completas del tamaño de archivo AUTOSAR_AP_SWS_Diagnostics §8.18.2 «Struct: FileSizes». El tipo se declara a través del archivo de cabecera ara/diag/file_transfer.h [SWS_DM_01322]. Su responsabilidad principal consiste en agrupar la información de tamaño relevante para operaciones de transferencia de archivos en una estructura de datos uniforme, de modo que los componentes de plataforma y de aplicación que interactúan puedan intercambiar tamaños de archivo de manera consistente AUTOSAR_AP_SWS_Diagnostics p. 1126.
Técnicamente, la estructura de datos recopila dos indicaciones de tamaño distintas: el tamaño total sin comprimir de un archivo mediante el elemento uncompressed_size [SWS_DM_01322] y el tamaño total comprimido mediante el elemento compressed_size [SWS_DM_01323]. Ambos valores se gestionan como enteros sin signo de 64 bits (std::uint64_t) en la unidad de medida byte. De este modo, FileSizes actúa como portador de información semántica entre los clientes de diagnóstico, el Diagnostic Management y los proveedores de servicios concretos que gestionan transferencias de archivos en la plataforma adaptativa.
Ciclo de vida
La estructura ara::diag::FileTransferService::FileSizes está modelada como un simple registro de datos (Value Object) sin métodos virtuales propios ni jerarquías de herencia complejas AUTOSAR_AP_SWS_Diagnostics §8.18.2.1 «Public Member Variables». La creación se realiza típicamente de forma directa en la pila de llamadas o como miembro de una estructura de datos de nivel superior. Dado que solo contiene tipos enteros estándar, la estructura debería ser por defecto tanto copiable como desplazable y no requerir gestión dinámica de memoria en el montículo. Pregunta Q-f9c6e76fc8c62463 (abierta)
La propiedad se rige por el contexto de uso respectivo: si una aplicación de diagnóstico crea una instancia, la propiedad permanece en dicha aplicación o se transfiere mediante paso por valor (pass-by-value) a las funciones de interfaz invocadas. La destrucción de la instancia es trivial y se produce automáticamente al salir del ámbito (scope) sin lógica de limpieza adicional. Dado que el tipo no contempla mecanismos internos de sincronización, el uso coordinado y seguro frente a hilos en accesos concurrentes a la misma instancia probablemente corresponde por completo a los componentes de diagnóstico o de aplicación involucrados. Pregunta Q-d2e83f9098c7f8c8 (abierta)
Ruta de uso
El uso típico de la estructura se divide en las fases de inicialización, asignación de parámetros y reenvío a rutinas de transferencia de FileTransferService [SWS_DM_01321]. En un caso de uso típico, un componente emisor determina las dimensiones reales del archivo en el sistema de archivos o en memoria antes de iniciar una transferencia de archivos. A continuación, instancia FileSizes y asigna los valores en bytes medidos a las dos variables públicas:
uncompressed_size: Especifica el tamaño absoluto del archivo original en bytes [SWS_DM_01322].
compressed_size: Especifica el tamaño comprimido del flujo de datos que se va a transferir en bytes [SWS_DM_01323].
Si se transfiere un archivo sin compresión previa, es de suponer que compressed_size y uncompressed_size contengan valores idénticos. Pregunta Q-1edcb924fd5932ee (abierta) Tras la inicialización, la estructura se transfiere a los métodos correspondientes de la transferencia de archivos para que los extremos remotos puedan asignar previamente el espacio de almacenamiento necesario y supervisar con precisión el progreso de la transferencia AUTOSAR_AP_SWS_Diagnostics p. 77.
Escenarios de error
En la especificación de ara::diag::FileTransferService::FileSizes no se definen códigos de error de diagnóstico, valores de retorno ni excepciones propios AUTOSAR_AP_SWS_Diagnostics §8.18.2 «Struct: FileSizes». Como tipo de datos pasivo, la propia estructura no desencadena mensajes de error ni valida los valores introducidos en tiempo de ejecución.
Los potenciales de error se derivan principalmente de precondiciones y poscondiciones incorrectas al rellenar los parámetros. Mediante el tipo std::uint64_t se pueden representar valores de hasta $2^{64}-1$ bytes [SWS_DM_01322], [SWS_DM_01323]. En caso de que un componente transmita tamaños inverosímiles —por ejemplo, un valor de cero bytes para archivos existentes o un tamaño comprimido que, sin explicación plausible, supere drásticamente el tamaño sin comprimir—, esto debe ser interceptado por la lógica de procesamiento anterior o posterior de FileTransferService. Asimismo, un desbordamiento de la memoria de destino disponible representa un escenario de error de nivel superior que debe detectarse antes de comenzar la transferencia de datos a partir de los valores en bytes transmitidos en FileSizes.
Esta guía de clases se basa en la especificación AUTOSAR Adaptive Platform R25-11 (módulo diag) y fue creada para autodocs.
gemini-3.8-flash-low· 2026-10-13 · Original en alemán