networkprotocolmodules/suplcontrolplaneprotocols/suplrrlpprotocol/inc/suplrrlpstatemachine.h
--- a/networkprotocolmodules/suplcontrolplaneprotocols/suplrrlpprotocol/inc/suplrrlpstatemachine.h Wed Sep 15 00:02:22 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,190 +0,0 @@
-// 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:
-// csuplrrlpfsm.h
-// This file defines the class for the RRLP protocol state machine.
-//
-//
-
-/**
- @file
- @internalTechnology
-
-*/
-
-#ifndef __CSUPLRRLPFSM_H__
-#define __CSUPLRRLPFSM_H__
-
-#include <lbspositioninfo.h>
-
-#include "rrlpmessagebase.h"
-#include "rrlpmeasureposrequest.h"
-#include "rrlpprotocolerror.h"
-#include "suplpositioningprotocolfsm.h"
-
-// Forwards
-class CRrlpAssistanceData;
-class CRrlpAssistanceDataAck;
-
-/** This class implementes the RRLP protocol.
-
-Only those messages and parameters required by SUPL for AGPS positioning
-are supported. Optional parameters not related to AGPS are not implemented.
-
-@see CStateMachineBase
-
-The class also implements a timer observer interface defined by MLbsCallbackTimerObserver
-@see MLbsCallbackTimerObserver
-*/
-class CSuplRrlpFsm : public CSuplPositioningProtocolFsm, public MLbsCallbackTimerObserver
- {
-public:
- // Constructors
- IMPORT_C static CSuplRrlpFsm* NewL(MSuplPositioningProtocolFsmObserver& aObserver,RLbsAssistanceDataBuilderSet& aDataBuilder);
- virtual ~CSuplRrlpFsm();
-
- // Methods derived from base class (must be implemented)
- IMPORT_C void ProcessPositioningMessage(CSuplPosPayload* aMessage);
- IMPORT_C void CancelMachine(const TCancelSource& aCancelSource, TInt aReason);
- IMPORT_C void AssistanceDataRequest(const TLbsAssistanceDataGroup& aMask);
- IMPORT_C void LocationResp(TInt aReason, const TPositionInfoBase& aPosInfo);
- IMPORT_C bool IsAssistDataRequestAllowed();
-
-protected:
- // CActive
- void RunL();
- void DoCancel();
-
-private:
- /** RRLP states (when used with SUPL)
- These identify the current state within the
- RRLP procedure.
- */
- enum TRrlpState
- {
- /** Not valid */
- EStateNull,
- /** Assistance Data Message received (more on the way)*/
- EStateAssitDataChunkRecvd,
- /** Assitance Data Message received (no more assistance data messages on the way) */
- EStateAssitDataAcknowledged,
- /** Measure Position Request message received from the network */
- EStateMeasureReqRecvd,
- /** A positioning request has been sent to SUPL */
- EStateRequestHandled,
- /** A request for additional Assistance Data from LBS is sent to the network */
- EStateMoreAssistDataRequested,
- /** Location response sent to network */
- EStateMeasureRespSent,
- /** An error or a cancel has occured */
- EStateErrorRecvd
- };
-
- /** Timer ID's
- */
- enum TTimerIds
- {
- EAssitanceDataChunk,
- ERequest,
- EResponseDelay,
- EMeasureRequestWithAssistanceDataDelay
- };
-private:
- // Constructor
- CSuplRrlpFsm(MSuplPositioningProtocolFsmObserver& aObserver, RLbsAssistanceDataBuilderSet& aDataBuilder);
- void ConstructL();
-
- // MLbsCallbackTimerObserver methods
- void OnTimerEventL(TInt aTimerId);
- TInt OnTimerError(TInt aTimerId, TInt aError);
-
- // Protocol Timers.
- void StartAssitanceDataChunkTimer();
- void ReceivedAssistanceDataChunkTimer();
- void StartRequestTimer();
- void ReceivedRequestTimer();
- void StartPosResultTimer(TTimeIntervalMicroSeconds aMicroSeconds);
- void ReceivedPosResultTimer();
- // Other timers
- void StartMeasureRequestWithAssitanceDataTimer(TInt aTime);
- void ReceivedMeasureRequestWithAssitanceDataTimer();
-
- // Handler functions
- void HandleAssistanceDataMessage(CRrlpAssistanceData* aData);
- void HandleMeasurementPositionRequest(CRrlpMeasurePositionRequest* aData);
- void HandleProtocolError(CRrlpProtocolError* aError);
-
- // Others
- TBool TransistionTo(TRrlpState aState);
- void TransistionToError(TInt aError);
- void AddReference(CRrlpMessageBase& aMessage);
-private:
- /** Current RRLP state
- */
- TRrlpState iCurrentState;
- TRrlpState iNextState;
-
- /** Last reference number received
- */
- TRrlpReference iLastReferenceNumber;
-
- /** Timer in between RRLP messages
- (it is a protocol error when this timer expires and more assistance data is expected)
- */
- static const TInt KAssistanceDataChunkTimeout;
- CLbsCallbackTimer* iAssistanceDataChunkTimer;
-
- /** Timer for RRLP Measure Position Request after Assitance Data message
- (it is not always a protocol error when this timer expires)
- */
- const static TInt KRequestTimeout;
- CLbsCallbackTimer* iRequestTimer;
-
- /** Timer for overseeing that LBS responds within the expected delay
- (the delay is specified in the RRLP Measure Position Request, this
- timer lasts longer to give LBS's response a chance to arrive before expiry)
- */
- const static TInt KResponseDelayAddition;
- const static TInt KResponseDelayTimeout;
- CLbsCallbackTimer* iResponseDelayTimer;
-
- /** Timer for allowing assistance data to be processed by LBS if received
- in the Measurement Request
- */
- const static TInt KMeasureRequestWithAssistanceDataDelay;
- CLbsCallbackTimer* iMeasureRequestWithAssitanceDataDelayTimer;
-
- /** Flag to show location request has been sent to LBS.
- */
- TBool iIsLocReqSentToLbs;
-
- /** Location request quality.
- */
- TLbsNetPosRequestQuality iLocReqQuality;
-
- /** Location request positioning method.
- */
- TLbsNetPosRequestMethod iPosMethod;
-
- /** Assistance data
- */
- RLbsAssistanceDataBuilderSet& iAssistanceData;
-
- /** Assistance data mask
- */
- TLbsAssistanceDataGroup iAssistanceDataMask;
-
- };
-
-#endif // __CSUPLRRLPFSM_H__
-