diff -r ebe688cedc25 -r 7fdbb852d323 email/imum/Mtms/Src/ImumDisconnectOperation.cpp --- /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 +#include +#include + +#include // CImumInternalApi +#include +#include +#include +#include // KUidMsvLocalServiceMtm +#include // CImEmailOperation +#include +#include + +#include +#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& 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; + } +