diff -r d746aee05493 -r 02ba3f1733c6 supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasuplprotocolmanager1.cpp --- a/supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasuplprotocolmanager1.cpp Thu Jul 15 19:06:58 2010 +0300 +++ b/supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasuplprotocolmanager1.cpp Thu Aug 19 10:20:18 2010 +0300 @@ -46,6 +46,9 @@ #include "epos_comasupltimeouttimer.h" #include "epos_omasuplconstants.h" #include "epos_comasuplcommonconfig.h" +#include "epos_suplgeocellinfo.h" + +#include "epos_comasupllocationid.h" _LIT(KTraceFileName,"SUPL_OMA_PH::EPos_COMASUPLProtocolManager1.cpp"); @@ -528,6 +531,11 @@ iTrace->Trace(_L("COMASUPLProtocolManager1::DestroySession Destroy Session"), KTraceFileName, __LINE__); COMASuplSession* OMASession = static_cast(aSuplSession); + if (OMASession->HasMeLaunchedUsageDialog()) + { + iTrace->Trace(_L("Setting NULL."), KTraceFileName, __LINE__); + iSessnUIObserver = NULL; + } if (OMASession->GetSessionUIFlag()) { OMASession->DestroySession(); @@ -1038,6 +1046,14 @@ iTrace->Trace(_L("Cannot found Supl session."), KTraceFileName, __LINE__); return; } + + COMASuplSession* OMASession = static_cast(aSuplSession); + if (OMASession->HasMeLaunchedUsageDialog()) + { + iTrace->Trace(_L("Setting NULL."), KTraceFileName, __LINE__); + iSessnUIObserver = NULL; + } + aSuplSession->CancelRunSession(); return ; } @@ -2072,8 +2088,103 @@ iSuplInitTimeOut = aCommmonConfig->iSuplInitTimeOut; iPersistFailTimer = aCommmonConfig->iPersistFailTimer; } + + +// ----------------------------------------------------------------------------- +// COMASUPLProtocolManager1::MakeLocationConversionRequestL +// +// To make conversion request to retrieve position for a given cell id +// ----------------------------------------------------------------------------- +// +void COMASUPLProtocolManager1::MakeLocationConversionRequestL( CSuplSessionBase* aSuplSessn, + TGeoCellInfo& aCellInfo, + TRequestStatus& aStatus ) + { + iTrace->Trace(_L("COMASUPLProtocolManager1::MakeLocationConversionRequestL"), KTraceFileName, __LINE__); + TBuf<64> tempBuf; + + if ( iSuplSessions.Find(aSuplSessn) == KErrNotFound ) + { + TRequestStatus *status = &aStatus; + User::RequestComplete(status,KErrNotFound ); + return; + } + + CheckForSessionCount(); + iRunningSessionCount++; + + COMASuplLocationId* locationId = COMASuplLocationId::NewL(); + COMASuplLocationId::TOMASuplStatus status = COMASuplLocationId::EStale; + switch(aCellInfo.iGeoCellType) + { + case EGeoGsmCell: + { + iTrace->Trace(_L("COMASUPLProtocolManager1::MakeLocationConversionRequestL - Setting GSM Cell Info"), KTraceFileName, __LINE__); + COMASuplGSMCellInfo* cellInfo = COMASuplGSMCellInfo::NewL(); + cellInfo->SetSuplGSMCellInfo(aCellInfo.iMNC,aCellInfo.iMCC,aCellInfo.iCid,aCellInfo.iLac); + locationId->SetSuplLocationId(cellInfo,status); + } + break; + case EGeoWcdmaCell: + { + iTrace->Trace(_L("COMASUPLProtocolManager1::MakeLocationConversionRequestL - Setting WCDMA Cell Info"), KTraceFileName, __LINE__); + COMASuplCellInfo* cellInfo = COMASuplCellInfo::NewL(); + cellInfo->SetSuplCellInfo(aCellInfo.iMNC,aCellInfo.iMCC,aCellInfo.iCid); + locationId->SetSuplLocationId(cellInfo,status); + } + break; + } + + tempBuf.Copy(_L("MCC = ")); + tempBuf.AppendNum(aCellInfo.iMCC); + iTrace->Trace(tempBuf, KTraceFileName, __LINE__); + tempBuf.Copy(_L("MNC = ")); + tempBuf.AppendNum(aCellInfo.iMNC); + iTrace->Trace(tempBuf, KTraceFileName, __LINE__); + tempBuf.Copy(_L("LAC = ")); + tempBuf.AppendNum(aCellInfo.iLac); + iTrace->Trace(tempBuf, KTraceFileName, __LINE__); + tempBuf.Copy(_L("CId = ")); + tempBuf.AppendNum(aCellInfo.iCid); + iTrace->Trace(tempBuf, KTraceFileName, __LINE__); + tempBuf.Copy(_L("Prompt = ")); + tempBuf.AppendNum(aCellInfo.iConnectionPrompt); + iTrace->Trace(tempBuf, KTraceFileName, __LINE__); + + TInt allowedCapabilities = KECID|KCID; + TInt requestID = 1000; + COMASuplSession* OMASession = static_cast(aSuplSessn); + OMASession->SetConfigurationParameters(iUT1_StartTimer,iUT2_PosInitTimer, iUT3_PosTimer,iPrivacyTimer,iSETMode, + iSuplUsage, iPersistFailTimer,iSuplInitTimeOut); + OMASession->RunSuplSessionL(aStatus,ETrue, KNullDesC,EFalse, allowedCapabilities,iRunningSessionCount,requestID,ETrue,locationId,aCellInfo.iConnectionPrompt,aCellInfo.iWlanOnly); + + } + +// ----------------------------------------------------------------------------- +// COMASUPLProtocolManager1::CancelLocationConversionRequest +// +// Cancel an ongoing conversion request +// ----------------------------------------------------------------------------- +// +void COMASUPLProtocolManager1::CancelLocationConversionRequest(CSuplSessionBase* aSuplSession) + { + // Log + iTrace->Trace(_L("COMASUPLProtocolManager1::CancelLocationConversionRequest"), KTraceFileName, __LINE__); + + // Check if the Session is valid + TInt index = iSuplSessions.Find(aSuplSession); + + if(KErrNotFound == index) + { + iTrace->Trace(_L("Cannot find Supl session."), KTraceFileName, __LINE__); + return; + } + aSuplSession->CancelRunSession(); + return ; + } + - // ----------------------------------------------------------------------------- +// ----------------------------------------------------------------------------- // COMASUPLProtocolManager1::CancelUiLaunch // //