--- 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<CSipRfsMonitorAo*>(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;
+ }
+ }
+ }
}
// -----------------------------------------------------------------------------