supl/locationomasuplprotocolhandler/protocolhandlerver1/inc/epos_comasuplprotocolmanager1.h
changeset 0 667063e416a2
child 14 b88ebe0cbbbe
equal deleted inserted replaced
-1:000000000000 0:667063e416a2
       
     1 /*
       
     2 * Copyright (c) 2002-2005 Nokia Corporation and/or its subsidiary(-ies). 
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:   Header file for COMASUPLProtocolManager1 implementation
       
    15 *
       
    16 */
       
    17 
       
    18 
       
    19 
       
    20 #ifndef C_COMASUPLPROTOCOLMANAGER1_H
       
    21 #define C_COMASUPLPROTOCOLMANAGER1_H
       
    22 
       
    23 #include <e32cmn.h> 
       
    24 #include <etel.h> 
       
    25 #include <etelmm.h> 
       
    26 
       
    27 //#include "epos_csuplprotocolmanagerbase.h"   // interface
       
    28 #include "epos_comasuplprotocolmanager.h"
       
    29 #include "epos_msuplsettingsobserver.h"
       
    30 #include "epos_comasuplsession.h"
       
    31 #include "epos_msuplpacketnotifier.h"
       
    32 
       
    33 #include "epos_momasuplecomeventobserver.h"
       
    34 #include "epos_comasuplsettingslauncher.h"
       
    35 #include "epos_csuplsettingsinternal.h"
       
    36 
       
    37 #include "epos_comasuplasnbase.h"
       
    38 
       
    39 class COMASuplTrace;
       
    40 class CSuplCommunicationManager;
       
    41 class RMobilePhone;
       
    42 class RTelServer;
       
    43 class COMASuplSettings;
       
    44 class COMASuplPosHandlerBase;
       
    45 class COMASuplSETSessionID;
       
    46 class COMASuplSLPSessionID;
       
    47 
       
    48 class COMASuplEcomEventWatcher;
       
    49 class TSuplTerminalQop;
       
    50 class CSuplSettings;
       
    51 class COMASuplTimeoutTimer;
       
    52 class COMASuplETelNotifier;
       
    53 
       
    54 /**
       
    55  *  MOMASuplSessionObserver observer for session termination operation. 
       
    56  *  @lib eposomasuplprotocolhandler.lib
       
    57  *  @since S60 v3.1
       
    58  */
       
    59 
       
    60 class MOMASuplSessionObserver
       
    61 	{
       
    62 public:
       
    63 		/**
       
    64 		* TerminateSession
       
    65 		* @since S60 v3.1u
       
    66 		* @param aSession, session which is going to terminate
       
    67 		* @param aErrorCode, error code for completion of request. 
       
    68 		*/
       
    69 		virtual void TerminateSession(CSuplSessionBase *aSession, TInt aErrorCode) = 0;
       
    70 	};
       
    71 
       
    72 
       
    73 	/**
       
    74 	*  An implementation of the COMASUPLProtocolManagerBase definition. 
       
    75 	*  @lib eposomasuplprotocolhandler.lib
       
    76 	*  @since S60 v3.1
       
    77 	*/
       
    78  
       
    79 class COMASUPLProtocolManager1 : public COMASUPLProtocolManager,
       
    80 								public MOMASuplSessionObserver,
       
    81 								public MSuplEcomEventObserver,
       
    82 								public MSuplSettingsObserver,
       
    83 								public MOMASuplTimeOutNotifier,
       
    84 						        public MOMASuplUISettingsObserver,
       
    85                                 public MOMASuplETelNotifierObserver
       
    86     {
       
    87     
       
    88 public:
       
    89 
       
    90 	/**
       
    91 	* NewL, Create instance of concrete implementation. 
       
    92 	* @since S60 v3.1u		
       
    93 	* @param      None
       
    94 	* @return    Instance of this class.
       
    95 	*/
       
    96    	IMPORT_C static COMASUPLProtocolManager1* NewL();
       
    97 
       
    98 	/**
       
    99 	* ~COMASUPLProtocolManager1
       
   100 	* @since S60 v3.1u		
       
   101 	* @param      None
       
   102 	* @return     None
       
   103 	*/
       
   104   	IMPORT_C  ~COMASUPLProtocolManager1();
       
   105 
       
   106 	/**
       
   107 	* CreateNewSessionL, Creates new SuplSession instance
       
   108 	* @since S60 v3.1u
       
   109 	* @param      aRequestType, used for differentiation between SET & NET cases
       
   110 	* @return     Instance of CSuplSessionBase.
       
   111 	*/
       
   112   	IMPORT_C virtual CSuplSessionBase* CreateNewSessionL( 
       
   113 										CSUPLProtocolManagerBase::TSuplReqType aRequestType, 
       
   114 										TInt aIpcSessionId,
       
   115 										RSuplTerminalSubSession::TSuplServiceType aSuplService);
       
   116   
       
   117 	/**
       
   118 	* RunSessionL, Starts the SUPL Sesssion for Terminal Initiated Location Request
       
   119 	* @since S60 v3.1
       
   120 	* @param       aSuplSession , session object on which processing will start
       
   121 	* @param       aStatus, 	  On completion, sets status of the request
       
   122 	* @param       aAllowedCapabilities , Allowed capabilities of SET
       
   123 	* @Param:      aQop,  specifies the quality of position
       
   124 	* @param       aRequestID , Request ID of Session
       
   125 	* @return      None
       
   126 	*/
       
   127   	IMPORT_C  virtual void  RunSessionL(CSuplSessionBase *const aSuplSession,TRequestStatus& aStatus, const TDesC& aHslpAddress, TBool aFallBack, TBool aFirstReq,
       
   128   										TInt aAllowedCapabilities,TSuplTerminalQop& aQop, TInt aRequestID = 0);
       
   129 
       
   130 	/**
       
   131 	* RunSessionL, Starts the SUPL Sesssion for Terminal Initiated Location Request
       
   132 	* @since S60 v3.1
       
   133 	* @param       aSuplSession , session object on which processing will start
       
   134 	* @param       aStatus, 	  On completion, sets status of the request
       
   135 	* @param       aAllowedCapabilities , Allowed capabilities of SET
       
   136 	* @param       aRequestID , Request ID of Session
       
   137 	* @return      None
       
   138 	*/
       
   139   	IMPORT_C  virtual void  RunSessionL(CSuplSessionBase *const aSuplSession,TRequestStatus& aStatus,const TDesC& aHslpAddress, TBool aFallBack,
       
   140   										TBool aFirstReq, TInt aAllowedCapabilities, TInt aRequestID = 0);
       
   141 	/**
       
   142 	* HandleSuplMessage, Handles session in NET initiated case
       
   143 	* @since S60 v3.1
       
   144 	* @param       aSuplSession , session object on which processing will start
       
   145 	* @param       aStatus, 	  On completion, sets status of the request
       
   146 	* @param       aMessage,	message to be decoded.
       
   147 	* @return      None
       
   148 	*/
       
   149   	IMPORT_C  virtual void  HandleSuplMessageL(CSuplSessionBase *const aSuplSession,TRequestStatus& aStatus,HBufC8* aMessage);
       
   150 
       
   151 	/**
       
   152 	* DestroySession, Destroys the specified Supl Session instance
       
   153 	* @since S60 v3.1u
       
   154 	* @param      aSuplSession , session object which has to delete
       
   155 	* @return     TInt,returns KErrNone if deleted successfully else KErrArgument  
       
   156 	*/
       
   157   	IMPORT_C  TInt  DestroySession(CSuplSessionBase* aSuplSession);	
       
   158   
       
   159 	/**
       
   160 	* InitializeL, Does the asynchonous initilization. 
       
   161 	* @since S60 v3.1u
       
   162 	* @param      aCommManager,Communication Manager
       
   163 	* @param      aInitilizationRequestStatus, TRequestStatus for asynchronous initilization operation
       
   164 	* @return     None
       
   165 	*/
       
   166   	IMPORT_C  void InitializeL(CSuplCommunicationManager* aCommManager,TRequestStatus& aInitilizationRequestStatus);
       
   167   
       
   168      /**
       
   169      * Function:     CancelInitialize, 
       
   170      * @Description: Does the cancellation of asynchonous initilization. 
       
   171      * @Param:       None
       
   172      * @Returns:     None
       
   173      */
       
   174   	IMPORT_C  void CancelInitialize();
       
   175 
       
   176      /**
       
   177      * Function:     DeInitialize, 
       
   178      *
       
   179      * @Description: Does the de-initilization. 
       
   180      *
       
   181      * @Param:       aDeInitRequestStatus,for asynchronous de-initilization of protocol manager
       
   182      *
       
   183      * @Returns:     None
       
   184      */
       
   185   	IMPORT_C void DeInitialize(TRequestStatus& aDeInitRequestStatus);
       
   186 
       
   187      /**
       
   188      * Function:     CancelDeInitialize, 
       
   189      *
       
   190      * @Description: Does the cancellation of asynchonous de-initilization. 
       
   191      *
       
   192      * @Param:       None
       
   193      *
       
   194      * @Returns:     None
       
   195      */
       
   196   	IMPORT_C void CancelDeInitialize();
       
   197   
       
   198 	/**
       
   199 	* HandleSuplPackets,Process Supl message which are comming from SLP
       
   200 	* @since S60 v3.1u
       
   201 	* @param       aPacket, message packet
       
   202 	* @return      None
       
   203 	*/
       
   204               IMPORT_C void HandlePacket(const TDesC8& aPacket, TUint aPortNum);
       
   205 
       
   206 	/**
       
   207 	* HandlePacketError,Process Supl message receiving Errors 
       
   208 	* @since S60 v3.1u
       
   209 	* @param      aError, the Error Code
       
   210 	* @return     None
       
   211 	*/
       
   212   	IMPORT_C virtual void HandlePacketError(TInt aError);
       
   213   
       
   214 	/**
       
   215 	* CancelRunSession,Cancels an in-progress Terminal Initiated Location Request
       
   216 	* @param       aSession, The session on which the request has to be cancelled
       
   217 	* @return      None
       
   218 	*/
       
   219   	IMPORT_C void CancelRunSession(CSuplSessionBase* aSuplSession);
       
   220 	
       
   221 	  IMPORT_C   COMASuplSession* FindSessionOnPortNum(TUint aPortNum) const ;
       
   222   
       
   223      /**
       
   224      * Function:     RunSuplTriggerSessionL, 
       
   225      *
       
   226      * @Description: Starts processing on session
       
   227      *
       
   228      * @Param:       aSuplSession , session object on which processing will start
       
   229      * @Param:       aStatus, On return, the status of the request
       
   230      * @Param:       aAllowedCapabilities , Allowed capabilities of SET
       
   231      * @Param:       aPTrigger , specifies the periodic trigger session
       
   232      * @Param:       aRequestID , Request ID of Session
       
   233      *
       
   234      * @Returns:     None
       
   235      */
       
   236   	void  RunSuplTriggerSessionL(
       
   237   					CSuplSessionBase *const aSuplSession,
       
   238   					TRequestStatus& aStatus,
       
   239   					TSuplTerminalPeriodicTrigger& aPTrigger,
       
   240   					const TDesC& aHslpAddress, 
       
   241   					TBool aFallBack,
       
   242   					TInt aAllowedCapabilities,
       
   243   					TInt aRequestID = 0
       
   244   		);
       
   245 
       
   246    	/**
       
   247      * Function:     NotifyTriggerFired
       
   248      *
       
   249      * @Description: Starts listening for the trigger fired event
       
   250      *
       
   251      * @Param:       None
       
   252      *
       
   253      * @Returns:     None
       
   254      *
       
   255      */
       
   256   	void NotifyTriggerFiredL(
       
   257     				 CSuplSessionBase *const aSuplSession,
       
   258   					 TRequestStatus& aStatus, 
       
   259         			 TSuplTriggerFireInfo& aFireInfo
       
   260     	);
       
   261  
       
   262 public : // From base class, MOMASuplSessionObserver
       
   263 
       
   264 	/**
       
   265 	* TerminateSession,Terminate the SUPL Session specified by the paramerter
       
   266 	* @since S60 v3.1u
       
   267 	* @param       aSession, the SUPL Session to be terminated
       
   268 	* @param       aErrorCode,error code by which session completes
       
   269 	* @return      None
       
   270 	*/
       
   271 	virtual void TerminateSession(CSuplSessionBase *aSession, TInt aErrorCode);
       
   272 	
       
   273 public: 
       
   274 
       
   275 	// For setting UI observer    
       
   276 	TInt LaunchSettingsUI(MOMASuplUICompletionObserver* aObserver,const TDesC& aForHslp);
       
   277 	TInt LaunchSuplUsageSettingsUI(MOMASuplUICompletionObserver* aObserver, TBool aRoaming);
       
   278 	TInt LaunchSuplDialogTimeoutUI(MOMASuplUICompletionObserver* aObserver );
       
   279 	void UpdateAllSubSessnsInSameSession(TInt aIpcSessionId);
       
   280 
       
   281 	void SettingsChanged();
       
   282 
       
   283 	TInt GetLastUsedAccessPoint(TDes& aLastlyUsedAccessPoint,TUint32& iIAPId);
       
   284 	/** 
       
   285 	* This callback method is used to notify the client about 
       
   286 	* the completion of UI launch
       
   287 	* @param aError - Error during Launch
       
   288 	* @return None
       
   289 	*/
       
   290 	void SettingsUICompletedL(TInt aError);
       
   291 
       
   292 	/** 
       
   293 	* This callback method is used to notify the client about 
       
   294 	* the completion of UI launch
       
   295 	* @param aError - Error during Launch
       
   296 	* @return None
       
   297 	*/
       
   298 	void SettingsUsageUICompletedL(TInt aError);
       
   299 
       
   300 	/** 
       
   301 	* This callback method is used to notify the client about 
       
   302 	* the completion of UI completion
       
   303 	* @param aError - Error during Launch
       
   304 	* @return None
       
   305 	*/
       
   306 	void SettingsTimeOutUICompletedL(TInt aError);
       
   307 	
       
   308 public: //From base class MSuplSettingsObserver
       
   309 
       
   310 	/**
       
   311 	* HandleSuplSettingsChangeL,Observeed function, gets called.
       
   312 	* @since S60 v3.1
       
   313 	* @param       aEvent,TSuplSettingsEventType, type of event.
       
   314 	* @return      None
       
   315 	*/
       
   316     virtual void HandleSuplSettingsChangeL(TSuplSettingsEventType aEvent,TInt aSlpId);                 
       
   317 
       
   318 	/**
       
   319 	* Handles Pos handler unload event
       
   320 	* @since S60 v3.1u
       
   321 	* @param       None
       
   322 	* @param       None
       
   323 	* @return      None
       
   324 	*/
       
   325 	void PlugInUninstalled();  
       
   326 	
       
   327 public: // Construction
       
   328 
       
   329     /**
       
   330      * COMASUPLProtocolManager1,Perform the first phase of two phase construction
       
   331      * @since S60 v3.1u
       
   332      * @param       None
       
   333      * @return      None
       
   334      */
       
   335      COMASUPLProtocolManager1();
       
   336 
       
   337     /**
       
   338      * ConstructL,Perform the second phase construction of a COMASUPLProtocolManager1 object.
       
   339      * @since S60 v3.1u
       
   340      * @param       None
       
   341      * @return      None
       
   342      */
       
   343     void ConstructL();
       
   344 
       
   345 	/**
       
   346 	* CreateNewSessionL,An overloaded version that takes the COMASuplSession::TOMASuplReqType
       
   347 	*     			This additional method is required to take of invalid session ID
       
   348 	* @since S60 v3.1u
       
   349 	* @param       None
       
   350 	* @return      None
       
   351 	*/
       
   352     //virtual 
       
   353 	CSuplSessionBase* CreateNewSessionL(
       
   354     						COMASuplSession::TOMASuplReqType aRequestType, 
       
   355     						TInt aIpcSessionId,
       
   356     						RSuplTerminalSubSession::TSuplServiceType aSuplService
       
   357     );
       
   358     
       
   359     
       
   360 private:
       
   361     /**
       
   362      * InitilizationCompletedL, Gets called after initilization gets completed with error or without error.
       
   363      * @since S60 v3.1u          
       
   364      * @param      aError,Error code if any happen while initilization.
       
   365      * @return     None.
       
   366      */
       
   367 	void InitilizationCompletedL(TInt aError);
       
   368 	
       
   369 	void DeInitilizationCompletedL(TInt aError);
       
   370 												
       
   371 private : //For internal use only       
       
   372 
       
   373 	
       
   374 	/**
       
   375 	* CheckForSessionCount, Check Max session count,if its reaches to max then resets to Zero.
       
   376 	* @since S60 v3.1u     
       
   377 	* @param      None
       
   378 	* @return     None
       
   379 	*/
       
   380 	void CheckForSessionCount();
       
   381 
       
   382 	/**
       
   383 	* ConnectToETelL, Connects to Telephony server & RMobilePhone
       
   384 	* @since S60 v3.1u     
       
   385 	* @param      None, 
       
   386 	* @return     TInt, returns system wide error code
       
   387 	*/
       
   388 	TInt  ConnectToETelL();
       
   389 
       
   390 	/**
       
   391 	* DeleteAllSessions, Deletes all sessions,if any session is remaining in array
       
   392 	* @since S60 v3.1u     
       
   393 	* @param      None, 
       
   394 	* @return     None
       
   395 	*/
       
   396 	void DeleteAllSessions();	
       
   397 	
       
   398 	/**
       
   399 	* HandleOMASuplPackets, Handles OMA Packets,passes to approriate session
       
   400 	* @since S60 v3.1u     
       
   401 	* @param      aPacket, Packet received from gateway...(i.e. thro' Communication Manager)
       
   402 	* @return     None
       
   403 	*/
       
   404 	void HandleOMASuplPacketsL(const TDesC8& aPacket, TUint aPortNum);
       
   405 
       
   406 	/**
       
   407 	* FindSession,finds session in sessions array,using decoded message 
       
   408 	* @since S60 v3.1u     
       
   409 	* @param      aRetrivedSessionID,Session which has to be find in sessions array. 
       
   410 	* @return     CSuplSessionBase*, session which found in sessions array,if any.
       
   411 	*/
       
   412 	COMASuplSession* FindSession(COMASuplSessionID* aRetrivedSessionID,TBool& aInvalidSLPId, TBool& aInvalidSETId) const;
       
   413 
       
   414 	/**
       
   415 	*  GetSETSessionID, Retrives SET ID from COMASuplSessionID
       
   416 	* @since S60 v3.1u
       
   417 	* @param       aOMAsuplSessionID,Session ID. 
       
   418 	* @return      COMASuplSETSessionID, SET ID retrived from aOMAsuplSessionID.
       
   419 	*/
       
   420 	COMASuplSETSessionID* GetSETSessionID(COMASuplSessionID* aOMAsuplSessionID) const;
       
   421 
       
   422 	/**
       
   423 	* GetSLPSessionID, Retrives SLP ID from COMASuplSessionID
       
   424 	* @since S60 v3.1u     
       
   425 	* @param      aOMAsuplSessionID,Session ID. 
       
   426 	* @return     COMASuplSLPSessionID, SLP ID retrived from aOMAsuplSessionID.
       
   427 	*/
       
   428 	COMASuplSLPSessionID* GetSLPSessionID(COMASuplSessionID* aOMAsuplSessionID) const;
       
   429 	
       
   430 	/**
       
   431 	* CompareSETSessionID, Compares two SET ID of two Sessions.
       
   432 	* @since S60 v3.1u     
       
   433 	* @param      aSuplSETID, SET Session ID. 
       
   434 	* @param      aRetrivedSuplSETID, SET Session ID. 
       
   435 	* @return     TBool, if SET Session id matches returns ETrue else EFalse
       
   436 	*/
       
   437 	TBool CompareSETSessionID(COMASuplSETSessionID* aSuplSETID,
       
   438 							  COMASuplSETSessionID* aRetrivedSuplSETID) const;
       
   439 	
       
   440     /**
       
   441      * CompareSLPSessionID, Compares two SLP ID of two Sessions.
       
   442      * @since S60 v3.1u          
       
   443      * @param      aSuplSLPID, SLP Session ID. 
       
   444      * @param      aRetrivedSuplSLPID, SLP Session ID. 
       
   445      * @return     TBool, if matches returns ETrue else EFalse
       
   446      */
       
   447 	TBool CompareSLPSessionID(COMASuplSLPSessionID* aSuplSLPID,
       
   448 							 COMASuplSLPSessionID* aRetrivedSuplSLPID) const;	
       
   449 
       
   450     /**
       
   451      * ProcessInvalidSessionL, Processes invalid session, if any comes
       
   452      * @since S60 v3.1u          
       
   453      * @param      aRetrivedSessionID,SessionID of SuplSession. 
       
   454      * @return     None.
       
   455      */
       
   456 	void ProcessInvalidSessionL(COMASuplAsnMessageBase* aDecodedMsg);
       
   457 
       
   458     
       
   459     /**
       
   460      * ReadSuplUsage, Reads OMA Supl Usage.
       
   461      * @since S60 v3.1u          
       
   462      * @param      None. 
       
   463      * @return     None.
       
   464      */
       
   465     void ReadSuplUsage();
       
   466 	
       
   467     
       
   468     /**
       
   469      * ResetBufferingParameters, 
       
   470      * @since S60 v3.1          
       
   471      * @param      None. 
       
   472      * @return     None
       
   473      */
       
   474 	void ResetBufferingParameters();
       
   475 	
       
   476     /**
       
   477      * GetNetworkModeL, 
       
   478      * @since S60 v3.1          
       
   479      * @param      None. 
       
   480      * @return     None
       
   481      */
       
   482 	TInt GetNetworkModeL();
       
   483 
       
   484 	// For Logging purpose
       
   485 	void LogPacket(const TDesC8& aPacket,COMASuplAsnMessageBase* decodedAsn);
       
   486 	void LogAvailableSessions( COMASuplSETSessionID* aSuplSETID,COMASuplSLPSessionID* aSuplSLPID,TInt aTotalCount) const;
       
   487 	void LogReceivedSessionIdL(COMASuplSessionID* aRetrivedSessionID);
       
   488 	void PrintHex(const TDesC8& aBuffer,TInt aLine);
       
   489   void CheckOutstandingUsageUIRequestsL();
       
   490 
       
   491 public: // MOMASuplTimeOutNotifier
       
   492 
       
   493 	/**
       
   494 	* Timeout Notifier Method.
       
   495 	* @since Series 60 3.1M
       
   496 	* @param None
       
   497 	* @return None
       
   498 	*/
       
   499 	virtual void TimerExpiredL();
       
   500 
       
   501 public:  // For ETEL requests
       
   502     void CheckForRoaming();
       
   503     void NotifyCurrentNetworkChange();
       
   504     void CancelNotify();
       
   505 
       
   506 public:  // MOMASuplETelNotifierObserver
       
   507     void HandleCurrentNetworkChangeL(TInt aErrorCode, TBool aHomeNw);
       
   508     void HandleRoamingCheckCompleteL(TInt aErrorCode, TBool aHomeNw);  
       
   509     
       
   510 public:  // COMASUPLProtocolManager
       
   511     void SetCommonConfig(COMASuplCommonConfig*& aCommmonConfig);
       
   512 
       
   513 private: // Data Members
       
   514 
       
   515 	//Holds all session objects created by CreateNewSession
       
   516 	RPointerArray<CSuplSessionBase> iSuplSessions;
       
   517 
       
   518 	//No of Sessions created
       
   519 	TInt iRunningSessionCount;
       
   520 
       
   521 	//Communication Manager
       
   522 	CSuplCommunicationManager* iCommManager;
       
   523 
       
   524 	//Tracing utility
       
   525 	COMASuplTrace* iTrace;
       
   526 
       
   527 	// Etel Server
       
   528 	RTelServer iTelServer;
       
   529 
       
   530 	//For access to a mobile phone
       
   531 	RMobilePhone iMobilePhone; 
       
   532 
       
   533 	//TSYName
       
   534 	TFileName iTsyName; 
       
   535 
       
   536 	// OMA Supl Settings
       
   537 	COMASuplSettings* iSuplSettings;
       
   538 
       
   539 	//Pos Handler
       
   540 	COMASuplPosHandlerBase *iPosHandler;
       
   541 
       
   542 	// Settings UI Handle
       
   543 	COMASuplSettingsLauncher* iSettingsLauncher;
       
   544  
       
   545    COMASuplETelNotifier* iNotifier;
       
   546 
       
   547     // Session Observer for UI completion
       
   548     MOMASuplUICompletionObserver* iSessnUIObserver;
       
   549 
       
   550 	// Asynchronous request status for De-Initilization
       
   551 	TRequestStatus* iDeInitRequestStatus; 
       
   552 
       
   553     TBool iDeInitDone;
       
   554 	
       
   555 	//	UT1 Timer for SUPL_START
       
   556 	TInt iUT1_StartTimer;
       
   557 	
       
   558 	//	UT2 Timer for SUPL_POS_INIT
       
   559 	TInt iUT2_PosInitTimer;
       
   560 	
       
   561 	//	UT3 Timer for SUPL_POS
       
   562 	TInt iUT3_PosTimer;
       
   563 	
       
   564 	//Privacy Timer
       
   565 	TInt iPrivacyTimer;
       
   566 	
       
   567 	//SET Mode
       
   568 	TInt iSETMode;
       
   569 
       
   570     //SUPL Usage configuration
       
   571     TInt iSuplUsage;
       
   572  
       
   573    // Timer for persistent failure
       
   574     TInt iPersistFailTimer;
       
   575 
       
   576 	//For ECom unload event
       
   577 	COMASuplEcomEventWatcher* iSuplEcomEventWatcher;
       
   578 	
       
   579 	//SUPLSettings
       
   580 	CSuplSettingsInternal *iSuplStorageSettings;
       
   581 	
       
   582 	// Container to store IMSI value
       
   583 	RBuf    iIMSI;
       
   584 	
       
   585 	RBuf8 iQueuedPacket;
       
   586 	
       
   587 	TInt iPreviousMessageLength;
       
   588 	
       
   589 	TBool iIsPreviouslyDecodingFailed;
       
   590 	
       
   591 	//Timeout Timer
       
   592 	COMASuplTimeoutTimer* iTimer;
       
   593 
       
   594     TBool iNotifyStarted;
       
   595     TBool iRoamingCheckStarted;
       
   596     TInt iSuplInitTimeOut;
       
   597     TBool iTimeOutDialogPresent;
       
   598 
       
   599     RPointerArray<MOMASuplUICompletionObserver> iUIRequestArray;
       
   600     
       
   601     TBuf<256> iCurrentlyUsedHslp;
       
   602     
       
   603     COMASuplAsnHandlerBase* iOMASuplAsnHandlerBaseImpl; 
       
   604 
       
   605 };
       
   606 
       
   607 #endif // C_COMASUPLPROTOCOLMANAGER1_H