ipsservices/ipssosplugin/src/ipsplgmessagepartstoreroperation.cpp
changeset 20 ecc8def7944a
parent 18 578830873419
child 27 9ba4404ef423
equal deleted inserted replaced
18:578830873419 20:ecc8def7944a
    15  *
    15  *
    16  */
    16  */
    17 
    17 
    18 #include <utf.h>
    18 #include <utf.h>
    19 
    19 
    20 #include "ipsplgmessagepartstoreroperation.h"
       
    21 #include "CFSMailPlugin.h"
       
    22 #include "emailtrace.h"
    20 #include "emailtrace.h"
       
    21 #include "ipsplgheaders.h"
    23 
    22 
    24 // ---------------------------------------------------------------------------
    23 // ---------------------------------------------------------------------------
    25 // ---------------------------------------------------------------------------
    24 // ---------------------------------------------------------------------------
    26 CIpsPlgMessagePartStorerOperation* CIpsPlgMessagePartStorerOperation::NewL(
    25 CIpsPlgMessagePartStorerOperation* CIpsPlgMessagePartStorerOperation::NewL(
    27         CMsvSession& aMsvSession, TRequestStatus& aObserverRequestStatus,
    26         CMsvSession& aMsvSession, TRequestStatus& aObserverRequestStatus,
    76 
    75 
    77 // ---------------------------------------------------------------------------
    76 // ---------------------------------------------------------------------------
    78 // ---------------------------------------------------------------------------
    77 // ---------------------------------------------------------------------------
    79 void CIpsPlgMessagePartStorerOperation::DoCancel()
    78 void CIpsPlgMessagePartStorerOperation::DoCancel()
    80     {
    79     {
       
    80     // <qmail>
       
    81     TRequestStatus* status = &iObserverRequestStatus;
       
    82     if ( status && status->Int() == KRequestPending )
       
    83         {
       
    84         if (&iFSOperationObserver)
       
    85             {
       
    86             iFSProgress.iProgressStatus = TFSProgress::EFSStatus_RequestCancelled;
       
    87             iFSProgress.iError = KErrCancel;
       
    88             iFSProgress.iParam = NULL;
       
    89 
       
    90             TRAP_IGNORE( iFSOperationObserver.RequestResponseL( iFSProgress, iFSRequestId ) );
       
    91             }
       
    92         User::RequestComplete( status, iStatus.Int() );
       
    93         }
       
    94     // </qmail>
    81     FUNC_LOG;
    95     FUNC_LOG;
    82     }
    96     }
    83 
    97 
    84 // ---------------------------------------------------------------------------
    98 // ---------------------------------------------------------------------------
    85 // ---------------------------------------------------------------------------
    99 // ---------------------------------------------------------------------------
    86 const TDesC8& CIpsPlgMessagePartStorerOperation::ProgressL()
   100 const TDesC8& CIpsPlgMessagePartStorerOperation::ProgressL()
    87     {
   101     {
    88     FUNC_LOG;
   102     FUNC_LOG;
    89     return KNullDesC8;
   103     return KNullDesC8;
    90     }
   104     }
       
   105 
       
   106 // <qmail>
       
   107 // ---------------------------------------------------------------------------
       
   108 // ---------------------------------------------------------------------------
       
   109 //   
       
   110 const TDesC8& CIpsPlgMessagePartStorerOperation::GetErrorProgressL( TInt /*aError*/ )
       
   111     {
       
   112     FUNC_LOG;
       
   113     
       
   114     return KNullDesC8; // error progress info not supported
       
   115     }
       
   116 
       
   117 // ---------------------------------------------------------------------------
       
   118 // ---------------------------------------------------------------------------
       
   119 //   
       
   120 TFSProgress CIpsPlgMessagePartStorerOperation::GetFSProgressL() const
       
   121     {
       
   122     FUNC_LOG;
       
   123     
       
   124     return iFSProgress;
       
   125     }
       
   126 
       
   127 // ----------------------------------------------------------------------------
       
   128 // ----------------------------------------------------------------------------    
       
   129 TIpsOpType CIpsPlgMessagePartStorerOperation::IpsOpType() const
       
   130     {
       
   131     FUNC_LOG;
       
   132     return EIpsOpTypeMessagePartStorerOp;
       
   133     }
       
   134 // </qmail>
    91 
   135 
    92 // ---------------------------------------------------------------------------
   136 // ---------------------------------------------------------------------------
    93 // ---------------------------------------------------------------------------
   137 // ---------------------------------------------------------------------------
    94 CIpsPlgMessagePartStorerOperation::CIpsPlgMessagePartStorerOperation(
   138 CIpsPlgMessagePartStorerOperation::CIpsPlgMessagePartStorerOperation(
    95         CMsvSession& aMsvSession, TRequestStatus& aObserverRequestStatus,
   139         CMsvSession& aMsvSession, TRequestStatus& aObserverRequestStatus,
    96         CFSMailPlugin& aPlugin,
   140         CFSMailPlugin& aPlugin,
    97         RPointerArray<CFSMailMessagePart> &aMessageParts,
   141         RPointerArray<CFSMailMessagePart> &aMessageParts,
    98         MFSMailRequestObserver& aFSOperationObserver, const TInt aRequestId) :
   142         MFSMailRequestObserver& aFSOperationObserver, const TInt aRequestId) :
    99     CMsvOperation(aMsvSession, CActive::EPriorityStandard,
   143     CIpsPlgBaseOperation(aMsvSession, aObserverRequestStatus, aRequestId, TFSMailMsgId()), 
   100             aObserverRequestStatus), iPlugin(aPlugin), iMessageParts(
   144     iPlugin(aPlugin), 
   101             aMessageParts), iFSOperationObserver(aFSOperationObserver),
   145     iMessageParts(aMessageParts), 
   102             iRequestId(aRequestId), iExecutionIndex(0), iDataBuffer(NULL)
   146     iFSOperationObserver(aFSOperationObserver),
       
   147     iExecutionIndex(0), 
       
   148     iDataBuffer(NULL)
   103     {
   149     {
   104     FUNC_LOG;
   150     FUNC_LOG;
   105     }
   151     }
   106 
   152 
   107 // ---------------------------------------------------------------------------
   153 // ---------------------------------------------------------------------------
   131 	
   177 	
   132 	if (!StoreNextPartL())
   178 	if (!StoreNextPartL())
   133 		{
   179 		{
   134 		if (&iFSOperationObserver)
   180 		if (&iFSOperationObserver)
   135 			{
   181 			{
   136 			TFSProgress prog =
   182 		    // <qmail>
   137 				{
   183 		    iFSProgress.iProgressStatus = TFSProgress::EFSStatus_RequestComplete;
   138 				TFSProgress::EFSStatus_RequestComplete, 0, 0, 0
   184 	        iFSProgress.iError = KErrNone;
   139 				};
   185 	        iFSProgress.iParam = NULL;
   140 			TRAP_IGNORE( iFSOperationObserver.RequestResponseL( prog, iRequestId ) );
   186 
       
   187 			TRAP_IGNORE( iFSOperationObserver.RequestResponseL( iFSProgress, iFSRequestId ) );
       
   188 			// </qmail>
   141 			}
   189 			}
   142 		TRequestStatus* status = &iObserverRequestStatus;
   190 		TRequestStatus* status = &iObserverRequestStatus;
   143 		User::RequestComplete(status, KErrNone);
   191 		User::RequestComplete(status, KErrNone);
   144 		}
   192 		}
   145 	}
   193 	}