diff -r 0ff24a8f6ca2 -r 98307c651589 memspy/Engine/Source/Helpers/MemSpyEngineHelperKernelContainers.cpp --- a/memspy/Engine/Source/Helpers/MemSpyEngineHelperKernelContainers.cpp Fri Aug 27 11:37:29 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,542 +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 - -// User includes -#include -#include -#include -#include -#include -#include - -// Driver includes -#include -#include -#include - -// Constants -const TInt KMaxGenericHandleCount = 1024 * 2; -_LIT( KMemSpyMarkerKernelContainer, "<%SMEMSPY_KERNEL_CONTAINER_%02d>" ); -_LIT( KMemSpyMarkerKernelContainersAll, "<%SMEMSPY_KERNEL_CONTAINERS>" ); - - - -CMemSpyEngineHelperKernelContainers::CMemSpyEngineHelperKernelContainers( CMemSpyEngine& aEngine ) -: iEngine( aEngine ) - { - } - - -CMemSpyEngineHelperKernelContainers::~CMemSpyEngineHelperKernelContainers() - { - } - - -void CMemSpyEngineHelperKernelContainers::ConstructL() - { - } - - -CMemSpyEngineHelperKernelContainers* CMemSpyEngineHelperKernelContainers::NewL( CMemSpyEngine& aEngine ) - { - CMemSpyEngineHelperKernelContainers* self = new(ELeave) CMemSpyEngineHelperKernelContainers( aEngine ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - return self; - } - - -EXPORT_C CMemSpyEngineGenericKernelObjectList* CMemSpyEngineHelperKernelContainers::ObjectsForSpecificContainerL( TMemSpyDriverContainerType aForContainer ) - { - CMemSpyEngineGenericKernelObjectList* list = CMemSpyEngineGenericKernelObjectList::NewLC( aForContainer, iEngine ); - AddObjectsFromContainerL( *list, aForContainer ); - CleanupStack::Pop( list ); - return list; - } - - -EXPORT_C CMemSpyEngineGenericKernelObjectContainer* CMemSpyEngineHelperKernelContainers::ObjectsAllL() - { - CMemSpyEngineGenericKernelObjectContainer* container = CMemSpyEngineGenericKernelObjectContainer::NewLC(); - // - for( TInt i=EMemSpyDriverContainerTypeFirst; i<=EMemSpyDriverContainerTypeLast; i++ ) - { - const TMemSpyDriverContainerType type = static_cast< TMemSpyDriverContainerType >( i ); - // - CMemSpyEngineGenericKernelObjectList* list = CMemSpyEngineGenericKernelObjectList::NewLC( type, iEngine ); - AddObjectsFromContainerL( *list, type ); - container->AddListL( list ); - CleanupStack::Pop( list ); - } - // - CleanupStack::Pop( container ); - return container; - } - - -CMemSpyEngineGenericKernelObjectContainer* CMemSpyEngineHelperKernelContainers::ObjectsAllLightweightL() - { - CMemSpyEngineGenericKernelObjectContainer* container = CMemSpyEngineGenericKernelObjectContainer::NewLC(); - // - for( TInt i=EMemSpyDriverContainerTypeFirst; i<=EMemSpyDriverContainerTypeLast; i++ ) - { - const TMemSpyDriverContainerType type = static_cast< TMemSpyDriverContainerType >( i ); - // - CMemSpyEngineGenericKernelObjectList* list = CMemSpyEngineGenericKernelObjectList::NewLC( type, iEngine ); - AddObjectsFromContainerL( *list, type, EFalse ); - container->AddListL( list ); - CleanupStack::Pop( list ); - } - // - CleanupStack::Pop( container ); - return container; - } - - -TMemSpyDriverContainerType CMemSpyEngineHelperKernelContainers::MapToType( TObjectType aType ) - { - TMemSpyDriverContainerType ret = EMemSpyDriverContainerTypeUnknown; - // - if ( aType >= EMemSpyDriverContainerTypeFirst && aType <= EMemSpyDriverContainerTypeLast ) - { - ret = (TMemSpyDriverContainerType) aType; - } - // - return ret; - } - - -EXPORT_C void CMemSpyEngineHelperKernelContainers::OutputL( const CMemSpyEngineGenericKernelObjectContainer& aContainer ) const - { - aContainer.OutputL( iEngine.Sink() ); - } - - -CMemSpyEngine& CMemSpyEngineHelperKernelContainers::Engine() const - { - return iEngine; - } - - -void CMemSpyEngineHelperKernelContainers::AddObjectsFromContainerL( CMemSpyEngineGenericKernelObjectList& aList, TMemSpyDriverContainerType aContainer, TBool aGetInfo ) - { - TAny* handles[KMaxGenericHandleCount]; - TInt c = KMaxGenericHandleCount; - - TInt r = iEngine.Driver().GetContainerHandles( aContainer, handles, c ); - if ( r == KErrNone ) - { - if ( c > 0 ) - { - if (c > KMaxGenericHandleCount) - { - c = KMaxGenericHandleCount; - } - - TMemSpyDriverHandleInfoGeneric info; - for (TInt i=0; iConstructL( aEngine ); - return self; - } - - -EXPORT_C TInt CMemSpyEngineGenericKernelObjectList::Count() const - { - return iHandles.Count(); - } - - -EXPORT_C const TMemSpyDriverHandleInfoGeneric& CMemSpyEngineGenericKernelObjectList::At( TInt aIndex ) const - { - return iItems[ aIndex ]; - } - - -EXPORT_C TMemSpyDriverContainerType CMemSpyEngineGenericKernelObjectList::Type() const - { - return iType; - } - -EXPORT_C TInt CMemSpyEngineGenericKernelObjectList::Size() const - { - return iSize; - } - -EXPORT_C TInt CMemSpyEngineGenericKernelObjectList::ItemsCount() const - { - return iItems.Count(); - } - - -EXPORT_C TPtrC CMemSpyEngineGenericKernelObjectList::TypeAsString( TMemSpyDriverContainerType aType ) - { - _LIT( KTypeUnknown, "Unknown Type" ); - _LIT( KTypeThread, "Thread" ); - _LIT( KTypeProcess, "Process" ); - _LIT( KTypeChunk, "Chunk" ); - _LIT( KTypeLibrary, "Library" ); - _LIT( KTypeSemaphore, "Semaphore" ); - _LIT( KTypeMutex, "Mutex" ); - _LIT( KTypeTimer, "Timer" ); - _LIT( KTypeServer, "Server" ); - _LIT( KTypeSession, "Session" ); - _LIT( KTypeLogicalDevice, "Logical Device" ); - _LIT( KTypePhysicalDevice, "Physical Device" ); - _LIT( KTypeLogicalChannel, "Logical Channel" ); - _LIT( KTypeChangeNotifier, "Change Notifier" ); - _LIT( KTypeUndertaker, "Undertaker" ); - _LIT( KTypeMsgQueue, "Msg. Queue" ); - _LIT( KTypePropertyRef, "Property Ref." ); - _LIT( KTypeCondVar, "Conditional Var." ); - // - TPtrC pType( KTypeUnknown ); - // - switch( aType ) - { - case EMemSpyDriverContainerTypeThread: - pType.Set( KTypeThread ); - break; - case EMemSpyDriverContainerTypeProcess: - pType.Set( KTypeProcess ); - break; - case EMemSpyDriverContainerTypeChunk: - pType.Set( KTypeChunk ); - break; - case EMemSpyDriverContainerTypeLibrary: - pType.Set( KTypeLibrary ); - break; - case EMemSpyDriverContainerTypeSemaphore: - pType.Set( KTypeSemaphore ); - break; - case EMemSpyDriverContainerTypeMutex: - pType.Set( KTypeMutex ); - break; - case EMemSpyDriverContainerTypeTimer: - pType.Set( KTypeTimer ); - break; - case EMemSpyDriverContainerTypeServer: - pType.Set( KTypeServer ); - break; - case EMemSpyDriverContainerTypeSession: - pType.Set( KTypeSession ); - break; - case EMemSpyDriverContainerTypeLogicalDevice: - pType.Set( KTypeLogicalDevice ); - break; - case EMemSpyDriverContainerTypePhysicalDevice: - pType.Set( KTypePhysicalDevice ); - break; - case EMemSpyDriverContainerTypeLogicalChannel: - pType.Set( KTypeLogicalChannel ); - break; - case EMemSpyDriverContainerTypeChangeNotifier: - pType.Set( KTypeChangeNotifier ); - break; - case EMemSpyDriverContainerTypeUndertaker: - pType.Set( KTypeUndertaker ); - break; - case EMemSpyDriverContainerTypeMsgQueue: - pType.Set( KTypeMsgQueue ); - break; - case EMemSpyDriverContainerTypePropertyRef: - pType.Set( KTypePropertyRef ); - break; - case EMemSpyDriverContainerTypeCondVar: - pType.Set( KTypeCondVar ); - break; - - default: - break; - } - // - return pType; - } - - -EXPORT_C TPtrC CMemSpyEngineGenericKernelObjectList::Name() const - { - return TPtrC( *iName ); - } - - -EXPORT_C void CMemSpyEngineGenericKernelObjectList::OutputL( CMemSpyEngineOutputSink& aSink ) const - { - // Start marker - aSink.OutputLineFormattedL( KMemSpyMarkerKernelContainer, &KNullDesC, iType ); - - TBuf<70> itemPrefix; - TBuf buf; - const TInt entryCount = Count(); - const TInt64 size( iSize * entryCount ); - const TMemSpySizeText sizeText( MemSpyEngineUtils::FormatSizeText( size, 0 ) ); - // - _LIT(KContainerTitle, "CONTAINER \'%S\' => %d item(s), %S"); - const TPtrC pType( TypeAsString( iType ) ); - buf.Format(KContainerTitle, &pType, entryCount, &sizeText); - aSink.OutputSectionHeadingL( buf, '=' ); - // - for( TInt entryIndex=0; entryIndexDes() ); - // - const TPtrC pType( TypeAsString( iType ) ); - // - pName.Format( KNameFormat, &pType, count ); - // - if ( count == 0 || count > 1 ) - { - pName.Append( _L("s") ); - } - - pName.AppendFormat( _L(", %S"), &sizeText ); - } - - - - - - - - - - - - - - - - - - - - - - - - - -CMemSpyEngineGenericKernelObjectContainer::CMemSpyEngineGenericKernelObjectContainer() -: iItems( 25 ) - { - } - - -EXPORT_C CMemSpyEngineGenericKernelObjectContainer::~CMemSpyEngineGenericKernelObjectContainer() - { - iItems.ResetAndDestroy(); - iItems.Close(); - } - - -void CMemSpyEngineGenericKernelObjectContainer::ConstructL() - { - } - - -CMemSpyEngineGenericKernelObjectContainer* CMemSpyEngineGenericKernelObjectContainer::NewLC() - { - CMemSpyEngineGenericKernelObjectContainer* self = new(ELeave) CMemSpyEngineGenericKernelObjectContainer(); - CleanupStack::PushL( self ); - self->ConstructL(); - return self; - } - - -EXPORT_C TInt CMemSpyEngineGenericKernelObjectContainer::Count() const - { - return iItems.Count(); - } - - -EXPORT_C const CMemSpyEngineGenericKernelObjectList& CMemSpyEngineGenericKernelObjectContainer::At( TInt aIndex ) const - { - return *iItems[ aIndex ]; - } - - -EXPORT_C void CMemSpyEngineGenericKernelObjectContainer::OutputL( CMemSpyEngineOutputSink& aSink ) const - { - // Start marker - aSink.OutputLineFormattedL( KMemSpyMarkerKernelContainersAll, &KNullDesC ); - - const TInt listCount= Count(); - for( TInt listIndex=0; listIndex