• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #ifndef JINGLE_NOTIFIER_COMMUNICATOR_LOGIN_SETTINGS_H_
6 #define JINGLE_NOTIFIER_COMMUNICATOR_LOGIN_SETTINGS_H_
7 #include <string>
8 
9 #include "base/memory/ref_counted.h"
10 #include "base/time/time.h"
11 #include "jingle/notifier/base/server_information.h"
12 #include "net/url_request/url_request_context_getter.h"
13 #include "talk/xmpp/xmppclientsettings.h"
14 
15 namespace notifier {
16 
17 class LoginSettings {
18  public:
19   LoginSettings(const buzz::XmppClientSettings& user_settings,
20                 const scoped_refptr<net::URLRequestContextGetter>&
21                     request_context_getter,
22                 const ServerList& default_servers,
23                 bool try_ssltcp_first,
24                 const std::string& auth_mechanism);
25 
26   ~LoginSettings();
27 
28   // Copy constructor and assignment operator welcome.
29 
user_settings()30   const buzz::XmppClientSettings& user_settings() const {
31     return user_settings_;
32   }
33 
34   void set_user_settings(const buzz::XmppClientSettings& user_settings);
35 
request_context_getter()36   scoped_refptr<net::URLRequestContextGetter> request_context_getter() const {
37     return request_context_getter_;
38   }
39 
try_ssltcp_first()40   bool try_ssltcp_first() const {
41     return try_ssltcp_first_;
42   }
43 
auth_mechanism()44   const std::string& auth_mechanism() const {
45     return auth_mechanism_;
46   }
47 
48   ServerList GetServers() const;
49 
50   // The redirect server will eventually expire.
51   void SetRedirectServer(const ServerInformation& redirect_server);
52 
53   ServerList GetServersForTimeForTest(base::Time now) const;
54 
55   base::Time GetRedirectExpirationForTest() const;
56 
57  private:
58   ServerList GetServersForTime(base::Time now) const;
59 
60   buzz::XmppClientSettings user_settings_;
61   scoped_refptr<net::URLRequestContextGetter> request_context_getter_;
62   ServerList default_servers_;
63   bool try_ssltcp_first_;
64   std::string auth_mechanism_;
65 
66   // Used to handle redirects
67   ServerInformation redirect_server_;
68   base::Time redirect_expiration_;
69 
70 };
71 
72 }  // namespace notifier
73 
74 #endif  // JINGLE_NOTIFIER_COMMUNICATOR_LOGIN_SETTINGS_H_
75