The class TimeBase is a pseudo-clock. The class TimeBase is a pseudo-clock that is used as the first template argument to std::chrono::time_point to indicate that the time point represents local time with respect of a not-yet-specified timeBaseResource.
Serve como pseudo-clock para std::chrono::time_point para o mapeamento de instantes locais de um recurso de base de tempo.
GERADO POR IAnão revisadoModelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: f515350f98f7ProcedênciaPerguntas em aberto (3)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão
Serve como pseudo-clock para std::chrono::time_point para o mapeamento de instantes locais de um recurso de base de tempo.
A classe ara::tsync::TimeBase funciona como um pseudo-clock no sistema da biblioteca padrão C++ e serve como argumento de template de clock para std::chrono::time_point para a representação de tempos locais relativos a um recurso de base de tempo [SWS_TS_01264]. Para cumprir os requisitos de clock, disponibiliza aliases de tipos padronizados para resolução em nanossegundos e duração. Como condição limite determinante, o relógio é especificado através de is_steady = false como não monotónico, considerando-se assim saltos temporais decorrentes de processos de sincronização [SWS_TS_01265].
Contexto
A classe ou estrutura ara::tsync::TimeBase assume no módulo tsync da AUTOSAR Adaptive Platform o papel de um pseudo-relógio (pseudo-clock). Ao nível de C++, serve primariamente como primeiro argumento de template para std::chrono::time_point, para definir semanticamente que um carimbo de data/hora representa o tempo local em relação a um recurso de base de tempo (timeBaseResource) ainda não especificado em detalhe [SWS_TS_01264]. Em vez de atuar por si própria como fonte de tempo ativa com uma consulta de tempo estática, TimeBase funciona como elemento de ligação formal dentro da biblioteca padrão std::chrono.
Através da disponibilização das definições de tipo padronizadas, TimeBase vincula os mecanismos genéricos da medição de tempo C++ ao módulo de sincronização. Consumidores e componentes que operam com instantes ou intervalos de tempo utilizam os tipos de alias da estrutura para trocar carimbos de data/hora tipificados. Desta forma, garante-se que os valores temporais através de std::chrono::time_point estão atribuídos univocamente a uma base de tempo local e não são erroneamente misturados com relógios de sistema absolutos ou fontes de tempo divergentes.
Diagrama de contexto: integração de TimeBase como pseudo-clock no sistema de tipos chrono de C++ para vinculação de instantes a um recurso de base de tempo. Fontes: [SWS_TS_01263], [SWS_TS_01264]
Ciclo de vida
Sendo uma estrutura puramente de dados e de tipos (declarada como struct TimeBase no cabeçalho ara/tsync/timestamp.h), ara::tsync::TimeBase não possui fases dinâmicas de ciclo de vida no sentido de um componente de runtime inicializado ou operado. A instanciação de objetos desta estrutura não é estritamente necessária para a função prevista; ela existe primariamente ao nível do sistema de tipos C++ em tempo de compilação.
Para cumprir os requisitos formais de um relógio C++ (C++ Clock Requirements), TimeBase define todos os aliases de tipo e constantes exigidos. Entre estes contam-se o tipo fundamental de contador rep como std::int64_t para representar o número de tiques de tempo [SWS_TS_01261], bem como o intervalo de tiques de tempo period como std::nano[SWS_TS_01262], o que corresponde a uma resolução na ordem dos nanossegundos. A duração para medir o tempo desde uma época é disponibilizada através do alias de tipo duration como std::chrono::duration<rep, period>[SWS_TS_01263].
Relativamente à concorrência e ao comportamento no sistema em execução, a estrutura declara a constante estática is_steady com o valor booleano false[SWS_TS_01265]. Isto sinaliza ao framework chrono de C++ que o relógio subjacente não é uniforme/monotónico (steady). Interpretação: isto dever-se-á ao facto de os processos de sincronização temporal no módulo tsync poderem causar ajustes ou saltos na base de tempo local, motivo pelo qual medições sucessivas não garantem uma monotonia estrita. Pergunta Q-93a56c0eb2d35c7b (aberta) Como a própria estrutura não encapsula qualquer estado mutável, todas as utilizações de tipos e acessos a constantes são inerentemente seguros para concorrência.
Caminho de utilização
O caminho de utilização típico de ara::tsync::TimeBase reside na declaração, processamento e encaminhamento de valores de tempo dentro de aplicações sincronizadas. Os programadores e componentes de software adaptativos não instanciam o relógio propriamente dito, acedendo antes ao alias de tipo central time_point, que está definido como std::chrono::time_point<TimeBase>[SWS_TS_01264].
Definição de tipos e especificação de interfaces: a aplicação inclui o cabeçalho ara/tsync/timestamp.h e utiliza ara::tsync::TimeBase::time_point[SWS_TS_01264] para declarar assinaturas para carimbos de data/hora. Interpretação: isto assegura que os instantes permanecem semanticamente vinculados à base de tempo local específica. Pergunta Q-549e2d377c0a6845 (aberta)
Aritmética e cálculo de diferenças: se dois instantes forem subtraídos um do outro, a expressão fornece automaticamente o tipo ara::tsync::TimeBase::duration[SWS_TS_01263]. Este baseia-se em incrementos de nanossegundos (period) [SWS_TS_01262] e números inteiros de 64 bits (rep) [SWS_TS_01261], permitindo cálculos de duração em conformidade com as normas e conversões para outras unidades de tempo.
Interoperabilidade com algoritmos padrão: devido ao cumprimento integral dos requisitos de tipo de clock, os instantes e períodos de tempo podem ser transmitidos de forma transparente a funções da biblioteca padrão de std::chrono, sem que seja necessário utilizar estruturas de tempo proprietárias.
Interpretação: como TimeBase foi concebido como pseudo-clock, não disponibiliza por si próprio qualquer função membro estática now(); a determinação concreta do valor temporal para um tal time_point[SWS_TS_01264] deverá ocorrer através de outros serviços ou interfaces do módulo tsync que estejam vinculados ao timeBaseResource referenciado. Pergunta Q-2a528a99023dad41 (aberta)
Este guia baseia-se na especificação AUTOSAR Adaptive Platform R25-11.
gemini-3.8-flash-low· 2026-10-13 · Original em alemão