# Time

**Detailed Description**

This section contains APIs related to time management to register and deregister a listener for time reports.

- *group* Telematics\_platform\_time

    - Typedefs

- using TimeTypeMask = std::bitset&lt;[MAX\_SUPPORTED\_TIME\_TYPES](https://docs.qualcomm.com/doc/80-PF458-8/topic/time.html#_CPPv4N17SupportedTimeType24MAX_SUPPORTED_TIME_TYPESE)&gt;

    - Bit mask that denotes which of the time types defined in [SupportedTimeType](https://docs.qualcomm.com/doc/80-PF458-8/topic/enum_a00054_1ga341ad8804baeda0b573d31f4550e24b3.html#a00054_1ga341ad8804baeda0b573d31f4550e24b3) are supported.

Enums

- enum SupportedTimeType

    - Defines supported utc report types.

*Values:*

- enumerator GNSS\_UTC\_TIME

    - GNSS UTC time derived from location fix.

- enumerator CV2X\_UTC\_TIME

    - UTC time derived from injected UTC when the vehicle has selected a roadside unit as the synchronization reference for V2X communication.

- enumerator MAX\_SUPPORTED\_TIME\_TYPES

    -

- class ITimeListener : public telux::common::[ISDKListener](https://docs.qualcomm.com/doc/80-PF458-8/topic/class_a00046.html#_CPPv4N5telux6common12ISDKListenerE)

    - Listener class for getting time information. The client needs to implement these methods as briefly as possible and avoid blocking calls in it. The methods in this class can be invoked from multiple different threads. Client needs to make sure that the implementation is thread-safe.

Public Functions

- inline virtual void onGnssUtcTimeUpdate(const uint64\_t utcInMs)

    - This function is called every 100 milliseconds after registering a listener by invoking [ITimeManager::registerListener](https://docs.qualcomm.com/doc/80-PF458-8/topic/time.html#a00570_1ab04d8a71981338ed2159499d84eb0d44). The utc reported via this API is derived from location fix, utc value zero means there is no valid utc derived from location fix.

On platforms with Access control enabled, the client needs to have TELUX\_LOC\_DATA permission for this API to be invoked.

- Parameters:

    - **utcInMs** – **[out]** - Milliseconds since Jan 1, 1970.

- inline virtual void onCv2xUtcTimeUpdate(const uint64\_t utcInMs)

    - This function is called every second after registering a listener by invoking [ITimeManager::registerListener](https://docs.qualcomm.com/doc/80-PF458-8/topic/time.html#a00570_1ab04d8a71981338ed2159499d84eb0d44). In order for this API to be invoked, the vehicle needs to be in an area of no GNSS coverage and select a roadside unit as the synchronization reference, and a client (like an ITS stack) needs to have injected a coarse UTC time using [telux::cv2x::ICv2xRadioManager::injectCoarseUtcTime()](https://docs.qualcomm.com/doc/80-PF458-8/topic/cpp_apis.html#a00311_1ad367552f6778491cd6434d84d74952df).

- Parameters:

    - **utcInMs** – **[out]** - Milliseconds since Jan 1, 1970. 0 if no time available via SLSS (Sidelink Synchronisation Signal).

- inline virtual ~ITimeListener()

    - Destructor of [ITimeListener](https://docs.qualcomm.com/doc/80-PF458-8/topic/time.html#a00569)

- class ITimeManager

    - [ITimeManager](https://docs.qualcomm.com/doc/80-PF458-8/topic/time.html#a00570) provides interface to retrieve time information.

Public Functions

- virtual telux::common::[ServiceStatus](https://docs.qualcomm.com/doc/80-PF458-8/topic/enum_a00023_1ga7063b4a1071b6581022e30b730684e4d.html#_CPPv4N5telux6common13ServiceStatusE) getServiceStatus() = 0

    - This status indicates whether the object is in a usable state.

- Returns:

    - [telux::common::ServiceStatus](https://docs.qualcomm.com/doc/80-PF458-8/topic/enum_a00023_1ga7063b4a1071b6581022e30b730684e4d.html#a00023_1ga7063b4a1071b6581022e30b730684e4d) indicating the current status of the device info service.

- virtual telux::common::[Status](https://docs.qualcomm.com/doc/80-PF458-8/topic/enum_a00023_1ga45eeeff7c2860e02ae447d588d3d6e4d.html#_CPPv4N5telux6common6StatusE) registerListener(std::weak\_ptr&lt;[ITimeListener](https://docs.qualcomm.com/doc/80-PF458-8/topic/class_a00569.html#_CPPv4N5telux8platform13ITimeListenerE)&gt; listener, [TimeTypeMask](https://docs.qualcomm.com/doc/80-PF458-8/topic/typedef_a00054_1gab2bcbe01dfe0eef3d068612ec6664097.html#_CPPv4N5telux8platform12TimeTypeMaskE) mask) = 0

    - Registers the listener for time updates. This will result in frequent notifications and will result in wakeups when system is suspended. If wakeups are not desired then deregister should be called.

- Parameters:

    - - **listener** – **[in]** - pointer to implemented listener.
- **mask** – **[in]** - mask to indicate which times the client is interested in registering for.

- Returns:

    - status of the registration request.

- virtual telux::common::[Status](https://docs.qualcomm.com/doc/80-PF458-8/topic/enum_a00023_1ga45eeeff7c2860e02ae447d588d3d6e4d.html#_CPPv4N5telux6common6StatusE) deregisterListener(std::weak\_ptr&lt;[ITimeListener](https://docs.qualcomm.com/doc/80-PF458-8/topic/class_a00569.html#_CPPv4N5telux8platform13ITimeListenerE)&gt; listener, [TimeTypeMask](https://docs.qualcomm.com/doc/80-PF458-8/topic/typedef_a00054_1gab2bcbe01dfe0eef3d068612ec6664097.html#_CPPv4N5telux8platform12TimeTypeMaskE) mask) = 0

    - Deregisters the previously registered listener for time updates.

- Parameters:

    - - **listener** – **[in]** - pointer to registered listener that needs to be removed.
- **mask** – **[in]** - mask to indicate which times the client has registering for.

- Returns:

    - status of the deregistration request.

- inline virtual ~ITimeManager()

    - Destructor of [ITimeManager](https://docs.qualcomm.com/doc/80-PF458-8/topic/time.html#a00570)

Last Published: May 20, 2026

[Previous Topic
telux::platform::hardware::IAntennaManager](https://docs.qualcomm.com/bundle/publicresource/80-PF458-8/topics/hardware_antenna.md) [Next Topic
Power](https://docs.qualcomm.com/bundle/publicresource/80-PF458-8/topics/power.md)