diff -r 000000000000 -r 14df0fbfcc4e sapi_location/tsrc/dev/tlocationprovidertest/src/tservicefailedtest.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sapi_location/tsrc/dev/tlocationprovidertest/src/tservicefailedtest.cpp Mon Mar 30 12:51:10 2009 +0300 @@ -0,0 +1,183 @@ +/* +* 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: +* +*/ + +#include +#include +#include +#include +#include +#include +#include + +#include "tcomplugin.h" + +_LIT(LogFileName , "C:\\Notifications.txt") ; + +class CallBack : public MLiwNotifyCallback +{ + + public : + TInt iRetStatus ; + + TInt HandleNotifyL( + TInt aCmdId, + TInt aEventId, + CLiwGenericParamList& aEventParamList, + const CLiwGenericParamList& aInParamList) ; + + CallBack() : iRetStatus(KErrGeneral) //Default constructor + { + ; + } + +}; + +TInt CallBack :: HandleNotifyL( + TInt /*aCmdId*/, + TInt aEventId, + CLiwGenericParamList& aEventParamList, + const CLiwGenericParamList& aInParamList) +{ + + TInt Index = 0 ; + const TLiwGenericParam *GenericParam = aEventParamList.FindFirst(Index , KErrorCode ); + + TInt error ; + + if(GenericParam) + { + TLiwVariant Variant ; + + Variant = GenericParam->Value() ; + error = Variant.AsTInt32() ; + iRetStatus = error ; + CActiveScheduler *Current = CActiveScheduler :: Current() ; + Current->Stop() ; + + } + return error ; +} + + +/** + *@ This call back interface is for testing Service Not available + */ + //--------------------------------------------------------------------------------------------------------- + + +TInt ServiceFailedFunctionL() +{ + + CallBack MyUpdates ; + + _LIT8(KService, "Service.Location"); + _LIT8(KIDataSource,"ILocation"); + + + + CActiveScheduler *Scheduler = CActiveScheduler :: Current() ; + + if(!Scheduler) + { + Scheduler = new CActiveScheduler ; + } + + + CActiveScheduler :: Install(Scheduler) ; + + + + CLiwServiceHandler* ServiceHandler = CLiwServiceHandler::NewL(); + + // Input and output parameter list + CLiwGenericParamList* inputlist = &(ServiceHandler->InParamListL()); + CLiwGenericParamList* outputlist = &(ServiceHandler->OutParamListL()); + + + + + CLiwCriteriaItem* crit = CLiwCriteriaItem::NewL(1, KService, KIDataSource); + + + crit->SetServiceClass(TUid::Uid(KLiwClassBase)); + + RCriteriaArray a; + a.AppendL(crit); + + ServiceHandler->AttachL(a) ; + + + + + + TInt pos = 0; + + const TLiwGenericParam *errorprm = outputlist->FindFirst(pos , KErrorCode) ; + + if(!errorprm) + { + return KErrGeneral ; + } + + + _LIT8(KDataSource, "ILocation"); + + const TLiwGenericParam *genericparm = outputlist->FindFirst(pos,KDataSource ); + + if(!genericparm) + { + + return KErrGeneral ; + } + + MLiwInterface* locinterface = (genericparm->Value()).AsInterface(); + // CLiwGenericParamList *OutParmList = CLiwGenericParamList :: NewL() ; + + + + CLiwGenericParamList *InputList = CLiwGenericParamList :: NewL() ; + CLiwGenericParamList *OutParmList = CLiwGenericParamList :: NewL() ; + TBuf8<20>CmdBuf(KCmdTraceLocation) ; + + + locinterface->ExecuteCmdL(CmdBuf , *InputList , *OutParmList ,0 , &MyUpdates); + const TInt KSecond = 1000000; + const TInt KUpdateTimeOut = 15*KSecond ; // Default timeout value for synchrnous call waits.. + + User :: After((TTimeIntervalMicroSeconds32 )KUpdateTimeOut) ; + + + CActiveScheduler :: Start() ; + delete Scheduler ; + + locinterface->Close(); + delete InputList ; + delete OutParmList ; + return MyUpdates.iRetStatus ; + + + +} + +TInt ServiceFailedTest(TAny */*Arg*/) +{ + CTrapCleanup* cleanup = CTrapCleanup::New(); + TRAPD(err , ServiceFailedFunctionL()) ; + delete cleanup ; + return err ; + +}