diff -r 000000000000 -r 094583676ce7 wvuing/wvuiprocess/Src/CCAProcessManager.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/wvuing/wvuiprocess/Src/CCAProcessManager.cpp Thu Dec 17 08:41:52 2009 +0200 @@ -0,0 +1,500 @@ +/* +* Copyright (c) 2006 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: Process Manager to get process interfaces e.g. login,settings +* +*/ + + + +// INCLUDE FILES +#include "CCAProcessManager.h" + +#include "MCALoggerHeadersInterface.h" +#include "CCARecordedChatsPC.h" +#include "CCARecordedChatsArrayPC.h" +#include "MCAProcessManager.h" +#include "MCAMainViewArrayPC.h" +#include "CCALoginPC.h" + +#include "CCASettingsPC.h" + +#include "CCAConversationPC.h" + +#include "CCAEngine.h" +#include "CAPresenceManager.h" + +#include "MCAInvite.h" +#include "MCAChatInterface.h" +#include "CCAStorageManagerFactory.h" +#include "mcamessageerrorinformer.h" +#include "MCAStoredContact.h" +#include "MCAStoredContacts.h" + + +#include "CCAContactEditPC.h" +#include "CCABlockingPC.h" +#include "CCASearchDataPC.h" +#include "CCASearchInterfacePC.h" +#include "MCASearchInterface.h" +#include "ccareactiveauthpc.h" +#include "CCAMessageFlowHandlerPC.h" +#include "CCAInvitationPC.h" +#include "MCAInvitationPC.h" +#include "CCAGroupPC.h" +#include "CCAGroupUtilsPC.h" +#include "CCAInviteEditorPC.h" +#include "MCAInviteEditorPC.h" +#include "CCAGlobalNotificationObserverPC.h" +#include "MCAGlobalNotificationObserverPC.h" +#include "MCAGroupPropertiesPC.h" +#include "CCAGroupPropertiesPC.h" +#include "CCAApplicationNGPC.h" + +#include "CCAOpenChatsPC.h" + +// FORWARD DECLARATIONS +class MCABackgroundInterface; + +//const declarations +const TUid KUidChatClient = {0x101F4673}; + + + +// ============================ MEMBER FUNCTIONS =============================== + + +// ----------------------------------------------------------------------------- +// CCAProcessManager::NewL +// ----------------------------------------------------------------------------- +// + +EXPORT_C CCAProcessManager* CCAProcessManager::NewL() + { + CCAProcessManager* self = new ( ELeave ) CCAProcessManager(); + + CleanupStack::PushL( self ); + self->ConstructL(); + CleanupStack::Pop( self ); + + return self; + } + +// ----------------------------------------------------------------------------- +// CCAProcessManager::CreateOpenChatsPCL +// ----------------------------------------------------------------------------- +// + +EXPORT_C MCAOpenChatsPC* CCAProcessManager::CreateOpenChatsPCL( + const RPointerArray& aOpenChatsArray ) + { + + MCAOpenChatsPC* openChatsPC = CCAOpenChatsPC::NewL( aOpenChatsArray ); + + //Ownership is transfered to the caller. + return openChatsPC; + } + +// ----------------------------------------------------------------------------- +// CCAProcessManager::GetEngine +// ----------------------------------------------------------------------------- +// + +EXPORT_C CCAEngine* CCAProcessManager::GetEngine() const + { + return iEngine; + } + +// ----------------------------------------------------------------------------- +// CCAProcessManager::GetLogInInterface +// ----------------------------------------------------------------------------- +// + +EXPORT_C MCALoginPC* CCAProcessManager::GetLogInInterface( ) const + { + return iCCALogIn; + } + +// ----------------------------------------------------------------------------- +// CCAProcessManager::GetSettingsInterface +// ----------------------------------------------------------------------------- +// + +EXPORT_C MCASettingsPC* CCAProcessManager::GetSettingsInterface( ) const + { + return iSettingsPC; + } + +// ----------------------------------------------------------------------------- +// CCAProcessManager::GetInvitationsInterface +// ----------------------------------------------------------------------------- +// + +EXPORT_C MCAInvitationPC* CCAProcessManager::GetInvitationsInterface( ) const + { + return iInvitationsPC; + } + +// ----------------------------------------------------------------------------- +// CCAProcessManager::GetArrayInterface +// ----------------------------------------------------------------------------- +// + +EXPORT_C MCAMainViewArrayPC* CCAProcessManager::GetArrayInterface() const + { + return iCCALogIn->GetArrayInterface(); + } + +// ----------------------------------------------------------------------------- +// CCAProcessManager::GetConversationInterface +// ----------------------------------------------------------------------------- +// +EXPORT_C MCAConversationPC* CCAProcessManager::GetConversationInterface( ) const + { + return iConversationPC; + } + +// ----------------------------------------------------------------------------- +// CCAProcessManager::GetGroupInterface +// ----------------------------------------------------------------------------- +// +EXPORT_C MCAGroupPC* CCAProcessManager::GetGroupInterface( ) const + { + return iGroupPC; + } +// ----------------------------------------------------------------------------- +// CCAProcessManager::GetGroupUtilsInterface +// ----------------------------------------------------------------------------- +// +EXPORT_C MCAGroupUtilsPC* CCAProcessManager::GetGroupUtilsInterface( ) const + { + return iGroupUtilsPC; + } + + +// ----------------------------------------------------------------------------- +// CCAProcessManager::GetContactEditInterface +// ----------------------------------------------------------------------------- +// +EXPORT_C MCAContactEditPC* CCAProcessManager::GetContactEditInterface() const + { + return iCCAContactEditPC; + } +// ----------------------------------------------------------------------------- +// CCAProcessManager::GetSearchDataInterface +// ----------------------------------------------------------------------------- +// +EXPORT_C MCASearchDataPC* CCAProcessManager::GetSearchDataInterface() const + { + return iDataInterfacePC; + } + +// ----------------------------------------------------------------------------- +// CCAProcessManager::GetSearchInterface +// ----------------------------------------------------------------------------- +// +EXPORT_C MCASearchInterfacePC* CCAProcessManager::GetSearchInterface() const + { + return iSearchInterfacePC; + } + +// ----------------------------------------------------------------------------- +// CCAProcessManager::GetReactiveAuthInterface +// ----------------------------------------------------------------------------- +// +EXPORT_C MCAReactiveAuthPC* CCAProcessManager::GetReactiveAuthInterface() const + { + return iReactiveAuthPC; + } +// ----------------------------------------------------------------------------- +// CCAProcessManager::GetBlockingPCInterface +// ----------------------------------------------------------------------------- +// + +EXPORT_C MCABlockingPC* CCAProcessManager::GetBlockingInterface( ) const + { + return iCCABlockingPC; + } + + +// ----------------------------------------------------------------------------- +// CCAProcessManager::CreateInviteEditorPCL +// ----------------------------------------------------------------------------- +// + +EXPORT_C MCAInviteEditorPC* CCAProcessManager::CreateInviteEditorPCL() + { + + MCAInviteEditorPC* inviteEditor = CCAInviteEditorPC::NewL( *iEngine->GetInvitationInterface(), + *CAPresenceManager::InstanceL() ); + //Ownership is transfered to the caller. + return inviteEditor; + } + +// ----------------------------------------------------------------------------- +// CCAProcessManager::GetRecordedChatsPC +// ----------------------------------------------------------------------------- +// + +EXPORT_C MCARecordedChatsPC* CCAProcessManager::GetRecordedChatsPC() const + { + return iRecordedChatsPC; + } +// ----------------------------------------------------------------------------- +// CCAProcessManager::GetRecordedChatsArrayPC +// ----------------------------------------------------------------------------- +// +EXPORT_C MCARecordedChatsArrayPC* CCAProcessManager::GetRecordedChatsArrayPC() const + { + return iRecordedChatsArrayPC; + } +// ----------------------------------------------------------------------------- +// CCAProcessManager::GetGlobalNotificationInterface +// ----------------------------------------------------------------------------- +// +EXPORT_C MCAGlobalNotificationObserverPC* CCAProcessManager::GetGlobalNotificationInterface() const + { + return iGlobalNotificationObserverPC; + } +// ----------------------------------------------------------------------------- +// CCAProcessManager::GetRecordedChatsArrayPC +// ----------------------------------------------------------------------------- +// +EXPORT_C MCAGroupPropertiesPC* CCAProcessManager::GetGroupPropertiesPC() const + { + return iGroupPropertiesPC; + } + +EXPORT_C MCAApplicationNGPC* CCAProcessManager::GetApplicationNGPC() const + { + return iApplicationNGPC; + } + +// ----------------------------------------------------------------------------- +// Default Constructor +// ----------------------------------------------------------------------------- +// +CCAProcessManager::CCAProcessManager() + { + + } + +// ----------------------------------------------------------------------------- +// CCAProcessManager::FinalizeEngineConstructionL +// ----------------------------------------------------------------------------- +// + +EXPORT_C void CCAProcessManager::FinalizeEngineConstructionL() + { + iEngine->FinalizeEngineConstructionL(); + + } + +// ----------------------------------------------------------------------------- +// Destructor +// ----------------------------------------------------------------------------- +// + +EXPORT_C CCAProcessManager::~CCAProcessManager() + { + delete iApplicationNGPC; + delete iGroupPropertiesPC; + delete iGlobalNotificationObserverPC; + delete iRecordedChatsPC; + delete iRecordedChatsArrayPC; + delete iCCALogIn; + delete iSettingsPC; + delete iConversationPC; + delete iMainViewItemArray; + delete iCCAContactEditPC; + delete iCCABlockingPC; + delete iDataInterfacePC; + delete iSearchInterfacePC; + delete iReactiveAuthPC; + delete iInvitationsPC; + delete iGroupPC; + delete iGroupUtilsPC; + delete iEngine; + + } + +// ----------------------------------------------------------------------------- +// CCAProcessManager::ConstructL +// ----------------------------------------------------------------------------- +// + +void CCAProcessManager::ConstructL() + { + + + iEngine = CCAEngine::NewL( KUidChatClient ); + + iEngine->FinalizeEngineConstructionL(); + + iCCALogIn = CCALoginPC::NewL( *iEngine ); + + iSettingsPC = CCASettingsPC::NewL( *iEngine ); + + iGlobalNotificationObserverPC = CCAGlobalNotificationObserverPC::NewL( + iEngine->ContactListModel(), + iEngine->ChatInterface(), + *( iEngine->GetInvitationInterface() ), + *( iEngine->GetInternalSettingsInterface() ), + iEngine->MessageUtils() ); + + + iConversationPC = CCAConversationPC::NewL( *iEngine ); + iCCAContactEditPC = CCAContactEditPC::NewL( *iSettingsPC ); + MCASearchInterface* searchInterface = iEngine->GetSearchInterface(); + MCABackgroundInterface* backgrdinterface = iEngine->BackgroundInterface(); + if ( searchInterface && backgrdinterface ) + { + MCAGroupManagerInterface* groupMgrInterface = iEngine->GetGroupInterface(); + iSearchInterfacePC = CCASearchInterfacePC::NewL( + searchInterface , *backgrdinterface, *groupMgrInterface ); + } + + + if ( searchInterface ) + { + iDataInterfacePC = CCASearchDataPC::NewL( searchInterface->SearchDataInterface() ); + } + + + iCCABlockingPC = CCABlockingPC::NewL( *iEngine ); + + iInvitationsPC = CCAInvitationPC::NewL( *iEngine, iEngine->ChatInterface() ); + + //specific interfaces can be passed in NewL later + iGroupPC = CCAGroupPC::NewL( iEngine->GetGroupInterface(), + iEngine->ChatInterface(), + iEngine->MessageUtils() ); + + iGroupUtilsPC = CCAGroupUtilsPC::NewL( *iEngine ); + + MCALoggerHeadersInterface* loggerHeaderInterface = iEngine->GetLoggerHeadersInterface(); + iRecordedChatsArrayPC = CCARecordedChatsArrayPC::NewL( *loggerHeaderInterface ); + iRecordedChatsPC = CCARecordedChatsPC::NewL( *loggerHeaderInterface, *iRecordedChatsArrayPC ); + + iReactiveAuthPC = CCAReactiveAuthPC::NewL(); + + iGroupPropertiesPC = CCAGroupPropertiesPC::NewL( *iEngine->GetGroupInterface() ); + + + iApplicationNGPC = CCAApplicationNGPC::NewL( *iEngine ); + + } + +// ----------------------------------------------------------------------------- +// CCAProcessManager::HandleContactDelete +// ----------------------------------------------------------------------------- +// + +void CCAProcessManager::HandleContactDelete( const TDesC& /*aContactId*/ ) + { + //To be considered for CCAMainViewItemArray + } + +// ----------------------------------------------------------------------------- +// CCAProcessManager::HandleAddition +// ----------------------------------------------------------------------------- +// + +void CCAProcessManager::HandleAddition( MCAContactList& /*aList*/, MCAStoredContact& /*aContact*/ ) + { + //To be considered for CCAMainViewItemArray + } + +// ----------------------------------------------------------------------------- +// CCAProcessManager::HandleChange +// ----------------------------------------------------------------------------- +// + +void CCAProcessManager::HandleChange( MCAContactList* /*aList*/, MCAStoredContact* /*aContact*/, + TStorageManagerGlobals::TCAObserverEventType aEventType, + TBool /*aUserIdChanged*/ ) + { + if ( aEventType == TStorageManagerGlobals::EStorageEventOwnStatusChange || + aEventType == TStorageManagerGlobals::EStorageEventMultipleChanges ) + { + //To be considered for CCAMainViewItemArray + } + } + +// ----------------------------------------------------------------------------- +// CCAProcessManager::HandleMessageError +// ----------------------------------------------------------------------------- +// + +void CCAProcessManager::HandleMessageError( TInt aError, MCAMessage* /*aMessage*/ ) + { + if ( aError == KErrNoMemory ) + { + //To be considered later + } + } + +// ----------------------------------------------------------------------------- +// CCAProcessManager::InitializeEngineObserversL +// ----------------------------------------------------------------------------- +// +void CCAProcessManager::InitializeEngineObserversL() + { + + // engine is valid before this is called + iEngine->ChatInterface().RegisterChatObserver( this ); + CCAStorageManagerFactory::ContactListInterfaceL()->AddObserverL( this ); + iEngine->MessageUtils().MessageErrorInformer().RegisterObserver( this ); + + } + +// ----------------------------------------------------------------------------- +// CCAProcessManager::HandleInvitationEventL +// ----------------------------------------------------------------------------- +// + +void CCAProcessManager::HandleInvitationEventL( TInviteEventType /*aEvent*/, + const MCAInvitation* /*aInvitation*/ ) + { + //To be considered later + } + +// --------------------------------------------------------- +// CCAProcessManager::HandleInvitationResponse +// (other items were commented in a header). +// --------------------------------------------------------- +// + +void CCAProcessManager::HandleInvitationResponse( TBool /*aAcceptance*/, + const TDesC& /*aUserId*/, + const TDesC& /*aGroupName*/, + const TDesC& /*aResponse*/ ) + { + //To be considered later + } + + +// --------------------------------------------------------- +// CCAProcessManager::HandleChatEvent +// (other items were commented in a header). +// --------------------------------------------------------- + +void CCAProcessManager::HandleChatEvent( TChatEventType /*aEvent*/, MCAMessage* /*aMessage*/ ) + { + //To be considered later + } + + + + +// End of file