diff -r ebe688cedc25 -r 7fdbb852d323 email/mail/ViewerSrc/CMailForwardOperation.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/email/mail/ViewerSrc/CMailForwardOperation.h Wed Sep 01 12:31:54 2010 +0100 @@ -0,0 +1,122 @@ +/* +* Copyright (c) 2002-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: Handles Message forwarding +* +*/ + + + +#ifndef CMAILFORWARDOPERATION_H +#define CMAILFORWARDOPERATION_H + +// INCLUDES +#include + +#include "cmailoperation.h" +#include "MMessageLoadObserver.h" +// FORWARD DECLARATIONS +class CMsgMailViewerDocument; +class MMsvProgressReporter; + + +// CLASS DECLARATION + +/** +* Forward operation +* +* @since S60 3.0 +*/ +class CMailForwardOperation : public CMailOperation, MMessageLoadObserver + { + public: // Constructors and destructor + + /** + * Two-phased constructor. + * @param aReporter UI progress reporter. + * @param aDocument Mail viewer document. + * @param aObserverRequestStatus completion status. + * @parma aSuspend ETrue if operatino should be suspended. + */ + static CMailForwardOperation* NewL( + MMsvProgressReporter& aReporter, + CMsgMailViewerDocument& aDocument, + TRequestStatus& aObserverRequestStatus, + TBool aSetSuspend ); + + /** + * Destructor. + */ + ~CMailForwardOperation(); + + private: // Functions from base classes + + // From CMailOperation + void SuspendL( TBool aSetSuspend ); + TBool CompletedL( TInt aCompletionCode ); + + // From CMsvOperation + const TDesC8& ProgressL(); + + // From CActive + void DoCancel(); + void RunL(); + TInt RunError( TInt aError ); + + // From MMessageLoadObserver + void MessageLoadingL( TInt aStatus, CMailMessage& aMessage ); + + private: + + /** + * C++ constructor. + */ + CMailForwardOperation( + CMsgMailViewerDocument& aDocument, + TRequestStatus& aObserverRequestStatus ); + + /** + * By default Symbian 2nd phase constructor is private. + */ + void ConstructL(); + + private: // Implementation + void CompleteObserver( TInt aStatus ); + void ConnectToServiceL(); + void CheckAttachmentsL(); + void LoadAttachmentsL(); + void FetchAttachmentsL( + CMsvEntrySelection& aSelection, TInt aMaxSize ); + void FetchAttachmentsL( CMsvEntrySelection& aSelection ); + void ForwardMessageL(); + void UpdateEntryFlagsL(); + TBool NexStateL(); + // TBool ShowDRMNotesL(); + + private: // Data + // Own: operation to complete + CMsvOperation* iOperation; + // Own: attachment selection + CMsvEntrySelection* iSelection; + // Ref: mail viewer document + CMsgMailViewerDocument& iDocument; + // Ref: UI progress reporter + MMsvProgressReporter* iReporter; + // Operation internal state + TInt iOperationState; + + }; + +#endif // CMAILFORWARDOPERATION_H + +// End of File