memspyui/ui/avkon/src/MemSpyUiUtils.cpp
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Thu, 27 May 2010 12:52:19 +0300
changeset 19 4b22a598b890
parent 17 4f2773374eff
child 31 e7a04a6385be
permissions -rw-r--r--
Revision: 201019 Kit: 2010121

/*
* 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 "MemSpyUiUtils.h"

// System includes
#include <coemain.h>
#include <memspyui.rsg>




void MemSpyUiUtils::Format( TDes& aBuf, TInt aResourceId, ...)
    {
	VA_LIST list;
    VA_START(list,aResourceId);
	TBuf<128> format;
	CCoeEnv::Static()->ReadResource( format, aResourceId );
	aBuf.FormatList( format, list );
    }


void MemSpyUiUtils::GetErrorText( TDes& aBuf, TInt aError )
    {
    if  ( aError == KErrNotSupported )
        {
        _LIT( KMemSpyErrorText, "Not Supported" );
        aBuf = KMemSpyErrorText;
        }
    else if ( aError == KErrNotReady )
        {
        _LIT( KMemSpyErrorText, "Not Ready" );
        aBuf = KMemSpyErrorText;
        }
    else if ( aError == KErrNotFound )
        {
        _LIT( KMemSpyErrorText, "Missing" );
        aBuf = KMemSpyErrorText;
        }
    else if ( aError == KErrGeneral )
        {
        _LIT( KMemSpyErrorText, "General Error" );
        aBuf = KMemSpyErrorText;
        }
    else
        {
        _LIT( KMemSpyItemValueError, "Error: %d" );
        aBuf.Format( KMemSpyItemValueError, aError );
        }
    }

HBufC* MemSpyUiUtils::FormatItem( const TDesC& aCaption )
	{
	HBufC* retBuf = HBufC::NewL( 32 );
	TPtr pRetBuf( retBuf->Des() );
	pRetBuf.Zero();
	pRetBuf.Append( _L("\t") );
	pRetBuf.Append( aCaption );
	return retBuf;
	}

TDesC& MemSpyUiUtils::ThreadInfoItemNameByType( TMemSpyThreadInfoItemType aType )
	{	
	TPtrC pType( KTypeUnknown );
	
	switch( aType )
		{
		case EMemSpyThreadInfoItemTypeFirst:			
			pType.Set(KGeneral);
			break;			
		case EMemSpyThreadInfoItemTypeHeap:			
			pType.Set(KHeap);
			break;				
		case EMemSpyThreadInfoItemTypeStack:			
			pType.Set(KStack);
			break;			
		case EMemSpyThreadInfoItemTypeChunk:			
			pType.Set(KChunks);
			break;
		case EMemSpyThreadInfoItemTypeCodeSeg:
			pType.Set(KCodeSegs);
			break;
		case EMemSpyThreadInfoItemTypeOpenFiles:
			pType.Set(KOpenFiles);
			break;	
		case EMemSpyThreadInfoItemTypeActiveObject:
			pType.Set(KActiveObjects);
			break;
		case EMemSpyThreadInfoItemTypeOwnedThreadHandles:
			pType.Set(KThreadHandlers);
			break;
		case EMemSpyThreadInfoItemTypeOwnedProcessHandles:
			pType.Set(KProcessHandlers);
			break;
		case EMemSpyThreadInfoItemTypeServer:
			pType.Set(KServers);
			break;
		case EMemSpyThreadInfoItemTypeSession:
			pType.Set(KConnections);
			break;
		case EMemSpyThreadInfoItemTypeSemaphore:
			pType.Set(KSemaphores);
			break;
		case EMemSpyThreadInfoItemTypeOtherThreads:
			pType.Set(KThreadReferences);
			break;
		case EMemSpyThreadInfoItemTypeOtherProcesses:
			pType.Set(KProcessReferences);
			break;
		case EMemSpyThreadInfoItemTypeMutex:
			pType.Set(KMutexes);
			break;
		case EMemSpyThreadInfoItemTypeTimer:
			pType.Set(KTimers);					
			break;
		case EMemSpyThreadInfoItemTypeLogicalChannel:
			pType.Set(KDD);
			break;
		case EMemSpyThreadInfoItemTypeChangeNotifier:
			pType.Set(KChangeNotif);
			break;
		case EMemSpyThreadInfoItemTypeUndertaker:
			pType.Set(KUndertakers);
			break;				
		case EMemSpyThreadInfoItemTypeLDD:
			pType.Set(KLogicalDrivers);
			break;
		case EMemSpyThreadInfoItemTypePDD:
			pType.Set(KPhysicalDrivers);
			break;
			
	    default:	       
	    	break;  
		}
	return pType;
	}