--- a/telephonyserverplugins/common_tsy/test/integration/src/listretrievalhelpers.cpp Mon May 03 13:37:20 2010 +0300
+++ b/telephonyserverplugins/common_tsy/test/integration/src/listretrievalhelpers.cpp Thu May 06 15:10:38 2010 +0100
@@ -1,578 +1,578 @@
-// Copyright (c) 2007-2009 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:
-// Implementation of list retrieval helpers classes
-//
-//
-
-/**
- @file
-*/
-#include "listretrievalhelpers.h"
-#include <mmretrieve.h>
-#include <etelmm.h>
-
-//Canceller class definition
-CTestCanceller::CTestCanceller(CActive* aRetrieve) :
-CAsyncOneShot(EPriorityNormal), iRetrieve(aRetrieve)
- {
- }
-
-CTestCanceller::~CTestCanceller()
- {
- }
-
-void CTestCanceller::ConstructL()
- {
- }
-
-void CTestCanceller::RunL()
- {
- iRetrieve->Cancel();
- CActiveScheduler::Stop();
- };
-
-//CRetrieveListHelperBase class definition
-template<class TRetriever, class TList, class TSubSess>
-CRetrieveListHelperBase<TRetriever, TList, TSubSess>::~CRetrieveListHelperBase()
- {
- if(iRetrieve)
- {
- iRetrieve->Cancel();
- }
- delete iList;
- delete iRetrieve;
- delete iCanceller;
- delete iScheduler;
- }
-
-template<class TRetriever, class TList, class TSubSess>
-CRetrieveListHelperBase<TRetriever, TList, TSubSess>::CRetrieveListHelperBase(TSubSess& aSubSess) :
- CActive(EPriorityNormal), iSubSess(aSubSess)
- {
- }
-
-template<class TRetriever, class TList, class TSubSess>
-void CRetrieveListHelperBase<TRetriever, TList, TSubSess>::ConstructL()
- {
- //create scheduler if not already present
- if(!CActiveScheduler::Current())
- {
- iScheduler = new(ELeave) CActiveScheduler;
- CActiveScheduler::Install(iScheduler);
- }
- CreateEtelRetrieverL();
- iCanceller = new (ELeave) CTestCanceller(this);
- CActiveScheduler::Add(this);
- }
-
-
-
-template<class TRetriever, class TList, class TSubSess>
-void CRetrieveListHelperBase<TRetriever, TList, TSubSess>::RunL()
- {
- CActiveScheduler::Stop();
- }
-
-template<class TRetriever, class TList, class TSubSess>
-void CRetrieveListHelperBase<TRetriever, TList, TSubSess>::DoCancel()
- {
- iRetrieve->Cancel();
- }
-
-
-
-//
-//Definitions for concrete implementations of CRetrieveListHelper//
-
-//CRetrieveMobilePhoneDetectedNetworksHelper
-CRetrieveListHelperBase<CRetrieveMobilePhoneDetectedNetworks, CMobilePhoneNetworkList, RMobilePhone>* CRetrieveMobilePhoneDetectedNetworksHelper::NewL(RMobilePhone& aPhone,TListVersion aListNumber)
- {
- CRetrieveMobilePhoneDetectedNetworksHelper* self = new (ELeave) CRetrieveMobilePhoneDetectedNetworksHelper(aPhone,aListNumber);
- CleanupStack::PushL(self);
- self->ConstructL();
- CleanupStack::Pop();
- return self;
- }
-
-CRetrieveMobilePhoneDetectedNetworksHelper::CRetrieveMobilePhoneDetectedNetworksHelper(RMobilePhone& aSess,TListVersion aListNumber)
-: CRetrieveListHelperBase<CRetrieveMobilePhoneDetectedNetworks, CMobilePhoneNetworkList, RMobilePhone>(aSess), iListVersionToRetrieve(aListNumber)
- {
- }
-
-void CRetrieveMobilePhoneDetectedNetworksHelper::CreateEtelRetrieverL()
- {
- //create etelmm list retrieval object
- iRetrieve = CRetrieveMobilePhoneDetectedNetworks::NewL(iSubSess);
- }
-
-void CRetrieveMobilePhoneDetectedNetworksHelper::StartListRetrieval()
- {
- switch(iListVersionToRetrieve)
- {
- case ERetrieveListV1:
- {
- iRetrieve->Start(iStatus);
- break;
- }
- case ERetrieveListV2:
- {
- iRetrieve->StartV2(iStatus);
- break;
- }
- case ERetrieveListV5:
- {
- iRetrieve->StartV5(iStatus);
- break;
- }
- }
-
- }
-
-TAny* CRetrieveMobilePhoneDetectedNetworksHelper::GetListL()
- {
- switch(iListVersionToRetrieve)
- {
- case ERetrieveListV1:
- {
- return iRetrieve->RetrieveListL();
- }
- case ERetrieveListV2:
- {
- return iRetrieve->RetrieveListV2L();
- }
- case ERetrieveListV5:
- {
- return iRetrieve->RetrieveListV5L();
- }
- default:
- {
- _LIT(KErrorLitText,"Wrong argument was entered by user");
- User::Panic(KErrorLitText, KErrArgument); // Attempting to retrieve a non-existant version of the list.
- break;
- }
- }
- return NULL;
-
- }
-//
-
-//CRetrieveMobilePhoneSmsListHelper
-CRetrieveMobilePhoneSmsListExec* CRetrieveMobilePhoneSmsListHelper::NewL(RMobilePhoneStore& aSubSess, TInt aStartIndex, TInt aBatchSize)
- {
- CRetrieveMobilePhoneSmsListHelper* self = new (ELeave) CRetrieveMobilePhoneSmsListHelper(aSubSess, aStartIndex, aBatchSize);
- CleanupStack::PushL(self);
- self->ConstructL();
- CleanupStack::Pop();
- return self;
- }
-
-CRetrieveMobilePhoneSmsListHelper::CRetrieveMobilePhoneSmsListHelper(RMobilePhoneStore& aSubSess, TInt aStartIndex, TInt aBatchSize)
-: CRetrieveListHelperBase<CRetrieveMobilePhoneSmsList, CMobilePhoneGsmSmsList, RMobilePhoneStore>(aSubSess), iStartIndex(aStartIndex), iBatchSize(aBatchSize)
- {
- }
-
-void CRetrieveMobilePhoneSmsListHelper::CreateEtelRetrieverL()
- {
- //create etelmm list retrieval object
- iRetrieve = CRetrieveMobilePhoneSmsList::NewL(iSubSess, RMobileSmsStore::KETelMobileGsmSmsEntryV1);
- }
-
-void CRetrieveMobilePhoneSmsListHelper::StartListRetrieval()
- {
- if(iStartIndex == -1 || iBatchSize == -1)
- iRetrieve->Start(iStatus);
- else
- iRetrieve->StartBatch(iStatus, iStartIndex,iBatchSize);
- }
-
-TAny* CRetrieveMobilePhoneSmsListHelper::GetListL()
- {
- return iRetrieve->RetrieveGsmListL();
- }
-
-//
-//CRetrieveMobilePhoneCFListHelper
-CRetrieveListHelperBase<CRetrieveMobilePhoneCFList, CMobilePhoneCFList, RMobilePhone>* CRetrieveMobilePhoneCFListHelper::NewL(RMobilePhone& aPhone, RMobilePhone::TMobilePhoneCFCondition aCondition, RMobilePhone::TMobileService aServiceGroup, RMobilePhone::TMobileInfoLocation aLocation)
- {
- CRetrieveMobilePhoneCFListHelper* self = new (ELeave) CRetrieveMobilePhoneCFListHelper(aPhone, aCondition, aServiceGroup, aLocation);
- CleanupStack::PushL(self);
- self->ConstructL();
- CleanupStack::Pop();
- return self;
- }
-
-CRetrieveMobilePhoneCFListHelper::CRetrieveMobilePhoneCFListHelper(RMobilePhone& aSess, RMobilePhone::TMobilePhoneCFCondition aCondition, RMobilePhone::TMobileService aServiceGroup,RMobilePhone::TMobileInfoLocation aLocation)
-: CRetrieveListHelperBase<CRetrieveMobilePhoneCFList, CMobilePhoneCFList, RMobilePhone>(aSess), iCondition(aCondition), iServiceGroup(aServiceGroup), iLocation(aLocation)
- {
- }
-
-void CRetrieveMobilePhoneCFListHelper::CreateEtelRetrieverL()
- {
- //create etelmm list retrieval object
- iRetrieve = CRetrieveMobilePhoneCFList::NewL(iSubSess);
- }
-
-void CRetrieveMobilePhoneCFListHelper::StartListRetrieval()
- {
- iRetrieve->Start(iStatus, iCondition, iServiceGroup, iLocation);
- }
-
-TAny* CRetrieveMobilePhoneCFListHelper::GetListL()
- {
- return iRetrieve->RetrieveListL();
- }
-//
-//CRetrieveMobilePhoneCBListHelper
-CRetrieveListHelperBase<CRetrieveMobilePhoneCBList, CMobilePhoneCBList, RMobilePhone>* CRetrieveMobilePhoneCBListHelper::NewL(RMobilePhone& aPhone, RMobilePhone::TMobilePhoneCBCondition aCondition,RMobilePhone::TMobileInfoLocation aLocation)
- {
- CRetrieveMobilePhoneCBListHelper* self = new (ELeave) CRetrieveMobilePhoneCBListHelper(aPhone, aCondition,aLocation);
- CleanupStack::PushL(self);
- self->ConstructL();
- CleanupStack::Pop();
- return self;
- }
-
-CRetrieveMobilePhoneCBListHelper::CRetrieveMobilePhoneCBListHelper(RMobilePhone& aSess, RMobilePhone::TMobilePhoneCBCondition aCondition, RMobilePhone::TMobileInfoLocation aLocation)
-: CRetrieveListHelperBase<CRetrieveMobilePhoneCBList, CMobilePhoneCBList, RMobilePhone>(aSess), iCondition(aCondition),iLocation(aLocation)
- {
- }
-
-void CRetrieveMobilePhoneCBListHelper::CreateEtelRetrieverL()
- {
- //create etelmm list retrieval object
- iRetrieve = CRetrieveMobilePhoneCBList::NewL(iSubSess);
- }
-
-void CRetrieveMobilePhoneCBListHelper::StartListRetrieval()
- {
- iRetrieve->Start(iStatus, iCondition, iLocation);
- }
-
-TAny* CRetrieveMobilePhoneCBListHelper::GetListL()
- {
- return iRetrieve->RetrieveListL();
- }
-
-//
-//Definitions for concrete implementations of CRetrieveListHelper//
-
-//CRetrieveMobilePhoneCWListHelper
-CRetrieveListHelperBase<CRetrieveMobilePhoneCWList, CMobilePhoneCWList, RMobilePhone>* CRetrieveMobilePhoneCWListHelper::NewL(RMobilePhone& aPhone)
- {
- CRetrieveMobilePhoneCWListHelper* self = new (ELeave) CRetrieveMobilePhoneCWListHelper(aPhone);
- CleanupStack::PushL(self);
- self->ConstructL();
- CleanupStack::Pop();
- return self;
- }
-
-CRetrieveMobilePhoneCWListHelper::CRetrieveMobilePhoneCWListHelper(RMobilePhone& aSess)
-: CRetrieveListHelperBase<CRetrieveMobilePhoneCWList, CMobilePhoneCWList, RMobilePhone>(aSess)
- {
- }
-
-void CRetrieveMobilePhoneCWListHelper::CreateEtelRetrieverL()
- {
- //create etelmm list retrieval object
- iRetrieve = CRetrieveMobilePhoneCWList::NewL(iSubSess);
- }
-
-void CRetrieveMobilePhoneCWListHelper::StartListRetrieval()
- {
- iRetrieve->Start(iStatus);
- }
-
-TAny* CRetrieveMobilePhoneCWListHelper::GetListL()
- {
- return iRetrieve->RetrieveListL();
- }
-
-//
-//Definitions for concrete implementations of CRetrieveListHelper//
-
-//CRetrieveMobilePhoneCcbsListHelper
-CRetrieveListHelperBase<CRetrieveMobilePhoneCcbsList, CMobilePhoneCcbsList, RMobilePhone>* CRetrieveMobilePhoneCcbsListHelper::NewL(RMobilePhone& aPhone)
- {
- CRetrieveMobilePhoneCcbsListHelper* self = new (ELeave) CRetrieveMobilePhoneCcbsListHelper(aPhone);
- CleanupStack::PushL(self);
- self->ConstructL();
- CleanupStack::Pop();
- return self;
- }
-
-CRetrieveMobilePhoneCcbsListHelper::CRetrieveMobilePhoneCcbsListHelper(RMobilePhone& aSess)
-: CRetrieveListHelperBase<CRetrieveMobilePhoneCcbsList, CMobilePhoneCcbsList, RMobilePhone>(aSess)
- {
- }
-
-void CRetrieveMobilePhoneCcbsListHelper::CreateEtelRetrieverL()
- {
- //create etelmm list retrieval object
- iRetrieve = CRetrieveMobilePhoneCcbsList::NewL(iSubSess);
- }
-
-void CRetrieveMobilePhoneCcbsListHelper::StartListRetrieval()
- {
- iRetrieve->Start(iStatus);
- }
-
-TAny* CRetrieveMobilePhoneCcbsListHelper::GetListL()
- {
- return iRetrieve->RetrieveListL();
- }
-
-
-//
-//Definitions for concrete implementations of CRetrieveListHelper//
-
-//CRetrieveMobilePhoneSmspListHelper
-CRetrieveListHelperBase<CRetrieveMobilePhoneSmspList, CMobilePhoneSmspList, RMobileSmsMessaging>* CRetrieveMobilePhoneSmspListHelper::NewL(RMobileSmsMessaging& aPhone)
- {
- CRetrieveMobilePhoneSmspListHelper* self = new (ELeave) CRetrieveMobilePhoneSmspListHelper(aPhone);
- CleanupStack::PushL(self);
- self->ConstructL();
- CleanupStack::Pop();
- return self;
- }
-
-CRetrieveMobilePhoneSmspListHelper::CRetrieveMobilePhoneSmspListHelper(RMobileSmsMessaging& aSess)
-: CRetrieveListHelperBase<CRetrieveMobilePhoneSmspList, CMobilePhoneSmspList, RMobileSmsMessaging>(aSess)
- {
- }
-
-void CRetrieveMobilePhoneSmspListHelper::CreateEtelRetrieverL()
- {
- //create etelmm list retrieval object
- iRetrieve = CRetrieveMobilePhoneSmspList::NewL(iSubSess);
- }
-
-void CRetrieveMobilePhoneSmspListHelper::StartListRetrieval()
- {
- iRetrieve->Start(iStatus);
- }
-
-TAny* CRetrieveMobilePhoneSmspListHelper::GetListL()
- {
- return iRetrieve->RetrieveListL();
- }
-//
-
-//
-//Definitions for concrete implementations of CRetrieveListHelper//
-
-//CRetrieveMobilePhoneBroadcastIdListHelper
-CRetrieveListHelperBase<CRetrieveMobilePhoneBroadcastIdList, CMobilePhoneBroadcastIdList, RMobileBroadcastMessaging>* CRetrieveMobilePhoneBroadcastIdListHelper::NewL(RMobileBroadcastMessaging& aPhone,RMobileBroadcastMessaging::TMobileBroadcastIdType aIdType)
- {
- CRetrieveMobilePhoneBroadcastIdListHelper* self = new (ELeave) CRetrieveMobilePhoneBroadcastIdListHelper(aPhone, aIdType);
- CleanupStack::PushL(self);
- self->ConstructL();
- CleanupStack::Pop();
- return self;
- }
-
-CRetrieveMobilePhoneBroadcastIdListHelper::CRetrieveMobilePhoneBroadcastIdListHelper(RMobileBroadcastMessaging& aSess, RMobileBroadcastMessaging::TMobileBroadcastIdType aIdType)
-: CRetrieveListHelperBase<CRetrieveMobilePhoneBroadcastIdList, CMobilePhoneBroadcastIdList, RMobileBroadcastMessaging>(aSess), iIdType(aIdType)
- {
- }
-
-void CRetrieveMobilePhoneBroadcastIdListHelper::CreateEtelRetrieverL()
- {
- //create etelmm list retrieval object
- iRetrieve = CRetrieveMobilePhoneBroadcastIdList::NewL(iSubSess);
- }
-
-void CRetrieveMobilePhoneBroadcastIdListHelper::StartListRetrieval()
- {
- iRetrieve->Start(iStatus,iIdType);
- }
-
-TAny* CRetrieveMobilePhoneBroadcastIdListHelper::GetListL()
- {
- return iRetrieve->RetrieveListL();
- }
-//
-
-
-//
-//Definitions for concrete implementations of CRetrieveListHelper//
-
-//CRetrieveMobilePhoneNamListHelper
-CRetrieveListHelperBase<CRetrieveMobilePhoneNamList, CMobilePhoneNamList, RMobilePhoneStore>* CRetrieveMobilePhoneNamListHelper::NewL(RMobilePhoneStore& aPhone,TInt aNamId, TListVersion aNamList)
- {
- CRetrieveMobilePhoneNamListHelper* self = new (ELeave) CRetrieveMobilePhoneNamListHelper(aPhone, aNamId, aNamList);
- CleanupStack::PushL(self);
- self->ConstructL();
- CleanupStack::Pop();
- return self;
- }
-
-CRetrieveMobilePhoneNamListHelper::CRetrieveMobilePhoneNamListHelper(RMobilePhoneStore& aSess, TInt aNamId,TListVersion aNamList)
-: CRetrieveListHelperBase<CRetrieveMobilePhoneNamList, CMobilePhoneNamList, RMobilePhoneStore>(aSess), iNamId(aNamId), iListVersionToRetrieve(aNamList)
- {
- }
-
-void CRetrieveMobilePhoneNamListHelper::CreateEtelRetrieverL()
- {
- //create etelmm list retrieval object
- iRetrieve = CRetrieveMobilePhoneNamList::NewL(iSubSess);
- }
-
-
-void CRetrieveMobilePhoneNamListHelper::StartListRetrieval()
- {
- switch(iListVersionToRetrieve)
- {
- case ERetrieveListV1:
- {
- iRetrieve->Start(iStatus,iNamId);
- break;
- }
- case ERetrieveListV4:
- {
- iRetrieve->StartV4(iStatus,iNamId);
- break;
- }
-
- }
- }
-
-TAny* CRetrieveMobilePhoneNamListHelper::GetListL()
- {
- switch(iListVersionToRetrieve)
- {
- case ERetrieveListV1:
- {
- return iRetrieve->RetrieveListL();
- }
- case ERetrieveListV4:
- {
- return iRetrieve->RetrieveListV4L();
- }
- default:
- {
- _LIT(KErrorLitText,"Wrong argument was entered by user");
- User::Panic(KErrorLitText, KErrArgument); // Attempting to retrieve a non-existant version of the list.
- break;
- }
- }
- return NULL;
-
- }
-//
-
-
-//
-//Definitions for concrete implementations of CRetrieveListHelper//
-
-//CRetrieveMobilePhoneONListHelper
-CRetrieveListHelperBase<CRetrieveMobilePhoneONList, CMobilePhoneONList, RMobilePhoneStore>* CRetrieveMobilePhoneONListHelper::NewL(RMobilePhoneStore& aPhone)
- {
- CRetrieveMobilePhoneONListHelper* self = new (ELeave) CRetrieveMobilePhoneONListHelper(aPhone);
- CleanupStack::PushL(self);
- self->ConstructL();
- CleanupStack::Pop();
- return self;
- }
-
-CRetrieveMobilePhoneONListHelper::CRetrieveMobilePhoneONListHelper(RMobilePhoneStore& aSess)
-: CRetrieveListHelperBase<CRetrieveMobilePhoneONList, CMobilePhoneONList, RMobilePhoneStore>(aSess)
- {
- }
-
-void CRetrieveMobilePhoneONListHelper::CreateEtelRetrieverL()
- {
- //create etelmm list retrieval object
- iRetrieve = CRetrieveMobilePhoneONList::NewL(iSubSess);
- }
-
-void CRetrieveMobilePhoneONListHelper::StartListRetrieval()
- {
- iRetrieve->Start(iStatus);
- }
-
-TAny* CRetrieveMobilePhoneONListHelper::GetListL()
- {
- return iRetrieve->RetrieveListL();
- }
-//
-
-
-//
-//Definitions for concrete implementations of CRetrieveListHelper//
-
-//CRetrieveMobilePhoneENListHelper
-CRetrieveListHelperBase<CRetrieveMobilePhoneENList, CMobilePhoneENList, RMobilePhoneStore>* CRetrieveMobilePhoneENListHelper::NewL(RMobilePhoneStore& aPhone)
- {
- CRetrieveMobilePhoneENListHelper* self = new (ELeave) CRetrieveMobilePhoneENListHelper(aPhone);
- CleanupStack::PushL(self);
- self->ConstructL();
- CleanupStack::Pop();
- return self;
- }
-
-CRetrieveMobilePhoneENListHelper::CRetrieveMobilePhoneENListHelper(RMobilePhoneStore& aSess)
-: CRetrieveListHelperBase<CRetrieveMobilePhoneENList, CMobilePhoneENList, RMobilePhoneStore>(aSess)
- {
- }
-
-void CRetrieveMobilePhoneENListHelper::CreateEtelRetrieverL()
- {
- //create etelmm list retrieval object
- iRetrieve = CRetrieveMobilePhoneENList::NewL(iSubSess);
- }
-
-void CRetrieveMobilePhoneENListHelper::StartListRetrieval()
- {
- iRetrieve->Start(iStatus);
- }
-
-TAny* CRetrieveMobilePhoneENListHelper::GetListL()
- {
- return iRetrieve->RetrieveListL();
- }
-//
-
-//Definitions for concrete implementations of CRetrieveListHelper//
-
-//CRetrieveMobilePhonePreferredNetworksHelper
-CRetrieveListHelperBase<CRetrieveMobilePhonePreferredNetworks, CMobilePhoneStoredNetworkList, RMobilePhone>* CRetrieveMobilePhonePreferredNetworksHelper::NewL(RMobilePhone& aPhone)
- {
- CRetrieveMobilePhonePreferredNetworksHelper* self = new (ELeave) CRetrieveMobilePhonePreferredNetworksHelper(aPhone);
- CleanupStack::PushL(self);
- self->ConstructL();
- CleanupStack::Pop();
- return self;
- }
-
-CRetrieveMobilePhonePreferredNetworksHelper::CRetrieveMobilePhonePreferredNetworksHelper(RMobilePhone& aSess)
-: CRetrieveListHelperBase<CRetrieveMobilePhonePreferredNetworks, CMobilePhoneStoredNetworkList, RMobilePhone>(aSess)
- {
- }
-
-void CRetrieveMobilePhonePreferredNetworksHelper::CreateEtelRetrieverL()
- {
- //create etelmm list retrieval object
- iRetrieve = CRetrieveMobilePhonePreferredNetworks::NewL(iSubSess);
- }
-
-void CRetrieveMobilePhonePreferredNetworksHelper::StartListRetrieval()
- {
- iRetrieve->Start(iStatus);
- }
-
-TAny* CRetrieveMobilePhonePreferredNetworksHelper::GetListL()
- {
- return iRetrieve->RetrieveListL();
- }
-//
+// Copyright (c) 2007-2009 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:
+// Implementation of list retrieval helpers classes
+//
+//
+
+/**
+ @file
+*/
+#include "listretrievalhelpers.h"
+#include <mmretrieve.h>
+#include <etelmm.h>
+
+//Canceller class definition
+CTestCanceller::CTestCanceller(CActive* aRetrieve) :
+CAsyncOneShot(EPriorityNormal), iRetrieve(aRetrieve)
+ {
+ }
+
+CTestCanceller::~CTestCanceller()
+ {
+ }
+
+void CTestCanceller::ConstructL()
+ {
+ }
+
+void CTestCanceller::RunL()
+ {
+ iRetrieve->Cancel();
+ CActiveScheduler::Stop();
+ };
+
+//CRetrieveListHelperBase class definition
+template<class TRetriever, class TList, class TSubSess>
+CRetrieveListHelperBase<TRetriever, TList, TSubSess>::~CRetrieveListHelperBase()
+ {
+ if(iRetrieve)
+ {
+ iRetrieve->Cancel();
+ }
+ delete iList;
+ delete iRetrieve;
+ delete iCanceller;
+ delete iScheduler;
+ }
+
+template<class TRetriever, class TList, class TSubSess>
+CRetrieveListHelperBase<TRetriever, TList, TSubSess>::CRetrieveListHelperBase(TSubSess& aSubSess) :
+ CActive(EPriorityNormal), iSubSess(aSubSess)
+ {
+ }
+
+template<class TRetriever, class TList, class TSubSess>
+void CRetrieveListHelperBase<TRetriever, TList, TSubSess>::ConstructL()
+ {
+ //create scheduler if not already present
+ if(!CActiveScheduler::Current())
+ {
+ iScheduler = new(ELeave) CActiveScheduler;
+ CActiveScheduler::Install(iScheduler);
+ }
+ CreateEtelRetrieverL();
+ iCanceller = new (ELeave) CTestCanceller(this);
+ CActiveScheduler::Add(this);
+ }
+
+
+
+template<class TRetriever, class TList, class TSubSess>
+void CRetrieveListHelperBase<TRetriever, TList, TSubSess>::RunL()
+ {
+ CActiveScheduler::Stop();
+ }
+
+template<class TRetriever, class TList, class TSubSess>
+void CRetrieveListHelperBase<TRetriever, TList, TSubSess>::DoCancel()
+ {
+ iRetrieve->Cancel();
+ }
+
+
+
+//
+//Definitions for concrete implementations of CRetrieveListHelper//
+
+//CRetrieveMobilePhoneDetectedNetworksHelper
+CRetrieveListHelperBase<CRetrieveMobilePhoneDetectedNetworks, CMobilePhoneNetworkList, RMobilePhone>* CRetrieveMobilePhoneDetectedNetworksHelper::NewL(RMobilePhone& aPhone,TListVersion aListNumber)
+ {
+ CRetrieveMobilePhoneDetectedNetworksHelper* self = new (ELeave) CRetrieveMobilePhoneDetectedNetworksHelper(aPhone,aListNumber);
+ CleanupStack::PushL(self);
+ self->ConstructL();
+ CleanupStack::Pop();
+ return self;
+ }
+
+CRetrieveMobilePhoneDetectedNetworksHelper::CRetrieveMobilePhoneDetectedNetworksHelper(RMobilePhone& aSess,TListVersion aListNumber)
+: CRetrieveListHelperBase<CRetrieveMobilePhoneDetectedNetworks, CMobilePhoneNetworkList, RMobilePhone>(aSess), iListVersionToRetrieve(aListNumber)
+ {
+ }
+
+void CRetrieveMobilePhoneDetectedNetworksHelper::CreateEtelRetrieverL()
+ {
+ //create etelmm list retrieval object
+ iRetrieve = CRetrieveMobilePhoneDetectedNetworks::NewL(iSubSess);
+ }
+
+void CRetrieveMobilePhoneDetectedNetworksHelper::StartListRetrieval()
+ {
+ switch(iListVersionToRetrieve)
+ {
+ case ERetrieveListV1:
+ {
+ iRetrieve->Start(iStatus);
+ break;
+ }
+ case ERetrieveListV2:
+ {
+ iRetrieve->StartV2(iStatus);
+ break;
+ }
+ case ERetrieveListV5:
+ {
+ iRetrieve->StartV5(iStatus);
+ break;
+ }
+ }
+
+ }
+
+TAny* CRetrieveMobilePhoneDetectedNetworksHelper::GetListL()
+ {
+ switch(iListVersionToRetrieve)
+ {
+ case ERetrieveListV1:
+ {
+ return iRetrieve->RetrieveListL();
+ }
+ case ERetrieveListV2:
+ {
+ return iRetrieve->RetrieveListV2L();
+ }
+ case ERetrieveListV5:
+ {
+ return iRetrieve->RetrieveListV5L();
+ }
+ default:
+ {
+ _LIT(KErrorLitText,"Wrong argument was entered by user");
+ User::Panic(KErrorLitText, KErrArgument); // Attempting to retrieve a non-existant version of the list.
+ break;
+ }
+ }
+ return NULL;
+
+ }
+//
+
+//CRetrieveMobilePhoneSmsListHelper
+CRetrieveMobilePhoneSmsListExec* CRetrieveMobilePhoneSmsListHelper::NewL(RMobilePhoneStore& aSubSess, TInt aStartIndex, TInt aBatchSize)
+ {
+ CRetrieveMobilePhoneSmsListHelper* self = new (ELeave) CRetrieveMobilePhoneSmsListHelper(aSubSess, aStartIndex, aBatchSize);
+ CleanupStack::PushL(self);
+ self->ConstructL();
+ CleanupStack::Pop();
+ return self;
+ }
+
+CRetrieveMobilePhoneSmsListHelper::CRetrieveMobilePhoneSmsListHelper(RMobilePhoneStore& aSubSess, TInt aStartIndex, TInt aBatchSize)
+: CRetrieveListHelperBase<CRetrieveMobilePhoneSmsList, CMobilePhoneGsmSmsList, RMobilePhoneStore>(aSubSess), iStartIndex(aStartIndex), iBatchSize(aBatchSize)
+ {
+ }
+
+void CRetrieveMobilePhoneSmsListHelper::CreateEtelRetrieverL()
+ {
+ //create etelmm list retrieval object
+ iRetrieve = CRetrieveMobilePhoneSmsList::NewL(iSubSess, RMobileSmsStore::KETelMobileGsmSmsEntryV1);
+ }
+
+void CRetrieveMobilePhoneSmsListHelper::StartListRetrieval()
+ {
+ if(iStartIndex == -1 || iBatchSize == -1)
+ iRetrieve->Start(iStatus);
+ else
+ iRetrieve->StartBatch(iStatus, iStartIndex,iBatchSize);
+ }
+
+TAny* CRetrieveMobilePhoneSmsListHelper::GetListL()
+ {
+ return iRetrieve->RetrieveGsmListL();
+ }
+
+//
+//CRetrieveMobilePhoneCFListHelper
+CRetrieveListHelperBase<CRetrieveMobilePhoneCFList, CMobilePhoneCFList, RMobilePhone>* CRetrieveMobilePhoneCFListHelper::NewL(RMobilePhone& aPhone, RMobilePhone::TMobilePhoneCFCondition aCondition, RMobilePhone::TMobileService aServiceGroup, RMobilePhone::TMobileInfoLocation aLocation)
+ {
+ CRetrieveMobilePhoneCFListHelper* self = new (ELeave) CRetrieveMobilePhoneCFListHelper(aPhone, aCondition, aServiceGroup, aLocation);
+ CleanupStack::PushL(self);
+ self->ConstructL();
+ CleanupStack::Pop();
+ return self;
+ }
+
+CRetrieveMobilePhoneCFListHelper::CRetrieveMobilePhoneCFListHelper(RMobilePhone& aSess, RMobilePhone::TMobilePhoneCFCondition aCondition, RMobilePhone::TMobileService aServiceGroup,RMobilePhone::TMobileInfoLocation aLocation)
+: CRetrieveListHelperBase<CRetrieveMobilePhoneCFList, CMobilePhoneCFList, RMobilePhone>(aSess), iCondition(aCondition), iServiceGroup(aServiceGroup), iLocation(aLocation)
+ {
+ }
+
+void CRetrieveMobilePhoneCFListHelper::CreateEtelRetrieverL()
+ {
+ //create etelmm list retrieval object
+ iRetrieve = CRetrieveMobilePhoneCFList::NewL(iSubSess);
+ }
+
+void CRetrieveMobilePhoneCFListHelper::StartListRetrieval()
+ {
+ iRetrieve->Start(iStatus, iCondition, iServiceGroup, iLocation);
+ }
+
+TAny* CRetrieveMobilePhoneCFListHelper::GetListL()
+ {
+ return iRetrieve->RetrieveListL();
+ }
+//
+//CRetrieveMobilePhoneCBListHelper
+CRetrieveListHelperBase<CRetrieveMobilePhoneCBList, CMobilePhoneCBList, RMobilePhone>* CRetrieveMobilePhoneCBListHelper::NewL(RMobilePhone& aPhone, RMobilePhone::TMobilePhoneCBCondition aCondition,RMobilePhone::TMobileInfoLocation aLocation)
+ {
+ CRetrieveMobilePhoneCBListHelper* self = new (ELeave) CRetrieveMobilePhoneCBListHelper(aPhone, aCondition,aLocation);
+ CleanupStack::PushL(self);
+ self->ConstructL();
+ CleanupStack::Pop();
+ return self;
+ }
+
+CRetrieveMobilePhoneCBListHelper::CRetrieveMobilePhoneCBListHelper(RMobilePhone& aSess, RMobilePhone::TMobilePhoneCBCondition aCondition, RMobilePhone::TMobileInfoLocation aLocation)
+: CRetrieveListHelperBase<CRetrieveMobilePhoneCBList, CMobilePhoneCBList, RMobilePhone>(aSess), iCondition(aCondition),iLocation(aLocation)
+ {
+ }
+
+void CRetrieveMobilePhoneCBListHelper::CreateEtelRetrieverL()
+ {
+ //create etelmm list retrieval object
+ iRetrieve = CRetrieveMobilePhoneCBList::NewL(iSubSess);
+ }
+
+void CRetrieveMobilePhoneCBListHelper::StartListRetrieval()
+ {
+ iRetrieve->Start(iStatus, iCondition, iLocation);
+ }
+
+TAny* CRetrieveMobilePhoneCBListHelper::GetListL()
+ {
+ return iRetrieve->RetrieveListL();
+ }
+
+//
+//Definitions for concrete implementations of CRetrieveListHelper//
+
+//CRetrieveMobilePhoneCWListHelper
+CRetrieveListHelperBase<CRetrieveMobilePhoneCWList, CMobilePhoneCWList, RMobilePhone>* CRetrieveMobilePhoneCWListHelper::NewL(RMobilePhone& aPhone)
+ {
+ CRetrieveMobilePhoneCWListHelper* self = new (ELeave) CRetrieveMobilePhoneCWListHelper(aPhone);
+ CleanupStack::PushL(self);
+ self->ConstructL();
+ CleanupStack::Pop();
+ return self;
+ }
+
+CRetrieveMobilePhoneCWListHelper::CRetrieveMobilePhoneCWListHelper(RMobilePhone& aSess)
+: CRetrieveListHelperBase<CRetrieveMobilePhoneCWList, CMobilePhoneCWList, RMobilePhone>(aSess)
+ {
+ }
+
+void CRetrieveMobilePhoneCWListHelper::CreateEtelRetrieverL()
+ {
+ //create etelmm list retrieval object
+ iRetrieve = CRetrieveMobilePhoneCWList::NewL(iSubSess);
+ }
+
+void CRetrieveMobilePhoneCWListHelper::StartListRetrieval()
+ {
+ iRetrieve->Start(iStatus);
+ }
+
+TAny* CRetrieveMobilePhoneCWListHelper::GetListL()
+ {
+ return iRetrieve->RetrieveListL();
+ }
+
+//
+//Definitions for concrete implementations of CRetrieveListHelper//
+
+//CRetrieveMobilePhoneCcbsListHelper
+CRetrieveListHelperBase<CRetrieveMobilePhoneCcbsList, CMobilePhoneCcbsList, RMobilePhone>* CRetrieveMobilePhoneCcbsListHelper::NewL(RMobilePhone& aPhone)
+ {
+ CRetrieveMobilePhoneCcbsListHelper* self = new (ELeave) CRetrieveMobilePhoneCcbsListHelper(aPhone);
+ CleanupStack::PushL(self);
+ self->ConstructL();
+ CleanupStack::Pop();
+ return self;
+ }
+
+CRetrieveMobilePhoneCcbsListHelper::CRetrieveMobilePhoneCcbsListHelper(RMobilePhone& aSess)
+: CRetrieveListHelperBase<CRetrieveMobilePhoneCcbsList, CMobilePhoneCcbsList, RMobilePhone>(aSess)
+ {
+ }
+
+void CRetrieveMobilePhoneCcbsListHelper::CreateEtelRetrieverL()
+ {
+ //create etelmm list retrieval object
+ iRetrieve = CRetrieveMobilePhoneCcbsList::NewL(iSubSess);
+ }
+
+void CRetrieveMobilePhoneCcbsListHelper::StartListRetrieval()
+ {
+ iRetrieve->Start(iStatus);
+ }
+
+TAny* CRetrieveMobilePhoneCcbsListHelper::GetListL()
+ {
+ return iRetrieve->RetrieveListL();
+ }
+
+
+//
+//Definitions for concrete implementations of CRetrieveListHelper//
+
+//CRetrieveMobilePhoneSmspListHelper
+CRetrieveListHelperBase<CRetrieveMobilePhoneSmspList, CMobilePhoneSmspList, RMobileSmsMessaging>* CRetrieveMobilePhoneSmspListHelper::NewL(RMobileSmsMessaging& aPhone)
+ {
+ CRetrieveMobilePhoneSmspListHelper* self = new (ELeave) CRetrieveMobilePhoneSmspListHelper(aPhone);
+ CleanupStack::PushL(self);
+ self->ConstructL();
+ CleanupStack::Pop();
+ return self;
+ }
+
+CRetrieveMobilePhoneSmspListHelper::CRetrieveMobilePhoneSmspListHelper(RMobileSmsMessaging& aSess)
+: CRetrieveListHelperBase<CRetrieveMobilePhoneSmspList, CMobilePhoneSmspList, RMobileSmsMessaging>(aSess)
+ {
+ }
+
+void CRetrieveMobilePhoneSmspListHelper::CreateEtelRetrieverL()
+ {
+ //create etelmm list retrieval object
+ iRetrieve = CRetrieveMobilePhoneSmspList::NewL(iSubSess);
+ }
+
+void CRetrieveMobilePhoneSmspListHelper::StartListRetrieval()
+ {
+ iRetrieve->Start(iStatus);
+ }
+
+TAny* CRetrieveMobilePhoneSmspListHelper::GetListL()
+ {
+ return iRetrieve->RetrieveListL();
+ }
+//
+
+//
+//Definitions for concrete implementations of CRetrieveListHelper//
+
+//CRetrieveMobilePhoneBroadcastIdListHelper
+CRetrieveListHelperBase<CRetrieveMobilePhoneBroadcastIdList, CMobilePhoneBroadcastIdList, RMobileBroadcastMessaging>* CRetrieveMobilePhoneBroadcastIdListHelper::NewL(RMobileBroadcastMessaging& aPhone,RMobileBroadcastMessaging::TMobileBroadcastIdType aIdType)
+ {
+ CRetrieveMobilePhoneBroadcastIdListHelper* self = new (ELeave) CRetrieveMobilePhoneBroadcastIdListHelper(aPhone, aIdType);
+ CleanupStack::PushL(self);
+ self->ConstructL();
+ CleanupStack::Pop();
+ return self;
+ }
+
+CRetrieveMobilePhoneBroadcastIdListHelper::CRetrieveMobilePhoneBroadcastIdListHelper(RMobileBroadcastMessaging& aSess, RMobileBroadcastMessaging::TMobileBroadcastIdType aIdType)
+: CRetrieveListHelperBase<CRetrieveMobilePhoneBroadcastIdList, CMobilePhoneBroadcastIdList, RMobileBroadcastMessaging>(aSess), iIdType(aIdType)
+ {
+ }
+
+void CRetrieveMobilePhoneBroadcastIdListHelper::CreateEtelRetrieverL()
+ {
+ //create etelmm list retrieval object
+ iRetrieve = CRetrieveMobilePhoneBroadcastIdList::NewL(iSubSess);
+ }
+
+void CRetrieveMobilePhoneBroadcastIdListHelper::StartListRetrieval()
+ {
+ iRetrieve->Start(iStatus,iIdType);
+ }
+
+TAny* CRetrieveMobilePhoneBroadcastIdListHelper::GetListL()
+ {
+ return iRetrieve->RetrieveListL();
+ }
+//
+
+
+//
+//Definitions for concrete implementations of CRetrieveListHelper//
+
+//CRetrieveMobilePhoneNamListHelper
+CRetrieveListHelperBase<CRetrieveMobilePhoneNamList, CMobilePhoneNamList, RMobilePhoneStore>* CRetrieveMobilePhoneNamListHelper::NewL(RMobilePhoneStore& aPhone,TInt aNamId, TListVersion aNamList)
+ {
+ CRetrieveMobilePhoneNamListHelper* self = new (ELeave) CRetrieveMobilePhoneNamListHelper(aPhone, aNamId, aNamList);
+ CleanupStack::PushL(self);
+ self->ConstructL();
+ CleanupStack::Pop();
+ return self;
+ }
+
+CRetrieveMobilePhoneNamListHelper::CRetrieveMobilePhoneNamListHelper(RMobilePhoneStore& aSess, TInt aNamId,TListVersion aNamList)
+: CRetrieveListHelperBase<CRetrieveMobilePhoneNamList, CMobilePhoneNamList, RMobilePhoneStore>(aSess), iNamId(aNamId), iListVersionToRetrieve(aNamList)
+ {
+ }
+
+void CRetrieveMobilePhoneNamListHelper::CreateEtelRetrieverL()
+ {
+ //create etelmm list retrieval object
+ iRetrieve = CRetrieveMobilePhoneNamList::NewL(iSubSess);
+ }
+
+
+void CRetrieveMobilePhoneNamListHelper::StartListRetrieval()
+ {
+ switch(iListVersionToRetrieve)
+ {
+ case ERetrieveListV1:
+ {
+ iRetrieve->Start(iStatus,iNamId);
+ break;
+ }
+ case ERetrieveListV4:
+ {
+ iRetrieve->StartV4(iStatus,iNamId);
+ break;
+ }
+
+ }
+ }
+
+TAny* CRetrieveMobilePhoneNamListHelper::GetListL()
+ {
+ switch(iListVersionToRetrieve)
+ {
+ case ERetrieveListV1:
+ {
+ return iRetrieve->RetrieveListL();
+ }
+ case ERetrieveListV4:
+ {
+ return iRetrieve->RetrieveListV4L();
+ }
+ default:
+ {
+ _LIT(KErrorLitText,"Wrong argument was entered by user");
+ User::Panic(KErrorLitText, KErrArgument); // Attempting to retrieve a non-existant version of the list.
+ break;
+ }
+ }
+ return NULL;
+
+ }
+//
+
+
+//
+//Definitions for concrete implementations of CRetrieveListHelper//
+
+//CRetrieveMobilePhoneONListHelper
+CRetrieveListHelperBase<CRetrieveMobilePhoneONList, CMobilePhoneONList, RMobilePhoneStore>* CRetrieveMobilePhoneONListHelper::NewL(RMobilePhoneStore& aPhone)
+ {
+ CRetrieveMobilePhoneONListHelper* self = new (ELeave) CRetrieveMobilePhoneONListHelper(aPhone);
+ CleanupStack::PushL(self);
+ self->ConstructL();
+ CleanupStack::Pop();
+ return self;
+ }
+
+CRetrieveMobilePhoneONListHelper::CRetrieveMobilePhoneONListHelper(RMobilePhoneStore& aSess)
+: CRetrieveListHelperBase<CRetrieveMobilePhoneONList, CMobilePhoneONList, RMobilePhoneStore>(aSess)
+ {
+ }
+
+void CRetrieveMobilePhoneONListHelper::CreateEtelRetrieverL()
+ {
+ //create etelmm list retrieval object
+ iRetrieve = CRetrieveMobilePhoneONList::NewL(iSubSess);
+ }
+
+void CRetrieveMobilePhoneONListHelper::StartListRetrieval()
+ {
+ iRetrieve->Start(iStatus);
+ }
+
+TAny* CRetrieveMobilePhoneONListHelper::GetListL()
+ {
+ return iRetrieve->RetrieveListL();
+ }
+//
+
+
+//
+//Definitions for concrete implementations of CRetrieveListHelper//
+
+//CRetrieveMobilePhoneENListHelper
+CRetrieveListHelperBase<CRetrieveMobilePhoneENList, CMobilePhoneENList, RMobilePhoneStore>* CRetrieveMobilePhoneENListHelper::NewL(RMobilePhoneStore& aPhone)
+ {
+ CRetrieveMobilePhoneENListHelper* self = new (ELeave) CRetrieveMobilePhoneENListHelper(aPhone);
+ CleanupStack::PushL(self);
+ self->ConstructL();
+ CleanupStack::Pop();
+ return self;
+ }
+
+CRetrieveMobilePhoneENListHelper::CRetrieveMobilePhoneENListHelper(RMobilePhoneStore& aSess)
+: CRetrieveListHelperBase<CRetrieveMobilePhoneENList, CMobilePhoneENList, RMobilePhoneStore>(aSess)
+ {
+ }
+
+void CRetrieveMobilePhoneENListHelper::CreateEtelRetrieverL()
+ {
+ //create etelmm list retrieval object
+ iRetrieve = CRetrieveMobilePhoneENList::NewL(iSubSess);
+ }
+
+void CRetrieveMobilePhoneENListHelper::StartListRetrieval()
+ {
+ iRetrieve->Start(iStatus);
+ }
+
+TAny* CRetrieveMobilePhoneENListHelper::GetListL()
+ {
+ return iRetrieve->RetrieveListL();
+ }
+//
+
+//Definitions for concrete implementations of CRetrieveListHelper//
+
+//CRetrieveMobilePhonePreferredNetworksHelper
+CRetrieveListHelperBase<CRetrieveMobilePhonePreferredNetworks, CMobilePhoneStoredNetworkList, RMobilePhone>* CRetrieveMobilePhonePreferredNetworksHelper::NewL(RMobilePhone& aPhone)
+ {
+ CRetrieveMobilePhonePreferredNetworksHelper* self = new (ELeave) CRetrieveMobilePhonePreferredNetworksHelper(aPhone);
+ CleanupStack::PushL(self);
+ self->ConstructL();
+ CleanupStack::Pop();
+ return self;
+ }
+
+CRetrieveMobilePhonePreferredNetworksHelper::CRetrieveMobilePhonePreferredNetworksHelper(RMobilePhone& aSess)
+: CRetrieveListHelperBase<CRetrieveMobilePhonePreferredNetworks, CMobilePhoneStoredNetworkList, RMobilePhone>(aSess)
+ {
+ }
+
+void CRetrieveMobilePhonePreferredNetworksHelper::CreateEtelRetrieverL()
+ {
+ //create etelmm list retrieval object
+ iRetrieve = CRetrieveMobilePhonePreferredNetworks::NewL(iSubSess);
+ }
+
+void CRetrieveMobilePhonePreferredNetworksHelper::StartListRetrieval()
+ {
+ iRetrieve->Start(iStatus);
+ }
+
+TAny* CRetrieveMobilePhonePreferredNetworksHelper::GetListL()
+ {
+ return iRetrieve->RetrieveListL();
+ }
+//