# Thermal shutdown management

**Detailed Description**

This section contains APIs related to Thermal Shutdown Management such as set/get thermal auto-shutdown mode, receive notifications on every auto-shutdown update.

- *group* Telematics\_therm\_shutdown\_management

    - Typedefs

- using GetAutoShutdownModeResponseCb = std::function&lt;void([AutoShutdownMode](https://docs.qualcomm.com/doc/80-PF458-10/topic/thermal_management.html#_CPPv416AutoShutdownMode) mode)&gt;

    - This function is called with the response to getAutoShutdownMode API.

The callback can be invoked from multiple different threads. The implementation should be thread safe.

- Param mode:

    - **[in]** AutoShutdownMode

- class IThermalShutdownListener : public [telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[IServiceStatusListener](https://docs.qualcomm.com/doc/80-PF458-10/topic/class_a00049.html#_CPPv4N5telux6common22IServiceStatusListenerE)

    - Listener class for getting notifications when automatic thermal shutdown mode is enabled/ disabled or will be enabled imminently. 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 onShutdownEnabled()

    - This function is called when the automatic shutdown mode changes to ENABLE

- inline virtual void onShutdownDisabled()

    - This function is called when the automatic shutdown mode changes to DISABLE

- inline virtual void onImminentShutdownEnablement(uint32\_t imminentDuration)

    - This function is called when the automatic shutdown mode is about to change to ENABLE. Clients that want to keep the shutdown mode disabled, needs to set it accordingly with in the imminentDuration time. If disabled successfully within imminentDuration time, the system timer for auto-enablement will be reset.

- Parameters:

    - **imminentDuration** – **[in]** Time elapsed(in seconds) for the shutdown mode to be enabled

- inline virtual ~IThermalShutdownListener()

    - Destructor of [IThermalShutdownListener](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#a00783)

- class IThermalShutdownManager

    - [IThermalShutdownManager](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#a00784) class provides interface to enable/disable automatic thermal shutdown. Additionally it facilitates to register for notifications when the automatic shutdown mode changes.

Public Functions

- virtual bool isReady() = 0

    - Checks the status of thermal shutdown management service and if the other APIs are ready for use and returns the result.

Deprecated use [getServiceStatus()](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#a00784_1ac833008a4aefc83dab1dbed3b9221bf9)

- Returns:

    - True if the services are ready otherwise false.

- virtual [telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[ServiceStatus](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.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-10/topic/enum_a00023_1ga7063b4a1071b6581022e30b730684e4d.html#a00023_1ga7063b4a1071b6581022e30b730684e4d)

- virtual std::future&lt;bool&gt; onReady() = 0

    - Wait for thermal shutdown management service to be ready.

Deprecated The callback mechanism introduced in the [ThermalFactory::getThermalShutdownManager](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#a00776_1aa94dbb0f4ad9020bf1a1d2308aa99367) with initialization callback along with [getServiceStatus](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#a00784_1ac833008a4aefc83dab1dbed3b9221bf9) API will provide the similar mechanism as [onReady](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#a00784_1a4a57c362d5f9fd027081859530aaa295) and [isReady](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#a00784_1a9060e169786f9dfb886f4163d276d9db). This API will soon be removed from further releases.

- Returns:

    - A future that caller can wait on to be notified when thermal shutdown management service is ready.

- virtual [telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[Status](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6common6StatusE) registerListener(std::weak\_ptr&lt;[IThermalShutdownListener](https://docs.qualcomm.com/doc/80-PF458-10/topic/class_a00783.html#_CPPv4N5telux5therm24IThermalShutdownListenerE)&gt; listener) = 0

    - Register a listener for updates on automatic shutdown mode changes

- Parameters:

    - **listener** – **[in]** Pointer of [IThermalShutdownListener](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#a00783) object that processes the notification

- Returns:

    - Status of registerListener i.e success or suitable status code.

- virtual [telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[Status](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6common6StatusE) deregisterListener(std::weak\_ptr&lt;[IThermalShutdownListener](https://docs.qualcomm.com/doc/80-PF458-10/topic/class_a00783.html#_CPPv4N5telux5therm24IThermalShutdownListenerE)&gt; listener) = 0

    - Remove a previously registered listener.

- Parameters:

    - **listener** – **[in]** Previously registered [IThermalShutdownListener](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#a00783) that needs to be removed

- Returns:

    - Status of deregisterListener, success or suitable status code

- virtual [telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[Status](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6common6StatusE) setAutoShutdownMode([AutoShutdownMode](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux5therm16AutoShutdownModeE) mode, [telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[ResponseCallback](https://docs.qualcomm.com/doc/80-PF458-10/topic/typedef_a00236_1a8f614f0a0eeca90c94dad1967ca93bcd.html#_CPPv4N5telux6common16ResponseCallbackE) callback = nullptr, uint32\_t timeout = [DEFAULT\_TIMEOUT](https://docs.qualcomm.com/doc/80-PF458-10/topic/variable_a00010_1ga87425f1ada53acfbdd50fe0cca7dbcfe.html#_CPPv4N5telux5therm15DEFAULT_TIMEOUTE)) = 0

    - Set automatic thermal shutdown mode. When set to DISABLE mode successfully, it remains in DISABLE mode briefly and automatically changes to ENABLE mode after notifying the clients.

- Parameters:

    - - **mode** – **[in]** desired AutoShutdownMode to be set
- **callback** – **[in]** Optional callback to get the response of the command
- **timeout** – **[in]** Optional timeout(in seconds) for which auto-shutdown remains disabled.

- Returns:

    - Status of setAutoShutdownMode i.e. success or suitable status code.

- virtual [telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[Status](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6common6StatusE) getAutoShutdownMode([GetAutoShutdownModeResponseCb](https://docs.qualcomm.com/doc/80-PF458-10/topic/typedef_a00053_1gadce0e0821b6a41be497d861fdb3b689c.html#_CPPv4N5telux5therm29GetAutoShutdownModeResponseCbE) callback) = 0

    - Get automatic thermal shutdown mode.

- Parameters:

    - **callback** – **[in]** GetAutoShutdownModeResponseCb to get response of the request

- Returns:

    - Status of getAutoShutdownMode i.e. success or suitable status code.

- inline virtual ~IThermalShutdownManager()

    - Destructor of [IThermalShutdownManager](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#a00784)

Last Published: Mar 31, 2026

[Previous Topic
telux::therm::ICoolingDevice](https://docs.qualcomm.com/bundle/publicresource/80-PF458-10/topics/thermal_management.md) [Next Topic
V2X](https://docs.qualcomm.com/bundle/publicresource/80-PF458-10/topics/v2x.md)