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(); |