inc/DrmUtilityDmgrWrapper.h
branchRCL_3
changeset 27 1481bf457703
parent 26 1221b68b8a5f
--- a/inc/DrmUtilityDmgrWrapper.h	Tue Aug 31 15:29:38 2010 +0300
+++ b/inc/DrmUtilityDmgrWrapper.h	Wed Sep 01 12:21:16 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2007 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"
@@ -19,28 +19,9 @@
 #ifndef CDRMUTILITYDMGRWRAPPER_H
 #define CDRMUTILITYDMGRWRAPPER_H
 
-#include <f32file.h> // RFs
-#include <RoapObserver.h> // Roap::MRoapObserver
-#include <AknProgressDialog.h> // MAknProgressDialogCallback CAknProgressDialog
-
-// download apis
-#include <downloadmanager.h>
-#include <download.h>
-#include <downloadevent.h>
-
-namespace Roap
-    {
-    class CRoapEng;
-    }
-
-namespace DRM
-    {
-    class CDrmUtilityConnection;
-    }
-class CDRMRights;
-class CEikProgressInfo;
-class DrmUtilityEventHandler;
-class QDrmUtilityDmgrEventHandler;
+#include <downloadmgrclient.h>
+#include <AknProgressDialog.h>
+#include <eikprogi.h>
 
 /**
 * Environment gate function
@@ -69,25 +50,12 @@
 *  @lib DrmUtilityDmgrWrapper
 *  @since S60 v5.0
 */
