supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasuplprotocolmanager1.cpp
branchRCL_3
changeset 19 02ba3f1733c6
parent 14 b88ebe0cbbbe
child 20 2b4ea9893b66
equal deleted inserted replaced
18:d746aee05493 19:02ba3f1733c6
    44 #include "epos_omasuplconfigurationkeys.h"
    44 #include "epos_omasuplconfigurationkeys.h"
    45 #include "epos_comasupltrace.h"
    45 #include "epos_comasupltrace.h"
    46 #include "epos_comasupltimeouttimer.h"
    46 #include "epos_comasupltimeouttimer.h"
    47 #include "epos_omasuplconstants.h"
    47 #include "epos_omasuplconstants.h"
    48 #include "epos_comasuplcommonconfig.h"
    48 #include "epos_comasuplcommonconfig.h"
       
    49 #include "epos_suplgeocellinfo.h"
       
    50 
       
    51 #include "epos_comasupllocationid.h"
    49 
    52 
    50 _LIT(KTraceFileName,"SUPL_OMA_PH::EPos_COMASUPLProtocolManager1.cpp");
    53 _LIT(KTraceFileName,"SUPL_OMA_PH::EPos_COMASUPLProtocolManager1.cpp");
    51 
    54 
    52 const TInt KMaxIMSILen = 20;
    55 const TInt KMaxIMSILen = 20;
    53 const TInt KMaxDelay = 128;
    56 const TInt KMaxDelay = 128;
   526 
   529 
   527 	//Last Session invoking Destroy
   530 	//Last Session invoking Destroy
   528 	iTrace->Trace(_L("COMASUPLProtocolManager1::DestroySession Destroy Session"), KTraceFileName, __LINE__);
   531 	iTrace->Trace(_L("COMASUPLProtocolManager1::DestroySession Destroy Session"), KTraceFileName, __LINE__);
   529 
   532 
   530 	COMASuplSession* OMASession =  static_cast<COMASuplSession*>(aSuplSession);
   533 	COMASuplSession* OMASession =  static_cast<COMASuplSession*>(aSuplSession);
       
   534 	  if (OMASession->HasMeLaunchedUsageDialog())
       
   535     {
       
   536     		iTrace->Trace(_L("Setting NULL."), KTraceFileName, __LINE__);
       
   537         iSessnUIObserver = NULL;
       
   538     }   
   531     if (OMASession->GetSessionUIFlag())
   539     if (OMASession->GetSessionUIFlag())
   532     	{
   540     	{
   533 	    OMASession->DestroySession();
   541 	    OMASession->DestroySession();
   534         iSessnUIObserver = NULL;
   542         iSessnUIObserver = NULL;
   535     	}            
   543     	}            
  1036 	if(KErrNotFound == index)
  1044 	if(KErrNotFound == index)
  1037 		{
  1045 		{
  1038 		iTrace->Trace(_L("Cannot found Supl session."), KTraceFileName, __LINE__);
  1046 		iTrace->Trace(_L("Cannot found Supl session."), KTraceFileName, __LINE__);
  1039 		return;
  1047 		return;
  1040 		}
  1048 		}
       
  1049 	
       
  1050 		COMASuplSession* OMASession =  static_cast<COMASuplSession*>(aSuplSession);
       
  1051     if (OMASession->HasMeLaunchedUsageDialog())
       
  1052     {
       
  1053     		iTrace->Trace(_L("Setting NULL."), KTraceFileName, __LINE__);
       
  1054         iSessnUIObserver = NULL;
       
  1055     }   
       
  1056              
  1041 		aSuplSession->CancelRunSession();	
  1057 		aSuplSession->CancelRunSession();	
  1042 		return ;
  1058 		return ;
  1043 	}
  1059 	}
  1044 
  1060 
  1045 
  1061 
  2070     iSETMode = aCommmonConfig->iSETMode;
  2086     iSETMode = aCommmonConfig->iSETMode;
  2071     iSuplUsage = aCommmonConfig->iSuplUsage;
  2087     iSuplUsage = aCommmonConfig->iSuplUsage;
  2072     iSuplInitTimeOut = aCommmonConfig->iSuplInitTimeOut;
  2088     iSuplInitTimeOut = aCommmonConfig->iSuplInitTimeOut;
  2073     iPersistFailTimer = aCommmonConfig->iPersistFailTimer;
  2089     iPersistFailTimer = aCommmonConfig->iPersistFailTimer;
  2074     }
  2090     }
       
  2091 	
       
  2092 	
       
  2093 // -----------------------------------------------------------------------------
       
  2094 // COMASUPLProtocolManager1::MakeLocationConversionRequestL
       
  2095 // 
       
  2096 // To make conversion request to retrieve position for a given cell id
       
  2097 // -----------------------------------------------------------------------------
       
  2098 //
       
  2099 void COMASUPLProtocolManager1::MakeLocationConversionRequestL( CSuplSessionBase* aSuplSessn,
       
  2100         TGeoCellInfo& aCellInfo,
       
  2101         TRequestStatus& aStatus )
       
  2102     {
       
  2103     iTrace->Trace(_L("COMASUPLProtocolManager1::MakeLocationConversionRequestL"), KTraceFileName, __LINE__);
       
  2104     TBuf<64> tempBuf;
       
  2105 
       
  2106     if ( iSuplSessions.Find(aSuplSessn) == KErrNotFound )
       
  2107         {
       
  2108         TRequestStatus *status = &aStatus; 
       
  2109         User::RequestComplete(status,KErrNotFound ); 
       
  2110         return;
       
  2111         }
       
  2112 
       
  2113     CheckForSessionCount();
       
  2114     iRunningSessionCount++;
       
  2115 
       
  2116     COMASuplLocationId* locationId =   COMASuplLocationId::NewL();
       
  2117     COMASuplLocationId::TOMASuplStatus status = COMASuplLocationId::EStale;
       
  2118     switch(aCellInfo.iGeoCellType)
       
  2119         {
       
  2120         case EGeoGsmCell:
       
  2121             {
       
  2122             iTrace->Trace(_L("COMASUPLProtocolManager1::MakeLocationConversionRequestL - Setting GSM Cell Info"), KTraceFileName, __LINE__);
       
  2123             COMASuplGSMCellInfo* cellInfo = COMASuplGSMCellInfo::NewL();
       
  2124             cellInfo->SetSuplGSMCellInfo(aCellInfo.iMNC,aCellInfo.iMCC,aCellInfo.iCid,aCellInfo.iLac);
       
  2125             locationId->SetSuplLocationId(cellInfo,status);
       
  2126             }
       
  2127             break;
       
  2128         case EGeoWcdmaCell:
       
  2129             {
       
  2130             iTrace->Trace(_L("COMASUPLProtocolManager1::MakeLocationConversionRequestL - Setting WCDMA Cell Info"), KTraceFileName, __LINE__);
       
  2131             COMASuplCellInfo* cellInfo = COMASuplCellInfo::NewL();
       
  2132             cellInfo->SetSuplCellInfo(aCellInfo.iMNC,aCellInfo.iMCC,aCellInfo.iCid);
       
  2133             locationId->SetSuplLocationId(cellInfo,status);
       
  2134             }
       
  2135             break;
       
  2136         }
       
  2137    
       
  2138     tempBuf.Copy(_L("MCC = "));
       
  2139     tempBuf.AppendNum(aCellInfo.iMCC);
       
  2140     iTrace->Trace(tempBuf, KTraceFileName, __LINE__);
       
  2141     tempBuf.Copy(_L("MNC = "));
       
  2142     tempBuf.AppendNum(aCellInfo.iMNC);
       
  2143     iTrace->Trace(tempBuf, KTraceFileName, __LINE__);
       
  2144     tempBuf.Copy(_L("LAC = "));
       
  2145     tempBuf.AppendNum(aCellInfo.iLac);
       
  2146     iTrace->Trace(tempBuf, KTraceFileName, __LINE__);
       
  2147     tempBuf.Copy(_L("CId = "));
       
  2148     tempBuf.AppendNum(aCellInfo.iCid);
       
  2149     iTrace->Trace(tempBuf, KTraceFileName, __LINE__);
       
  2150     tempBuf.Copy(_L("Prompt = "));
       
  2151     tempBuf.AppendNum(aCellInfo.iConnectionPrompt);
       
  2152     iTrace->Trace(tempBuf, KTraceFileName, __LINE__);
       
  2153 
       
  2154     TInt allowedCapabilities = KECID|KCID;
       
  2155     TInt requestID = 1000; 
       
  2156     COMASuplSession* OMASession =  static_cast<COMASuplSession*>(aSuplSessn);
       
  2157     OMASession->SetConfigurationParameters(iUT1_StartTimer,iUT2_PosInitTimer, iUT3_PosTimer,iPrivacyTimer,iSETMode,
       
  2158             iSuplUsage, iPersistFailTimer,iSuplInitTimeOut);
       
  2159     OMASession->RunSuplSessionL(aStatus,ETrue, KNullDesC,EFalse, allowedCapabilities,iRunningSessionCount,requestID,ETrue,locationId,aCellInfo.iConnectionPrompt,aCellInfo.iWlanOnly);
       
  2160 
       
  2161     }
       
  2162 
       
  2163 // -----------------------------------------------------------------------------
       
  2164 // COMASUPLProtocolManager1::CancelLocationConversionRequest
       
  2165 // 
       
  2166 // Cancel an ongoing conversion request 
       
  2167 // -----------------------------------------------------------------------------
       
  2168 //
       
  2169 void COMASUPLProtocolManager1::CancelLocationConversionRequest(CSuplSessionBase* aSuplSession)
       
  2170     {
       
  2171     // Log
       
  2172     iTrace->Trace(_L("COMASUPLProtocolManager1::CancelLocationConversionRequest"), KTraceFileName, __LINE__);
       
  2173 
       
  2174     // Check if the Session is valid
       
  2175     TInt index = iSuplSessions.Find(aSuplSession);
       
  2176 
       
  2177     if(KErrNotFound == index)
       
  2178         {
       
  2179         iTrace->Trace(_L("Cannot find Supl session."), KTraceFileName, __LINE__);
       
  2180         return;
       
  2181         }
       
  2182     aSuplSession->CancelRunSession();   
       
  2183     return ;
       
  2184     }
       
  2185 	
  2075     
  2186     
  2076     // -----------------------------------------------------------------------------
  2187 // -----------------------------------------------------------------------------
  2077 // COMASUPLProtocolManager1::CancelUiLaunch
  2188 // COMASUPLProtocolManager1::CancelUiLaunch
  2078 // 
  2189 // 
  2079 // 
  2190 // 
  2080 // -----------------------------------------------------------------------------
  2191 // -----------------------------------------------------------------------------
  2081 //
  2192 //