appsupport_plat/oom_monitor_api/inc/oommonitor.h
changeset 35 13fd6fd25fe7
parent 0 2e3d3ce01487
--- a/appsupport_plat/oom_monitor_api/inc/oommonitor.h	Fri May 14 16:01:13 2010 +0300
+++ b/appsupport_plat/oom_monitor_api/inc/oommonitor.h	Thu May 27 13:01:09 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2006-2010 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"
@@ -16,11 +16,10 @@
 */
 
 
-#include <e32hashtab.h>
-#include <f32file.h>
+#ifndef OOMMONITOR_H
+#define OOMMONITOR_H
+
 #include <w32std.h>
-#include <apgtask.h>
-#include <e32property.h>
 
 /**
  * Creates thread for OOM watchers.
@@ -28,248 +27,4 @@
  */
 IMPORT_C void CreateOOMWatcherThreadL();
 
-// ---------------------------------------------------------
-// CMemoryMonitor
-// ---------------------------------------------------------
-//
-class COutOfMemoryWatcher;
-class CSubscribeHelper;
-class COomMonitorPlugin;
-class COomPlugins;
-class CAppCloseTimer;
-class CAppCloseWatcher;
-class CMemoryMonitorServer;
-class CWservEventReceiver;
-class RResourceFile;
-class CApaWindowGroupName;
-
-NONSHARABLE_CLASS(CMemoryMonitor) : public CBase
-    {
-public:
-    static CMemoryMonitor* NewL();
-    ~CMemoryMonitor();
-
-public: // event handlers
-    void FreeMemThresholdCrossedL();
-    void CloseAppEvent();
-    void AppNotExiting(TInt aWgId);
-    void StartFreeSomeRamL(TInt aTargetFree);
-    void HandleFocusedWgChangeL();
-    
-private:
-    CMemoryMonitor();
-    void ConstructL();
-    void CloseAppsFinished(TBool aMemoryGood);
-    static TInt WatchdogStatusStatusChanged(TAny* aPtr);
-    void HandleWatchdogStatusCallBackL();
-    void ColapseWindowGroupTree();
-    void SetPluginMemoryGood(TBool aSetToGood);
-    void GetWgsToCloseL();
-    TBool FreeMemoryAboveThreshold();
-    void CancelAppCloseWatchers();
-    TInt AppCloseOrder(TInt aWgIndex, TInt aWgId);
-    void CloseNextApp();
-    void ReadAppResourceArrayL(RResourceFile& aResFile, TInt aResId, TInt aOrderBase, TInt aOrderInc);
-	void RestartAppCloser();
-	
-public:
-	// All members are owned
-    // generally useful sessions
-    RFs iFs;
-    RWsSession iWs;
-
-private:
-	// All members are owned, except where stated
-    // parameters for OOM watcher.
-    TInt iLowThreshold;
-    TInt iGoodThreshold;
-    TInt iMaxExitTime; // Time we wait for application exit gracefully, after this we'll try to shut next application down.
-    TInt iRamPluginRunTime; // Time we wait for plugins to free RAM before we start to shut apps.
-
-    // parameters for app close order
-    enum TAppCloseOrderConstants
-        {
-        ECloseFirst = -1000000,        // apps to close first are given an order around negative one million
-        ECloseNormal = 0,            // apps to close normally are given an order around zero
-        ECloseLast = 1000000,        // apps to close last are given an order around one million
-        ENeverClose = 1000000000    // one billion signals apps that should never be closed
-        };
-    typedef RHashMap<TInt, TInt> RAppCloseOrderMap;    // maps app UID to close order
-    RAppCloseOrderMap iAppCloseOrderMap;
-
-    // internal
-    CApaWindowGroupName* iWgName;
-    HBufC* iWgNameBuf;              // owned by iWgName
-
-    // app closer state
-    TBool iAppCloserRunning;
-    TInt iCurrentTarget;
-    TApaTask iCurrentTask;
-    RArray<RWsSession::TWindowGroupChainInfo> iWgIds;
-    TInt iNextAppToClose;
-    TBool iMemoryAboveThreshold;
-    
-    // event receivers
-    CAppCloseTimer* iAppCloseTimer;
-    CAppCloseWatcher* iAppCloseWatcher;
-    COutOfMemoryWatcher* iOOMWatcher;
-    CWservEventReceiver* iWservEventReceiver;
-
-    // parameters for P&S watcher.
-    RProperty iWatchdogStatusProperty;
-    CSubscribeHelper* iWatchdogStatusSubscriber;
-
-    // Plugin support
-    COomPlugins* iPlugins;
-    TBool iPluginMemoryGood;
-    
-    // Server
-    CMemoryMonitorServer* iServer;
-    };
-
-
-
-NONSHARABLE_CLASS(COutOfMemoryWatcher) : public CActive
-    {
-public:
-    static COutOfMemoryWatcher* NewL(CMemoryMonitor& aLafShutdown, TInt aLowThreshold, TInt aGoodThreshold);
-    ~COutOfMemoryWatcher();
-    void Start();
-private:
-    COutOfMemoryWatcher(CMemoryMonitor& aLafShutdown);
-    void ConstructL(TInt aLowThreshold, TInt aGoodThreshold);
-private: // from CActive
-    void DoCancel();
-    void RunL();
-private: // data
-    RChangeNotifier iChangeNotifier;
-    CMemoryMonitor& iLafShutdown;
-    };
-
-NONSHARABLE_CLASS(CSubscribeHelper) : public CActive
-    {
-public:
-    CSubscribeHelper(TCallBack aCallBack, RProperty& aProperty);
-    ~CSubscribeHelper();
-
-public: // New functions
-    void SubscribeL();
-    void StopSubscribe();
-
-private: // from CActive
-    void RunL();
-    void DoCancel();
-
-private:
-    TCallBack   iCallBack;
-    RProperty&  iProperty;
-    };
-
-
-NONSHARABLE_CLASS(COomPlugins) : public CBase
-    {
-public:
-    COomPlugins();
-    ~COomPlugins();
-    void ConstructL();
-    
-public:
-    void FreeRam();
-    void MemoryGood();
-    
-private:
-    struct TPlugin
-        {
-        TPlugin();
-        COomMonitorPlugin* iImpl;
-        TUid iDtorUid;
-        };
-
-private:
-    RArray<TPlugin> iPlugins;
-    };
-
-
-NONSHARABLE_CLASS(CAppCloseTimer) : public CTimer
-    {
-public:
-    static CAppCloseTimer* NewL(CMemoryMonitor& aMonitor);
-private:
-    CAppCloseTimer(CMemoryMonitor& aMonitor);
-    void RunL();
-private:
-    CMemoryMonitor& iMonitor;
-    };
-
-
-NONSHARABLE_CLASS(CAppCloseWatcher) : public CActive
-    {
-public:
-    CAppCloseWatcher(CMemoryMonitor& aMonitor);
-    ~CAppCloseWatcher();
-    void Start(const TApaTask& aTask);
-private:
-    void DoCancel();
-    void RunL();
-private:
-    CMemoryMonitor& iMonitor;
-    RThread iThread;
-    TProcessPriority iOriginalProcessPriority;
-    };
-
-
-NONSHARABLE_CLASS(CWservEventReceiver) : public CActive
-    {
-public:
-    CWservEventReceiver(CMemoryMonitor& aMonitor, RWsSession& aWs);
-    ~CWservEventReceiver();
-    void ConstructL();
-private:
-    void Queue();
-    void DoCancel();
-    void RunL();
-private:
-    CMemoryMonitor& iMonitor;
-    RWsSession& iWs;
-    RWindowGroup iWg;
-    };
-
-
-NONSHARABLE_CLASS(CMemoryMonitorServer) : public CServer2
-    {
-public:
-    static CMemoryMonitorServer* NewL(CMemoryMonitor& aMonitor);
-    ~CMemoryMonitorServer();
-
-    CMemoryMonitor& Monitor();
-    void CloseAppsFinished(TBool aMemoryGood);
-
-private:
-    CMemoryMonitorServer(CMemoryMonitor& aMonitor);
-    void ConstructL();
-    CSession2* NewSessionL(const TVersion& aVersion,const RMessage2& aMessage) const;
-    TInt RunError(TInt aError);
-
-private:
-    CMemoryMonitor& iMonitor;
-    };
-
-
-NONSHARABLE_CLASS(CMemoryMonitorSession) : public CSession2
-    {
-public:
-    CMemoryMonitorSession();
-    void CreateL();
-    void CloseAppsFinished(TBool aMemoryGood);
-
-private:
-    ~CMemoryMonitorSession();
-    CMemoryMonitorServer& Server();
-    CMemoryMonitor& Monitor();
-    void ServiceL(const RMessage2& aMessage);
-
-private:
-    RMessagePtr2 iRequestFreeRam;
-    };
-
-
+#endif // OOMMONITOR_H