diff -r 48060abbbeaf -r b3cee849fa46 memspyui/source/MemSpyViewThreadInfoItemMemoryTracking.cpp --- a/memspyui/source/MemSpyViewThreadInfoItemMemoryTracking.cpp Thu Aug 19 09:55:38 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,664 +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 "MemSpyViewThreadInfoItemMemoryTracking.h" - -// System includes -#include - -// Engine includes -#include -#include -#include -#include -#include -#include -#include -#include - -// User includes -#include "MemSpyContainerObserver.h" - - -CMemSpyViewThreadInfoItemMemoryTracking::CMemSpyViewThreadInfoItemMemoryTracking( CMemSpyEngine& aEngine, MMemSpyViewObserver& aObserver, CMemSpyThreadInfoContainer& aContainer ) -: CMemSpyViewThreadInfoItemGeneric( aEngine, aObserver, aContainer, EMemSpyThreadInfoItemTypeMemoryTracking ) - { - } - - -void CMemSpyViewThreadInfoItemMemoryTracking::ConstructL( const TRect& aRect, CCoeControl& aContainer, TAny* aSelectionRune ) - { - CMemSpyViewThreadInfoItemGeneric::ConstructL( aRect, aContainer, aSelectionRune ); - CMemSpyThreadInfoMemoryTracking* item = static_cast< CMemSpyThreadInfoMemoryTracking* >( iInfoItem ); - item->TrackingObserverAddL( *this ); - - // Reset the title - _LIT( KCustomTitle, "Memory Statistics" ); - SetTitleL( KCustomTitle ); - - // Select the appropriate view - const TMemSpyViewType viewType = (TMemSpyViewType) ((TInt) aSelectionRune ); - const TInt index = IndexByViewType( viewType ); - // -#ifdef _DEBUG - RDebug::Printf( "[MemSpy] CMemSpyViewThreadInfoItemMemoryTracking::ConstructL() - aSelectionRune: 0x%08x, viewType: %d, index: %d", aSelectionRune, viewType, index ); -#endif - // - if ( index >= 0 && index < iListBox->Model()->NumberOfItems() ) - { - iListBox->SetCurrentItemIndex( index ); - HandleListBoxItemSelectedL( index ); - } - } - - -TMemSpyViewType CMemSpyViewThreadInfoItemMemoryTracking::ViewType() const - { - return EMemSpyViewTypeThreadInfoItemMemoryTrackingStatistics; - } - - -CMemSpyViewBase* CMemSpyViewThreadInfoItemMemoryTracking::PrepareParentViewL() - { - CMemSpyViewBase* parent = CMemSpyViewThreadInfoItemGeneric::PrepareParentViewL(); - - // Stop observing changes - CMemSpyThreadInfoMemoryTracking* item = static_cast< CMemSpyThreadInfoMemoryTracking* >( iInfoItem ); - item->TrackingObserverRemove( *this ); - - return parent; - } - - -CMemSpyViewBase* CMemSpyViewThreadInfoItemMemoryTracking::PrepareChildViewL() - { - CMemSpyViewBase* child = NULL; - // - CMemSpyThreadInfoMemoryTracking* item = static_cast< CMemSpyThreadInfoMemoryTracking* >( iInfoItem ); - const TInt index = iListBox->CurrentItemIndex(); - if ( index == 1 ) - { - child = new(ELeave) CMemSpyViewThreadInfoItemMemoryTrackingCurrent( iEngine, iObserver, Container() ); - } - else if ( index == 2 ) - { - child = new(ELeave) CMemSpyViewThreadInfoItemMemoryTrackingHWM( iEngine, iObserver, Container() ); - } - else if ( index == 3 ) - { - child = new(ELeave) CMemSpyViewThreadInfoItemMemoryTrackingPeak( iEngine, iObserver, Container() ); - } - // - if ( child ) - { - CleanupStack::PushL( child ); - child->ConstructL( Rect(), *Parent() ); - CleanupStack::Pop( child ); - - // Stop observing changes - item->TrackingObserverRemove( *this ); - } - // - return child; - } - - -TBool CMemSpyViewThreadInfoItemMemoryTracking::HandleCommandL( TInt aCommand ) - { - TBool handled = ETrue; - // - switch ( aCommand ) - { - case EMemSpyCmdMemoryTrackingStart: - OnCmdTrackingStartL(); - break; - case EMemSpyCmdMemoryTrackingStop: - OnCmdTrackingStopL(); - break; - case EMemSpyCmdMemoryTrackingHWMReset: - OnCmdHWMResetL(); - break; - case EMemSpyCmdMemoryTrackingTotalWithSharedMem: - OnCmdTotalWithSharedMemL(); - break; - case EMemSpyCmdMemoryTrackingTotalWithoutSharedMem: - OnCmdTotalWithoutSharedMemL(); - break; - default: - handled = CMemSpyViewBase::HandleCommandL( aCommand ); - break; - } - // - return handled; - } - - -TInt CMemSpyViewThreadInfoItemMemoryTracking::IndexByViewType( TMemSpyViewType aType ) - { - TInt index = 0; - // - switch( aType ) - { - default: - case EMemSpyViewTypeThreadInfoItemMemoryTrackingStatisticsCurrent: - index = 1; - break; - case EMemSpyViewTypeThreadInfoItemMemoryTrackingStatisticsHWM: - index = 2; - break; - case EMemSpyViewTypeThreadInfoItemMemoryTrackingStatisticsPeak: - index = 3; - break; - } - // - return index; - } - - -void CMemSpyViewThreadInfoItemMemoryTracking::HandleListBoxItemActionedL( TInt aIndex ) - { - if ( aIndex == 0 ) - { - CMemSpyThreadInfoMemoryTracking* item = static_cast< CMemSpyThreadInfoMemoryTracking* >( iInfoItem ); - if ( item->TrackingActive() ) - { - OnCmdTrackingStopL(); - } - else - { - OnCmdTrackingStartL(); - } - } - - // Notify observer about item selection - ReportEventL( MMemSpyViewObserver::EEventItemActioned ); - - // Ensure we refresh the listbox content - iListBox->DrawDeferred(); - } - - -void CMemSpyViewThreadInfoItemMemoryTracking::RefreshL() - { - SetListBoxModelL(); - CMemSpyViewBase::RefreshL(); - iListBox->DrawDeferred(); - } - - -void CMemSpyViewThreadInfoItemMemoryTracking::DynInitMenuPaneL( TInt aResourceId, CEikMenuPane* aMenuPane ) - { - if ( aResourceId == MenuCascadeResourceId() ) - { - CMemSpyThreadInfoMemoryTracking* item = static_cast< CMemSpyThreadInfoMemoryTracking* >( iInfoItem ); - // - if ( !item->TrackerExists() || item->TrackingActive() ) - { - aMenuPane->SetItemDimmed( EMemSpyCmdMemoryTrackingStart, ETrue ); - } - else - { - aMenuPane->SetItemDimmed( EMemSpyCmdMemoryTrackingStop, ETrue ); - } - // - if ( item->TotalIncludesSharedMemory() ) - { - aMenuPane->SetItemDimmed( EMemSpyCmdMemoryTrackingTotalWithSharedMem, ETrue ); - } - else - { - aMenuPane->SetItemDimmed( EMemSpyCmdMemoryTrackingTotalWithoutSharedMem, ETrue ); - } - - aMenuPane->SetItemDimmed( EMemSpyCmdMemoryTrackingHWMReset, Thread().IsDead() ); - } - else if ( aResourceId == R_MEMSPY_MENUPANE ) - { - aMenuPane->SetItemDimmed( EMemSpyCmdMemoryTracking, Thread().IsDead() ); - aMenuPane->SetItemDimmed( EMemSpyCmdMemoryTrackingAutoStart, Thread().IsDead() ); - } - } - - -void CMemSpyViewThreadInfoItemMemoryTracking::HandleMemoryTrackingStartedL() - { - RefreshL(); - } - - -void CMemSpyViewThreadInfoItemMemoryTracking::HandleMemoryTrackingStoppedL() - { - RefreshL(); - } - - -void CMemSpyViewThreadInfoItemMemoryTracking::HandleMemoryChangedL( const TProcessId& /*aPid*/, const TMemSpyDriverProcessInspectionInfo& /*aCurrentInfo*/, const TMemSpyDriverProcessInspectionInfo& /*aHWMInfoIncShared*/, const TMemSpyDriverProcessInspectionInfo& /*aHWMInfoExcShared*/ ) - { -#ifdef _DEBUG - RDebug::Printf( "[MemSpy] CMemSpyViewThreadInfoItemMemoryTracking::HandleMemoryChangedL() - START - this: 0x%08x", this ); -#endif - - CMemSpyViewBase::RefreshL(); - iListBox->DrawDeferred(); - -#ifdef _DEBUG - RDebug::Printf( "[MemSpy] CMemSpyViewThreadInfoItemMemoryTracking::HandleMemoryChangedL() - END - this: 0x%08x", this ); -#endif - } - - -void CMemSpyViewThreadInfoItemMemoryTracking::OnCmdTrackingStartL() - { - CMemSpyThreadInfoMemoryTracking* item = static_cast< CMemSpyThreadInfoMemoryTracking* >( iInfoItem ); - item->TrackingStartL(); - } - - -void CMemSpyViewThreadInfoItemMemoryTracking::OnCmdTrackingStopL() - { - CMemSpyThreadInfoMemoryTracking* item = static_cast< CMemSpyThreadInfoMemoryTracking* >( iInfoItem ); - item->TrackingStopL(); - } - - -void CMemSpyViewThreadInfoItemMemoryTracking::OnCmdHWMResetL() - { - CMemSpyThreadInfoMemoryTracking* item = static_cast< CMemSpyThreadInfoMemoryTracking* >( iInfoItem ); - item->TrackingResetHWML(); - RefreshL(); - } - - -void CMemSpyViewThreadInfoItemMemoryTracking::OnCmdTotalWithSharedMemL() - { - CMemSpyThreadInfoMemoryTracking* item = static_cast< CMemSpyThreadInfoMemoryTracking* >( iInfoItem ); - item->TrackingSetTotalIncludesSharedMemoryL( ETrue ); - RefreshL(); - } - - -void CMemSpyViewThreadInfoItemMemoryTracking::OnCmdTotalWithoutSharedMemL() - { - CMemSpyThreadInfoMemoryTracking* item = static_cast< CMemSpyThreadInfoMemoryTracking* >( iInfoItem ); - item->TrackingSetTotalIncludesSharedMemoryL( EFalse ); - RefreshL(); - } - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CMemSpyViewThreadInfoItemMemoryTrackingCurrent::CMemSpyViewThreadInfoItemMemoryTrackingCurrent( CMemSpyEngine& aEngine, MMemSpyViewObserver& aObserver, CMemSpyThreadInfoContainer& aContainer ) -: CMemSpyViewThreadInfoItemGeneric( aEngine, aObserver, aContainer, EMemSpyThreadInfoItemTypeMemoryTracking ) - { - } - - -void CMemSpyViewThreadInfoItemMemoryTrackingCurrent::ConstructL( const TRect& aRect, CCoeControl& aContainer, TAny* aSelectionRune ) - { - CMemSpyViewThreadInfoItemGeneric::ConstructL( aRect, aContainer, aSelectionRune ); - - CMemSpyThreadInfoMemoryTracking* item = static_cast< CMemSpyThreadInfoMemoryTracking* >( iInfoItem ); - item->TrackingObserverAddL( *this ); - - // Reset the title - _LIT( KCustomTitle, "Current Statistics" ); - SetTitleL( KCustomTitle ); - } - - -TMemSpyViewType CMemSpyViewThreadInfoItemMemoryTrackingCurrent::ViewType() const - { - return EMemSpyViewTypeThreadInfoItemMemoryTrackingStatisticsCurrent; - } - - -CMemSpyViewBase* CMemSpyViewThreadInfoItemMemoryTrackingCurrent::PrepareParentViewL() - { - CMemSpyViewThreadInfoItemMemoryTracking* parent = new(ELeave) CMemSpyViewThreadInfoItemMemoryTracking( iEngine, iObserver, Container() ); - CleanupStack::PushL( parent ); - parent->ConstructL( Rect(), *Parent(), (TAny*) ViewType() ); - CleanupStack::Pop( parent ); - - // Stop observing changes - CMemSpyThreadInfoMemoryTracking* item = static_cast< CMemSpyThreadInfoMemoryTracking* >( iInfoItem ); - item->TrackingObserverRemove( *this ); - - return parent; - } - - -void CMemSpyViewThreadInfoItemMemoryTrackingCurrent::RefreshL() - { - SetListBoxModelL(); - CMemSpyViewBase::RefreshL(); - } - - -void CMemSpyViewThreadInfoItemMemoryTrackingCurrent::SetListBoxModelL() - { - CMemSpyThreadInfoMemoryTracking* item = static_cast< CMemSpyThreadInfoMemoryTracking* >( iInfoItem ); - MDesCArray* model = &item->InfoCurrent(); - - // Set up list box - CAknSettingStyleListBox* listbox = static_cast< CAknSettingStyleListBox* >( iListBox ); - listbox->Model()->SetItemTextArray( model ); - listbox->Model()->SetOwnershipType( ELbmDoesNotOwnItemArray ); - } - - -void CMemSpyViewThreadInfoItemMemoryTrackingCurrent::HandleMemoryChangedL( const TProcessId& /*aPid*/, const TMemSpyDriverProcessInspectionInfo& /*aCurrentInfo*/, const TMemSpyDriverProcessInspectionInfo& /*aHWMInfoIncShared*/, const TMemSpyDriverProcessInspectionInfo& /*aHWMInfoExcShared*/ ) - { - CMemSpyViewBase::RefreshL(); - } - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CMemSpyViewThreadInfoItemMemoryTrackingHWM::CMemSpyViewThreadInfoItemMemoryTrackingHWM( CMemSpyEngine& aEngine, MMemSpyViewObserver& aObserver, CMemSpyThreadInfoContainer& aContainer ) -: CMemSpyViewThreadInfoItemGeneric( aEngine, aObserver, aContainer, EMemSpyThreadInfoItemTypeMemoryTracking ) - { - } - - -void CMemSpyViewThreadInfoItemMemoryTrackingHWM::ConstructL( const TRect& aRect, CCoeControl& aContainer, TAny* aSelectionRune ) - { - CMemSpyViewThreadInfoItemGeneric::ConstructL( aRect, aContainer, aSelectionRune ); - - CMemSpyThreadInfoMemoryTracking* item = static_cast< CMemSpyThreadInfoMemoryTracking* >( iInfoItem ); - item->TrackingObserverAddL( *this ); - - // Reset the title - _LIT( KCustomTitle, "HWM Statistics" ); - SetTitleL( KCustomTitle ); - } - - -TMemSpyViewType CMemSpyViewThreadInfoItemMemoryTrackingHWM::ViewType() const - { - return EMemSpyViewTypeThreadInfoItemMemoryTrackingStatisticsHWM; - } - - -CMemSpyViewBase* CMemSpyViewThreadInfoItemMemoryTrackingHWM::PrepareParentViewL() - { - CMemSpyViewThreadInfoItemMemoryTracking* parent = new(ELeave) CMemSpyViewThreadInfoItemMemoryTracking( iEngine, iObserver, Container() ); - CleanupStack::PushL( parent ); - parent->ConstructL( Rect(), *Parent(), (TAny*) ViewType() ); - CleanupStack::Pop( parent ); - - // Stop observing changes - CMemSpyThreadInfoMemoryTracking* item = static_cast< CMemSpyThreadInfoMemoryTracking* >( iInfoItem ); - item->TrackingObserverRemove( *this ); - - return parent; - } - - -TBool CMemSpyViewThreadInfoItemMemoryTrackingHWM::HandleCommandL( TInt aCommand ) - { - TBool handled = ETrue; - // - switch ( aCommand ) - { - case EMemSpyCmdMemoryTrackingHWMReset: - OnCmdHWMResetL(); - break; - default: - handled = CMemSpyViewBase::HandleCommandL( aCommand ); - break; - } - // - return handled; - } - - -void CMemSpyViewThreadInfoItemMemoryTrackingHWM::RefreshL() - { - SetListBoxModelL(); - CMemSpyViewBase::RefreshL(); - } - - -void CMemSpyViewThreadInfoItemMemoryTrackingHWM::SetListBoxModelL() - { - CMemSpyThreadInfoMemoryTracking* item = static_cast< CMemSpyThreadInfoMemoryTracking* >( iInfoItem ); - MDesCArray* model = &item->InfoHWM(); - - // Set up list box - CAknSettingStyleListBox* listbox = static_cast< CAknSettingStyleListBox* >( iListBox ); - listbox->Model()->SetItemTextArray( model ); - listbox->Model()->SetOwnershipType( ELbmDoesNotOwnItemArray ); - } - - -void CMemSpyViewThreadInfoItemMemoryTrackingHWM::HandleMemoryChangedL( const TProcessId& /*aPid*/, const TMemSpyDriverProcessInspectionInfo& /*aCurrentInfo*/, const TMemSpyDriverProcessInspectionInfo& /*aHWMInfoIncShared*/, const TMemSpyDriverProcessInspectionInfo& /*aHWMInfoExcShared*/ ) - { - CMemSpyViewBase::RefreshL(); - } - - -void CMemSpyViewThreadInfoItemMemoryTrackingHWM::OnCmdHWMResetL() - { - CMemSpyThreadInfoMemoryTracking* item = static_cast< CMemSpyThreadInfoMemoryTracking* >( iInfoItem ); - item->TrackingResetHWML(); - } - - - - - - - - - - - - - - - - - - - - - - - - - - -CMemSpyViewThreadInfoItemMemoryTrackingPeak::CMemSpyViewThreadInfoItemMemoryTrackingPeak( CMemSpyEngine& aEngine, MMemSpyViewObserver& aObserver, CMemSpyThreadInfoContainer& aContainer ) -: CMemSpyViewThreadInfoItemGeneric( aEngine, aObserver, aContainer, EMemSpyThreadInfoItemTypeMemoryTracking ) - { - } - - -void CMemSpyViewThreadInfoItemMemoryTrackingPeak::ConstructL( const TRect& aRect, CCoeControl& aContainer, TAny* aSelectionRune ) - { - CMemSpyViewThreadInfoItemGeneric::ConstructL( aRect, aContainer, aSelectionRune ); - - CMemSpyThreadInfoMemoryTracking* item = static_cast< CMemSpyThreadInfoMemoryTracking* >( iInfoItem ); - item->TrackingObserverAddL( *this ); - - // Reset the title - _LIT( KCustomTitle, "Peak Statistics" ); - SetTitleL( KCustomTitle ); - } - - -TMemSpyViewType CMemSpyViewThreadInfoItemMemoryTrackingPeak::ViewType() const - { - return EMemSpyViewTypeThreadInfoItemMemoryTrackingStatisticsPeak; - } - - -CMemSpyViewBase* CMemSpyViewThreadInfoItemMemoryTrackingPeak::PrepareParentViewL() - { - CMemSpyViewThreadInfoItemMemoryTracking* parent = new(ELeave) CMemSpyViewThreadInfoItemMemoryTracking( iEngine, iObserver, Container() ); - CleanupStack::PushL( parent ); - parent->ConstructL( Rect(), *Parent(), (TAny*) ViewType() ); - CleanupStack::Pop( parent ); - - // Stop observing changes - CMemSpyThreadInfoMemoryTracking* item = static_cast< CMemSpyThreadInfoMemoryTracking* >( iInfoItem ); - item->TrackingObserverRemove( *this ); - - return parent; - } - - -TBool CMemSpyViewThreadInfoItemMemoryTrackingPeak::HandleCommandL( TInt aCommand ) - { - TBool handled = ETrue; - // - switch ( aCommand ) - { - default: - handled = CMemSpyViewBase::HandleCommandL( aCommand ); - break; - } - // - return handled; - } - - -void CMemSpyViewThreadInfoItemMemoryTrackingPeak::RefreshL() - { - SetListBoxModelL(); - CMemSpyViewBase::RefreshL(); - } - - -void CMemSpyViewThreadInfoItemMemoryTrackingPeak::SetListBoxModelL() - { - CMemSpyThreadInfoMemoryTracking* item = static_cast< CMemSpyThreadInfoMemoryTracking* >( iInfoItem ); - MDesCArray* model = &item->InfoPeak(); - - // Set up list box - CAknSettingStyleListBox* listbox = static_cast< CAknSettingStyleListBox* >( iListBox ); - listbox->Model()->SetItemTextArray( model ); - listbox->Model()->SetOwnershipType( ELbmDoesNotOwnItemArray ); - } - - -void CMemSpyViewThreadInfoItemMemoryTrackingPeak::HandleMemoryChangedL( const TProcessId& /*aPid*/, const TMemSpyDriverProcessInspectionInfo& /*aCurrentInfo*/, const TMemSpyDriverProcessInspectionInfo& /*aHWMInfoIncShared*/, const TMemSpyDriverProcessInspectionInfo& /*aHWMInfoExcShared*/ ) - { - CMemSpyViewBase::RefreshL(); - } - - - - - - - - - - - - - - - - - - - - - - - - - - -