lbstest/lbstestproduct/lbsconflict/inc/ctlbsconflictstepmtlrx3ppush.h
changeset 0 9cfd9a3ee49c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lbstest/lbstestproduct/lbsconflict/inc/ctlbsconflictstepmtlrx3ppush.h	Tue Feb 02 01:50:39 2010 +0200
@@ -0,0 +1,98 @@
+// Copyright (c) 2006-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 ctlbsconflictstepmain.h
+// This contains the header file for a MTLR- X3P Push test.
+// 
+//
+
+#ifndef __CT_LBS_CONFLICT_STEP_MTLR_X3P_PUSH_H__
+#define __CT_LBS_CONFLICT_STEP_MTLR_X3P_PUSH_H__
+
+// LBS includes.
+#include <lbs.h>
+#include <lbscommon.h>
+#include <lbs/lbsnetcommon.h>
+#include <lbs/lbsprivacycontroller.h>
+
+// LBS test includes.
+#include "ctlbsconflictstep.h"
+#include "ctlbsconflictserver.h"
+#include "ctlbsdox3p.h"
+
+
+// Literals used
+_LIT(KLbsConflictStep_MTLRX3PPush, "LbsConflictStep_MTLRX3PPush");
+
+class CT_LbsConflictStep_MTLRX3PPush :	public	CT_LbsConflictStep,
+								public	MT_LbsDoX3PObserver,
+								public	MLbsPrivacyObserver
+	{
+public:
+	~CT_LbsConflictStep_MTLRX3PPush();
+
+	static CT_LbsConflictStep_MTLRX3PPush* New(CT_LbsConflictServer& aParent);
+	virtual TVerdict doTestStepL();
+
+	// From CT_LbsConflictStep.
+	void Connected();
+	void Disconnected();
+	void NotifyRegisterLcsMoLr(const TDesC& aData);
+	void NotifyReleaseLcsMoLr(TInt aReason);
+	void NotifyMeasurementControlLocation(const TPositionInfo& aPosition, const RLbsAssistanceDataBuilderSet& aData, const TLbsNetPosRequestQuality& aQuality);
+	void NotifyReleaseLcsLocationNotification(const CLbsNetworkProtocolBase::TLbsPrivacyResponse& aResult);
+	void NotifyFacilityLcsMoLrResult(TInt aReason, const TPositionInfo& aPosition);
+	void NotifyMeasurementReportLocation(const TPositionInfo& aPosition);
+	void NotifyMeasurementReportRequestMoreAssistanceData(const TLbsAssistanceDataGroup& aFilter);
+	void NotifyMeasurementReportControlFailure(TInt aReason);
+
+	// From MT_LbsDoPosUpdateObserver - Position notify update callback.
+	void MT_LbsDoX3PCallback(TInt aTransmitId, TRequestStatus& aStatus);
+
+	// From MLbsPrivacyObserver.
+	void ProcessNetworkLocationRequest(TUint aRequestId, const TLbsExternalRequestInfo& aRequestInfo, const TNotificationType& aNotificationType);
+	void ProcessNetworkPositionUpdate(TUint aRequestId, const TPositionInfo& aPosInfo);
+	void ProcessRequestComplete(TUint aRequestId, TInt aReason);
+
+private:
+	CT_LbsConflictStep_MTLRX3PPush(CT_LbsConflictServer& aParent);
+	void ConstructL();		
+
+	void SetExpectedSeq();
+	void VerifyPosInfos();
+
+	enum {	/** Just started a MTLR priv request. */
+			EStartMTLRPrivReq = CT_LbsConflictStep::ELast,
+			
+			/** MTLR privacy request complete, started a MTLR location request. */
+			EStartMTLRLocReq,
+			
+			/** MTLR location request complete with reference position, waiting for
+				second location complete. */
+			EWaitMTLRLocRes
+			};
+
+	/** Active object wrapper to allow the X3P.
+	*/
+	CT_LbsDoX3P* iDoX3PPush;
+
+	/** Privacy controller, required to preform a MT-LR.
+	*/
+	CLbsPrivacyController* iPrivacyController;
+
+	/** MT-LR request id, used to verify the request ids passed to MT-LR callbacks.
+	*/	
+	TUint iMtlrRequestId;
+	};
+
+#endif //__CT_LBS_CONFLICT_STEP_MTLR_X3P_PUSH_H__