diff -r 6a20128ce557 -r ebfee66fde93 messagingapp/msgui/appengine/inc/conversationlistchangehandler.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/messagingapp/msgui/appengine/inc/conversationlistchangehandler.h Fri Jun 04 10:25:39 2010 +0100 @@ -0,0 +1,182 @@ +/* + * 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: This Class handles Add, Delete & Modify conversation list client events. + * + */ + +#ifndef CONVERSATIONSLIST_CHANGEHANDLER_H +#define CONVERSATIONSLIST_CHANGEHANDLER_H + +// SYSTEM INCLUDE +#include + +// USER INCLUDE + +// FORWARD DECLARATIONS +class ConversationsSummaryModel; +class ConversationsEnginePrivate; + +/** + * This Class handles Add, Delete & Modify conversation list client events. + * + * @code + * @endcode + * + * @since S60 v10.1 + */ +class ConversationsListChangeHandler : public CActive, + public MCsConversationListChangeObserver +{ + +public: + + /** + * Default constructor. + */ + explicit ConversationsListChangeHandler( + ConversationsEnginePrivate* convEnginePrivate, + ConversationsSummaryModel* conversationsSummaryModel); + + /** + * Destructor. + */ + ~ConversationsListChangeHandler(); + +public: + // CActive callbacks + + /** + * RunL. + */ + void RunL(); + + /** + * DoCancel. + */ + void DoCancel(); + + /** + * ConversationList + * This is for handling GetEntryList results asynchronusly + * from the server. + * + * @param aClientConversationList List of client conversations + * returned by server. + */ + void ConversationListL( + RPointerArray& aClientConversationList); + +public: + + // -------------From MCsConversationListChangeObserver----------------------- + + /** + * AddConversationList + * This is for handling new conversation event + * asynchronusly from the server + * + * @param aClientConversation client conversation + */ + void AddConversationList(const CCsClientConversation& aClientConversation); + + /** + * DeleteConversationList + * This is for handling delete conversation event + * asynchronusly from the server + * + * @param aClientConversation client conversation + */ + void DeleteConversationList( + const CCsClientConversation& aClientConversation); + + /** + * ModifyConversationList + * This is for handling modify conversation asynchronusly + * from the server + * + * @param aClientConversation client conversation + */ + + void ModifyConversationList( + const CCsClientConversation& aClientConversation); + + /** + * RefreshConversationList + * This is for handling refresh asynchronusly from the server. + */ + void RefreshConversationList(); + +private: + + /** + * IssueRequest + * Make the active object alive + */ + void IssueRequest(); + + /** + * Handles Conversation List received from server and updates into model + */ + void HandleConversationListL(); + +private: + // data + + enum ConvListChangeHandlerStates + { + EInit = 200, + EInitialCache, + EListenToEvents + }; + + /** + * mCurrentState + * Holds Current state + */ + ConvListChangeHandlerStates mCurrentState; + + /** + * First list of conversation List entires updated + * Own. + */ + TBool mFirstWindowCached; + + /** + * Current entry being processed + * Own. + */ + TInt mCurrentIndex; + + /** + * ConversationsSummaryModel object + * Not Own. + */ + ConversationsSummaryModel* mConvSummaryModel; + + /** + * ConversationsEnginePrivate object + * Not Own. + */ + ConversationsEnginePrivate* mConvEnginePrivate; + + /** + * List of CCsClientConversation entries + * Own. + */ + RPointerArray mClientConversationList; + +}; + +#endif // CONVERSATIONSLIST_CHANGEHANDLER_H +// EOF