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.
Sirve como pseudorreloj (pseudo-clock) para std::chrono::time_point para representar instantes locales de un recurso de base de tiempo.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: f515350f98f7ProcedenciaPreguntas abiertas (3)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
Sirve como pseudorreloj (pseudo-clock) para std::chrono::time_point para representar instantes locales de un recurso de base de tiempo.
La clase ara::tsync::TimeBase actúa como pseudorreloj (pseudo-clock) en el sistema de la biblioteca estándar de C++ y sirve como argumento de plantilla de reloj para std::chrono::time_point para la representación de tiempos locales con respecto a un recurso de base de tiempo [SWS_TS_01264]. Para cumplir los requisitos de reloj, proporciona alias de tipos estandarizados para resolución en nanosegundos y duración. Como condición límite determinante, el reloj se especifica mediante is_steady = false como no monótono, con lo que se tienen en cuenta saltos temporales resultantes de procesos de sincronización [SWS_TS_01265].
Contexto
La clase o estructura ara::tsync::TimeBase asume en el módulo tsync de la AUTOSAR Adaptive Platform el rol de un pseudorreloj (pseudo-clock). En el nivel de C++ sirve primordialmente como primer argumento de plantilla para std::chrono::time_point con el fin de definir semánticamente que una marca de tiempo representa el tiempo local en relación con un recurso de base de tiempo aún no especificado en detalle (timeBaseResource) [SWS_TS_01264]. En lugar de actuar por sí misma como fuente de tiempo activa con una consulta de tiempo estática, TimeBase actúa como vínculo formal dentro de la biblioteca estándar std::chrono.
Al proporcionar las definiciones de tipos estandarizadas, TimeBase vincula los mecanismos genéricos de medición del tiempo de C++ al módulo de sincronización. Los consumidores y componentes que trabajan con instantes o intervalos de tiempo utilizan los tipos alias de la estructura para intercambiar marcas de tiempo tipadas. De este modo se garantiza que los valores de tiempo a través de std::chrono::time_point estén asignados inequívocamente a una base de tiempo local y no se confundan erróneamente con relojes de sistema absolutos o fuentes de tiempo divergentes.
Diagrama de contexto: Integración de TimeBase como pseudorreloj en el sistema de tipos chrono de C++ para vincular instantes a un recurso de base de tiempo. Fuentes: [SWS_TS_01263], [SWS_TS_01264]
Ciclo de vida
Como estructura pura de datos y tipos (declarada como struct TimeBase en el encabezado ara/tsync/timestamp.h), ara::tsync::TimeBase no posee fases dinámicas de ciclo de vida en el sentido de un componente de tiempo de ejecución inicializado u operado. La instanciación de objetos de esta estructura no es estrictamente obligatoria para la función prevista; existe primordialmente en el nivel del sistema de tipos de C++ en tiempo de compilación.
Para cumplir los requisitos formales de un reloj de C++ (C++ Clock Requirements), TimeBase define todos los alias de tipos y constantes requeridos. Entre estos se incluye el tipo de contador fundamental rep como std::int64_t para representar el número de pulsos de reloj [SWS_TS_01261], así como el intervalo de pulso de reloj period como std::nano[SWS_TS_01262], lo que corresponde a una resolución en el rango de nanosegundos. La duración para medir el tiempo transcurrido desde una época se proporciona a través del alias de tipo duration como std::chrono::duration<rep, period>[SWS_TS_01263].
En cuanto a la concurrencia y al comportamiento en el sistema en ejecución, la estructura declara la constante estática is_steady con el valor booleano false[SWS_TS_01265]. Esto indica al marco chrono de C++ que el reloj subyacente no es monótono (steady). Interpretación: Es probable que esto se deba a que los procesos de sincronización de tiempo en el módulo tsync pueden provocar ajustes o saltos en la base de tiempo local, por lo que mediciones sucesivas no garantizan una monotonicidad estricta. Pregunta Q-93a56c0eb2d35c7b (abierta) Dado que la propia estructura no encapsula estado mutable, todos los usos de tipos y accesos a constantes son inherentemente seguros frente a la concurrencia.
Ruta de uso
La ruta de uso típica de ara::tsync::TimeBase reside en la declaración, procesamiento y transmisión de valores de tiempo dentro de aplicaciones sincronizadas. Los desarrolladores y los componentes de software adaptativos no instancian el reloj en sí, sino que acceden al alias de tipo central time_point, definido como std::chrono::time_point<TimeBase>[SWS_TS_01264].
Definición de tipos y especificación de interfaces: La aplicación incluye el encabezado ara/tsync/timestamp.h y utiliza ara::tsync::TimeBase::time_point[SWS_TS_01264] para declarar firmas para marcas de tiempo. Interpretación: De este modo se garantiza que los instantes permanezcan acoplados semánticamente a la base de tiempo local específica. Pregunta Q-549e2d377c0a6845 (abierta)
Aritmética y cálculo de diferencias: Si se restan dos instantes entre sí, la expresión devuelve automáticamente el tipo ara::tsync::TimeBase::duration[SWS_TS_01263]. Este se basa en pasos de nanosegundos (period) [SWS_TS_01262] y enteros de 64 bits (rep) [SWS_TS_01261], con lo que son posibles cálculos de duración conformes a los estándares y conversiones a otras unidades de tiempo.
Interoperabilidad con algoritmos estándar: Al cumplir plenamente los requisitos de tipo de reloj, los instantes y los intervalos de tiempo pueden transferirse sin problemas a funciones de la biblioteca estándar de std::chrono, sin necesidad de recurrir a estructuras de tiempo propietarias.
Interpretación: Dado que TimeBase está concebido como un pseudorreloj, no proporciona por sí mismo una función miembro estática now(); es probable que la determinación concreta del valor de tiempo para tal time_point[SWS_TS_01264] se realice a través de otros servicios o interfaces del módulo tsync conectados a la timeBaseResource referenciada. Pregunta Q-2a528a99023dad41 (abierta)
Esta guía se basa en la especificación AUTOSAR Adaptive Platform R25-11.
gemini-3.8-flash-low· 2026-10-13 · Original en alemán