diff -r 000000000000 -r 72b543305e3a email/imum/Mtms/Inc/ImumFetchAndEditOperation.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/email/imum/Mtms/Inc/ImumFetchAndEditOperation.h Thu Dec 17 08:44:11 2009 +0200 @@ -0,0 +1,106 @@ +/* +* 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: +* Common email MTM wrapper operation +* +*/ + + +#ifndef __IMUMFETCHANDEDITOPERATION_H__ +#define __IMUMFETCHANDEDITOPERATION_H__ + +#include +#include "PROGTYPE.H" +#include "ImumDiskSpaceObserverOperation.h" +#include "ImumEditOperation.h" + +class CEikonEnv; +class CBaseMtmUi; +class CMsvEntrySelection; +class MMsvProgressReporter; + +/** +* class CImumFetchAndEditOperation +* +* Common email MTM wrapper operation that takes an active operation that +* fetches a message, and launches an editor when the fetch completes. +*/ +class CImumFetchAndEditOperation : + public CImumDiskSpaceObserverOperation + { + public: + /** + * + */ + static CImumFetchAndEditOperation* NewL( + CImumInternalApi& aMailboxApi, + TRequestStatus& aObserverRequestStatus, + MMsvProgressReporter& aReporter, + const TEmailEditParams& aParams, + TBool aAckReceipts); + + /** + * + */ + virtual ~CImumFetchAndEditOperation(); + + /** + * For reporting DoRunL leaves. + */ + virtual const TDesC8& GetErrorProgressL(TInt aError); + + /** + * + */ + void SetFetchOpL(CMsvOperation* aFetchOp); + + /** + * + */ + TRequestStatus& RequestStatus(); + + protected: + + /** + * + */ + virtual void DoRunL(); + private: + /** + * + */ + CImumFetchAndEditOperation( + CImumInternalApi& aMailboxApi, + TRequestStatus& aObserverRequestStatus, + MMsvProgressReporter& aReporter, + const TEmailEditParams& aParams, + TBool aAckReceipts); + + /** + * + */ + void DoEditL(); + + private: + enum TFetchAndEditState { EStateIdle, EStateFetching, EStateEditing, EStateComplete }; + TFetchAndEditState iState; + TEmailEditParams iEditParams; + TUid iActualMtm; + TPckgBuf iLocalProgress; + TBool iAckReceipts; + }; + +#endif + +// End of File