# Modem configuration

**Detailed Description**

This section contains APIs related to Modem Config operations.

- *group* Telematics\_config\_manager

    - Typedefs

- using ConfigId = std::string

    - 

- using ConfigListCallback = std::function&lt;void(std::vector&lt;ConfigInfo&gt; configList, telux::common::[ErrorCode](https://docs.qualcomm.com/doc/80-PF458-8/topic/enum_a00023_1ga84acdb74b7d34616b1ca497c7369810d.html#_CPPv4N5telux6common9ErrorCodeE) error)&gt;

    - This function is called as a response to requestConfigList().

- Param configList:

    - **[in]** - Contains the list of config files in modem’s storage.

- Param error:

    - **[in]** - Return code which indicates whether the operation succeeded or not. ErrorCode

- using GetAutoSelectionModeCallback = std::function&lt;void([AutoSelectionMode](https://docs.qualcomm.com/doc/80-PF458-8/topic/modem_configuration.html#_CPPv417AutoSelectionMode) mode, telux::common::[ErrorCode](https://docs.qualcomm.com/doc/80-PF458-8/topic/enum_a00023_1ga84acdb74b7d34616b1ca497c7369810d.html#_CPPv4N5telux6common9ErrorCodeE) error)&gt;

    - This function is called as a response to getAutoSelectionMode().

- Param mode:

    - **[in]** - contains status of auto selection for configs.

- Param error:

    - **[in]** - Return code which indicates whether the operation succeeded or not. ErrorCode

- using GetActiveConfigCallback = std::function&lt;void(ConfigInfo configInfo, telux::common::[ErrorCode](https://docs.qualcomm.com/doc/80-PF458-8/topic/enum_a00023_1ga84acdb74b7d34616b1ca497c7369810d.html#_CPPv4N5telux6common9ErrorCodeE) error)&gt;

    - This function is called as a response to getActiveConfig().

- Param configInfo:

    - **[in]** - Information of active config file for specified slot id.

- Param error:

    - **[in]** - Return code which indicates whether the operation succeeded or not. ErrorCode

Enums

- enum ConfigType

    - *Values:*

- enumerator HARDWARE

    - For hardware or platform related configuration files

- enumerator SOFTWARE

    - For software or carrier related configuration files

- enum AutoSelectionMode

    - Selection Mode defines status of auto selection mode for configs.

*Values:*

- enumerator DISABLED

    - Auto selection disabled

- enumerator ENABLED

    - Auto selection enabled

- enum ConfigUpdateStatus

    - ConfigUpdateStatus represent status of config update, a update of config happens when a software config is activated and all segments using the config are updated with new config.

*Values:*

- enumerator START

    - start of updation process

- enumerator COMPLETE

    - end of updation process

- class ConfigFactory

    - [ConfigFactory](https://docs.qualcomm.com/doc/80-PF458-8/topic/modem_configuration.html#a00286) allows creation of config related classes.

Public Functions

- virtual std::shared\_ptr&lt;[IModemConfigManager](https://docs.qualcomm.com/doc/80-PF458-8/topic/class_a00291.html#_CPPv4N5telux6config19IModemConfigManagerE)&gt; getModemConfigManager(telux::common::[InitResponseCb](https://docs.qualcomm.com/doc/80-PF458-8/topic/typedef_a00235_1ab92f90010203f914a62cec6bd7af0a1a.html#_CPPv4N5telux6common14InitResponseCbE) callback = nullptr) = 0

    - Get instance of ModemConfig manager

On platforms with Access control enabled, Caller needs to have TELUX\_CONFIG\_MODEM\_CONFIG permission to invoke this API successfully.

- Parameters:

    - **callback** – **[in]** Optional callback to get the response of Modem Config Manager initialization.

- Returns:

    - pointer of [IModemConfigManager](https://docs.qualcomm.com/doc/80-PF458-8/topic/modem_configuration.html#a00291) object.

- virtual std::shared\_ptr&lt;[IConfigManager](https://docs.qualcomm.com/doc/80-PF458-8/topic/class_a00288.html#_CPPv4N5telux6config14IConfigManagerE)&gt; getConfigManager(telux::common::[InitResponseCb](https://docs.qualcomm.com/doc/80-PF458-8/topic/typedef_a00235_1ab92f90010203f914a62cec6bd7af0a1a.html#_CPPv4N5telux6common14InitResponseCbE) callback = nullptr) = 0

    - Get instance of the Config manager

On platforms with Access control enabled, Caller needs to have TELUX\_CONFIG\_APPS\_CONFIG permission to invoke this API successfully.

- Parameters:

    - **callback** – **[in]** Optional callback to get the response of Config Manager initialization.

- Returns:

    - pointer of [IConfigManager](https://docs.qualcomm.com/doc/80-PF458-8/topic/modem_configuration.html#a00288) object.

Public Static Functions

- static [ConfigFactory](https://docs.qualcomm.com/doc/80-PF458-8/topic/class_a00286.html#_CPPv4N5telux6config13ConfigFactoryE) &getInstance()

    - Get instance of Config Factory

Private Functions

- ConfigFactory(const [ConfigFactory](https://docs.qualcomm.com/doc/80-PF458-8/topic/class_a00286.html#_CPPv4N5telux6config13ConfigFactory13ConfigFactoryERK13ConfigFactory)&) = delete

    - 

- [ConfigFactory](https://docs.qualcomm.com/doc/80-PF458-8/topic/class_a00286.html#_CPPv4N5telux6config13ConfigFactoryE) &operator=(const [ConfigFactory](https://docs.qualcomm.com/doc/80-PF458-8/topic/class_a00286.html#_CPPv4N5telux6config13ConfigFactoryE)&) = delete

    -

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

    - [IConfigListener](https://docs.qualcomm.com/doc/80-PF458-8/topic/modem_configuration.html#a00287) interface is used to receive notifications related to any updates in the configurations dynamically.

Public Functions

- inline virtual void onConfigUpdate(std::string key, std::string value)

    - This API is invoked when there is any update in the configurations dynamically.

- Parameters:

    - - **key** – **[in]** - The key updated in the configurations.
- **value** – **[in]** - The corresponding value for the key that was updated in the configurations.

- inline virtual ~IConfigListener()

    -

- class IConfigManager

    - [IConfigManager](https://docs.qualcomm.com/doc/80-PF458-8/topic/modem_configuration.html#a00288) provides APIs to retrieve an instance of the manager, APIs for processes to update and retrieve configurations dynamically.

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 manager object is in a usable state or not.

- Returns:

    - SERVICE\_AVAILABLE - if apps config manager is ready to use. SERVICE\_UNAVAILABLE - if apps config manager is temporarily unavailable to use. SERVICE\_FAILED - if apps config manager encountered an irrecoverable failure and can not be used.

- virtual telux::common::[Status](https://docs.qualcomm.com/doc/80-PF458-8/topic/enum_a00023_1ga45eeeff7c2860e02ae447d588d3d6e4d.html#_CPPv4N5telux6common6StatusE) registerListener(std::weak\_ptr&lt;[IConfigListener](https://docs.qualcomm.com/doc/80-PF458-8/topic/class_a00287.html#_CPPv4N5telux6config15IConfigListenerE)&gt; listener) = 0

    - This API is used to register a listener for getting the updates when the configurations are updated dynamically.

- Parameters:

    - **listener** – **[in]** - Pointer of object that processes the notification.

- Returns:

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

- virtual telux::common::[Status](https://docs.qualcomm.com/doc/80-PF458-8/topic/enum_a00023_1ga45eeeff7c2860e02ae447d588d3d6e4d.html#_CPPv4N5telux6common6StatusE) deregisterListener(std::weak\_ptr&lt;[IConfigListener](https://docs.qualcomm.com/doc/80-PF458-8/topic/class_a00287.html#_CPPv4N5telux6config15IConfigListenerE)&gt; listener) = 0

    - This API is used to deregister a listener from getting the updates when the configurations are updated dynamically.

- Parameters:

    - **listener** – **[in]** - Pointer of object that processes the notification.

- Returns:

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

- virtual telux::common::[Status](https://docs.qualcomm.com/doc/80-PF458-8/topic/enum_a00023_1ga45eeeff7c2860e02ae447d588d3d6e4d.html#_CPPv4N5telux6common6StatusE) setConfig(const std::string key, const std::string value) = 0

    - This API is used to update the key and the corresponding value in the configurations dynamically.

On platforms with Access control enabled, if -

1. /etc/tel.conf needs to be updated - caller needs to have TELUX\_SET\_GLOBAL\_CONFIG permission to invoke this API successfully.
2. App specific conf needs to be updated - caller needs to have TELUX\_SET\_LOCAL\_CONFIG permission to invoke this API successfully.

In order to update any configuration onto the file, all the permissions needed - DAC permissions and sepolicy requirements, should be taken care by the application.

The API does not perform any strict checking for the value being set. Please refer to tel.conf for valid values for configuration items.

- Parameters:

    - - **key** – **[in]** - The key that needs to be updated in the configurations.
- **value** – **[in]** - The corresponding value for the key that needs the update in the configurations.

- Returns:

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

- virtual const std::string getConfig(const std::string key) = 0

    - This API is used to retrieve the value for the corresponding key from the configurations dynamically.

- Parameters:

    - **key** – **[in]** - The key whose value is to be retrieved from the configurations.

- Returns:

    - The value for the key passed.

- virtual const std::map&lt;std::string, std::string&gt; getAllConfigs() = 0

    - This API is used to retrieve all the configurations for the application at present.

- Returns:

    - A map of key-value pairs depicting all the application’s configurations at present.

- inline virtual ~IConfigManager()

    - Destructor of [IConfigManager](https://docs.qualcomm.com/doc/80-PF458-8/topic/modem_configuration.html#a00288)

- struct ConfigInfo

    - Public Members

- [ConfigId](https://docs.qualcomm.com/doc/80-PF458-8/topic/typedef_a00020_1ga6270f2acc3176afa452bbcacb790bdf7.html#_CPPv4N5telux6config8ConfigIdE) id

    - id - stores the id of the configuration type - stores config type size - stores the size of the configuration desc - stores the configuration description version - stores version of the config file

- [ConfigType](https://docs.qualcomm.com/doc/80-PF458-8/topic/enum_a00020_1gaed80d08c0a1ba44ec63233b5789e25a6.html#_CPPv4N5telux6config10ConfigTypeE) type

    - 

- uint32\_t size

    - 

- std::string desc

    - 

- uint32\_t version

    -

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

    - Listener class for getting notifications related to configuration change detection. 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 onConfigUpdateStatus([ConfigUpdateStatus](https://docs.qualcomm.com/doc/80-PF458-8/topic/enum_a00020_1ga8cd5c06d7a04491410d4a746995ed02e.html#_CPPv4N5telux6config18ConfigUpdateStatusE) status, int slotId)

    - This function is called when a configuration update is detected. It is applicable only to SOFTWARE config.

- Parameters:

    - - **status** – **[in]** update status of config.
- **slotId** – **[in]** slotId where update is detected.

- inline virtual ~IModemConfigListener()

    - Destructor of [IModemConfigListener](https://docs.qualcomm.com/doc/80-PF458-8/topic/modem_configuration.html#a00290)

- class IModemConfigManager

    - [IModemConfigManager](https://docs.qualcomm.com/doc/80-PF458-8/topic/modem_configuration.html#a00291) provides interface to list config files present in modem’s storage. load a new config file in modem, activate a config file, get active config file information, deactivate a config file, delete config file from the modem’s storage, get and set mode of config auto selection, register and deregister listener for config update in modem. The config files are also referred to as MBNs.

Public Functions

- virtual bool isSubsystemReady() = 0

    - Checks the status of modem config subsystem and returns the result.

Deprecated Use [getServiceStatus](https://docs.qualcomm.com/doc/80-PF458-8/topic/modem_configuration.html#a00291_1ad661a74bb1b07004b12e965e164c9d88) API

- Returns:

    - If true that means ModemConfigManager is ready for performing config operations.

- 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 manager object is in a usable state or not.

- Returns:

    - SERVICE\_AVAILABLE - if modem config manager is ready to use. SERVICE\_UNAVAILABLE - if modem config manager is temporarily unavailable to use. SERVICE\_FAILED - if modem config manager encountered an irrecoverable failure and can not be used.

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

    - Wait for modem config subsystem to be ready.

Deprecated Use InitResponseCb callback in factory API [ConfigFactory::getModemConfigManager](https://docs.qualcomm.com/doc/80-PF458-8/topic/modem_configuration.html#a00286_1ac82000a3057f3da3c54e39b7a062932f).

- Returns:

    - A future that caller can wait on to be notified when modem config subsystem is ready.

- virtual telux::common::[Status](https://docs.qualcomm.com/doc/80-PF458-8/topic/enum_a00023_1ga45eeeff7c2860e02ae447d588d3d6e4d.html#_CPPv4N5telux6common6StatusE) requestConfigList([ConfigListCallback](https://docs.qualcomm.com/doc/80-PF458-8/topic/typedef_a00020_1ga249aa21b01599ce3aa8989655856a692.html#_CPPv4N5telux6config18ConfigListCallbackE) cb) = 0

    - Fetching the list of config files present in modem’s storage.

returns SUCCESS if the request to get config list is sent successfully.

- Parameters:

    - **cb** – **[in]** - callback to the Response function.

- virtual telux::common::[Status](https://docs.qualcomm.com/doc/80-PF458-8/topic/enum_a00023_1ga45eeeff7c2860e02ae447d588d3d6e4d.html#_CPPv4N5telux6common6StatusE) loadConfigFile(std::string filePath, [ConfigType](https://docs.qualcomm.com/doc/80-PF458-8/topic/enum_a00020_1gaed80d08c0a1ba44ec63233b5789e25a6.html#_CPPv4N5telux6config10ConfigTypeE) configType, telux::common::[ResponseCallback](https://docs.qualcomm.com/doc/80-PF458-8/topic/typedef_a00235_1a8f614f0a0eeca90c94dad1967ca93bcd.html#_CPPv4N5telux6common16ResponseCallbackE) cb = nullptr) = 0

    - Loads a new config file into the modem’s storage. This is a persistent operation. Only the config files loaded into the modem’s storage can be activated.

returns SUCCESS if the request to load config file is sent successfully.

- Parameters:

    - - **filePath** – **[in]** - it defines the path to the config file.
- **configType** – **[in]** - type of the config file.
- **cb** – **[in]** - callback to the response function.

- virtual telux::common::[Status](https://docs.qualcomm.com/doc/80-PF458-8/topic/enum_a00023_1ga45eeeff7c2860e02ae447d588d3d6e4d.html#_CPPv4N5telux6common6StatusE) activateConfig([ConfigType](https://docs.qualcomm.com/doc/80-PF458-8/topic/enum_a00020_1gaed80d08c0a1ba44ec63233b5789e25a6.html#_CPPv4N5telux6config10ConfigTypeE) configType, [ConfigId](https://docs.qualcomm.com/doc/80-PF458-8/topic/typedef_a00020_1ga6270f2acc3176afa452bbcacb790bdf7.html#_CPPv4N5telux6config8ConfigIdE) configId, int slotId = [DEFAULT\_SLOT\_ID](https://docs.qualcomm.com/doc/80-PF458-8/topic/enum_a00074_1a04bc541ec544188a3bc649001a8a0111.html#_CPPv4N6SlotId15DEFAULT_SLOT_IDE), telux::common::[ResponseCallback](https://docs.qualcomm.com/doc/80-PF458-8/topic/typedef_a00235_1a8f614f0a0eeca90c94dad1967ca93bcd.html#_CPPv4N5telux6common16ResponseCallbackE) cb = nullptr) = 0

    - Activates the config file on specified slot id. A file for activation must be loaded or should already be present in modem’s storage.

- Parameters:

    - - **configType** – **[in]** - type of the config file.
- **configId** – **[in]** - id of the config file.
- **slotId** – **[in]** - it defines the slot id to be selected.
- **cb** – **[in]** - callback to the response function.

- Returns:

    - SUCCESS if the request to activate config file is sent successfully.

- virtual telux::common::[Status](https://docs.qualcomm.com/doc/80-PF458-8/topic/enum_a00023_1ga45eeeff7c2860e02ae447d588d3d6e4d.html#_CPPv4N5telux6common6StatusE) getActiveConfig([ConfigType](https://docs.qualcomm.com/doc/80-PF458-8/topic/enum_a00020_1gaed80d08c0a1ba44ec63233b5789e25a6.html#_CPPv4N5telux6config10ConfigTypeE) configType, [GetActiveConfigCallback](https://docs.qualcomm.com/doc/80-PF458-8/topic/typedef_a00020_1gad049f3e022960af0c42bb0ebb9e97c4b.html#_CPPv4N5telux6config23GetActiveConfigCallbackE) cb, int slotId = [DEFAULT\_SLOT\_ID](https://docs.qualcomm.com/doc/80-PF458-8/topic/enum_a00074_1a04bc541ec544188a3bc649001a8a0111.html#_CPPv4N6SlotId15DEFAULT_SLOT_IDE)) = 0

    - Get the currently active config file information for the specified slot id. In case default config files are activated, would return error.

- Parameters:

    - - **configType** – **[in]** - type of the config file.
- **cb** – **[in]** - callback to the response function.
- **slotId** – **[in]** - it defines the slot id to be selected.

- Returns:

    - SUCCESS if the request to get active config information is sent successfully.

- virtual telux::common::[Status](https://docs.qualcomm.com/doc/80-PF458-8/topic/enum_a00023_1ga45eeeff7c2860e02ae447d588d3d6e4d.html#_CPPv4N5telux6common6StatusE) deactivateConfig([ConfigType](https://docs.qualcomm.com/doc/80-PF458-8/topic/enum_a00020_1gaed80d08c0a1ba44ec63233b5789e25a6.html#_CPPv4N5telux6config10ConfigTypeE) configType, int slotId = [DEFAULT\_SLOT\_ID](https://docs.qualcomm.com/doc/80-PF458-8/topic/enum_a00074_1a04bc541ec544188a3bc649001a8a0111.html#_CPPv4N6SlotId15DEFAULT_SLOT_IDE), telux::common::[ResponseCallback](https://docs.qualcomm.com/doc/80-PF458-8/topic/typedef_a00235_1a8f614f0a0eeca90c94dad1967ca93bcd.html#_CPPv4N5telux6common16ResponseCallbackE) cb = nullptr) = 0

    - Deactivates the config file for the specified slot id.

- Parameters:

    - - **configType** – **[in]** - type of the config file.
- **slotId** – **[in]** - slot id to be selected for deactivation of config.
- **cb** – **[in]** - callback to the response function.

- Returns:

    - SUCCESS if the request to deactivate config file is sent successfully

- virtual telux::common::[Status](https://docs.qualcomm.com/doc/80-PF458-8/topic/enum_a00023_1ga45eeeff7c2860e02ae447d588d3d6e4d.html#_CPPv4N5telux6common6StatusE) deleteConfig([ConfigType](https://docs.qualcomm.com/doc/80-PF458-8/topic/enum_a00020_1gaed80d08c0a1ba44ec63233b5789e25a6.html#_CPPv4N5telux6config10ConfigTypeE) configType, [ConfigId](https://docs.qualcomm.com/doc/80-PF458-8/topic/typedef_a00020_1ga6270f2acc3176afa452bbcacb790bdf7.html#_CPPv4N5telux6config8ConfigIdE) configId = "", telux::common::[ResponseCallback](https://docs.qualcomm.com/doc/80-PF458-8/topic/typedef_a00235_1a8f614f0a0eeca90c94dad1967ca93bcd.html#_CPPv4N5telux6common16ResponseCallbackE) cb = nullptr) = 0

    - Deletes the config file from the modem’s storage.

- Parameters:

    - - **configType** – **[in]** - type of the config file.
- **configId** – **[in]** - id of the config file. This parameter is optional if not provided all the config files of the given config type are deleted from modem’s storage.
- **cb** – **[in]** - callback to the Response function.

- Returns:

    - SUCCESS if the request to delete config file is sent successfully

- virtual telux::common::[Status](https://docs.qualcomm.com/doc/80-PF458-8/topic/enum_a00023_1ga45eeeff7c2860e02ae447d588d3d6e4d.html#_CPPv4N5telux6common6StatusE) getAutoSelectionMode([GetAutoSelectionModeCallback](https://docs.qualcomm.com/doc/80-PF458-8/topic/typedef_a00020_1ga4071eea0fa88ba927fd1274ce1dd2fb1.html#_CPPv4N5telux6config28GetAutoSelectionModeCallbackE) cb, int slotId = [DEFAULT\_SLOT\_ID](https://docs.qualcomm.com/doc/80-PF458-8/topic/enum_a00074_1a04bc541ec544188a3bc649001a8a0111.html#_CPPv4N6SlotId15DEFAULT_SLOT_IDE)) = 0

    - Fetching the mode of config auto selection for specified slot id.

- Parameters:

    - - **cb** – **[in]** - callback to the response function.
- **slotId** – **[in]** - slot id of config.

- Returns:

    - SUCCESS if the request to get selection mode is sent successfully

- virtual telux::common::[Status](https://docs.qualcomm.com/doc/80-PF458-8/topic/enum_a00023_1ga45eeeff7c2860e02ae447d588d3d6e4d.html#_CPPv4N5telux6common6StatusE) setAutoSelectionMode([AutoSelectionMode](https://docs.qualcomm.com/doc/80-PF458-8/topic/enum_a00020_1ga6e1b90d96aa7ee892ff4e07ace1461c6.html#_CPPv4N5telux6config17AutoSelectionModeE) mode, int slotId = [DEFAULT\_SLOT\_ID](https://docs.qualcomm.com/doc/80-PF458-8/topic/enum_a00074_1a04bc541ec544188a3bc649001a8a0111.html#_CPPv4N6SlotId15DEFAULT_SLOT_IDE), telux::common::[ResponseCallback](https://docs.qualcomm.com/doc/80-PF458-8/topic/typedef_a00235_1a8f614f0a0eeca90c94dad1967ca93bcd.html#_CPPv4N5telux6common16ResponseCallbackE) cb = nullptr) = 0

    - Setting the mode of config auto selection for specified slot id.

- Parameters:

    - - **mode** – **[in]** - auto selection mode status.
- **slotId** – **[in]** - slot id of the config.
- **cb** – **[in]** - callback to the response function.

- Returns:

    - SUCCESS if the request to set selection mode is sent successfully.

- virtual telux::common::[Status](https://docs.qualcomm.com/doc/80-PF458-8/topic/enum_a00023_1ga45eeeff7c2860e02ae447d588d3d6e4d.html#_CPPv4N5telux6common6StatusE) registerListener(std::weak\_ptr&lt;[IModemConfigListener](https://docs.qualcomm.com/doc/80-PF458-8/topic/class_a00290.html#_CPPv4N5telux6config20IModemConfigListenerE)&gt; listener) = 0

    - Registeres the listener for indications.

- Parameters:

    - **listener** – **[in]** - pointer to implemented listener.

- Returns:

    - SUCCESS if the request to register listener is sent successfully.

- virtual telux::common::[Status](https://docs.qualcomm.com/doc/80-PF458-8/topic/enum_a00023_1ga45eeeff7c2860e02ae447d588d3d6e4d.html#_CPPv4N5telux6common6StatusE) deregisterListener(std::weak\_ptr&lt;[IModemConfigListener](https://docs.qualcomm.com/doc/80-PF458-8/topic/class_a00290.html#_CPPv4N5telux6config20IModemConfigListenerE)&gt; listener) = 0

    - Deregisteres the listener from indications.

- Parameters:

    - **listener** – **[in]** - pointer to registered listener.

- Returns:

    - SUCCESS if the request to deregister listener is sent successfully.

- inline virtual ~IModemConfigManager()

    - Destructor of [IModemConfigManager](https://docs.qualcomm.com/doc/80-PF458-8/topic/modem_configuration.html#a00291)

Last Published: May 20, 2026

[Previous Topic
Modem](https://docs.qualcomm.com/bundle/publicresource/80-PF458-8/topics/modem.md) [Next Topic
Platform](https://docs.qualcomm.com/bundle/publicresource/80-PF458-8/topics/platform.md)