wvuing/wvuiprocess/Inc/CCAConversationPC.h
changeset 0 094583676ce7
equal deleted inserted replaced
-1:000000000000 0:094583676ce7
       
     1 /*
       
     2 * Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies). 
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:  Process Component for Conversations/Groups
       
    15 *
       
    16 */
       
    17 
       
    18 
       
    19 
       
    20 #ifndef CCACONVERSATIONPC_H
       
    21 #define CCACONVERSATIONPC_H
       
    22 
       
    23 //  INCLUDES
       
    24 #include <e32base.h>
       
    25 #include <e32std.h>
       
    26 
       
    27 #include "MCAConversationPC.h"
       
    28 #include "chatdefinitions.h"
       
    29 #include "MCAChatObserver.h"
       
    30 #include "MCAStoredContactsObserver.h"
       
    31 #include "MCAMessageErrorObserver.h"
       
    32 #include "MCAMessageRWInterfacePC.h"
       
    33 
       
    34 
       
    35 // FORWARD DECLARATIONS
       
    36 class MCAChatInterface;
       
    37 class MCAStoredContacts;
       
    38 class MCAConversationObserverPC;
       
    39 class MCAMessagesReadInterface;
       
    40 class MCAMessagesWriteInterface;
       
    41 class CCAEngine;
       
    42 class MCAStoredGroups;
       
    43 class MCAMessageContainerInfo;
       
    44 
       
    45 
       
    46 
       
    47 // CLASS DECLARATION
       
    48 /**
       
    49 *  CCAConversationPC
       
    50 *  Process Component class for Conversations
       
    51 *
       
    52 */
       
    53 class CCAConversationPC : public CBase,
       
    54             public MCAConversationPC,
       
    55             public MCAChatObserver,
       
    56             public MCAStoredContactsObserver,
       
    57             public MCAMessageErrorObserver,
       
    58             public MCAMessageRWInterfacePC
       
    59     {
       
    60 
       
    61 
       
    62 
       
    63     public: // From MCAConversationPC
       
    64 
       
    65 
       
    66         /**
       
    67          * @see MCAConversationPC
       
    68          */
       
    69         void AddObserver( MCAConversationObserverPC* aObserver ) ;
       
    70 
       
    71         /**
       
    72          * @see MCAConversationPC
       
    73          */
       
    74         void RemoveObserver() ;
       
    75 
       
    76 
       
    77         /**
       
    78          * @see MCAConversationPC
       
    79          */
       
    80         void DeleteChatL( const TDesC& aServerAddress,
       
    81                           const TDesC& aUserId,
       
    82                           const TDesC& aTargetId ) ;
       
    83 
       
    84 
       
    85         /**
       
    86          * @see MCAConversationPC
       
    87          */
       
    88         void InitialiseResourcesL( const TDesC& aContactId ) ;
       
    89 
       
    90         /**
       
    91          * @see MCAConversationPC
       
    92          */
       
    93         void ReleaseResources() ;
       
    94 
       
    95 
       
    96         /**
       
    97          * @see MCAConversationPC
       
    98          */
       
    99         const TPtrC GetIdentification( const TDesC& aContactId ) ;
       
   100 
       
   101 
       
   102         /**
       
   103          * @see MCAConversationPC
       
   104          */
       
   105         const TDesC& GetReadInterfaceId()	;
       
   106 
       
   107 
       
   108         /**
       
   109          * @see MCAConversationPC
       
   110          */
       
   111         void GetLogFileName( TPtr& aLogFileNamePtr ) ;
       
   112 
       
   113         /**
       
   114          * @see MCAConversationPC
       
   115          */
       
   116         void RecordChatL( const TDesC& aLogFilename ) ;
       
   117 
       
   118 
       
   119         /**
       
   120          * @see MCAConversationPC
       
   121          */
       
   122         void SendMessageL( const TDesC& aMessageBuffer ) ;
       
   123 
       
   124         /**
       
   125          * @see MCAConversationPC
       
   126          */
       
   127         MCAServerContactsArrayPC* PopulateGroupDetailsLC() ;
       
   128 
       
   129 
       
   130         /**
       
   131          * @see MCAConversationPC
       
   132          */
       
   133         TPtrC GetReadInterfaceName() ;
       
   134 
       
   135         /**
       
   136          * @see MCAConversationPC
       
   137          */
       
   138         void SetActiveConversationL( const TDesC& aWvId ) ;
       
   139 
       
   140         /**
       
   141          * @see MCAConversationPC
       
   142          */
       
   143         TBool FindAnyContact( const TDesC& aContactId ) ;
       
   144 
       
   145         /**
       
   146          * @see MCAConversationPC
       
   147          */
       
   148         TInt GroupCount( TBool aOnlyVisible );
       
   149 
       
   150         /**
       
   151          * @see MCAConversationPC
       
   152          */
       
   153         TInt ContactCount();
       
   154 
       
   155         /**
       
   156          * @see MCAConversationPC
       
   157          */
       
   158         void CheckReply( TPtrC& aWvid, TBool& aContactInlist );
       
   159 
       
   160 
       
   161         /**
       
   162          * @see MCAConversationPC
       
   163          */
       
   164         TBool IsActiveConversation( const TDesC& aContactId );
       
   165 
       
   166         /**
       
   167          * @see MCAConversationPC
       
   168          */
       
   169         void SetMessageReadInterfaceL( const TDesC& aWvId );
       
   170 
       
   171         /**
       
   172          * @see MCAConversationPC
       
   173          */
       
   174         void SetMessageWriteInterfaceL();
       
   175 
       
   176         /**
       
   177          * @see MCAConversationPC
       
   178          */
       
   179         void CloseConversations();
       
   180 
       
   181         /**
       
   182          * @see MCAConversationPC
       
   183          */
       
   184         void LeaveJoinedGroupsL();
       
   185 
       
   186         /**
       
   187          * @see MCAConversationPC
       
   188          */
       
   189         TInt MessageCount();
       
   190 
       
   191 
       
   192     public: // From MCAStoredContactsObserver
       
   193 
       
   194         /**
       
   195          * @see MCAStoredContactsObserver
       
   196          */
       
   197 
       
   198         void HandleContactDelete( const TDesC& aContactId ) ;
       
   199 
       
   200         /**
       
   201          * @see MCAStoredContactsObserver
       
   202          */
       
   203         void HandleAddition( MCAContactList& aList, MCAStoredContact& aContact ) ;
       
   204 
       
   205         /**
       
   206          * @see MCAStoredContactsObserver
       
   207          */
       
   208         void HandleChange( MCAContactList* aList, MCAStoredContact* aContact,
       
   209                            TStorageManagerGlobals::TCAObserverEventType aEventType,
       
   210                            TBool aUserIdChanged ) ;
       
   211 
       
   212 
       
   213     private: // From MCAChatObserver
       
   214 
       
   215         /**
       
   216          * @see MCAChatObserver
       
   217          */
       
   218 
       
   219         void HandleChatEvent( TChatEventType aEvent, MCAMessage* aMessage = NULL ) ;
       
   220 
       
   221 
       
   222     private: // From MCAMessageErrorObserver
       
   223         /**
       
   224          * @see MCAMessageErrorObserver
       
   225          */
       
   226         void HandleMessageError( TInt aError, MCAMessage* aMessage ) ;
       
   227 
       
   228 
       
   229     public: //From MCAMessageRWInterfacePC
       
   230         /**
       
   231          * @see MCAMessageRWInterfacePC
       
   232          */
       
   233         MCAMessagesReadInterface& ReadInterfaceL() const;
       
   234 
       
   235         /**
       
   236          * @see MCAMessageRWInterfacePC
       
   237          */
       
   238         MCAMessagesWriteInterface& WriteInterfaceL() const;
       
   239 
       
   240 
       
   241     private:
       
   242 
       
   243         void ConstructL();
       
   244 
       
   245 
       
   246     public:
       
   247         /**
       
   248         * Two-phased constructor.
       
   249         * @param aEngine: Reference to chat engine component
       
   250         */
       
   251         static CCAConversationPC* NewL( CCAEngine& aEngine );
       
   252         /**
       
   253          * Destructor
       
   254          */
       
   255         ~CCAConversationPC();
       
   256 
       
   257     private:
       
   258         /**
       
   259         * Default constructor.
       
   260         * @param aEngine: Reference to chat engine component
       
   261         */
       
   262         CCAConversationPC( CCAEngine& aEngine );
       
   263 
       
   264         struct TArrayPairs // Struct to hold identification and buffer
       
   265             {
       
   266             TBuf<KMaxWVIDLength> iIdentification;
       
   267             MCAMessagesReadInterface* iReadInterface;
       
   268             };
       
   269 
       
   270 
       
   271     private: //Data
       
   272 
       
   273         //Chat interface
       
   274         MCAChatInterface* iChatInterface;
       
   275 
       
   276         //Doesn't own. Handle to contacts interface
       
   277         MCAStoredContacts* iContacts;
       
   278 
       
   279         //Doesn't own
       
   280         MCAStoredGroups* iGroups;
       
   281 
       
   282         //Doesn't own
       
   283         MCAConversationObserverPC* iObserver;
       
   284 
       
   285         //Doesnt Own,Ref to chat engine
       
   286         CCAEngine& iEngine;
       
   287 
       
   288         //Owns. Contact id
       
   289         HBufC* iContactId;
       
   290 
       
   291         // Interface for reading messages
       
   292         MCAMessagesReadInterface* iReadInterface;
       
   293 
       
   294         // Interface for writing messages
       
   295         MCAMessagesWriteInterface* iWriteInterface;
       
   296 
       
   297         MCAMessageContainerInfo* iMsgContainerInfo;
       
   298 
       
   299     };
       
   300 
       
   301 #endif      // CCACONVERSATIONPC_H
       
   302 
       
   303 // End of File