diff -r 3ff3fecb12fe -r 6a82cd05fb1e memana/analyzetoolclient/configurationappgui/src/atconfigurationappguiappui.cpp --- 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 -#include -#include -#include -#include -#include -#include // CDictionaryStore - -#include "atconfigurationappguiappui.h" -#include "atconfigurationappgui.hrh" -#include "atconfigurationappguilistboxview.h" -#include "atconfigurationappguiprocessview.h" -#include "atconfigurationappguisettingitemlistview.h" -#include "atconfigurationappguiapplication.h" -#include "atlog.h" - -#include - -// 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( readStream.ReadInt32L() ); - // Load update interval value - iUpdateInterval = static_cast( 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 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