diff -r 000000000000 -r 72b543305e3a email/imum/Mtms/Inc/MsvPop3CopyMoveOperation.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/email/imum/Mtms/Inc/MsvPop3CopyMoveOperation.h Thu Dec 17 08:44:11 2009 +0200 @@ -0,0 +1,111 @@ +/* +* 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: +* Operation to copy or move messages +* +*/ + +#ifndef __MSVPOP3COPYMOVEOPERATION_H__ +#define __MSVPOP3COPYMOVEOPERATION_H__ + +#include +#include +#include "ImumDiskSpaceObserverOperation.h" + +#include "ImumMtmLogging.h" + +class CMsvEmailConnectionProgressProvider; + +/** +* CMsvPop3CopyMoveOperation +* Operation to copy or move messages, supporting complete and incomplete messages. +*/ +class CMsvPop3CopyMoveOperation : + public CImumDiskSpaceObserverOperation + { + public: + + /** + * + */ + static CMsvPop3CopyMoveOperation* NewL( + CImumInternalApi& aMailboxApi, + TRequestStatus& aObserverRequestStatus, + MMsvProgressReporter& aReporter, + TMsvId aService, TMsvId aTarget, + const CMsvEntrySelection& aSel, + TBool aMoveMsgs=EFalse ); + + /** + * + */ + virtual ~CMsvPop3CopyMoveOperation(); + + /** + * + */ + virtual const TDesC8& GetErrorProgressL( TInt aError ); + + protected: + + /** + * From CActive + */ + virtual void DoRunL(); + + /** + * + */ + void SortMessageSelectionL( const CMsvEntrySelection& aSel ); + + /** + * + */ + void DoLocalCopyMoveL(); + + /** + * + */ + void DoRemoteFetchL(); + private: + + /** + * + */ + CMsvPop3CopyMoveOperation( + CImumInternalApi& aMailboxApi, + TRequestStatus& aObserverRequestStatus, + MMsvProgressReporter& aReporter, + TMsvId aService, + TMsvId aTarget, + TBool aMoveMsgs ); + + /** + * + */ + void ConstructL( const CMsvEntrySelection& aSel ); + + private: // Data + enum TState { EIdle, ELocalMsgs, ERemoteMsgs }; + TState iState; + TBool iMoving; + TMsvId iTarget; + CMsvEntrySelection* iLocalSel; // Complete messages + CMsvEntrySelection* iRemoteSel; // Incomplete messages to be fetched. + TPckgBuf iErrorProgress; + }; + +#endif + +// End of File