videofeeds/server/tsrc/VCXServiceManagementApiTest/src/CIptvTestServiceStore.cpp
changeset 0 96612d01cf9f
equal deleted inserted replaced
-1:000000000000 0:96612d01cf9f
       
     1 /*
       
     2 * Copyright (c) 2002-2007 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: 
       
    15 *
       
    16 */
       
    17 
       
    18 
       
    19 
       
    20 //  INCLUDES
       
    21 #include "CIptvTestServiceStore.h"
       
    22 #include "VCXTestLog.h"
       
    23 #include "CIptvTestUtilities.h"
       
    24 
       
    25 #include "CIptvService.h"
       
    26 #include "CIptvServices.h"
       
    27 
       
    28 // -----------------------------------------------------------------------------
       
    29 // CIptvTestServiceStore::NewL
       
    30 // -----------------------------------------------------------------------------
       
    31 //
       
    32 CIptvTestServiceStore* CIptvTestServiceStore::NewL( CIptvTestServiceStore* aStore, CIptvTestUtilities* aTestUtil )
       
    33     {
       
    34     VCXLOGLO1(">>>CIptvTestServiceStore::NewL");
       
    35     CIptvTestServiceStore* self = new (ELeave) CIptvTestServiceStore();
       
    36     CleanupStack::PushL(self);
       
    37     self->ConstructL( aStore, aTestUtil, NULL );
       
    38     CleanupStack::Pop(self);
       
    39     VCXLOGLO1("<<<CIptvTestServiceStore::NewL");
       
    40     return self;
       
    41     }
       
    42 
       
    43 // -----------------------------------------------------------------------------
       
    44 // CIptvTestServiceStore::NewL
       
    45 // -----------------------------------------------------------------------------
       
    46 //
       
    47 CIptvTestServiceStore* CIptvTestServiceStore::NewL( CIptvServices* aServices )
       
    48     {
       
    49     VCXLOGLO1(">>>CIptvTestServiceStore::NewL");
       
    50     CIptvTestServiceStore* self = new (ELeave) CIptvTestServiceStore();
       
    51     CleanupStack::PushL(self);
       
    52     self->ConstructL( NULL, NULL, aServices );
       
    53     CleanupStack::Pop(self);
       
    54     VCXLOGLO1("<<<CIptvTestServiceStore::NewL");
       
    55     return self;
       
    56     }
       
    57 
       
    58 // -----------------------------------------------------------------------------
       
    59 // CIptvTestServiceStore::~CIptvTestServiceStore
       
    60 // -----------------------------------------------------------------------------
       
    61 //
       
    62 CIptvTestServiceStore::~CIptvTestServiceStore()
       
    63     {
       
    64     VCXLOGLO1(">>>CIptvTestServiceStore::~CIptvTestServiceStore");
       
    65 
       
    66     iServices.ResetAndDestroy();
       
    67     iServices.Close();
       
    68 
       
    69     VCXLOGLO1("<<<CIptvTestServiceStore::~CIptvTestServiceStore");
       
    70     }
       
    71 
       
    72 // -----------------------------------------------------------------------------
       
    73 // CIptvTestServiceStore::CIptvTestServiceStore
       
    74 // -----------------------------------------------------------------------------
       
    75 //
       
    76 CIptvTestServiceStore::CIptvTestServiceStore()
       
    77     {
       
    78     VCXLOGLO1(">>>CIptvTestServiceStore::CIptvTestServiceStore");
       
    79 
       
    80     VCXLOGLO1("<<<CIptvTestServiceStore::CIptvTestServiceStore");
       
    81     }
       
    82 
       
    83 // -----------------------------------------------------------------------------
       
    84 // CIptvTestServiceStore::ConstructL
       
    85 // -----------------------------------------------------------------------------
       
    86 //
       
    87 void CIptvTestServiceStore::ConstructL( CIptvTestServiceStore* aStore, CIptvTestUtilities* aTestUtil, CIptvServices* aServices )
       
    88     {
       
    89     VCXLOGLO1(">>>CIptvTestServiceStore::ConstructL");
       
    90 
       
    91     iIptvTestUtilities = aTestUtil;
       
    92 
       
    93     if(aStore != NULL)
       
    94         {
       
    95         TInt i;
       
    96         for(i=0; i<aStore->ServiceCount(); i++)
       
    97             {
       
    98             CIptvService* service;
       
    99             service = aStore->GetService(i);
       
   100             if(service != NULL)
       
   101                 {
       
   102                 AddServiceL( *service );
       
   103                 }
       
   104             }
       
   105         }
       
   106 
       
   107     if(aServices != NULL)
       
   108         {
       
   109         TInt i;
       
   110         for(i=0; i<aServices->Count(); i++)
       
   111             {
       
   112             CIptvService* service;
       
   113             service = aServices->GetServiceL(i);
       
   114             CleanupStack::PushL( service );
       
   115             AddServiceL( *service );
       
   116             CleanupStack::PopAndDestroy( service );
       
   117             }
       
   118         }
       
   119 
       
   120     VCXLOGLO1("<<<CIptvTestServiceStore::ConstructL");
       
   121     }
       
   122 
       
   123 // -----------------------------------------------------------------------------
       
   124 // CIptvTestServiceStore::RefreshServicesFromDbL
       
   125 // -----------------------------------------------------------------------------
       
   126 //
       
   127 void CIptvTestServiceStore::RefreshServicesFromDbL(TUint32 aFlagsFilter, CIptvServiceManagementClient::TOrder aOrder)
       
   128     {
       
   129     VCXLOGLO1(">>>CIptvTestServiceStore::RefreshServicesFromDbL");
       
   130 
       
   131     if(!iIptvTestUtilities)
       
   132         {
       
   133         VCXLOGLO1("No instance of CIptvTestUtilities!");
       
   134         VCXLOGLO1("<<<CIptvTestServiceStore::RefreshServicesFromDbL");
       
   135         User::Leave(KErrNotReady);
       
   136         }
       
   137 
       
   138     DeleteAllServices();
       
   139 
       
   140     TBool ok = EFalse;
       
   141     TRAPD(error, ok = iIptvTestUtilities->GetServicesFromDbL(iServices, aFlagsFilter, aOrder) );
       
   142 
       
   143     if(!ok || error)
       
   144         {
       
   145         iServices.ResetAndDestroy();
       
   146 
       
   147         VCXLOGLO3("** FAIL ** Getting services failed. ok: %d, leave: %d", ok, error);
       
   148         VCXLOGLO1("<<<CIptvTestServiceStore::RefreshServicesFromDbL");
       
   149         }
       
   150 
       
   151     error = (error == KErrNone && ok == EFalse) ? KErrGeneral : error;
       
   152     if(error != KErrNone)
       
   153         {
       
   154         VCXLOGLO2("CIptvTestServiceStore::RefreshServicesFromDbL ERROR %d", error);
       
   155         VCXLOGLO1("<<<CIptvTestServiceStore::RefreshServicesFromDbL");
       
   156         }
       
   157 
       
   158     VCXLOGLO1("<<<CIptvTestServiceStore::RefreshServicesFromDbL");
       
   159     }
       
   160 
       
   161 // -----------------------------------------------------------------------------
       
   162 // CIptvTestServiceStore::AddServiceL
       
   163 // -----------------------------------------------------------------------------
       
   164 //
       
   165 void CIptvTestServiceStore::AddServiceL(CIptvService& aService)
       
   166     {
       
   167     VCXLOGLO1(">>>CIptvTestServiceStore::AddServiceL");
       
   168 
       
   169     CIptvService* service = CloneServiceL(aService);
       
   170     iServices.Append( service );
       
   171 
       
   172     VCXLOGLO1("<<<CIptvTestServiceStore::AddServiceL");
       
   173     }
       
   174 
       
   175 // -----------------------------------------------------------------------------
       
   176 // CIptvTestServiceStore::AddServicesL
       
   177 // -----------------------------------------------------------------------------
       
   178 //
       
   179 void CIptvTestServiceStore::AddServicesL(RPointerArray<CIptvService>& aServiceArray)
       
   180     {
       
   181     VCXLOGLO1(">>>CIptvTestServiceStore::AddServicesL");
       
   182 
       
   183     TInt i;
       
   184     for(i=0; i<aServiceArray.Count(); i++)
       
   185         {
       
   186         AddServiceL(*aServiceArray[i]);
       
   187         }
       
   188 
       
   189     VCXLOGLO1("<<<CIptvTestServiceStore::AddServicesL");
       
   190     }
       
   191 
       
   192 // -----------------------------------------------------------------------------
       
   193 // CIptvTestServiceStore::ReplaceServiceL
       
   194 // -----------------------------------------------------------------------------
       
   195 //
       
   196 void CIptvTestServiceStore::ReplaceServiceL(TInt aId, CIptvService& aService)
       
   197     {
       
   198     VCXLOGLO1(">>>CIptvTestServiceStore::ReplaceServiceL");
       
   199 
       
   200     TInt i = FindService(iServices, aId);
       
   201     if(i < KErrNone)
       
   202         {
       
   203         VCXLOGLO1("<<<CIptvTestServiceStore::ReplaceServiceL");
       
   204         User::Leave(i);
       
   205         }
       
   206 
       
   207     CIptvService* service = CloneServiceL(aService);
       
   208 
       
   209     VCXLOGLO1("Services before:");
       
   210     PrintServices();
       
   211 
       
   212     // Get the old service
       
   213     CIptvService* oldService = iServices[i];
       
   214     service->SetId( oldService->GetId() );
       
   215     delete oldService;
       
   216     oldService = NULL;
       
   217     
       
   218     iServices.Insert(service, i);
       
   219     iServices.Remove(i+1);
       
   220 
       
   221     VCXLOGLO1("Services now:");
       
   222     PrintServices();
       
   223 
       
   224     VCXLOGLO1("<<<CIptvTestServiceStore::ReplaceServiceL");
       
   225     }
       
   226 
       
   227 // -----------------------------------------------------------------------------
       
   228 // CIptvTestServiceStore::DeleteService
       
   229 // -----------------------------------------------------------------------------
       
   230 //
       
   231 TInt CIptvTestServiceStore::DeleteService(TInt aId)
       
   232     {
       
   233     VCXLOGLO1(">>>CIptvTestServiceStore::DeleteService");
       
   234 
       
   235     TInt i = FindService(iServices, aId);
       
   236     if(i < KErrNone)
       
   237         {
       
   238         VCXLOGLO1("<<<CIptvTestServiceStore::DeleteService");
       
   239         return i;
       
   240         }
       
   241 
       
   242     CIptvService* service = iServices[i];
       
   243     if( service->GetType() == CIptvService::EServiceGroup )
       
   244         {
       
   245         /* Get groupId and delete the group */
       
   246         TInt groupID( service->GetGroupId() );
       
   247         delete service;
       
   248         service = NULL;
       
   249         iServices.Remove(i);
       
   250         
       
   251         /* delete services with groupID */
       
   252         TInt groupedIndex( 0 );
       
   253         groupedIndex = FindServiceByGroupId( iServices, groupID );
       
   254         while( groupedIndex != KErrNotFound )
       
   255             {
       
   256             iServices.Remove( groupedIndex );
       
   257             groupedIndex = FindServiceByGroupId( iServices, groupID );
       
   258             }
       
   259         }
       
   260     else
       
   261         {
       
   262         delete service;
       
   263         service = NULL;
       
   264         iServices.Remove(i);        
       
   265         }
       
   266 
       
   267     VCXLOGLO1("<<<CIptvTestServiceStore::DeleteService");
       
   268     return KErrNone;
       
   269     }
       
   270 
       
   271 // -----------------------------------------------------------------------------
       
   272 // CIptvTestServiceStore::Compare
       
   273 // -----------------------------------------------------------------------------
       
   274 //
       
   275 TInt CIptvTestServiceStore::Compare(CIptvTestServiceStore& aStore)
       
   276     {
       
   277     VCXLOGLO1(">>>CIptvTestServiceStore::Compare");
       
   278 
       
   279     if( aStore.ServiceCount() != iServices.Count() )
       
   280         {
       
   281         VCXLOGLO3("Counts of services are different, %d vs. %d.", aStore.ServiceCount(), iServices.Count() );
       
   282         VCXLOGLO1("<<<CIptvTestServiceStore::Compare");
       
   283         return KErrCorrupt;
       
   284         }
       
   285 
       
   286     TInt i;
       
   287     for(i=0; i< aStore.ServiceCount(); i++)
       
   288         {
       
   289         CIptvService* service = aStore.GetService(i);
       
   290         if(!CompareServices(*(iServices[i]), *service ))
       
   291             {
       
   292             VCXLOGLO2("Services at index %d are different!", i);
       
   293             VCXLOGLO1("<<<CIptvTestServiceStore::Compare");
       
   294             return KErrCorrupt;
       
   295             }
       
   296         }
       
   297 
       
   298     VCXLOGLO1("<<<CIptvTestServiceStore::Compare");
       
   299     return KErrNone;
       
   300     }
       
   301 
       
   302 // -----------------------------------------------------------------------------
       
   303 // CIptvTestServiceStore::GetService
       
   304 // -----------------------------------------------------------------------------
       
   305 //
       
   306 CIptvService* CIptvTestServiceStore::GetService(TInt aIndex)
       
   307     {
       
   308     CIptvService* service = NULL;
       
   309     ASSERT(aIndex >= 0 && aIndex < iServices.Count());
       
   310     service = iServices[aIndex];
       
   311     return service;
       
   312     }
       
   313 
       
   314 // -----------------------------------------------------------------------------
       
   315 // CIptvTestServiceStore::GetServiceById
       
   316 // -----------------------------------------------------------------------------
       
   317 //
       
   318 CIptvService* CIptvTestServiceStore::GetServiceById(TInt aId)
       
   319     {
       
   320     VCXLOGLO1(">>>CIptvTestServiceStore::GetServiceById");
       
   321     CIptvService* service = NULL;
       
   322 
       
   323     TInt i;
       
   324     for(i=0; i< iServices.Count(); i++)
       
   325         {
       
   326         if(iServices[i]->GetId() == aId)
       
   327             {
       
   328             service = iServices[i];
       
   329             break;
       
   330             }
       
   331         }
       
   332 
       
   333     if(service == NULL)
       
   334         {
       
   335         VCXLOGLO2("Service not found with id: %d", aId);
       
   336         }
       
   337 
       
   338     VCXLOGLO1("<<<CIptvTestServiceStore::GetServiceById");
       
   339     return service;
       
   340     }
       
   341 
       
   342 
       
   343 // -----------------------------------------------------------------------------
       
   344 // CIptvTestServiceStore::GetGroupedServicesById
       
   345 // -----------------------------------------------------------------------------
       
   346 //
       
   347 TInt CIptvTestServiceStore::GetGroupedServicesByGroupId(RPointerArray<CIptvService>& aServicesArray, TInt aId)
       
   348     {
       
   349     VCXLOGLO1(">>>CIptvTestServiceStore::GetGroupedServicesById");
       
   350 
       
   351     TInt i;
       
   352     for( i=0; i< iServices.Count(); i++ )
       
   353         {
       
   354         if( iServices[i]->GetGroupId() == aId && iServices[i]->GetType() != CIptvService::EServiceGroup )
       
   355             {
       
   356             aServicesArray.Append( iServices[i] );
       
   357             }
       
   358         }
       
   359 
       
   360     VCXLOGLO1("<<<CIptvTestServiceStore::GetGroupedServicesById");
       
   361     return KErrNone;
       
   362     }
       
   363 
       
   364 // -----------------------------------------------------------------------------
       
   365 // CIptvTestServiceStore::GetServices
       
   366 // -----------------------------------------------------------------------------
       
   367 //
       
   368 TInt CIptvTestServiceStore::GetServices(RPointerArray<CIptvService>& aServicesArray)
       
   369     {
       
   370     VCXLOGLO1(">>>CIptvTestServiceStore::GetServices");
       
   371 
       
   372     TInt i;
       
   373     for(i=0; i< iServices.Count(); i++)
       
   374         {
       
   375         aServicesArray.Append( iServices[i] );
       
   376         }
       
   377 
       
   378     VCXLOGLO1("<<<CIptvTestServiceStore::GetServices");
       
   379     return KErrNone;
       
   380     }
       
   381 
       
   382 
       
   383 // -----------------------------------------------------------------------------
       
   384 // CIptvTestServiceStore::GetServicesByProviderId
       
   385 // -----------------------------------------------------------------------------
       
   386 //
       
   387 TInt CIptvTestServiceStore::GetServicesByProviderId(RPointerArray<CIptvService>& aServicesArray, TDes& aProviderId)
       
   388     {
       
   389     VCXLOGLO1(">>>CIptvTestServiceStore::GetServicesByProviderId");
       
   390 
       
   391     TInt i;
       
   392     for(i=0; i< iServices.Count(); i++)
       
   393         {
       
   394         if(iServices[i]->GetProviderId() == aProviderId)
       
   395             {
       
   396             aServicesArray.Append( iServices[i] );
       
   397             }
       
   398         }
       
   399 
       
   400     VCXLOGLO1("<<<CIptvTestServiceStore::GetServicesByProviderId");
       
   401     return KErrNone;
       
   402     }
       
   403 
       
   404 // -----------------------------------------------------------------------------
       
   405 // CIptvTestServiceStore::ServiceCount
       
   406 // -----------------------------------------------------------------------------
       
   407 //
       
   408 TInt CIptvTestServiceStore::ServiceCount()
       
   409     {
       
   410     return iServices.Count();
       
   411     }
       
   412 
       
   413 // -----------------------------------------------------------------------------
       
   414 // CIptvTestServiceStore::PrintServices
       
   415 // -----------------------------------------------------------------------------
       
   416 //
       
   417 TInt CIptvTestServiceStore::PrintServices()
       
   418     {
       
   419     VCXLOGLO1(">>>CIptvTestServiceStore::PrintServices");
       
   420 
       
   421     TInt i;
       
   422     for(i=0; i< iServices.Count(); i++)
       
   423         {
       
   424         TBuf<256> name;
       
   425         TBuf<256> providerId;
       
   426         name = iServices[i]->GetName();
       
   427         providerId = iServices[i]->GetProviderId();
       
   428         VCXLOGLO4("%d, Name: %S, Provider: %S", iServices[i]->GetId(), &name, &providerId );
       
   429         }
       
   430 
       
   431     VCXLOGLO1("<<<CIptvTestServiceStore::PrintServices");
       
   432     return KErrNone;
       
   433     }
       
   434 
       
   435 
       
   436 // -----------------------------------------------------------------------------
       
   437 // CIptvTestServiceStore::DeleteAllServices
       
   438 // -----------------------------------------------------------------------------
       
   439 //
       
   440 void CIptvTestServiceStore::DeleteAllServices()
       
   441     {
       
   442     VCXLOGLO1(">>>CIptvTestServiceStore::DeleteAllServices");
       
   443 
       
   444     iServices.ResetAndDestroy();
       
   445 
       
   446     VCXLOGLO1("<<<CIptvTestServiceStore::DeleteAllServices");
       
   447     }
       
   448 
       
   449 
       
   450 // -----------------------------------------------------------------------------
       
   451 // CIptvTestServiceStore::CompareServices
       
   452 // -----------------------------------------------------------------------------
       
   453 //
       
   454 TBool CIptvTestServiceStore::CompareServices(CIptvService& aS1, CIptvService& aS2)
       
   455     {
       
   456     VCXLOGLO1(">>>CIptvTestServiceStore::CompareServices");
       
   457 
       
   458     TBool rv(TRUE);
       
   459     TUint8 i(0);
       
   460 
       
   461     VCXLOGLO3("Comparing services: ID: %d - %d", aS1.GetId(), aS2.GetId());
       
   462     VCXLOGLO3(" - Name: %S - %S", &aS1.GetName(), &aS2.GetName() );
       
   463 
       
   464     if(aS1.GetName() != aS2.GetName())
       
   465         {
       
   466         rv = EFalse;
       
   467         VCXLOGLO3("Name doesn't match: name1 = %S, name2 = %S",&aS1.GetName(),&aS2.GetName());
       
   468         }
       
   469 
       
   470     if(aS1.GetAddress() != aS2.GetAddress())
       
   471         {
       
   472          rv = EFalse;
       
   473         VCXLOGLO3("Address doesn't match: address1 = %S, address2 = %S",&aS1.GetAddress(),&aS2.GetAddress());
       
   474         }
       
   475 
       
   476     if(aS1.GetIconPath() != aS2.GetIconPath())
       
   477         {
       
   478          rv = EFalse;
       
   479         VCXLOGLO3("IconPath doesn't match: IconPath1 = %S, IconPath2 = %S",&aS1.GetIconPath(),&aS2.GetIconPath());
       
   480         }
       
   481 
       
   482     if(aS1.GetEpgPluginUid() != aS2.GetEpgPluginUid())
       
   483         {
       
   484          rv = EFalse;
       
   485         VCXLOGLO3("EpgPluginUid doesn't match: EpgPluginUid1 = %d, EpgPluginUid2 = %d",aS1.GetEpgPluginUid(),aS2.GetEpgPluginUid());
       
   486         }
       
   487 
       
   488     if(aS1.GetVodPluginUid() != aS2.GetVodPluginUid())
       
   489         {
       
   490          rv = EFalse;
       
   491         VCXLOGLO3("VodPluginUid doesn't match: VodPluginUid1 = %d, VodPluginUid2 = %d",aS1.GetVodPluginUid(),aS2.GetVodPluginUid());
       
   492         }
       
   493 
       
   494     if(aS1.GetIptvPluginUid() != aS2.GetIptvPluginUid())
       
   495         {
       
   496          rv = EFalse;
       
   497         VCXLOGLO3("IptvPluginUid doesn't match: IptvPluginUid1 = %d, IptvPluginUid2 = %d",aS1.GetIptvPluginUid(),aS2.GetIptvPluginUid());
       
   498         }
       
   499 
       
   500     if(aS1.GetType() != aS2.GetType())
       
   501         {
       
   502         rv = EFalse;
       
   503         VCXLOGLO3("Type doesn't match: Type1 = %d Type2 = %d", aS1.GetType(), aS2.GetType());
       
   504         }
       
   505 
       
   506     CIptvIapList& iapListS1 = aS1.GetIapList();
       
   507     CIptvIapList& iapListS2 = aS2.GetIapList();
       
   508     TIptvIap iapS1;
       
   509     TIptvIap iapS2;
       
   510 
       
   511     if(iapListS1.Count() != iapListS2.Count())
       
   512         {
       
   513         rv = EFalse;
       
   514         VCXLOGLO3("Cnt of iaps doesn't match: Service1 = %d Service2 = %d", iapListS1.Count(), iapListS2.Count());
       
   515         }
       
   516 
       
   517     if(rv) // Same count of iaps
       
   518         {
       
   519         for(i = 0; i < iapListS1.Count(); i++)
       
   520             {
       
   521             iapListS1.GetIap(i, iapS1);
       
   522             iapListS2.GetIap(i, iapS2);
       
   523 
       
   524             if(iapS1.iId != iapS2.iId || iapS1.iPriority != iapS2.iPriority)
       
   525                 {
       
   526                 rv = EFalse;
       
   527                 VCXLOGLO2("IAP %d doesn't match", i);
       
   528                 }
       
   529             }
       
   530         }
       
   531 
       
   532     if(aS1.GetUserName() != aS2.GetUserName())
       
   533         {
       
   534         rv = EFalse;
       
   535         VCXLOGLO3("UserName doesn't match: UserName1 = %S, UserName2 = %S",&aS1.GetUserName() ,&aS2.GetUserName());
       
   536         }
       
   537 
       
   538     if(aS1.GetPassword() != aS2.GetPassword())
       
   539         {
       
   540         rv = EFalse;
       
   541         VCXLOGLO3("Password doesn't match:Password1 = %S, Password2 = %S",&aS1.GetPassword() ,&aS2.GetPassword());
       
   542         }
       
   543 
       
   544     if(aS1.GetDesc() != aS2.GetDesc())
       
   545         {
       
   546         rv = EFalse;
       
   547         VCXLOGLO3("Desription doesn't match: Desription1 = %S, Desription2 = %S",&aS1.GetDesc() ,&aS2.GetDesc());
       
   548         }
       
   549 
       
   550     if(aS1.GetFlags() != aS2.GetFlags())
       
   551         {
       
   552         rv = EFalse;
       
   553         VCXLOGLO3("Flags doesn't match: 0x%x & 0x%x", aS1.GetFlags(), aS2.GetFlags() );
       
   554 
       
   555         VCXLOGLO1("Service1 flags: ");
       
   556         if(aS1.GetFlags() & CIptvService::ESelected)
       
   557             {
       
   558             VCXLOGLO1("ESelected");
       
   559             }
       
   560         if(aS1.GetFlags() & CIptvService::EReadOnly)
       
   561             {
       
   562             VCXLOGLO1("EReadOnly");
       
   563             }
       
   564         if(aS1.GetFlags() & CIptvService::EMainService)
       
   565             {
       
   566             VCXLOGLO1("EMainService");
       
   567             }
       
   568         if(aS1.GetFlags() & CIptvService::EConnectionApproved)
       
   569             {
       
   570             VCXLOGLO1("EConnectionApproved");
       
   571             }
       
   572         if(aS1.GetFlags() & CIptvService::EReadOnlyIaps)
       
   573             {
       
   574             VCXLOGLO1("EReadOnlyIaps");
       
   575             }
       
   576 
       
   577         VCXLOGLO1("Service2 flags: ");
       
   578         if(aS2.GetFlags() & CIptvService::ESelected)
       
   579             {
       
   580             VCXLOGLO1("ESelected");
       
   581             }
       
   582         if(aS2.GetFlags() & CIptvService::EReadOnly)
       
   583             {
       
   584             VCXLOGLO1("EReadOnly");
       
   585             }
       
   586         if(aS2.GetFlags() & CIptvService::EMainService)
       
   587             {
       
   588             VCXLOGLO1("EMainService");
       
   589             }
       
   590         if(aS2.GetFlags() & CIptvService::EConnectionApproved)
       
   591             {
       
   592             VCXLOGLO1("EConnectionApproved");
       
   593             }
       
   594         if(aS2.GetFlags() & CIptvService::EReadOnlyIaps)
       
   595             {
       
   596             VCXLOGLO1("EReadOnlyIaps");
       
   597             }
       
   598 
       
   599         }
       
   600 
       
   601     if(aS1.GetApplicationUid() != aS2.GetApplicationUid())
       
   602         {
       
   603         rv = EFalse;
       
   604         VCXLOGLO1("Application uid doesn't match");
       
   605         }
       
   606 
       
   607     /*if(aS1.GetDisplayOrder() != aS2.GetDisplayOrder())
       
   608         {
       
   609         rv = EFalse;
       
   610         VCXLOGLO1("Display order doesn't match");
       
   611         }
       
   612     */
       
   613         if(aS1.GetProviderId() != aS2.GetProviderId())
       
   614         {
       
   615         rv = EFalse;
       
   616         VCXLOGLO3("Provider id doesn't match: id1 = %S, id2 = %S", &aS1.GetProviderId(), &aS2.GetProviderId());
       
   617         }
       
   618 
       
   619             if(aS1.GetAccountManagementUrl() != aS2.GetAccountManagementUrl())
       
   620         {
       
   621         rv = EFalse;
       
   622         VCXLOGLO3("AccountManagementUrl doesn't match: url1 = %S, url2 = %S", &aS1.GetAccountManagementUrl(), &aS2.GetAccountManagementUrl());
       
   623         }
       
   624 
       
   625     VCXLOGLO1("<<<CIptvTestServiceStore::CompareServices");
       
   626     return rv;
       
   627     }
       
   628 
       
   629 
       
   630 // -----------------------------------------------------------------------------
       
   631 // CIptvTestServiceStore::FindService
       
   632 // -----------------------------------------------------------------------------
       
   633 //
       
   634 TInt CIptvTestServiceStore::FindService(RPointerArray<CIptvService>& aServices, TInt aId)
       
   635     {
       
   636     VCXLOGLO1(">>>CIptvTestServiceStore::FindService");
       
   637     TInt i;
       
   638 
       
   639     if( aServices.Count() > 0 )
       
   640         {
       
   641         for( i=aServices.Count()-1; i>=0; i-- )
       
   642         //for(i=0; i<aServices.Count(); i++)
       
   643             {
       
   644             if( aServices[i]->GetId() == aId )
       
   645                 {
       
   646                 VCXLOGLO2("Found ID: %d",  aServices[i]->GetId());
       
   647                 return i;
       
   648                 }
       
   649             }
       
   650         }
       
   651 
       
   652     VCXLOGLO2("Service not found: %d", aId);
       
   653     VCXLOGLO1("<<<CIptvTestServiceStore::FindService");
       
   654     return KErrNotFound;
       
   655     }
       
   656 
       
   657 // -----------------------------------------------------------------------------
       
   658 // CIptvTestServiceStore::FindServiceByGroupId
       
   659 // -----------------------------------------------------------------------------
       
   660 //
       
   661 TInt CIptvTestServiceStore::FindServiceByGroupId(RPointerArray<CIptvService>& aServices, TInt aGroupId)
       
   662     {
       
   663     VCXLOGLO1(">>>CIptvTestServiceStore::FindServiceByGroupId");
       
   664     TInt i;
       
   665 
       
   666     VCXLOGLO2("Searching for service with group ID %d.",  aGroupId);
       
   667     
       
   668     if( aServices.Count() > 0 )
       
   669         {
       
   670         for( i=aServices.Count()-1; i>=0; i-- )
       
   671             {
       
   672             if( aServices[i]->GetGroupId() == aGroupId )
       
   673                 {
       
   674                 VCXLOGLO2("Found service: %d",  aServices[i]->GetId());
       
   675                 return i;
       
   676                 }
       
   677             }
       
   678         }
       
   679 
       
   680     VCXLOGLO2("Service with group ID %d not found!", aGroupId);
       
   681     VCXLOGLO1("<<<CIptvTestServiceStore::FindServiceByGroupId");
       
   682     return KErrNotFound;
       
   683     }
       
   684 
       
   685 // -----------------------------------------------------------------------------
       
   686 // CIptvTestServiceStore::CloneServiceL
       
   687 // -----------------------------------------------------------------------------
       
   688 //
       
   689 CIptvService* CIptvTestServiceStore::CloneServiceL(CIptvService& aService)
       
   690     {
       
   691     VCXLOGLO1(">>>CIptvTestServiceStore::CloneServiceL");
       
   692 
       
   693     CIptvService* iptvService = CIptvService::NewL();
       
   694     CleanupStack::PushL(iptvService);
       
   695     HBufC8* buff = aService.GetL();
       
   696     CleanupStack::PushL( buff );
       
   697     iptvService->SetL( buff->Des() );
       
   698     CleanupStack::Pop( buff );
       
   699     delete buff;
       
   700     CleanupStack::Pop(iptvService);
       
   701 
       
   702     VCXLOGLO1("<<<CIptvTestServiceStore::CloneServiceL");
       
   703 
       
   704     return iptvService;
       
   705     }
       
   706 
       
   707 // End of File