diff -r 000000000000 -r 72b543305e3a mobilemessaging/mmsui/viewerinc/MmsViewerLaunchOperation.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mobilemessaging/mmsui/viewerinc/MmsViewerLaunchOperation.h Thu Dec 17 08:44:11 2009 +0200 @@ -0,0 +1,171 @@ +/* +* 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: +* CMmsViewerLaunchOperation, asynchronous operation for object saving +* +*/ + + + + +#ifndef __MMSVIEWERLAUNCHOPERATION_H +#define __MMSVIEWERLAUNCHOPERATION_H + +// INCLUDES + +#include +#include + +#include +#include + +#include "UniMmsViewerDocument.h" +#include "MmsViewerOperation.h" + +// CONSTANTS + +// MACROS + +// FORWARD DECLARATIONS + +class CMsgEditorView; +class CMmsViewerHeader; + +// DATA TYPES + +// FUNCTION PROTOTYPES + +// CLASS DECLARATION + +/** +* CMmsViewerLaunchOperation, Storage for single attachment in presentation. +* +* @since 2.0 +*/ +class CMmsViewerLaunchOperation : public CMmsViewerOperation, + public MMmsDocumentObserver, + public MUniSlideLoaderObserver + { + public: // New methods + + /** + * Factory method that creates this object. + * + * @since 3.0 + */ + CMmsViewerLaunchOperation( + MUniObjectObserver* aUniObjectObserver, + MMsgAsyncControlObserver& aControlObserver, + MMmsViewerOperationObserver& aOperationObserver, + CMmsViewerDocument& aDocument, + CMsgEditorView& aView, + RFs& aFs ); + + /** + * Destructor + * + * @since 3.0 + */ + virtual ~CMmsViewerLaunchOperation(); + + /** + * + */ + void Launch(); + + inline CMmsViewerHeader* DetachHeader(); + inline CUniSlideLoader* DetachSlideLoader(); + inline TInt ParseResult(); + + private: + + void DoLaunchStepL(); + + void DoInitializeL(); + void DoPrepareHeaderL(); + void DoPrepareBodyL(); + void DoPrepareErrorResponseMessageL(); + void DoPrepare3GPPBodyL(); + + /** + * From CActive + */ + void DoCancel(); + + /** + * From CActive + */ + void RunL(); + + /** + * From CActive + */ + TInt RunError( TInt aError ); + + void InitializeReady( TInt aParseResult, TInt aError ); + void SlideLoadReady( TInt aError ); + + protected: + + /** + * 2nd phase constructor. + * + * @since 2.0 + */ + void ConstructL(); + + private: + + protected: // data + + enum TMmsLaunchState + { + EMmsLaunchInitialize = 0, + EMmsLaunchPrepareHeader, + EMmsLaunchPrepareBody, + EMmsLaunchEnd + }; + + MMsgAsyncControlObserver& iControlObserver; + CUniSlideLoader* iSlideLoader; + CMsgEditorView& iView; + CMmsViewerHeader* iHeader; + + TInt iLaunchState; + TInt iParseResult; + TInt iError; + TBool iIsInitialised; + MUniObjectObserver* iUniObjectObserver; + }; + +inline CMmsViewerHeader* CMmsViewerLaunchOperation::DetachHeader() + { + CMmsViewerHeader* header = iHeader; + iHeader = NULL; + return header; + } + +inline CUniSlideLoader* CMmsViewerLaunchOperation::DetachSlideLoader() + { + CUniSlideLoader* slideLoader = iSlideLoader; + iSlideLoader = NULL; + return slideLoader; + } + +inline TInt CMmsViewerLaunchOperation::ParseResult() + { + return iParseResult; + } + +#endif // __MMSVIEWERLAUNCHOPERATION_H