private void OnPollingTimerElapsed(object state) { if (base.Guard.Enter()) { try { lock (base.ThisLock) { if (this.pollingMode == PollingMode.NotPolling) { return; } if (this.pollingMode == PollingMode.Idle) { this.pollingMode = PollingMode.KeepAlive; } } this.pollingHandler(); this.pollingTimer.Set(this.GetPollingInterval()); } finally { base.Guard.Exit(); } } }
public void ResumePolling(bool fastPolling) { lock (this.ThisLock) { if (this.pollingMode != PollingMode.NotPolling) { throw Fx.AssertAndThrow("Can't resume polling if pollingMode != PollingMode.NotPolling"); } if (fastPolling) { this.pollingMode = PollingMode.FastPolling; } else { if (this.oldPollingMode == PollingMode.FastPolling) { this.pollingMode = PollingMode.Idle; } else { this.pollingMode = this.oldPollingMode; } } this.Guard.Exit(); this.pollingTimer.Set(this.GetPollingInterval()); } }
public bool StopPolling() { lock (base.ThisLock) { if (this.pollingMode == PollingMode.NotPolling) { return(false); } this.oldPollingMode = this.pollingMode; this.pollingMode = PollingMode.NotPolling; this.pollingTimer.Cancel(); return(base.Guard.Enter()); } }
public override void OnRemoteActivity(bool fastPolling) { base.OnRemoteActivity(fastPolling); lock (base.ThisLock) { if (this.pollingMode != PollingMode.NotPolling) { if (fastPolling) { this.pollingMode = PollingMode.FastPolling; } else { this.pollingMode = PollingMode.Idle; } this.pollingTimer.Set(this.GetPollingInterval()); } } }
// Returns true if caller should resume polling public bool StopPolling() { lock (this.ThisLock) { if (this.pollingMode == PollingMode.NotPolling) return false; this.oldPollingMode = pollingMode; this.pollingMode = PollingMode.NotPolling; this.pollingTimer.Cancel(); return this.Guard.Enter(); } }
public void ResumePolling(bool fastPolling) { lock (this.ThisLock) { if (this.pollingMode != PollingMode.NotPolling) { throw Fx.AssertAndThrow("Can't resume polling if pollingMode != PollingMode.NotPolling"); } if (fastPolling) { this.pollingMode = PollingMode.FastPolling; } else { if (this.oldPollingMode == PollingMode.FastPolling) this.pollingMode = PollingMode.Idle; else this.pollingMode = this.oldPollingMode; } this.Guard.Exit(); this.pollingTimer.Set(this.GetPollingInterval()); } }
public override void OnRemoteActivity(bool fastPolling) { base.OnRemoteActivity(fastPolling); lock (this.ThisLock) { if (this.pollingMode == PollingMode.NotPolling) return; if (fastPolling) this.pollingMode = PollingMode.FastPolling; else this.pollingMode = PollingMode.Idle; this.pollingTimer.Set(this.GetPollingInterval()); } }
void OnPollingTimerElapsed(object state) { if (this.Guard.Enter()) { try { lock (this.ThisLock) { if (this.pollingMode == PollingMode.NotPolling) return; if (this.pollingMode == PollingMode.Idle) this.pollingMode = PollingMode.KeepAlive; } this.pollingHandler(); this.pollingTimer.Set(this.GetPollingInterval()); } finally { this.Guard.Exit(); } } }