• 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 CHROME_SERVICE_CLOUD_PRINT_CONNECTOR_SETTINGS_H_
6 #define CHROME_SERVICE_CLOUD_PRINT_CONNECTOR_SETTINGS_H_
7 
8 #include <set>
9 #include <string>
10 
11 #include "base/gtest_prod_util.h"
12 #include "base/memory/scoped_ptr.h"
13 #include "url/gurl.h"
14 
15 class ServiceProcessPrefs;
16 
17 namespace base {
18   class DictionaryValue;
19 }
20 
21 namespace cloud_print {
22 
23 class ConnectorSettings {
24  public:
25   ConnectorSettings();
26   ~ConnectorSettings();
27 
28   void InitFrom(ServiceProcessPrefs* prefs);
29 
30   void CopyFrom(const ConnectorSettings& source);
31 
server_url()32   const GURL& server_url() const {
33     return server_url_;
34   };
35 
proxy_id()36   const std::string& proxy_id() const {
37     return proxy_id_;
38   }
39 
delete_on_enum_fail()40   bool delete_on_enum_fail() const {
41     return delete_on_enum_fail_;
42   }
43 
xmpp_ping_enabled()44   bool xmpp_ping_enabled() const {
45     return xmpp_ping_enabled_;
46   }
47 
xmpp_ping_timeout_sec()48   int xmpp_ping_timeout_sec() const {
49     return xmpp_ping_timeout_sec_;
50   }
51 
print_system_settings()52   const base::DictionaryValue* print_system_settings() const {
53     return print_system_settings_.get();
54   };
55 
56   bool ShouldConnect(const std::string& printer_name) const;
57 
58   void SetXmppPingTimeoutSec(int timeout);
59 
60  private:
61   friend class ConnectorSettingsTest;
62   FRIEND_TEST_ALL_PREFIXES(ConnectorSettingsTest, SettersTest);
63 
set_xmpp_ping_enabled(bool enabled)64   void set_xmpp_ping_enabled(bool enabled) {
65     xmpp_ping_enabled_ = enabled;
66   }
67 
68   // Cloud Print server url.
69   GURL server_url_;
70 
71   // This is initialized after a successful call to one of the Enable* methods.
72   // It is not cleared in DisableUser.
73   std::string proxy_id_;
74 
75   // If |true| printers that are not found locally will be deleted on GCP
76   // even if the local enumeration failed.
77   bool delete_on_enum_fail_;
78 
79   // If true register all new printers in cloud print.
80   bool connect_new_printers_;
81 
82   // Indicate if XMPP pings are enabled.
83   bool xmpp_ping_enabled_;
84 
85   // Indicate timeout between XMPP pings.
86   int xmpp_ping_timeout_sec_;
87 
88   // Black list if connect_new_printers_ is true, or whitelist if false.
89   typedef std::set<std::string> Printers;
90   Printers printers_;
91 
92   // Print system settings.
93   scoped_ptr<base::DictionaryValue> print_system_settings_;
94 
95   DISALLOW_COPY_AND_ASSIGN(ConnectorSettings);
96 };
97 
98 }  // namespace cloud_print
99 
100 #endif  // CHROME_SERVICE_CLOUD_PRINT_CONNECTOR_SETTINGS_H_
101 
102