memana/analyzetoolclient/configurationappgui/inc/atconfigurationappguiappui.h
changeset 0 f0f2b8682603
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/memana/analyzetoolclient/configurationappgui/inc/atconfigurationappguiappui.h	Thu Feb 11 15:51:35 2010 +0200
@@ -0,0 +1,233 @@
+/*
+* Copyright (c) 2009 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"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
+*/
+
+#ifndef ATCONFIGURATIONAPPGUIAPPUI_H
+#define ATCONFIGURATIONAPPGUIAPPUI_H
+
+// INCLUDES
+#include <aknviewappui.h>
+#include <analyzetool/atstorageserverclnt.h>
+#include <analyzetool/atcommon.h>
+#include <analyzetool/analyzetool.h>
+
+// FORWARD DECLARATIONS
+class CApaApplication;
+class CATConfigurationAppGuiListBoxView;
+class CATConfigurationAppGuiProcessView;
+//class CATConfigurationAppGuiSettingItemListView;
+
+// CONSTANTS
+const TUint32 KATHundred = 100;
+const TUint32 KATThousand = 1000;
+const TUint32 KATMillion = 1000000;
+_LIT( KATB, "B" );
+_LIT( KATKB, "KB" );
+_LIT( KATMB, "MB" );
+
+/**
+ * @class CATConfigurationAppGuiAppUi ATConfigurationAppGuiAppUi.h
+ * @brief The AppUi class handles application-wide aspects of the user interface, including
+ *        view management and the default menu, control pane, and status pane.
+ */
+class CATConfigurationAppGuiAppUi : public CAknViewAppUi
+    {
+public: 
+    /**
+    * C++ default constructor.
+    */
+    CATConfigurationAppGuiAppUi();
+    
+    /**
+    * Destructor.
+    */
+    virtual ~CATConfigurationAppGuiAppUi();
+    
+    /**
+    * ConstructL.
+    */
+    void ConstructL();
+
+public:
+    /**
+    * From CCoeAppUi.
+    */
+    TKeyResponse HandleKeyEventL(
+                const TKeyEvent& aKeyEvent,
+                TEventCode aType );
+
+    /**
+    * from CEikAppUi.
+    */
+    void HandleCommandL( TInt aCommand );
+    
+    /**
+    * From CEikAppUi.
+    */
+    void HandleResourceChangeL( TInt aType );
+
+    /**
+    * From CAknAppUi.
+    */
+    void HandleViewDeactivation( 
+            const TVwsViewId& aViewIdToBeDeactivated, 
+            const TVwsViewId& aNewlyActivatedViewId );
+    
+    /**
+    * Returns handle to the storage server
+    * @return RATStorageServer handle to the storage server
+    */  
+    inline RATStorageServer StorageServer()
+        {
+        return iStorageServer;    
+        }
+    
+    /**
+    * Sets current process's process ID.
+    * @param aProcessId current process's process ID
+    */
+    inline void SetCurrentProcessId( TUint aProcessId )
+        {
+        iCurrentProcessId = aProcessId;
+        }
+    
+    /**
+    * Gets current process ID.
+    * @return TUint process ID
+    */
+    inline TUint GetCurrentProcessId()
+        {
+        return iCurrentProcessId;    
+        }
+    
+    /**
+    * Sets member variable's process start time.
+    * @param aProcessStartTime current process's start time
+    */
+    inline void SetCurrentProcessStartTime( TInt64 aProcessStartTime )
+        {
+        iCurrentProcessStartTime = aProcessStartTime;
+        }
+    
+    /**
+    * Get current opened process's start time.
+    * @return TInt64 start time presented in microseconds
+    */
+    inline TInt64 GetCurrentProcessStartTime()
+        {
+        return iCurrentProcessStartTime;    
+        }
+
+    /**
+    * Starts a subtest for a process.
+    * @param aProcessId ID of the process
+    */
+    void SetProcessSubTestStartL( TUint aProcessId );
+    
+    /**
+    * Stops a subtest for a process.
+    * @param aProcessId ID of the process
+    */
+    
+    void SetProcessSubTestStopL( TUint aProcessId );
+    
+    /**
+    * Checks if subtest is running for a process.
+    * @param aProcessId ID of the process
+    * @return The index of the first matching aProcessId 
+    * within the array. KErrNotFound, if no matching 
+    * aProcessId can be found.
+    */
+    TInt IsSubTestRunning( TUint aProcessId );
+
+    /**
+    * Loads application settings.
+    * @return TInt KErrNone if loading succeeds.
+    */
+    TInt LoadSettingsL();
+    
+    /**
+    * Shows error note.
+    * @param aResourceId resource id of the text which
+    * is to be shown to the user.
+    */    
+    void ShowErrorNoteL( TInt aResourceId );
+
+    /**        
+    * From CEikAppUi.
+    */      
+    void HandleForegroundEventL( TBool aForeground );
+    
+
+    /**        
+    * Starts periodic timer with an interval.
+    */      
+    void StartTimerL();
+
+    /**        
+    * Periodic timer's callback function.
+    * @param ptr TAny pointer.
+    * @return TInt KErrNone.
+    */      
+    static TInt CallBackFunctionL( TAny* ptr )
+        {
+        ( static_cast<CATConfigurationAppGuiAppUi*>( ptr ) )->TimerNotifyL( ETrue );
+        return KErrNone;
+        };
+
+    /**        
+    * Periodic timer's notify function.
+    * @param aPeriod ETrue if certain time interval is reached, EFalse otherwise.
+    */        
+    void TimerNotifyL( TBool aPeriod );
+ 
+    /**        
+    * Stops all the subtests currently running.
+    */   
+    void StopAllSubtestsL();
+
+private:
+    /**
+    * Constructs needed components in the AppUi.
+    */
+    void InitializeContainersL();
+    
+private:
+    // Processes view pointer
+    CATConfigurationAppGuiListBoxView* iATConfigurationAppGuiListBoxView;
+    // Process view pointer
+    CATConfigurationAppGuiProcessView* iATConfigurationAppGuiProcessView;
+    // Settings view pointer
+    //CATConfigurationAppGuiSettingItemListView* iATConfigurationAppGuiSettingItemListView; 
+    // Handle to the RATStorageServer
+    RATStorageServer iStorageServer;
+    // Current process ID
+    TUint iCurrentProcessId;
+    // Current process's start time
+    TInt64 iCurrentProcessStartTime;
+    // Warning tones setting
+    TInt iWarningTones;
+    // Update interval setting
+    TInt iUpdateInterval;
+    // array containing all the processes which subtest is running
+    RArray<TUint> iSubTestProcesses;
+    // Periodic timer to handle timer events
+    CPeriodic*  iPeriodicTimer;
+    // Deactivated view's Id
+    TVwsViewId  iDeactivatedId;
+    };
+
+#endif // ATCONFIGURATIONAPPGUIAPPUI_H