--- a/memana/analyzetoolclient/configurationappgui/src/atconfigurationappguiappui.cpp Thu Feb 11 15:52:57 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,554 +0,0 @@
-/*
-* 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:
-*
-*/
-
-#include <eikmenub.h>
-#include <akncontext.h>
-#include <akntitle.h>
-#include <atconfigurationappgui.rsg>
-#include <stringloader.h>
-#include <aknnotewrappers.h>
-#include <s32stor.h> // CDictionaryStore
-
-#include "atconfigurationappguiappui.h"
-#include "atconfigurationappgui.hrh"
-#include "atconfigurationappguilistboxview.h"
-#include "atconfigurationappguiprocessview.h"
-#include "atconfigurationappguisettingitemlistview.h"
-#include "atconfigurationappguiapplication.h"
-#include "atlog.h"
-
-#include <aknmessagequerydialog.h>
-
-// CONSTANTS
-const TInt KATDefaultUpdatingInterval = 2000000;
-_LIT8( KSubTestId, "ATConfigUiSubTest" );
-
-// -----------------------------------------------------------------------------
-// CATConfigurationAppGuiAppUi::CATConfigurationAppGuiAppUi()
-// Construct the CATConfigurationAppGuiAppUi instance
-// -----------------------------------------------------------------------------
-//
-CATConfigurationAppGuiAppUi::CATConfigurationAppGuiAppUi()
- {
- LOGSTR1( "ATCU CATConfigurationAppGuiAppUi::CATConfigurationAppGuiAppUi()" );
- }
-
-// -----------------------------------------------------------------------------
-// CATConfigurationAppGuiAppUi::ConstructL()
-// Completes the second phase of Symbian object construction.
-// -----------------------------------------------------------------------------
-//
-void CATConfigurationAppGuiAppUi::ConstructL()
- {
- LOGSTR1( "ATCU CATConfigurationAppGuiAppUi::ConstructL()" );
-
- BaseConstructL( EAknEnableSkin |
- EAknEnableMSK );
- InitializeContainersL();
- }
-
-// -----------------------------------------------------------------------------
-// CATConfigurationAppGuiAppUi::~CATConfigurationAppGuiAppUi()
-// Destructor.
-// -----------------------------------------------------------------------------
-//
-CATConfigurationAppGuiAppUi::~CATConfigurationAppGuiAppUi()
- {
- LOGSTR1( "ATCU CATConfigurationAppGuiAppUi::~CATConfigurationAppGuiAppUi()" );
-
- if ( iPeriodicTimer )
- {
- if ( iPeriodicTimer->IsActive() )
- {
- iPeriodicTimer->Cancel();
- }
- delete iPeriodicTimer;
- }
-
- iSubTestProcesses.Close();
- iStorageServer.Close();
- }
-
-// -----------------------------------------------------------------------------
-// CATConfigurationAppGuiAppUi::InitializeContainersL()
-// Initializes all the controls.
-// -----------------------------------------------------------------------------
-//
-void CATConfigurationAppGuiAppUi::InitializeContainersL()
- {
- LOGSTR1( "ATCU CATConfigurationAppGuiAppUi::InitializeContainersL()" );
-
- iPeriodicTimer = CPeriodic::New( CActive::EPriorityLow );
-
- iATConfigurationAppGuiListBoxView = CATConfigurationAppGuiListBoxView::NewL();
- AddViewL( iATConfigurationAppGuiListBoxView );
- iATConfigurationAppGuiProcessView = CATConfigurationAppGuiProcessView::NewL();
- AddViewL( iATConfigurationAppGuiProcessView );
- //iATConfigurationAppGuiSettingItemListView = CATConfigurationAppGuiSettingItemListView::NewL();
- //AddViewL( iATConfigurationAppGuiSettingItemListView );
-
- SetDefaultViewL( *iATConfigurationAppGuiListBoxView );
-
- TInt error = iStorageServer.Connect();
- if ( error != KErrNone )
- {
- HBufC* noteText;
- noteText = StringLoader::LoadLC( R_CANT_CONNECT_SERVER );
- CAknErrorNote* note = new (ELeave) CAknErrorNote( ETrue );
- note->ExecuteLD( *noteText );
- CleanupStack::PopAndDestroy( noteText );
- }
- // Load application settings
- //LoadSettingsL();
- // Start updating the view
- if ( iPeriodicTimer )
- {
- StartTimerL();
- }
- }
-
-// -----------------------------------------------------------------------------
-// CATConfigurationAppGuiAppUi::HandleCommandL()
-// Handle a command for this appui.
-// -----------------------------------------------------------------------------
-//
-void CATConfigurationAppGuiAppUi::HandleCommandL( TInt aCommand )
- {
- LOGSTR2( "ATCU CATConfigurationAppGuiAppUi::HandleCommandL(%i)",
- aCommand );
-
- TBool commandHandled = EFalse;
- switch ( aCommand )
- { // Code to dispatch to the AppUi's menu and CBA commands is generated here
- default:
- break;
- }
-
- if ( !commandHandled )
- {
- if ( aCommand == EAknSoftkeyExit || aCommand == EEikCmdExit )
- {
- // Stop all subtests before closing handles
- StopAllSubtestsL();
- Exit();
- }
- }
- }
-
-// -----------------------------------------------------------------------------
-// CATConfigurationAppGuiAppUi::HandleResourceChangeL()
-// Override of the HandleResourceChangeL virtual function.
-// -----------------------------------------------------------------------------
-//
-void CATConfigurationAppGuiAppUi::HandleResourceChangeL( TInt aType )
- {
- LOGSTR1( "ATCU CATConfigurationAppGuiAppUi::HandleResourceChangeL()" );
-
- CAknViewAppUi::HandleResourceChangeL( aType );
- }
-
-// -----------------------------------------------------------------------------
-// CATConfigurationAppGuiAppUi::HandleKeyEventL()
-// Override of the HandleKeyEventL virtual function.
-// -----------------------------------------------------------------------------
-//
-TKeyResponse CATConfigurationAppGuiAppUi::HandleKeyEventL(
- const TKeyEvent& /*aKeyEvent*/,
- TEventCode /*aType*/ )
- {
- LOGSTR1( "ATCU CATConfigurationAppGuiAppUi::HandleKeyEventL()" );
-
- // The inherited HandleKeyEventL is private and cannot be called
- return EKeyWasNotConsumed;
- }
-
-// -----------------------------------------------------------------------------
-// CATConfigurationAppGuiAppUi::HandleViewDeactivation()
-// Override of the HandleViewDeactivation virtual function.
-// -----------------------------------------------------------------------------
-//
-void CATConfigurationAppGuiAppUi::HandleViewDeactivation(
- const TVwsViewId& aViewIdToBeDeactivated,
- const TVwsViewId& aNewlyActivatedViewId )
- {
- LOGSTR1( "ATCU CATConfigurationAppGuiAppUi::HandleViewDeactivation()" );
-
- CAknViewAppUi::HandleViewDeactivation(
- aViewIdToBeDeactivated,
- aNewlyActivatedViewId );
- }
-
-// -----------------------------------------------------------------------------
-// CATConfigurationAppGuiAppUi::SetProcessSubTestStartL()
-// Starts subtest for a process.
-// -----------------------------------------------------------------------------
-//
-void CATConfigurationAppGuiAppUi::SetProcessSubTestStartL( TUint aProcessId )
- {
- LOGSTR2( "ATCU CATConfigurationAppGuiAppUi::SetProcessSubTestStartL(%i)",
- aProcessId );
-
- // Load the kernel side device driver
- TInt loadErr = User::LoadLogicalDevice( KAnalyzeToolLddName );
- TBool driverLoaded( EFalse );
-
- if ( loadErr == KErrNone || loadErr == KErrAlreadyExists )
- {
- driverLoaded = ETrue;
- }
-
- RAnalyzeTool analyzeTool;
- TInt driverOpen = analyzeTool.Open();
- TInt handleCount( KErrNone );
-
- if ( driverOpen == KErrNone )
- {
- TATProcessHandlesBuf params;
- params().iProcessId = aProcessId;
-
- analyzeTool.GetCurrentHandleCount( params );
- handleCount = params().iCurrentHandleCount;
- LOGSTR2( "CATConfigurationAppGuiAppUi::SetProcessSubTestStartL - %i current handle(s)",
- params().iCurrentHandleCount );
- }
-
- TInt startErr = iStorageServer.StartSubTest( aProcessId, KSubTestId, handleCount );
- if ( KErrNone == startErr )
- {
- iSubTestProcesses.Append( aProcessId );
- }
- else if ( KErrNotSupported == startErr )
- {
- ShowErrorNoteL( R_CANT_START_SUBTEST_NOTSUPPORTED );
- }
- else // Could not start for a process
- {
- ShowErrorNoteL( R_CANT_START_SUBTEST_PROCESSID );
- }
-
- // The count of device driver users
- TClientCountBuf count;
-
- // Check the flag
- if ( driverOpen == KErrNone )
- {
- analyzeTool.ClientCount( count );
- analyzeTool.Close();
- }
- // Check the flag
- if ( driverLoaded )
- {
- // Check if there is another user for device driver
- if ( count().iClientCount <= 1 )
- {
- // There was no other users -> unload the device driver
- User::FreeLogicalDevice( KAnalyzeToolLddName );
- }
- }
- }
-
-// -----------------------------------------------------------------------------
-// CATConfigurationAppGuiAppUi::SetProcessSubTestStopL()
-// Stops subtest for a process.
-// -----------------------------------------------------------------------------
-//
-void CATConfigurationAppGuiAppUi::SetProcessSubTestStopL( TUint aProcessId )
- {
- LOGSTR2( "ATCU CATConfigurationAppGuiAppUi::SetProcessSubTestStopL(%i)",
- aProcessId );
-
- // Load the kernel side device driver
- TInt loadErr = User::LoadLogicalDevice( KAnalyzeToolLddName );
- TBool driverLoaded( EFalse );
-
- if ( loadErr == KErrNone || loadErr == KErrAlreadyExists )
- {
- driverLoaded = ETrue;
- }
-
- RAnalyzeTool analyzeTool;
-
- TInt driverOpen = analyzeTool.Open();
- TInt handleCount( KErrNone );
-
- if ( driverOpen == KErrNone )
- {
- TATProcessHandlesBuf params;
- params().iProcessId = aProcessId;
-
- analyzeTool.GetCurrentHandleCount( params );
- handleCount = params().iCurrentHandleCount;
- LOGSTR2( "CATConfigurationAppGuiAppUi::SetProcessSubTestStopL - %i current handle(s)",
- params().iCurrentHandleCount );
- }
-
- TInt stopErr = iStorageServer.StopSubTest( aProcessId, KSubTestId, handleCount );
- if ( KErrNone == stopErr )
- {
- TInt index = iSubTestProcesses.Find( aProcessId );
- if ( index > KErrNotFound )
- {
- iSubTestProcesses.Remove( index );
- if ( iSubTestProcesses.Count() == KErrNone )
- iSubTestProcesses.Reset();
- }
- }
- else
- {
- ShowErrorNoteL( R_CANT_STOP_SUBTEST_PROCESSID );
- }
-
- // The count of device driver users
- TClientCountBuf count;
-
- // Check the flag
- if ( driverOpen == KErrNone )
- {
- analyzeTool.ClientCount( count );
- analyzeTool.Close();
- }
- // Check the flag
- if ( driverLoaded )
- {
- // Check if there is another user for device driver
- if ( count().iClientCount <= 1 )
- {
- // There was no other users -> unload the device driver
- User::FreeLogicalDevice( KAnalyzeToolLddName );
- }
- }
- }
-
-// -----------------------------------------------------------------------------
-// CATConfigurationAppGuiAppUi::IsSubTestRunning()
-// Returns ETrue if subtest is running for a process.
-// -----------------------------------------------------------------------------
-//
-TInt CATConfigurationAppGuiAppUi::IsSubTestRunning( TUint aProcessId )
- {
- LOGSTR2( "ATCU CATConfigurationAppGuiAppUi::IsSubTestRunning(%i)",
- aProcessId );
-
- return iSubTestProcesses.Find( aProcessId );
- }
-
-// -----------------------------------------------------------------------------
-// CATConfigurationAppGuiAppUi::LoadSettingsL()
-// Loads application settings.
-// -----------------------------------------------------------------------------
-//
-TInt CATConfigurationAppGuiAppUi::LoadSettingsL()
- {
- LOGSTR1( "ATCU CATConfigurationAppGuiAppUi::LoadSettingsL()" );
-
- /*CDictionaryStore* iniFile = Application()->OpenIniFileLC( CCoeEnv::Static()->FsSession() );
-
- if ( iniFile->IsPresentL( KUidATConfigurationAppGuiApplication ) )
- {
- RDictionaryReadStream readStream;
- readStream.OpenLC( *iniFile, KUidATConfigurationAppGuiApplication );
- // Load warning tones value
- iWarningTones = static_cast<TInt>( readStream.ReadInt32L() );
- // Load update interval value
- iUpdateInterval = static_cast<TInt>( readStream.ReadInt32L() );
- // Initialize other settings
-
- CleanupStack::PopAndDestroy( &readStream );
- }
- else
- {
- // ini doesn't exist, so use default values
- iWarningTones = 0;
- iUpdateInterval = 0;
- }
-
- CleanupStack::PopAndDestroy(iniFile);*/
-
- return KErrNone;
- }
-
-// -----------------------------------------------------------------------------
-// CATConfigurationAppGuiAppUi::ShowErrorNoteL()
-// Shows error note.
-// -----------------------------------------------------------------------------
-//
-void CATConfigurationAppGuiAppUi::ShowErrorNoteL( TInt aResourceId )
- {
- LOGSTR1( "ATCU CATConfigurationAppGuiAppUi::ShowErrorNoteL()" );
-
- CAknErrorNote* errorNote = new ( ELeave ) CAknErrorNote();
- HBufC* errorText = StringLoader::LoadLC( aResourceId );
- errorNote->SetTextL( errorText->Des() );
- errorNote->ExecuteLD();
- CleanupStack::PopAndDestroy( errorText );
- }
-
-//-----------------------------------------------------------------------------
-// CATConfigurationAppGuiAppUi::HandleForegroundEventL
-// Handles fore ground events
-//-----------------------------------------------------------------------------
-//
-void CATConfigurationAppGuiAppUi::HandleForegroundEventL( TBool aForeground )
- {
- LOGSTR2( "ATCU CATConfigurationAppGuiAppUi::HandleForegroundEventL(%i)",
- aForeground );
-
- if ( aForeground )
- {
- // Start timer when processes view gains foreground
- if ( iDeactivatedId.iViewUid == TUid::Uid( EATConfigurationAppGuiListBoxViewId ) )
- {
- StartTimerL();
- }
- }
- else
- {
- // Cancel timer when not in foreground
- TVwsViewId viewId;
- GetActiveViewId( viewId );
- // Save deactivated view's Id
- iDeactivatedId = viewId;
- TimerNotifyL( EFalse );
- }
- }
-
-//-----------------------------------------------------------------------------
-// CATConfigurationAppGuiAppUi::StartTimerL
-// Starts timer with a specific time interval
-//-----------------------------------------------------------------------------
-//
-void CATConfigurationAppGuiAppUi::StartTimerL()
- {
- LOGSTR1( "ATCU CATConfigurationAppGuiAppUi::StartTimerL()" );
-
- if ( iPeriodicTimer->IsActive() )
- {
- iPeriodicTimer->Cancel();
- }
- iPeriodicTimer->Start( KATDefaultUpdatingInterval,
- KATDefaultUpdatingInterval, TCallBack( CallBackFunctionL, this ) );
- }
-
-//-----------------------------------------------------------------------------
-// CATConfigurationAppGuiAppUi::TimerNotifyL
-// Periodic timer's callback function
-//-----------------------------------------------------------------------------
-//
-void CATConfigurationAppGuiAppUi::TimerNotifyL( TBool aPeriod )
- {
- LOGSTR2( "ATCU CATConfigurationAppGuiAppUi::TimerNotifyL(%i)",
- aPeriod );
-
- if ( iPeriodicTimer->IsActive() )
- {
- iPeriodicTimer->Cancel();
- }
- if ( aPeriod )
- {
- if ( iATConfigurationAppGuiListBoxView )
- {
- iATConfigurationAppGuiListBoxView->UpdateViewL();
- }
- StartTimerL();
- }
- }
-
-// -----------------------------------------------------------------------------
-// CATConfigurationAppGuiAppUi::StopAllSubtestsL()
-// Stops all subtests which are running
-// -----------------------------------------------------------------------------
-//
-void CATConfigurationAppGuiAppUi::StopAllSubtestsL()
- {
- LOGSTR1( "ATCU CATConfigurationAppGuiAppUi::StopAllSubtestsL()" );
-
- TInt index( KErrNone );
- RArray<TATProcessInfo> processes;
- TInt err( iStorageServer.GetProcessesL( processes ) );
- LOGSTR2( "iStorageServer.GetProcessesL(%i)", err );
-
- // Load the kernel side device driver
- TInt loadErr( User::LoadLogicalDevice( KAnalyzeToolLddName ) );
- TBool driverLoaded( EFalse );
- LOGSTR2( "ATCU CATConfigurationAppGuiAppUi::StopAllSubtestsL() loadErr(%i)",
- loadErr );
-
- if ( loadErr == KErrNone || loadErr == KErrAlreadyExists )
- {
- driverLoaded = ETrue;
- }
-
- RAnalyzeTool analyzeTool;
- TInt driverOpen( analyzeTool.Open() );
-
- while ( index < processes.Count() )
- {
- TUint processId = processes[ index ].iProcessId;
- TInt handleCount( KErrNone );
-
- if ( driverOpen == KErrNone )
- {
- TATProcessHandlesBuf params;
- params().iProcessId = processId;
- // Get process handle count
- analyzeTool.GetCurrentHandleCount( params );
- handleCount = params().iCurrentHandleCount;
- LOGSTR2( "ATCU CATConfigurationAppGuiAppUi::StopAllSubtestsL() handleCount( %i )",
- handleCount );
- }
-
- err = iStorageServer.StopSubTest( processId, KSubTestId, handleCount );
- LOGSTR2( "ATCU > iStorageServer.StopSubTest( %i )", err );
-
- TInt find( iSubTestProcesses.Find( processId ) );
- if ( find > KErrNotFound )
- {
- iSubTestProcesses.Remove( find );
- if ( iSubTestProcesses.Count() == KErrNone )
- {
- iSubTestProcesses.Reset();
- }
- }
- index++;
- }
-
- // Close processes array
- processes.Close();
-
- // The count of device driver users
- TClientCountBuf count;
-
- // Check the flag
- if ( driverOpen == KErrNone )
- {
- analyzeTool.ClientCount( count );
- analyzeTool.Close();
- }
- // Check the flag
- if ( driverLoaded )
- {
- // Check if there is another user for device driver
- if ( count().iClientCount <= 1 )
- {
- // There was no other users -> unload the device driver
- err = User::FreeLogicalDevice( KAnalyzeToolLddName );
- LOGSTR2( "ATCU > FreeLogicalDevice( %i )", err );
- }
- }
- }
-
-// End of File