diff -r b3cee849fa46 -r fad26422216a memspyui/ui/avkon/src/MemSpySettings.cpp --- a/memspyui/ui/avkon/src/MemSpySettings.cpp Tue Aug 31 15:15:20 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,300 +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 "MemSpySettings.h" - -// System includes -#include -#include - -// Engine includes -#include -#include -#include -#include - -#include - -// Constants -_LIT( KMemSpySettingsFileName, "settings.dat" ); //file or avkon client settings - -// Version 03 dumped some of the system wide memory tracker settings -const TInt KMemSpySettingsFileFormatVersion = 6; - -CMemSpySettings::CMemSpySettings( RFs& aFsSession, RMemSpySession& aSession ) -: iFsSession( aFsSession ), iMemSpySession( aSession ) - { - } - - -CMemSpySettings::~CMemSpySettings() - { - TRACE( RDebug::Printf( "CMemSpySettings::~CMemSpySettings() - START" ) ); - TRAP_IGNORE( StoreSettingsL() ); - TRACE( RDebug::Printf( "CMemSpySettings::~CMemSpySettings() - END" ) ); - } - - -void CMemSpySettings::ConstructL() - { - TRACE( RDebug::Print( _L("CMemSpySettings::ConstructL() - START") ) ); - - TRAP_IGNORE( RestoreSettingsL() ); - - TRACE( RDebug::Print( _L("CMemSpySettings::ConstructL() - END") ) ); - } - -CMemSpySettings* CMemSpySettings::NewL( RFs& aFsSession, RMemSpySession& aSession ) - { - CMemSpySettings* self = new(ELeave) CMemSpySettings( aFsSession, aSession ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - return self; - } - -void CMemSpySettings::GetSettingsFileNameL( TDes& aFileName ) - { - GetSettingsPathL( aFileName ); - aFileName.Append( KMemSpySettingsFileName ); - TRACE( RDebug::Print( _L("CMemSpySettings::GetSettingsFileNameL() - aFileName: %S"), &aFileName ) ); - } - - -void CMemSpySettings::GetSettingsPathL( TDes& aPath ) - { - TRACE( RDebug::Print( _L("CMemSpySettings::GetSettingsPathL() - START") ) ); - aPath.Zero(); - - // Get private data cage path - TInt err = iFsSession.PrivatePath( aPath ); - TRACE( RDebug::Print( _L("CMemSpySettings::GetSettingsPathL() - priv path err: %d"), err ) ); - User::LeaveIfError( err ); - - // Combine with C: drive - const TDriveUnit cDrive( EDriveC ); - const TDriveName cDriveName( cDrive.Name() ); - aPath.Insert( 0, cDriveName ); - - iFsSession.MkDirAll( aPath ); - TRACE( RDebug::Print( _L("CMemSpySettings::GetSettingsPathL() - END - %S"), &aPath ) ); - } - -RFile CMemSpySettings::SettingsFileLC( TBool aReplace ) - { - TRACE( RDebug::Print( _L("CMemSpySettings::SettingsFileLC() - START - aReplace: %d"), aReplace ) ); - - TFileName* fileName = new(ELeave) TFileName(); - CleanupStack::PushL( fileName ); - GetSettingsFileNameL( *fileName ); - TRACE( RDebug::Print( _L("CMemSpySettings::SettingsFileLC() - fileName: %S"), fileName ) ); - - RFile file; - TInt error = KErrNone; - // - if ( aReplace ) - { - error = file.Replace( iFsSession, *fileName, EFileWrite ); - TRACE( RDebug::Print( _L("CMemSpySettings::SettingsFileLC() - replace err: %d"), error ) ); - } - else - { - error = file.Open( iFsSession, *fileName, EFileWrite ); - TRACE( RDebug::Print( _L("CMemSpySettings::SettingsFileLC() - open err: %d"), error ) ); - // - if ( error == KErrNotFound ) - { - error = file.Create( iFsSession, *fileName, EFileWrite ); - } - } - // - User::LeaveIfError( error ); - CleanupStack::PopAndDestroy( fileName ); - CleanupClosePushL( file ); - // - TRACE( RDebug::Print( _L("CMemSpySettings::SettingsFileLC() - END") ) ); - return file; - } - - -void CMemSpySettings::StoreSettingsL() - { - TRACE( RDebug::Printf( "CMemSpySettings::StoreSettingsL() - START" ) ); - - RFile file = SettingsFileLC( ETrue ); - RFileWriteStream stream( file ); - CleanupStack::Pop(); // file - CleanupClosePushL( stream ); - - // Verion info - stream.WriteInt32L( KMemSpySettingsFileFormatVersion ); - - stream.WriteUint8L( iSinkType ); - - - // Get SWMT config - //CMemSpyEngineHelperSysMemTracker& swmt = iEngine.HelperSysMemTracker(); - //TMemSpyEngineHelperSysMemTrackerConfig swmtConfig; - //swmt.GetConfig( swmtConfig ); - - // Write SWMT settings - //stream.WriteInt32L( swmtConfig.TimerPeriod().Int() ); - //stream.WriteUint8L( swmtConfig.DumpData() ); - - stream.WriteInt32L( iSwmtConfig.TimerPeriod().Int() ); - stream.WriteUint8L( iSwmtConfig.DumpData() ); - - // Write memory tracking auto-start process list - /* - const RArray& processUidList = iEngine.HelperProcess().MemoryTrackingAutoStartProcessList(); - stream.WriteInt32L( processUidList.Count() ); - for( TInt i=0; i 0 ) - { - stream.WriteL( swmtConfig.iThreadNameFilter, swmtConfig.iThreadNameFilter.Length() ); - } - - // Write mode - stream.WriteInt32L( swmtConfig.iMode ); - */ - if ( iSwmtConfig.iThreadNameFilter.Length() > 0 ) - { - stream.WriteL( iSwmtConfig.iThreadNameFilter, iSwmtConfig.iThreadNameFilter.Length() ); - } - - // Write mode - stream.WriteInt32L( iSwmtConfig.iMode ); - - stream.CommitL(); - CleanupStack::PopAndDestroy( &stream ); // Closes file - } - -void CMemSpySettings::RestoreSettingsL() - { - RFile file = SettingsFileLC(); - RFileReadStream stream( file ); - CleanupStack::Pop(); // file - CleanupClosePushL( stream ); - - // Version info - const TInt version = stream.ReadInt32L(); // discarded for now - TRACE( RDebug::Printf( "CMemSpySettings::RestoreSettingsL() - version: %d", version ) ); - - // Engine settings - TMemSpySinkType type = static_cast< TMemSpySinkType >( stream.ReadUint8L() ); - TRACE( RDebug::Printf( "CMemSpySettings::RestoreSettingsL() - read sinkType: %d", type ) ); - - //iEngine.InstallSinkL( type ); - //iMemSpySession.SwitchOutputSink( type ); //TODO: to argue to set stuf in engine from here - - // Set SWMT config - TMemSpyEngineHelperSysMemTrackerConfig swmtConfig; - swmtConfig.iTimerPeriod = TTimeIntervalMicroSeconds32( stream.ReadInt32L() ); - swmtConfig.iDumpData = static_cast< TBool >( stream.ReadUint8L() ); - - if ( version < 3 ) - { - // Restore but ignore old delta tracker settings which aren't used anymore - // - static_cast< TBool >( stream.ReadUint8L() ); - static_cast< TBool >( stream.ReadUint8L() ); - static_cast< TBool >( stream.ReadUint8L() ); - } - - // Restore memory tracking auto-start process uids if file format supports it... - if ( version >= 2 ) - { - RArray list; - CleanupClosePushL( list ); - // - const TInt count = stream.ReadInt32L(); - - //CArrayFixFlat* list = new(ELeave)CArrayFixFlat(count); - //CleanupStack::PushL(list ); - - for( TInt i=0; i> processUid; - // - User::LeaveIfError( list.Append( processUid ) ); - //list->AppendL( processUid ); - } - // - //CMemSpyEngineHelperProcess& processHelper = iEngine.HelperProcess(); - //processHelper.SetMemoryTrackingAutoStartProcessListL( list ); - //iMemSpySession.SetSwmtAutoStartProcessList( list ); - iUidList = list; //TODO: to get it into the engine - - CleanupStack::PopAndDestroy( &list ); - } - - // Restore memory tracking categories - if ( version > 3 ) - { - swmtConfig.iEnabledCategories = stream.ReadInt32L(); - } - - // Write heap tracking thread name filter - if ( version > 4 ) - { - TInt len = stream.ReadInt32L(); - if ( len > 0 ) - { - stream.ReadL( swmtConfig.iThreadNameFilter, len ); - } - } - - // Write mode - if ( version > 5 ) - { - swmtConfig.iMode = (TMemSpyEngineHelperSysMemTrackerConfig::TMemSpyEngineSysMemTrackerMode)stream.ReadInt32L(); - } - - //CMemSpyEngineHelperSysMemTracker& swmt = iEngine.HelperSysMemTracker(); - //swmt.SetConfigL( swmtConfig ); - //iMemSpySession.SetSwmtConfig( swmtConfig ); - - iSwmtConfig = swmtConfig; //TODO: to get it into the engine - - CleanupStack::PopAndDestroy( &stream ); // Closes file - } - -