harvester/common/src/harvestereventmanager.cpp
branchRCL_3
changeset 16 9422ed56ee45
parent 9 82c0024438c8
child 18 63c982fb92f2
equal deleted inserted replaced
14:3e156c80c15d 16:9422ed56ee45
   338 		CleanupStack::Pop( msgQueue );
   338 		CleanupStack::Pop( msgQueue );
   339 		}	
   339 		}	
   340 
   340 
   341 	iRegisteredObservers.AppendL( observerInfo );
   341 	iRegisteredObservers.AppendL( observerInfo );
   342 
   342 
   343 	CleanupStack::Pop( observerInfo );
       
   344 	
       
   345 	// send event if register is coming in the middle of harvesting
   343 	// send event if register is coming in the middle of harvesting
   346 	for( TInt i = iEventStatuses.Count(); --i >= 0; )
   344 	for( TInt i = iEventStatuses.Count(); --i >= 0; )
   347 		{
   345 		{
   348 		TEventStatus& eventStatus = iEventStatuses[i];
   346 		TEventStatus& eventStatus = iEventStatuses[i];
   349 		if( CheckObserverType( observerInfo->iObserverType, 
   347 		if( CheckObserverType( observerInfo->iObserverType, 
   350 				eventStatus.iObserverType) )
   348 				eventStatus.iObserverType) )
   351 			{
   349 			{
   352 			if( eventStatus.iItemsLeft > 0 )
   350 			TRAP_IGNORE( SendEventL( eventStatus.iObserverType, 
   353 				{
   351 					eventStatus.iCurrentState, eventStatus.iItemsLeft ) );
   354 				TRAP_IGNORE( SendEventL( eventStatus.iObserverType, 
   352 			}
   355 						eventStatus.iCurrentState, eventStatus.iItemsLeft ) );
   353 		}
   356 				}
   354 	
   357 			}
   355 	//no events in queue, signal registered client anyways 
   358 		}
   356 	if( !iEventStatuses.Count() )
       
   357 	    {
       
   358         if(observerInfo->iObserverType & EHEObserverTypeOverall)
       
   359             {
       
   360             SendSingleEvent(*observerInfo, EHEObserverTypeOverall, EHEStateUninitialized, 0);
       
   361             }
       
   362         
       
   363         if(observerInfo->iObserverType & EHEObserverTypeMMC)
       
   364             {
       
   365             SendSingleEvent(*observerInfo, EHEObserverTypeMMC, EHEStateUninitialized, 0);
       
   366             }
       
   367         
       
   368         if(observerInfo->iObserverType & EHEObserverTypePlaceholder)
       
   369             {
       
   370             SendSingleEvent(*observerInfo, EHEObserverTypePlaceholder, EHEStateUninitialized, 0);
       
   371             }
       
   372 	    }
       
   373 	
       
   374 	CleanupStack::Pop( observerInfo );
   359 	}
   375 	}
   360 
   376 
   361 EXPORT_C TInt CHarvesterEventManager::UnregisterEventObserver( const RMessage2& aMessage )
   377 EXPORT_C TInt CHarvesterEventManager::UnregisterEventObserver( const RMessage2& aMessage )
   362 	{
   378 	{
   363 	TUint observerId = (TUint)aMessage.Int0();
   379 	TUint observerId = (TUint)aMessage.Int0();