-class CDrmUtilityDmgrWrapper :
-    public CActive,
-    public Roap::MRoapObserver,
+class CDrmUtilityDmgrWrapper : CBase,
+    public MHttpDownloadMgrObserver,
     public MDrmUtilityDmgrWrapper,
     public MProgressDialogCallback
     {
-private:
 
-    enum TDownloadState
-        {
-        EInit,
-        EGetMeteringTrigger,
-        ESaveMeteringTrigger,
-        EMeteringReportSubmit,
-        EGetPrUrlTrigger,
-        ESavePrUrlTrigger,
-        EPrRoapRequest,
-        EComplete
-        };
 public:
 
     static CDrmUtilityDmgrWrapper* NewL();
@@ -108,131 +76,17 @@
 
     HBufC8* GetErrorUrlL();
 
-// From Roap::MRoapObserver
-    /**
-    * ConnectionConfL
-    * @return ETrue: the network can be establish
-    *         EFalse: the ROAP transaction is canceled
-    *
-    * @leave  System wide error code */
-    TBool ConnectionConfL();
 
-    /**
-    * ContactRiConfL
-    * @return ETrue: the user consent is achieved
-    *         EFalse: the user consent is not achieved
-    *
-    * @leave  System wide error code */
-    TBool ContactRiConfL();
-
-    /**
-    * TransIdConfL
-    * @return ETrue: the user consent is achieved
-    *         EFalse: the user consent is not achieved
-    *
-    * @leave  System wide error code */
-
-    TBool TransIdConfL();
-
-    /**
-    * RightsObjectDetailsL
-    *
-    * The function is called after successful completion of RO acquisition
-    * protocol. The passes information about stored rights objects to the
-    * observer.
-    *
-    * @since  3.0
-    * @param aRightsList: A list of pointers to rights objects.
-    *                     Contents of aRightsList are owend by ROAP engine
-    *
-    * @leave  System wide error code */
-    void RightsObjectDetailsL( const RPointerArray<CDRMRights>& aRightsList );
-
-    /**
-    * ContentDownloadInfoL
-    *
-    * The function is called when the ROAP engine notices that it is about to
-    * receive a multipart content as a ROAP response. The method must return via
-    * out-parameter the path to a temp folder where the content is saved during
-    * download. The name that is used as filename when saving the content to
-    * the appropriate palce and the maximum size of the content (a safety upper limit)
-    * must also be provided via out-parameters.
-    *
-    * @since 3.0
-    * @param aTempFolder: (out-param) The path of the temp folder, or KNullDesC
-    * @param aContentName: (out-param) The name of the content, or KNullDesC (defaut name is used)
-    * @param aMaxSize: (out-param) The maximum size of the content, or -1 if not known
-    *
-    * @leave System wide error code */
-
-    void ContentDownloadInfoL( TPath& aTempFolder,
-            TFileName& aContentName,
-            TInt& aMaxSize );
+    // from base class MHttpDownloadMgrObserver
 
     /**
-    * ContentDetailsL
-    *
-    * The function is called when the ROAP engine has received a DCF content (together
-    * with a ROAP response) The ROAP engine saves the DCF to the appropriate location
-    * and gives out the information about the saved DCF file by calling this method
-    *
-    * @since 3.0
-    * @param aPath: The path andf the filename of the saved DCF file
-    * @param aType: The plain MIME type of the saved DCF file
-    * @param aAppUid: The handler app UID of the saved DCF file
-    *
-    * @leave System wide error code */
-
-    void ContentDetailsL( const TDesC& aPath,
-            const TDesC8& aType,
-            const TUid& aAppUid );
-
-    /**
-    * RoapProgressInfoL
-    *
-    * The function provides progress information about ROAP processing to the
-    * observer
-    *
-    * @since  3.0
-    * @param aProgressInfo: An integer value representing the state of
-    *                       ROAP processing, counting in bytes
+    * From MHttpDownloadMgrObserver.
+    * Handle download manager events
     *
-    * @leave  System wide error code */
-
-    void RoapProgressInfoL( const TInt aProgressInfo );
-
-    /**
-    * ErrorUrlL
-    *
-    * The function is called in ROAP error case and it provides an error URL
-    * for the caller. The calling entity should send an HTTP GET request to
-    * the URL which should then return an HTML page.
-    *
-    * @since  3.0
-    * @param aErrorUrl: The error URL
-    *
-    *
-    * @leave  System wide error code */
-
-    void ErrorUrlL( const TDesC8& aErrorUrl );
-
-    /**
-    * PostResponseUrlL
-    *
-    * The function is called if handled ROAP metering report response
-    * contains PostResponseURL extension. The calling entity should send
-    * an HTTP GET request to the URL, which should return ROAP trigger,
-    * download descriptor or multipart message containing both
-    * download descriptor and ROAP trigger.
-    *
-    * @since  3.2
-    * @param aPostResponseUrl: The URL to be fetched
-    *                          after handling ROAP metering response
-    *                          with PostResponseURL extension.
-    *
-    *
-    * @leave  System wide error code */
-    void PostResponseUrlL( const TDesC8& aPostResponseUrl );
+    * @param aDownload the download
+    * @param aEvent the event
+    */
+    void HandleDMgrEventL( RHttpDownload& aDownload, THttpDownloadEvent aEvent );
 
 public: // Call back methods of MAknProgressDialogCallback
 
@@ -243,22 +97,9 @@
     * @param aButtonId ID of the button pressed
     */
     void DialogDismissedL( TInt aButtonId );
-    
-    /**
-	* Handle download manager events
-	*
-	* @param aEvent the event
-	*/
-            
-    void HandleDownloadEventL( WRT::DownloadEvent* aEvent );
 
 protected:
-    //from Cactive
-    virtual void DoCancel();
 
-    virtual void RunL();
-
-    virtual TInt RunError( TInt aError );
 private:
 
     /**
@@ -271,37 +112,25 @@
     /**
     * Set the browser default access point to be used
     */
+    void SetDefaultAccessPointL();
 
+    void DoDownloadAndHandleRoapTriggerL( const HBufC8* aUrl );
 
     void ShowProgressNoteL( );
 
     void RemoveProgressNoteL( );
 
-    void DoConnectL( TDownloadState aNextState );
-
-    void DoDownloadRoapTriggerL( TDownloadState aNextState );
-
-    void DoSaveRoapTriggerL( TDownloadState aNextState );
+    void HandlePostResponseUrlL();
 
-    void DoHandleRoapTriggerL( TDownloadState aNextState );
-
-    void CompleteToState( TDownloadState aNextState, TInt aError );
-    
-    void ProcessDownloadEventL( WRT::Download& aDownload, WRT::DownloadEvent& aEvent );
 
 private: // data
 
     /**
     * Download manager session
     */
-    WRT::DownloadManager* iDlMgr;
+    RHttpDownloadMgr iDlMgr;
 
     /**
-     * Download instance needs to be stored for handling signal slot mechanism
-     */
-    WRT::Download* iDownload;
-    
-    /**
     * Used to make downloads synchronous
     */
     CActiveSchedulerWait iWait;
@@ -312,16 +141,6 @@
     TBool iDownloadSuccess;
     TBool iConnectionError;
 
-    /**
-    * trigger URL
-    */
-    HBufC8* iTriggerUrl;
-
-    /**
-    * trigger buffer
-    */
-    HBufC8* iTriggerBuf;
-
     TBool iDialogDismissed;
 
     /**
@@ -352,22 +171,6 @@
     */
     HBufC8* iPostResponseUrl;
 
-    /**
-    * IAP (from ROAP or from UI)
-    */
-    TUint32 iIapId;
-
-    TDownloadState iState;
-
-    Roap::CRoapEng* iRoapEng;
-
-    RFs iFs;
-
-    HBufC* iFileName;
-
-    DRM::CDrmUtilityConnection* iConnection;
-    
-    QDrmUtilityDmgrEventHandler* iDrmUtilityDmgrEventHandler; 
     };
 
 #endif // CDRMUTILITYDMGRWRAPPER_H