supl/locationomasuplprotocolhandler/protocolhandlerver1/inc/epos_comasuplstate.h
changeset 0 667063e416a2
child 20 2b4ea9893b66
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/supl/locationomasuplprotocolhandler/protocolhandlerver1/inc/epos_comasuplstate.h	Tue Feb 02 01:06:48 2010 +0200
@@ -0,0 +1,229 @@
+/*
+* Copyright (c) 2002-2005 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:   Base class for all State class(SUPL message) 
+*
+*/
+
+
+
+#ifndef M_MOMASUPLMSGSTATEOBSERVER_H
+#define M_MOMASUPLMSGSTATEOBSERVER_H
+
+#include <e32base.h>
+#ifdef _DEBUG        
+#define PRINT_MESSAGE
+#endif        
+#define PRINT_MESSAGE
+//#undef PRINT_MESSAGE
+
+	/** 
+	MOMASuplMsgStateObserver Notifies about complaetion of operation with or without error.
+	*  @lib eposomasuplprotocolhandler.lib
+	*  @since S60 v3.1u
+	*/
+	
+class MOMASuplMsgStateObserver
+    {
+public:
+
+		/**
+		* OperationCompleteL,Notifies about complaetion of operation with or without error.
+		*@since Series 60 3.1M
+		*@param aError,error code occured while completion of operation.
+		*/
+    virtual void OperationCompleteL(TInt aError) = 0;
+    /**
+		* GetPositionComplete,Notifies about complaetion of get position operation with or without error.
+		*@since Series 60 3.1u
+		*@param aError,error code occured while completion of operation.
+		*/
+    virtual void GetPositionComplete(TInt aError) = 0;
+    };
+
+#endif // M_MOMASUPLMSGSTATEOBSERVER_H
+
+
+/////////////////////////////////////////////////////////////////////////////////////
+
+
+
+#ifndef C_COMASUPLSTATE_H
+#define C_COMASUPLSTATE_H
+
+#include <e32base.h>
+#include "epos_comasuplasnmessagebase.h"
+
+#include "epos_momasupltimeoutnotifier.h"
+
+/**
+* Base class for all State class(SUPL message)     
+*  @lib eposomasuplprotocolhandler.lib
+*  @since S60 v3.1u
+*/
+
+
+class COMASuplTimeoutTimer;
+class COMASuplTrace;
+class COMASuplSessionID;
+class MOMASuplMsgStateObserver;
+
+class COMASuplState : public CBase,public MOMASuplTimeOutNotifier
+{
+
+public:	
+
+	//Type of message
+	
+		enum TSuplMessageType
+			{
+				ESUPL_NONE = 0,
+				ESUPL_START ,	
+				ESUPL_RESPONSE,
+				ESUPL_POS,
+				ESUPL_POS_INIT,
+				ESUPL_INIT,
+				ESUPL_END
+			};
+		
+public : 
+			/**
+			* Destructor.
+			*/
+			~COMASuplState();
+			
+			protected:		
+			// Constructor 
+			COMASuplState();
+
+public :			
+
+			/**
+			* GenerateMessageL Method,Generates message...which message to be generate will be depend on derived class implementation
+			* @since Series 60 3.1M
+			* @param None
+			* @return system wide error code
+			*/ 
+			virtual TInt GenerateMessageL();
+			
+			/**
+			* CancelOperation Method,Cancels operations if it is ongoing
+			* @since Series 60 3.1M
+			* @param None
+			* @return None
+			*/ 
+			virtual void CancelOperation();
+			
+			/**
+			* EncodeMessageL Method,Encodes message...which message to be generate will be depend on derived class implementation,
+			* ownership will be transfer to callee
+			* @since Series 60 3.1M
+			* @param aSuplVersion, version of SUPL
+			* @param aSessionId, sessionid of session.
+			* @param aError, error code if any error occures while conversion.
+			* @return encoded data, HBufC8*
+			*/ 
+			virtual HBufC8* EncodeMessageL(TOMASuplVersion &aSuplVersion,
+							   COMASuplSessionID* aSessionId,TInt &aError);
+			/**
+			* ProcessMessage Method,Processes message...which message to be generate will be depend on derived class implementation
+			* @since Series 60 3.1M
+			* @param aDecodedMessage, message to be process
+			* @return Systemwide error code
+			*/ 
+			virtual TInt ProcessMessageL(COMASuplAsnMessageBase* aDecodedMessage); 
+
+public :
+
+			/**
+			* BaseConstructL Method,Base class Construction
+			* @since Series 60 3.1M
+			* @param None
+			* @return None
+			*/ 
+			void BaseConstructL();
+			
+			/**
+			* GetSuplState Method, returns type of message
+			* @since Series 60 3.1M
+			* @param None
+			* @return COMASuplState::ESuplMessageType
+			*/ 
+			COMASuplState::TSuplMessageType GetSuplState();
+			
+			/**
+			* StartTimer Method, Starts timer...timeout value is depend on message type.
+			* @since Series 60 3.1M
+			* @param None
+			* @return None
+			*/ 
+			virtual void StartTimer();
+			
+			/**
+			* StopTimer Method, Stops timer...
+			* @since Series 60 3.1M
+			* @param None
+			* @return None
+			*/ 
+			void StopTimer();
+			
+			/**
+			* SetMsgStateObserver Method, Sets observer message completion handling 
+			* @since Series 60 3.1M
+			* @param None
+			* @return None
+			*/ 
+			void SetMsgStateObserver(MOMASuplMsgStateObserver* aMsgStateObserver);
+			
+			/**
+			* SetVersion Method, Sets current version of SUPL 1.0.0
+			* @since Series 60 3.1M
+			* @param None
+			* @return None
+			*/ 
+			void SetVersion(TOMASuplVersion& aOMASuplVersion);
+
+public: // MOMASuplTimeOutNotifier
+
+			/**
+			* Timeout Notifier Method.
+			* @since Series 60 3.1M
+			* @param None
+			* @return None
+			*/
+			virtual void TimerExpiredL();
+			
+
+protected : //Data
+
+		//Timeout Timer
+		COMASuplTimeoutTimer* iTimer;
+		
+		//Trace Utility
+		COMASuplTrace* iTrace;
+		
+		TSuplMessageType iCurrentState;
+		
+		//Time out for message
+		TInt iMessageTimeOut;
+		
+		//	Observer for message handling completion	
+		MOMASuplMsgStateObserver* iMsgStateObserver;
+		
+		//Supl Version		
+		TOMASuplVersion iOMASuplVersion;
+
+};
+
+#endif //C_COMASUPLSTATE_H
+