Index: jingle/notifier/communicator/auto_reconnect.cc |
diff --git a/jingle/notifier/communicator/auto_reconnect.cc b/jingle/notifier/communicator/auto_reconnect.cc |
deleted file mode 100644 |
index 4b16e93a017078da5d9f84c1e6a5d99430cbfc15..0000000000000000000000000000000000000000 |
--- a/jingle/notifier/communicator/auto_reconnect.cc |
+++ /dev/null |
@@ -1,125 +0,0 @@ |
-// Copyright (c) 2009 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include "jingle/notifier/communicator/auto_reconnect.h" |
- |
-#include "base/rand_util.h" |
-#include "jingle/notifier/communicator/login.h" |
- |
-namespace notifier { |
- |
-const int kResetReconnectInfoDelaySec = 2; |
- |
-AutoReconnect::AutoReconnect() |
- : reconnect_timer_started_(false), |
- is_idle_(false) { |
- SetupReconnectInterval(); |
-} |
- |
-void AutoReconnect::NetworkStateChanged(bool is_alive) { |
- if (is_retrying() && is_alive) { |
- // Reconnect in 1 to 9 seconds (vary the time a little to try to avoid |
- // spikey behavior on network hiccups). |
- StartReconnectTimerWithInterval( |
- base::TimeDelta::FromSeconds(base::RandInt(1, 9))); |
- } |
-} |
- |
-void AutoReconnect::StartReconnectTimer() { |
- StartReconnectTimerWithInterval(reconnect_interval_); |
-} |
- |
-void AutoReconnect::StartReconnectTimerWithInterval( |
- base::TimeDelta interval) { |
- // Don't call StopReconnectTimer because we don't want other classes to |
- // detect that the intermediate state of the timer being stopped. |
- // (We're avoiding the call to SignalTimerStartStop while reconnect_timer_ is |
- // NULL). |
- reconnect_timer_.Stop(); |
- reconnect_timer_.Start(interval, this, &AutoReconnect::DoReconnect); |
- reconnect_timer_started_ = true; |
- SignalTimerStartStop(); |
-} |
- |
-void AutoReconnect::DoReconnect() { |
- reconnect_timer_started_ = false; |
- |
- // If timed out again, double autoreconnect time up to 30 minutes. |
- reconnect_interval_ *= 2; |
- if (reconnect_interval_ > base::TimeDelta::FromMinutes(30)) { |
- reconnect_interval_ = base::TimeDelta::FromMinutes(30); |
- } |
- SignalStartConnection(); |
-} |
- |
-void AutoReconnect::StopReconnectTimer() { |
- if (reconnect_timer_started_) { |
- reconnect_timer_started_ = false; |
- reconnect_timer_.Stop(); |
- SignalTimerStartStop(); |
- } |
-} |
- |
-void AutoReconnect::StopDelayedResetTimer() { |
- delayed_reset_timer_.Stop(); |
-} |
- |
-void AutoReconnect::ResetState() { |
- StopDelayedResetTimer(); |
- StopReconnectTimer(); |
- SetupReconnectInterval(); |
-} |
- |
-void AutoReconnect::SetupReconnectInterval() { |
- if (is_idle_) { |
- // If we were idle, start the timer over again (120 - 360 seconds). |
- reconnect_interval_ = |
- base::TimeDelta::FromSeconds(base::RandInt(120, 360)); |
- } else { |
- // If we weren't idle, try the connection 5 - 25 seconds later. |
- reconnect_interval_ = |
- base::TimeDelta::FromSeconds(base::RandInt(5, 25)); |
- } |
-} |
- |
-void AutoReconnect::OnPowerSuspend(bool suspended) { |
- if (suspended) { |
- // When the computer comes back on, ensure that the reconnect happens |
- // quickly (5 - 25 seconds). |
- reconnect_interval_ = |
- base::TimeDelta::FromSeconds(base::RandInt(5, 25)); |
- } |
-} |
- |
-void AutoReconnect::OnClientStateChange(LoginConnectionState state) { |
- // On any state change, stop the reset timer. |
- StopDelayedResetTimer(); |
- switch (state) { |
- case STATE_RETRYING: |
- // Do nothing. |
- break; |
- |
- case STATE_CLOSED: |
- // When the user has been logged out and no auto-reconnect is happening, |
- // then the autoreconnect intervals should be reset. |
- ResetState(); |
- break; |
- |
- case STATE_OPENING: |
- StopReconnectTimer(); |
- break; |
- |
- case STATE_OPENED: |
- // Reset autoreconnect timeout sequence after being connected for a bit |
- // of time. This helps in the case that we are connecting briefly and |
- // then getting disconnect like when an account hits an abuse limit. |
- StopReconnectTimer(); |
- delayed_reset_timer_.Start( |
- base::TimeDelta::FromSeconds(kResetReconnectInfoDelaySec), |
- this, &AutoReconnect::ResetState); |
- break; |
- } |
-} |
- |
-} // namespace notifier |