diff -r 493788a4a8a4 -r 3bdc3b853094 omadrm/drmplugins/drmrohandler/src/rohandlerdmgrwrapper.cpp --- a/omadrm/drmplugins/drmrohandler/src/rohandlerdmgrwrapper.cpp Fri Apr 16 15:14:55 2010 +0300 +++ b/omadrm/drmplugins/drmrohandler/src/rohandlerdmgrwrapper.cpp Mon May 03 12:46:34 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2008 - 2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2008 - 2010 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" @@ -21,10 +21,6 @@ #include #include -#ifdef __SERIES60_NATIVE_BROWSER -#include -#endif - #include #include #include @@ -46,6 +42,8 @@ #include "RoapSyncWrapper.h" #include "rohandlerdmgrwrapper.h" +#include "cleanupresetanddestroy.h" +#include "buffercontainers.h" #ifdef _DEBUG #define DRMDEBUG( a ) RDebug::Print( a ) @@ -93,9 +91,6 @@ _LIT( KMethConstructL, "ConstructL" ); _LIT( KMethNewL, "NewL" ); _LIT( KMethNewLC, "NewLC" ); - _LIT( KMethDownloadAndHandleRoapTriggerL, "DownloadAndHandleRoapTriggerL" ); - _LIT( KMethDownloadAndHandleRoapTriggerFromPrUrlL, - "DownloadAndHandleRoapTriggerFromPrUrlL" ); _LIT( KMethDoDownloadAndHandleRoapTriggerL, "DoDownloadAndHandleRoapTriggerL" ); _LIT( KFormatDoDlHdlRoapTrigL, "DoDownloadAndHandleRoapTriggerL: %S" ); @@ -103,7 +98,6 @@ _LIT( KStrDlFinished, "download finished" ); _LIT( KMethSetDefaultAccessPointL, "SetDefaultAccessPointL" ); - _LIT( KMiIapId, "iIapId" ); _LIT( KMethHandleDMgrEventL, "HandleDMgrEventL" ); _LIT( KFormatMethHandleDMgrEventL, "HandleDMgrEventL %S" ); @@ -135,14 +129,6 @@ //#define LOG2( a, b ) #endif -#ifndef __SERIES60_NATIVE_BROWSER -const TUid KCRUidBrowser = - {0x10008D39}; -const TUint32 KBrowserDefaultAccessPoint = 0x0000000E; -const TUint32 KBrowserAccessPointSelectionMode = 0x0000001E; -const TUint32 KBrowserNGDefaultSnapId = 0x00000053; -#endif - // CONSTANTS #ifndef RD_MULTIPLE_DRIVE _LIT( KHelperTriggerFilePath, "d:\\" ); @@ -151,18 +137,6 @@ // ============================== LOCAL FUNCTIONS ============================== // --------------------------------------------------------------------------- -// DoResetAndDestroy -// Does RPointerArray< typename >->ResetAndDestroy() for the given array aPtr. -// --------------------------------------------------------------------------- -// -template< typename elemType > -LOCAL_C void DoResetAndDestroy( TAny* aPtr ) - { - ( reinterpret_cast< RPointerArray< elemType >* >( aPtr ) )-> - ResetAndDestroy(); - } - -// --------------------------------------------------------------------------- // DeleteHttpDowload // --------------------------------------------------------------------------- // @@ -189,34 +163,6 @@ } } -// --------------------------------------------------------------------------- -// IapIdOfDefaultSnapL -// for trapping purposes only -// --------------------------------------------------------------------------- -// -LOCAL_C TUint32 IapIdOfDefaultSnapL( - RCmManager& aCmManager, - const TUint32 aDefaultSnap ) - { - RCmDestination dest( aCmManager.DestinationL( aDefaultSnap ) ); - CleanupClosePushL( dest ); - TUint32 iapIdOfDest( 0 ); - - if ( dest.ConnectionMethodCount() <= 0 ) - { - User::Leave( KErrNotFound ); - } - - RCmConnectionMethod cMeth( dest.ConnectionMethodL( 0 ) ); - CleanupClosePushL( cMeth ); - - iapIdOfDest = cMeth.GetIntAttributeL( CMManager::ECmIapId ); - CleanupStack::PopAndDestroy( &cMeth ); - CleanupStack::PopAndDestroy( &dest ); - return iapIdOfDest; - } - - // ============================= MEMBER FUNCTIONS ============================== // --------------------------------------------------------------------------- @@ -301,7 +247,7 @@ } // --------------------------------------------------------------------------- -// CRoHandlerDMgrWrapper::DownloadAndHandleRoapTriggerL +// CRoHandlerDMgrWrapper::HandleRoapTriggerL // --------------------------------------------------------------------------- // void CRoHandlerDMgrWrapper::HandleRoapTriggerL( const TDesC8& aTrigger ) @@ -317,42 +263,6 @@ } // --------------------------------------------------------------------------- -// CRoHandlerDMgrWrapper::DownloadAndHandleRoapTriggerL -// --------------------------------------------------------------------------- -// -void CRoHandlerDMgrWrapper::DownloadAndHandleRoapTriggerL( const HBufC8* aUrl ) - { - DRMDEBUGMETHOD( - RoHdlrDMgrWrDebugLiterals::KMethDownloadAndHandleRoapTriggerL() ); - if ( iState != EInit || iWait.IsStarted() ) - { - User::Leave( KErrNotReady ); - } - - UpdateBufferL< HBufC8, TDesC8 >( iTriggerUrl, *aUrl ); - Continue( EGetMeteringTrigger, KErrNone ); - iWait.Start(); - } - -// --------------------------------------------------------------------------- -// CRoHandlerDMgrWrapper::DownloadAndHandleRoapTriggerFromPrUrlL -// --------------------------------------------------------------------------- -// -void CRoHandlerDMgrWrapper::DownloadAndHandleRoapTriggerFromPrUrlL( - const HBufC8* aUrl ) - { - DRMDEBUGMETHOD( RoHdlrDMgrWrDebugLiterals::KMethDownloadAndHandleRoapTriggerFromPrUrlL() ); - if ( iState != EInit || iWait.IsStarted() ) - { - User::Leave( KErrNotReady ); - } - - UpdateBufferL< HBufC8, TDesC8 >( iTriggerUrl, *aUrl ); - Continue( EGetPrUrlTrigger, KErrNone ); - iWait.Start(); - } - -// --------------------------------------------------------------------------- // CRoHandlerDMgrWrapper::DoDownloadRoapTriggerL // --------------------------------------------------------------------------- // @@ -360,7 +270,7 @@ { RFile roapTrigger; TBool result( EFalse ); - TFileName triggerFileName; + DRM::CFileNameContainer* triggerFileName(NULL); DRMDEBUGMETHOD( RoHdlrDMgrWrDebugLiterals::KMethDoDownloadAndHandleRoapTriggerL() ); // If no Trigger URL then nothing to download. So finish transaction @@ -370,10 +280,11 @@ return; } + triggerFileName=DRM::CFileNameContainer::NewLC(); #ifndef RD_MULTIPLE_DRIVE User::LeaveIfError( roapTrigger.Temp( - iFs, KHelperTriggerFilePath, triggerFileName, EFileWrite ) ); + iFs, KHelperTriggerFilePath, triggerFileName->iBuffer, EFileWrite ) ); #else //RD_MULTIPLE_DRIVE _LIT( KDrive, "%c:\\" ); @@ -382,15 +293,20 @@ DriveInfo::GetDefaultDrive( DriveInfo::EDefaultRam, driveNumber ); iFs.DriveToChar( driveNumber, driveLetter ); - TFileName helperTriggerFilePath; + DRM::CFileNameContainer* + helperTriggerFilePath( DRM::CFileNameContainer::NewLC() ); + + helperTriggerFilePath->iBuffer.Format( KDrive, ( TUint )driveLetter ); - helperTriggerFilePath.Format( KDrive, ( TUint )driveLetter ); - - User::LeaveIfError( roapTrigger.Temp( iFs, helperTriggerFilePath, - triggerFileName, EFileWrite ) ); + User::LeaveIfError( roapTrigger.Temp( iFs, helperTriggerFilePath->iBuffer, + triggerFileName->iBuffer, EFileWrite ) ); + CleanupStack::PopAndDestroy( helperTriggerFilePath ); + helperTriggerFilePath=NULL; #endif - UpdateBufferL< HBufC, TFileName >( iFileName, triggerFileName ); + UpdateBufferL< HBufC, TFileName >( iFileName, triggerFileName->iBuffer ); + CleanupStack::PopAndDestroy( triggerFileName ); + triggerFileName=NULL; // create and start download RHttpDownload& download = iDlMgr.CreateDownloadL( *iTriggerUrl, result ); @@ -504,9 +420,7 @@ Roap::TDomainOperation domainOperation; RPointerArray< HBufC8 > contentIds; - - TCleanupItem cleanup( DoResetAndDestroy< HBufC8 >, &contentIds ); - CleanupStack::PushL( cleanup ); + CleanupResetAndDestroyPushL( contentIds ); iRoapEng = Roap::CRoapEng::NewL(); @@ -535,55 +449,11 @@ // void CRoHandlerDMgrWrapper::SetDefaultAccessPointL() { - const TInt KDestinationSelectionMode( 2 ); - CRepository* repository( NULL ); - TInt ap( 0 ); - TInt alwaysAsk( 0 ); - TUint32 iapd32( 0 ); - TInt defaultSnap( 0 ); - TInt err( KErrNone ); - DRMDEBUGMETHOD( RoHdlrDMgrWrDebugLiterals::KMethSetDefaultAccessPointL() ); - if ( !iIapId ) + if ( iIapId ) { - repository = CRepository::NewL( KCRUidBrowser ); - CleanupStack::PushL( repository ); - repository->Get( KBrowserDefaultAccessPoint, ap ); - repository->Get( KBrowserAccessPointSelectionMode, alwaysAsk ); - repository->Get( KBrowserNGDefaultSnapId, defaultSnap ); - if ( ap <= KErrNotFound && defaultSnap <= KErrNotFound ) - { - alwaysAsk = ETrue; - } - else - { - RCmManager cmManager; - cmManager.OpenLC(); - if ( !alwaysAsk ) - { - TRAP( err, iapd32 = cmManager.GetConnectionMethodInfoIntL( - ap, CMManager::ECmIapId ) ); - } - else if ( alwaysAsk == KDestinationSelectionMode ) - { - TRAP( err, iapd32 = IapIdOfDefaultSnapL( - cmManager, defaultSnap ) ); - } - CleanupStack::PopAndDestroy( &cmManager ); - } - if ( !err && ( !alwaysAsk || alwaysAsk == KDestinationSelectionMode ) ) - { - iIapId = iapd32; - DRMDEBUG3( RoHdlrDMgrWrDebugLiterals::KFormatMembValInt(), - &RoHdlrDMgrWrDebugLiterals::KMiIapId(), iIapId ); - err = iDlMgr.SetIntAttribute( EDlMgrIap, iapd32 ); - } - CleanupStack::PopAndDestroy( repository ); - } - else - { - err = iDlMgr.SetIntAttribute( EDlMgrIap, iIapId ); + iDlMgr.SetIntAttribute( EDlMgrIap, iIapId ); } }