OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef CHROME_SERVICE_CLOUD_PRINT_CLOUD_PRINT_PROXY_H_ | 5 #ifndef CHROME_SERVICE_CLOUD_PRINT_CLOUD_PRINT_PROXY_H_ |
6 #define CHROME_SERVICE_CLOUD_PRINT_CLOUD_PRINT_PROXY_H_ | 6 #define CHROME_SERVICE_CLOUD_PRINT_CLOUD_PRINT_PROXY_H_ |
7 | 7 |
8 #include <list> | 8 #include <list> |
9 #include <string> | 9 #include <string> |
10 #include <vector> | 10 #include <vector> |
(...skipping 16 matching lines...) Expand all Loading... |
27 public CloudPrintWipeout::Client, | 27 public CloudPrintWipeout::Client, |
28 public base::NonThreadSafe { | 28 public base::NonThreadSafe { |
29 public: | 29 public: |
30 class Client { | 30 class Client { |
31 public: | 31 public: |
32 virtual ~Client() {} | 32 virtual ~Client() {} |
33 virtual void OnCloudPrintProxyEnabled(bool persist_state) {} | 33 virtual void OnCloudPrintProxyEnabled(bool persist_state) {} |
34 virtual void OnCloudPrintProxyDisabled(bool persist_state) {} | 34 virtual void OnCloudPrintProxyDisabled(bool persist_state) {} |
35 }; | 35 }; |
36 CloudPrintProxy(); | 36 CloudPrintProxy(); |
37 virtual ~CloudPrintProxy(); | 37 ~CloudPrintProxy() override; |
38 | 38 |
39 // Initializes the object. This should be called every time an object of this | 39 // Initializes the object. This should be called every time an object of this |
40 // class is constructed. | 40 // class is constructed. |
41 void Initialize(ServiceProcessPrefs* service_prefs, Client* client); | 41 void Initialize(ServiceProcessPrefs* service_prefs, Client* client); |
42 | 42 |
43 // Enables/disables cloud printing for the user | 43 // Enables/disables cloud printing for the user |
44 void EnableForUser(); | 44 void EnableForUser(); |
45 void EnableForUserWithRobot( | 45 void EnableForUserWithRobot( |
46 const std::string& robot_auth_code, | 46 const std::string& robot_auth_code, |
47 const std::string& robot_email, | 47 const std::string& robot_email, |
48 const std::string& user_email, | 48 const std::string& user_email, |
49 const base::DictionaryValue& user_settings); | 49 const base::DictionaryValue& user_settings); |
50 void UnregisterPrintersAndDisableForUser(); | 50 void UnregisterPrintersAndDisableForUser(); |
51 void DisableForUser(); | 51 void DisableForUser(); |
52 // Returns the proxy info. | 52 // Returns the proxy info. |
53 void GetProxyInfo(CloudPrintProxyInfo* info); | 53 void GetProxyInfo(CloudPrintProxyInfo* info); |
54 // Return accessible printers. | 54 // Return accessible printers. |
55 void GetPrinters(std::vector<std::string>* printers); | 55 void GetPrinters(std::vector<std::string>* printers); |
56 | 56 |
57 // Launches a browser to see if the proxy policy has been set. | 57 // Launches a browser to see if the proxy policy has been set. |
58 void CheckCloudPrintProxyPolicy(); | 58 void CheckCloudPrintProxyPolicy(); |
59 | 59 |
60 const std::string& user_email() const { | 60 const std::string& user_email() const { |
61 return user_email_; | 61 return user_email_; |
62 } | 62 } |
63 | 63 |
64 // CloudPrintProxyFrontend implementation. Called on UI thread. | 64 // CloudPrintProxyFrontend implementation. Called on UI thread. |
65 virtual void OnAuthenticated(const std::string& robot_oauth_refresh_token, | 65 void OnAuthenticated(const std::string& robot_oauth_refresh_token, |
66 const std::string& robot_email, | 66 const std::string& robot_email, |
67 const std::string& user_email) override; | 67 const std::string& user_email) override; |
68 virtual void OnAuthenticationFailed() override; | 68 void OnAuthenticationFailed() override; |
69 virtual void OnPrintSystemUnavailable() override; | 69 void OnPrintSystemUnavailable() override; |
70 virtual void OnUnregisterPrinters( | 70 void OnUnregisterPrinters(const std::string& auth_token, |
71 const std::string& auth_token, | 71 const std::list<std::string>& printer_ids) override; |
72 const std::list<std::string>& printer_ids) override; | 72 void OnXmppPingUpdated(int ping_timeout) override; |
73 virtual void OnXmppPingUpdated(int ping_timeout) override; | |
74 | 73 |
75 // CloudPrintWipeout::Client implementation. | 74 // CloudPrintWipeout::Client implementation. |
76 virtual void OnUnregisterPrintersComplete() override; | 75 void OnUnregisterPrintersComplete() override; |
77 | 76 |
78 protected: | 77 protected: |
79 void ShutdownBackend(); | 78 void ShutdownBackend(); |
80 bool CreateBackend(); | 79 bool CreateBackend(); |
81 | 80 |
82 // Our asynchronous backend to communicate with sync components living on | 81 // Our asynchronous backend to communicate with sync components living on |
83 // other threads. | 82 // other threads. |
84 scoped_ptr<CloudPrintProxyBackend> backend_; | 83 scoped_ptr<CloudPrintProxyBackend> backend_; |
85 // This class does not own this. It is guaranteed to remain valid for the | 84 // This class does not own this. It is guaranteed to remain valid for the |
86 // lifetime of this class. | 85 // lifetime of this class. |
87 ServiceProcessPrefs* service_prefs_; | 86 ServiceProcessPrefs* service_prefs_; |
88 // This class does not own this. If non-NULL, It is guaranteed to remain | 87 // This class does not own this. If non-NULL, It is guaranteed to remain |
89 // valid for the lifetime of this class. | 88 // valid for the lifetime of this class. |
90 Client* client_; | 89 Client* client_; |
91 // The email address of the account used to authenticate to the Cloud Print | 90 // The email address of the account used to authenticate to the Cloud Print |
92 // service. | 91 // service. |
93 std::string user_email_; | 92 std::string user_email_; |
94 // This is set to true when the Cloud Print proxy is enabled and after | 93 // This is set to true when the Cloud Print proxy is enabled and after |
95 // successful authentication with the Cloud Print service. | 94 // successful authentication with the Cloud Print service. |
96 bool enabled_; | 95 bool enabled_; |
97 // This is a cleanup class for unregistering printers on proxy disable. | 96 // This is a cleanup class for unregistering printers on proxy disable. |
98 scoped_ptr<CloudPrintWipeout> wipeout_; | 97 scoped_ptr<CloudPrintWipeout> wipeout_; |
99 | 98 |
100 DISALLOW_COPY_AND_ASSIGN(CloudPrintProxy); | 99 DISALLOW_COPY_AND_ASSIGN(CloudPrintProxy); |
101 }; | 100 }; |
102 | 101 |
103 } // namespace cloud_print | 102 } // namespace cloud_print |
104 | 103 |
105 #endif // CHROME_SERVICE_CLOUD_PRINT_CLOUD_PRINT_PROXY_H_ | 104 #endif // CHROME_SERVICE_CLOUD_PRINT_CLOUD_PRINT_PROXY_H_ |
OLD | NEW |