diff -r 000000000000 -r 8466d47a6819 emailcontacts/contactactionservice/inc/cfsccontactactionserviceimpl.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/emailcontacts/contactactionservice/inc/cfsccontactactionserviceimpl.h Thu Dec 17 08:39:21 2009 +0200 @@ -0,0 +1,213 @@ +/* +* 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: Definition of the class CFscContactActionServiceImpl. +* +*/ + + +#ifndef C_FSCCONTACTACTIONSERVICEIMPL_H +#define C_FSCCONTACTACTIONSERVICEIMPL_H + +#include +#include "cfsccontactactionservice.h" +#include "mfsccontactactionpluginengineobserver.h" + +// FORWARD DECLARATIONS +class CFscContactSet; +class CFscContactActionPluginEngine; + +/** + * Contact Action Service implementation. + * Implements functionality of the Contact Action Service. + * + * @lib fsccontactactionservice.lib + * @since S60 3.1 + */ +class CFscContactActionServiceImpl : + public CFscContactActionService, + public MFscContactActionPluginEngineObserver + { + +public: // public constructors and destructor + + /** + * Two-phased constructor. + * + * @param aParams Pointer construction parameters + * @return New instance of the component + */ + static CFscContactActionServiceImpl* NewL( TAny* aParams ); + + /** + * Destructor. + */ + virtual ~CFscContactActionServiceImpl(); + +public: // From base class CFscContactActionService + + /** + * From CFscContactActionService. + * Method for setting current contact set to the service. + * + * @param aIterator iterator to collection of MVPbkContactLink objects. + * Collection can contain links to contacts and group. + */ + virtual void SetContactSetL( MFscContactLinkIterator* aIterator ); + + /** + * From CFscContactActionService. + * Method for setting current contact set to the service. + * + * @param aStoreContactList collection of MVPbkStoreContact objects. + * Collection can contain ONLY contacts + * (no groups). + */ + virtual void SetContactSetL( + const RFscStoreContactList& aStoreContactList ); + + /** + * Method for quering available actions + * Method searches actions for pre-set contact/group set. + * Results can be received with QueryResults method. + * Asynchronous. Data is ready when observer's QueryActionsComplete + * method is invoked. + * + * @param aObsever operation observer. + * @param aStopWhenOneActionFound stops query when at least one + * action found. + * @param aActionTypeFlags Action type flags which are used to filter + * actions. + * @param aMinPriority Minimum allowed priority for returned actions. + */ + void QueryActionsL( + MFscContactActionServiceObserver* aObserver, + TBool aStopWhenOneActionFound = EFalse, + TUint64 aActionTypeFlags = KFscAtDefault, + TInt aMinPriority = 0 ); + + /** + * Cancels async method QueryActionsL. + */ + void CancelQueryActions(); + + /** + * Return action query results. + * Empty list is returned if no queries has been done + * + * @return action query result list. + */ + const CFscContactActionList& QueryResults() const; + + /** + * Execute action. + * Asynchronous. Data is ready when observer's ExecuteComplete + * mthod is invoked. + * + * @param aActionUid uid of action to be executed + */ + void ExecuteL( TUid aActionUid, + MFscContactActionServiceObserver* aObserver ); + + /** + * Cancels async method ExecuteL. + */ + void CancelExecute(); + +protected: // From base class MFscContactActionPluginEngineObserver + + /** + * From MFscContactActionPluginEngineObserver. + * Called when QueryActionsL method is complete. + */ + void QueryActionsComplete(); + + /** + * From MFscContactActionPluginEngineObserver. + * Called when QueryActionsL method failed. + * + * @param aError An error code of the failure. + */ + void QueryActionsFailed( TInt aError ); + + /** + * From MFscContactActionPluginEngineObserver. + * Called when ExecuteL method is complete. + */ + void ExecuteComplete(); + + /** + * From MFscContactActionPluginEngineObserver. + * Called when ExecuteL method failed. + * + * @param aError An error code of the failure. + */ + void ExecuteFailed( TInt aError ); + +private: // private contructors + + /** + * Constructor. + */ + CFscContactActionServiceImpl( + const TFscContactActionServiceConstructParameters& aParams ); + + /** + * Second phase constructor. + */ + void ConstructL(); + +private: // private methods + + /** + * Clear contacts and groups. + */ + void ClearContactSet(); + +private: // data + + /** + * Instance of plugin engine. + * Own. + */ + CFscContactActionPluginEngine* iPluginEngine; + + /** + * Action query result list. + * Own. + */ + CFscContactActionList* iActionList; + + /** + * Contact manager. + */ + CVPbkContactManager& iVPbkContactManager; + + /** + * Current contact set. + * Own. + */ + CFscContactSet* iContactSet; + + /** + * Operation Observer. + */ + MFscContactActionServiceObserver* iObserver; + + /** + * Is action query processed. + */ + TBool iIsCasUsed; + }; + +#endif // C_FSCCONTACTACTIONSERVICEIMPL_H