locationrequestmgmt/networkrequesthandler/inc/x3prequest.h
changeset 0 9cfd9a3ee49c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locationrequestmgmt/networkrequesthandler/inc/x3prequest.h	Tue Feb 02 01:50:39 2010 +0200
@@ -0,0 +1,102 @@
+/*
+* 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 "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
+@internalComponent
+@released
+*/
+
+#ifndef _X3PREQUEST_H 
+#define _X3PREQUEST_H
+
+#include <lbs/lbsx3p.h>
+#include "lbscommoninternaldatatypes.h"
+#include "lbsnetinternalapi.h"
+
+
+// Panic Category
+_LIT(KX3pRequestFault,"Lbs-Nrh X3pRequest");
+
+
+/**
+ *
+ * Mixin class to report expiry of request timer.
+ *
+ */
+class MX3pRequestObserver
+    {
+public:
+    virtual void OnRequestTimeout(const TLbsNetSessionIdInt& aTimedOutRequestId) = 0;
+    };
+    
+    
+class CX3pRequest : public CBase,
+					public MLbsCallbackTimerObserver
+
+	{
+enum TLbsNrhX3pRequestPanic
+	{
+	EPanicTimerError = 0x01
+	};	
+
+public:
+	static CX3pRequest* NewL(MX3pRequestObserver* aObserver, 
+							 const TLbsNetSessionIdInt& aSessionId,
+							 const TDesC& aDestinationID,
+							 TUint aTransmitPriority, 
+							 const TLbsTransmitPositionOptions& aTransmitOptions);
+
+	const TLbsNetSessionIdInt& SessionId();
+	const TDesC& DestinationId();
+	TUint TransmitPriority();
+	void SetRequestQuality(const TLbsNetPosRequestQualityInt& aRequestQuality);
+	TBool FixIsAccurate(const TPositionInfo& aPosInfo, TBool aHybridMode);
+	
+	void StartTimer();
+	void ReStartTimerOnce();
+	~CX3pRequest();
+
+protected:
+	CX3pRequest(MX3pRequestObserver* aObserver,
+				const TLbsNetSessionIdInt& aSessionId,
+				TUint aTransmitPriority);
+
+	void ConstructL(const TDesC& aDestinationId,
+					const TLbsTransmitPositionOptions& aTransmitOptions);
+
+protected:
+	void RunL();
+
+protected: // From MLbsCallbackTimerObserver
+	/** Called when the timer expires */
+	void OnTimerEventL(TInt aTimerId);
+	/** Called if OnTimerEventL leaves */
+	TInt OnTimerError(TInt aTimerId, TInt aError);
+
+
+private:
+	MX3pRequestObserver* iObserver;
+	TLbsNetSessionIdInt iSessionId;
+	TBuf<64> iDestinationId;
+	TUint iTransmitPriority; 
+	TLbsTransmitPositionOptions iTransmitOptions;
+	TLbsNetPosRequestQualityInt iRequestQuality;
+	TBool iQualityParametersReceived;
+	CLbsCallbackTimer* iTimer;
+	TBool iTimerReStarted;
+    };
+#endif // _X3PREQUEST_H