networkprotocolmodules/networkprotocolmodule/LbsNetSim/inc/lbsnetsimtest.h
changeset 36 b47902b73a93
parent 0 9cfd9a3ee49c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/networkprotocolmodules/networkprotocolmodule/LbsNetSim/inc/lbsnetsimtest.h	Fri Jun 04 10:34:15 2010 +0100
@@ -0,0 +1,317 @@
+// Copyright (c) 2005-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:
+//
+
+/**
+ @file
+ @internalTechnology
+ @test
+*/
+
+#ifndef LBSNETSIMTEST_H
+#define LBSNETSIMTEST_H
+
+class MLbsNetSimTestObserver;
+
+#include <lbs/lbsassistancereferencelocation.h>
+#include <lbs/lbsnetcommon.h>
+#include <lbs/lbsnetprotocolbase.h>
+#include <lbspositioninfo.h>
+#include <lbs/lbslocdatasourcegpsbase.h>
+
+#include <s32mem.h>
+
+/**
+*/
+class RLbsNetSimTest : public RSessionBase
+	{
+	public:
+		// Error message specific to pretending the network is not available
+		static const TInt KNetSimNetworkNotAvailable = 10071;
+
+		// Constructor
+		IMPORT_C RLbsNetSimTest();
+		IMPORT_C ~RLbsNetSimTest();
+		
+		// Server methods
+		IMPORT_C TInt ConnectL(MLbsNetSimTestObserver* aObserver);
+		IMPORT_C void Close();
+		
+		// Methods
+		IMPORT_C TBool SetReferenceLocation(TPosition& aLocation);
+		IMPORT_C TBool SetReferenceLocation(TDesC8& aLocation);
+		IMPORT_C TBool SetResponseTime(TInt32 aTime, TBool aSticky);
+		IMPORT_C TBool SetResponseError(TInt32 aError, TBool aSticky);
+		IMPORT_C TBool SetDefaultAssitanceDataFilter(TLbsAssistanceDataGroup& aFilter);
+		IMPORT_C TBool SetMoreAssitanceDataFilter(TLbsAssistanceDataGroup& aFilter);
+		IMPORT_C TBool ClearAssistanceDataFilters();
+		IMPORT_C TBool SetAssistanceDataProvider(TUid aProvider);
+		IMPORT_C TBool SetEmergenyStatus(TBool aEmergency);
+		IMPORT_C TBool SetRoamingStatus(TBool aRoaming);
+		IMPORT_C TBool SetQuality(TLbsNetPosRequestQuality& aQuality);
+		IMPORT_C TBool SendResetAssistanceData(TLbsAssistanceDataGroup aMask);
+		
+		//
+		IMPORT_C void StartNetworkPrivacyRequest(TLbsNetPosRequestPrivacy aType, TLbsExternalRequestInfo& aRequest);
+		IMPORT_C void CancelNetworkPrivacyRequest();
+		IMPORT_C void StartNetworkLocationRequest();
+		IMPORT_C void CancelNetworkLocationRequest();
+		
+		//
+		IMPORT_C TBool SetStepMode(TBool aStepMode);
+		IMPORT_C TBool Next(TInt aError);
+	private:
+		static TInt StartServer();
+		
+	public:
+		// So inner classes can call sendreceive
+		void SendReceive(TInt aFunction,const TIpcArgs& aArgs,TRequestStatus& aStatus) const
+			{
+			RSessionBase::SendReceive(aFunction, aArgs, aStatus);
+			}
+		TInt SendReceive(TInt aFunction,const TIpcArgs& aArgs) const
+			{
+			return RSessionBase::SendReceive(aFunction, aArgs);
+			}
+		void SendReceive(TInt aFunction,TRequestStatus& aStatus) const
+			{
+			RSessionBase::SendReceive(aFunction, aStatus);
+			}
+		TInt SendReceive(TInt aFunction) const
+			{
+			return RSessionBase::SendReceive(aFunction);
+			}
+		TInt Send(TInt aFunction) const
+			{
+			return RSessionBase::Send(aFunction);
+			}
+		TInt Send(TInt aFunction,const TIpcArgs& aArgs) const
+			{
+			return RSessionBase::Send(aFunction, aArgs);
+			}
+	private:
+		/**
+		*/
+		class CNotificationConnect : public CActive	
+			{
+			public:
+				CNotificationConnect(RLbsNetSimTest* aTest, MLbsNetSimTestObserver* iObserver);
+				~CNotificationConnect();
+				void RunL();
+				void DoCancel();
+			private:
+				RLbsNetSimTest*			iTest;
+				MLbsNetSimTestObserver*	iObserver;
+			};
+		/**
+		*/
+		class CNotificationDisconnect : public CActive
+			{
+			public:
+				CNotificationDisconnect(RLbsNetSimTest* aTest, MLbsNetSimTestObserver* iObserver);
+				~CNotificationDisconnect();
+				void RunL();
+				void DoCancel();
+			private:
+				RLbsNetSimTest*			iTest;
+				MLbsNetSimTestObserver*	iObserver;
+			};
+		/**
+		*/
+		class CNotificationRegisterLcsMoLr : public CActive
+			{
+			public:
+				CNotificationRegisterLcsMoLr(RLbsNetSimTest* aTest, MLbsNetSimTestObserver* iObserver);
+				~CNotificationRegisterLcsMoLr();
+				void RunL();
+				void DoCancel();
+			private:
+				RLbsNetSimTest*			iTest;
+				MLbsNetSimTestObserver*	iObserver;
+
+				// Argument Data
+				TBuf<256>				iData;
+			};
+		/**
+		*/
+		class CNotificationReleaseLcsMoLr : public CActive
+			{
+			public:
+				CNotificationReleaseLcsMoLr(RLbsNetSimTest* aTest, MLbsNetSimTestObserver* iObserver);
+				~CNotificationReleaseLcsMoLr();
+				void RunL();
+				void DoCancel();
+			private:
+				RLbsNetSimTest*			iTest;
+				MLbsNetSimTestObserver*	iObserver;
+				
+				// Args
+				TInt					iReason;
+				TPckg<TInt>				iReasonPkg;
+			};
+		/**
+		*/
+		class CMessageReleaseLcsLocationNotification : public CActive
+			{
+			public:
+				CMessageReleaseLcsLocationNotification(RLbsNetSimTest* aTest, MLbsNetSimTestObserver* iObserver);
+				~CMessageReleaseLcsLocationNotification();
+				
+				void Send(TLbsNetPosRequestPrivacy& aType, TLbsExternalRequestInfo& aRequestInfo);
+				void RunL();
+				void DoCancel();
+			private:
+				RLbsNetSimTest*			iTest;
+				MLbsNetSimTestObserver*	iObserver;
+				
+				// Args
+				TLbsNetPosRequestPrivacy 		iType;
+				TPckg<TLbsNetPosRequestPrivacy> iTypePkg;
+				TLbsExternalRequestInfo 		iRequestInfo;
+				TPckg<TLbsExternalRequestInfo> 	iRequestInfoPkg;
+				CLbsNetworkProtocolBase::TLbsPrivacyResponse			iResponse;
+				TPckg<CLbsNetworkProtocolBase::TLbsPrivacyResponse>		iResponsePkg;
+			};
+		/**
+		*/
+		class CMessageStartNetworkLocationRequest : public CActive
+			{
+			public:
+				CMessageStartNetworkLocationRequest(RLbsNetSimTest* aTest, MLbsNetSimTestObserver* iObserver);
+				~CMessageStartNetworkLocationRequest();
+				
+				void Send();
+				void RunL();
+				void DoCancel();
+			private:
+				RLbsNetSimTest*			iTest;
+				MLbsNetSimTestObserver*	iObserver;
+			};
+		/**
+		*/
+		class CNotificationMeasurementReport : public CActive
+			{
+			public:
+				CNotificationMeasurementReport(RLbsNetSimTest* aTest, MLbsNetSimTestObserver* iObserver);
+				~CNotificationMeasurementReport();
+				void RunL();
+				void DoCancel();
+			private:
+				RLbsNetSimTest*			iTest;
+				MLbsNetSimTestObserver*	iObserver;
+				
+				// Args
+				TPositionInfo			iPosition;
+				TPckg<TPositionInfo>	iPositionPkg;
+			};
+		/**
+		*/
+		class CNotificationMeasurementReportRequestMoreAssitanceData : public CActive
+			{
+			public:
+				CNotificationMeasurementReportRequestMoreAssitanceData(RLbsNetSimTest* aTest, MLbsNetSimTestObserver* iObserver);
+				~CNotificationMeasurementReportRequestMoreAssitanceData();
+				void RunL();
+				void DoCancel();
+			private:
+				RLbsNetSimTest*			iTest;
+				MLbsNetSimTestObserver*	iObserver;
+				
+				// Args
+				TLbsAssistanceDataGroup			iFilter;
+				TPckg<TLbsAssistanceDataGroup>	iFilterPkg;
+			};
+		/**
+		*/
+		class CNotificationMeasurementReportControlFailure : public CActive
+			{
+			public:
+				CNotificationMeasurementReportControlFailure(RLbsNetSimTest* aTest, MLbsNetSimTestObserver* iObserver);
+				~CNotificationMeasurementReportControlFailure();
+				void RunL();
+				void DoCancel();
+			private:
+				RLbsNetSimTest*			iTest;
+				MLbsNetSimTestObserver*	iObserver;
+				
+				// Args
+				TInt					iReason;
+				TPckg<TInt>				iReasonPkg;
+			};
+		/**
+		*/
+		class CNotificationMeasurementControlLocation : public CActive
+			{
+			public:
+				static CNotificationMeasurementControlLocation* NewL(RLbsNetSimTest* aTest, MLbsNetSimTestObserver* iObserver);
+				~CNotificationMeasurementControlLocation();
+				void RunL();
+				void DoCancel();
+			private:
+				CNotificationMeasurementControlLocation(RLbsNetSimTest* aTest, MLbsNetSimTestObserver* iObserver);
+				void ConstructL();
+			
+			
+				RLbsNetSimTest*			iTest;
+				MLbsNetSimTestObserver*	iObserver;
+				
+				// Args
+				TPositionInfo					iPosition;
+				TPckg<TPositionInfo>			iPositionPkg;
+				TLbsNetPosRequestQuality		iQuality;
+				TPckg<TLbsNetPosRequestQuality>	iQualityPkg;
+				HBufC8*							iAssistanceData;
+				TPtr8							iPtr;
+			};
+		/**
+		*/
+		class CNotificationFacilityLcsMoLrResult : public CActive
+			{
+			public:
+				CNotificationFacilityLcsMoLrResult(RLbsNetSimTest* aTest, MLbsNetSimTestObserver* iObserver);
+				~CNotificationFacilityLcsMoLrResult();
+				void RunL();
+				void DoCancel();
+			private:
+				RLbsNetSimTest*			iTest;
+				MLbsNetSimTestObserver*	iObserver;
+				
+				// Args
+				TInt					iReason;
+				TPckg<TInt>				iReasonPkg;
+				TPositionInfo			iPosition;
+				TPckg<TPositionInfo>	iPositionPkg;
+			};
+			
+	private:
+		MLbsNetSimTestObserver*		iObserver; // Observer for callbacks
+		
+		// Notifications
+		CNotificationConnect*										iNotificationConnect;
+		CNotificationDisconnect*									iNotificationDisconnect;
+		CNotificationRegisterLcsMoLr*								iNotificationRegisterLcsMoLr;
+		CNotificationReleaseLcsMoLr*								iNotificationReleaseLcsMoLr;
+		CNotificationMeasurementReport*								iNotificationMeasurementReport;
+		CNotificationMeasurementReportRequestMoreAssitanceData*		iNotificationMeasurementReportRequestMoreAssitanceData;
+		CNotificationMeasurementReportControlFailure*				iNotificationMeasurementReportControlFailure;
+		CNotificationMeasurementControlLocation*					iNotificationMeasurementControlLocation;
+		CNotificationFacilityLcsMoLrResult*							iNotificationFacilityLcsMoLrResult;
+		
+		// Message handlers
+		CMessageReleaseLcsLocationNotification*						iMessageReleaseLcsLocationNotification;
+		CMessageStartNetworkLocationRequest*						iMessageStartNetworkLocationRequest;
+	};
+
+
+#endif // LBSNETSIMTEST_H