diff -r d189ee25cf9d -r 3533d4323edc meetingrequest/mrcasplugin/inc/cesmrcasplugincontactretriever.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/meetingrequest/mrcasplugin/inc/cesmrcasplugincontactretriever.h Wed Sep 01 12:28:57 2010 +0100 @@ -0,0 +1,129 @@ +/* +* Copyright (c) 2007-2009 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: Definition of CAS plug-in contact retriever + * +*/ + + +#ifndef CESMRCASPLUGINCONTACTRETRIEVER_H +#define CESMRCASPLUGINCONTACTRETRIEVER_H + +#include +// +#include "mfsccontactsetobserver.h" +// + +// FORWARD DECLARATIONS +class MVPbkStoreContact; +class MFscContactSet; +class TFscContactActionPluginParams; +class MESMRCasPluginContactRetrieverObserver; +class CCalUser; + +/** + * Create meeting Request plugin implementation. + * Contains implementation of create meeting request action plugin. + * + * part contact action menu Ecom plugin based API + */ +NONSHARABLE_CLASS (CESMRCasPluginContactRetriever) : + public CBase, + public MFscContactSetObserver + { +public: // Constructors and destructor + + /** + * Two-phased constructor. Creates and initializes + * CESMRCasPluginContactRetriever object. Ownership transferred to caller. + * + * @param aParams set of contact action plugin configuration parameters + * @return Pointer to ContactRetriever object. + */ + static CESMRCasPluginContactRetriever* NewL( + const TFscContactActionPluginParams& aParams ); + + /** + * C++ Destructor. + */ + virtual ~CESMRCasPluginContactRetriever( ); + +public: // From Interface + void CanExecuteL( + MFscContactSet& aContactSet, + MESMRCasPluginContactRetrieverObserver& aObserver ); + void GetAttendeesL( + MFscContactSet& aContactSet, + MESMRCasPluginContactRetrieverObserver& aObserver ); + void Cancel(); + +private: // from MFscContactSetObserver + void NextContactComplete( MVPbkStoreContact* aContact ); + void NextContactFailed( TInt aError ); + void NextGroupComplete( MVPbkStoreContact* aContact ); + void NextGroupFailed( TInt aError ); + void GetGroupContactComplete( MVPbkStoreContact* aContact ); + void GetGroupContactFailed( TInt aError ); + +private: // Implementation + CESMRCasPluginContactRetriever( + const TFscContactActionPluginParams& aParams ); + void ConstructL( ); + + void StartIterationL(); + void HandleNextContactCompleteL( MVPbkStoreContact& aContact ); + void HandleNextGroupCompleteL( MVPbkStoreContact* aGroup ); + void NotifyFinished(); + void NotifyError( TInt aError ); +private: // data + + /** States of operations */ + enum TLastEvent + { + EActionEventNextContact, + EActionEventNextGroup, + EActionEventGetGroupContact + }; + + /** State current operation */ + enum TOperation + { + EOperationCanExecute, + EOperationGetAttendees + }; + + /// Own: Operation in progress + TOperation iOperation; + /// Own: Last event + TLastEvent iLastEvent; + /// Own: Fetched MR addresses + RPointerArray iAttendees; + /// Own: Contact count with email + TInt iContactCountWithEmail; + /// Own: Total contact count + TInt iContactCount; + /// Ref: Current observer + MESMRCasPluginContactRetrieverObserver* iObserver; + /// Ref: Plugin parameters + const TFscContactActionPluginParams& iParams; + /// Ref: Contact set to be handled + MFscContactSet* iContactSet; + /// Own: Contact index in current group + TInt iCurrentGroupContactIndex; + /// Own: Contact count in current group + TInt iCurrentGroupContactCount; + /// Ref: Current group in progress + MVPbkStoreContact* iCurrentGroup; + }; + +#endif // CESMRCASPLUGINCONTACTRETRIEVER_H