mobilemessaging/unieditor/pluginapi/inc/UniPluginApi.h
changeset 0 72b543305e3a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mobilemessaging/unieditor/pluginapi/inc/UniPluginApi.h	Thu Dec 17 08:44:11 2009 +0200
@@ -0,0 +1,180 @@
+/*
+* Copyright (c) 2005-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:  
+*       UniEditor Plugin interface definition.
+*
+*/
+
+
+
+#ifndef __UNIPLUGINAPI_H
+#define __UNIPLUGINAPI_H
+
+// INCLUDES
+#include <e32base.h>
+#include <msvstd.h>
+#include <mtclbase.h>
+#include <gsmuelem.h>
+
+// DATA TYPES
+
+// FORWARD DECLARATIONS
+class CMsvSession;
+class CMsvStore;
+class CMsvOperation;
+class CUniClientMtm;
+class TUniSendingSettings;
+
+// CLASS DECLARATION
+
+struct TUniPluginParams
+	{
+	// Constructor
+	TUniPluginParams( CMsvSession& aSession, CUniClientMtm& aUniMtm )
+	    : iSession( aSession ), iUniMtm( aUniMtm ) {}
+	// Data
+	CMsvSession& iSession;
+	CUniClientMtm& iUniMtm;
+	};
+
+/**
+* CUniEditorPlugin
+*/ 
+class CUniEditorPlugin : public CBase
+    {
+    public:  // Constructors and destructor
+
+        /**
+        * Two-phased constructor.
+        * @param aImplementationUid The implementation UID of the
+        *        MTM plugin to be created.
+        * @return Pointer to object of CUniEditorPlugin
+        */
+        IMPORT_C static CUniEditorPlugin* NewL(
+            const TUid& aImplementationUid,
+            CMsvSession& aSession,
+            CUniClientMtm& aUniMtm );
+
+        /**
+        * Destructor.
+        */
+        IMPORT_C virtual ~CUniEditorPlugin();
+
+    public: // New functions
+
+        /**
+        * Loads MTM Specific headers for a message
+        * @param aStore Read only store
+        */
+        virtual void LoadHeadersL( CMsvStore* aStore ) = 0;
+        
+        /**
+        * Saves MTM Specific headers for message
+        * @param aStore Read/write store
+        */
+        virtual void SaveHeadersL( CMsvStore& aStore ) = 0;
+        
+        /**
+        * Converts MTM specific message into unified message type
+        * @param aId TMsvId of the message to be converted
+        * @return TmsvId of the converted message
+        */
+        virtual TMsvId ConvertFromL( TMsvId aId ) = 0;
+
+        /**
+        * Converts unified message into MTM specific message 
+        * @param aId TMsvId of the message to be converted
+        * @return TmsvId of the converted message
+        */
+        virtual TMsvId ConvertToL( TMsvId aId ) = 0;
+        
+        /**
+        * Creates unified reply message 
+        * @param aSrc TMsvId of MTM specific message to be replied
+        * @param aDest The folder entry to which to assign the reply message
+        * @param aParts The parts that are to be copied from the original message 
+        *               into the reply 
+        * @return TmsvId of the new unified message message
+        */
+        virtual TMsvId CreateReplyL( TMsvId aSrc, TMsvId aDest, TMsvPartList aParts ) = 0;
+
+        /**
+        * Creates unified forward message based on MTM specific message 
+        * @param aSrc TMsvId of the message to be converted
+        * @param aDest The folder entry to which to assign the forwarded message 
+        * @param aParts The parts that are to be copied from the original message 
+        *               into the forward message 
+        * @return TmsvId of the new unified message
+        */
+        virtual TMsvId CreateForwardL( TMsvId aSrc, TMsvId aDest, TMsvPartList aParts ) = 0;
+                
+        /**
+        * Sends a message which has already been converted into MTM specifc message
+        * @param aId, TMsvId of the message to be sent
+        */
+        virtual void SendL( TMsvId aId ) = 0;
+
+        /**
+        * Validates settings. Parameter only needed for SMS messages.
+        * @param aEmailOverSms, boolean informing if this message is a E-Mail over SMS message
+        * @return ETrue/EFalse , valid or invalid
+        */
+        virtual TBool ValidateServiceL( TBool aEmailOverSms = EFalse ) = 0;
+
+        /**
+        * Copies MTM specific settings into parameter
+        * @param aSettings, on return contains MTM specific settings
+        */
+        virtual void GetSendingSettingsL( TUniSendingSettings& aSettings ) = 0;
+
+        /**
+        * Sets MTM specific sending settings based on TUniSendingSettings
+        * @param aSettings Unified sending settings
+        */
+        virtual void SetSendingSettingsL( TUniSendingSettings& aSettings ) = 0;
+
+        /**
+        * Checks whether service settings are valid.
+        * @return ETrue/EFalse, valid or invalid
+        */
+        virtual TBool IsServiceValidL() = 0;
+
+        /**
+         * To Set encoding settings like encoding type, character support
+         * and alternative encoding if any
+         * Turkish SMS-PREQ2265 Specific 
+         */
+        virtual void SetEncodingSettings (TBool aUnicodeMode, TSmsEncoding aAlternativeEncodingType, TInt aCharSupportType) = 0;
+        
+        /**
+         * To get PDU Info: extracts details of number of PDUs, number of remaining chars in last PDU
+         * and encoding types used.
+         * Turkish SMS-PREQ2265 Specific
+         */
+        virtual void GetNumPDUsL (
+                TDesC& aBuf,
+                TInt& aNumOfRemainingChars,
+                TInt& aNumOfPDUs,
+                TBool& aUnicodeMode, 
+                TSmsEncoding& aAlternativeEncodingType) = 0;
+        
+    private:  // Data
+        // Implementation UID of the sending service
+        TUid iDtor_ID_Key;
+
+    };
+
+#endif      // __UNIPLUGINAPI_H
+
+// End of File