videoplayback/videohelix/tsrc/ut_videohelixtest/src/dlmgr_stub.cpp
changeset 0 96612d01cf9f
--- /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];
+}