diff -r dd3853b8dc3f -r 1e1cc61f56c3 sipplugins/sippsystemstatemonitor/src/siprfsmonitorao.cpp --- a/sipplugins/sippsystemstatemonitor/src/siprfsmonitorao.cpp Fri Feb 19 23:10:33 2010 +0200 +++ b/sipplugins/sippsystemstatemonitor/src/siprfsmonitorao.cpp Fri Mar 12 15:44:11 2010 +0200 @@ -23,9 +23,6 @@ _LIT_SECURITY_POLICY_PASS( KSIPRfsAlwaysPass ); -static const TInt KMicroSecondsInSecond = 1000000; -static const TInt KGuardTimerSeconds = 20; - // ----------------------------------------------------------------------------- // CSipRfsMonitorAo::NewL // ----------------------------------------------------------------------------- @@ -45,7 +42,6 @@ // void CSipRfsMonitorAo::ConstructL () { - iGuardTimer = CPeriodic::NewL( EPriorityNormal ); TInt err = iProperty.Define( KPSSipRfsUid, KSipRfsState, RProperty::EInt, KSIPRfsAlwaysPass, KSIPRfsAlwaysPass); if ( KErrNone != err && KErrAlreadyExists != err && @@ -76,12 +72,6 @@ // CSipRfsMonitorAo::~CSipRfsMonitorAo() { - if(iGuardTimer) - { - iGuardTimer->Cancel(); - delete iGuardTimer; - iGuardTimer = NULL; - } CActive::Cancel(); iProperty.Close(); iProperty.Delete(KPSSipRfsUid,KSipRfsState); @@ -124,16 +114,7 @@ CSipSystemStateMonitor::ERfsState, 0, iState); - } - if(iObservers.Count() && iState == CSipSystemStateMonitor::ERfsStarted) - { - iGuardTimer->Cancel(); - iGuardTimer->Start( - TTimeIntervalMicroSeconds32( KGuardTimerSeconds * KMicroSecondsInSecond ), - TTimeIntervalMicroSeconds32( KGuardTimerSeconds * KMicroSecondsInSecond ), - TCallBack( TimerExpired, this ) ); - } - + } } // ----------------------------------------------------------------------------- @@ -150,30 +131,21 @@ // ----------------------------------------------------------------------------- // void CSipRfsMonitorAo::EventProcessingCompleted( - MSipSystemStateObserver& /*aObserver*/ ) - { - } - -// ----------------------------------------------------------------------------- -// CSipRfsMonitorAo::EventProcessingCompleted -// ----------------------------------------------------------------------------- -// -void CSipRfsMonitorAo::EventProcessingCompleted() + MSipSystemStateObserver& aObserver ) { - iGuardTimer->Cancel(); - iProperty.Set(KPSSipRfsUid, KSipRfsState, ESipRfsEventProcessingCompleted ); - iCount = 0; - } - -// ----------------------------------------------------------------------------- -// CSipRfsMonitorAo::TimerExpired -// ----------------------------------------------------------------------------- -// -TInt CSipRfsMonitorAo::TimerExpired(TAny* aSelf) - { - CSipRfsMonitorAo* self = reinterpret_cast(aSelf); - self->EventProcessingCompleted(); - return ETrue; + if (iState == CSipSystemStateMonitor::ERfsStarted) + { + TInt index = iObservers.Find( &aObserver ); + if ( index >= 0 ) + { + iCount++; + if( iObservers.Count() == iCount) + { + iProperty.Set(KPSSipRfsUid, KSipRfsState, ESipRfsEventProcessingCompleted ); + iCount = 0; + } + } + } } // -----------------------------------------------------------------------------