messagingfw/deprecate/send_ui_plugin_api/inc/CSendingService.h
branchRCL_3
changeset 22 d2c4c66342f3
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/messagingfw/deprecate/send_ui_plugin_api/inc/CSendingService.h	Tue Aug 31 15:41:11 2010 +0300
@@ -0,0 +1,142 @@
+/*
+* Copyright (c) 2002-2006 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:   Declares sending service interface for ECom plugins.
+*
+*/
+
+
+#ifndef C_SENDINGSERVICE_H
+#define C_SENDINGSERVICE_H
+
+#include <e32base.h>
+#include <badesca.h>
+#include <txtrich.h>
+
+class CSendingServiceInfo;
+class CMessageData;
+class CCoeEnv;
+class CSendUiSingleton;
+
+
+/**
+ * Parameters for sending service construction.
+ */
+struct TSendingServiceParams
+	{
+	// Constructor
+	TSendingServiceParams( CCoeEnv& aCoeEnv, CSendUiSingleton& aSingleton )
+	    : iCoeEnv( aCoeEnv ), iSingleton( aSingleton ) {}
+	// Data
+	CCoeEnv& iCoeEnv;
+	CSendUiSingleton& iSingleton;
+	};
+
+
+/**
+ * Declares sending service interface for ECom plugins.
+ *
+ * CSendingService has to be implemented by each ECom based sending service.
+ * CSendingService contains only pure virtual methods, which must be 
+ * implemented by sending services.
+ *
+ * @lib Sendui
+ * @since S60 v3.0
+ */
+class CSendingService : public CBase
+    {
+public:  // Constructors and destructor
+
+   /**
+    * Two-phased constructor.
+    *
+    * @param aImplementationUid The implementation UID of the
+    *        sending service to be created.
+    * @return Pointer to object of CSendingService
+    */
+    IMPORT_C static CSendingService* NewL( const TUid& aImplementationUid, CCoeEnv& aCoeEnv, CSendUiSingleton& aSingleton );
+
+    /**
+    * Destructor.
+    */
+    IMPORT_C virtual ~CSendingService();
+
+public: // New functions
+
+   /**
+    * Populates given list with the provided services. Ownership of the
+    * pointed services remains in the service provider plugin.
+    *
+    * @since Series 60 3.0
+    * @param aList Service list to be populated. 
+    * @return none
+    */
+    virtual void PopulateServicesListL(
+        RPointerArray<CSendingServiceInfo>& aList ) = 0;
+
+    /**
+    * Creates message to be sent and either sends it directly or calls
+    * MTM to edit the message.
+    *
+    * @since Series 60 3.0
+    * @param aServiceUid Uid of the sending service.
+    * @param aMessageData Data for the message.
+    * @return none
+    */
+    virtual void CreateAndSendMessageL(
+        TUid aServiceUid,
+        const CMessageData* aMessageData,
+        TBool aLaunchEditorEmbedded = ETrue) = 0;
+
+   /**
+    * Return the Id of the service provider.
+    *
+    * @since Series 60 3.0
+    * @return Id of the service provider.
+    */
+    virtual TUid ServiceProviderId() const = 0;
+
+protected:
+
+    /**
+    * C++ constructor
+    */    
+    IMPORT_C CSendingService( CCoeEnv& aCoeEnv, CSendUiSingleton& aSingleton );
+
+private:  // Data
+  
+    /**
+     * Implementation UID of the sending service
+     * Not own.
+     */
+    TUid iDtor_ID_Key;
+
+protected:
+
+    /**
+     * Reference to CCoeEnv
+     * Not own.
+     */
+    CCoeEnv& iCoeEnv;
+
+    /**
+     * Pointer to CSendUiSingleton;
+     * Not own.
+     */
+    CSendUiSingleton& iSingleton;
+        
+};
+
+#endif      // C_SENDINGSERVICE_H
+
+// End of File