diff -r 798ee5f1972c -r 826cea16efd9 videoutils_plat/videoconnutility_api/tsrc/VCXTestCommon/src/IptvTestDownloadManager.cpp --- a/videoutils_plat/videoconnutility_api/tsrc/VCXTestCommon/src/IptvTestDownloadManager.cpp Thu Aug 19 10:54:18 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,519 +0,0 @@ -/* -* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of the License "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: -* -*/ - - -// INCLUDE FILES - -#include -#include -#include -#include - -#include "IptvTestDownloadManager.h" -#include "VCXTestLog.h" -#include "CIptvTestTimer.h" - -// ========================== MEMBER FUNCTIONS =============================== - -// --------------------------------------------------------------------------- -// CTestUtilConnection::NewL() -// -// Constructs CTestUtilConnection object -// --------------------------------------------------------------------------- -// -EXPORT_C CIptvTestDownloadManager* CIptvTestDownloadManager::NewL(MTestUtilDownloadObserver *aObs) - { - VCXLOGLO1(">>>CIptvTestDownloadManager::NewL"); - CIptvTestDownloadManager* self = NewLC(aObs); - CleanupStack::Pop(self); - VCXLOGLO1("<<>>CIptvTestDownloadManager::NewLC"); - CIptvTestDownloadManager* self = new (ELeave) CIptvTestDownloadManager(aObs); - CleanupStack::PushL(self); - self->ConstructL(); - VCXLOGLO1("<<>>CIptvTestDownloadManager::CIptvTestUtilConnection"); - - VCXLOGLO1("<<>>CIptvTestDownloadManager::~CIptvTestDownloadManager"); - - iDownloadMgr.DeleteAll(); - iDownloadMgr.RemoveObserver(*this); - iDownloadMgr.Close(); - - if( iDownload ) - { - iDownload->Delete(); - iDownload = NULL; - } - - if( iTimer ) - { - delete iTimer; - iTimer = NULL; - } - - VCXLOGLO1("<<>>CIptvTestDownloadManager::ConstructL"); - - iDownloadRunning = EFalse; - TUid uid; - uid.iUid = 0x101FB3E3; - iDownloadMgr.ConnectL(uid, *this, ETrue); - - iTimer = CIptvTestTimer::NewL(*this, 0); - - VCXLOGLO1("<<>>CIptvTestDownloadManager::HandleDMgrEventL"); - - TInt32 downloadId; - aDownload.GetIntAttribute(EDlAttrId, downloadId); - - VCXLOGLO3("CIptvTestDownloadManager:: downloadId: %d, aEvent: %d", downloadId, aEvent); - - switch (aEvent.iProgressState) - { - case EHttpContentTypeReceived: - VCXLOGLO1("CIptvTestDownloadManager:: EHttpContentTypeReceived"); - User::LeaveIfError(aDownload.Start()); - break; - case EHttpProgNone: - VCXLOGLO1("CIptvTestDownloadManager:: EHttpProgNone"); - break; - case EHttpStarted: - VCXLOGLO1("CIptvTestDownloadManager:: EHttpStarted"); - break; - case EHttpProgCreatingConnection: - VCXLOGLO1("CIptvTestDownloadManager:: EHttpProgCreatingConnection"); - break; - case EHttpProgConnectionNeeded: - VCXLOGLO1("CIptvTestDownloadManager:: EHttpProgConnectionNeeded"); - break; - case EHttpProgConnected: - VCXLOGLO1("CIptvTestDownloadManager:: EHttpProgConnected"); - break; - case EHttpProgConnectionSuspended: - VCXLOGLO1("CIptvTestDownloadManager:: EHttpProgConnectionSuspended"); - break; - case EHttpProgDisconnected: - VCXLOGLO1("CIptvTestDownloadManager:: EHttpProgDisconnected"); - break; - case EHttpProgDownloadStarted: - VCXLOGLO1("CIptvTestDownloadManager:: EHttpProgDownloadStarted"); - break; - case EHttpContentTypeRequested: - VCXLOGLO1("CIptvTestDownloadManager:: EHttpContentTypeRequested"); - break; - case EHttpProgSubmitIssued: - VCXLOGLO1("CIptvTestDownloadManager:: EHttpProgSubmitIssued"); - break; - case EHttpProgResponseHeaderReceived: - VCXLOGLO1("CIptvTestDownloadManager:: EHttpProgResponseHeaderReceived"); - break; - case EHttpProgResponseBodyReceived: - VCXLOGLO1("CIptvTestDownloadManager:: EHttpProgResponseBodyReceived"); - break; - case EHttpProgRedirectedPermanently: - VCXLOGLO1("CIptvTestDownloadManager:: EHttpProgRedirectedPermanently"); - break; - case EHttpProgRedirectedTemporarily: - VCXLOGLO1("CIptvTestDownloadManager:: EHttpProgRedirectedTemporarily"); - break; - case EHttpProgDlNameChanged: - VCXLOGLO1("CIptvTestDownloadManager:: EHttpProgDlNameChanged"); - break; - case EHttpProgContentTypeChanged: - VCXLOGLO1("CIptvTestDownloadManager:: EHttpProgContentTypeChanged"); - break; - case EHttpProgCodDescriptorDownloaded: - VCXLOGLO1("CIptvTestDownloadManager:: EHttpProgCodDescriptorDownloaded"); - break; - case EHttpProgCodDownloadStarted: - VCXLOGLO1("CIptvTestDownloadManager:: EHttpProgCodDownloadStarted"); - break; - case EHttpProgCodDescriptorAccepted: - VCXLOGLO1("CIptvTestDownloadManager:: EHttpProgCodDescriptorAccepted"); - break; - case EHttpProgCodLoadEnd: - VCXLOGLO1("CIptvTestDownloadManager:: EHttpProgCodLoadEnd"); - break; - case EHttpProgSupportedMultiPart: - VCXLOGLO1("CIptvTestDownloadManager:: EHttpProgSupportedMultiPart"); - break; - case EHttpProgMovingContentFile: - VCXLOGLO1("CIptvTestDownloadManager:: EHttpProgMovingContentFilep"); - break; - case EHttpProgContentFileMoved: - VCXLOGLO1("CIptvTestDownloadManager:: EHttpProgContentFileMoved"); - break; - default: - VCXLOGLO1("CIptvTestDownloadManager:: Unknown state"); - break; - } - - switch (aEvent.iDownloadState) - { - case EHttpDlCompleted: - { - VCXLOGLO1("CIptvTestDownloadManager:: EHttpDlCompleted"); - - DeleteDownloadAsync( KErrNone ); - } - break; - - case EHttpDlFailed: - { - TInt32 err; - GetError( aDownload, err ); - VCXLOGLO2("CIptvTestDownloadManager:: Download failed, err: %d", err); - if( err == KErrNone ) - { - err = KErrGeneral; - } - DeleteDownloadAsync( err ); - } - break; - - case EHttpDlCreated: - VCXLOGLO1("CIptvTestDownloadManager:: EHttpDlCreated"); - iDownloadRunning = ETrue; - break; - - case EHttpDlInprogress: - VCXLOGLO1("CIptvTestDownloadManager:: EHttpDlInprogress"); - break; - - case EHttpDlPaused: - { - VCXLOGLO1("CIptvTestDownloadManager:: EHttpDlPaused"); - - TInt32 err; - GetError(aDownload, err); - VCXLOGLO2("CIptvTestDownloadManager:: Download is paused, err: %d", err); - if(err == KErrNone) err = KErrGeneral; - - DeleteDownloadAsync( err ); - } - break; - - case EHttpDlMoved: - VCXLOGLO1("CIptvTestDownloadManager:: EHttpDlMoved"); - break; - - case EHttpDlMediaRemoved: - VCXLOGLO1("CIptvTestDownloadManager:: EHttpDlMediaRemoved"); - break; - - case EHttpDlMediaInserted: - VCXLOGLO1("CIptvTestDownloadManager:: EHttpDlMediaInserted"); - break; - - case EHttpDlPausable: - VCXLOGLO1("CIptvTestDownloadManager:: EHttpDlPausable"); - break; - - case EHttpDlNonPausable: - VCXLOGLO1("CIptvTestDownloadManager:: EHttpDlNonPausable"); - break; - - case EHttpDlDeleted: - VCXLOGLO1("CIptvTestDownloadManager:: EHttpDlDeleted"); - - if( !iDownloadFinishInformed ) - { - VCXLOGLO1("CIptvTestDownloadManager:: Informing observer."); - iDownloadFinishInformed = ETrue; - iObserver->DownloadFinished( iError ); - iDownloadRunning = EFalse; - } - break; - - case EHttpDlAlreadyRunning: - VCXLOGLO1("CIptvTestDownloadManager:: EHttpDlAlreadyRunning"); - break; - - case EHttpDlDeleting: - VCXLOGLO1("CIptvTestDownloadManager:: EHttpDlDeleting"); - if( !iDownloadFinishInformed ) - { - VCXLOGLO1("CIptvTestDownloadManager:: Informing observer."); - iDownloadFinishInformed = ETrue; - iObserver->DownloadFinished( iError ); - iDownloadRunning = EFalse; - } - break; - - case EHttpDlCancelTransaction: - VCXLOGLO1("CIptvTestDownloadManager:: EHttpDlCancelTransaction"); - break; - - default: - VCXLOGLO1("CIptvTestDownloadManager:: Unknown state"); - break; - } - - - VCXLOGLO1("<<>>CIptvTestDownloadManager::DownloadL"); - - TBool result; - - if( iDownload ) - { - VCXLOGLO1("Download already ongoing."); - VCXLOGLO1("<<After(aTimeoutSeconds * 1000000); - - TBuf8<3000> address; - TBuf8<256> username; - TBuf8<256> password; - - address.Copy(aAddress); - username.Copy(aUserName); - password.Copy(aPassword); - - VCXLOGLO3("CIptvTestDownloadManager:: Starting downloading: %S -> %S", &aAddress, &aOutFile); - VCXLOGLO3("CIptvTestDownloadManager:: User: %S, PW %S", &aUserName, &aPassword); - VCXLOGLO2("CIptvTestDownloadManager:: Timeout: %d", aTimeoutSeconds); - - TInt err = KErrNone; - - err = iDownloadMgr.SetIntAttribute( EDlMgrIap, aIapId ); - if ( err != KErrNone ) - { - VCXLOGLO2("CIptvTestDownloadManager:: Could not set AP! err: %d", err); - return err; - } - - RHttpDownload& download = iDownloadMgr.CreateDownloadL( address, result ); - - iDownload = &download; - - err = iDownload->SetStringAttribute( EDlAttrDestFilename, aOutFile); - if(err != KErrNone) - { - VCXLOGLO1("Setting destfilename failed."); - VCXLOGLO1("<<Start(); - if(err != KErrNone) - { - VCXLOGLO1("Starting download failed."); - VCXLOGLO1("<< EIptvDlConnectionFailed"); - if(globalErrorId == KErrServerBusy) - { - VCXLOGLO1("CIptvTestDownloadManager:: server busy -> EIptvDlGeneral"); - aDownloadError = KErrServerBusy; - } - break; - case EHttpAuthenticationFailed: - VCXLOGLO1("CIptvTestDownloadManager:: EHttpAuthenticationFailed -> EIptvDlAuthFailed"); - aDownloadError = EHttpAuthenticationFailed; - break; - case EProxyAuthenticationFailed: - VCXLOGLO1("CIptvTestDownloadManager:: EProxyAuthenticationFailed -> EIptvDlProxyAuthFailed"); - aDownloadError = EProxyAuthenticationFailed; - break; - case EDestFileInUse: - VCXLOGLO1("CIptvTestDownloadManager:: EDestFileInUse -> EIptvDlDestFileInUse"); - aDownloadError = EDestFileInUse; - break; - case EBadUrl: - VCXLOGLO1("CIptvTestDownloadManager:: EBadUrl -> EIptvDlBadUrl"); - aDownloadError = EBadUrl; - break; - case EMMCRemoved: - VCXLOGLO1("CIptvTestDownloadManager:: EMMCRemoved -> EIptvDlMmcRemoved"); - aDownloadError = EMMCRemoved; - break; - case EDiskFull: - VCXLOGLO1("CIptvTestDownloadManager:: EDiskFull -> EIptvDlDiskFull"); - aDownloadError = EDiskFull; - break; - case EObjectNotFound: - VCXLOGLO1("CIptvTestDownloadManager:: EObjectNotFound -> EIptvDlContentNotFound"); - aDownloadError = EObjectNotFound; - break; - - default: - VCXLOGLO1("CIptvTestDownloadManager:: unknown -> EIptvDlGeneral"); - aDownloadError = KErrGeneral; - break; - } - } - -// --------------------------------------------------------- -// CIptvTestDownloadManager::DeleteDownloadAsync -// --------------------------------------------------------- -// -void CIptvTestDownloadManager::DeleteDownloadAsync( TInt aErrorToObserver ) - { - VCXLOGLO1(">>>CIptvTestDownloadManager::DeleteDownloadAsync"); - if( iDownload ) - { - iTimer->After( 1000000 ); // 1 second - iTimerStartedForDownloadDeletion = ETrue; - iError = aErrorToObserver; - } - VCXLOGLO1("<<>>CIptvTestDownloadManager::TimerComplete"); - - VCXLOGLO3("CIptvTestDownloadManager:: aTimerId: %d, aError: %d", aTimerId, aError); - - if( iTimerStartedForDownloadDeletion ) - { - iTimerStartedForDownloadDeletion = EFalse; - VCXLOGLO1("IptvTestDownloadManager:: Deleting the download."); - - if( iDownload ) - { - iDownload->Delete(); - iDownload = NULL; - } - - // Obsever is informed at DL deletion. - } - else - { - iObserver->DownloadFinished(KErrTimedOut); - } - - VCXLOGLO1("<<