--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/videoplayback/videohelix/tsrc/ut_videohelixtest/src/dlmgr_stub.cpp Mon Jan 18 20:21:12 2010 +0200
@@ -0,0 +1,588 @@
+/*
+* 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 "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: API extensions for RHttpDownloadMgr
+*
+*/
+
+// Version : %version: 4 %
+
+#include "stifutilities.h"
+#include "dlmgr_stub.h"
+#include "mpxvideo_debug.h"
+
+CDlMgrTestClass*
+CDlMgrTestClass::NewL()
+{
+ MPX_ENTER_EXIT(_L("CDlMgrTestClass::NewL()"));
+
+ StifUtilities* utility = reinterpret_cast<StifUtilities*>( Dll::Tls() );
+
+ if ( ! utility->iDlMgrTester )
+ {
+ utility->iDlMgrTester = new CDlMgrTestClass();
+ }
+
+ return utility->iDlMgrTester;
+}
+
+CDlMgrTestClass::CDlMgrTestClass()
+{
+}
+
+CDlMgrTestClass::~CDlMgrTestClass()
+{
+}
+
+void
+CDlMgrTestClass::AddStifObserver( MStifTestObserver* aStifObserver )
+{
+ MPX_ENTER_EXIT(_L("CDlMgrTestClass::AddStifObserver()"));
+
+ iStifObserver = aStifObserver;
+}
+
+void
+CDlMgrTestClass::AttachToDownloadL( const TInt32 aDlId )
+{
+ MPX_ENTER_EXIT(_L("CDlMgrTestClass::AttachToDownloadL()"));
+
+ if ( iStifObserver )
+ {
+ TCallbackEvent* event = new TCallbackEvent;
+ event->iEvent = EConnectedToDownload;
+ event->iData = aDlId;
+ event->iError = KErrNone;
+ iStifObserver->HandleUtilityEvent( event );
+ }
+}
+
+void
+CDlMgrTestClass::AddDownloadMgr( RHttpDownloadMgr* aDlMgr )
+{
+ iDlMgr = aDlMgr;
+}
+
+void
+CDlMgrTestClass::PauseDownload()
+{
+ iDlMgr->PauseAll();
+}
+
+void
+CDlMgrTestClass::ResumeDownload()
+{
+ iDlMgr->StartAll();
+}
+
+void
+CDlMgrTestClass::CancelDownload()
+{
+ iDlMgr->DeleteAll();
+}
+
+EXPORT_C TInt
+RHttpDownload::SetBoolAttribute( const TUint aAttribute, TBool aValue )
+{
+ MPX_DEBUG(_L("RHttpDownload::SetBoolAttribute(%d, %d)"), aAttribute, aValue);
+
+ if ( aAttribute == EDlAttrProgressive )
+ {
+ iProgressive = aValue;
+ }
+
+ return KErrNone;
+}
+
+EXPORT_C TInt
+RHttpDownload::GetBoolAttribute( const TUint aAttribute, TBool& aValue )
+{
+ if ( aAttribute == EDlAttrProgressive )
+ {
+ aValue = iProgressive;
+ }
+
+ MPX_DEBUG(_L("RHttpDownload::GetBoolAttribute(%d, %d)"), aAttribute, aValue);
+
+ return KErrNone;
+}
+
+EXPORT_C TInt
+RHttpDownload::GetStringAttribute( const TUint /*aAttribute*/, TDes16& /*aValue*/ )
+{
+ return KErrNone;
+}
+
+EXPORT_C TInt
+RHttpDownload::SetStringAttribute( const TUint aAttribute, const TDesC16& aValue)
+{
+ MPX_DEBUG(_L("RHttpDownload::SetStringAttribute(%d, %S)"), aAttribute, &aValue);
+
+ if ( aAttribute == EDlAttrLocalFileName )
+ {
+ iLocalFile = aValue.Alloc();
+ }
+ else if ( aAttribute == EDlAttrDestFilename )
+ {
+ iDestFile = aValue.Alloc();
+ }
+
+ return KErrNone;
+}
+
+EXPORT_C TInt
+RHttpDownload::GetStringAttribute( const TUint /*aAttribute*/, TDes8& /*aValue*/ )
+{
+ return KErrNone;
+}
+
+EXPORT_C TInt
+RHttpDownload::SetStringAttribute( const TUint /*aAttribute*/, const TDesC8& /*aValue*/ )
+{
+ return KErrNone;
+}
+
+EXPORT_C TInt
+RHttpDownload::GetIntAttribute( const TUint aAttribute, TInt32& aValue )
+{
+ switch ( aAttribute )
+ {
+ case EDlAttrLength:
+ {
+ aValue = iLength;
+ break;
+ }
+ case EDlAttrDownloadedSize:
+ {
+ aValue = iSize;
+ break;
+ }
+ case EDlAttrState:
+ {
+ aValue = iState;
+ break;
+ }
+ case EDlAttrErrorId:
+ {
+ aValue = iErrorId;
+ break;
+ }
+ case EDlAttrGlobalErrorId:
+ {
+ aValue = iGlobalError;
+ }
+ }
+
+ MPX_DEBUG(_L("RHttpDownload::GetIntAttribute(%d, %d)"), aAttribute, aValue);
+
+ return KErrNone;
+}
+
+EXPORT_C TInt
+RHttpDownload::SetIntAttribute( const TUint /*aAttribute*/, TInt32 /*aValue*/ )
+{
+ return KErrNone;
+}
+
+EXPORT_C TInt
+RHttpDownload::GetFileHandleAttribute( RFile& /*aFile*/ )
+{
+ return KErrNone;
+}
+
+EXPORT_C TInt
+RHttpDownload::SetFileHandleAttribute( RFile& /*aFile*/ )
+{
+ return KErrNone;
+}
+
+EXPORT_C TInt
+RHttpDownload::Start()
+{
+ MPX_DEBUG(_L("RHttpDownload::Start()"));
+
+ iState = EHttpDlInprogress;
+
+ RFile file;
+ _LIT(KFileName, "\\vhpp_dlmgr.txt");
+
+ RFs fs;
+ fs.Connect();
+
+ file.Open( fs, KFileName, EFileRead | EFileShareAny );
+
+ TInt dlSize;
+ HBufC8* fBuf = HBufC8::NewL( 16 );
+ TPtr8 fileBuf = fBuf->Des();
+
+ file.Read( fileBuf, 16 );
+
+ TLex8 number( fileBuf );
+ number.Val( dlSize );
+
+ iSize = dlSize;
+
+ file.Close();
+ fs.Close();
+
+ iServer->iUpdateSize->Start(
+ TCallBack( RHttpDownloadMgr::UpdateDownloadProgress, iServer ) );
+
+ return KErrNone;
+}
+
+EXPORT_C TInt
+RHttpDownload::Pause()
+{
+ MPX_DEBUG(_L("RHttpDownload::Pause()"));
+
+ iState = EHttpDlPaused;
+
+ iServer->iUpdateSize->Start(
+ TCallBack( RHttpDownloadMgr::UpdateDownloadProgress, iServer ) );
+
+ return KErrNone;
+}
+
+EXPORT_C TInt
+RHttpDownload::Delete()
+{
+ MPX_DEBUG(_L("RHttpDownload::Delete()"));
+
+ iState = EHttpDlFailed;
+
+ iServer->iUpdateSize->Start(
+ TCallBack( RHttpDownloadMgr::UpdateDownloadProgress, iServer ) );
+
+ return KErrNone;
+}
+
+EXPORT_C TInt
+RHttpDownload::Move()
+{
+ MPX_DEBUG(_L("RHttpDownload::Move()"));
+ return KErrNone;
+}
+
+EXPORT_C TInt
+RHttpDownload::Reset()
+{
+ MPX_DEBUG(_L("RHttpDownload::Reset()"));
+ return KErrNone;
+}
+
+RHttpDownload::RHttpDownload( RHttpDownloadMgr* aServer )
+{
+ iServer = aServer;
+}
+
+RHttpDownload::~RHttpDownload()
+{
+ if ( iLocalFile )
+ {
+ delete iLocalFile;
+ }
+
+ if ( iDestFile )
+ {
+ delete iDestFile;
+ }
+}
+
+EXPORT_C
+RHttpDownloadMgr::RHttpDownloadMgr()
+{
+ MPX_DEBUG(_L("RHttpDownloadMgr::RHttpDownloadMgr()"));
+
+ iDownloadArray = new (ELeave) CArrayPtrFlat< RHttpDownload >( 1 );
+
+ iObservers = new (ELeave) CDownloadMgrObserver( 1 );
+
+ iUpdateSize = CIdle::NewL( CActive::EPriorityLow );
+
+ iDlMgrCallback = CDlMgrTestClass::NewL();
+
+ iDlMgrCallback->AddDownloadMgr( this );
+}
+
+RHttpDownloadMgr::~RHttpDownloadMgr()
+{
+ delete iDownloadArray;
+ delete iObservers;
+
+ if ( iUpdateSize->IsActive() )
+ {
+ iUpdateSize->Cancel();
+ }
+
+ delete iUpdateSize;
+
+ delete iDlMgrCallback;
+}
+
+EXPORT_C void
+RHttpDownloadMgr::ConnectL( TUid /*aAppUid*/, MHttpDownloadMgrObserver& aObserver, TBool /*aMaster*/ )
+{
+ MPX_DEBUG(_L("RHttpDownloadMgr::ConnectL()"));
+
+ iObservers->AppendL( &aObserver );
+}
+
+EXPORT_C TVersion
+RHttpDownloadMgr::Version() const
+{
+ TVersion temp;
+
+ return temp;
+}
+
+EXPORT_C void
+RHttpDownloadMgr::Close()
+{
+}
+
+EXPORT_C const CDownloadArray&
+RHttpDownloadMgr::CurrentDownloads() const
+{
+ return (*iDownloadArray);
+}
+
+EXPORT_C RHttpDownload&
+RHttpDownloadMgr::CreateDownloadL( const TDesC8& /*aUrl*/, TBool& /*aResult*/ )
+{
+ RHttpDownload* dl = new RHttpDownload( this );
+
+ iDownloadArray->AppendL( dl );
+
+ return *(*iDownloadArray)[0];
+}
+
+EXPORT_C RHttpDownload&
+RHttpDownloadMgr::CreateDownloadL( const TDesC8& /*aUrl*/ )
+{
+ RHttpDownload* dl = new RHttpDownload( this );
+
+ iDownloadArray->AppendL( dl );
+
+ return *(*iDownloadArray)[0];
+}
+
+EXPORT_C RHttpDownload&
+RHttpDownloadMgr::CreateClientSideDownloadL( TInt /*aHttpTransaction*/, TBool& /*aResult*/ )
+{
+ return *(*iDownloadArray)[0];
+}
+
+EXPORT_C RHttpDownload&
+RHttpDownloadMgr::CreateCodDownloadL( const TDesC8& /*aUrl*/, const TDesC8& /*aBuf*/, const TDesC8& /*aMimeType*/, CEikonEnv* /*aEikEnv*/, TBool& /*aResult*/ )
+{
+ return *(*iDownloadArray)[0];
+}
+
+EXPORT_C RHttpDownload*
+RHttpDownloadMgr::FindDownload( const TDesC8& /*aUrl*/, const TDesC8& /*aMsgBody*/ )
+{
+ return (*iDownloadArray)[0];
+}
+
+EXPORT_C TInt
+RHttpDownloadMgr::PauseAll()
+{
+ MPX_DEBUG(_L("RHttpDownloadMgr::PauseAll()"));
+
+ (*iDownloadArray)[0]->Pause();
+
+ return KErrNone;
+}
+
+EXPORT_C TInt
+RHttpDownloadMgr::StartAll()
+{
+ MPX_DEBUG(_L("RHttpDownloadMgr::PauseAll()"));
+
+ (*iDownloadArray)[0]->Start();
+
+ return KErrNone;
+}
+
+EXPORT_C TInt
+RHttpDownloadMgr::ResetAll()
+{
+ return KErrNone;
+}
+
+EXPORT_C TInt
+RHttpDownloadMgr::DeleteAll()
+{
+ (*iDownloadArray)[0]->Delete();
+
+ return KErrNone;
+}
+
+EXPORT_C TInt
+RHttpDownloadMgr::Disconnect()
+{
+ return KErrNone;
+}
+
+EXPORT_C TInt
+RHttpDownloadMgr::GetIntAttribute( const TUint /*aAttribute*/, TInt32& /*aValue*/ )
+{
+ return KErrNone;
+}
+
+EXPORT_C TInt
+RHttpDownloadMgr::GetBoolAttribute( const TUint /*aAttribute*/, TBool& /*aValue*/ )
+{
+ return KErrNone;
+}
+
+EXPORT_C TInt
+RHttpDownloadMgr::GetStringAttribute( const TUint /*aAttribute*/, TDes16& /*aValue*/ )
+{
+ return KErrNone;
+}
+
+EXPORT_C TInt
+RHttpDownloadMgr::GetStringAttribute( const TUint /*aAttribute*/, TDes8& /*aValue*/ )
+{
+ return KErrNone;
+}
+
+EXPORT_C TInt
+RHttpDownloadMgr::SetIntAttribute( const TUint /*aAttribute*/, TInt32 /*aValue*/ )
+{
+ return KErrNone;
+}
+
+EXPORT_C TInt
+RHttpDownloadMgr::SetBoolAttribute( const TUint /*aAttribute*/, TBool /*aValue*/ )
+{
+ return KErrNone;
+}
+
+EXPORT_C TInt
+RHttpDownloadMgr::SetStringAttribute( const TUint /*aAttribute*/, const TDesC16& /*aValue*/ )
+{
+ return KErrNone;
+}
+
+EXPORT_C TInt
+RHttpDownloadMgr::SetStringAttribute( const TUint /*aAttribute*/, const TDesC8& /*aValue*/ )
+{
+ return KErrNone;
+}
+
+EXPORT_C TInt
+RHttpDownloadMgr::SetDefaultIntAttribute( const TUint /*aAttribute*/, TInt32 /*aValue*/ )
+{
+ return KErrNone;
+}
+
+EXPORT_C TInt
+RHttpDownloadMgr::SetDefaultBoolAttribute( const TUint /*aAttribute*/, TBool /*aValue*/ )
+{
+ return KErrNone;
+}
+
+EXPORT_C TInt
+RHttpDownloadMgr::SetDefaultStringAttribute( const TUint /*aAttribute*/, const TDesC16& /*aValue*/ )
+{
+ return KErrNone;
+}
+
+EXPORT_C TInt
+RHttpDownloadMgr::SetDefaultStringAttribute( const TUint /*aAttribute*/, const TDesC8& /*aValue*/ )
+{
+ return KErrNone;
+}
+
+EXPORT_C void
+RHttpDownloadMgr::AddObserverL( MHttpDownloadMgrObserver& /*aObserver*/ )
+{
+}
+
+EXPORT_C void
+RHttpDownloadMgr::RemoveObserver( MHttpDownloadMgrObserver& /*aObserver*/ )
+{
+}
+
+EXPORT_C void
+RHttpDownloadMgr::SetNextUriObserver( MHttpDownloadMgrNextUriObserver* /*aObserver*/ )
+{
+}
+
+void
+RHttpDownloadMgr::DoUpdateDownloadProgress()
+{
+ MPX_ENTER_EXIT(_L("RHttpDownloadMgr::DoUpdateDownloadProgress()"));
+
+ RHttpDownload* dl = (*iDownloadArray)[0];
+
+ THttpDownloadEvent event;
+
+ event.iDownloadState = (THttpDownloadState)dl->iState;
+ event.iProgressState = EHttpProgResponseBodyReceived;
+
+ MPX_DEBUG(_L("RHttpDownloadMgr::DoUpdateDownloadProgress() dl->iSize=%d"), dl->iSize );
+
+ if ( dl->iState == EHttpDlInprogress )
+ {
+ if ( dl->iSize >= dl->iLength )
+ {
+ dl->iState = EHttpDlCompleted;
+
+ event.iDownloadState = (THttpDownloadState)dl->iState;
+ event.iProgressState = EHttpProgNone;
+ }
+ }
+
+ (*iObservers)[0]->HandleDMgrEventL( *dl, event );
+}
+
+TInt
+RHttpDownloadMgr::UpdateDownloadProgress( TAny* aPtr )
+{
+ MPX_ENTER_EXIT(_L("RHttpDownloadMgr::UpdateDownloadProgress()"));
+
+ static_cast<RHttpDownloadMgr*>(aPtr)->DoUpdateDownloadProgress();
+
+ return KErrNone;
+}
+
+EXPORT_C
+RHttpDownloadMgrApiExt::RHttpDownloadMgrApiExt()
+{
+ MPX_DEBUG(_L("RHttpDownloadMgrApiExt::RHttpDownloadMgrApiExt()"));
+}
+
+EXPORT_C RHttpDownload&
+RHttpDownloadMgrApiExt::AttachToDownloadL( const TInt32 aDlId )
+{
+ MPX_DEBUG(_L("RHttpDownloadMgrApiExt::AttachToDownloadL(%d)"), aDlId);
+
+ RHttpDownload* dl = new RHttpDownload( this );
+
+ dl->iErrorId = KErrNone;
+ dl->iGlobalError = KErrNone;
+
+ iDlMgrCallback->AttachToDownloadL( aDlId );
+
+ dl->iState = EHttpDlInprogress;
+ dl->iSize = 25;
+ dl->iLength = 100;
+
+ iDownloadArray->AppendL( dl );
+
+ return *(*iDownloadArray)[0];
+}