diff -r 000000000000 -r 8466d47a6819 emailcontacts/contactactionservice/inc/cfsccontactactionplugin.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/emailcontacts/contactactionservice/inc/cfsccontactactionplugin.h Thu Dec 17 08:39:21 2009 +0200 @@ -0,0 +1,144 @@ +/* +* 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: Declaration of class CFscContactActionPlugin. +* +*/ + + +#ifndef C_FSCCONTACTACTIONPLUGIN_H +#define C_FSCCONTACTACTIONPLUGIN_H + +#include + +// +#include "fsccontactactionservicedefines.h" +#include "tfsccontactactionpluginparams.h" + +// FORWARD DECLARATIONS +class MFscContactAction; +class MFscContactSet; +class MFscContactActionPluginObserver; + +/** + * Contact Action Plugin API. + * Defines an ECom interface for Contact Action Plugins. + * + * @since S60 3.1 + */ +class CFscContactActionPlugin : public CBase + { + +public: // Public constructor and destructor + + /** + * Two-phased constructor. + * + * @param aPluginUid Implementation uid of plugin to be created + * @return New instance of CFscContactActionPlugin + */ + static inline CFscContactActionPlugin* NewL( + TUid aPluginUid, + TFscContactActionPluginParams& aParams ); + + /** + * Destructor. + */ + virtual ~CFscContactActionPlugin(); + +public: // Public pure virtual methods + + /** + * Implementation Uid + * + * @return Implementation Uid of the plugin + */ + virtual TUid Uid() const = 0; + + /** + * Action List + * + * @return a const pointer to a array contaning uids of implemented actions + */ + virtual const CArrayFix* ActionList() const = 0; + + /** + * Get Action + * Method returns a reference to requested action or + * leaves with KErrNotFound error code if action is not found. + * + * @param aActionUid Action uid + * @return Reference to requested action. + */ + virtual const MFscContactAction& GetActionL( + TUid aActionUid ) const = 0; + + /** + * Method for quering action's priority and visibility in current context with given contacts + * + * @param aActionUid Action uid + * @param aContactSet Target contact set + * @param aGroupList List containing target groups and their contacts + * @param aActionMenuVisibility Action's visibility in action menu. + * Visibility information is updated by the method. + * @param aOptionsMenuVisibility Action's visibility in options menu + * Visibility information is updated by the method. + * @return Priority of the action + */ + virtual void PriorityForContactSetL( + TUid aActionUid, + MFscContactSet& aContactSet, + TFscContactActionVisibility& aActionMenuVisibility, + TFscContactActionVisibility& aOptionsMenuVisibility, + MFscContactActionPluginObserver* aObserver ) = 0; + + /** + * Cancels async method PriorityForContactSetL. + */ + virtual void CancelPriorityForContactSet() = 0; + + /** + * Execute action. Asynchronous method. + * + * @param aActionUid Action uid of the action to be executed. + * @param aContactSet Target contact set. + * @param aObserver operation observer. + */ + virtual void ExecuteL( + TUid aActionUid, + MFscContactSet& aContactSet, + MFscContactActionPluginObserver* aObserver ) = 0; + + /** + * Cancels async method ExecuteL. + */ + virtual void CancelExecute() = 0; + +protected: // protected data + +private: // data + + /** iDtor_ID_Key Instance identifier key. When instance of an + * implementation is created by ECOM framework, the + * framework will assign UID for it. The UID is used in + * destructor to notify framework that this instance is + * being destroyed and resources can be released. + */ + TUid iDtor_ID_Key; + + }; + +#include "cfsccontactactionplugin.inl" +// + +#endif // C_FSCCONTACTACTIONPLUGIN_H