diff -r 1221b68b8a5f -r 1481bf457703 inc/DrmUtilityDmgrWrapper.h --- 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 // RFs -#include // Roap::MRoapObserver -#include // MAknProgressDialogCallback CAknProgressDialog - -// download apis -#include -#include -#include - -namespace Roap - { - class CRoapEng; - } - -namespace DRM - { - class CDrmUtilityConnection; - } -class CDRMRights; -class CEikProgressInfo; -class DrmUtilityEventHandler; -class QDrmUtilityDmgrEventHandler; +#include +#include +#include /** * 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& 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