diff -r 4697dfb2d7ad -r 238255e8b033 messagingapp/msgui/appengine/inc/conversationmsgstorehandler.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/messagingapp/msgui/appengine/inc/conversationmsgstorehandler.h Fri Apr 16 14:56:15 2010 +0300 @@ -0,0 +1,177 @@ +/* +* Copyright (c) 2008 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: Wrapper classes which encapsulates Message store functions + * +*/ + +#ifndef CONVERSATION_MSG_STORE_HANDLER_H +#define CONVERSATION_MSG_STORE_HANDLER_H + +// INCLUDE FILES +#include +#include + +// FORWARD DECLARATIONS +class CMsvSession; +class MMsvSessionObserver; +class DraftsModel; + +// CONSTANTS + +class ConversationMsgStoreHandler: public MMsvSessionObserver + { +public: + + /* + * Draft processing states + */ + enum TDraftHandlerState + { + EReadDrafts, + EProcessDrafts, + EComplete + }; + + /** + * Default constructor. + */ + explicit ConversationMsgStoreHandler(); + + /** + * Destructor + */ + virtual ~ConversationMsgStoreHandler(); + +private: + + /** + * Initializes the ConversationMsgStoreHandler class. + */ + void InitL(); + +public: + /** + * From MMsvSessionObserver. HandleSessionEventL. + */ + void HandleSessionEventL(TMsvSessionEvent aEvent, TAny* aArg1, TAny* aArg2, + TAny* aArg3); +public: + /** + * Get MMS notification status. + * @param aMsvId MMS notification status. + */ + TCsMmsNotificationMsgState MmsNotificationStatus( TInt aMsvId ); + + /** + * Mark specified messages as unread. + * @param aIdArray Array of message ids. + */ + void MarkMessagesReadL(RArray& aIdArray); + + /** + * Delete specified messages from message store + * @param aIdArray Array of message ids. + */ + void DeleteMessages(RArray& aIdArray); + + /** + * Returns the msv session object + * @return CMsvSession object + */ + CMsvSession& GetMsvSession(); + + /** + * Start fetching all draft messages + */ + void FetchDraftMessages(DraftsModel* draftsModel); + +private: + + /** + * verifys the current operation status + *@param aEntry, TMsvEntry + */ + TBool OperationFinished( const TMsvEntry& aEntry ) const; + + /** + * verifys the current operation status + * @param aEntry, TMsvEntry + */ + TBool OperationOngoing( const TMsvEntry& aEntry ) const; + + /** + * CIdle callback + */ + static TInt ProcessDraftMessages(TAny* arg); + + /** + * State handler to read all draft messages + */ + TInt ProcessDraftMessagesL(); + + /** + * Cleanup + */ + void CleanupL(); + + /** + * Checks if the MTM type supported + */ + TBool IsMtmSupported(long uid); + +private: + /** + * Msv Session + * Own. + */ + CMsvSession* iMsvSession; + + /** + * Draft entry + * Own + */ + CMsvEntry* iDraftEntry; + + /** + * Active object + */ + CIdle* iIdle; + + /** + * Messages under root entry + * Own + */ + CMsvEntrySelection* iDraftMessages; + + /** + * Drafts model + * Not Own + */ + DraftsModel *mDraftsModel; + + /** + * Mesage count + */ + TInt iDraftMessageCount; + + /** + * State + */ + TDraftHandlerState iState; + + }; + +#endif // CONVERSATION_MSG_STORE_HANDLER_H + +// EOF