--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/supl/locationomasuplprotocolhandler/protocolhandler/inc/epos_comasuplprotocolmanager.h Tue Feb 02 01:06:48 2010 +0200
@@ -0,0 +1,358 @@
+/*
+* Copyright (c) 2002-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: Header file for COMASUPLProtocolManager implementation
+*
+*/
+
+
+#ifndef C_COMASUPLPROTOCOLMANAGER_H
+#define C_COMASUPLPROTOCOLMANAGER_H
+
+// Include Files
+#include <e32cmn.h>
+#include <etel.h>
+#include <etelmm.h>
+
+#include "epos_csuplprotocolmanagerbase.h" // interface
+#include "epos_comasuplinitilizeobserver.h"
+#include "epos_comasupldeinitializer.h"
+
+// Farward Declaration
+class COMASuplTrace;
+class CSuplCommunicationManager;
+class COMASuplCommonConfig;
+class TSuplTerminalQop;
+class COMASuplInitilizeRequestor;
+class COMASuplAsnHandlerBase;
+
+/**
+* An implementation of the COMASUPLProtocolManagerBase definition.
+* @lib eposomasuplprotocolhandler.lib
+* @since S60 v3.1
+*/
+class COMASUPLProtocolManager : public CSUPLProtocolManagerBase,
+ public MCompleteInitilization,
+ public MCompleteDeInitialization
+ {
+public:
+ /**
+ * NewL, Create instance of concrete implementation.
+ * @since S60 v3.1u
+ * @param None
+ * @return Instance of this class.
+ */
+ IMPORT_C static COMASUPLProtocolManager* NewL();
+
+ /**
+ * ~COMASUPLProtocolManager
+ * @since S60 v3.1u
+ * @param None
+ * @return None
+ */
+ IMPORT_C ~COMASUPLProtocolManager();
+
+ /**
+ * CreateNewSessionL, Creates new SuplSession instance
+ * @since S60 v3.1u
+ * @param aRequestType, used for differentiation between SET & NET cases
+ * @return Instance of CSuplSessionBase.
+ */
+ IMPORT_C virtual CSuplSessionBase* CreateNewSessionL(
+ CSUPLProtocolManagerBase::TSuplReqType aRequestType,
+ TInt aIpcSessionId,
+ RSuplTerminalSubSession::TSuplServiceType aSuplService);
+
+ /**
+ * RunSessionL, Starts the SUPL Sesssion for Terminal Initiated Location Request
+ * @since S60 v3.1
+ * @param aSuplSession , session object on which processing will start
+ * @param aStatus, On completion, sets status of the request
+ * @param aAllowedCapabilities , Allowed capabilities of SET
+ * @Param: aQop, specifies the quality of position
+ * @param aRequestID , Request ID of Session
+ * @return None
+ */
+ IMPORT_C virtual void RunSessionL(
+ CSuplSessionBase *const aSuplSession,
+ TRequestStatus& aStatus,
+ const TDesC& aHslpAddress,
+ TBool aFallBack,
+ TBool aFirstReq,
+ TInt aAllowedCapabilities,
+ TSuplTerminalQop& aQop,
+ TInt aRequestID = 0);
+
+ /**
+ * RunSessionL, Starts the SUPL Sesssion for Terminal Initiated Location Request
+ * @since S60 v3.1
+ * @param aSuplSession , session object on which processing will start
+ * @param aStatus, On completion, sets status of the request
+ * @param aAllowedCapabilities , Allowed capabilities of SET
+ * @param aRequestID , Request ID of Session
+ * @return None
+ */
+ IMPORT_C virtual void RunSessionL(
+ CSuplSessionBase *const aSuplSession,
+ TRequestStatus& aStatus,
+ const TDesC& aHslpAddress,
+ TBool aFallBack,
+ TBool aFirstReq,
+ TInt aAllowedCapabilities,
+ TInt aRequestID = 0);
+ /**
+ * HandleSuplMessage, Handles session in NET initiated case
+ * @since S60 v3.1
+ * @param aSuplSession , session object on which processing will start
+ * @param aStatus, On completion, sets status of the request
+ * @param aMessage, message to be decoded.
+ * @return None
+ */
+ IMPORT_C virtual void HandleSuplMessageL(
+ CSuplSessionBase *const aSuplSession,
+ TRequestStatus& aStatus,
+ HBufC8* aMessage);
+
+ /**
+ * DestroySession, Destroys the specified Supl Session instance
+ * @since S60 v3.1u
+ * @param aSuplSession , session object which has to delete
+ * @return TInt,returns KErrNone if deleted successfully else KErrArgument
+ */
+ IMPORT_C TInt DestroySession(CSuplSessionBase* aSuplSession);
+
+ /**
+ * InitializeL, Does the asynchonous initilization.
+ * @since S60 v3.1u
+ * @param aCommManager,Communication Manager
+ * @param aInitilizationRequestStatus, TRequestStatus for asynchronous initilization operation
+ * @return None
+ */
+ IMPORT_C void InitializeL(
+ CSuplCommunicationManager* aCommManager,
+ TRequestStatus& aInitilizationRequestStatus);
+
+ /**
+ * Function: CancelInitialize,
+ * @Description: Does the cancellation of asynchonous initilization.
+ * @Param: None
+ * @Returns: None
+ */
+ IMPORT_C void CancelInitialize();
+
+ /**
+ * Function: DeInitialize,
+ * @Description: Does the de-initilization.
+ * @Param: aDeInitRequestStatus,for asynchronous de-initilization of protocol manager
+ * @Returns: None
+ */
+ IMPORT_C void DeInitialize(TRequestStatus& aDeInitRequestStatus);
+
+ /**
+ * Function: CancelDeInitialize,
+ * @Description: Does the cancellation of asynchonous de-initilization.
+ * @Param: None
+ * @Returns: None
+ */
+ IMPORT_C void CancelDeInitialize();
+
+ /**
+ * HandleSuplPackets,Process Supl message which are comming from SLP
+ * @since S60 v3.1u
+ * @param aPacket, message packet
+ * @return None
+ */
+ IMPORT_C void HandlePacket(const TDesC8& aPacket, TUint aPortNum);
+
+ /**
+ * HandlePacketError,Process Supl message receiving Errors
+ * @since S60 v3.1u
+ * @param aError, the Error Code
+ * @return None
+ */
+ IMPORT_C virtual void HandlePacketError(TInt aError);
+
+ /**
+ * CancelRunSession,Cancels an in-progress Terminal Initiated Location Request
+ * @param aSession, The session on which the request has to be cancelled
+ * @return None
+ */
+ IMPORT_C void CancelRunSession(CSuplSessionBase* aSuplSession);
+
+ /**
+ * Function: RunSuplTriggerSessionL,
+ * @since S60 v5.2
+ * @Description: Starts processing on session
+ * @Param: aSuplSession , session object on which processing will start
+ * @Param: aStatus, On return, the status of the request
+ * @Param: aAllowedCapabilities , Allowed capabilities of SET
+ * @Param: aPTrigger , specifies the periodic trigger session
+ * @Param: aRequestID , Request ID of Session
+ *
+ * @Returns: None
+ */
+ IMPORT_C virtual void RunSuplTriggerSessionL(
+ CSuplSessionBase *const aSuplSession,
+ TRequestStatus& aStatus,
+ TSuplTerminalPeriodicTrigger& aPTrigger,
+ const TDesC& aHslpAddress,
+ TBool aFallBack,
+ TInt aAllowedCapabilities,
+ TInt aRequestID = 0);
+
+ /**
+ * CancelPeriodicTriggerSession,Cancels an in-progress Terminal Initiated
+ * Periodic Trigger Session Location Request
+ * @since S60 v5.2
+ * @Description: Cancels the Triggering Session
+ * @param aSession, The session on which the request has to be cancelled
+ * @return None
+ */
+ IMPORT_C virtual void CancelSuplTriggerSession(CSuplSessionBase* aSuplSession);
+
+ /**
+ * Function: NotifyTriggerFired
+ * @since S60 v5.2
+ * @Description: Starts listening for the trigger fired event
+ * @Param: None
+ * @Returns: None
+ *
+ */
+ IMPORT_C virtual void NotifyTriggerFiredL(
+ CSuplSessionBase *const aSuplSession,
+ TRequestStatus& aStatus,
+ TSuplTriggerFireInfo& aFireInfo);
+
+ /**
+ * Function: SetCommonConfig
+ * @since S60 v5.2
+ * @Description: Sets the common configuration data
+ * @Param: aCommmonConfig, common data structure
+ * @Returns: None
+ *
+ */
+ IMPORT_C virtual void SetCommonConfig(COMASuplCommonConfig*& aCommmonConfig);
+
+ /**
+ * Function: GetSUPLMessageVersionL
+ * @since S60 v5.2
+ * @Description: Gets the SUPL Message Version
+ * @Param: aMajorVersion, Major Version Number
+ * @Param: aReceivedMessage, Recived Message Data
+ * @Returns: None
+ *
+ */
+ IMPORT_C virtual TInt GetSUPLMessageVersionL(TInt& aMajorVersion, const TDesC8& aReceivedMessage);
+
+protected: // Construction
+ /**
+ * COMASUPLProtocolManager,Perform the first phase of two phase construction
+ * @since S60 v3.1u
+ * @param None
+ * @return None
+ */
+ IMPORT_C COMASUPLProtocolManager();
+
+private:
+ /**
+ * ConstructL,Perform the second phase construction of a COMASUPLProtocolManager object.
+ * @since S60 v3.1u
+ * @param None
+ * @return None
+ */
+ void ConstructL();
+
+private : //For internal use only
+ /**
+ * CompleteInitilization,Completes TRequestStatus used for initilization.
+ * @since S60 v3.1u
+ * @param aError, error code by which we are going to complete TRequestStatus.
+ * @return None
+ */
+ void CompleteInitilization(TInt aError);
+
+
+ void DeInitilizationCompletedL(TInt aError);
+
+ /**
+ * GetNetworkModeL,
+ * @since S60 v5.2
+ * @param None
+ * @return TInt,returns KErrNone
+ */
+ TInt GetNetworkModeL();
+
+ /**
+ * LoadOMASUPLPluginsL, Loads supl protocolhandler plugins
+ * @since S60 v5.2
+ * @param None
+ * @return None
+ */
+ void LoadOMASUPLPluginsL();
+
+ /**
+ * GetSuplVersion, Gets Supl Version
+ * @since S60 v5.2
+ * @param None
+ * @return None
+ */
+ TInt GetSuplVersion(TInt& aMajor,const TPtrC8& aSuplAsnMessage );
+
+
+private: //From MCompleteInitilization
+
+ /**
+ * InitilizationCompletedL, Gets called after initilization gets completed with error or without error.
+ * @since S60 v3.1u
+ * @param aError,Error code if any happen while initilization.
+ * @return None.
+ */
+ void InitilizationCompletedL(TInt aError);
+
+private: // Data Members
+
+ //Tracing utility
+ COMASuplTrace* iTrace;
+
+ // Asynchronous request status for Initilization
+ TRequestStatus* iInitilizationRequestStatus;
+ TRequestStatus* iInitilizationRequestStatus2;
+ TRequestStatus* iDeInitRequestStatus;
+
+ COMASuplInitilizeRequestor* iOMASuplInitilizeRequestor;
+
+ CSUPLProtocolManagerBase* iOMASuplProtocolHandler1;
+
+ CSUPLProtocolManagerBase* iOMASuplProtocolHandler2;
+
+ COMASuplCommonConfig* iCommonConfig;
+
+ //Communication Manager
+ CSuplCommunicationManager* iCommManager;
+
+ COMASuplAsnHandlerBase* iOMASuplAsnHandlerBaseImpl;
+
+ COMASuplDeInitilizer* iOMASuplDeInitilizer;
+
+ TInt iSuplService;
+ // Indicates if the Protocol Manager was initialized or not
+ TBool iIsInitilized;
+
+ TBool isPH2Shared;
+
+ TBool iIsPhDeinitialized1;
+ TBool iIsPhDeinitialized2;
+
+ };
+
+#endif // C_COMASUPLPROTOCOLMANAGER_H