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.
Служит в качестве псевдочасов для std::chrono::time_point для отображения локальных моментов времени ресурса базы времени.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: f515350f98f7ПроисхождениеОткрытые вопросы (3)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Служит в качестве псевдочасов для std::chrono::time_point для отображения локальных моментов времени ресурса базы времени.
Класс ara::tsync::TimeBase функционирует как псевдочасы в системе стандартной библиотеки C++ и служит аргументом шаблона часов для std::chrono::time_point для представления локального времени относительно ресурса базы времени [SWS_TS_01264]. Для выполнения требований к часам он предоставляет стандартизированные псевдонимы типов для наносекундного разрешения и длительности. В качестве определяющего граничного условия часы специфицированы через is_steady = false как немонотонные, благодаря чему учитываются скачки времени вследствие процессов синхронизации [SWS_TS_01265].
Контекст
Класс или структура ara::tsync::TimeBase выполняет в модуле tsync AUTOSAR Adaptive Platform роль псевдочасов (Pseudo-Clock). На уровне C++ она служит в первую очередь первым аргументом шаблона для std::chrono::time_point, чтобы семантически зафиксировать, что временная метка представляет локальное время по отношению к пока подробнее не специфицированному ресурсу базы времени (timeBaseResource) [SWS_TS_01264]. Вместо того чтобы самому выступать активным источником времени со статическим опросом времени, TimeBase функционирует как формальное связующее звено внутри стандартной библиотеки std::chrono.
Предоставляя стандартизированные определения типов, TimeBase привязывает обобщённые механизмы измерения времени C++ к модулю синхронизации. Потребители и компоненты, работающие с моментами времени или интервалами, используют типы-псевдонимы структуры для обмена типизированными временными метками. Таким образом гарантируется, что значения времени через std::chrono::time_point однозначно сопоставлены с локальной базой времени и ошибочно не смешиваются с абсолютными системными часами или отличными источниками времени.
Контекстная диаграмма: встраивание TimeBase в качестве псевдочасов в систему типов C++-Chrono для привязки моментов времени к ресурсу базы времени. Источники: [SWS_TS_01263], [SWS_TS_01264]
Жизненный цикл
Являясь чистой структурой данных и типов (объявленной как struct TimeBase в заголовочном файле ara/tsync/timestamp.h), ara::tsync::TimeBase не имеет динамических фаз жизненного цикла в смысле инициализированного или эксплуатируемого компонента времени выполнения. Инстанцирование объектов данной структуры не является строго обязательным для предусмотренной функции; она существует в первую очередь на уровне системы типов C++ во время компиляции.
Для выполнения формальных требований к часам C++ (C++ Clock Requirements) TimeBase определяет все требуемые типы-псевдонимы и константы. Сюда входят фундаментальный тип счётчика rep как std::int64_t для представления количества тиков времени [SWS_TS_01261], а также интервал тиков времени period как std::nano[SWS_TS_01262], что соответствует разрешению в наносекундном диапазоне. Длительность для измерения времени с момента эпохи предоставляется через псевдоним типа duration как std::chrono::duration<rep, period>[SWS_TS_01263].
В отношении параллелизма и поведения в работающей системе структура объявляет статическую константу is_steady с логическим значением false[SWS_TS_01265]. Это сигнализирует фреймворку C++-Chrono о том, что лежащие в основе часы не являются монотонными (steady). Интерпретация: вероятно, это обусловлено тем, что процессы синхронизации времени в модуле tsync могут вызывать корректировки или скачки локальной базы времени, поэтому последовательные измерения не гарантируют строгой монотонности. Вопрос Q-93a56c0eb2d35c7b (открытый) Поскольку сама структура не инкапсулирует изменяемое состояние, любые использования типов и обращения к константам изначально потокобезопасны.
Путь использования
Типичный путь использования ara::tsync::TimeBase заключается в объявлении, обработке и передаче значений времени внутри синхронизированных приложений. Разработчики и адаптивные программные компоненты инстанцируют не сами часы, а обращаются к центральному псевдониму типа time_point, определённому как std::chrono::time_point<TimeBase>[SWS_TS_01264].
Определение типов и спецификация интерфейса: приложение подключает заголовочный файл ara/tsync/timestamp.h и использует ara::tsync::TimeBase::time_point[SWS_TS_01264] для объявления сигнатур для временных меток. Интерпретация: благодаря этому гарантируется, что моменты времени остаются семантически привязанными к конкретной локальной базе времени. Вопрос Q-549e2d377c0a6845 (открытый)
Арифметика и вычисление разности: при вычитании двух моментов времени выражение автоматически возвращает тип ara::tsync::TimeBase::duration[SWS_TS_01263]. Он основан на наносекундных шагах (period) [SWS_TS_01262] и 64-битных целых числах (rep) [SWS_TS_01261], благодаря чему возможны стандартные вычисления длительности и преобразования в другие единицы времени.
Совместимость со стандартными алгоритмами: благодаря полному соблюдению требований к типам часов моменты времени и интервалы могут беспрепятственно передаваться в функции стандартной библиотеки std::chrono без необходимости использования проприетарных структур времени.
Интерпретация: поскольку TimeBase спроектирован как псевдочасы, он сам не предоставляет статической функции-члена now(); конкретное определение значения времени для такого time_point[SWS_TS_01264], вероятно, осуществляется другими службами или интерфейсами модуля tsync, подключёнными к указанному timeBaseResource. Вопрос Q-2a528a99023dad41 (открытый)
Настоящее руководство основано на спецификации AUTOSAR Adaptive Platform R25-11.
gemini-3.8-flash-low· 2026-10-13 · Немецкий оригинал