diff -r a36b1e19a461 -r 989d2f495d90 serviceproviders/sapi_location/tsrc/dev/tlocservicetest/src/tstraygetlocationtest.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/serviceproviders/sapi_location/tsrc/dev/tlocservicetest/src/tstraygetlocationtest.cpp Fri Jul 03 15:51:24 2009 +0100 @@ -0,0 +1,103 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of the License "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: +* +*/ + +/* + * Stray signal test function + */ + #include "locationservice.h" + + #define TRACE 0 + #define GETLOCATION 1 + + _LIT(KRequestor,"testapp"); + +class ASyncLocCB : public MLocationCallBack +{ + TInt iCmd ; + TInt iRetStatus ; + TInt iCount ; + + CLocationService *iService ; + + + public : + + + TInt HandleNotifyL(HPositionGenericInfo* aInfo , TInt aError) ; + + ASyncLocCB() :iCmd(0) , iRetStatus(KErrGeneral) , iCount(0) //Default constructor + { + ; + } + ASyncLocCB(TInt aCmd , CLocationService *aService) ; +}; + + +ASyncLocCB :: ASyncLocCB(TInt aCmd ,CLocationService *aService):iCount(0) +{ + iCmd = aCmd ; + iService = aService ; + +} + +TInt ASyncLocCB :: HandleNotifyL(HPositionGenericInfo* aInfo , TInt Error ) +{ + if(iCmd == GETLOCATION) + { + iService->CancelOnGoingService(ECancelGetLocation) ; + } + + if(iCount > 5) + { + CActiveScheduler *current = CActiveScheduler :: Current() ; + current->Stop() ; + } + iCount++ ; + iRetStatus = KErrNone ; + return iRetStatus ; +} + + +TInt StrayTestGetLocL() +{ + + CActiveScheduler *Scheduler = new CActiveScheduler ; + + CActiveScheduler :: Install(Scheduler) ; + CLocationService *CoreObj = CLocationService ::NewL() ; + ASyncLocCB Updates(TRACE , CoreObj) ; + ASyncLocCB GetLoc(GETLOCATION , CoreObj) ; + + // GelocUpdateCallBack MyUpdates(&CmdId , (CLocationService *)NULL) ; + CoreObj->TraceL(&Updates,EBasicInfo) ; + CoreObj->GetLocationL(&GetLoc,EBasicInfo) ; + + CActiveScheduler :: Start() ; + return 0 ; // Controll never reaches here +} + + +TInt StrayTestGetLoc(TAny */*Arg*/) +{ + CTrapCleanup* cleanup = CTrapCleanup::New(); + //Install a new active scheduler to this thread + TRAPD(err , StrayTestGetLocL()) ; + delete cleanup ; + return 0 ; +} + + \ No newline at end of file