graphicsuis_plat/svg_application_observer_utility_api/inc/SVGTAppObserverUtil.h
branchRCL_3
changeset 20 5fd161fa28b6
equal deleted inserted replaced
17:e52958d06c29 20:5fd161fa28b6
       
     1 /*
       
     2 * Copyright (c) 2004,2005 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:  This class provides a reference implementation for the SVGT 
       
    15 *                UI Control Application Observer. 
       
    16 *
       
    17 */
       
    18 
       
    19 
       
    20 #ifndef SVGTAPPOBSERVERUTIL_H
       
    21 #define SVGTAPPOBSERVERUTIL_H
       
    22 
       
    23 #include <e32base.h>
       
    24 #include <e32std.h>
       
    25 #include <AknProgressDialog.h>
       
    26 #include <cdownloadmgruiuserinteractions.h>
       
    27 #include <cdownloadmgruidownloadslist.h>
       
    28 #include <cdownloadmgruilibregistry.h>
       
    29 
       
    30 #include <SVGTAppObserver.h>
       
    31 #include <downloadmgrclient.h>
       
    32 #include <SVGTUISaveListener.h>
       
    33 #include <SVGTFileManager.h>
       
    34 #include <SVGTViewerAppDownloads.h>
       
    35 #include <SVGTViewerAppDbgFlags.hrh>
       
    36 
       
    37     
       
    38 // Forward Declarations
       
    39 class CSVGTUIDialog;
       
    40 class CEikProgressInfo;
       
    41 class CDocumentHandler;
       
    42 
       
    43 // CLASS DECLARATION
       
    44 
       
    45 /**
       
    46 *  This class is used as a utility class for implementing observer for the 
       
    47 *  SVGT UI Control.
       
    48 *  It provides helper function/reference implementation for following 
       
    49 *  functionality: 
       
    50 *           a. Hyperlink handling 
       
    51 *           b. Download manager + UI Usage
       
    52 *           c. Save Option Implementation
       
    53 *           d. Misc (GetSmilFitValue)
       
    54 *  @lib SVGTAppObserverUtil
       
    55 *  @since 3.0
       
    56 */
       
    57 
       
    58 class CSVGTAppObserverUtil : public CBase,
       
    59                              public MSvgtAppObserver,
       
    60                              public MHttpDownloadMgrObserver,
       
    61                              public MSVGTUISaveListener,
       
    62                              public MProgressDialogCallback
       
    63     {
       
    64     
       
    65     public:
       
    66     
       
    67     enum TDownloadNeeded 
       
    68         {
       
    69         // The uri refers to a local image file
       
    70         ELocalImageFile,
       
    71         // The uri refers to a remote image file
       
    72         ERemoteImageFile,
       
    73         // The uri doesnt refer to an image file
       
    74         ENotAnImageFile
       
    75         };
       
    76     
       
    77     enum TWaitNoteState
       
    78         {
       
    79         // WaitNote is used for file saving
       
    80         ESaveFileWait = 1,
       
    81         // WaitNote is used for downloading image synchronously
       
    82         EDownloadImageWait
       
    83         };
       
    84         
       
    85     public:  // Constructors and destructor
       
    86         
       
    87         /**
       
    88         * Two-phased constructor.
       
    89         * aAppDialog: Pointer to the SVGT Dialog
       
    90         * RFile* aFileHdlPtr: File handle to the content.
       
    91         * const TDesC& filename: Filepath.
       
    92         * TBool aIsFileFullPathAvailable: Flag to indicate if content's 
       
    93         *   fullpath is available.
       
    94         * TBool aCanSaveContent,
       
    95         * TBool aShouldMoveContent.
       
    96         */
       
    97         IMPORT_C static CSVGTAppObserverUtil* NewL( CSVGTUIDialog* aAppDialog,
       
    98                         RFile* aFileHdlPtr,
       
    99                         const TDesC& aFilename, 
       
   100                         TBool aIsFileFullPathAvailable,
       
   101                         TBool aCanSaveContent,
       
   102                         TBool aShouldMoveContent );
       
   103 
       
   104         /**
       
   105         * Two-phased constructor.
       
   106         * aAppDialog: Pointer to the SVGT Dialog
       
   107         * RFile* aFileHdlPtr: File handle to the content.
       
   108         * const TDesC& aFilename: Filepath.
       
   109         * TBool aIsFileFullPathAvailable: Flag to indicate if content's 
       
   110         *   fullpath is available.
       
   111         * TBool aCanSaveContent,
       
   112         * TBool aShouldMoveContent.
       
   113         */
       
   114         static CSVGTAppObserverUtil* NewLC( CSVGTUIDialog* aAppDialog,
       
   115                         RFile* aFileHdlPtr,
       
   116                         const TDesC& aFilename, 
       
   117                         TBool aIsFileFullPathAvailable,
       
   118                         TBool aCanSaveContent,
       
   119                         TBool aShouldMoveContent); 
       
   120 
       
   121         /**
       
   122         * Two-phased constructor.
       
   123         * aAppDialog: Pointer to the SVGT Dialog
       
   124         * RFile* aFileHdlPtr: File handle to the content.
       
   125         * @since 3.0
       
   126         */
       
   127         IMPORT_C static CSVGTAppObserverUtil* NewL( CSVGTUIDialog* aAppDialog,
       
   128                         RFile* aFileHdlPtr );
       
   129 
       
   130         /**
       
   131         * Two-phased constructor.
       
   132         * aAppDialog: Pointer to the SVGT Dialog
       
   133         * RFile* aFileHdlPtr: File handle to the content.
       
   134         * @since 3.0
       
   135         */
       
   136         static CSVGTAppObserverUtil* NewLC( CSVGTUIDialog* aAppDialog,
       
   137                         RFile* aFileHdlPtr ); 
       
   138         /**
       
   139         * Destructor.
       
   140         */
       
   141         IMPORT_C virtual ~CSVGTAppObserverUtil();
       
   142         
       
   143         
       
   144         /**
       
   145         * This method is called by the svg engine when there is an image tag        
       
   146         * encountered in the svg file. This function parses the uri, checks
       
   147         * whether the uri is a local file or a remote file. If the file is 
       
   148         * a remote file, the file is downloaded. Fetched file is then opened
       
   149         * and the file handle returned to the engine.       
       
   150         * @since 3.0
       
   151         * @see MSvgRequestObserver::FetchImage
       
   152         */                                       
       
   153         IMPORT_C virtual TInt FetchImage( const TDesC& aUri, 
       
   154              RFs& aSession, RFile& aFileHandle );                                  
       
   155  
       
   156         TInt FetchFont( const TDesC& /* aUri */, 
       
   157                                     RFs& /* aSession */, RFile& /* aFileHandle */ );
       
   158 	   
       
   159         /**
       
   160         * From MSvgtAppObserver
       
   161         * @see MSvgtAppObserver::LinkActivated
       
   162         */
       
   163         IMPORT_C virtual TBool LinkActivated( const TDesC& aUri );
       
   164 
       
   165         
       
   166         /**
       
   167         * From MSvgtAppObserver
       
   168         * @see MSvgtAppObserver::LinkActivatedWithShow
       
   169         */
       
   170         IMPORT_C virtual TBool LinkActivatedWithShow( const TDesC& aUri, 
       
   171                                              const TDesC& aShow );
       
   172         /**
       
   173         * From MSvgtAppObserver
       
   174         * @see MSvgtAppObserver::GetSmilFitValue
       
   175         */
       
   176         IMPORT_C virtual void GetSmilFitValue( TDes& aSmilValue );
       
   177         
       
   178         /**
       
   179         * This function is called by the application to enable/disable the
       
   180         * downloads menu in the options menu
       
   181         * @since 3.0
       
   182         * @param aAddDownloadMenu enable/disable the downloads menu  
       
   183         */   
       
   184                                  
       
   185         IMPORT_C void SetDownloadMenu( TBool aAddDownloadMenu );
       
   186         
       
   187         /**
       
   188         * This function is called by the Ui Dialog to enable/disable the
       
   189         * downloads menu in the options menu
       
   190         * @since 3.0
       
   191         * @return iDownloadMenuEnabled enable/disable the downloads menu  
       
   192         */   
       
   193         IMPORT_C virtual TBool CanShowDownload() const;
       
   194         
       
   195 
       
   196         /**
       
   197         * From MSvgtAppObserver
       
   198         * @see MSvgtAppObserver::DisplayDownloadMenuL
       
   199         */ 
       
   200         IMPORT_C virtual void DisplayDownloadMenuL();   
       
   201                                                            
       
   202         /**
       
   203         * From MSvgtAppObserver
       
   204         * @see MSvgtAppObserver::CanShowSave
       
   205         */
       
   206         IMPORT_C virtual TBool CanShowSave();
       
   207         
       
   208         /**
       
   209         * From MSvgtAppObserver
       
   210         * @see MSvgtAppObserver::IsSavingDone
       
   211         */
       
   212         IMPORT_C virtual TBool IsSavingDone();
       
   213 
       
   214         /**
       
   215         * From MSvgtAppObserver
       
   216         * @see MSvgtAppObserver::DoSaveL
       
   217         */ 
       
   218         IMPORT_C virtual void DoSaveL( TInt aCommandId ); 
       
   219         
       
   220         IMPORT_C TInt NewFetchImageData( const TDesC& aUri );
       
   221         IMPORT_C void AssignEmbededDataL( const TDesC& aUri );
       
   222 		TBool ExitWhenOrientationChange( );
       
   223         
       
   224         /**
       
   225         * Helper function for DoSaveL
       
   226         */
       
   227         void SaveContentL(  RFile& aSrcFileHandle, const TDesC& aSrcFileName,
       
   228                             TDes& aDstFileName, TBool aMoveFlag );
       
   229         /**
       
   230         * This function generates a unique file name in the private directory
       
   231         * @param aName On return contains the full path on return.
       
   232         */    
       
   233         void GetUniqueFileName( TDes& aName ) const;
       
   234         
       
   235         /**
       
   236         * Checks whether the file is a GZipped content
       
   237         * @param aFileHandle File handle to the SVG content
       
   238         */
       
   239         TBool IsGzipContent( const RFile& aFileHandle ) const;
       
   240                                     
       
   241         /**
       
   242         * This function saves the SVG content into the private directory
       
   243         */           
       
   244         void SaveSvgTextContentL( const RFile& aSrcFileHandle, 
       
   245             TDes& aTempFileName );
       
   246                                   
       
   247     public: // Callback from the MHttpDownloadMgrObserver                                    
       
   248         /**
       
   249         * This method is a call back function used by the download manager
       
   250         * to indicate the completion/failure of the download started.
       
   251         * LinkActivatedWithShow function
       
   252         * @since 3.0
       
   253         * @param : aDownload -- handle of the download
       
   254         * @param : aEvent -- download event      
       
   255         */
       
   256         IMPORT_C void HandleDMgrEventL( RHttpDownload& aDownload,
       
   257                                        THttpDownloadEvent aEvent );                                                
       
   258     public: // Callback from the MSVGTUISaveListener         
       
   259        /**
       
   260         * From MSVGTUISaveListener. This function is called 
       
   261         * when buffering or saving position is changed.
       
   262         * @since 3.0
       
   263         * @param  aPosition, New buffering/saving position (0-100)
       
   264         */
       
   265         IMPORT_C virtual void SVGTPositionChanged( TInt aPosition );
       
   266 
       
   267         /**
       
   268         * From MSVGTUISaveListener. Called when saving is finished.
       
   269         * @since 3.0
       
   270         * @param  aError, KErrNone or one of the system wide error codes.
       
   271         * @return void
       
   272         */
       
   273         IMPORT_C virtual void SVGTSavingDoneL( TInt aError ); 
       
   274          
       
   275     public: // Functions from MProgressDialogCallback
       
   276         
       
   277         /** @see MProgressDialogCallback::DialogDismissedL */
       
   278         IMPORT_C void DialogDismissedL( TInt aButtonId );
       
   279 
       
   280     public: // Leaving variants of linkActivated and linkActivatedWithShow
       
   281         
       
   282         /**
       
   283         * This method is called by LinkActivated.
       
   284         * If this function leaves, it is trapped by the linkActivated function
       
   285         * @since 3.0        
       
   286         * @param : aUri -- URI string of hyperlink        
       
   287         */
       
   288         IMPORT_C void LinkActivatedL( const TDesC& aUri );
       
   289 
       
   290         /**
       
   291         * This method is called by LinkActivatedWithShow.
       
   292         * If this function leaves, it is trapped by the
       
   293         * LinkActivatedWithShow function
       
   294         * @since 3.0        
       
   295         * @param : aUri -- URI string of hyperlink
       
   296         * @param : aShow -- xlink:show value        
       
   297         */
       
   298         IMPORT_C void LinkActivatedWithShowL( const TDesC& aUri , 
       
   299                                               const TDesC& aShow ); 
       
   300     public:                                        
       
   301         
       
   302         /**
       
   303         * This method is called by LinkActivated(WithShow), FetchImage
       
   304         * This checks whether the uri passed is a local image file or
       
   305         * a remote image file or not an image file.
       
   306         * @since 3.0
       
   307         * @param : aUri -- URI string of hyperlink                 
       
   308         * @return : TDownloadNeeded 
       
   309         *           ELocalImageFile - if the uri is a local file
       
   310         *           ENotAnImageFile - If the uri is not an image file
       
   311         *           ERemoteImageFile - If the uri is remote image file.
       
   312         */
       
   313         IMPORT_C static TDownloadNeeded IsDownloadNeededL( 
       
   314                                            const TDesC& aUri );
       
   315         
       
   316         /**
       
   317         * This method is called by LinkActivated(WithShow), FetchImage
       
   318         * This gets the filename from the uri and the 
       
   319         * @since 3.0
       
   320         * @param : aUri -- URI string of hyperlink                 
       
   321         * @return : ETrue if the local file name is retrieved
       
   322         *           EFalse if the file could not be retrieved
       
   323         */        
       
   324         IMPORT_C TBool GetFileNameFromUri( const TDesC& aUri, 
       
   325                                   TDes& aFileName ) const;
       
   326                                   
       
   327         /**
       
   328         * This method is called by LinkActivated(WithShow), FetchImage
       
   329         * This gets the filename with full path from the uri and the 
       
   330         * @since 3.0
       
   331         * @param : aUri -- URI string of hyperlink                 
       
   332         * @return : ETrue if the local file name is retrieved
       
   333         *           EFalse if the file could not be retrieved
       
   334         */
       
   335         IMPORT_C static TBool GetLocalFile( const TDesC& aUri,  
       
   336                                             TDes& aFileName,
       
   337                                             const TDesC& aSvgFileName );
       
   338                 
       
   339         
       
   340     protected: //helper functions for fetchImage function    
       
   341            
       
   342         /**
       
   343         * This method is called by LinkActivated(WithShow),FetchImage functions
       
   344         * If this function leaves, it is trapped by the
       
   345         * Called function
       
   346         * @since 3.0        
       
   347         * @param : aUri -- URI string of hyperlink
       
   348         * @param : aSession - File server session in which the file is opened
       
   349         * @param : aFileHandle - handle of the file downloaded.   
       
   350         * @param : aIsSynchronous - Flag to indicate synchronous/asynchronous 
       
   351         *                           download
       
   352         * @param : aIsEmbedded - Flag to indicate whether the downloaded 
       
   353         *           file needs to be opened in embedded mode or not.
       
   354         * @return : KErrNone if successful
       
   355         *           KErrNotFound if not
       
   356         */
       
   357         TInt StartDownloadingImageL(                    
       
   358                     const TDesC& aUri, 
       
   359                     RFs& aSession, 
       
   360                     RFile& aFileHandle,     
       
   361                     TBool aIsSynchronous,
       
   362                     TBool aLinkFlag,
       
   363                     TBool aIsEmbedded = ETrue );                
       
   364                             
       
   365    
       
   366         /**
       
   367         * This method is called by the Fetch Image
       
   368         * before starting the download to get Access point id.
       
   369         * @since 3.0
       
   370         * @param : aIapId -- Access point id Found         
       
   371         * @return : True if Iap found else returns false.
       
   372         */
       
   373         IMPORT_C TBool GetDefaultInetAccessPointL
       
   374                               ( TUint32& aIapId ) const;
       
   375                               
       
   376         /**
       
   377         * This method is called by HandleDMgrEventL
       
   378         * This makes use of Document Handler to launch the file.
       
   379         * @since 3.0
       
   380         * @param : aFileName -- Name of the file to be launched. 
       
   381         * @param : aIsEmbedded -- Flag to indicate whether file has to 
       
   382         *          be opened in embedded mode or independent mode        
       
   383         */                     
       
   384         IMPORT_C void LaunchDownloadedFileL( const TDesC& aFileName, 
       
   385                                         TBool aIsEmbedded,  
       
   386                                         TBool aAllowSave ) const;  
       
   387                                         
       
   388    
       
   389 #ifdef SVGTVIEWERAPP_DOWNLOADMGR_ENABLED   
       
   390         /**
       
   391         * This method is called by HandleDMgrEventL
       
   392         * This iterates through the linked list and return the link 
       
   393         * corresponding to the given http download handle
       
   394         * @since 3.0
       
   395         * @param : aHttpDownload -- handle of hyperlink         
       
   396         * @return : CSVGTViewerAppDownloads * the link corresponding to 
       
   397         * the given httpDownload handle.
       
   398         */
       
   399         CSVGTViewerAppDownloads* FindDownload( 
       
   400                                  const RHttpDownload* aHttpDownload ); 
       
   401 #endif     
       
   402         /**
       
   403         * This method is used to get back the filename of the currently
       
   404         * playing svg content in filname.ext format.
       
   405         * @since 3.0
       
   406         * @param : TDes& filename: Parameter where filename needs to be
       
   407         *   returned.
       
   408         * @return : void.
       
   409         */
       
   410         IMPORT_C void GetFileNameAndExt(TDes& filename) const;
       
   411 
       
   412         /**
       
   413         * This method is used in Save operation to decide whether
       
   414         * move action should be performed.
       
   415         * @since 3.0
       
   416         * @param : None.
       
   417         * @return : ETrue: Content needs to be moved. EFalse: Content
       
   418         *   shouldn't be moved.
       
   419         */
       
   420         IMPORT_C TBool IsAllowMove() const;
       
   421 
       
   422         /**
       
   423         * This method is used to launch wait dialog while save operation
       
   424         * is going on.
       
   425         * @since 3.0
       
   426         * @param : aResourceId: Resource to be used for wait-note.
       
   427         *   aVisibilityDelayOff: Parameter to the wait note.
       
   428         *   aFileName FileName to be displayed in WaitNote
       
   429         * @return : none.
       
   430         */
       
   431         void LaunchWaitNoteL(TInt aResourceId, 
       
   432                              TBool aVisibilityDelayOff, 
       
   433                              const TDesC& aFileName );
       
   434 
       
   435         /**
       
   436         * This method is used check whether content file's full-path
       
   437         * is available.
       
   438         * @since 3.0
       
   439         * @return : ETrue: Fullpath available, EFalse: Fullpath
       
   440         *   not available.
       
   441         */
       
   442         IMPORT_C TBool IsFileFullPathAvailable() const;
       
   443     
       
   444     protected:
       
   445 
       
   446         /**
       
   447         * C++ default constructor.
       
   448         * aAppDialog: Pointer to the SVGT Dialog
       
   449         */
       
   450         IMPORT_C CSVGTAppObserverUtil( CSVGTUIDialog* aAppDialog ); 
       
   451 
       
   452         /**
       
   453         * Default Symbian 2nd phase constructor.
       
   454         */
       
   455         IMPORT_C void ConstructL();
       
   456 
       
   457         /**
       
   458         * Default Symbian 2nd phase constructor.
       
   459         * RFile* aFileHdlPtr: File handle to the content.
       
   460         * const TDesC& filename: Filepath.
       
   461         * TBool aIsFileFullPathAvailable: Flag to indicate if content's 
       
   462         *   fullpath is available.
       
   463         * TBool aCanSaveContent,
       
   464         * TBool aShouldMoveContent.
       
   465         */
       
   466         IMPORT_C void ConstructL( RFile* aFileHdlPtr,
       
   467                         const TDesC& aFilename, 
       
   468                         TBool aIsFileFullPathAvailable,
       
   469                         TBool aCanSaveContent,
       
   470                         TBool aShouldMoveContent );  
       
   471         
       
   472         /**
       
   473         * Default Symbian 2nd phase constructor.
       
   474         * RFile* aFileHdlPtr: File handle to the content.
       
   475         */
       
   476         IMPORT_C void ConstructL( RFile* aFileHdlPtr );  
       
   477 
       
   478 #ifdef SVGTVIEWERAPP_DBG_FLAG        
       
   479         void PrintDebugMsg( const TDesC&  aMsg );
       
   480 #endif        
       
   481 
       
   482     private: //User methods
       
   483         /**
       
   484         * Reads the downloaded file & assign to the svg engine.
       
   485         * @since 3.1
       
   486         * @param CSVGTViewerAppDownloads aDownloadItem
       
   487         * @param RHttpDownload aDownload
       
   488         */
       
   489         void DoAssignImageDataL(const CSVGTViewerAppDownloads* aDownloadItem,
       
   490                                                 RHttpDownload& aDownload);
       
   491         
       
   492         void DoAssignLocalFileDataL( const TDesC& aOriginalUri,  const TDesC& aNewUri ) const;
       
   493         HBufC8* DoGetProcessedEmbededDataL( const TDesC& aXlinkHrefValue ) const;
       
   494         
       
   495     private:    // Data            
       
   496   
       
   497 #ifdef SVGTVIEWERAPP_DOWNLOADMGR_ENABLED   
       
   498         // To start a wait loop after initiating download
       
   499         CActiveSchedulerWait iWait; 
       
   500          
       
   501         // client side handle for the download manager        
       
   502         RHttpDownloadMgr iDownloadMgr;
       
   503         
       
   504         // Handle for download manager ui user interactions
       
   505         CDownloadMgrUiUserInteractions* iDMgrUserInteractions;
       
   506         
       
   507         // Handle for download manager ui downloads list
       
   508         CDownloadMgrUiDownloadsList* iDMgrDownloadsList;                        
       
   509         
       
   510         // Handle to register download manager UI
       
   511         CDownloadMgrUiLibRegistry* iDMgrUiReg;
       
   512 
       
   513         // Head of Doubly linked list of Downloads
       
   514         TDblQue<CSVGTViewerAppDownloads>  iDownloads;
       
   515         
       
   516         // Iterator for the doubly linked list
       
   517         TDblQueIter<CSVGTViewerAppDownloads>   iDownloadIter;
       
   518         
       
   519         // Flag to check whether downloads menu is enabled or not
       
   520         TBool iDownloadMenuEnabled;
       
   521         
       
   522         // Flag to check whether synchronous download is stopped
       
   523         TBool iSynchronousDownloadStopped;
       
   524 #endif 
       
   525         // Pointer to the SVGT Dialog
       
   526         CSVGTUIDialog* iAppDialog;   
       
   527         
       
   528         //File Manager used for file save operations.
       
   529         CSVGTFileManager* iFileManager;
       
   530 
       
   531         TBool  iIsFullFilePathValid;
       
   532         TBool  iCanSaveContent;
       
   533         TBool  iShouldMoveContent;
       
   534         HBufC* iSvgFileName;
       
   535         HBufC* iSvgDstFileName;
       
   536         RFile* iSvgFileId;
       
   537         CAknProgressDialog* iWaitNote;
       
   538         
       
   539         // enumeration to store the state in which the wait note is used.
       
   540         TWaitNoteState iWaitNoteState;        
       
   541                
       
   542         CEikProgressInfo* iProgressInfo;  
       
   543                    
       
   544         // Integer storing resource offset to DLL resource file
       
   545         TInt iResourceOffset;
       
   546         
       
   547         // Boolean indicating save done
       
   548         TBool iSavingDone;
       
   549         
       
   550         // Integer to store the command id in context while saving
       
   551         TInt iCommandId;
       
   552         
       
   553         // DocHandler pointer to Open embedded files
       
   554         CDocumentHandler* iDocHandler;
       
   555 
       
   556         // pointer to  CEikonEnv
       
   557         CEikonEnv* iEikEnv;
       
   558         //TBool iIsFetchImageCall;
       
   559         
       
   560         // Boolean to remember whether original file is to be 
       
   561         // deleted after save
       
   562         TBool iDeleteOrigFile;
       
   563 
       
   564         // Boolean to remember whether temp file was used 
       
   565         // to perform cleanup
       
   566         TBool iTempFileUsed;
       
   567 
       
   568         // Used for storing the temporary file name for deletion
       
   569         HBufC* iTempFileName;
       
   570         // Used to indicate whether we are attempting to overwrite existing
       
   571         // file
       
   572         TBool iIsOverwriteCase;
       
   573         TBool iDownloadDone;
       
   574         
       
   575         // This variable tracks whether the download manager was initialised or not 
       
   576         TBool iDownloadInProgress;
       
   577         
       
   578     };
       
   579 
       
   580 #endif // SVGTAPPOBSERVERUTIL_H
       
   581 // End of File