emailcontacts/contactactionservice/inc/cfsccontactactionservice.h
changeset 0 8466d47a6819
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/emailcontacts/contactactionservice/inc/cfsccontactactionservice.h	Thu Dec 17 08:39:21 2009 +0200
@@ -0,0 +1,170 @@
+/*
+* 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 CFscContactActionService.
+*
+*/
+
+
+#ifndef C_FSCCONTACTACTIONSERVICE_H
+#define C_FSCCONTACTACTIONSERVICE_H
+
+#include <e32base.h>
+
+//<cmail>
+#include "fsccontactactionservicedefines.h"
+//</cmail>
+
+// FORWARD DECLARATIONS
+class CVPbkContactManager;
+class MFscContactAction;
+class MFscContactLinkIterator;
+class MFscContactActionServiceObserver;
+
+/**
+ *  Contact Action Service API.
+ *  Defines an ECom interface for the Contact Action Service.
+ *
+ *  @since S60 3.1
+ */
+class CFscContactActionService : public CBase
+    {
+
+public: // Public constructor and destructor
+
+    /**
+     * Two-phased constructor.
+     *
+     * @return Pointer to new instance of CFscContactActionService   
+     */
+    static inline CFscContactActionService* NewL( 
+            CVPbkContactManager& aContactManager );
+
+    /**
+     * Destructor.
+     */
+    virtual ~CFscContactActionService();
+    
+public: // Public methods
+
+    /**
+     * 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 ) = 0;
+    
+    /**
+     * 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 ) = 0;
+    
+    /**
+     * 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.
+     */
+    virtual void QueryActionsL(
+        MFscContactActionServiceObserver* aObserver,
+        TBool aStopWhenOneActionFound = EFalse,
+        TUint64 aActionTypeFlags = KFscAtDefault, 
+        TInt aMinPriority = 0 ) = 0;
+    
+    /**
+     * Cancels async method QueryActionsL.
+     */
+    virtual void CancelQueryActions() = 0; 
+
+    /**
+     * Return action query results.
+     * Empty list is returned if no queries has been done
+     *
+     * @return action query result list
+     */
+    virtual const CFscContactActionList& QueryResults() const = 0; 
+
+    /**
+     * Execute action.
+     * Asynchronous. Data is ready when observer's ExecuteComplete 
+     * mthod is invoked.
+     *
+     * @param aActionUid uid of action to be executed
+     */
+    virtual void ExecuteL( 
+        TUid aActionUid, 
+        MFscContactActionServiceObserver* aObserver ) = 0;
+    
+    /**
+     * Cancels async method ExecuteL.
+     */
+    virtual void CancelExecute() = 0;
+                                         
+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;
+
+    };
+
+/**
+ *  Construction parameters for Action Menu
+ *
+ *  @since S60 3.1
+ */
+class TFscContactActionServiceConstructParameters
+    {
+
+public: // Public methods
+
+    /**
+     * Constructor
+     *
+     * @param aService Pointer to Contact Action Service
+     * @param aMode Menu mode
+     */
+    TFscContactActionServiceConstructParameters( 
+        CVPbkContactManager& aVPbkContactManager ) 
+        : iVPbkContactManager( aVPbkContactManager ) {}
+   
+public: // Public members
+
+    /**
+     * Reference to virtual phonebook contact manager.
+     */
+    CVPbkContactManager& iVPbkContactManager;
+
+    };
+
+#include "cfsccontactactionservice.inl"
+
+#endif // C_FSCCONTACTACTIONSERVICE_H