diff -r 2b7283837edb -r 3104fc151679 uiservicetab/vimpstcmdprocess/src/cvimpstcmdfactory.cpp --- a/uiservicetab/vimpstcmdprocess/src/cvimpstcmdfactory.cpp Thu Aug 19 09:41:53 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,307 +0,0 @@ -/* -* Copyright (c) 2008 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: implementation for CVIMPSTCmdFactory -* -*/ - - -// INCLUDE FILES -#include "cvimpstcmdfactory.h" -#include "cvimpstprocessarray.h" -#include "cvimpstcmdcca.h" -#include "cvimpstcmdlogin.h" -#include "cvimpstcmdlogout.h" -#include "cvimpstcmdcancellogin.h" - -#include "uiservicetabtracer.h" - -#include "mvimpstcmdobserver.h" -#include "mvimpstengine.h" -#include "tvimpstconsts.h" -#include "cvimpststoragemanagerfactory.h" -#include "cvimpstcmdaddcontact.h" -#include "cvimpstcmddeletecontact.h" -#include "tvimpstconsts.h" -#include "cvimpstcmdchangeownstatus.h" -#include "cvimpstcmdchangeownmessage.h" -#include "cvimpstcmdsearch.h" -#include "cvimstcmdfriendrequest.h" -#include "cvimpstcmdchangeownavtar.h" -#include "cvimpstcmdcloseconversation.h" -#include "cvimpstcmdaddtopbk.h" -#include "cvimpstcmdprocessselectedcontact.h" -#include "cvimpstcmdblockcontact.h" -#include "cvimpstcmdunblockcontact.h" -#include "cvimpstcmdfetchblockedlist.h" - - -// ================= MEMBER FUNCTIONS ======================= - - -// -------------------------------------------------------------------------- -// CVIMPSTCmdFactory::CVIMPSTCmdFactory -// -------------------------------------------------------------------------- -// -CVIMPSTCmdFactory::CVIMPSTCmdFactory(MVIMPSTEngine& aEngine) : -iEngine(aEngine) - { - } - - -// -------------------------------------------------------------------------- -// CVIMPSTCmdFactory::ConstructL -// -------------------------------------------------------------------------- -// -void CVIMPSTCmdFactory::ConstructL() - { - TRACER_AUTO; - TUint32 serviceId = iEngine.ServiceId(); - - //Make sure we initialise the Storage view for this service - HBufC* storeName = HBufC::NewLC( KVIMPSTUISPSMaxPropertyLength ); - - TPtr storeNamePtr( storeName->Des() ); - - iEngine.ContactStoreIdL(storeNamePtr); - - CVIMPSTStorageManagerFactory::InitialiseViewL(serviceId, *storeName, iEngine.ServiceName()); - - CleanupStack::PopAndDestroy(); //storeName - - iEngine.IntializeStorageL(); - - - //create the array process - iArrayProcess = CVIMPSTProcessArray::NewL( iEngine ); - - iEngine.RegisterServiceSessionObserverL(this); - - } - - -// -------------------------------------------------------------------------- -// CVIMPSTCmdFactory::NewL -// -------------------------------------------------------------------------- -// -CVIMPSTCmdFactory* CVIMPSTCmdFactory::NewL(MVIMPSTEngine& aEngine) - { - CVIMPSTCmdFactory* self = new (ELeave) CVIMPSTCmdFactory(aEngine); - CleanupStack::PushL(self); - self->ConstructL(); - CleanupStack::Pop(self); - return self; - } - - -// -------------------------------------------------------------------------- -// CVIMPSTCmdFactory::~CVIMPSTCmdFactory -// -------------------------------------------------------------------------- -// -CVIMPSTCmdFactory::~CVIMPSTCmdFactory() - { - TRACER_AUTO; - iEngine.UnIntializeStorage(); - iEngine.UnRegisterServiceSessionObserver(this); - - iObservers.Reset(); - iObservers.Close(); - - delete iArrayProcess; - iArrayProcess = NULL; - - } - - -// -------------------------------------------------------------------------- -// CVIMPSTCmdFactory::CreateCommandForIdL -// -------------------------------------------------------------------------- -// -MVIMPSTCmd* CVIMPSTCmdFactory::CreateCommandForIdL( - TImCommandId aCommandId,TAny* aData /*NULL*/) - { - TRACER_AUTO; - MVIMPSTCmd* commd = NULL; - - //Instantiate appropriate command - switch ( aCommandId ) - { - case ELoginService: - { - commd = CVIMPSTCmdLogin::NewL(aCommandId,*(TUint32*)aData, iEngine); - break; - } - - case ELogoutService: - { - commd = CVIMPSTCmdLogout::NewL(aCommandId,*(TUint32*)aData, iEngine); - break; - } - case ELaunchCCA: - { - commd = CVIMPSTCmdCCA::NewL(aCommandId, - (*(TLaunchCCAData*)aData).iIndex, - (*(TLaunchCCAData*)aData).iConnection, - *iArrayProcess, - iEngine ); - break; - - } - case EAddContact: - { - commd = CVIMPSTCmdAddContact::NewL(aCommandId,*(TDesC*) aData, iEngine); - break; - - } - case EDeleteContact: - { - commd = CVIMPSTCmdDeleteContact::NewL(aCommandId,*(MVPbkContactLink**) aData, iEngine); - break; - - } - case EChangeOwnStatus: - { - commd = CVIMPSTCmdChangeOwnStatus::NewL(aCommandId,*(TStatusAndStatusText*) aData, iEngine); - break; - - } - case EChangeOwnMessage: - { - commd = CVIMPSTCmdChangeOwnMessage::NewL(aCommandId,*(TStatusAndStatusText*) aData, iEngine); - break; - - } - case ESearch: - { - commd = CVIMPSTCmdSearch::NewL(aCommandId,*(RArray*) aData, iEngine); - break; - - } - case EFriendAccpeted: - case EFriendRejected: - { - commd = CVIMPSTCmdFriendRequest::NewL(aCommandId,*(TDesC*) aData, iEngine); - break; - } - case EChangeOwnAvtar: - { - commd = CVIMPSTCmdChangeOwnAvtar::NewL(aCommandId,*(TAvatarData*) aData, iEngine); - break; - } - case ECloseConversation: - { - commd = CVIMPSTCmdCloseConversation::NewL(aCommandId,*(TDesC*) aData, iEngine); - break; - } - - case EAddToPbk: - { - commd = CVIMPSTCmdAddToPbk::NewL(aCommandId,*(MVIMPSTStorageContact*) aData, iEngine); - break; - } - case ECancelLogin: - { - commd = CVIMPSTCmdCancelLogin::NewL(aCommandId ,iEngine); - break; - } - case ECmdProcessAcceptedContactNew: - case ECmdProcessSelectedContactNew: - case ECmdProcessAcceptedContactExist: - case ECmdProcessSelectedContactExist: - { - commd = CVIMPSTCmdProcessSelectedContact::NewL( aCommandId, *(TVPbkSelectedData*)aData, iEngine ); - break; - } - case ECmdBlockContact: - { - commd = CVIMPSTCmdBlockContact::NewL(aCommandId,*(TDesC*) aData, *iArrayProcess , iEngine); - break; - - } - case ECmdUnBlockContact: - { - commd = CVIMPSTCmdUnBlockContact::NewL(aCommandId,*(TDesC*) aData, iEngine); - break; - - } - case EFetchBlockedList: - { - commd = CVIMPSTCmdFetchBlockedContactList::NewL(aCommandId, iEngine); - break; - } - default: - { - break; - } - - } - - return commd; - - } - -// -------------------------------------------------------------------------- -// CVIMPSTCmdFactory::HandleServiceEventL -// -------------------------------------------------------------------------- -// -void CVIMPSTCmdFactory::HandleServiceEventL - ( TVIMPSTEnums::TVIMPSTRegistrationState aState,TInt aServiceError ) - { - TRACER_AUTO; - // need not to store update complete state - iArrayProcess->SetLoginStateL( aState ); - for( TInt index( 0 ); index < iObservers.Count(); ++index ) - { - iObservers[index]->HandleCommandEventL(aState,aServiceError); - } - - } -// -------------------------------------------------------------------------- -// CVIMPSTCmdFactory::AddObserver -// -------------------------------------------------------------------------- -// -void CVIMPSTCmdFactory::AddObserverL(MVIMPSTCmdObserver* aObserver) - { - if( iObservers.Find( aObserver ) == KErrNotFound ) - { - User::LeaveIfError( iObservers.Append( aObserver ) ); - } - - } -// -------------------------------------------------------------------------- -// CVIMPSTCmdFactory::RemoveObserver -// -------------------------------------------------------------------------- -// -void CVIMPSTCmdFactory::RemoveObserver(MVIMPSTCmdObserver* aObserver) - { - - TInt index( iObservers.Find( aObserver) ); - - if( index != KErrNotFound ) - { - iObservers.Remove( index ); - } - - } - - -// -------------------------------------------------------------------------- -// CVIMPSTCmdFactory::GetProcessInterface -// -------------------------------------------------------------------------- -// -MVIMPSTProcessArray& CVIMPSTCmdFactory::GetProcessInterface() - { - return *iArrayProcess; - } -// End of File -