wvuing/wvuiprocess/Inc/CCAConversationPC.h
changeset 0 094583676ce7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/wvuing/wvuiprocess/Inc/CCAConversationPC.h	Thu Dec 17 08:41:52 2009 +0200
@@ -0,0 +1,303 @@
+/*
+* 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 Component for Conversations/Groups
+*
+*/
+
+
+
+#ifndef CCACONVERSATIONPC_H
+#define CCACONVERSATIONPC_H
+
+//  INCLUDES
+#include <e32base.h>
+#include <e32std.h>
+
+#include "MCAConversationPC.h"
+#include "chatdefinitions.h"
+#include "MCAChatObserver.h"
+#include "MCAStoredContactsObserver.h"
+#include "MCAMessageErrorObserver.h"
+#include "MCAMessageRWInterfacePC.h"
+
+
+// FORWARD DECLARATIONS
+class MCAChatInterface;
+class MCAStoredContacts;
+class MCAConversationObserverPC;
+class MCAMessagesReadInterface;
+class MCAMessagesWriteInterface;
+class CCAEngine;
+class MCAStoredGroups;
+class MCAMessageContainerInfo;
+
+
+
+// CLASS DECLARATION
+/**
+*  CCAConversationPC
+*  Process Component class for Conversations
+*
+*/
+class CCAConversationPC : public CBase,
+            public MCAConversationPC,
+            public MCAChatObserver,
+            public MCAStoredContactsObserver,
+            public MCAMessageErrorObserver,
+            public MCAMessageRWInterfacePC
+    {
+
+
+
+    public: // From MCAConversationPC
+
+
+        /**
+         * @see MCAConversationPC
+         */
+        void AddObserver( MCAConversationObserverPC* aObserver ) ;
+
+        /**
+         * @see MCAConversationPC
+         */
+        void RemoveObserver() ;
+
+
+        /**
+         * @see MCAConversationPC
+         */
+        void DeleteChatL( const TDesC& aServerAddress,
+                          const TDesC& aUserId,
+                          const TDesC& aTargetId ) ;
+
+
+        /**
+         * @see MCAConversationPC
+         */
+        void InitialiseResourcesL( const TDesC& aContactId ) ;
+
+        /**
+         * @see MCAConversationPC
+         */
+        void ReleaseResources() ;
+
+
+        /**
+         * @see MCAConversationPC
+         */
+        const TPtrC GetIdentification( const TDesC& aContactId ) ;
+
+
+        /**
+         * @see MCAConversationPC
+         */
+        const TDesC& GetReadInterfaceId()	;
+
+
+        /**
+         * @see MCAConversationPC
+         */
+        void GetLogFileName( TPtr& aLogFileNamePtr ) ;
+
+        /**
+         * @see MCAConversationPC
+         */
+        void RecordChatL( const TDesC& aLogFilename ) ;
+
+
+        /**
+         * @see MCAConversationPC
+         */
+        void SendMessageL( const TDesC& aMessageBuffer ) ;
+
+        /**
+         * @see MCAConversationPC
+         */
+        MCAServerContactsArrayPC* PopulateGroupDetailsLC() ;
+
+
+        /**
+         * @see MCAConversationPC
+         */
+        TPtrC GetReadInterfaceName() ;
+
+        /**
+         * @see MCAConversationPC
+         */
+        void SetActiveConversationL( const TDesC& aWvId ) ;
+
+        /**
+         * @see MCAConversationPC
+         */
+        TBool FindAnyContact( const TDesC& aContactId ) ;
+
+        /**
+         * @see MCAConversationPC
+         */
+        TInt GroupCount( TBool aOnlyVisible );
+
+        /**
+         * @see MCAConversationPC
+         */
+        TInt ContactCount();
+
+        /**
+         * @see MCAConversationPC
+         */
+        void CheckReply( TPtrC& aWvid, TBool& aContactInlist );
+
+
+        /**
+         * @see MCAConversationPC
+         */
+        TBool IsActiveConversation( const TDesC& aContactId );
+
+        /**
+         * @see MCAConversationPC
+         */
+        void SetMessageReadInterfaceL( const TDesC& aWvId );
+
+        /**
+         * @see MCAConversationPC
+         */
+        void SetMessageWriteInterfaceL();
+
+        /**
+         * @see MCAConversationPC
+         */
+        void CloseConversations();
+
+        /**
+         * @see MCAConversationPC
+         */
+        void LeaveJoinedGroupsL();
+
+        /**
+         * @see MCAConversationPC
+         */
+        TInt MessageCount();
+
+
+    public: // From MCAStoredContactsObserver
+
+        /**
+         * @see MCAStoredContactsObserver
+         */
+
+        void HandleContactDelete( const TDesC& aContactId ) ;
+
+        /**
+         * @see MCAStoredContactsObserver
+         */
+        void HandleAddition( MCAContactList& aList, MCAStoredContact& aContact ) ;
+
+        /**
+         * @see MCAStoredContactsObserver
+         */
+        void HandleChange( MCAContactList* aList, MCAStoredContact* aContact,
+                           TStorageManagerGlobals::TCAObserverEventType aEventType,
+                           TBool aUserIdChanged ) ;
+
+
+    private: // From MCAChatObserver
+
+        /**
+         * @see MCAChatObserver
+         */
+
+        void HandleChatEvent( TChatEventType aEvent, MCAMessage* aMessage = NULL ) ;
+
+
+    private: // From MCAMessageErrorObserver
+        /**
+         * @see MCAMessageErrorObserver
+         */
+        void HandleMessageError( TInt aError, MCAMessage* aMessage ) ;
+
+
+    public: //From MCAMessageRWInterfacePC
+        /**
+         * @see MCAMessageRWInterfacePC
+         */
+        MCAMessagesReadInterface& ReadInterfaceL() const;
+
+        /**
+         * @see MCAMessageRWInterfacePC
+         */
+        MCAMessagesWriteInterface& WriteInterfaceL() const;
+
+
+    private:
+
+        void ConstructL();
+
+
+    public:
+        /**
+        * Two-phased constructor.
+        * @param aEngine: Reference to chat engine component
+        */
+        static CCAConversationPC* NewL( CCAEngine& aEngine );
+        /**
+         * Destructor
+         */
+        ~CCAConversationPC();
+
+    private:
+        /**
+        * Default constructor.
+        * @param aEngine: Reference to chat engine component
+        */
+        CCAConversationPC( CCAEngine& aEngine );
+
+        struct TArrayPairs // Struct to hold identification and buffer
+            {
+            TBuf<KMaxWVIDLength> iIdentification;
+            MCAMessagesReadInterface* iReadInterface;
+            };
+
+
+    private: //Data
+
+        //Chat interface
+        MCAChatInterface* iChatInterface;
+
+        //Doesn't own. Handle to contacts interface
+        MCAStoredContacts* iContacts;
+
+        //Doesn't own
+        MCAStoredGroups* iGroups;
+
+        //Doesn't own
+        MCAConversationObserverPC* iObserver;
+
+        //Doesnt Own,Ref to chat engine
+        CCAEngine& iEngine;
+
+        //Owns. Contact id
+        HBufC* iContactId;
+
+        // Interface for reading messages
+        MCAMessagesReadInterface* iReadInterface;
+
+        // Interface for writing messages
+        MCAMessagesWriteInterface* iWriteInterface;
+
+        MCAMessageContainerInfo* iMsgContainerInfo;
+
+    };
+
+#endif      // CCACONVERSATIONPC_H
+
+// End of File