supl/locationomasuplprotocolhandler/protocolhandlerver2/src/epos_comasuplconnrequestor.cpp
branchRCL_3
changeset 44 2b4ea9893b66
parent 23 5944cae565c9
child 45 6b6920c56e2f
equal deleted inserted replaced
42:02ba3f1733c6 44:2b4ea9893b66
    45 											 MOMASuplConnObserver& aObserver):
    45 											 MOMASuplConnObserver& aObserver):
    46     				 						 CActive( EPriorityStandard ),
    46     				 						 CActive( EPriorityStandard ),
    47     				 						 iCommMgr(aCommMgr), 
    47     				 						 iCommMgr(aCommMgr), 
    48     				 						 iProtocolManager(aProtoMgr),
    48     				 						 iProtocolManager(aProtoMgr),
    49     				 						 iPort(aPort),
    49     				 						 iPort(aPort),
    50     				 						 iObserver( aObserver),    				 						  
    50     				 						 iObserver( aObserver),
    51     				 						 iIapDialogShown(EFalse),
    51     				 						 iTriggerSession(EFalse)
    52     				 						 iIapDlgTimerExpired(EFalse),    				 			            
       
    53     				 			             iIsTimeoutDialogTimerStarted(EFalse),
       
    54 											 iTriggerSession(EFalse)
       
    55     {
    52     {
    56 			
    53 			
    57     }
    54     }
    58 
    55 
    59 // -----------------------------------------------------------------------------
    56 // -----------------------------------------------------------------------------
    76     	
    73     	
    77     	iLastConnectionError = KErrNone;
    74     	iLastConnectionError = KErrNone;
    78     	
    75     	
    79     	iCurrentSLPId = KErrNotFound;
    76     	iCurrentSLPId = KErrNotFound;
    80     	
    77     	
    81     	iDialogTimer = COMASuplDialogTimer::NewL(*this);
    78     
    82     }
    79     }
    83 
    80 
    84 // -----------------------------------------------------------------------------
    81 // -----------------------------------------------------------------------------
    85 // COMASuplConnRequestor::NewL
    82 // COMASuplConnRequestor::NewL
    86 // Two-phased constructor.
    83 // Two-phased constructor.
   106 // -----------------------------------------------------------------------------
   103 // -----------------------------------------------------------------------------
   107 //
   104 //
   108 COMASuplConnRequestor::~COMASuplConnRequestor()
   105 COMASuplConnRequestor::~COMASuplConnRequestor()
   109     {
   106     {
   110     	Cancel();
   107     	Cancel();
   111     	if(iDialogTimer)
   108     
   112     	    {
   109 	  	delete iSuplSettings;
   113     	    iDialogTimer->Cancel();
       
   114     	    delete iDialogTimer;
       
   115     	    iDialogTimer = NULL;
       
   116     	    }
       
   117     	delete iSuplSettings;
       
   118     	delete iTrace;
   110     	delete iTrace;
   119     	delete iFallBackHandler;
   111     	delete iFallBackHandler;
   120     }
   112     }
   121 
   113 
   122 // -----------------------------------------------------------------------------
   114 // -----------------------------------------------------------------------------
   125 //    
   117 //    
   126 void COMASuplConnRequestor::CreateConnectionL(TBool aTriggerSession)
   118 void COMASuplConnRequestor::CreateConnectionL(TBool aTriggerSession)
   127 	{
   119 	{
   128 	if(!iIsSettingInitilized)
   120 	if(!iIsSettingInitilized)
   129         {
   121         {
   130 		iTriggerSession = aTriggerSession;
   122         iTriggerSession = aTriggerSession;
   131 		iState = EInitialState;
   123 				iState = EInitialState;
   132         InitilizeSetting();
   124         InitilizeSetting();
   133         }
   125         }
   134     else
   126     else
   135         {
   127         {
   136 		TBuf<100> iapName;
   128 		TBuf<100> iapName;
   153                 if(!ret)
   145                 if(!ret)
   154 					{
   146 					{
   155 						buffer.Copy(_L("No access point configured for "));
   147 						buffer.Copy(_L("No access point configured for "));
   156 						buffer.Append(iHostAddress);
   148 						buffer.Append(iHostAddress);
   157 						iTrace->Trace(buffer,KTraceFileName, __LINE__); 				
   149 						iTrace->Trace(buffer,KTraceFileName, __LINE__); 				
   158 						if( isIapDialogShown )
   150 						buffer.Copy(_L("Calling CreateConnection with no IAP"));
   159 						    {
   151 						iTrace->Trace(buffer,KTraceFileName, __LINE__);
   160 						    TInt err = iProtocolManager.LaunchSettingsUI(this,iHostAddress);
   152 						iConnection = iCommMgr.CreateConnectionL(iHostAddress,iTls,iPskTls,iPort,-1);
   161 						    if(err != KErrNone)
   153 						OpenConnection();
   162                                 {
       
   163                                 buffer.Copy(_L("Error in launching UI : "));
       
   164                                 buffer.AppendNum(err);
       
   165                                 iTrace->Trace(buffer,KTraceFileName, __LINE__);                 
       
   166                                 iHostAddress.Zero();
       
   167                                 iObserver.OperationCompleteL(err);
       
   168                                 }
       
   169 						        else
       
   170 						        iIapDialogShown = ETrue;
       
   171 						    }
       
   172 						
       
   173 						
   154 						
   174 					}
   155 					}
   175 				else
   156 				else
   176 				    {
   157 				    {
   177 				    iIsTimeoutDialogTimerStarted = EFalse;
       
   178     			    iDialogTimer->Cancel();
       
   179 				    buffer.Copy(_L("Connecting to "));
   158 				    buffer.Copy(_L("Connecting to "));
   180 				    buffer.Append(iHostAddress);
   159 				    buffer.Append(iHostAddress);
   181 				    iTrace->Trace(buffer,KTraceFileName, __LINE__); 				
   160 				    iTrace->Trace(buffer,KTraceFileName, __LINE__); 				
   182 				    iConnection = iCommMgr.CreateConnectionL(iHostAddress,iTls,iPskTls,iPort,iIAPId);
   161 				    iConnection = iCommMgr.CreateConnectionL(iHostAddress,iTls,iPskTls,iPort,iIAPId);
   183 				    OpenConnection();
   162 				    OpenConnection();
   186 		else
   165 		else
   187 			{
   166 			{
   188 				iHostAddress.Zero();
   167 				iHostAddress.Zero();
   189 				iObserver.OperationCompleteL(errorCode);
   168 				iObserver.OperationCompleteL(errorCode);
   190 			}
   169 			}
   191 		}
   170 	}
   192 	}
   171     }
   193 
   172 
   194 // -----------------------------------------------------------------------------
   173 // -----------------------------------------------------------------------------
   195 // COMASuplConnRequestor::OpenConnection
   174 // COMASuplConnRequestor::OpenConnection
   196 // -----------------------------------------------------------------------------
   175 // -----------------------------------------------------------------------------
   197 //    
   176 //  TODO : Remove this method  
   198 void COMASuplConnRequestor::CreateConnectionL(TInt aDialogTimeOutDelay, TBool aTriggerSession)
   177 void COMASuplConnRequestor::CreateConnectionL(TInt /*aDialogTimeOutDelay*/, TBool aTriggerSession)
   199     {
   178     {
   200     iIsTimeoutDialogTimerStarted = ETrue;
       
   201     
       
   202     iDialogTimer->StartTimer(aDialogTimeOutDelay); 
       
   203     CreateConnectionL(aTriggerSession);
   179     CreateConnectionL(aTriggerSession);
   204     }
   180     }
   205 // -----------------------------------------------------------------------------
   181 // -----------------------------------------------------------------------------
   206 // COMASuplConnRequestor::OpenConnection
   182 // COMASuplConnRequestor::OpenConnection
   207 // -----------------------------------------------------------------------------
   183 // -----------------------------------------------------------------------------
   245 				iState = EConnecting;
   221 				iState = EConnecting;
   246 				iConnection->Connect(iStatus);
   222 				iConnection->Connect(iStatus);
   247 				SetActive();
   223 				SetActive();
   248 			}
   224 			}
   249 		}
   225 		}
   250 	else
   226 		else
   251 		{
   227 		{
   252 		iState = EInitilizeSetting;
   228 		iState = EInitilizeSetting;
   253 		InitilizeSetting();
   229 			InitilizeSetting();
   254 		}
   230 		}
   255 	}
   231 	}
   256     
   232     
   257 // -----------------------------------------------------------------------------
   233 // -----------------------------------------------------------------------------
   258 // COMASuplConnRequestor::ListenToMessages
   234 // COMASuplConnRequestor::ListenToMessages
   293 			buffer.AppendNum(iLastConnectionError);
   269 			buffer.AppendNum(iLastConnectionError);
   294 			iTrace->Trace(buffer,KTraceFileName, __LINE__); 					
   270 			iTrace->Trace(buffer,KTraceFileName, __LINE__); 					
   295     	
   271     	
   296     	switch(iState)
   272     	switch(iState)
   297     		{
   273     		{
   298 			
       
   299 			case EInitialState:
       
   300 	            {
       
   301 	            iIsSettingInitilized = ETrue;
       
   302 	            iTrace->Trace(_L("Setting API Initilizing Completed..."), KTraceFileName, __LINE__);
       
   303 	            CreateConnectionL(iTriggerSession);
       
   304 	            
       
   305 	            break;
       
   306 	            }
       
   307     		
   274     		
       
   275 		case EInitialState:
       
   276             {
       
   277             iIsSettingInitilized = ETrue;
       
   278             iTrace->Trace(_L("Setting API Initilizing Completed..."), KTraceFileName, __LINE__);
       
   279             CreateConnectionL(iTriggerSession);
       
   280             
       
   281             break;
       
   282             }
   308 			case  EConnecting:
   283 			case  EConnecting:
   309 				{
   284 				{
   310 					if(iLastConnectionError < 0)
   285 					if(iLastConnectionError < 0)
   311 					{
   286 					{
   312 						iHostAddress.Zero();
   287 						iHostAddress.Zero();
   404 // -----------------------------------------------------------------------------
   379 // -----------------------------------------------------------------------------
   405 //
   380 //
   406 void COMASuplConnRequestor::InitilizeSetting()
   381 void COMASuplConnRequestor::InitilizeSetting()
   407 	{
   382 	{
   408 			iTrace->Trace(_L("Intilizing Setting API..."), KTraceFileName, __LINE__); 				
   383 			iTrace->Trace(_L("Intilizing Setting API..."), KTraceFileName, __LINE__); 				
       
   384 			
   409 			iSuplSettings->Initialize(iStatus);
   385 			iSuplSettings->Initialize(iStatus);
   410 			SetActive();
   386 			SetActive();
   411 	}
   387 	}
   412 
   388 
   413 // -----------------------------------------------------------------------------
   389 // -----------------------------------------------------------------------------
   474 	   	}
   450 	   	}
   475 		CleanupStack::PopAndDestroy(2);//delete tableView and commDb
   451 		CleanupStack::PopAndDestroy(2);//delete tableView and commDb
   476 		return result;
   452 		return result;
   477 	}
   453 	}
   478 	
   454 	
   479 // -----------------------------------------------------------------------------
   455 
   480 // COMASuplConnRequestor::SettingsUICompleted
       
   481 // 
       
   482 // -----------------------------------------------------------------------------
       
   483 
       
   484 void COMASuplConnRequestor::SettingsUICompletedL(TInt aError)
       
   485 	{
       
   486 		TBuf<128> buffer(_L("COMASuplConnRequestor:SettingsUICompleted Error: "));
       
   487 		buffer.AppendNum(aError);
       
   488 		iTrace->Trace(buffer,KTraceFileName, __LINE__); 
       
   489 		
       
   490 		if (iIsTimeoutDialogTimerStarted)
       
   491 		    {                
       
   492 		    iTrace->Trace(_L("COMASuplSession::SettingsUICompleted, stopping timer "), KTraceFileName, __LINE__);
       
   493 		    iIsTimeoutDialogTimerStarted = EFalse;                    
       
   494 		    iDialogTimer->StopTimer();
       
   495 		    }
       
   496 		if (iIapDlgTimerExpired)
       
   497 		    {
       
   498 		    iIapDlgTimerExpired = EFalse;
       
   499 		    iIapDialogShown = EFalse;
       
   500 		    iProtocolManager.LaunchSuplDialogTimeoutUI(this);
       
   501 		    iObserver.OperationCompleteL(KErrNone);
       
   502 		    return;
       
   503 		    }
       
   504 		if(aError == KErrNone)
       
   505 			{
       
   506 				TBuf<100> IapName;
       
   507 				TInt err = iProtocolManager.GetLastUsedAccessPoint(IapName,iIAPId);
       
   508 				 if(err == KErrNone)
       
   509 					{
       
   510 						buffer.Copy(_L("Connecting to "));
       
   511 						buffer.Append(iHostAddress);
       
   512 						buffer.Append(_L(" using IAP "));
       
   513 						buffer.Append(IapName);
       
   514 						iTrace->Trace(buffer,KTraceFileName, __LINE__); 				
       
   515 						iConnection = iCommMgr.CreateConnectionL(iHostAddress,iTls,iPskTls,iPort,iIAPId);
       
   516 						SaveAccessPoint(IapName);
       
   517 						OpenConnection();
       
   518 					}
       
   519 				 else
       
   520 				 	{
       
   521 				 		iObserver.OperationCompleteL(err);	
       
   522 				 	}	
       
   523 			}
       
   524 		else
       
   525 			{
       
   526 				iObserver.OperationCompleteL(aError);	
       
   527 			}	
       
   528 		
       
   529 	}
       
   530 
   456 
   531 // -----------------------------------------------------------------------------
   457 // -----------------------------------------------------------------------------
   532 // COMASuplConnRequestor::SaveAccessPoint
   458 // COMASuplConnRequestor::SaveAccessPoint
   533 // 
   459 // 
   534 // -----------------------------------------------------------------------------
   460 // -----------------------------------------------------------------------------
   592 void COMASuplConnRequestor::UpdateSLPListForHomeUsage(TBool aHomeNetwork)
   518 void COMASuplConnRequestor::UpdateSLPListForHomeUsage(TBool aHomeNetwork)
   593 {
   519 {
   594 			iFallBackHandler->UpdateSLPListForHomeUsage(aHomeNetwork);
   520 			iFallBackHandler->UpdateSLPListForHomeUsage(aHomeNetwork);
   595 }
   521 }
   596 
   522 
   597 // -----------------------------------------------------------------------------
       
   598 // COMASuplConnRequestor::DialogTimerExpiredL
       
   599 // Checks whether UI is displayed or not previously
       
   600 // 
       
   601 // -----------------------------------------------------------------------------
       
   602 void COMASuplConnRequestor::DialogTimerExpiredL()
       
   603 {
       
   604    iTrace->Trace(_L("COMASuplConnRequestor:Timer Expired for SUPL IAP Dialog"), KTraceFileName, __LINE__); 
       
   605 
       
   606     if (!iIapDialogShown)
       
   607         iProtocolManager.LaunchSuplDialogTimeoutUI(this);
       
   608     else
       
   609         iIapDlgTimerExpired = ETrue;  
       
   610     return; 
       
   611 }
       
   612 
   523 
   613 TUint COMASuplConnRequestor::GetPortNumber()
   524 TUint COMASuplConnRequestor::GetPortNumber()
   614 	{
   525 	{
   615 	return iConnection->GetPortNumberUsed();
   526 		if(iConnection)
       
   527 			return iConnection->GetPortNumberUsed();
       
   528 		else 
       
   529 			return 0;
   616 	}
   530 	}
   617 	
   531 	
   618 	
   532 	
   619 //  End of File
   533 //  End of File