ipsservices/ipssosplugin/src/ipsplgmessagepartstoreroperation.cpp
changeset 20 ecc8def7944a
parent 18 578830873419
child 27 9ba4404ef423
--- a/ipsservices/ipssosplugin/src/ipsplgmessagepartstoreroperation.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/ipsservices/ipssosplugin/src/ipsplgmessagepartstoreroperation.cpp	Mon May 03 12:23:15 2010 +0300
@@ -17,9 +17,8 @@
 
 #include <utf.h>
 
-#include "ipsplgmessagepartstoreroperation.h"
-#include "CFSMailPlugin.h"
 #include "emailtrace.h"
+#include "ipsplgheaders.h"
 
 // ---------------------------------------------------------------------------
 // ---------------------------------------------------------------------------
@@ -78,6 +77,21 @@
 // ---------------------------------------------------------------------------
 void CIpsPlgMessagePartStorerOperation::DoCancel()
     {
+    // <qmail>
+    TRequestStatus* status = &iObserverRequestStatus;
+    if ( status && status->Int() == KRequestPending )
+        {
+        if (&iFSOperationObserver)
+            {
+            iFSProgress.iProgressStatus = TFSProgress::EFSStatus_RequestCancelled;
+            iFSProgress.iError = KErrCancel;
+            iFSProgress.iParam = NULL;
+
+            TRAP_IGNORE( iFSOperationObserver.RequestResponseL( iFSProgress, iFSRequestId ) );
+            }
+        User::RequestComplete( status, iStatus.Int() );
+        }
+    // </qmail>
     FUNC_LOG;
     }
 
@@ -89,6 +103,36 @@
     return KNullDesC8;
     }
 
+// <qmail>
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//   
+const TDesC8& CIpsPlgMessagePartStorerOperation::GetErrorProgressL( TInt /*aError*/ )
+    {
+    FUNC_LOG;
+    
+    return KNullDesC8; // error progress info not supported
+    }
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//   
+TFSProgress CIpsPlgMessagePartStorerOperation::GetFSProgressL() const
+    {
+    FUNC_LOG;
+    
+    return iFSProgress;
+    }
+
+// ----------------------------------------------------------------------------
+// ----------------------------------------------------------------------------    
+TIpsOpType CIpsPlgMessagePartStorerOperation::IpsOpType() const
+    {
+    FUNC_LOG;
+    return EIpsOpTypeMessagePartStorerOp;
+    }
+// </qmail>
+
 // ---------------------------------------------------------------------------
 // ---------------------------------------------------------------------------
 CIpsPlgMessagePartStorerOperation::CIpsPlgMessagePartStorerOperation(
@@ -96,10 +140,12 @@
         CFSMailPlugin& aPlugin,
         RPointerArray<CFSMailMessagePart> &aMessageParts,
         MFSMailRequestObserver& aFSOperationObserver, const TInt aRequestId) :
-    CMsvOperation(aMsvSession, CActive::EPriorityStandard,
-            aObserverRequestStatus), iPlugin(aPlugin), iMessageParts(
-            aMessageParts), iFSOperationObserver(aFSOperationObserver),
-            iRequestId(aRequestId), iExecutionIndex(0), iDataBuffer(NULL)
+    CIpsPlgBaseOperation(aMsvSession, aObserverRequestStatus, aRequestId, TFSMailMsgId()), 
+    iPlugin(aPlugin), 
+    iMessageParts(aMessageParts), 
+    iFSOperationObserver(aFSOperationObserver),
+    iExecutionIndex(0), 
+    iDataBuffer(NULL)
     {
     FUNC_LOG;
     }
@@ -133,11 +179,13 @@
 		{
 		if (&iFSOperationObserver)
 			{
-			TFSProgress prog =
-				{
-				TFSProgress::EFSStatus_RequestComplete, 0, 0, 0
-				};
-			TRAP_IGNORE( iFSOperationObserver.RequestResponseL( prog, iRequestId ) );
+		    // <qmail>
+		    iFSProgress.iProgressStatus = TFSProgress::EFSStatus_RequestComplete;
+	        iFSProgress.iError = KErrNone;
+	        iFSProgress.iParam = NULL;
+
+			TRAP_IGNORE( iFSOperationObserver.RequestResponseL( iFSProgress, iFSRequestId ) );
+			// </qmail>
 			}
 		TRequestStatus* status = &iObserverRequestStatus;
 		User::RequestComplete(status, KErrNone);