videofeeds/server/tsrc/IptvTestUtility/src/CIptvTestSMApiUtil.cpp
changeset 0 96612d01cf9f
equal deleted inserted replaced
-1:000000000000 0:96612d01cf9f
       
     1 /*
       
     2 * Copyright (c) 2002-2004 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 the License "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:   Object to offer some common utility functions to Iptv engine testing*
       
    15 */
       
    16 
       
    17 
       
    18 
       
    19 
       
    20 // INCLUDE FILES
       
    21 #include <e32Base.h>
       
    22 #include "CIptvTestSMApiUtil.h"
       
    23 #include "CIptvService.h"
       
    24 #include "VCXTestLog.h"
       
    25 #include <BAUTILS.H>
       
    26 //#include <CIptvServiceManager.h>
       
    27 #include "CIptvTestActiveWait.h"
       
    28 
       
    29 #include "CIptvServiceManagementClient.h"
       
    30 
       
    31 // EXTERNAL DATA STRUCTURES
       
    32 
       
    33 // EXTERNAL FUNCTION PROTOTYPES
       
    34 
       
    35 // CONSTANTS
       
    36 
       
    37 // MACROS
       
    38 
       
    39 // LOCAL CONSTANTS AND MACROS
       
    40 
       
    41 // MODULE DATA STRUCTURES
       
    42 
       
    43 // LOCAL FUNCTION PROTOTYPES
       
    44 
       
    45 // FORWARD DECLARATIONS
       
    46 
       
    47 // ============================= LOCAL FUNCTIONS ===============================
       
    48 
       
    49 // ============================ MEMBER FUNCTIONS ===============================
       
    50 
       
    51 // -----------------------------------------------------------------------------
       
    52 // CIptvTestSMApiUtil::CIptvTestSMApiUtil
       
    53 // C++ default constructor can NOT contain any code, that
       
    54 // might leave.
       
    55 // -----------------------------------------------------------------------------
       
    56 //
       
    57 CIptvTestSMApiUtil::CIptvTestSMApiUtil()
       
    58     {
       
    59     }
       
    60 
       
    61 // -----------------------------------------------------------------------------
       
    62 // CIptvTestSMApiUtil::ConstructL
       
    63 // Symbian 2nd phase constructor can leave.
       
    64 // -----------------------------------------------------------------------------
       
    65 //
       
    66 void CIptvTestSMApiUtil::ConstructL()
       
    67     {
       
    68     iIptvServiceManagementClient = CIptvServiceManagementClient::NewL(*this);
       
    69     iActiveWait = CIptvTestActiveWait::NewL();
       
    70 
       
    71     iRefreshNeeded = ETrue;
       
    72     }
       
    73 
       
    74 // -----------------------------------------------------------------------------
       
    75 // CIptvServicesFromFile::NewL
       
    76 // Two-phased constructor.
       
    77 // -----------------------------------------------------------------------------
       
    78 //
       
    79 CIptvTestSMApiUtil* CIptvTestSMApiUtil::NewL()
       
    80     {
       
    81     VCXLOGLO1(">>>CIptvTestSMApiUtil::NewL");
       
    82     CIptvTestSMApiUtil* self = new( ELeave ) CIptvTestSMApiUtil;
       
    83 
       
    84     CleanupStack::PushL( self );
       
    85     self->ConstructL();
       
    86     CleanupStack::Pop();
       
    87 	VCXLOGLO1("<<<CIptvTestSMApiUtil::NewL");
       
    88     return self;
       
    89     }
       
    90 
       
    91 // -----------------------------------------------------------------------------
       
    92 // CIptvServicesFromFile::NewL
       
    93 // Destructor
       
    94 // -----------------------------------------------------------------------------
       
    95 //
       
    96 CIptvTestSMApiUtil::~CIptvTestSMApiUtil()
       
    97     {
       
    98     VCXLOGLO1(">>>CIptvTestSMApiUtil::~CIptvTestSMApiUtil");
       
    99 
       
   100   	iServicesArray.ResetAndDestroy();
       
   101 
       
   102 	delete iActiveWait;
       
   103 
       
   104     if(iIptvServiceManagementClient)
       
   105         {
       
   106         delete iIptvServiceManagementClient;
       
   107         iIptvServiceManagementClient=NULL;
       
   108         }
       
   109 
       
   110  	iFsSession.Close();
       
   111 
       
   112     VCXLOGLO1("<<<CIptvTestSMApiUtil::~CIptvTestSMApiUtil");
       
   113     }
       
   114 
       
   115 // -----------------------------------------------------------------------------
       
   116 // CIptvTestSMApiUtil::GetServiceFromDb
       
   117 // Creates CIptvServiceInstance from parameters
       
   118 // returns pointer to service if succeeded, otherwise NULL
       
   119 // -----------------------------------------------------------------------------
       
   120 //
       
   121 CIptvService* CIptvTestSMApiUtil::GetServiceFromDb(TInt aId)
       
   122     {
       
   123     if( iRefreshNeeded )
       
   124         {
       
   125         RefreshServicesL();
       
   126         }
       
   127 
       
   128     for(TInt i=iServicesArray.Count()-1; i>=0; i--)
       
   129         {
       
   130         if( iServicesArray[i]->GetId() == aId )
       
   131             {
       
   132             return CopyServiceL( *iServicesArray[i] );
       
   133             }
       
   134         }
       
   135 
       
   136     return NULL;
       
   137     }
       
   138 
       
   139 // -----------------------------------------------------------------------------
       
   140 // CIptvTestSMApiUtil::GetUsedIap
       
   141 // -----------------------------------------------------------------------------
       
   142 //
       
   143 TBool CIptvTestSMApiUtil::GetUsedIap(TUint32 aServiceId, TUint32& aIAPId, TDes& aIapName)
       
   144     {
       
   145     VCXLOGLO1(">>>CIptvTestSMApiUtil::GetUsedIap");
       
   146     TBool rv = ETrue;
       
   147 
       
   148     CIptvNetworkSelection::TConnectionPermission connectionPermission;
       
   149     CIptvNetworkSelection::TRespStatus respStatus;
       
   150 
       
   151     TRAPD(error, iIptvServiceManagementClient->GetUsedIapL(aServiceId,
       
   152                                                                 aIAPId,
       
   153                                                                 aIapName,
       
   154                                                                 connectionPermission,
       
   155                                                                 respStatus));
       
   156     if(error != KErrNone ||
       
   157         respStatus != CIptvNetworkSelection::ESucceeded)
       
   158         {
       
   159         VCXLOGLO1("<<<CIptvTestSMApiUtil::GetUsedIap failed!!!");
       
   160         rv = EFalse;
       
   161         }
       
   162 
       
   163     VCXLOGLO1("<<<CIptvTestSMApiUtil::GetUsedIap");
       
   164     return rv;
       
   165     }
       
   166 
       
   167 // ---------------------------------------------------------------------------
       
   168 // CIptvServiceManager::GetServicesFromDbL()
       
   169 // Get services from databases.
       
   170 // ---------------------------------------------------------------------------
       
   171 //
       
   172 TBool CIptvTestSMApiUtil::GetServicesFromDbL(RPointerArray<CIptvService>& aServicesArray, TUint32 aFlagsFilter,
       
   173         CIptvServiceManagementClient::TOrder aOrder)
       
   174     {
       
   175     VCXLOGLO1(">>>CIptvTestSMApiUtil::GetServicesFromDbL");
       
   176 
       
   177 	aServicesArray.ResetAndDestroy();
       
   178 
       
   179 	TInt err = KErrNone, err2 = KErrNone;
       
   180 
       
   181     TRAP(err2, err = iIptvServiceManagementClient->GetServicesReqL( aFlagsFilter, aOrder ) );
       
   182 
       
   183 	if(err2 != KErrNone)
       
   184     	{
       
   185         VCXLOGLO2("GetServicesReqL caused a leave: %d", err2);
       
   186         VCXLOGLO1("<<<CIptvTestSMApiUtil::GetServicesFromDbL");
       
   187     	return EFalse;
       
   188     	}
       
   189     else
       
   190     if(err != KErrNone)
       
   191     	{
       
   192         VCXLOGLO2("GetServicesReqL returned error: %d", err);
       
   193         VCXLOGLO1("<<<CIptvTestSMApiUtil::GetServicesFromDbL");
       
   194         return EFalse;
       
   195     	}
       
   196 
       
   197 	iActiveWait->ActiveWait(CIptvTestActiveWait::EActiveWaitStart);
       
   198 
       
   199     TBool ret = ETrue;
       
   200     if( iSMRespStatus != MIptvServiceManagementClientObserver::ESucceeded
       
   201             && iSMRespStatus != MIptvServiceManagementClientObserver::EEmpty
       
   202             )
       
   203         {
       
   204         ret = EFalse;
       
   205         }
       
   206 
       
   207 	for(TInt i = 0; i < iServicesArray.Count(); i++)
       
   208     	{
       
   209         aServicesArray.Append( CopyServiceL( *iServicesArray[i] ) );
       
   210     	}
       
   211 
       
   212     VCXLOGLO1("<<<CIptvTestSMApiUtil::GetServicesFromDbL");
       
   213 
       
   214     return ret;
       
   215     }
       
   216 
       
   217 // ---------------------------------------------------------------------------
       
   218 // CIptvServiceManager::GetServicesFromDbL()
       
   219 // Get services from databases.
       
   220 // ---------------------------------------------------------------------------
       
   221 //
       
   222 TBool CIptvTestSMApiUtil::GetServicesFromDbL(RPointerArray<CIptvService>& aServicesArray)
       
   223     {
       
   224     VCXLOGLO1(">>>CIptvTestSMApiUtil::GetServicesFromDbL (2)");
       
   225 
       
   226     aServicesArray.ResetAndDestroy();
       
   227 
       
   228     if( iRefreshNeeded )
       
   229         {
       
   230         RefreshServicesL();
       
   231         }
       
   232 
       
   233     for(TInt i = 0; i < iServicesArray.Count(); i++)
       
   234         {
       
   235         aServicesArray.Append( CopyServiceL( *iServicesArray[i] ) );
       
   236         }
       
   237 
       
   238     VCXLOGLO1("<<<CIptvTestSMApiUtil::GetServicesFromDbL (2)");
       
   239     return ETrue;
       
   240     }
       
   241 
       
   242 // ---------------------------------------------------------------------------
       
   243 // CIptvServiceManager::RefreshServicesL()
       
   244 // ---------------------------------------------------------------------------
       
   245 //
       
   246 TBool CIptvTestSMApiUtil::RefreshServicesL()
       
   247     {
       
   248     VCXLOGLO1(">>>CIptvTestSMApiUtil::RefreshServicesL");
       
   249     iServicesArray.ResetAndDestroy();
       
   250 
       
   251     if( iRefreshingServices )
       
   252         {
       
   253         VCXLOGLO1("<<<CIptvTestSMApiUtil:: Already refreshing.");
       
   254         VCXLOGLO1("<<<CIptvTestSMApiUtil::RefreshServicesL");
       
   255         return ETrue;
       
   256         }
       
   257 
       
   258     TInt err = KErrNone, err2 = KErrNone;
       
   259     TRAP(err2, err = iIptvServiceManagementClient->GetServicesReqL(0, CIptvServiceManagementClient::EDisplayOrderAscending ));
       
   260 
       
   261     if(err2 != KErrNone)
       
   262         {
       
   263         VCXLOGLO2("GetServicesReqL caused a leave: %d", err2);
       
   264         VCXLOGLO1("<<<CIptvTestSMApiUtil::RefreshServicesL");
       
   265         return EFalse;
       
   266         }
       
   267     else
       
   268     if(err != KErrNone)
       
   269         {
       
   270         VCXLOGLO2("GetServicesReqL returned error: %d", err);
       
   271         VCXLOGLO1("<<<CIptvTestSMApiUtil::RefreshServicesL");
       
   272         return EFalse;
       
   273         }
       
   274 
       
   275     iRefreshingServices = ETrue;
       
   276 
       
   277     iActiveWait->ActiveWait(CIptvTestActiveWait::EActiveWaitStart);
       
   278 
       
   279     TBool ret = ETrue;
       
   280     if( iSMRespStatus != MIptvServiceManagementClientObserver::ESucceeded
       
   281             && iSMRespStatus != MIptvServiceManagementClientObserver::EEmpty
       
   282             )
       
   283         {
       
   284         ret = EFalse;
       
   285         }
       
   286 
       
   287     VCXLOGLO1("<<<CIptvTestSMApiUtil::RefreshServicesL");
       
   288     return ret;
       
   289     }
       
   290 
       
   291 // ---------------------------------------------------------------------------
       
   292 // CIptvTestSMApiUtil::IsServiceIncludedInSearch()
       
   293 //
       
   294 // Decides if the service is included in the search.
       
   295 // ---------------------------------------------------------------------------
       
   296 //
       
   297 TBool CIptvTestSMApiUtil::IsServiceIncludedInSearch(TUint32 aSearchLimitFlags, CIptvService& aIptvService)
       
   298     {
       
   299     if(aSearchLimitFlags == 0)
       
   300         {
       
   301         return ETrue;
       
   302         }
       
   303 
       
   304          /*   ESelectedServices = (1 << 0),
       
   305             EMainServices     = (1 << 1),
       
   306             ESubServices      = (1 << 2),
       
   307             EVod              = (1 << 3),
       
   308             ELiveTv           = (1 << 4),
       
   309             EVodCast          = (1 << 5),
       
   310             EOther            = (1 << 6)        */
       
   311 
       
   312 
       
   313     if((aSearchLimitFlags & CIptvServiceManagementClient::ESelectedServices)
       
   314        && aIptvService.GetFlags() & CIptvService::ESelected)
       
   315         {
       
   316         return ETrue;
       
   317         }
       
   318 
       
   319     if((aSearchLimitFlags & CIptvServiceManagementClient::EMainServices)
       
   320        && (aIptvService.GetFlags() & CIptvService::EMainService))
       
   321         {
       
   322         return ETrue;
       
   323         }
       
   324 
       
   325     if((aSearchLimitFlags & CIptvServiceManagementClient::ESubServices)
       
   326         && !(aIptvService.GetFlags() & CIptvService::EMainService))
       
   327         {
       
   328         return ETrue;
       
   329         }
       
   330 
       
   331     if((aSearchLimitFlags & CIptvServiceManagementClient::EVod)
       
   332        && (aIptvService.GetType() == CIptvService::EVod))
       
   333         {
       
   334         return ETrue;
       
   335         }
       
   336 
       
   337     if((aSearchLimitFlags & CIptvServiceManagementClient::EVodCast)
       
   338        && (aIptvService.GetType() == CIptvService::EVodCast))
       
   339         {
       
   340         return ETrue;
       
   341         }
       
   342 
       
   343     if((aSearchLimitFlags & CIptvServiceManagementClient::EBrowser)
       
   344        && (aIptvService.GetType() == CIptvService::EBrowser))
       
   345         {
       
   346         return ETrue;
       
   347         }
       
   348 
       
   349     if((aSearchLimitFlags & CIptvServiceManagementClient::EVideoRemote)
       
   350        && (aIptvService.GetType() == CIptvService::EVideoRemote))
       
   351         {
       
   352         return ETrue;
       
   353         }
       
   354 
       
   355 
       
   356     if((aSearchLimitFlags & CIptvServiceManagementClient::EApplication)
       
   357        && (aIptvService.GetType() == CIptvService::EApplication))
       
   358         {
       
   359         return ETrue;
       
   360         }
       
   361 
       
   362     if(aSearchLimitFlags & CIptvServiceManagementClient::ELiveTv
       
   363        && (aIptvService.GetType() == CIptvService::ELiveTv))
       
   364         {
       
   365         return ETrue;
       
   366         }
       
   367 
       
   368     if(aSearchLimitFlags & CIptvServiceManagementClient::EMobileTv
       
   369        && (aIptvService.GetType() == CIptvService::EMobileTv))
       
   370         {
       
   371         return ETrue;
       
   372         }
       
   373 
       
   374     if(aSearchLimitFlags & CIptvServiceManagementClient::EOther
       
   375        && (aIptvService.GetType() == CIptvService::EOther))
       
   376         {
       
   377         return ETrue;
       
   378         }
       
   379 
       
   380     return EFalse;
       
   381     }
       
   382 
       
   383 // -----------------------------------------------------------------------------
       
   384 // CIptvTestSMApiUtil::CopyService
       
   385 // -----------------------------------------------------------------------------
       
   386 //
       
   387 CIptvService* CIptvTestSMApiUtil::CopyServiceL( CIptvService& aService )
       
   388     {
       
   389     CIptvService* iptvService = NULL;
       
   390 
       
   391     iptvService = CIptvService::NewL();
       
   392     CleanupStack::PushL(iptvService);
       
   393     HBufC8* buff = aService.GetL();
       
   394     CleanupStack::PushL(buff);
       
   395     iptvService->SetL( buff->Des() );
       
   396     CleanupStack::PopAndDestroy(buff);
       
   397     CleanupStack::Pop(iptvService);
       
   398 
       
   399     return iptvService;
       
   400     }
       
   401 
       
   402 // -----------------------------------------------------------------------------
       
   403 // CIptvTestSMApiUtil::SetUsedIap(TUint32 aServiceId, TUint32 aIapId)
       
   404 //
       
   405 // Sets default iap for a service, and set connecting allowed for the iap.
       
   406 // -----------------------------------------------------------------------------
       
   407 //
       
   408 TInt CIptvTestSMApiUtil::SetUsedIap(TUint32 aServiceId, TUint32 aIapId)
       
   409 	{
       
   410 	TInt err(KErrNone);
       
   411 	CIptvNetworkSelection::TRespStatus respStatus;
       
   412 
       
   413     TRAP(err, iIptvServiceManagementClient->SetUsedIapL(aIapId, aServiceId, ETrue, respStatus));
       
   414 
       
   415 	if(KErrNone != err)
       
   416 	    {
       
   417 	    VCXLOGLO1("CIptvServiceManagementClient::SetUsedIapL leaved");
       
   418 	    return err;
       
   419 	    }
       
   420 	else if( CIptvNetworkSelection::ESucceeded != respStatus )
       
   421 	    {
       
   422 	    VCXLOGLO1("CIptvServiceManagementClient::SetUsedIapL returned error");
       
   423 	    return respStatus;
       
   424 	    }
       
   425 
       
   426     TRAP(err, iIptvServiceManagementClient->SetConnectionAllowedL(ETrue, aIapId, respStatus));
       
   427 
       
   428 	if(KErrNone != err)
       
   429 	    {
       
   430 	    VCXLOGLO1("CIptvServiceManagementClient::SetConnectionAllowedL leaved");
       
   431 	    return err;
       
   432 	    }
       
   433 
       
   434 	else if( CIptvNetworkSelection::ESucceeded != respStatus )
       
   435 	    {
       
   436 	    VCXLOGLO1("CIptvServiceManagementClient::SetConnectionAllowedL returned error");
       
   437 	    return respStatus;
       
   438 	    }
       
   439 
       
   440 	return err;
       
   441 	}
       
   442 
       
   443 // -----------------------------------------------------------------------------
       
   444 // CIptvTestSMApiUtil::RefreshService(TUint32 aServiceId)
       
   445 //
       
   446 // Loads old service, creates a new duplicate of it and delete the old service.
       
   447 // Useful for testing scheduled download, because all the contents seems to be
       
   448 // new, not previously downloaded after calling this for a service.
       
   449 // Old service id is not valid after calling this
       
   450 // -----------------------------------------------------------------------------
       
   451 //
       
   452 TInt CIptvTestSMApiUtil::RefreshService(TUint32 aServiceId, TTime aLastDownloadTime)
       
   453 	{
       
   454 	VCXLOGLO1(">>>CIptvTestSMApiUtil::RefreshService");
       
   455     MIptvServiceManagementClientObserver::TRespStatus status;
       
   456     TInt leave(KErrNone);
       
   457     TInt err(KErrNone);
       
   458     CIptvService* service(NULL);
       
   459 
       
   460     TRAP(leave, service = GetServiceFromDb(aServiceId));
       
   461 
       
   462     if( leave!=KErrNone || service==NULL )
       
   463         {
       
   464         VCXLOGLO1("<<<CIptvTestSMApiUtil::RefreshService: GetServiceFromDb");
       
   465         return KErrNotFound;
       
   466         }
       
   467 
       
   468     TRAP(leave, err = iIptvServiceManagementClient->DeleteServiceL(aServiceId, status));
       
   469 
       
   470     if( MIptvServiceManagementClientObserver::ESucceeded != status ||
       
   471         KErrNone != leave || KErrNone != err)
       
   472         {
       
   473         VCXLOGLO1("<<<CIptvTestSMApiUtil::RefreshService: DeleteServiceL");
       
   474         return KErrGeneral;
       
   475         }
       
   476 
       
   477     // Create new unique provider id.
       
   478     _LIT(Kd,"%d");
       
   479     TBuf<24> buf;
       
   480     TTime now;
       
   481     now.HomeTime();
       
   482     buf.Format(Kd, now.Int64());
       
   483     service->SetProviderId(buf);
       
   484 
       
   485     //  After this it seems that downloas haven't ever been scheduled for this service.
       
   486     service->SetScheduledLastDownloadTime(aLastDownloadTime);
       
   487 
       
   488     TRAP(leave, err = iIptvServiceManagementClient->AddServiceL(*service, status));
       
   489 
       
   490     if( MIptvServiceManagementClientObserver::ESucceeded != status||
       
   491         KErrNone != leave|| KErrNone != err )
       
   492         {
       
   493         VCXLOGLO1("<<<CIptvTestSMApiUtil::RefreshService: AddServiceL");
       
   494         return KErrGeneral;
       
   495         }
       
   496 
       
   497 	VCXLOGLO1("<<<CIptvTestSMApiUtil::RefreshService");
       
   498 	return KErrNone;
       
   499 	}
       
   500 
       
   501 // -----------------------------------------------------------------------------
       
   502 // CIptvTestSMApiUtil::GetServicesResp()
       
   503 //
       
   504 // -----------------------------------------------------------------------------
       
   505 //
       
   506 void CIptvTestSMApiUtil::GetServicesResp(TRespStatus aRespStatus, CDesC8ArraySeg* aServicesArray)
       
   507 	{
       
   508 	VCXLOGLO1(">>>CIptvTestSMApiUtil::GetServicesResp");
       
   509 
       
   510 	iRefreshNeeded = EFalse;
       
   511 	switch(iSMRespStatus)
       
   512         {
       
   513         case MIptvServiceManagementClientObserver::ESucceeded:
       
   514             {
       
   515             VCXLOGLO1("GetServicesReqL response: ESucceeded");
       
   516             break;
       
   517             }
       
   518 
       
   519         case MIptvServiceManagementClientObserver::EEmpty:
       
   520             {
       
   521             VCXLOGLO1("GetServicesReqL response: EEmpty");
       
   522             break;
       
   523             }
       
   524 
       
   525         case MIptvServiceManagementClientObserver::EServiceNotFound:
       
   526             {
       
   527             VCXLOGLO1("GetServicesReqL response: EServiceNotFound");
       
   528             iRefreshNeeded = ETrue;
       
   529             break;
       
   530             }
       
   531 
       
   532         case MIptvServiceManagementClientObserver::EGeneralError:
       
   533             {
       
   534             VCXLOGLO1("GetServicesReqL response: EGeneralError");
       
   535             iRefreshNeeded = ETrue;
       
   536             break;
       
   537             }
       
   538 
       
   539         case MIptvServiceManagementClientObserver::ECancelled:
       
   540             {
       
   541             VCXLOGLO1("GetServicesReqL response: ECancelled");
       
   542             iRefreshNeeded = ETrue;
       
   543             break;
       
   544             }
       
   545 
       
   546         default:
       
   547             {
       
   548             VCXLOGLO2("GetServicesReqL response: unknown: %d", aRespStatus);
       
   549             iRefreshNeeded = ETrue;
       
   550             break;
       
   551             }
       
   552         }
       
   553 
       
   554 	iSMRespStatus = aRespStatus;
       
   555     iRefreshingServices = EFalse;
       
   556 
       
   557     if( aServicesArray )
       
   558         {
       
   559         iServicesArray.ResetAndDestroy();
       
   560 
       
   561         CIptvService* iptvService = NULL;
       
   562 
       
   563         for(TInt i = 0; i < aServicesArray->MdcaCount(); i++)
       
   564             {
       
   565             iptvService = CIptvService::NewL();
       
   566             CleanupStack::PushL(iptvService);
       
   567             iptvService->SetL(aServicesArray->MdcaPoint(i));
       
   568             iServicesArray.Append( iptvService );
       
   569             VCXLOGLO3("CIptvTestSMApiUtil:: service id: %d, name: %S", iptvService->GetId(), &(iptvService->GetName()) );
       
   570             CleanupStack::Pop(iptvService);
       
   571             iptvService = NULL;
       
   572             }
       
   573 
       
   574         aServicesArray->Reset();
       
   575         delete aServicesArray;
       
   576         aServicesArray = NULL;
       
   577         }
       
   578     else
       
   579         {
       
   580         VCXLOGLO1("CIptvTestSMApiUtil:: aServicesArray = NULL");
       
   581         iRefreshNeeded = ETrue;
       
   582         }
       
   583 
       
   584     iActiveWait->ActiveWait(CIptvTestActiveWait::EActiveWaitStop);
       
   585 
       
   586     VCXLOGLO1("<<<CIptvTestSMApiUtil::GetServicesResp");
       
   587 	}
       
   588 
       
   589 // -----------------------------------------------------------------------------
       
   590 // CIptvTestSMApiUtil::HandleSmEvent()
       
   591 //
       
   592 // -----------------------------------------------------------------------------
       
   593 //
       
   594 void CIptvTestSMApiUtil::HandleSmEvent(CIptvSmEvent& aEvent )
       
   595     {
       
   596     VCXLOGLO1(">>>CIptvTestSMApiUtil::HandleSmEvent");
       
   597     VCXLOGLO2(">>>CIptvTestSMApiUtil:: Event: %d", aEvent.iEvent );
       
   598     switch( aEvent.iEvent )
       
   599         {
       
   600         case CIptvSmEvent::EServiceAdded:
       
   601         case CIptvSmEvent::EServiceModified:
       
   602         case CIptvSmEvent::EServiceScheduleModified:
       
   603         case CIptvSmEvent::EServiceDeleted:
       
   604             {
       
   605             iRefreshNeeded = ETrue;
       
   606             }
       
   607             break;
       
   608 
       
   609         case CIptvSmEvent::EServiceSelectionModified:
       
   610             {
       
   611 
       
   612             }
       
   613             break;
       
   614 
       
   615         default:
       
   616             {
       
   617             }
       
   618             break;
       
   619         }
       
   620     VCXLOGLO1("<<<CIptvTestSMApiUtil::HandleSmEvent");
       
   621     }
       
   622 
       
   623 //  End of File
       
   624