uiacceltk/hitchcock/goommonitor/src/goomconfigparser.cpp
branchRCL_3
changeset 3 d8a3531bc6b8
parent 0 15bf7259bb7c
child 11 46927d61fef3
--- a/uiacceltk/hitchcock/goommonitor/src/goomconfigparser.cpp	Tue Feb 02 07:56:43 2010 +0200
+++ b/uiacceltk/hitchcock/goommonitor/src/goomconfigparser.cpp	Mon Feb 22 17:57:49 2010 +0200
@@ -56,6 +56,7 @@
 KGOomErrBadLowThresholdValueForAppConfig,
 KGOomErrBadGoodThresholdValueForAppConfig,
 KGOomErrBadTargetFreeValueForAppConfig,
+KGOomErrBadSkipPluginValueForAppConfig,
 KGOomErrSystemPluginSettingsMustComeAfterAppCloseSettings,
 KGOomErrAppPluginSettingsMustComeAfterSystemPluginSettings,
 KGOomErrAppPluginIdleTimeRulesMustComeAfterAppPluginSettings,
@@ -109,6 +110,9 @@
 _LIT8(KGOomConfigAppCloseSettings, "app_close_settings");
 _LIT8(KGOomConfigCloseApp, "close_app");
 
+_LIT8(KGOomAttributeAppCloseTimeout, "close_timeout");
+_LIT8(KGOomAttributeAppWaitAfterClose, "wait_after_close");
+
 // App close idle time
 _LIT8(KGOomConfigAppCloseIdlePriority, "app_close_idle_priority");
 
@@ -122,6 +126,7 @@
 
 //App specific
 _LIT8(KGOomAttributeTargetFreeOnStartup, "target_free_on_startup");
+_LIT8(KGOomAttributeSkipPlugin, "skip_plugin");
 
 // System plugins 
 
@@ -478,6 +483,24 @@
             if (err != KErrNone)
                 ConfigError(KGOomErrBadTargetFreeValueForAppConfig);
             }
+        
+    // Get the app specific SkipPlugin
+        if (err == KErrNone)
+            {
+            TUint skipPlugin;
+            err = GetValueFromHexAttributeList(aAttributes, KGOomAttributeSkipPlugin, skipPlugin);
+            if (err == KErrNone)
+                {
+                TRACES2("SKIP PLUGIN %x configured for App %x", skipPlugin, uid); 
+                appConfig->iSkipPluginId = skipPlugin;
+                }
+            else if (err == KErrNotFound)
+                err = KErrNone;
+            
+            if (err != KErrNone)
+                ConfigError(KGOomErrBadSkipPluginValueForAppConfig);
+            }
+                
     
     // Add the applciation config to the main config
     if ((err == KErrNone) && (appConfig))
@@ -568,10 +591,46 @@
             ConfigError(KGOomErrMissingEstimateFromAppCloseConfig);
         else
             closeAppConfig->iRamEstimate = ramEstimate * 1024;
-           }
+        }
+    
+    if (err == KErrNone)
+        {
+        TInt closeTimeout;
+        err = GetValueFromDecimalAttributeList(aAttributes, KGOomAttributeAppCloseTimeout, closeTimeout);
+        if (err == KErrNone)
+            {
+            closeAppConfig->iCloseTimeout = closeTimeout;
+            }
+        else if (err == KErrNotFound)
+            {
+            closeAppConfig->iCloseTimeout=0;
+            err = KErrNone;
+            }
+        }
+     
+    if (err == KErrNone)
+        {
+        TInt waitAfterClose;
+        err = GetValueFromDecimalAttributeList(aAttributes, KGOomAttributeAppWaitAfterClose, waitAfterClose);
+        if (err == KErrNone)
+            {
+            closeAppConfig->iWaitAfterClose = waitAfterClose;
+            }
+        else if (err == KErrNotFound)
+            {
+            err = KErrNone;
+            closeAppConfig->iWaitAfterClose = 0;
+            }
+        }
 
     if (err == KErrNone)
-        iConfig.SetAppCloseConfigL(closeAppConfig);
+        {
+         iConfig.SetAppCloseConfigL(closeAppConfig);
+        }
+    else
+        {
+        TRACES2("ERROR Creating Appcloseconfig file for %x, err %d", uid,err);
+        }
     
     CleanupStack::Pop(closeAppConfig);
     }