fotaapplication/fotaserver/FotaServer/inc/fotadownload.h
branchRCL_3
changeset 61 b183ec05bd8c
parent 59 13d7c31c74e0
child 62 19bba8228ff0
--- a/fotaapplication/fotaserver/FotaServer/inc/fotadownload.h	Thu Aug 19 10:44:50 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,608 +0,0 @@
-/*
-* Copyright (c) 2005 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:   Swupd downloader.
-*
-*/
-
-
-
-#ifndef ___DOWNLOADER_H_
-#define ___DOWNLOADER_H_
-
-#include <downloadmgrclient.h>
-#include <etelpckt.h> //To read GSM Error codes from symbian
-#include <exterror.h> //To read GSM Error codes from symbian
-#include <wlanerrorcodes.h> //To read WLAN Error codes from s60
-#include <AknWaitDialog.h>
-#include "FotaServer.h"
-#include "FotaSrvDebug.h"
-#include "FotaDLProgressDlg.h"
-
-// FORWARD DECLARATIONS
-class CFotaServer;
-class CAknWaitDialog;
-class CFotaDownloadNotifHandler;
-class CFotaNetworkRegStatus; 	//To know the network connectivity status while resuming suspended download
-// CONSTANTS
- // from coderror.h
-#define KErrCodInvalidDescriptor -1000
-#define KErrCodInsufficientSpace -1001
-#define KErrCodWapConnectionDropped -20041
-
-// If download times out, it must be tried again
-#define KFotaDownloadTimeoutRestartCount 5
-
-// For reading connecting resource from DM UI
-_LIT( KSCPResourceFilename, "\\Resource\\Apps\\NsmlDMSync.rsc" );
-_LIT( KDriveZ,"z:" );
-_LIT( KDDDirPath, "c:\\system\\fota\\" );
-_LIT( KDDFilename, "fotadownload.dd" );
-
-//Constants when SAN Bits are set
-enum {
-		ESanNotSpecified=0,
-		ESanSilent,
-		ESanInformative,
-		ESanInteractive
-};
-
-//Contants when SAN is Off. It refers to Accepted state in DM Profile Settings
-enum {
-	EAcceptedNo=0,
-	EAcceptedYes
-};
-
-// Constants for KSilentOmaDlUIBehavior cenrep key
- enum {
- 		EOmacdOffdlprgOff=0, //OMA CD View = Off, Download Progress Bar = Off
- 		EOmacdOffdlprgOn,    //OMA CD View = Off, Download Progress Bar = On
- 		EOmacdOndlprgOff,    //OMA CD View = On,  Download Progress Bar = Off
- 		EOmacdOndlprgOn,     //OMA CD View = On,  Download Progress Bar = On 
- 		EChooseFromSan		 //Choose behavior from SAN bits set during DM Session
- };
-/**
- *  Downloader 
- *
- *  Starts download and observes it.
- *
- *  @lib    fotaserver
- *  @since  S60 v3.1
- */
-NONSHARABLE_CLASS (CFotaDownload ) 
-        : public CActive 
-        , MHttpDownloadMgrObserver
-        , MDLProgressDlgObserver
-    {
-    friend class CFotaDownloadNotifHandler;
-
-
-	enum TFotaDLProgress
-		{
-		EStarted,
-		EDescriptorDownloaded,
-		ESizeChecked
-		};
-		
-			
-public: // new functions
-
-    CFotaDownload ();
-
-    virtual ~CFotaDownload ();
-
-    static CFotaDownload* NewL (CFotaServer* aServer);
-
-public: // Functions from base classes:
-
-
-    /**
-     * Schedule update to be carried out after download
-     *
-     * @since   S60   v3.1
-     * @param   aButtonId Button pressed
-     * @return  None
-     */
-    TBool HandleDLProgressDialogExitL( TInt aButtonId );
-
-protected:  // Functions from base classes:
-    
-    /**
-     * Handle user action
-     *
-     * @since   S60   v3.1
-     * @param   None
-     * @return  None
-     */
-    virtual void RunL();
-
-
-     /**
-     * Handle leaving Runl
-     *
-     * @since   S60   v3.1
-     * @param   aError  error code
-     * @return  Error code
-     */
-    virtual TInt RunError(TInt aError);
-
-
-     /**
-     * Handle cancel of active object
-     *
-     * @since   S60   v3.1
-     * @param   none
-     * @return  none
-     */
-    void DoCancel();
-
-public:
-
-
-    /**
-     * Handle Download manager event
-     *
-     * @since   S60   v3.1
-     * @param   aDownload       download 
-     * @param   aEvent          event
-     * @return  none
-     */
-    virtual void HandleDMgrEventL( RHttpDownload& aDownload
-                        , THttpDownloadEvent aEvent );
-
-
-    /**
-     * Handle Download manager event
-     *
-     * @since   S60   v3.1
-     * @param   aDownload       download 
-     * @param   aEvent          event
-     * @return  none
-     */
-    void DoHandleDMgrEventL( RHttpDownload* aDownload
-                        ,THttpDownloadEvent aEvent );
-
-
-    /**
-     * Start download of swupd
-     *
-     * @since   S60   v3.1
-     * @param   aParams     download parameters
-     * @param   aPkgURL     Url of swupd
-     * @param   aUpdateAfterDownload     Is update needed
-     * @param   aIapid      Iap
-     * @param   aRestartDownload Is this a retry download (counter)? 
-     *                            If yes, don't show descriptor.
-     * @return  none
-     */
-    void DownloadL(TDownloadIPCParams aParams,const TDesC8& aPkgURL
-        ,TBool aUpdateAfterDownload,const TInt aIapid=KErrNotFound
-        ,const TInt aRestartDownload=0 );
-
-
-    /**
-     * Cancel
-     *
-     * @since   S60   v3.1
-     * @param   aCancelProgressBar  Cancel progress bar also?
-     * @return  none
-     */
-    void CancelDownload( const TBool aCancelProgressBar );
-
-    /**
-     * Tries to resume any suspended fota download by quering the user. When the DM session is
-     * Silent, this method directly starts resuming of download by calling ResumeDownloadL.
-     *
-     * @since   S60   v3.2
-     * @param   aUserInitiated  Is user initiated resume?
-     * @return  none
-     */
-    void TryResumeDownloadL(TBool aUserInitiated);
-    
-    /**
-     * Resumes any suspended fota download. Firstly, it retrieves the RHttpDownload download object from Download Manager
-     * and then performs the following - 
-     * - sets the IAP ID to use
-     * - checks whether the connection is possible with that IAP ID
-     * - sets download ui behavior
-     *
-     * @since   S60   v3.2
-     * @return  none
-     */
-    void ResumeDownloadL();
-    /**
-     * Finds whether the download is resumable or not.
-     *
-     * @since   S60   v3.2
-     * @return  ETrue if download is resumable, else EFalse.
-     */
-    TBool IsDownloadResumable();
-    
-    /**
-     * Finds whether Fota Monitory Service is enabled or not.
-     *
-     * @since   S60   v3.2
-     * @return  ETrue if FMS is enabled, else EFalse.
-     */
-	TBool IsFMSEnabled();
-	
-    /**
-     * Sets the download activity state to the P&S Key used to sync with DM UI.
-     *
-     * @since   S60   v3.2
-     * @param	aValue	ETrue when download is active, else EFalse.
-     * @return  None
-     */
-	void SetDownloadActive(TBool aValue);
-	
-    /**
-     * Returns the download activity state
-     *
-     * @since   S60   v3.2
-     * @return	aValue	ETrue when download is active, else EFalse.
-     */
-
-	TBool IsDownloadActive();
-
-    /**
-     * Starts to suspend the ongoing download
-     *
-     * @since   S60   v3.2
-     * @param	aReason		Reason to suspend the download. Value is one of RFotaEngineSession::TResult.
-     * @param	aSilent		Is suspend operation to be silent?
-     * @return  None
-     */
-	void RunDownloadSuspendL(const TInt aReason, TBool aSilent=EFalse);
-		
-    /**
-     * Starts to cancel the ongoing download
-     *
-     * @since   S60   v3.2
-     * @param	aReason		Reason to cancel the download. Value is one of RFotaEngineSession::TResult.
-     * @param	aSilent		Is cancel operation to be silent?
-     * @return  None
-     */
-	void RunDownloadCancelL(const TInt aReason, TBool aSilent=EFalse);
-	
-    /**
-     * Should update be started after download completes
-     */
-    TBool iUpdateAfterDownload;
-
-    /**
-     * Download is to be restarted. (counter)
-     */
-    TInt iRestartCounter;
-    
-    /**
-     * Download state
-     */
-    TPackageState iDLState;
-
-
-    /**
-    * Download URL 
-    */
-    HBufC8* iUrl;
-
-
-  
-
-private:
-
-
-    /**
-     * Launch notifier. Also used to end download silently.
-     *
-     * @since   S60   v3.1
-     * @param   aNotetype    Notetype
-     * @param   aIntParam    int param
-     * @param   aMemoryneeded How much disk space needed for download
-     * @param   aFinishOnly  finish only, do not launch notifier
-     * @return  none
-     */
-    
-    void LaunchNotifierL( const TSyncMLFwUpdNoteTypes aNotetype
-                            ,const TInt aIntParam
-                            ,const TInt aMemoryNeeded
-                            ,TBool aFinishOnly=EFalse );
-
-    /**
-     * Reads the download variations from the Cenrep keys into instance variables.
-     * They include - Fota Suspend & Resume feature state (on/off) &
-     * Fota Monitory Service feature state (on/off)
-     * 
-     * @since   S60   v3.2
-     * @return  none
-     */
-	void CheckDownloadVariations();
-
-    /**
-     * Retrieves the RHttpDownload object from Download Manager for the suspended download.
-     * Since concurrent downloads are not possible, there will be always zero or one suspended download.
-     * 
-     * @since   S60   v3.2
-     * @return  RHttpDownload object. If NULL, it means that there is no suspended download or the retrieval has fails.
-     */
-	RHttpDownload* RetrieveDownloadL();
-	
-    /**
-     * Sets the IAP Id to use during download. The same API is used for fresh or resuming download.
-     * During resuming of download, the selection of IAP logic varies as below:
-     * 1. If IAP is always ask in DM profile, uses the earlier set during FMS trigger
-	 * 2. If IAP is always ask in DM profile, query user for IAP during user trigger
-	 * 3. If IAP has changed in DM profile after suspend, use the newer one during resume
-     * 
-     * @since   S60   v3.2
-     * @param	aParams		contains the download operation details
-     * @param	aIapid		Out param, the IAP Id is set here.
-     * @return  None
-     */
-	void SetIapToUseL(TPackageState aParams,const TInt aIapid);
-	
-    /**
-     * Sets the Download UI behavior for fresh or resuming download.
-     * 
-     * @since   S60   v3.2
-     * @param	aFreshDL	ETrue if the download is fresh, else EFalse.
-     * @return  None
-     */
-	void SetDownloadUiBehavior(TBool aFreshDL);
-	
-    /**
-     * Creates a fresh download
-     *
-     * @since   S60   v3.1
-     * @param   
-     * @return  none
-     */
-    void CreateDownloadL();
-	  /**
-     * SetDLResultdlErrorId Set the appropriate error codes.
-     *
-     * @since   S60   v5.0
-     * @param   adlErrorId  error id from DlMgr
-     * @param   asysErrorId error id from system
-     * @return  none
-     */   
-    void SetDLResultdlErrorId( THttpDownloadMgrError adlErrorId, TInt32 asysErrorId);
-    
-    /**
-     * ReSetDownloadL Reset the Fota state to Download failed
-     *
-     * @since   S60   v5.0
-     * @param   atoresetdl Bool value if ETrue the set the state to Download Failed
-     * @return  none
-     */   
-    void ReSetDownloadL(TBool atoresetdl);
-    
-    /**
-     * DetermineUISANOFF Determine UI behavior when SAN is OFF
-     *
-     * @since   S60   v5.0
-     * @param   aBehavior behavior depending upon whether SAN is supported or not
-     * @return  none
-     */    
-    void DetermineUISANOFF(TInt aBehavior);
-    
-     /**
-     * DetermineUISANOFF Determine UI behavior when SAN is OFF
-     *
-     * @since   S60   v5.0
-     * @param   aBehavior behavior depending upon whether SAN is supported or not
-     * @return  none
-     */
-    void DetermineUISANON(TInt aBehavior);
-    /**
-     * Reference to fotaserver.
-     * Not own
-     */
-    CFotaServer*            iFotaServer;
-
-    /**
-     * Reference to download mgr.
-     */
-    RHttpDownloadMgr        iDownloadMgr;
-
-    /**
-     * The download object for the current download.
-     */
-    RHttpDownload* iDownload;
-    
-    /**
-     * The downloaded content size in bytes.
-     */
-    TInt	iDownloadedContentSize;
-
-    /**
-     * Download progress dialog.
-     */
-    CFotaDLProgressDlg*     iDLProgressDlg;
-
-    /**
-     * Content size received in previous event
-     */
-    TInt                    iPreviousContentSize;
-
-    /**
-     * handles notifier completion
-     */
-	CFotaDownloadNotifHandler*  iNotifHandler;
-
-    
-    /**
-	* Indicates that this download should be reset. (could be inclded in progress)
-    */
-    TBool iDLNeedsReset;
-    
-    /**
-	* Progress state.
-    */
-    TFotaDLProgress iDLProgress;
-    
-    /**
-     * Showing OMA Content Descriptor
-     */
-    TBool iShowOMACDUI;
-
-    /**
-     * Showing Progress bar
-     */
-    TBool iShowDLPrgUI;
-    
-    /**
-     * Is download resumable?
-     */
-	TBool iDownloadResumable;
-	
-	/**
-	 * Is Fota Monitory service enabled?
-	 */
-	TBool iFMSEnabled;
-	
-	/**
-	 * Is Fota download active?
-	 */
-	TBool iDownloadActive;
-    /**
-     * Iap id to be used in download
-     */
-	TInt	iIapid;
-	
-	/**
-	 * Is download fresh?
-	 */
-	TBool iFreshDL;
-	
-	/**
-	 * Is user initiated resume?
-	 */
-	TBool iUserInitiatedResume;
-	
-	/**
-	 * Is fota operation started by user?
-	 */
-	TBool iIsjobStartedFromUI;
-	
-	/**
-	 * Value of SAN bit set by the remote Server
-	 */
-	TInt iSanValue;
-	
-	/**
-	 * Is suspend/cancel of download operation to be silent?
-	 */
-	TBool 	iSilentOpn;
-	
-	/**
-	 * to check whether downlaod is finalized or not 
-	 */
-	 TBool iDownloadFinalized;
-	 /**
-     * Class that checks for network availability 
-     */
-    CFotaNetworkRegStatus* iMonitor;
-
-    };
-
-
-
-
-
-NONSHARABLE_CLASS ( CFotaDownloadNotifHandler ) 
-        : public CActive 
-    {
-public: // new functions
-    static CFotaDownloadNotifHandler* NewL (CFotaDownload* aDownload);
-    
-    CFotaDownloadNotifHandler();
-    
-    ~CFotaDownloadNotifHandler();
-    /**
-     * Handle user action
-     *
-     * @since   S60   v3.1
-     * @param   None
-     * @return  None
-     */
-    virtual void RunL();
-
-
-     /**
-     * Handle leaving Runl
-     *
-     * @since   S60   v3.1
-     * @param   aError  error code
-     * @return  Error code
-     */
-    virtual TInt RunError(TInt aError);
-
-
-     /**
-     * Handle cancel of active object
-     *
-     * @since   S60   v3.1
-     * @param   none
-     * @return  none
-     */
-    void DoCancel();
-
-     /**
-     * Shows notifier and/or ends download
-     *
-     * @since   S60   v3.1
-     * @param   aNotetype	type of the note as defined in syncmlnotifier
-     * @param   aIntParam  Generic parameter, defined in syncmlnotifier
-     * @param   aMemoryNeeded	Amount of disk space needed. Only one notifier
-	 *							type consumes this.
-     * @param   aFinishOnly		Do not show notifier, finish download only
-     * @return  none
-     */
-    void LaunchNotifierL( const TSyncMLFwUpdNoteTypes aNotetype
-                            ,const TInt aIntParam
-                            ,const TInt aMemoryNeeded
-                            ,TBool aFinishOnly=EFalse );
-
-     /**
-     * Is any notifier displayed?
-     *
-     * @since   S60   v3.2
-     * @param   none
-     * @return  ETrue if yes, otherwise EFalse
-     */
-    TBool IsOpen();
-private:
-
-	CFotaDownload* iDownload;
-
-    /**
-     * Notifier for showing notes
-     */
-    RNotifier               iNotifier;
-
-    /**
-     * Notifier input parameters
-     */
-    TSyncMLFwUpdNotifParams     iNotifParams;
-
-    /**
-     * Notifier response 
-     */
-    TSyncMLFwUpdNotifRetValPckg  iDummyResponsePckg;
-    
-
-    };
-
-
-
-#endif
\ No newline at end of file