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.
Dient als Pseudo-Clock für std::chrono::time_point zur Abbildung lokaler Zeitpunkte einer Zeitbasis-Ressource.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: f515350f98f7HerkunftOffene Fragen (3)
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Dient als Pseudo-Clock für std::chrono::time_point zur Abbildung lokaler Zeitpunkte einer Zeitbasis-Ressource.
Die Klasse ara::tsync::TimeBase fungiert als Pseudo-Clock im C++-Standardbibliothekssystem und dient als Clock-Template-Argument für std::chrono::time_point zur Repräsentation lokaler Zeiten bezüglich einer Zeitbasis-Ressource [SWS_TS_01264]. Zur Erfüllung der Clock-Anforderungen stellt sie standardisierte Typ-Aliase für Nanosekunden-Auflösung und Dauer bereit. Als maßgebliche Randbedingung ist die Uhr über is_steady = false als nicht-monoton spezifiziert, wodurch Zeitsprünge infolge von Synchronisationsvorgängen berücksichtigt werden [SWS_TS_01265].
Kontext
Die Klasse bzw. Struktur ara::tsync::TimeBase übernimmt im Modul tsync der AUTOSAR Adaptive Platform die Rolle einer Pseudo-Uhr (Pseudo-Clock). Sie dient auf C++-Ebene primär als erstes Template-Argument für std::chrono::time_point, um semantisch festzulegen, dass ein Zeitstempel die lokale Zeit im Verhältnis zu einer noch nicht näher spezifizierten Zeitbasis-Ressource (timeBaseResource) darstellt [SWS_TS_01264]. Anstatt selbst als aktive Zeitquelle mit einer statischen Zeitabfrage zu agieren, fungiert TimeBase als formales Bindeglied innerhalb der Standardbibliothek std::chrono.
Durch die Bereitstellung der standardisierten Typdefinitionen bindet TimeBase die generischen Mechanismen der C++-Zeitmessung an das Synchronisationsmodul an. Konsumenten und Komponenten, die mit Zeitpunkten oder Zeiträumen arbeiten, nutzen die Alias-Typen der Struktur, um typisierte Zeitstempel auszutauschen. Auf diese Weise wird garantiert, dass Zeitwerte über std::chrono::time_point eindeutig einer lokalen Zeitbasis zugeordnet sind und nicht fälschlicherweise mit absoluten Systemuhren oder abweichenden Zeitquellen vermischt werden.
Kontextdiagramm: Einbettung von TimeBase als Pseudo-Clock in das C++-Chrono-Typsystem zur Bindung von Zeitpunkten an eine Zeitbasis-Ressource. Quellen: [SWS_TS_01263], [SWS_TS_01264]
Lebenszyklus
Als reine Daten- und Typstruktur (deklariert als struct TimeBase im Header ara/tsync/timestamp.h) besitzt ara::tsync::TimeBase keine dynamischen Lebenszyklusphasen im Sinne einer initialisierten oder betriebenen Laufzeitkomponente. Eine Instanziierung von Objekten dieser Struktur ist für die vorgesehene Funktion nicht zwingend erforderlich; sie existiert primär auf der Ebene des C++-Typsystems zur Compile-Zeit.
Zur Erfüllung der formalen Anforderungen an eine C++-Clock (C++ Clock Requirements) definiert TimeBase alle geforderten Typ-Aliase und Konstanten. Hierzu zählt der fundamentale Zählertyp rep als std::int64_t zur Repräsentation der Anzahl von Zeitticks [SWS_TS_01261] sowie das Zeittick-Intervall period als std::nano[SWS_TS_01262], was einer Auflösung im Nanosekundenbereich entspricht. Die Dauer zur Messung der Zeit seit einer Epoche wird über den Typalias duration als std::chrono::duration<rep, period> bereitgestellt [SWS_TS_01263].
Hinsichtlich der Nebenläufigkeit und des Verhaltens im laufenden System deklariert die Struktur die statische Konstante is_steady mit dem booleschen Wert false[SWS_TS_01265]. Dies signalisiert dem C++-Chrono-Framework, dass die zugrundeliegende Uhr nicht monoton (steady) ist. Interpretation: Dies dürfte darauf zurückzuführen sein, dass Zeitsynchronisationsvorgänge im Modul tsync Anpassungen oder Sprünge der lokalen Zeitbasis bewirken können, weshalb aufeinanderfolgende Messungen keine strenge Monotonie garantieren. Frage Q-93a56c0eb2d35c7b (offen) Da die Struktur selbst keinen veränderlichen Zustand kapselt, sind sämtliche Typverwendungen und Zugriffe auf Konstanten inhärent nebenläufigkeitssicher.
Nutzungspfad
Der typische Nutzungspfad von ara::tsync::TimeBase liegt in der Deklaration, Verarbeitung und Weitergabe von Zeitwerten innerhalb synchronisierter Anwendungen. Entwickler und adaptive Softwarekomponenten instanziieren nicht die Uhr selbst, sondern greifen auf den zentralen Typalias time_point zu, der als std::chrono::time_point<TimeBase> definiert ist [SWS_TS_01264].
Typdefinition und Schnittstellenspezifikation: Die Anwendung bindet den Header ara/tsync/timestamp.h ein und verwendet ara::tsync::TimeBase::time_point[SWS_TS_01264], um Signaturen für Zeitstempel zu deklarieren. Interpretation: Dadurch wird sichergestellt, dass Zeitpunkte semantisch an die spezifische lokale Zeitbasis gekoppelt bleiben. Frage Q-549e2d377c0a6845 (offen)
Arithmetik und Differenzbildung: Werden zwei Zeitpunkte voneinander subtrahiert, liefert der Ausdruck automatisch den Typ ara::tsync::TimeBase::duration[SWS_TS_01263]. Dieser basiert auf Nanosekundenschritten (period) [SWS_TS_01262] und 64-Bit-Ganzzahlen (rep) [SWS_TS_01261], womit standardkonforme Dauerberechnungen und Konvertierungen in andere Zeiteinheiten möglich sind.
Interoperabilität mit Standardalgorithmen: Durch die vollständige Erfüllung der Clock-Typanforderungen können Zeitpunkte und Zeitspannen nahtlos an Standardbibliotheksfunktionen von std::chrono übergeben werden, ohne dass proprietäre Zeitstrukturen verwendet werden müssen.
Interpretation: Da TimeBase als Pseudo-Clock konzipiert ist, stellt sie selbst keine statische Memberfunktion now() bereit; die konkrete Zeitwertermittlung für einen solchen time_point[SWS_TS_01264] dürfte durch andere Dienste oder Schnittstellen des Moduls tsync erfolgen, die an die referenzierte timeBaseResource angebunden sind. Frage Q-2a528a99023dad41 (offen)
Dieser Leitfaden basiert auf der Spezifikation AUTOSAR Adaptive Platform R25-11.
gemini-3.8-flash-medium· 2026-10-13