--- /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<MCAArrayItemPC>& 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