Serve ao encapsulamento de tamanhos de arquivo compactados e não compactados em bytes em serviços de transferência de arquivos.
Contexto
A estrutura ara::diag::FileTransferService::FileSizes é parte integrante do módulo de diagnóstico (diag) na AUTOSAR Adaptive Platform [SWS_DM_01321]. Dentro do namespace do serviço de nível superior ara::diag::FileTransferService, ela define um modelo de dados compacto para a representação de indicações completas de tamanho de arquivo AUTOSAR_AP_SWS_Diagnostics §8.18.2 «Struct: FileSizes». O tipo é declarado por meio do arquivo de cabeçalho ara/diag/file_transfer.h [SWS_DM_01322]. Sua responsabilidade primária consiste em agrupar as informações de tamanho relevantes para operações de transferência de arquivos em uma estrutura de dados uniforme, permitindo que componentes da plataforma e da aplicação interajam e troquem tamanhos de arquivos de maneira consistente AUTOSAR_AP_SWS_Diagnostics p. 1126.
Em termos funcionais, a estrutura de dados registra duas indicações de tamanho distintas: o tamanho total não compactado de um arquivo por meio do elemento uncompressed_size [SWS_DM_01322], bem como o tamanho total compactado por meio do elemento compressed_size [SWS_DM_01323]. Ambos os valores são mantidos como inteiros sem sinal de 64 bits (std::uint64_t) na unidade de medida bytes. Com isso, FileSizes atua como portador de informação semântica entre clientes de diagnóstico, o Diagnostic Management e os provedores de serviços concretos que realizam transferências de arquivos na plataforma adaptativa.
Ciclo de vida
A estrutura ara::diag::FileTransferService::FileSizes é modelada como um registro de dados puro (Value Object) sem métodos virtuais próprios ou hierarquias complexas de herança AUTOSAR_AP_SWS_Diagnostics §8.18.2.1 «Public Member Variables». A instanciação ocorre tipicamente de forma direta na pilha de chamadas (call stack) ou como membro de uma estrutura de dados de nível superior. Como contém exclusivamente tipos inteiros padrão, a estrutura deve ser, por padrão, tanto copiável quanto transferível por movimentação (movable), não exigindo gerenciamento de memória dinâmica na heap. Pergunta Q-f9c6e76fc8c62463 (aberta)
As relações de posse dependem do respectivo contexto de uso: se uma instância for criada por uma aplicação de diagnóstico, a posse permanece com essa aplicação ou é transferida para funções de interface chamadas por meio de passagem por valor (pass-by-value). A destruição da instância é trivial e ocorre automaticamente com a saída do escopo (scope), sem lógica adicional de limpeza. Como o tipo não prevê mecanismos internos de sincronização, a utilização coordenada e segura em termos de threads no acesso concorrente à mesma instância presumivelmente cabe por completo aos componentes de diagnóstico ou de aplicação envolvidos. Pergunta Q-d2e83f9098c7f8c8 (aberta)
Caminho de utilização
O uso típico da estrutura divide-se nas fases de inicialização, atribuição de parâmetros e repasse para rotinas de transferência de FileTransferService [SWS_DM_01321]. Em um caso de uso típico, um componente remetente determina as dimensões reais do arquivo no sistema de arquivos ou na memória antes de iniciar uma transferência de arquivos. Em seguida, ele instancia FileSizes e atribui os valores em bytes medidos às duas variáveis públicas:
uncompressed_size: Especifica o tamanho absoluto do arquivo original em bytes [SWS_DM_01322].
compressed_size: Especifica o tamanho compactado do fluxo de dados a ser transmitido em bytes [SWS_DM_01323].
Se um arquivo for transmitido sem compactação prévia, compressed_size e uncompressed_size presumivelmente devem conter valores idênticos. Pergunta Q-1edcb924fd5932ee (aberta) Após a inicialização, a estrutura é passada aos respectivos métodos de transferência de arquivo para que as contrapartes possam alocar previamente a necessidade de memória e monitorar com exatidão o progresso da transferência AUTOSAR_AP_SWS_Diagnostics p. 77.
Cenários de erro
Na especificação de ara::diag::FileTransferService::FileSizes, não são definidos códigos de erro diagnósticos próprios, valores de retorno ou exceções AUTOSAR_AP_SWS_Diagnostics §8.18.2 «Struct: FileSizes». Como tipo de dados passivo, a estrutura não emite mensagens de erro por si própria nem valida os valores inseridos em tempo de execução.
Potenciais de erro decorrem principalmente de pré e pós-condições incorretas no preenchimento de parâmetros. Por meio do tipo std::uint64_t, podem ser representados valores de até $2^{64}-1$ bytes [SWS_DM_01322], [SWS_DM_01323]. Se um componente passar tamanhos implausíveis – por exemplo, um valor de zero bytes para arquivos existentes ou um tamanho compactado que, sem explicação plausível, exceda drasticamente o tamanho não compactado –, isso deve ser interceptado pela lógica de processamento a montante ou a jusante de FileTransferService. O transbordamento da memória de destino disponível também representa um cenário de erro de nível superior, o qual deve ser detectado antes do início da transferência de dados com base nos valores em bytes transmitidos em FileSizes.
Este guia de classe baseia-se na especificação AUTOSAR Adaptive Platform R25-11 (módulo diag) e foi criado para o autodocs.
gemini-3.8-flash-low· 2026-10-13 · Original em alemão