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.
Sert de pseudo-horloge pour std::chrono::time_point afin de représenter des instants locaux d'une ressource de base de temps.
GÉNÉRÉ PAR IAnon vérifiéModèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : f515350f98f7ProvenanceQuestions ouvertes (3)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand
Sert de pseudo-horloge pour std::chrono::time_point afin de représenter des instants locaux d'une ressource de base de temps.
La classe ara::tsync::TimeBase sert de pseudo-horloge dans le système de la bibliothèque standard C++ et fait office d'argument de modèle d'horloge pour std::chrono::time_point afin de représenter des temps locaux par rapport à une ressource de base de temps [SWS_TS_01264]. Pour satisfaire aux exigences d'horloge, elle fournit des alias de type standardisés pour la résolution en nanosecondes et la durée. En tant que contrainte déterminante, l'horloge est spécifiée comme non monotone via is_steady = false, ce qui permet de prendre en compte les sauts temporels consécutifs à des opérations de synchronisation [SWS_TS_01265].
Contexte
La classe ou structure ara::tsync::TimeBase assume dans le module tsync de l'AUTOSAR Adaptive Platform le rôle d'une pseudo-horloge (Pseudo-Clock). Elle sert principalement au niveau C++ de premier argument de modèle pour std::chrono::time_point, afin d'établir sémantiquement qu'un horodatage représente le temps local par rapport à une ressource de base de temps (timeBaseResource) non encore spécifiée en détail [SWS_TS_01264]. Au lieu d'agir elle-même en tant que source de temps active avec une interrogation temporelle statique, TimeBase fait office de lien formel au sein de la bibliothèque standard std::chrono.
En fournissant les définitions de types standardisées, TimeBase relie les mécanismes génériques de mesure temporelle C++ au module de synchronisation. Les consommateurs et les composants qui manipulent des instants ou des durées utilisent les types alias de la structure pour échanger des horodatages typés. De cette manière, il est garanti que les valeurs temporelles sont associées de manière univoque à une base de temps locale via std::chrono::time_point et ne sont pas mélangées par erreur avec des horloges système absolues ou des sources de temps divergentes.
Diagramme de contexte : intégration de TimeBase en tant que pseudo-horloge dans le système de types chronos C++ pour lier des instants à une ressource de base de temps. Sources : [SWS_TS_01263], [SWS_TS_01264]
Cycle de vie
En tant que pure structure de données et de types (déclarée comme struct TimeBase dans l'en-tête ara/tsync/timestamp.h), ara::tsync::TimeBase ne possède aucune phase de cycle de vie dynamique au sens d'un composant d'exécution initialisé ou exploité. Une instanciation d'objets de cette structure n'est pas impérativement requise pour la fonction prévue ; elle existe principalement au niveau du système de types C++ au moment de la compilation.
Pour satisfaire aux exigences formelles relatives à une horloge C++ (C++ Clock Requirements), TimeBase définit l'ensemble des alias de type et des constantes requis. En font partie le type de compteur fondamental rep sous forme de std::int64_t pour représenter le nombre de pas temporels (ticks) [SWS_TS_01261] ainsi que l'intervalle de tick temporel period sous forme de std::nano[SWS_TS_01262], ce qui correspond à une résolution de l'ordre de la nanoseconde. La durée pour mesurer le temps depuis une époque est mise à disposition via l'alias de type duration sous forme de std::chrono::duration<rep, period>[SWS_TS_01263].
En matière de concurrence et de comportement dans le système en fonctionnement, la structure déclare la constante statique is_steady avec la valeur booléenne false[SWS_TS_01265]. Cela signale au framework chrono C++ que l'horloge sous-jacente n'est pas monotone (steady). Interprétation : cela devrait découler du fait que les opérations de synchronisation temporelle dans le module tsync peuvent entraîner des ajustements ou des sauts de la base de temps locale, raison pour laquelle des mesures successives ne garantissent pas une monotonie stricte. Question Q-93a56c0eb2d35c7b (ouverte) Comme la structure elle-même n'encapsule aucun état modifiable, toutes les utilisations de types et tous les accès aux constantes sont intrinsèquement sûrs vis-à-vis des accès concurrents.
Parcours d'utilisation
La trajectoire d'utilisation typique de ara::tsync::TimeBase réside dans la déclaration, le traitement et la transmission de valeurs temporelles au sein d'applications synchronisées. Les développeurs et les composants logiciels adaptatifs n'instancient pas l'horloge elle-même, mais accèdent à l'alias de type central time_point, qui est défini comme std::chrono::time_point<TimeBase>[SWS_TS_01264].
Définition de type et spécification d'interface : l'application inclut l'en-tête ara/tsync/timestamp.h et utilise ara::tsync::TimeBase::time_point[SWS_TS_01264] pour déclarer des signatures d'horodatages. Interprétation : cela garantit que les instants restent sémantiquement couplés à la base de temps locale spécifique. Question Q-549e2d377c0a6845 (ouverte)
Arithmétique et calcul de différence : si deux instants sont soustraits l'un de l'autre, l'expression produit automatiquement le type ara::tsync::TimeBase::duration[SWS_TS_01263]. Celui-ci est basé sur des pas de nanoseconde (period) [SWS_TS_01262] et des entiers 64 bits (rep) [SWS_TS_01261], ce qui permet des calculs de durée et des conversions dans d'autres unités de temps conformes aux standards.
Interopérabilité avec les algorithmes standards : en satisfaisant pleinement aux exigences de type d'horloge, les instants et les durées peuvent être transmis de manière transparente aux fonctions de la bibliothèque standard de std::chrono, sans devoir recourir à des structures temporelles propriétaires.
Interprétation : étant donné que TimeBase est conçue comme une pseudo-horloge, elle ne fournit pas elle-même de fonction membre statique now() ; la détermination concrète de la valeur temporelle pour un tel time_point[SWS_TS_01264] devrait être effectuée par d'autres services ou interfaces du module tsync raccordés à la timeBaseResource référencée. Question Q-2a528a99023dad41 (ouverte)
Ce guide est basé sur la spécification AUTOSAR Adaptive Platform R25-11.
gemini-3.8-flash-low· 2026-10-13 · Original allemand