videoplayback/videohelix/tsrc/ut_videohelixtest/src/dlmgr_stub.cpp
changeset 0 96612d01cf9f
equal deleted inserted replaced
-1:000000000000 0:96612d01cf9f
       
     1 /*
       
     2 * Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:  API extensions for RHttpDownloadMgr
       
    15 *
       
    16 */
       
    17 
       
    18 // Version : %version: 4 %
       
    19 
       
    20 #include "stifutilities.h"
       
    21 #include "dlmgr_stub.h"
       
    22 #include "mpxvideo_debug.h"
       
    23 
       
    24 CDlMgrTestClass*
       
    25 CDlMgrTestClass::NewL()
       
    26 {
       
    27     MPX_ENTER_EXIT(_L("CDlMgrTestClass::NewL()"));
       
    28 
       
    29     StifUtilities* utility = reinterpret_cast<StifUtilities*>( Dll::Tls() );
       
    30 
       
    31     if ( ! utility->iDlMgrTester )
       
    32     {
       
    33         utility->iDlMgrTester = new CDlMgrTestClass();
       
    34     }
       
    35 
       
    36     return utility->iDlMgrTester;
       
    37 }
       
    38 
       
    39 CDlMgrTestClass::CDlMgrTestClass()
       
    40 {
       
    41 }
       
    42 
       
    43 CDlMgrTestClass::~CDlMgrTestClass()
       
    44 {
       
    45 }
       
    46 
       
    47 void
       
    48 CDlMgrTestClass::AddStifObserver( MStifTestObserver* aStifObserver )
       
    49 {
       
    50     MPX_ENTER_EXIT(_L("CDlMgrTestClass::AddStifObserver()"));
       
    51 
       
    52     iStifObserver = aStifObserver;
       
    53 }
       
    54 
       
    55 void
       
    56 CDlMgrTestClass::AttachToDownloadL( const TInt32 aDlId )
       
    57 {
       
    58     MPX_ENTER_EXIT(_L("CDlMgrTestClass::AttachToDownloadL()"));
       
    59 
       
    60     if ( iStifObserver )
       
    61     {
       
    62         TCallbackEvent* event = new TCallbackEvent;
       
    63         event->iEvent = EConnectedToDownload;
       
    64         event->iData  = aDlId;
       
    65         event->iError = KErrNone;
       
    66         iStifObserver->HandleUtilityEvent( event );
       
    67     }
       
    68 }
       
    69 
       
    70 void
       
    71 CDlMgrTestClass::AddDownloadMgr( RHttpDownloadMgr* aDlMgr )
       
    72 {
       
    73     iDlMgr = aDlMgr;
       
    74 }
       
    75 
       
    76 void
       
    77 CDlMgrTestClass::PauseDownload()
       
    78 {
       
    79     iDlMgr->PauseAll();
       
    80 }
       
    81 
       
    82 void
       
    83 CDlMgrTestClass::ResumeDownload()
       
    84 {
       
    85     iDlMgr->StartAll();
       
    86 }
       
    87 
       
    88 void
       
    89 CDlMgrTestClass::CancelDownload()
       
    90 {
       
    91     iDlMgr->DeleteAll();
       
    92 }
       
    93 
       
    94 EXPORT_C TInt
       
    95 RHttpDownload::SetBoolAttribute( const TUint aAttribute, TBool aValue )
       
    96 {
       
    97     MPX_DEBUG(_L("RHttpDownload::SetBoolAttribute(%d, %d)"), aAttribute, aValue);
       
    98 
       
    99     if ( aAttribute == EDlAttrProgressive )
       
   100     {
       
   101         iProgressive = aValue;
       
   102     }
       
   103 
       
   104     return KErrNone;
       
   105 }
       
   106 
       
   107 EXPORT_C TInt
       
   108 RHttpDownload::GetBoolAttribute( const TUint aAttribute, TBool& aValue )
       
   109 {
       
   110     if ( aAttribute == EDlAttrProgressive )
       
   111     {
       
   112         aValue = iProgressive;
       
   113     }
       
   114 
       
   115     MPX_DEBUG(_L("RHttpDownload::GetBoolAttribute(%d, %d)"), aAttribute, aValue);
       
   116 
       
   117     return KErrNone;
       
   118 }
       
   119 
       
   120 EXPORT_C TInt
       
   121 RHttpDownload::GetStringAttribute( const TUint /*aAttribute*/, TDes16& /*aValue*/ )
       
   122 {
       
   123     return KErrNone;
       
   124 }
       
   125 
       
   126 EXPORT_C TInt
       
   127 RHttpDownload::SetStringAttribute( const TUint aAttribute, const TDesC16& aValue)
       
   128 {
       
   129     MPX_DEBUG(_L("RHttpDownload::SetStringAttribute(%d, %S)"), aAttribute, &aValue);
       
   130 
       
   131     if ( aAttribute == EDlAttrLocalFileName )
       
   132     {
       
   133         iLocalFile = aValue.Alloc();
       
   134     }
       
   135     else if ( aAttribute == EDlAttrDestFilename )
       
   136     {
       
   137         iDestFile = aValue.Alloc();
       
   138     }
       
   139 
       
   140     return KErrNone;
       
   141 }
       
   142 
       
   143 EXPORT_C TInt
       
   144 RHttpDownload::GetStringAttribute( const TUint /*aAttribute*/, TDes8& /*aValue*/ )
       
   145 {
       
   146     return KErrNone;
       
   147 }
       
   148 
       
   149 EXPORT_C TInt
       
   150 RHttpDownload::SetStringAttribute( const TUint /*aAttribute*/, const TDesC8& /*aValue*/ )
       
   151 {
       
   152     return KErrNone;
       
   153 }
       
   154 
       
   155 EXPORT_C TInt
       
   156 RHttpDownload::GetIntAttribute( const TUint aAttribute, TInt32& aValue )
       
   157 {
       
   158     switch ( aAttribute )
       
   159     {
       
   160         case EDlAttrLength:
       
   161         {
       
   162             aValue = iLength;
       
   163             break;
       
   164         }
       
   165         case EDlAttrDownloadedSize:
       
   166         {
       
   167             aValue = iSize;
       
   168             break;
       
   169         }
       
   170         case EDlAttrState:
       
   171         {
       
   172             aValue = iState;
       
   173             break;
       
   174         }
       
   175         case EDlAttrErrorId:
       
   176         {
       
   177             aValue = iErrorId;
       
   178             break;
       
   179         }
       
   180         case EDlAttrGlobalErrorId:
       
   181         {
       
   182             aValue = iGlobalError;
       
   183         }
       
   184     }
       
   185 
       
   186     MPX_DEBUG(_L("RHttpDownload::GetIntAttribute(%d, %d)"), aAttribute, aValue);
       
   187 
       
   188     return KErrNone;
       
   189 }
       
   190 
       
   191 EXPORT_C TInt
       
   192 RHttpDownload::SetIntAttribute( const TUint /*aAttribute*/, TInt32 /*aValue*/ )
       
   193 {
       
   194     return KErrNone;
       
   195 }
       
   196 
       
   197 EXPORT_C TInt
       
   198 RHttpDownload::GetFileHandleAttribute( RFile& /*aFile*/ )
       
   199 {
       
   200     return KErrNone;
       
   201 }
       
   202 
       
   203 EXPORT_C TInt
       
   204 RHttpDownload::SetFileHandleAttribute( RFile& /*aFile*/ )
       
   205 {
       
   206     return KErrNone;
       
   207 }
       
   208 
       
   209 EXPORT_C TInt
       
   210 RHttpDownload::Start()
       
   211 {
       
   212     MPX_DEBUG(_L("RHttpDownload::Start()"));
       
   213 
       
   214     iState = EHttpDlInprogress;
       
   215 
       
   216     RFile file;
       
   217     _LIT(KFileName, "\\vhpp_dlmgr.txt");
       
   218 
       
   219     RFs fs;
       
   220     fs.Connect();
       
   221 
       
   222     file.Open( fs, KFileName, EFileRead | EFileShareAny );
       
   223 
       
   224     TInt dlSize;
       
   225     HBufC8* fBuf = HBufC8::NewL( 16 );
       
   226     TPtr8 fileBuf = fBuf->Des();
       
   227 
       
   228     file.Read( fileBuf, 16 );
       
   229 
       
   230     TLex8 number( fileBuf );
       
   231     number.Val( dlSize );
       
   232 
       
   233     iSize = dlSize;
       
   234 
       
   235     file.Close();
       
   236     fs.Close();
       
   237 
       
   238     iServer->iUpdateSize->Start(
       
   239         TCallBack( RHttpDownloadMgr::UpdateDownloadProgress, iServer ) );
       
   240 
       
   241     return KErrNone;
       
   242 }
       
   243 
       
   244 EXPORT_C TInt
       
   245 RHttpDownload::Pause()
       
   246 {
       
   247     MPX_DEBUG(_L("RHttpDownload::Pause()"));
       
   248 
       
   249     iState = EHttpDlPaused;
       
   250 
       
   251     iServer->iUpdateSize->Start(
       
   252         TCallBack( RHttpDownloadMgr::UpdateDownloadProgress, iServer ) );
       
   253 
       
   254     return KErrNone;
       
   255 }
       
   256 
       
   257 EXPORT_C TInt
       
   258 RHttpDownload::Delete()
       
   259 {
       
   260     MPX_DEBUG(_L("RHttpDownload::Delete()"));
       
   261 
       
   262     iState = EHttpDlFailed;
       
   263 
       
   264     iServer->iUpdateSize->Start(
       
   265         TCallBack( RHttpDownloadMgr::UpdateDownloadProgress, iServer ) );
       
   266 
       
   267     return KErrNone;
       
   268 }
       
   269 
       
   270 EXPORT_C TInt
       
   271 RHttpDownload::Move()
       
   272 {
       
   273     MPX_DEBUG(_L("RHttpDownload::Move()"));
       
   274     return KErrNone;
       
   275 }
       
   276 
       
   277 EXPORT_C TInt
       
   278 RHttpDownload::Reset()
       
   279 {
       
   280     MPX_DEBUG(_L("RHttpDownload::Reset()"));
       
   281     return KErrNone;
       
   282 }
       
   283 
       
   284 RHttpDownload::RHttpDownload( RHttpDownloadMgr* aServer )
       
   285 {
       
   286     iServer = aServer;
       
   287 }
       
   288 
       
   289 RHttpDownload::~RHttpDownload()
       
   290 {
       
   291     if ( iLocalFile )
       
   292     {
       
   293         delete iLocalFile;
       
   294     }
       
   295 
       
   296     if ( iDestFile )
       
   297     {
       
   298         delete iDestFile;
       
   299     }
       
   300 }
       
   301 
       
   302 EXPORT_C
       
   303 RHttpDownloadMgr::RHttpDownloadMgr()
       
   304 {
       
   305     MPX_DEBUG(_L("RHttpDownloadMgr::RHttpDownloadMgr()"));
       
   306 
       
   307     iDownloadArray = new (ELeave) CArrayPtrFlat< RHttpDownload >( 1 );
       
   308 
       
   309     iObservers = new (ELeave) CDownloadMgrObserver( 1 );
       
   310 
       
   311     iUpdateSize = CIdle::NewL( CActive::EPriorityLow );
       
   312 
       
   313     iDlMgrCallback = CDlMgrTestClass::NewL();
       
   314 
       
   315     iDlMgrCallback->AddDownloadMgr( this );
       
   316 }
       
   317 
       
   318 RHttpDownloadMgr::~RHttpDownloadMgr()
       
   319 {
       
   320     delete iDownloadArray;
       
   321     delete iObservers;
       
   322 
       
   323     if ( iUpdateSize->IsActive() )
       
   324     {
       
   325         iUpdateSize->Cancel();
       
   326     }
       
   327 
       
   328     delete iUpdateSize;
       
   329 
       
   330     delete iDlMgrCallback;
       
   331 }
       
   332 
       
   333 EXPORT_C void
       
   334 RHttpDownloadMgr::ConnectL( TUid /*aAppUid*/, MHttpDownloadMgrObserver& aObserver, TBool /*aMaster*/ )
       
   335 {
       
   336     MPX_DEBUG(_L("RHttpDownloadMgr::ConnectL()"));
       
   337 
       
   338     iObservers->AppendL( &aObserver );
       
   339 }
       
   340 
       
   341 EXPORT_C TVersion
       
   342 RHttpDownloadMgr::Version() const
       
   343 {
       
   344     TVersion temp;
       
   345 
       
   346     return temp;
       
   347 }
       
   348 
       
   349 EXPORT_C void
       
   350 RHttpDownloadMgr::Close()
       
   351 {
       
   352 }
       
   353 
       
   354 EXPORT_C const CDownloadArray&
       
   355 RHttpDownloadMgr::CurrentDownloads() const
       
   356 {
       
   357     return (*iDownloadArray);
       
   358 }
       
   359 
       
   360 EXPORT_C RHttpDownload&
       
   361 RHttpDownloadMgr::CreateDownloadL( const TDesC8& /*aUrl*/, TBool& /*aResult*/ )
       
   362 {
       
   363     RHttpDownload* dl = new RHttpDownload( this );
       
   364 
       
   365     iDownloadArray->AppendL( dl );
       
   366 
       
   367     return *(*iDownloadArray)[0];
       
   368 }
       
   369 
       
   370 EXPORT_C RHttpDownload&
       
   371 RHttpDownloadMgr::CreateDownloadL( const TDesC8& /*aUrl*/ )
       
   372 {
       
   373     RHttpDownload* dl = new RHttpDownload( this );
       
   374 
       
   375     iDownloadArray->AppendL( dl );
       
   376 
       
   377     return *(*iDownloadArray)[0];
       
   378 }
       
   379 
       
   380 EXPORT_C RHttpDownload&
       
   381 RHttpDownloadMgr::CreateClientSideDownloadL( TInt /*aHttpTransaction*/, TBool& /*aResult*/ )
       
   382 {
       
   383     return *(*iDownloadArray)[0];
       
   384 }
       
   385 
       
   386 EXPORT_C RHttpDownload&
       
   387 RHttpDownloadMgr::CreateCodDownloadL( const TDesC8& /*aUrl*/, const TDesC8& /*aBuf*/, const TDesC8& /*aMimeType*/, CEikonEnv* /*aEikEnv*/, TBool& /*aResult*/ )
       
   388 {
       
   389     return *(*iDownloadArray)[0];
       
   390 }
       
   391 
       
   392 EXPORT_C RHttpDownload*
       
   393 RHttpDownloadMgr::FindDownload( const TDesC8& /*aUrl*/, const TDesC8& /*aMsgBody*/ )
       
   394 {
       
   395     return (*iDownloadArray)[0];
       
   396 }
       
   397 
       
   398 EXPORT_C TInt
       
   399 RHttpDownloadMgr::PauseAll()
       
   400 {
       
   401     MPX_DEBUG(_L("RHttpDownloadMgr::PauseAll()"));
       
   402 
       
   403     (*iDownloadArray)[0]->Pause();
       
   404 
       
   405     return KErrNone;
       
   406 }
       
   407 
       
   408 EXPORT_C TInt
       
   409 RHttpDownloadMgr::StartAll()
       
   410 {
       
   411     MPX_DEBUG(_L("RHttpDownloadMgr::PauseAll()"));
       
   412 
       
   413     (*iDownloadArray)[0]->Start();
       
   414 
       
   415     return KErrNone;
       
   416 }
       
   417 
       
   418 EXPORT_C TInt
       
   419 RHttpDownloadMgr::ResetAll()
       
   420 {
       
   421     return KErrNone;
       
   422 }
       
   423 
       
   424 EXPORT_C TInt
       
   425 RHttpDownloadMgr::DeleteAll()
       
   426 {
       
   427     (*iDownloadArray)[0]->Delete();
       
   428 
       
   429     return KErrNone;
       
   430 }
       
   431 
       
   432 EXPORT_C TInt
       
   433 RHttpDownloadMgr::Disconnect()
       
   434 {
       
   435     return KErrNone;
       
   436 }
       
   437 
       
   438 EXPORT_C TInt
       
   439 RHttpDownloadMgr::GetIntAttribute( const TUint /*aAttribute*/, TInt32& /*aValue*/ )
       
   440 {
       
   441     return KErrNone;
       
   442 }
       
   443 
       
   444 EXPORT_C TInt
       
   445 RHttpDownloadMgr::GetBoolAttribute( const TUint /*aAttribute*/, TBool& /*aValue*/ )
       
   446 {
       
   447     return KErrNone;
       
   448 }
       
   449 
       
   450 EXPORT_C TInt
       
   451 RHttpDownloadMgr::GetStringAttribute( const TUint /*aAttribute*/, TDes16& /*aValue*/  )
       
   452 {
       
   453     return KErrNone;
       
   454 }
       
   455 
       
   456 EXPORT_C TInt
       
   457 RHttpDownloadMgr::GetStringAttribute( const TUint /*aAttribute*/, TDes8& /*aValue*/ )
       
   458 {
       
   459     return KErrNone;
       
   460 }
       
   461 
       
   462 EXPORT_C TInt
       
   463 RHttpDownloadMgr::SetIntAttribute( const TUint /*aAttribute*/, TInt32 /*aValue*/ )
       
   464 {
       
   465     return KErrNone;
       
   466 }
       
   467 
       
   468 EXPORT_C TInt
       
   469 RHttpDownloadMgr::SetBoolAttribute( const TUint /*aAttribute*/, TBool /*aValue*/ )
       
   470 {
       
   471     return KErrNone;
       
   472 }
       
   473 
       
   474 EXPORT_C TInt
       
   475 RHttpDownloadMgr::SetStringAttribute( const TUint /*aAttribute*/, const TDesC16& /*aValue*/ )
       
   476 {
       
   477     return KErrNone;
       
   478 }
       
   479 
       
   480 EXPORT_C TInt
       
   481 RHttpDownloadMgr::SetStringAttribute( const TUint /*aAttribute*/, const TDesC8& /*aValue*/ )
       
   482 {
       
   483     return KErrNone;
       
   484 }
       
   485 
       
   486 EXPORT_C TInt
       
   487 RHttpDownloadMgr::SetDefaultIntAttribute( const TUint /*aAttribute*/, TInt32 /*aValue*/ )
       
   488 {
       
   489     return KErrNone;
       
   490 }
       
   491 
       
   492 EXPORT_C TInt
       
   493 RHttpDownloadMgr::SetDefaultBoolAttribute( const TUint /*aAttribute*/, TBool /*aValue*/ )
       
   494 {
       
   495     return KErrNone;
       
   496 }
       
   497 
       
   498 EXPORT_C TInt
       
   499 RHttpDownloadMgr::SetDefaultStringAttribute( const TUint /*aAttribute*/, const TDesC16& /*aValue*/ )
       
   500 {
       
   501     return KErrNone;
       
   502 }
       
   503 
       
   504 EXPORT_C TInt
       
   505 RHttpDownloadMgr::SetDefaultStringAttribute( const TUint /*aAttribute*/, const TDesC8& /*aValue*/ )
       
   506 {
       
   507     return KErrNone;
       
   508 }
       
   509 
       
   510 EXPORT_C void
       
   511 RHttpDownloadMgr::AddObserverL( MHttpDownloadMgrObserver& /*aObserver*/ )
       
   512 {
       
   513 }
       
   514 
       
   515 EXPORT_C void
       
   516 RHttpDownloadMgr::RemoveObserver( MHttpDownloadMgrObserver& /*aObserver*/ )
       
   517 {
       
   518 }
       
   519 
       
   520 EXPORT_C void
       
   521 RHttpDownloadMgr::SetNextUriObserver( MHttpDownloadMgrNextUriObserver* /*aObserver*/ )
       
   522 {
       
   523 }
       
   524 
       
   525 void
       
   526 RHttpDownloadMgr::DoUpdateDownloadProgress()
       
   527 {
       
   528     MPX_ENTER_EXIT(_L("RHttpDownloadMgr::DoUpdateDownloadProgress()"));
       
   529 
       
   530     RHttpDownload* dl = (*iDownloadArray)[0];
       
   531 
       
   532     THttpDownloadEvent event;
       
   533 
       
   534     event.iDownloadState = (THttpDownloadState)dl->iState;
       
   535     event.iProgressState = EHttpProgResponseBodyReceived;
       
   536 
       
   537     MPX_DEBUG(_L("RHttpDownloadMgr::DoUpdateDownloadProgress() dl->iSize=%d"), dl->iSize );
       
   538 
       
   539     if ( dl->iState == EHttpDlInprogress )
       
   540     {
       
   541         if ( dl->iSize >= dl->iLength )
       
   542         {
       
   543             dl->iState = EHttpDlCompleted;
       
   544 
       
   545             event.iDownloadState = (THttpDownloadState)dl->iState;
       
   546             event.iProgressState = EHttpProgNone;
       
   547         }
       
   548     }
       
   549 
       
   550     (*iObservers)[0]->HandleDMgrEventL( *dl, event );
       
   551 }
       
   552 
       
   553 TInt
       
   554 RHttpDownloadMgr::UpdateDownloadProgress( TAny* aPtr )
       
   555 {
       
   556     MPX_ENTER_EXIT(_L("RHttpDownloadMgr::UpdateDownloadProgress()"));
       
   557 
       
   558     static_cast<RHttpDownloadMgr*>(aPtr)->DoUpdateDownloadProgress();
       
   559 
       
   560     return KErrNone;
       
   561 }
       
   562 
       
   563 EXPORT_C
       
   564 RHttpDownloadMgrApiExt::RHttpDownloadMgrApiExt()
       
   565 {
       
   566     MPX_DEBUG(_L("RHttpDownloadMgrApiExt::RHttpDownloadMgrApiExt()"));
       
   567 }
       
   568 
       
   569 EXPORT_C RHttpDownload&
       
   570 RHttpDownloadMgrApiExt::AttachToDownloadL( const TInt32 aDlId )
       
   571 {
       
   572     MPX_DEBUG(_L("RHttpDownloadMgrApiExt::AttachToDownloadL(%d)"), aDlId);
       
   573 
       
   574     RHttpDownload* dl = new RHttpDownload( this );
       
   575 
       
   576     dl->iErrorId = KErrNone;
       
   577     dl->iGlobalError = KErrNone;
       
   578 
       
   579     iDlMgrCallback->AttachToDownloadL( aDlId );
       
   580 
       
   581     dl->iState   = EHttpDlInprogress;
       
   582     dl->iSize    = 25;
       
   583     dl->iLength  = 100;
       
   584 
       
   585     iDownloadArray->AppendL( dl );
       
   586 
       
   587     return *(*iDownloadArray)[0];
       
   588 }