memspyui/ui/avkon/src/MemSpySettings.cpp
changeset 31 e7a04a6385be
parent 17 4f2773374eff
equal deleted inserted replaced
30:d8e625c87f33 31:e7a04a6385be
    24 // Engine includes
    24 // Engine includes
    25 #include <memspy/engine/memspyengine.h>
    25 #include <memspy/engine/memspyengine.h>
    26 #include <memspy/engine/memspyenginelogger.h>
    26 #include <memspy/engine/memspyenginelogger.h>
    27 #include <memspy/engine/memspyenginehelperprocess.h>
    27 #include <memspy/engine/memspyenginehelperprocess.h>
    28 #include <memspy/engine/memspyenginehelpersysmemtracker.h>
    28 #include <memspy/engine/memspyenginehelpersysmemtracker.h>
    29 #include <memspy/engine/memspyenginehelpersysmemtrackerconfig.h>
       
    30 
    29 
    31 #include <memspysession.h>
    30 #include <memspysession.h>
    32 
    31 
    33 // Constants
    32 // Constants
    34 _LIT( KMemSpySettingsFileName, "settings.dat" );
    33 _LIT( KMemSpySettingsFileName, "settings.dat" ); //file or avkon client settings
    35 
    34 
    36 // Version 03 dumped some of the system wide memory tracker settings
    35 // Version 03 dumped some of the system wide memory tracker settings
    37 const TInt KMemSpySettingsFileFormatVersion = 6;
    36 const TInt KMemSpySettingsFileFormatVersion = 6;
    38 
    37 
    39 /*
       
    40 CMemSpySettings::CMemSpySettings( RFs& aFsSession, CMemSpyEngine& aEngine )
       
    41 :   iFsSession( aFsSession ), iEngine( aEngine )
       
    42     {
       
    43     }
       
    44 */
       
    45 CMemSpySettings::CMemSpySettings( RFs& aFsSession, RMemSpySession& aSession )
    38 CMemSpySettings::CMemSpySettings( RFs& aFsSession, RMemSpySession& aSession )
    46 :   iFsSession( aFsSession )
    39 :   iFsSession( aFsSession ), iMemSpySession( aSession )
    47     {	
    40     {	
    48     }
    41     }
    49 
    42 
    50 
    43 
    51 CMemSpySettings::~CMemSpySettings()
    44 CMemSpySettings::~CMemSpySettings()
    52     {
    45     {	
    53 	/*
       
    54     TRACE( RDebug::Printf( "CMemSpySettings::~CMemSpySettings() - START" ) );
    46     TRACE( RDebug::Printf( "CMemSpySettings::~CMemSpySettings() - START" ) );
    55     TRAP_IGNORE( StoreSettingsL() );
    47     TRAP_IGNORE( StoreSettingsL() );
    56     TRACE( RDebug::Printf( "CMemSpySettings::~CMemSpySettings() - END" ) );
    48     TRACE( RDebug::Printf( "CMemSpySettings::~CMemSpySettings() - END" ) );    	
    57     */
       
    58 	
       
    59 	//iMemSpyAPI.StoreSettings();
       
    60     }
    49     }
    61 
    50 
    62 
    51 
    63 void CMemSpySettings::ConstructL()
    52 void CMemSpySettings::ConstructL()
    64     {
    53     {	
    65 	/*
       
    66     TRACE( RDebug::Print( _L("CMemSpySettings::ConstructL() - START") ) );
    54     TRACE( RDebug::Print( _L("CMemSpySettings::ConstructL() - START") ) );
    67 
    55 
    68     TRAP_IGNORE( RestoreSettingsL() );
    56     TRAP_IGNORE( RestoreSettingsL() );
    69 
    57 
    70     TRACE( RDebug::Print( _L("CMemSpySettings::ConstructL() - END") ) );
    58     TRACE( RDebug::Print( _L("CMemSpySettings::ConstructL() - END") ) );    
    71     */
    59     }
    72 	
    60 
    73 	//iMemSpyAPI.RestoreSettings();
       
    74     }
       
    75 
       
    76 /*
       
    77 CMemSpySettings* CMemSpySettings::NewL( RFs& aFsSession, CMemSpyEngine& aEngine )
       
    78     {
       
    79     CMemSpySettings* self = new(ELeave) CMemSpySettings( aFsSession, aEngine );
       
    80     CleanupStack::PushL( self );
       
    81     self->ConstructL();
       
    82     CleanupStack::Pop( self );
       
    83     return self;
       
    84     }
       
    85 */
       
    86 CMemSpySettings* CMemSpySettings::NewL( RFs& aFsSession, RMemSpySession& aSession )
    61 CMemSpySettings* CMemSpySettings::NewL( RFs& aFsSession, RMemSpySession& aSession )
    87     {
    62     {
    88     CMemSpySettings* self = new(ELeave) CMemSpySettings( aFsSession, aSession );
    63     CMemSpySettings* self = new(ELeave) CMemSpySettings( aFsSession, aSession );
    89     CleanupStack::PushL( self );
    64     CleanupStack::PushL( self );
    90     self->ConstructL();
    65     self->ConstructL();
    91     CleanupStack::Pop( self );
    66     CleanupStack::Pop( self );
    92     return self;
    67     return self;
    93     }
    68     }
    94 
    69 
    95 /*
       
    96 void CMemSpySettings::GetSettingsFileNameL( TDes& aFileName )
    70 void CMemSpySettings::GetSettingsFileNameL( TDes& aFileName )
    97     {
    71     {
    98     GetSettingsPathL( aFileName );
    72     GetSettingsPathL( aFileName );
    99     aFileName.Append( KMemSpySettingsFileName );
    73     aFileName.Append( KMemSpySettingsFileName );
   100     TRACE( RDebug::Print( _L("CMemSpySettings::GetSettingsFileNameL() - aFileName: %S"), &aFileName ) );
    74     TRACE( RDebug::Print( _L("CMemSpySettings::GetSettingsFileNameL() - aFileName: %S"), &aFileName ) );
   117     aPath.Insert( 0, cDriveName );
    91     aPath.Insert( 0, cDriveName );
   118 
    92 
   119     iFsSession.MkDirAll( aPath );
    93     iFsSession.MkDirAll( aPath );
   120     TRACE( RDebug::Print( _L("CMemSpySettings::GetSettingsPathL() - END - %S"), &aPath ) );
    94     TRACE( RDebug::Print( _L("CMemSpySettings::GetSettingsPathL() - END - %S"), &aPath ) );
   121     }
    95     }
   122 
       
   123 
    96 
   124 RFile CMemSpySettings::SettingsFileLC( TBool aReplace )
    97 RFile CMemSpySettings::SettingsFileLC( TBool aReplace )
   125     {
    98     {
   126     TRACE( RDebug::Print( _L("CMemSpySettings::SettingsFileLC() - START - aReplace: %d"), aReplace ) );
    99     TRACE( RDebug::Print( _L("CMemSpySettings::SettingsFileLC() - START - aReplace: %d"), aReplace ) );
   127 
   100 
   168     CleanupClosePushL( stream );
   141     CleanupClosePushL( stream );
   169     
   142     
   170     // Verion info
   143     // Verion info
   171     stream.WriteInt32L( KMemSpySettingsFileFormatVersion );
   144     stream.WriteInt32L( KMemSpySettingsFileFormatVersion );
   172     
   145     
   173     // Engine settings
   146     stream.WriteUint8L( iSinkType );
   174     TRACE( RDebug::Printf( "CMemSpySettings::StoreSettingsL() - sinkType: %d", iEngine.SinkType() ) );
   147     
   175     stream.WriteUint8L( iEngine.SinkType() );
   148     
   176 
       
   177     // Get SWMT config
   149     // Get SWMT config
   178     CMemSpyEngineHelperSysMemTracker& swmt = iEngine.HelperSysMemTracker();
   150     //CMemSpyEngineHelperSysMemTracker& swmt = iEngine.HelperSysMemTracker();
   179     TMemSpyEngineHelperSysMemTrackerConfig swmtConfig;
   151     //TMemSpyEngineHelperSysMemTrackerConfig swmtConfig;
   180     swmt.GetConfig( swmtConfig );
   152     //swmt.GetConfig( swmtConfig );
   181 
   153 
   182     // Write SWMT settings
   154     // Write SWMT settings
   183     stream.WriteInt32L( swmtConfig.TimerPeriod().Int() );
   155     //stream.WriteInt32L( swmtConfig.TimerPeriod().Int() );
   184     stream.WriteUint8L( swmtConfig.DumpData() );
   156     //stream.WriteUint8L( swmtConfig.DumpData() );
       
   157     
       
   158     stream.WriteInt32L( iSwmtConfig.TimerPeriod().Int() );
       
   159     stream.WriteUint8L( iSwmtConfig.DumpData() );
   185     
   160     
   186     // Write memory tracking auto-start process list
   161     // Write memory tracking auto-start process list
       
   162     /*
   187     const RArray<TUid>& processUidList = iEngine.HelperProcess().MemoryTrackingAutoStartProcessList();
   163     const RArray<TUid>& processUidList = iEngine.HelperProcess().MemoryTrackingAutoStartProcessList();
   188     stream.WriteInt32L( processUidList.Count() );
   164     stream.WriteInt32L( processUidList.Count() );
   189     for( TInt i=0; i<processUidList.Count(); i++ )
   165     for( TInt i=0; i<processUidList.Count(); i++ )
   190         {
   166         {
   191         const TUid uid = processUidList[ i ];
   167         const TUid uid = processUidList[ i ];
   192         TRACE( RDebug::Printf( "CMemSpySettings::StoreSettingsL() - process tracker uid[%02d]: 0x%08x", i, uid.iUid ) );
   168         TRACE( RDebug::Printf( "CMemSpySettings::StoreSettingsL() - process tracker uid[%02d]: 0x%08x", i, uid.iUid ) );
   193         stream << uid;
   169         stream << uid;
   194         }
   170         }
   195 
   171     */    
       
   172     stream.WriteInt32L( iUidList.Count() );
       
   173     for( TInt i = 0; i < iUidList.Count(); i++ )
       
   174     	{
       
   175 		const TUid uid = iUidList[ i ];
       
   176 		TRACE( RDebug::Printf( "CMemSpySettings::StoreSettingsL() - process tracker uid[%02d]: 0x%08x", i, uid.iUid ) );
       
   177 		stream << uid;
       
   178     	}
       
   179     
   196     // Write memory tracking categories
   180     // Write memory tracking categories
   197     stream.WriteInt32L( swmtConfig.iEnabledCategories );
   181     //stream.WriteInt32L( swmtConfig.iEnabledCategories );
       
   182     stream.WriteInt32L( iSwmtConfig.iEnabledCategories );
   198     
   183     
   199     // Write heap tracking thread name filter
   184     // Write heap tracking thread name filter
   200     stream.WriteInt32L( swmtConfig.iThreadNameFilter.Length() );
   185     //stream.WriteInt32L( swmtConfig.iThreadNameFilter.Length() );
       
   186     stream.WriteInt32L( iSwmtConfig.iThreadNameFilter.Length() );
       
   187     
       
   188     /*
   201     if ( swmtConfig.iThreadNameFilter.Length() > 0 )
   189     if ( swmtConfig.iThreadNameFilter.Length() > 0 )
   202         {
   190         {
   203         stream.WriteL( swmtConfig.iThreadNameFilter, swmtConfig.iThreadNameFilter.Length() );
   191         stream.WriteL( swmtConfig.iThreadNameFilter, swmtConfig.iThreadNameFilter.Length() );
   204         }
   192         }
   205     
   193     
   206     // Write mode
   194     // Write mode
   207     stream.WriteInt32L( swmtConfig.iMode );
   195     stream.WriteInt32L( swmtConfig.iMode );
       
   196     */
       
   197     if ( iSwmtConfig.iThreadNameFilter.Length() > 0 )
       
   198     	{
       
   199 		stream.WriteL( iSwmtConfig.iThreadNameFilter, iSwmtConfig.iThreadNameFilter.Length() );
       
   200     	}
       
   201         
       
   202     // Write mode
       
   203     stream.WriteInt32L( iSwmtConfig.iMode );
   208     
   204     
   209     stream.CommitL();
   205     stream.CommitL();
   210     CleanupStack::PopAndDestroy( &stream ); // Closes file
   206     CleanupStack::PopAndDestroy( &stream ); // Closes file    
   211     TRACE( RDebug::Printf( "CMemSpySettings::StoreSettingsL() - END - sinkType: %d", iEngine.SinkType() ) );
   207     }
   212     }
       
   213 
       
   214 
   208 
   215 void CMemSpySettings::RestoreSettingsL()
   209 void CMemSpySettings::RestoreSettingsL()
   216     {
   210     {  
   217     TRACE( RDebug::Printf( "CMemSpySettings::RestoreSettingsL() - START - current engine sinkType: %d", iEngine.SinkType() ) );
       
   218 
       
   219     RFile file = SettingsFileLC();
   211     RFile file = SettingsFileLC();
   220     RFileReadStream stream( file );
   212     RFileReadStream stream( file );
   221     CleanupStack::Pop(); // file
   213     CleanupStack::Pop(); // file
   222     CleanupClosePushL( stream );
   214     CleanupClosePushL( stream ); 
   223     
   215     
   224     // Version info
   216     // Version info
   225     const TInt version = stream.ReadInt32L(); // discarded for now
   217     const TInt version = stream.ReadInt32L(); // discarded for now
   226     TRACE( RDebug::Printf( "CMemSpySettings::RestoreSettingsL() - version: %d", version ) );
   218     TRACE( RDebug::Printf( "CMemSpySettings::RestoreSettingsL() - version: %d", version ) );
   227 
   219 
   228     // Engine settings
   220     // Engine settings
   229     TMemSpySinkType type = static_cast< TMemSpySinkType >( stream.ReadUint8L() );
   221     TMemSpySinkType type = static_cast< TMemSpySinkType >( stream.ReadUint8L() );
   230     TRACE( RDebug::Printf( "CMemSpySettings::RestoreSettingsL() - read sinkType: %d", type ) );
   222     TRACE( RDebug::Printf( "CMemSpySettings::RestoreSettingsL() - read sinkType: %d", type ) );
   231     iEngine.InstallSinkL( type );
   223        
       
   224     //iEngine.InstallSinkL( type );
       
   225     //iMemSpySession.SwitchOutputSink( type ); //TODO: to argue to set stuf in engine from here
   232     
   226     
   233     // Set SWMT config
   227     // Set SWMT config
   234     TMemSpyEngineHelperSysMemTrackerConfig swmtConfig;
   228     TMemSpyEngineHelperSysMemTrackerConfig swmtConfig;
   235     swmtConfig.iTimerPeriod = TTimeIntervalMicroSeconds32( stream.ReadInt32L() );
   229     swmtConfig.iTimerPeriod = TTimeIntervalMicroSeconds32( stream.ReadInt32L() ); 
   236     swmtConfig.iDumpData = static_cast< TBool >( stream.ReadUint8L() );
   230     swmtConfig.iDumpData = static_cast< TBool >( stream.ReadUint8L() );
   237 
   231 
   238     if  ( version < 3 )
   232     if  ( version < 3 )
   239         {
   233         {
   240         // Restore but ignore old delta tracker settings which aren't used anymore
   234         // Restore but ignore old delta tracker settings which aren't used anymore
   245         }
   239         }
   246     
   240     
   247     // Restore memory tracking auto-start process uids if file format supports it...
   241     // Restore memory tracking auto-start process uids if file format supports it...
   248     if ( version >= 2 )
   242     if ( version >= 2 )
   249         {
   243         {
   250         RArray<TUid> list;
   244         RArray<TUid> list;		
   251         CleanupClosePushL( list );
   245         CleanupClosePushL( list );
   252         //
   246         //
   253         const TInt count = stream.ReadInt32L();
   247         const TInt count = stream.ReadInt32L();
       
   248         
       
   249         //CArrayFixFlat<TUid>* list = new(ELeave)CArrayFixFlat<TUid>(count);
       
   250         //CleanupStack::PushL(list );               
       
   251         
   254         for( TInt i=0; i<count; i++ )
   252         for( TInt i=0; i<count; i++ )
   255             {
   253             {
   256             TUid processUid;
   254             TUid processUid;
   257             stream >> processUid;
   255             stream >> processUid;
   258             //
   256             //           
   259             TRACE( RDebug::Printf( "CMemSpySettings::RestoreSettingsL() - process tracker uid[%02d]: 0x%08x", i, processUid.iUid ) );
   257             User::LeaveIfError( list.Append( processUid ) );            
   260             User::LeaveIfError( list.Append( processUid ) );
   258             //list->AppendL( processUid );
   261             }
   259             }
   262         //
   260         //
   263         CMemSpyEngineHelperProcess& processHelper = iEngine.HelperProcess();
   261         //CMemSpyEngineHelperProcess& processHelper = iEngine.HelperProcess();
   264         processHelper.SetMemoryTrackingAutoStartProcessListL( list );
   262         //processHelper.SetMemoryTrackingAutoStartProcessListL( list );        
       
   263         //iMemSpySession.SetSwmtAutoStartProcessList( list );
       
   264         iUidList = list; 	//TODO: to get it into the engine
       
   265         
   265         CleanupStack::PopAndDestroy( &list );
   266         CleanupStack::PopAndDestroy( &list );
   266         }
   267         }
   267     
   268     
   268     // Restore memory tracking categories 
   269     // Restore memory tracking categories 
   269     if ( version > 3 )
   270     if ( version > 3 )
   285     if ( version > 5 )
   286     if ( version > 5 )
   286         {
   287         {
   287         swmtConfig.iMode = (TMemSpyEngineHelperSysMemTrackerConfig::TMemSpyEngineSysMemTrackerMode)stream.ReadInt32L();
   288         swmtConfig.iMode = (TMemSpyEngineHelperSysMemTrackerConfig::TMemSpyEngineSysMemTrackerMode)stream.ReadInt32L();
   288         }
   289         }
   289     
   290     
   290     CMemSpyEngineHelperSysMemTracker& swmt = iEngine.HelperSysMemTracker();
   291     //CMemSpyEngineHelperSysMemTracker& swmt = iEngine.HelperSysMemTracker();
   291     swmt.SetConfigL( swmtConfig );
   292     //swmt.SetConfigL( swmtConfig );
   292 
   293     //iMemSpySession.SetSwmtConfig( swmtConfig );
   293     CleanupStack::PopAndDestroy( &stream ); // Closes file
   294     
   294     TRACE( RDebug::Printf( "CMemSpySettings::RestoreSettingsL() - END - engine sink type: %d", iEngine.SinkType() ) );
   295     iSwmtConfig = swmtConfig; 	//TODO: to get it into the engine
   295     }
   296     
   296 
   297     CleanupStack::PopAndDestroy( &stream ); // Closes file    
   297 */
   298     }
       
   299 
       
   300