uiacceltk/hitchcock/goommonitor/src/goomcloseapp.cpp
branchRCL_3
changeset 3 d8a3531bc6b8
parent 0 15bf7259bb7c
child 11 46927d61fef3
equal deleted inserted replaced
0:15bf7259bb7c 3:d8a3531bc6b8
    22 #include "goomtraces.h"
    22 #include "goomtraces.h"
    23 #include "goomappclosetimer.h"
    23 #include "goomappclosetimer.h"
    24 #include "goomappclosewatcher.h"
    24 #include "goomappclosewatcher.h"
    25 #include "goomactionref.h"
    25 #include "goomactionref.h"
    26 
    26 
    27 const TInt KGOomMaxAppExitTime = 1000000;
       
    28 const TInt KGOomMaxAppAfterKillWaitTime = 1000000;
       
    29 
    27 
    30 CGOomCloseApp* CGOomCloseApp::NewL(MGOomActionObserver& aStateChangeObserver, RWsSession& aWs)
    28 CGOomCloseApp* CGOomCloseApp::NewL(MGOomActionObserver& aStateChangeObserver, RWsSession& aWs)
    31     {
    29     {
    32     FUNC_LOG;
    30     FUNC_LOG;
    33 
    31 
    49     // Set the TApaTask to the app
    47     // Set the TApaTask to the app
    50     iCurrentTask.SetWgId(iWgId);
    48     iCurrentTask.SetWgId(iWgId);
    51     
    49     
    52     // Start a timer and the thread watcher 
    50     // Start a timer and the thread watcher 
    53     iAppCloseTimer->SetState(CGOomAppCloseTimer::EGOomAppClosing);
    51     iAppCloseTimer->SetState(CGOomAppCloseTimer::EGOomAppClosing);
    54     iAppCloseTimer->After(KGOomMaxAppExitTime);
    52     iAppCloseTimer->After(iCloseTimeout * 1000);
    55     iAppCloseWatcher->Start(iCurrentTask);
    53     iAppCloseWatcher->Start(iCurrentTask);
    56     // Tell the app to close
    54     // Tell the app to close
    57     TRACES1("CGOomCloseApp::FreeMemory: Closing app with window group id %d",iWgId);
    55     TRACES2("CGOomCloseApp::FreeMemory: Closing app with window group id %d Timeout = %d",iWgId, iCloseTimeout);
    58     iCurrentTask.EndTask();
    56     iCurrentTask.EndTask();
    59     }
    57     }
    60 
    58 
    61 CGOomCloseApp::~CGOomCloseApp()
    59 CGOomCloseApp::~CGOomCloseApp()
    62     {
    60     {
    79 
    77 
    80     // The application has closed (or we have a timeout)
    78     // The application has closed (or we have a timeout)
    81     iAppCloserRunning = EFalse;
    79     iAppCloserRunning = EFalse;
    82     
    80     
    83     if (iAppCloseTimer)
    81     if (iAppCloseTimer)
    84         iAppCloseTimer->Cancel();
    82         {
       
    83             iAppCloseTimer->Cancel();
       
    84             iAppCloseTimer->SetState(CGOomAppCloseTimer::EGOomAppKilled);
       
    85             iAppCloseTimer->After(iWaitAfterClose * 1000);
       
    86         }
       
    87     
    85     if (iAppCloseWatcher)
    88     if (iAppCloseWatcher)
    86         iAppCloseWatcher->Cancel(); 
    89         iAppCloseWatcher->Cancel(); 
    87     
    90     
    88     iAppCloseTimer->SetState(CGOomAppCloseTimer::EGOomAppKilled);
    91     
    89     iAppCloseTimer->After(KGOomMaxAppAfterKillWaitTime);
       
    90     //MemoryFreed(KErrNone);
    92     //MemoryFreed(KErrNone);
    91     }
    93     }
    92 
    94 
    93 void CGOomCloseApp::Reconfigure(const TActionRef& aRef)
    95 void CGOomCloseApp::Reconfigure(const TActionRef& aRef)
    94     {
    96     {
    95     FUNC_LOG;
    97     FUNC_LOG;
    96 
    98 
    97     iWgId = aRef.WgId();    
    99     iWgId = aRef.WgId();    
       
   100     iCloseTimeout = aRef.CloseTimeout();
       
   101     iWaitAfterClose = aRef.WaitAfterClose();
    98     }
   102     }
    99 
   103 
   100 void CGOomCloseApp::ConstructL()
   104 void CGOomCloseApp::ConstructL()
   101     {
   105     {
   102     FUNC_LOG;
   106     FUNC_LOG;
   126     
   130     
   127     iCurrentTask.KillTask();
   131     iCurrentTask.KillTask();
   128     iAppCloserRunning = EFalse;
   132     iAppCloserRunning = EFalse;
   129     
   133     
   130     iAppCloseTimer->SetState(CGOomAppCloseTimer::EGOomAppKilled);
   134     iAppCloseTimer->SetState(CGOomAppCloseTimer::EGOomAppKilled);
   131     iAppCloseTimer->After(KGOomMaxAppAfterKillWaitTime);
   135     iAppCloseTimer->After(iWaitAfterClose * 1000);
   132     //MemoryFreed(KErrNone);
   136     //MemoryFreed(KErrNone);
   133     }
   137     }
   134 
   138 
   135 void CGOomCloseApp::KillTaskWaitDone()
   139 void CGOomCloseApp::KillTaskWaitDone()
   136     {
   140     {