networkprotocolmodules/suplcontrolplaneprotocols/common/suplpositioningprotbase/inc/suplpositioningprotocolfsm.h
branchGCC_SURGE
changeset 49 5f20f71a57a3
parent 41 ec40843d536a
parent 45 15a2125aa2f3
--- a/networkprotocolmodules/suplcontrolplaneprotocols/common/suplpositioningprotbase/inc/suplpositioningprotocolfsm.h	Tue Jun 15 14:56:45 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,153 +0,0 @@
-// 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:
-// This file defines the base class and observer to allow a SUPL protocol
-// to send/receive messages to/from positioning protocol state machines.
-// 
-//
-
-/**
- @file
- @internalTechnology
- 
-*/
-
-#ifndef CSUPLPOSITIONINGPROTOCOLFSM_H
-#define CSUPLPOSITIONINGPROTOCOLFSM_H
-
-#include <e32base.h>
-#include <lbs/lbslocdatasourcegpsbase.h>
-#include <lbs/lbsassistancedatabuilderset.h>
-#include <lbspositioninfo.h>
-#include <lbs/lbsloccommon.h>
-#include "lbstimer.h"
-#include <lbs/lbsnetcommon.h>
-#include <lbs/lbsnetprotocolbase.h>
-#include "suplpos.h"
-
-
-class CStateHandlerBase;
-
-/** Positioning Protocol observer mixin definition.
-	This defines an interface to be implemented by an observer of the Positioning Protocol.
-	The SUPL state machines implement this.
-*/
-class MSuplPositioningProtocolFsmObserver
-	{
-public:
-		
-	/** Pass assistance data to the observer.
-	@return
-	*/
-	virtual void ProcessAssistanceData(const TLbsAsistanceDataGroup& aGroupMask, TInt aReason)= 0;
-	
-	/** Send a positioning request to the observer.
-	*/
-	virtual void ProcessPositioningRequest(const TLbsNetPosRequestQuality& aQuality,
-										   const TLbsNetPosRequestMethod& aPosMethod) = 0;
-
-	/** Request from the observer that a SUPL POS is sent to the SLP with the provided payload
-	*/						
-	virtual void PositioningPayloadToNetwork(const CSuplPosPayload* aPositioningPayload) = 0;
-	
-	/** Inform the observer that there has been an error in the positioning protocol. Expected
-	action is termination of the SUPL session via SUPL END.
-	*/
-	virtual void PositioningProtocolError(const TInt& aError) = 0;
-	
-	/** Inform observer that the Positioning session has finished **/
-	virtual void PositioningSessionEnded() = 0;
-	};
-
-
-//-----------------------------------------------------------------------------
-// Positioning Protocol State Machine Base Class
-//-----------------------------------------------------------------------------
-
-/** Base class definition for positioning protocol state machines.
-This class provides support for common features of all state machines
-of positioning protocols associated to SUPL.
-
-A significant aspect incorporated in this base class is the active object
-mechanism for performing state transitions. This feature is used to provide
-state machines with the ability to perform autonomous and asynchronous actions
-e.g. to receive a indication of positioning protocol messages arriving from the
-network and to perform interactions with SUPL state machines.
-
-The base class includes various attributes that describe protocol activity,
-together with access methods used to retrieve the value of these attributes.
-*/
-class CSuplPositioningProtocolFsm : public CActive
-	{
-public:
-
-	/** State machine protocol state.
-	This defines the general protocol state for state machines.
-	*/
-	enum TPositioningProtocolState
-		{
-		/** Not valid */
-		EStateNull,
-		/** Ready to use, but not currently active. */
-		EStateReady,
-		/** Actively performing a protocol procedure.*/
-		EStateActive,
-		/** In the process of cancelling. */
-		EStateCancelling
-		};
-
-	/** State machine cancel source.
-	This defines the source of a cancellation.
-	*/
-	enum TCancelSource
-		{
-		/** Not cancelling */
-		ECancelNone,
-		/** The SUPL FSM cancelled the procedure */
-		ESuplFsmCancel,
-		/** A network error occurred */
-		ECancelNetworkError,
-		/** A network timeout occurred */
-		ECancelNetworkTimeout,
-		/** State machine is closing down (destruction)*/
-		ECancelClosing
-		};
-
-
-public:
-	
-	virtual ~CSuplPositioningProtocolFsm();
-
-	// CActive derived methods
-	void RunL() = 0;
-	void DoCancel() = 0;
-	
-	// Methods that must be overriden in derived classes
-	virtual void ProcessPositioningMessage(CSuplPosPayload* aMessage) = 0;
-	virtual void CancelMachine(const TCancelSource& aCancelSource, TInt aReason) = 0;
-	virtual void AssistanceDataRequest(const TLbsAssistanceDataGroup& aMask) = 0;
-	virtual void LocationResp(TInt aReason, const TPositionInfoBase& aPosInfo) = 0;
-	virtual bool IsAssistDataRequestAllowed() = 0; 
-
-protected:
-
-	CSuplPositioningProtocolFsm(MSuplPositioningProtocolFsmObserver& aObserver);
-	
-protected:
-
-	/** Reference to State machine observer
-	*/
-	MSuplPositioningProtocolFsmObserver& iObserver;
-	};
-
-#endif // CSUPLPOSITIONINGPROTOCOLFSM_H