supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasupletel.cpp
changeset 39 3efc7a0e8755
parent 22 4c4ed41530db
equal deleted inserted replaced
37:e175e2ba2fb0 39:3efc7a0e8755
    10 * Nokia Corporation - initial contribution.
    10 * Nokia Corporation - initial contribution.
    11 *
    11 *
    12 * Contributors:
    12 * Contributors:
    13 *
    13 *
    14 * Description:   Implementation of COMASuplEtel Class
    14 * Description:   Implementation of COMASuplEtel Class
    15 *  Version     : %version: 4 % << Don't touch! Updated by Synergy at check-out.
    15 *  Version     : %version: 5 % << Don't touch! Updated by Synergy at check-out.
    16 *
    16 *
    17 */
    17 */
    18 
    18 
    19 
    19 
    20 
    20 
   203 	{
   203 	{
   204          switch (iNetworkInfo.iMode) 
   204          switch (iNetworkInfo.iMode) 
   205             {
   205             {
   206             case RMobilePhone::ENetworkModeGsm:
   206             case RMobilePhone::ENetworkModeGsm:
   207                 {
   207                 {
       
   208             //coverity[alloc_fn]
       
   209             //coverity[assign]
   208                 // For GSM Cell Information
   210                 // For GSM Cell Information
   209                 COMASuplLocationId* locationId = COMASuplLocationId::NewL(); 
   211                 COMASuplLocationId* locationId = COMASuplLocationId::NewL(); 
   210 				//Comment to ignore coverity cleanup stack error
   212             //coverity[push]
   211                 //coverity[SYMBIAN.CLEANUP_STACK :FALSE]
   213             CleanupStack::PushL(locationId);
   212                 CleanupStack::PushL(locationId);
   214             COMASuplGSMCellInfo* gsmCellInfo = COMASuplGSMCellInfo::NewL();
   213      			COMASuplGSMCellInfo* gsmCellInfo = COMASuplGSMCellInfo::NewL();
   215             CleanupStack::PushL(gsmCellInfo);
   214      			CleanupStack::PushL(gsmCellInfo);
   216             COMASuplLocationId::TOMASuplStatus lStatus =
   215                 COMASuplLocationId::TOMASuplStatus lStatus = COMASuplLocationId::ECurrent;
   217                     COMASuplLocationId::ECurrent;
   216                
   218 
   217                 TInt    MCC=0;
   219             TInt MCC = 0;
   218                 TInt64  MNC=0;
   220             TInt64 MNC = 0;
   219                 TUint   LAC, CellId;
   221             TUint LAC, CellId;
   220                 TLex LexMCC(iNetworkInfo.iCountryCode);
   222             TLex LexMCC(iNetworkInfo.iCountryCode);
   221                 TLex LexMNC(iNetworkInfo.iNetworkId);
   223             TLex LexMNC(iNetworkInfo.iNetworkId);
   222 
   224 
   223                 LexMCC.Val(MCC);
   225                 LexMCC.Val(MCC);
   224                 LexMNC.Val(MNC);
   226                 LexMNC.Val(MNC);
   225                 LAC = iLocationInfo.iLocationAreaCode;
   227                 LAC = iLocationInfo.iLocationAreaCode;
   226                 CellId = iLocationInfo.iCellId;
   228                 CellId = iLocationInfo.iCellId;
   227                 
   229 
   228                                 
   230             gsmCellInfo->SetSuplGSMCellInfo(MNC, MCC, CellId, LAC);
   229                 gsmCellInfo->SetSuplGSMCellInfo(MNC, MCC,CellId,LAC);                
   231             locationId->SetSuplLocationId(gsmCellInfo, lStatus);
   230                 locationId->SetSuplLocationId(gsmCellInfo,lStatus);
   232             CleanupStack::Pop(gsmCellInfo);
   231                 CleanupStack::Pop(gsmCellInfo);
   233             //coverity[pop]
   232                 CleanupStack::Pop(locationId); 
   234             CleanupStack::Pop(locationId);
   233                 
   235 
   234         		#if defined(_DEBUG)  //This is only for logging purpose. 
   236 #if defined(_DEBUG)  //This is only for logging purpose. 
   235 				TBuf<128> msg;
   237             TBuf<128> msg;
   236 				
   238 
   237 				msg.Copy(_L("It is GSM Network. MCC = "));					
   239             msg.Copy(_L("It is GSM Network. MCC = "));
   238 				msg.AppendNum(MCC);
   240             msg.AppendNum(MCC);
   239 				
   241 
   240 				msg.Append(_L(" MNC = "));					
   242             msg.Append(_L(" MNC = "));
   241 				msg.AppendNum(MNC);
   243             msg.AppendNum(MNC);
   242 
   244 
   243 
   245 
   244 				msg.Append(_L(" CellId = "));					
   246 				msg.Append(_L(" CellId = "));					
   245 				msg.AppendNum(CellId);
   247 				msg.AppendNum(CellId);
   246 				
   248 				
   253         		
   255         		
   254 				if(iCellMode == EOMASuplCellId)
   256 				if(iCellMode == EOMASuplCellId)
   255 				    iObserver.LocationIDRequestCompletedL(locationId,KErrNone);
   257 				    iObserver.LocationIDRequestCompletedL(locationId,KErrNone);
   256 				else if(iCellMode == EOMASuplCompareCellId)
   258 				else if(iCellMode == EOMASuplCompareCellId)
   257 				    iObserver.ComparisionLocationIDRequestCompletedL(locationId,KErrNone);
   259 				    iObserver.ComparisionLocationIDRequestCompletedL(locationId,KErrNone);
       
   260             //coverity[memory_leak]
   258                 break;                             
   261                 break;                             
   259                 }                    
   262                 }                    
   260             case RMobilePhone::ENetworkModeWcdma:
   263             case RMobilePhone::ENetworkModeWcdma:
   261                 {
   264                 {
       
   265             //coverity[alloc_fn]
       
   266             //coverity[assign]
   262                 // For WCDMA  Cell Information
   267                 // For WCDMA  Cell Information
   263                 COMASuplLocationId* locationId = COMASuplLocationId::NewL(); 
   268                 COMASuplLocationId* locationId = COMASuplLocationId::NewL(); 
   264 				//Comment to ignore coverity cleanup stack error
   269             //coverity[push]
   265                 //coverity[SYMBIAN.CLEANUP_STACK :FALSE]
   270             CleanupStack::PushL(locationId);
   266                 CleanupStack::PushL(locationId);
   271             
   267      			COMASuplCellInfo* wcdmaCellInfo = COMASuplCellInfo::NewL();
   272             COMASuplCellInfo* wcdmaCellInfo = COMASuplCellInfo::NewL();
   268      			CleanupStack::PushL(wcdmaCellInfo);
   273             CleanupStack::PushL(wcdmaCellInfo);
   269      			
   274 
   270                 COMASuplLocationId::TOMASuplStatus lStatus = COMASuplLocationId::ECurrent;
   275             COMASuplLocationId::TOMASuplStatus lStatus =
   271                 TInt    MCC=0;
   276                     COMASuplLocationId::ECurrent;
   272                 TInt64  MNC=0;
   277             TInt MCC = 0;
   273                 TUint   UC;
   278             TInt64 MNC = 0;
   274                 TLex LexMCC(iNetworkInfo.iCountryCode);
   279             TUint UC;
   275                 TLex LexMNC(iNetworkInfo.iNetworkId);
   280             TLex LexMCC(iNetworkInfo.iCountryCode);
       
   281             TLex LexMNC(iNetworkInfo.iNetworkId);
   276 
   282 
   277                 LexMCC.Val(MCC);
   283                 LexMCC.Val(MCC);
   278                 LexMNC.Val(MNC);
   284                 LexMNC.Val(MNC);
   279                 UC = iLocationInfo.iCellId;
   285                 UC = iLocationInfo.iCellId;
   280 
   286 
   281                                 
   287                                 
   282                 wcdmaCellInfo->SetSuplCellInfo(MNC, MCC, UC);                
   288                 wcdmaCellInfo->SetSuplCellInfo(MNC, MCC, UC);                
   283                 locationId->SetSuplLocationId(wcdmaCellInfo,lStatus);
   289                 locationId->SetSuplLocationId(wcdmaCellInfo,lStatus);
   284                 CleanupStack::Pop(wcdmaCellInfo);
   290                 CleanupStack::Pop(wcdmaCellInfo);
       
   291             //coverity[pop]
   285                 CleanupStack::Pop(locationId);
   292                 CleanupStack::Pop(locationId);
   286                 
   293                 
   287            		#if defined(_DEBUG)  //This is only for logging purpose. 
   294            		#if defined(_DEBUG)  //This is only for logging purpose. 
   288 				TBuf<128> msg;
   295 				TBuf<128> msg;
   289 				
   296 				
   291 				msg.AppendNum(MCC);
   298 				msg.AppendNum(MCC);
   292 				
   299 				
   293 				msg.Append(_L(" MNC = "));					
   300 				msg.Append(_L(" MNC = "));					
   294 				msg.AppendNum(MNC);
   301 				msg.AppendNum(MNC);
   295 
   302 
   296 
   303             msg.Append(_L(" UC = "));
   297 				msg.Append(_L(" UC = "));					
   304             msg.AppendNum(UC);
   298 				msg.AppendNum(UC);
   305 
   299 				
   306             iTrace->Trace(msg, KTraceFileName, __LINE__);
   300 				iTrace->Trace(msg,KTraceFileName, __LINE__); 							
   307 #endif
   301         		#endif
       
   302 
   308 
   303 				if(iCellMode == EOMASuplCellId)
   309 				if(iCellMode == EOMASuplCellId)
   304 				    iObserver.LocationIDRequestCompletedL(locationId,KErrNone);
   310 				    iObserver.LocationIDRequestCompletedL(locationId,KErrNone);
   305 				else if(iCellMode == EOMASuplCompareCellId)
   311 				else if(iCellMode == EOMASuplCompareCellId)
   306 				    iObserver.ComparisionLocationIDRequestCompletedL(locationId,KErrNone);
   312 				    iObserver.ComparisionLocationIDRequestCompletedL(locationId,KErrNone);
       
   313             //coverity[memory_leak]
   307                 break;                             
   314                 break;                             
   308                 }                    
   315                 }                    
   309             default:            
   316             default:            
   310             	{
   317             	{
   311             	#if _DEBUG 
   318             	#if _DEBUG 
       
   319             //coverity[alloc_fn]
       
   320             //coverity[assign]            
   312 	            	// For GSM Cell Information
   321 	            	// For GSM Cell Information
   313 	            	COMASuplLocationId* locationId = COMASuplLocationId::NewL(); 
   322 	            	COMASuplLocationId* locationId = COMASuplLocationId::NewL(); 
   314 					//Comment to ignore coverity cleanup stack error
   323             //coverity[push]
   315 	            	//coverity[SYMBIAN.CLEANUP_STACK :FALSE]
   324             CleanupStack::PushL(locationId);
   316                 	CleanupStack::PushL(locationId);
   325             
   317      				COMASuplGSMCellInfo* gsmCellInfo = COMASuplGSMCellInfo::NewL();
   326             COMASuplGSMCellInfo* gsmCellInfo = COMASuplGSMCellInfo::NewL();
   318      				CleanupStack::PushL(gsmCellInfo);
   327             CleanupStack::PushL(gsmCellInfo);
   319      				
   328 
   320 	                COMASuplLocationId::TOMASuplStatus lStatus = COMASuplLocationId::ECurrent;
   329             COMASuplLocationId::TOMASuplStatus lStatus = COMASuplLocationId::ECurrent;
   321 	                TInt    MCC=0;
   330             TInt MCC=0;
   322 	                TInt64  MNC=0;
   331             TInt64 MNC=0;
   323 	                TUint   LAC, CellId;
   332             TUint LAC, CellId;
   324 	                TLex LexMCC(iNetworkInfo.iCountryCode);
   333             TLex LexMCC(iNetworkInfo.iCountryCode);
   325 	                TLex LexMNC(iNetworkInfo.iNetworkId);
   334             TLex LexMNC(iNetworkInfo.iNetworkId);
   326 
   335 
   327 	                LexMCC.Val(MCC);
   336 	                LexMCC.Val(MCC);
   328 	                LexMNC.Val(MNC);
   337 	                LexMNC.Val(MNC);
   329 	                LAC = iLocationInfo.iLocationAreaCode;
   338 	                LAC = iLocationInfo.iLocationAreaCode;
   330 	                CellId = iLocationInfo.iCellId;
   339 	                CellId = iLocationInfo.iCellId;
   331 	                
   340 	                
   332                 
   341                 
   333 	           		gsmCellInfo->SetSuplGSMCellInfo(MNC, MCC,CellId,LAC);                
   342 	           		gsmCellInfo->SetSuplGSMCellInfo(MNC, MCC,CellId,LAC);                
   334 	                locationId->SetSuplLocationId(gsmCellInfo,lStatus);
   343 	                locationId->SetSuplLocationId(gsmCellInfo,lStatus);
   335 	                CleanupStack::Pop(gsmCellInfo);
   344 	                CleanupStack::Pop(gsmCellInfo);
   336                 	CleanupStack::Pop(locationId);  
   345             //coverity[pop]
       
   346             CleanupStack::Pop(locationId);
   337                 	
   347                 	
   338 					#if defined(_DEBUG)  //This is only for logging purpose. 
   348 					#if defined(_DEBUG)  //This is only for logging purpose. 
   339 					TBuf<128> msg;
   349 					TBuf<128> msg;
   340 					msg.Copy(_L("It is GSM Network. MCC = "));					
   350 					msg.Copy(_L("It is GSM Network. MCC = "));					
   341 					msg.AppendNum(MCC);
   351 					msg.AppendNum(MCC);
   361                 	if(iCellMode == EOMASuplCellId)
   371                 	if(iCellMode == EOMASuplCellId)
   362                 	    iObserver.LocationIDRequestCompletedL(NULL,KErrNotSupported); 
   372                 	    iObserver.LocationIDRequestCompletedL(NULL,KErrNotSupported); 
   363                 	else if(iCellMode == EOMASuplCompareCellId)
   373                 	else if(iCellMode == EOMASuplCompareCellId)
   364                 	    iObserver.ComparisionLocationIDRequestCompletedL(NULL,KErrNotSupported);                 	
   374                 	    iObserver.ComparisionLocationIDRequestCompletedL(NULL,KErrNotSupported);                 	
   365                 #endif
   375                 #endif
   366                 break;        	
   376             //coverity[memory_leak]
       
   377             break;
   367             	}                     
   378             	}                     
   368             }
   379             }
   369 		
   380 		
   370 	}
   381 	}
   371 
   382