Index: jingle/notifier/communicator/login.h |
diff --git a/jingle/notifier/communicator/login.h b/jingle/notifier/communicator/login.h |
index 29dc9e3fea380075911729928cbef8e02db5e35d..d555a8a725439f217e273f67dd431333e42de434 100644 |
--- a/jingle/notifier/communicator/login.h |
+++ b/jingle/notifier/communicator/login.h |
@@ -10,7 +10,6 @@ |
#include "base/time.h" |
#include "base/timer.h" |
#include "jingle/notifier/base/sigslotrepeater.h" |
-#include "jingle/notifier/communicator/auto_reconnect.h" |
#include "jingle/notifier/communicator/login_connection_state.h" |
#include "net/base/network_change_notifier.h" |
#include "talk/base/proxyinfo.h" |
@@ -58,44 +57,14 @@ class Login : public net::NetworkChangeNotifier::Observer, |
ServerInformation* server_list, |
int server_count, |
talk_base::FirewallManager* firewall, |
- bool proxy_only, |
- bool previous_login_successful); |
+ bool proxy_only); |
virtual ~Login(); |
- LoginConnectionState connection_state() const { |
- return state_; |
- } |
- |
void StartConnection(); |
- void UseNextConnection(); |
- void UseCurrentConnection(); |
- buzz::XmppClient* xmpp_client(); |
- |
- // Start the auto-reconnect. It may not do the auto-reconnect if |
- // auto-reconnect is turned off. |
- void DoAutoReconnect(); |
- |
- const LoginSettings& login_settings() const { |
- return *(login_settings_.get()); |
- } |
- |
- // Returns the best guess at the host responsible for the account (which we |
- // use to determine if it is a dasher account or not). |
- // |
- // After login this may return a more accurate answer, which accounts for |
- // open sign-up accounts. |
- const std::string& google_host() const; |
- // Analogous to google_host but for the user account ("fred" in |
- // "fred@gmail.com"). |
- const std::string& google_user() const; |
- |
- // Returns the proxy that is being used to connect (or the default proxy |
- // information if all attempted connections failed). |
- // |
- // Do not call until StartConnection has been called. |
- const talk_base::ProxyInfo& proxy() const; |
+ buzz::XmppClient* xmpp_client(); |
+ // net::NetworkChangeNotifier::Observer implementation. |
virtual void OnIPAddressChanged(); |
sigslot::signal1<LoginConnectionState> SignalClientStateChange; |
@@ -103,47 +72,44 @@ class Login : public net::NetworkChangeNotifier::Observer, |
sigslot::signal1<const LoginFailure&> SignalLoginFailure; |
sigslot::repeater2<const char*, int> SignalLogInput; |
sigslot::repeater2<const char*, int> SignalLogOutput; |
- sigslot::repeater1<bool> SignalIdleChange; |
- |
- // The creator should hook this up to a signal that indicates when the power |
- // is being suspended. |
- sigslot::repeater1<bool> SignalPowerSuspended; |
private: |
- void CheckConnection(); |
- |
- void OnRedirect(const std::string& redirect_server, int redirect_port); |
- void OnUnexpectedDisconnect(); |
- void OnClientStateChange(buzz::XmppEngine::State state); |
void OnLoginFailure(const LoginFailure& failure); |
void OnLogoff(); |
- void OnAutoReconnectTimerChange(); |
+ void OnRedirect(const std::string& redirect_server, int redirect_port); |
+ void OnClientStateChange(buzz::XmppEngine::State state); |
+ |
+ void ChangeState(LoginConnectionState new_state); |
+ |
+ // Abort any existing connection. |
+ void Disconnect(); |
- void HandleClientStateChange(LoginConnectionState new_state); |
- void ResetUnexpectedDisconnect(); |
+ // Stops any existing reconnect timer and sets an initial reconnect |
+ // interval. |
+ void ResetReconnectState(); |
- void OnDisconnectTimeout(); |
+ // Tries to reconnect in some point in the future. If called |
+ // repeatedly, will wait longer and longer until reconnecting. |
+ void TryReconnect(); |
+ |
+ // The actual function (called by |reconnect_timer_|) that does the |
+ // reconnection. |
+ void DoReconnect(); |
talk_base::TaskParent* parent_; |
bool use_chrome_async_socket_; |
scoped_ptr<LoginSettings> login_settings_; |
- AutoReconnect auto_reconnect_; |
+ LoginConnectionState state_; |
SingleLoginAttempt* single_attempt_; |
- bool successful_connection_; |
- LoginConnectionState state_; |
+ // reconnection state. |
+ base::TimeDelta reconnect_interval_; |
+ base::OneShotTimer<Login> reconnect_timer_; |
// server redirect information |
base::Time redirect_time_; |
std::string redirect_server_; |
int redirect_port_; |
- bool unexpected_disconnect_occurred_; |
- base::OneShotTimer<Login> reset_unexpected_timer_; |
- std::string google_host_; |
- std::string google_user_; |
- talk_base::ProxyInfo proxy_info_; |
- |
- base::OneShotTimer<Login> disconnect_timer_; |
DISALLOW_COPY_AND_ASSIGN(Login); |
}; |