sysstatemgmt/systemstatemgr/sus/src/susemergencycallrfadaptation.cpp
branchRCL_3
changeset 21 ccb4f6b3db21
parent 3 a811597961f0
child 22 8cb079868133
equal deleted inserted replaced
20:1ddbe54d0645 21:ccb4f6b3db21
   276 	{
   276 	{
   277     __ASSERT_DEBUG((iCurrentMessage != NULL), User::Panic(KPanicSsmSus, EEmergencyAdaptationMessageNullPtrError));
   277     __ASSERT_DEBUG((iCurrentMessage != NULL), User::Panic(KPanicSsmSus, EEmergencyAdaptationMessageNullPtrError));
   278 	DEBUGPRINT2A("CEmergencyCallRfAdaptationRequests processed the request with funtion id: %d", iCurrentMessage->Function());
   278 	DEBUGPRINT2A("CEmergencyCallRfAdaptationRequests processed the request with funtion id: %d", iCurrentMessage->Function());
   279 	iCurrentMessage->Complete(iStatus.Int());
   279 	iCurrentMessage->Complete(iStatus.Int());
   280 	DeleteAdaptationMessage();
   280 	DeleteAdaptationMessage();
   281 	iCurrentMessage = NULL;  
       
   282 
       
   283 	if( (iPendingEmergencyRequestsQueue.Count()) > 0 )
   281 	if( (iPendingEmergencyRequestsQueue.Count()) > 0 )
   284 		{
   282 		{
   285         CEmergencyAdaptationMessage *messageCopy = NULL;
   283         CEmergencyAdaptationMessage *messageCopy = NULL;
   286         Dequeue(messageCopy);				
   284         Dequeue(messageCopy);				
   287 		Submit(messageCopy);
   285 		Submit(messageCopy);
   293 	
   291 	
   294 	if(iCurrentMessage != NULL)	
   292 	if(iCurrentMessage != NULL)	
   295 		{
   293 		{
   296         iCurrentMessage->Complete(aError);
   294         iCurrentMessage->Complete(aError);
   297 		DeleteAdaptationMessage();
   295 		DeleteAdaptationMessage();
   298 		iCurrentMessage = NULL;
       
   299 		}
   296 		}
   300 	
   297 	
   301 	while( (iPendingEmergencyRequestsQueue.Count() > 0 ))
   298 	while( (iPendingEmergencyRequestsQueue.Count() > 0 ))
   302         {
   299         {
   303         Dequeue(iCurrentMessage);
   300         Dequeue(iCurrentMessage);
   304         iCurrentMessage->Complete(aError);
   301         iCurrentMessage->Complete(aError);
   305         DeleteAdaptationMessage();
   302         DeleteAdaptationMessage();
   306         iCurrentMessage = NULL;
       
   307         }
   303         }
   308 	
   304 	
   309 	return KErrNone;
   305 	return KErrNone;
   310 		
   306 		
   311 	}
   307 	}
   314 	{
   310 	{
   315 	if(iCurrentMessage != NULL)	
   311 	if(iCurrentMessage != NULL)	
   316 		{
   312 		{
   317 		iCurrentMessage->Complete(KErrCancel);
   313 		iCurrentMessage->Complete(KErrCancel);
   318 		DeleteAdaptationMessage();
   314 		DeleteAdaptationMessage();
   319 		iCurrentMessage = NULL;
       
   320 		}
   315 		}
   321 		
   316 		
   322 	while( (iPendingEmergencyRequestsQueue.Count() > 0 ))
   317 	while( (iPendingEmergencyRequestsQueue.Count() > 0 ))
   323 		{
   318 		{
   324         Dequeue(iCurrentMessage);
   319         Dequeue(iCurrentMessage);
   325         iCurrentMessage->Complete(KErrCancel);
   320         iCurrentMessage->Complete(KErrCancel);
   326         DeleteAdaptationMessage();
   321         DeleteAdaptationMessage();
   327         iCurrentMessage = NULL;
       
   328 		}
   322 		}
   329 	}
   323 	}
   330 
   324 
   331 /**
   325 /**
   332  * Sets the Priority Client Session
   326  * Sets the Priority Client Session
   347 /**
   341 /**
   348  * Reset the AdaptationMessage if it is created using reserved pointer or delete the pointer
   342  * Reset the AdaptationMessage if it is created using reserved pointer or delete the pointer
   349  */
   343  */
   350 void CEmergencyCallRfAdaptation::DeleteAdaptationMessage()
   344 void CEmergencyCallRfAdaptation::DeleteAdaptationMessage()
   351     {
   345     {
   352     if(iCurrentMessage->IsMessageReserved())
   346 	//Do not delete iCurrentMessage if it is owned by iAdaptationReservedMessageArray.
       
   347 	if(iCurrentMessage->IsMessageReserved())
   353         {
   348         {
   354         iCurrentMessage->UnsetMessageStatus(EMsgInUse);
   349         iCurrentMessage->UnsetMessageStatus(EMsgInUse);
   355         ++iReserveMsgCount;
   350         ++iReserveMsgCount;
   356         }
   351         }
   357     else
   352     else
   358         {
   353         {
   359         delete iCurrentMessage;
   354         delete iCurrentMessage;
   360         }    
   355 		}
       
   356 	iCurrentMessage = NULL;
   361     }
   357     }
   362 
   358 
   363 void CEmergencyCallRfAdaptation::Dequeue(CEmergencyAdaptationMessage *&aCurrentMessage)
   359 void CEmergencyCallRfAdaptation::Dequeue(CEmergencyAdaptationMessage *&aCurrentMessage)
   364     {
   360     {
   365     aCurrentMessage = iPendingEmergencyRequestsQueue[0];
   361     aCurrentMessage = iPendingEmergencyRequestsQueue[0];