diff -r 5db69f4c3d06 -r b048e15729d6 memspyui/memspywindowserverhelper/src/MemSpyEngineHelperWindowServerImpl.cpp --- a/memspyui/memspywindowserverhelper/src/MemSpyEngineHelperWindowServerImpl.cpp Mon Aug 23 15:50:54 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,232 +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 "MemSpyEngineHelperWindowServerImpl.h" - -// System includes -#include -#include - -// ============================= LOCAL FUNCTIONS =============================== - -EXPORT_C MMemSpyEngineHelperWindowServer* NewMemSpyEngineHelperWindowServerImplL() - { - return CMemSpyEngineHelperWindowServerImpl::NewL(); - } - - -// ============================ MEMBER FUNCTIONS =============================== - -CMemSpyEngineHelperWindowServerImpl::CMemSpyEngineHelperWindowServerImpl() - { - } - - -CMemSpyEngineHelperWindowServerImpl::~CMemSpyEngineHelperWindowServerImpl() - { - iWsSession.Close(); - } - - -void CMemSpyEngineHelperWindowServerImpl::ConstructL() - { - User::LeaveIfError( iWsSession.Connect() ); - } - - -EXPORT_C CMemSpyEngineHelperWindowServerImpl* CMemSpyEngineHelperWindowServerImpl::NewL() - { - CMemSpyEngineHelperWindowServerImpl* self = new(ELeave) CMemSpyEngineHelperWindowServerImpl(); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - return self; - } - - -EXPORT_C MMemSpyEngineWindowGroupList* CMemSpyEngineHelperWindowServerImpl::WindowGroupListL() - { - CMemSpyEngineWindowGroupListImpl* list = CMemSpyEngineWindowGroupListImpl::NewLC(); - // - RArray groups; - CleanupClosePushL( groups ); - // - GetWindowGroupListL( groups ); - // - const TInt count = groups.Count(); - for( TInt i = 0; i < count; i++ ) - { - list->AddItemL( groups[ i ] ); - } - // - CleanupStack::PopAndDestroy( &groups ); - - // Done - CleanupStack::Pop( list ); - return list; - } - - -EXPORT_C void CMemSpyEngineHelperWindowServerImpl::GetWindowGroupListL( RArray& aWindowGroups ) - { - TInt count; - User::LeaveIfError( count = iWsSession.NumWindowGroups() ); - RArray array; - CleanupClosePushL( array ); - User::LeaveIfError( iWsSession.WindowGroupList( &array ) ); - for (TInt i =0; i < count; i++ ) - { - TMemSpyEngineWindowGroupBasicInfo group; - group.iId = array[i].iId; - TThreadId threadId; - RThread thread; - iWsSession.GetWindowGroupClientThreadId( array[i].iId, threadId ); - group.iThreadId = threadId; - group.iOrdinalPosition = i; - if ( !thread.Open( threadId ) ) - { - _LIT( KLineFormatSpec, "%d\t%S" ); - group.iFullName.Format( KLineFormatSpec, group.iId, &thread.Name() ); - } - else - { - _LIT( KLineFormatSpec, "%d\t" ); - group.iFullName.Format( KLineFormatSpec, group.iId ); - } - thread.Close(); - aWindowGroups.AppendL( group ); - } - CleanupStack::PopAndDestroy( &array ); - } - - -EXPORT_C void CMemSpyEngineHelperWindowServerImpl::GetWindowGroupDetailsL( TInt aWindowGroupId, TMemSpyEngineWindowGroupDetails& aWindowGroupDetails ) - { - TThreadId threadId; - RThread thread; - iWsSession.GetWindowGroupClientThreadId( aWindowGroupId, threadId ); - aWindowGroupDetails.iThreadId = threadId; - aWindowGroupDetails.iId = aWindowGroupId; - if ( !thread.Open( threadId ) ) - { - aWindowGroupDetails.iFullName.Copy( thread.Name() ); - } - else - { - aWindowGroupDetails.iFullName.Copy( _L("") ); - } - thread.Close(); - aWindowGroupDetails.iPriority = iWsSession.GetWindowGroupOrdinalPriority( aWindowGroupId ); - aWindowGroupDetails.iWindowGroupHandle = iWsSession.GetWindowGroupHandle( aWindowGroupId ); - CApaWindowGroupName* wgName = CApaWindowGroupName::NewLC( iWsSession, aWindowGroupId ); - aWindowGroupDetails.iUID = wgName->AppUid(); - aWindowGroupDetails.iIsBusy = wgName->IsBusy(); - aWindowGroupDetails.iIsSystem = wgName->IsSystem(); - aWindowGroupDetails.iIsHidden = wgName->Hidden(); - aWindowGroupDetails.iCaption = wgName->Caption(); - aWindowGroupDetails.iDocName = wgName->DocName(); - CleanupStack::PopAndDestroy( wgName ); - } - - -EXPORT_C void CMemSpyEngineHelperWindowServerImpl::SwitchToL( TInt aWindowGroupId ) - { - TApaTask task( iWsSession ); - CApaWindowGroupName* wgName = CApaWindowGroupName::NewLC( iWsSession, aWindowGroupId ); - task.SetWgId( aWindowGroupId ); - if ( wgName->Hidden() ) - { - User::Leave( KErrGeneral ); - } - if ( !task.Exists() ) - { - User::Leave( KErrNotFound ); - } - task.BringToForeground(); - CleanupStack::PopAndDestroy( wgName ); - } - - - - - - - - - -CMemSpyEngineWindowGroupListImpl::CMemSpyEngineWindowGroupListImpl() - { - } - - -CMemSpyEngineWindowGroupListImpl::~CMemSpyEngineWindowGroupListImpl() - { - iItems.Close(); - } - - -void CMemSpyEngineWindowGroupListImpl::ConstructL() - { - } - - -CMemSpyEngineWindowGroupListImpl* CMemSpyEngineWindowGroupListImpl::NewLC() - { - CMemSpyEngineWindowGroupListImpl* self = new(ELeave) CMemSpyEngineWindowGroupListImpl(); - CleanupStack::PushL( self ); - self->ConstructL(); - return self; - } - - -EXPORT_C TInt CMemSpyEngineWindowGroupListImpl::Count() const - { - return iItems.Count(); - } - - -EXPORT_C const TMemSpyEngineWindowGroupBasicInfo& CMemSpyEngineWindowGroupListImpl::At( TInt aIndex ) const - { - return iItems[ aIndex ]; - } - - -EXPORT_C TInt CMemSpyEngineWindowGroupListImpl::ItemIndex( const TMemSpyEngineWindowGroupBasicInfo& /*aEntry*/ ) const - { - TInt ret = KErrNotFound; - return ret; - } - - -void CMemSpyEngineWindowGroupListImpl::AddItemL( TMemSpyEngineWindowGroupBasicInfo& aItem ) - { - iItems.AppendL( aItem ); - } - - -EXPORT_C TInt CMemSpyEngineWindowGroupListImpl::MdcaCount() const - { - return Count(); - } - - -EXPORT_C TPtrC CMemSpyEngineWindowGroupListImpl::MdcaPoint( TInt aIndex ) const - { - return TPtrC( At( aIndex ).iFullName ); - } - -