class MGSWatchDog |
MGSWatchDog is responsible for quarantining plugins and updating blacklist for crashing GS plugins. This is the class responsible for keeping GS application functional even if some plugin to panics all the time.
This is the interface for GSWatchDog. Client has no need to know the actual implementation as it is owned by GS application.
Public Member Functions | |
---|---|
TBool | IsInBlackList ( TUid ) |
void | QuarantineL ( TUid ) |
void | RemoveFromQuarantineL ( TUid ) |
void | ReportCleanExitL () |
TBool | WasCleanExitL () |
TBool | IsInBlackList | ( | TUid | aPluginUid | ) | [pure virtual] |
Checks if plugin is in blacklist. This can be used to determine if plugin should be loaded.
TUid aPluginUid |
void | QuarantineL | ( | TUid | aPluginUid | ) | [pure virtual] |
Adds plugin to quarantine. In case GS crashes, quarantined plugin will be blacklisted so it is not loaded in next GS run. Same plugin can be quarantined multiple times or even have several uid instances in quarantine if needed as long as all these are removed correspondingly.
NOTE: Plugin must ALWAYS be removed from quarantine after plugin's function execution. 1. QuarantineL() . 2. Call quarantined plugin function. 3. RemoveFromQuarantineL() .
TUid aPluginUid | uid of the quarantined plugin. |
void | RemoveFromQuarantineL | ( | TUid | aPluginUid | ) | [pure virtual] |
Removes plugin from quarantine. In case plugin is not removed from quarantine before GS exits, the plugin will be blacklisted during next GS startup.
TUid aPluginUid | uid of the plugin to be removed from quarantine. |
void | ReportCleanExitL | ( | ) | [pure virtual] |
This must be called in all the cases GS exits normally. If GS panics, this will not be called resulting in banning of all quarantined plugins.Increments iRunsAfterCrash counter for blacklisted plugins. Sets iGSAppRunning to EFalse.
Copyright ©2010 Nokia Corporation and/or its subsidiary(-ies).
All rights
reserved. Unless otherwise stated, these materials are provided under the terms of the Eclipse Public License
v1.0.