--- /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