diff -r 000000000000 -r 094583676ce7 wvuing/wvuiprocess/Inc/CCAConversationPC.h --- /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 +#include + +#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 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