diff -r 84d9eb65b26f -r 518b245aa84c messagingapp/msgappfw/plugin/inc/ccsmsghandler.h --- a/messagingapp/msgappfw/plugin/inc/ccsmsghandler.h Mon May 03 12:29:07 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,266 +0,0 @@ -/* -* Copyright (c) 2007 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: Request Handler plugin - * -*/ - - -#ifndef _C_CS_MSG_REQUEST_HANDLER_H_ -#define _C_CS_MSG_REQUEST_HANDLER_H_ - -//SYSTEM INCLUDES -#include - -//USER INCLUDES -#include "ccsmsg.h" -#include "ccsmsgpluginutility.h" - - -// FORWARD DECLARATION -class CCsPlugin; -class CMsvSession; -class MCsPluginEventObserver; -class MMsvSessionObserver; -class CCsConversationEntry; -class CCsMsg; -class CCsMsgPluginUtility; -class CClientMtmRegistry; -class CSmsClientMtm; -class CMmsClientMtm; - -/** - * Operation Type - */ -enum TEventType - { - ERead, - EUpdate, - EDelete - }; - -/** - * States - */ -enum TMsgHandlerState - { - EReadInbox, - EReadSent, - EProcessDraft, - EReadOutbox, - ESortEntries, - EProcessEntries, - EComplete - }; - -/** - * Message plugin Request Handler Class - * This class interacts with MsvServer to fetch message data - */ -class CCsMsgHandler : public CBase, public MMsvSessionObserver - { - -public: - - /** - * Two phase construction - * @param aMsgObserver MCsMsgObserver interface - */ - static CCsMsgHandler* NewL(MCsMsgObserver *aMsgObserver); - - /** - * Destructor - */ - virtual ~CCsMsgHandler(); - - /** - * Start - * This function starts the state machine to fetch msg data from msvserver - */ - void StartL(); - -public://MMsvSessionObserver - /** - * Handles the MsvServer updates. Implemented for MMsvSessionObserver - */ - void HandleSessionEventL(TMsvSessionEvent aEvent, - TAny* aArg1, - TAny* aArg2, - TAny* aArg3); - -private: - - /** - * CIdle callback - */ - static TInt UploadMsg(TAny* arg); - - /** - * State handler to read all messages - */ - TInt UploadMsgL(); - - /** - * Checks if the MTM type supported - */ - TBool IsMtmSupported(long uid); - -private: - - /** - * Constructor - */ - CCsMsgHandler(); - - /** - * 2nd phase construtor - * @param aMsgPlugin The main message plugin object - */ - void ConstructL(MCsMsgObserver *aMsgPlugin); - - /** - * ProcessResultsL fetches results and updates the CCsServer - * with the fetched data - */ - void ProcessResultsL(TMsvEntry aEntry); - - /** - * Create CCsConversationEntry and adds to the list - * @param aContact, Contact details - * @param aDescription, message body - * @param aEntry, TMsvEntry - */ - void CreateAndAddEntryL(const TDesC& aContact, - const TDesC& aDescription, - const TMsvEntry& aEntry); - - /** - * Process each entry - * @param aEvent Read, Update, Delete - * @param aContact (From/To) Field - * @param aDescription, message body - * @param aEntry, Message entry - */ - void ProcessEntryL(TEventType aEvent, - const TDesC& aContact, - const TDesC& aDescription, - const TMsvEntry& aEntry); - - /** - * Process each entry - *@param aSelection, CMsvEntrySelections - *@param aParent, parent id if TMsvEntry - */ - void HandleEventL(CMsvEntrySelection* aSelection, TMsvId aParent); - - /** - * Extracts the addresses in the to field and updates them to server - *@param aEntry, TMsvEntry - *@param aEvent Read, Update, Delete - *@param aFromAddress, from address of the message - */ - void ExtractAddressesL( - TMsvEntry aEntry , - TEventType aEvent, - RPointerArray& addressList); - - /** - * Cleanup - */ - void CleanupL(); - - /** - * Extracts the Message type based on the MTM value - * @param aEntry, TMsvEntry - */ - TCsType ExtractCsType( const TMsvEntry& aEntry); - - -private: //Data - - /** - * MsvServer session object - */ - CMsvSession* iSession; - - /** - * Utility object - */ - CCsMsgPluginUtility* iMsgPluginUtility; - - /** - * iConverstationEntryList - * ConversationEntry list - * Own. - */ - RPointerArray *iConverstationEntryList; - - /** - * iMsgObserver - * The Observer interface - * Not Own. - */ - MCsMsgObserver *iMsgObserver; - - /** - * Mtm registry object - */ - CClientMtmRegistry* iMtmRegistry; - - /** - * SMS client mtm object - */ - CSmsClientMtm* iSmsMtm; - - /** - * Mms client mtm object - */ - CMmsClientMtm* iMmsMtm; - - /** - * Previous entry, used for comparing with new entry received - */ - TMsvEntry iPrevEntry; - - /** - * Root entry - */ - CMsvEntry* iRootEntry; - - /** - * Mesage count - */ - TInt iMessageCount; - - /** - * Messages under root entry - */ - CMsvEntrySelection* iMessages; - - /** - * Master array for holding all the messages - */ - RArray* iMessageArray; - - /** - * State - */ - TMsgHandlerState iState; - - /** - * Active object - */ - CIdle* iIdle; - }; - -#endif // _C_CS_MSG_REQUEST_HANDLER_H_