--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/email/imum/Mtms/Src/ImumDisconnectOperation.cpp Wed Sep 01 12:31:54 2010 +0100
@@ -0,0 +1,177 @@
+/*
+* Copyright (c) 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:
+* Very simple layer over base class just for setting up progress reporter
+*
+*/
+
+
+#include <eikenv.h>
+#include <eikrutil.h>
+#include <coehelp.h>
+
+#include <ImumInternalApi.h> // CImumInternalApi
+#include <MsvPrgReporter.h>
+#include <MTMStore.h>
+#include <mtmuibas.h>
+#include <msvuids.h> // KUidMsvLocalServiceMtm
+#include <miutmsg.h> // CImEmailOperation
+#include <miutset.h>
+#include <SenduiMtmUids.h>
+
+#include <imum.rsg>
+#include "ImumDisconnectOperation.h"
+#include "EmailUtils.H"
+#include "ImumMtmLogging.h"
+
+const TInt KEmailDisconnectOpPriority = CActive::EPriorityStandard;
+
+// ----------------------------------------------------------------------------
+// CImumDisconnectOperation::
+//
+// ----------------------------------------------------------------------------
+CImumDisconnectOperation* CImumDisconnectOperation::NewL(CImumInternalApi& aMailboxApi, TRequestStatus& aObserverRequestStatus, MMsvProgressReporter& aReporter, TMsvId aService, TInt aFunctionId, TUid aMtmType)
+ {
+ IMUM_STATIC_CONTEXT( CImumDisconnectOperation::NewL, 0, mtm, KImumMtmLog );
+ IMUM_IN();
+
+ CImumDisconnectOperation* op = new(ELeave) CImumDisconnectOperation(aMailboxApi, aObserverRequestStatus, aReporter, aService);
+ CleanupStack::PushL(op);
+ op->ConstructL(aFunctionId, aMtmType);
+ CleanupStack::Pop();
+ IMUM_OUT();
+ return op;
+ }
+
+// ----------------------------------------------------------------------------
+// CImumDisconnectOperation::
+//
+// ----------------------------------------------------------------------------
+CImumDisconnectOperation::~CImumDisconnectOperation()
+ {
+ IMUM_CONTEXT( CImumDisconnectOperation::~CImumDisconnectOperation, 0, KImumMtmLog );
+ IMUM_IN();
+ IMUM_OUT();
+
+ }
+
+// ----------------------------------------------------------------------------
+// CImumDisconnectOperation::
+//
+// ----------------------------------------------------------------------------
+const TDesC8& CImumDisconnectOperation::GetErrorProgressL(TInt /*aError*/)
+ {
+ IMUM_CONTEXT( CImumDisconnectOperation::GetErrorProgressL, 0, KImumMtmLog );
+ IMUM_IN();
+ IMUM_OUT();
+
+ // Never gets called since iError always == KErrNone, because DoRunL() cannot leave.
+ return iDummyProg;
+ }
+
+// ----------------------------------------------------------------------------
+// ProgressL
+//
+// ----------------------------------------------------------------------------
+const TDesC8& CImumDisconnectOperation::ProgressL()
+ {
+ IMUM_CONTEXT( CImumDisconnectOperation::ProgressL, 0, KImumMtmLog );
+ IMUM_IN();
+ IMUM_OUT();
+
+ return iDummyProg;
+ }
+
+// ----------------------------------------------------------------------------
+// CImumDisconnectOperation::
+//
+// ----------------------------------------------------------------------------
+void CImumDisconnectOperation::DoRunL()
+ {
+ IMUM_CONTEXT( CImumDisconnectOperation::DoRunL, 0, KImumMtmLog );
+ IMUM_IN();
+
+ CompleteObserver();
+ IMUM_OUT();
+ }
+
+// ----------------------------------------------------------------------------
+// CImumDisconnectOperation::
+//
+// ----------------------------------------------------------------------------
+CImumDisconnectOperation::CImumDisconnectOperation(
+ CImumInternalApi& aMailboxApi,
+ TRequestStatus& aObserverRequestStatus,
+ MMsvProgressReporter& aReporter,
+ TMsvId aService)
+ :
+ CImumOnlineOperation(
+ aMailboxApi,
+ KEmailDisconnectOpPriority,
+ aObserverRequestStatus,
+ aReporter)
+ {
+ IMUM_CONTEXT( CImumDisconnectOperation::CImumDisconnectOperation, 0, KImumMtmLog );
+ IMUM_IN();
+
+ iService = aService;
+ IMUM_OUT();
+ }
+
+// ----------------------------------------------------------------------------
+// CImumDisconnectOperation::
+//
+// ----------------------------------------------------------------------------
+void CImumDisconnectOperation::ConstructL(TInt aFunctionId, TUid aMtmType)
+ {
+ IMUM_CONTEXT( CImumDisconnectOperation::ConstructL, 0, KImumMtmLog );
+ IMUM_IN();
+
+ BaseConstructL(aMtmType);
+ iReporter.SetTitleL( R_EMAIL_DISCONNECT );
+ iReporter.SetProgressDecoder(*this);
+ iReporter.SetCanCancelL( EFalse );
+
+ InvokeClientMtmAsyncFunctionL(aFunctionId, iService, iService);
+ SetActive();
+ IMUM_OUT();
+ }
+
+// ----------------------------------------------------------------------------
+// CImumDisconnectOperation::
+//
+// ----------------------------------------------------------------------------
+TInt CImumDisconnectOperation::DecodeProgress(
+ const TDesC8& /*aProgress*/,
+ TBuf<CBaseMtmUi::EProgressStringMaxLen>& aReturnString,
+ TInt& aTotalEntryCount,
+ TInt& aEntriesDone,
+ TInt& aCurrentEntrySize,
+ TInt& aCurrentBytesTrans,
+ TBool /*aInternal*/)
+ {
+ IMUM_CONTEXT( CImumDisconnectOperation::DecodeProgress, 0, KImumMtmLog );
+ IMUM_IN();
+
+ aTotalEntryCount=0; // No quantitative progress to return
+ aEntriesDone=0;
+ aCurrentEntrySize=0;
+ aCurrentBytesTrans=0;
+
+ aReturnString.Zero(); // when returning zero then muiu does not change current progress.
+ IMUM_OUT();
+
+ return KErrNone;
+ }
+