networkprotocolmodules/networkprotocolmodule/LbsNetSim/inc/lbsnetsimgateway.h
changeset 36 b47902b73a93
parent 0 9cfd9a3ee49c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/networkprotocolmodules/networkprotocolmodule/LbsNetSim/inc/lbsnetsimgateway.h	Fri Jun 04 10:34:15 2010 +0100
@@ -0,0 +1,222 @@
+// Copyright (c) 2008-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 LBSNETSIMTESTGATEWAY_H
+#define LBSNETSIMTESTGATEWAY_H
+
+#include <lbspositioninfo.h>
+#include <lbs/lbslocdatasourcegpsbase.h>
+#include <lbs/lbsassistancedatabuilderset.h>
+
+
+// forwards
+class MLbsNetSimObserver;
+class TLbsPrivacyResponse;
+class TPositionInfo;
+
+class RLbsNetSim : public RSessionBase
+	{
+	public:
+		// Constructor
+		IMPORT_C RLbsNetSim();
+		IMPORT_C ~RLbsNetSim();
+		
+		// Server methods
+		IMPORT_C TInt ConnectL(MLbsNetSimObserver* aObserver);
+		IMPORT_C void Close();
+		
+		// Methods
+		IMPORT_C void RegisterLcsMoLrL(const TDesC& aData);
+		IMPORT_C void ReleaseLcsMoLrL(TInt aReason);
+		IMPORT_C void ReleaseLcsLocationNotificationL(const CLbsNetworkProtocolBase::TLbsPrivacyResponse& aResult);
+		IMPORT_C void MeasurementReportLocationL(const TPositionInfoBase& aPosition);
+		IMPORT_C void MeasurementReportLocationRequestMoreAssistanceDataL(const TLbsAssistanceDataGroup& aFilter);
+		IMPORT_C void MeasurementControlFailureL(TInt aReason);
+
+	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);
+			}
+	private:
+		//
+		class CNotificationMeasurementControlLocation : public CActive
+			{
+			public:
+				static CNotificationMeasurementControlLocation* NewL(RLbsNetSim* aNetSim, MLbsNetSimObserver* aObserver);
+				~CNotificationMeasurementControlLocation();
+				
+				void RunL();
+				void DoCancel();
+			private:
+				// Constuctor
+				CNotificationMeasurementControlLocation(RLbsNetSim* aNetSim, MLbsNetSimObserver* aObserver);
+				void ConstructL();
+			
+				RLbsNetSim* 			iNetSim;
+				MLbsNetSimObserver*		iObserver;
+				
+				// Params
+				TPositionInfo					iPosition;
+				TPckg<TPositionInfo>			iPositionPkg;
+				TLbsNetPosRequestQuality		iQuality;
+				TPckg<TLbsNetPosRequestQuality>	iQualityPkg;
+				RLbsAssistanceDataBuilderSet	iAssistanceData;
+				HBufC8*							iAssistanceDataBuffer;
+				TPtr8					iPtr;
+			};
+		//
+		class CNotificationRegisterLcsLocation : public CActive
+			{
+			public:
+				CNotificationRegisterLcsLocation(RLbsNetSim* aNetSim, MLbsNetSimObserver* aObserver);
+				~CNotificationRegisterLcsLocation();
+				
+				void RunL();
+				void DoCancel();
+			private:
+				RLbsNetSim* 			iNetSim;
+				MLbsNetSimObserver*		iObserver;
+				
+				// Params
+				TLbsExternalRequestInfo			iRequestInfo;
+				TPckg<TLbsExternalRequestInfo>	iRequestInfoPkg;
+				TLbsNetPosRequestPrivacy		iRequestPrivacy;
+				TPckg<TLbsNetPosRequestPrivacy>	iRequestPrivacyPkg;
+			};
+		//
+		class CNotificationCancelPrivacyRequest : public CActive
+			{
+			public:
+				CNotificationCancelPrivacyRequest(RLbsNetSim* aNetSim, MLbsNetSimObserver* aObserver);
+				~CNotificationCancelPrivacyRequest();
+				
+				void RunL();
+				void DoCancel();
+			private:
+				RLbsNetSim* 			iNetSim;
+				MLbsNetSimObserver*		iObserver;
+				
+				// Params
+				TInt					iReason;
+				TPckg<TInt>				iReasonPkg;
+			};
+		//
+		class CMeasurementReportLocation : public CActive
+			{
+			public:
+				CMeasurementReportLocation(RLbsNetSim* aNetSim, MLbsNetSimObserver* aObserver);
+				~CMeasurementReportLocation();
+				
+				void SendL(const TPositionInfo& aPosition);
+				void RunL();
+				void DoCancel();
+			private:
+				RLbsNetSim* 			iNetSim;
+				MLbsNetSimObserver*		iObserver;
+				
+				// Params
+				TInt					iReason;
+				TPckg<TInt>				iReasonPkg;
+				TPositionInfo			iPosition;
+				TPckg<TPositionInfo>	iPositionPkg;
+				TBool					iFireNotification;
+				TPckg<TBool>			iFireNotificationPkg;
+			};
+		//
+		class CNotificationNetworkGone : public CActive
+			{
+			public:
+				CNotificationNetworkGone(RLbsNetSim* aNetSim, MLbsNetSimObserver* aObserver);
+				~CNotificationNetworkGone();
+				
+				void RunL();
+				void DoCancel();
+			private:
+				RLbsNetSim* 			iNetSim;
+				MLbsNetSimObserver*		iObserver;
+			};			
+		class CNotificationResetAssistanceData : public CActive
+			{
+			public:
+				CNotificationResetAssistanceData(RLbsNetSim* aNetSim, MLbsNetSimObserver* aObserver);
+				~CNotificationResetAssistanceData();
+				
+				void RunL();
+				void DoCancel();
+			private:
+				RLbsNetSim* 			iNetSim;
+				MLbsNetSimObserver*		iObserver;
+				TLbsAssistanceDataGroup iMask;
+				TPckg<TLbsAssistanceDataGroup> iMaskPkg;
+			};			
+	private:
+		MLbsNetSimObserver*		iObserver;
+		
+		// A-Sync vairables: RegisterLcsMoLr
+		HBufC*							iRegisterLcsMoLrData;
+		// A-Sync vairables: ReleaseLcsMoLr
+		TInt							iReleaseLcsMoLrReason;
+		TPckg<TInt>						iReleaseLcsMoLrReasonPkg;
+		// A-Sync vairables: RequestMoreAssistanceData
+		TLbsAssistanceDataGroup			iRequestMoreAssistanceDataFilter;
+		TPckg<TLbsAssistanceDataGroup>	iRequestMoreAssistanceDataFilterPkg;
+		// A-Sync vairables: ReleaseLcsLocationNotification
+		CLbsNetworkProtocolBase::TLbsPrivacyResponse		iReleaseLcsLocationNotificationResponse;
+		TPckg<CLbsNetworkProtocolBase::TLbsPrivacyResponse> iReleaseLcsLocationNotificationResponsePkg;
+		
+		
+		
+		
+		// Message helpers
+		CMeasurementReportLocation*		iMeasurementReportLocation;
+		
+		// Notifications
+		CNotificationMeasurementControlLocation*	iNotificationMeasurementControlLocation;
+		CNotificationRegisterLcsLocation*			iNotificationRegisterLcsLocation;
+		CNotificationCancelPrivacyRequest*			iNotificationCancelPrivacyRequest;
+		CNotificationNetworkGone*					iNotificationNetworkGone;
+		CNotificationResetAssistanceData*			iNotificationResetAssistanceData;
+		
+	};
+
+#endif // LBSNETSIMTESTGATEWAY_H
+