perfapps/memspyui/ui/avkon/src/MemSpySettings.cpp
changeset 53 819e59dfc032
parent 51 b048e15729d6
equal deleted inserted replaced
52:36d60d12b4af 53:819e59dfc032
   140     CleanupStack::Pop(); // file
   140     CleanupStack::Pop(); // file
   141     CleanupClosePushL( stream );
   141     CleanupClosePushL( stream );
   142     
   142     
   143     // Verion info
   143     // Verion info
   144     stream.WriteInt32L( KMemSpySettingsFileFormatVersion );
   144     stream.WriteInt32L( KMemSpySettingsFileFormatVersion );
   145     
   145         
       
   146     iMemSpySession.GetOutputSink( iSinkType );
   146     stream.WriteUint8L( iSinkType );
   147     stream.WriteUint8L( iSinkType );
   147     
   148         
   148     
   149     // Get SWMT config    
   149     // Get SWMT config
   150     GetSwmtConfig( iSwmtConfig );
   150     //CMemSpyEngineHelperSysMemTracker& swmt = iEngine.HelperSysMemTracker();
   151     
   151     //TMemSpyEngineHelperSysMemTrackerConfig swmtConfig;
   152     stream.WriteInt32L( iSwmtConfig.iTimerPeriod.Int() );
   152     //swmt.GetConfig( swmtConfig );
   153     stream.WriteUint8L( iSwmtConfig.iDumpData );
   153 
       
   154     // Write SWMT settings
       
   155     //stream.WriteInt32L( swmtConfig.TimerPeriod().Int() );
       
   156     //stream.WriteUint8L( swmtConfig.DumpData() );
       
   157     
       
   158     stream.WriteInt32L( iSwmtConfig.TimerPeriod().Int() );
       
   159     stream.WriteUint8L( iSwmtConfig.DumpData() );
       
   160     
   154     
   161     // Write memory tracking auto-start process list
   155     // Write memory tracking auto-start process list
   162     /*
   156     /*
   163     const RArray<TUid>& processUidList = iEngine.HelperProcess().MemoryTrackingAutoStartProcessList();
   157     const RArray<TUid>& processUidList = iEngine.HelperProcess().MemoryTrackingAutoStartProcessList();
   164     stream.WriteInt32L( processUidList.Count() );
   158     stream.WriteInt32L( processUidList.Count() );
   166         {
   160         {
   167         const TUid uid = processUidList[ i ];
   161         const TUid uid = processUidList[ i ];
   168         TRACE( RDebug::Printf( "CMemSpySettings::StoreSettingsL() - process tracker uid[%02d]: 0x%08x", i, uid.iUid ) );
   162         TRACE( RDebug::Printf( "CMemSpySettings::StoreSettingsL() - process tracker uid[%02d]: 0x%08x", i, uid.iUid ) );
   169         stream << uid;
   163         stream << uid;
   170         }
   164         }
   171     */    
   165     */        
   172     stream.WriteInt32L( iUidList.Count() );
   166     
   173     for( TInt i = 0; i < iUidList.Count(); i++ )
   167     // Write memory tracking categories    
   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     
       
   180     // Write memory tracking categories
       
   181     //stream.WriteInt32L( swmtConfig.iEnabledCategories );
       
   182     stream.WriteInt32L( iSwmtConfig.iEnabledCategories );
   168     stream.WriteInt32L( iSwmtConfig.iEnabledCategories );
   183     
   169     
   184     // Write heap tracking thread name filter
   170     // Write heap tracking thread name filter    
   185     //stream.WriteInt32L( swmtConfig.iThreadNameFilter.Length() );
       
   186     stream.WriteInt32L( iSwmtConfig.iThreadNameFilter.Length() );
   171     stream.WriteInt32L( iSwmtConfig.iThreadNameFilter.Length() );
   187     
   172         
   188     /*
       
   189     if ( swmtConfig.iThreadNameFilter.Length() > 0 )
       
   190         {
       
   191         stream.WriteL( swmtConfig.iThreadNameFilter, swmtConfig.iThreadNameFilter.Length() );
       
   192         }
       
   193     
       
   194     // Write mode
       
   195     stream.WriteInt32L( swmtConfig.iMode );
       
   196     */
       
   197     if ( iSwmtConfig.iThreadNameFilter.Length() > 0 )
   173     if ( iSwmtConfig.iThreadNameFilter.Length() > 0 )
   198     	{
   174     	{
   199 		stream.WriteL( iSwmtConfig.iThreadNameFilter, iSwmtConfig.iThreadNameFilter.Length() );
   175 		stream.WriteL( iSwmtConfig.iThreadNameFilter, iSwmtConfig.iThreadNameFilter.Length() );
   200     	}
   176     	}
   201         
   177         
   218     TRACE( RDebug::Printf( "CMemSpySettings::RestoreSettingsL() - version: %d", version ) );
   194     TRACE( RDebug::Printf( "CMemSpySettings::RestoreSettingsL() - version: %d", version ) );
   219 
   195 
   220     // Engine settings
   196     // Engine settings
   221     TMemSpySinkType type = static_cast< TMemSpySinkType >( stream.ReadUint8L() );
   197     TMemSpySinkType type = static_cast< TMemSpySinkType >( stream.ReadUint8L() );
   222     TRACE( RDebug::Printf( "CMemSpySettings::RestoreSettingsL() - read sinkType: %d", type ) );
   198     TRACE( RDebug::Printf( "CMemSpySettings::RestoreSettingsL() - read sinkType: %d", type ) );
   223        
   199            
   224     //iEngine.InstallSinkL( type );
   200     iMemSpySession.SwitchOutputSinkL( type ); //set value in engine
   225     //iMemSpySession.SwitchOutputSink( type ); //TODO: to argue to set stuf in engine from here
       
   226     
   201     
   227     // Set SWMT config
   202     // Set SWMT config
   228     TMemSpyEngineHelperSysMemTrackerConfig swmtConfig;
   203     TMemSpyEngineHelperSysMemTrackerConfig swmtConfig;
   229     swmtConfig.iTimerPeriod = TTimeIntervalMicroSeconds32( stream.ReadInt32L() ); 
   204     swmtConfig.iTimerPeriod = TTimeIntervalMicroSeconds32( stream.ReadInt32L() ); 
   230     swmtConfig.iDumpData = static_cast< TBool >( stream.ReadUint8L() );
   205     swmtConfig.iDumpData = static_cast< TBool >( stream.ReadUint8L() );
   239         }
   214         }
   240     
   215     
   241     // Restore memory tracking auto-start process uids if file format supports it...
   216     // Restore memory tracking auto-start process uids if file format supports it...
   242     if ( version >= 2 )
   217     if ( version >= 2 )
   243         {
   218         {
       
   219 		/*
   244         RArray<TUid> list;		
   220         RArray<TUid> list;		
   245         CleanupClosePushL( list );
   221         CleanupClosePushL( list );
   246         //
   222         //
   247         const TInt count = stream.ReadInt32L();
   223         const TInt count = stream.ReadInt32L();
   248         
   224         
   249         //CArrayFixFlat<TUid>* list = new(ELeave)CArrayFixFlat<TUid>(count);
   225         CArrayFixFlat<TUid>* list = new(ELeave)CArrayFixFlat<TUid>(count);
   250         //CleanupStack::PushL(list );               
   226         CleanupStack::PushL(list );               
   251         
   227         
   252         for( TInt i=0; i<count; i++ )
   228         for( TInt i=0; i<count; i++ )
   253             {
   229             {
   254             TUid processUid;
   230             TUid processUid;
   255             stream >> processUid;
   231             stream >> processUid;
   262         //processHelper.SetMemoryTrackingAutoStartProcessListL( list );        
   238         //processHelper.SetMemoryTrackingAutoStartProcessListL( list );        
   263         //iMemSpySession.SetSwmtAutoStartProcessList( list );
   239         //iMemSpySession.SetSwmtAutoStartProcessList( list );
   264         iUidList = list; 	//TODO: to get it into the engine
   240         iUidList = list; 	//TODO: to get it into the engine
   265         
   241         
   266         CleanupStack::PopAndDestroy( &list );
   242         CleanupStack::PopAndDestroy( &list );
       
   243         */
   267         }
   244         }
   268     
   245     
   269     // Restore memory tracking categories 
   246     // Restore memory tracking categories 
   270     if ( version > 3 )
   247     if ( version > 3 )
   271         {
   248         {
   274     
   251     
   275     // Write heap tracking thread name filter 
   252     // Write heap tracking thread name filter 
   276     if ( version > 4 )
   253     if ( version > 4 )
   277         {
   254         {
   278         TInt len = stream.ReadInt32L();
   255         TInt len = stream.ReadInt32L();
   279         if ( len > 0 )
   256         if ( len > 0 && len < KMaxName )
   280             {
   257             {			
   281             stream.ReadL( swmtConfig.iThreadNameFilter, len );
   258             stream.ReadL( swmtConfig.iThreadNameFilter, len );
   282             }
   259             }        
   283         }
   260         }
   284 
   261 
   285     // Write mode
   262     // Write mode
   286     if ( version > 5 )
   263     if ( version > 5 )
   287         {
   264         {
   288         swmtConfig.iMode = (TMemSpyEngineHelperSysMemTrackerConfig::TMemSpyEngineSysMemTrackerMode)stream.ReadInt32L();
   265         swmtConfig.iMode = (TMemSpyEngineHelperSysMemTrackerConfig::TMemSpyEngineSysMemTrackerMode)stream.ReadInt32L();
   289         }
   266         }
   290     
   267         
   291     //CMemSpyEngineHelperSysMemTracker& swmt = iEngine.HelperSysMemTracker();
   268     iSwmtConfig = swmtConfig;
   292     //swmt.SetConfigL( swmtConfig );
   269     
   293     //iMemSpySession.SetSwmtConfig( swmtConfig );
   270     SetSwmtConfig( iSwmtConfig ); //set values in engine
   294     
       
   295     iSwmtConfig = swmtConfig; 	//TODO: to get it into the engine
       
   296     
   271     
   297     CleanupStack::PopAndDestroy( &stream ); // Closes file    
   272     CleanupStack::PopAndDestroy( &stream ); // Closes file    
   298     }
   273     }
   299 
   274 
   300 
   275 void CMemSpySettings::GetSwmtConfig( TMemSpyEngineHelperSysMemTrackerConfig& aConfig )
       
   276 	{
       
   277 	TInt categories = 0;
       
   278 	iMemSpySession.GetSwmtCategoriesL( categories );
       
   279 	aConfig.iEnabledCategories = categories;
       
   280 		
       
   281 	TInt timerPeriod = 0;
       
   282 	iMemSpySession.GetSwmtTimerIntervalL( timerPeriod );
       
   283 	aConfig.iTimerPeriod = timerPeriod;
       
   284 		
       
   285 	TBool dumpData = EFalse;
       
   286 	iMemSpySession.GetSwmtHeapDumpsEnabledL( dumpData );
       
   287 	aConfig.iDumpData = dumpData;
       
   288 			     
       
   289 	TName threadNameFilter;
       
   290 	iMemSpySession.GetSwmtFilter( threadNameFilter );
       
   291 	aConfig.iThreadNameFilter = threadNameFilter;
       
   292 			
       
   293 	TMemSpyEngineHelperSysMemTrackerConfig::TMemSpyEngineSysMemTrackerMode mode;
       
   294 	iMemSpySession.GetSwmtMode( mode );
       
   295 	aConfig.iMode = mode;	    
       
   296 	}
       
   297 
       
   298 void CMemSpySettings::SetSwmtConfig( TMemSpyEngineHelperSysMemTrackerConfig& aConfig )
       
   299 	{
       
   300 	iMemSpySession.SetSwmtMode( aConfig.iMode );
       
   301 	iMemSpySession.SetSwmtCategoriesL( aConfig.iEnabledCategories );
       
   302 	iMemSpySession.SetSwmtTimerIntervalL( aConfig.iTimerPeriod.Int() );
       
   303 	iMemSpySession.SetSwmtHeapDumpsEnabledL( aConfig.iDumpData );
       
   304 	iMemSpySession.SetSwmtFilter( aConfig.iThreadNameFilter );
       
   305 	}