telephonyserverplugins/common_tsy/test/integration/src/townnumbersmanager.cpp
changeset 0 3553901f7fa8
child 24 6638e7f4bd8f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telephonyserverplugins/common_tsy/test/integration/src/townnumbersmanager.cpp	Tue Feb 02 01:41:59 2010 +0200
@@ -0,0 +1,69 @@
+// 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:
+// TOwnNumbersManager implementation
+// 
+//
+
+ #include "townnumbersmanager.h"
+ #include "rdebuglogger.h"
+ 
+ void TOwnNumbersManager::CacheOwnNumbersL()
+ 	{
+	if(!iGotNumbers) //try retrieving numbers once only
+		{
+		//on demand retrieval of own numbers. This must be called on a thread other than the main server thread 
+		//as an exec call is made to switch opening the RPhone session to the server thread.
+		RDEBUGPRINTLOGGER1(_L("TOwnNumbersManager::CacheOwnNumbersL - attempting to get Own numbers"));
+		// Create an active scheduler for this thread
+	    CActiveScheduler* sched = new(ELeave) CActiveScheduler;
+	    CActiveScheduler::Install(sched);
+	    CleanupStack::PushL(sched);
+	    
+	    //invoking TRPSOwnNumbers::RetrieveOwnNumbersL requires Active Scheduler to be present.
+	    CAsyncCallBack* asyncCallBack = new (ELeave) CAsyncCallBack(CActive::EPriorityStandard);
+	    CleanupStack::PushL(asyncCallBack);
+	    
+	    iRetrieveError = KErrNone;
+	    asyncCallBack->Set(TCallBack(AsyncCallback, this));
+	    asyncCallBack->CallBack();
+	    CActiveScheduler::Start();
+	    
+	    RDEBUGPRINTLOGGER2(_L("TOwnNumbersManager::CacheOwnNumbersL - own numbers completed with %d"), iRetrieveError);
+	   	TPtrC ptr = iOwnNumbers.OwnVoiceNumber();
+		RDEBUGPRINTLOGGER2(_L("OwnVoiceNumber = %S"), &ptr);
+		ptr.Set(iOwnNumbers.OwnDataNumber());
+		RDEBUGPRINTLOGGER2(_L("OwnDataNumber = %S"), &ptr);
+		ptr.Set(iOwnNumbers.OwnFaxNumber());
+		RDEBUGPRINTLOGGER2(_L("OwnFaxNumber = %S"), &ptr);
+		
+	    CleanupStack::PopAndDestroy(asyncCallBack);
+	    CleanupStack::PopAndDestroy(sched);
+		iGotNumbers = ETrue;		
+		}
+ 	}
+ 	
+ TInt TOwnNumbersManager::AsyncCallback(TAny* aTOwnNumbersManagerInstance)
+ 	{
+ 	static_cast<TOwnNumbersManager*>(aTOwnNumbersManagerInstance)->CacheOwnNumbersAO();
+	return KErrNone;
+ 	}
+ 	
+ void TOwnNumbersManager::CacheOwnNumbersAO()
+ 	{
+//  Ini file is being used for own number, instead of reading it from SIM because
+//  Integration test suite over trp, was crashing on H4 board while Retrieving own number 
+// 	TRAPD(err, iOwnNumbers.RetrieveOwnNumbersL(iEtelSessMgr->GetPhoneL(KMainServer, KMainPhone)));
+// 	iRetrieveError = err;
+ 	CActiveScheduler::Stop();
+ 	}