diff -r 739cef680932 -r 4610cd70c542 sysresmonitoring/oommonitor/src/oomrunplugin.cpp --- a/sysresmonitoring/oommonitor/src/oomrunplugin.cpp Wed Sep 15 12:23:15 2010 +0300 +++ b/sysresmonitoring/oommonitor/src/oomrunplugin.cpp Wed Oct 13 14:43:04 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -21,9 +21,6 @@ #include "oommonitorplugin.h" #include "oompanic.h" -#include -#include - COomRunPlugin* COomRunPlugin::NewL(TUint aPluginId, COomRunPluginConfig& aConfig, MOomActionObserver& aStateChangeObserver, COomMonitorPlugin& aPlugin, COomMonitorPluginV2* aV2Plugin) { FUNC_LOG; @@ -37,40 +34,21 @@ // Run the OOM plugin in order to free memory // Call the COomAction::MemoryFreed when it is done -void COomRunPlugin::FreeMemory(TInt aBytesRequested, TBool aIsDataPaged) +void COomRunPlugin::FreeMemory(TInt aBytesRequested) { FUNC_LOG; - iFreeMemoryCalled = ETrue; - + TRACES1("COomRunPlugin::FreeMemory: iPluginId = %x", iPluginId); + + // Ask the plugin to free some memory + // Do we have a V2 plugin, if so then use it if (iV2Plugin) - { - //RDebug::Printf("COomRunPlugin::FreeMemory: Requesting to free the RAM iV2Plugin->FreeRam(%d) \n",aBytesRequested); iV2Plugin->FreeRam(aBytesRequested); - } - else if( aIsDataPaged ) - { - if (IsAppDataPaged(iPlugin) ) - { - //the plugins implemented by the application which are WDP enabled - //are notified. - //RDebug::Printf("COomRunPlugin::FreeMemory: Requesting to free the RAM to Data paged app \n"); - iPlugin.FreeRam(); - } - else - { - //Request is for freeing the paged memory(swap) but the App(iPlugin belongs to) - //is non WDP no need to notify; as it can't free the swap memory - iFreeMemoryCalled = EFalse; - return; - } - } - else - { - //Unpaged memory will be freed in case of non WDP app - //RDebug::Printf("COomRunPlugin::FreeMemory: Requesting to free the RAM \n"); + else + // If we only have a V1 plugin then use that iPlugin.FreeRam(); - } + + iFreeMemoryCalled = ETrue; // Wait for the required time before we signal completion. __ASSERT_DEBUG(!iPluginWaiter->IsActive(), OomMonitorPanic(KStartingActivePluginWaiter)); @@ -116,50 +94,3 @@ iPluginWaiter = COomPluginWaiter::NewL(waitDuration, *this); } - -//----------------------------------------------------------------------------- -// Function: IsAppDataPaged -// Checks whether the application which implements the given -// COomMonitorPlugin is data paged -//----------------------------------------------------------------------------- -// -TBool COomRunPlugin::IsAppDataPaged - ( COomMonitorPlugin& aPlugin ) const - { - FUNC_LOG; - /* - /TRACES1("COomRunPlugin::IsAppDataPaged: aPlugin.AppId() = %x ", aPlugin.AppId() ); - //RDebug::Printf("COomRunPlugin::IsAppDataPaged: aPlugin.AppId() = %x ", aPlugin.AppId() ); - */ - //the function find the process with given appid and check - //application supports the data paging. - RProcess clientprocess; - TApaTaskList taskList(aPlugin.WsSession()); - RThread clientthread; - TInt err = clientthread.Open - (taskList.FindApp(aPlugin.AppId()).ThreadId()); - - //RDebug::Printf("COomRunPlugin::IsAppDataPaged: clientthread.Open() err = %d ", err ); - - if( !err ) - { - //getting the process which provides the plugin - err = clientthread.Process(clientprocess); - RDebug::Printf("COomRunPlugin::IsAppDataPaged: clientthread.Process() err = %d ", err ); - - if( !err ) - { - //checking whether the process is Data paged or not - TBool isdatapaged = clientprocess.DefaultDataPaged(); - clientprocess.Close(); - clientthread.Close(); - //RDebug::Printf("COomRunPlugin::IsAppDataPaged: isdatapaged = %d ", isdatapaged ); - - return isdatapaged; - } - clientthread.Close(); - } - //could not successfully open the handle of process or thread, - //the return EFalse - return EFalse; - }