• 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 CLOUD_PRINT_SERVICE_SERVICE_STATE_H_
6 #define CLOUD_PRINT_SERVICE_SERVICE_STATE_H_
7 
8 #include <string>
9 
10 #include "base/memory/scoped_ptr.h"
11 #include "base/values.h"
12 
13 // Manages Cloud Print part of Service State.
14 class ServiceState {
15  public:
16   ServiceState();
17   virtual ~ServiceState();
18 
19   void Reset();
20 
21   // Initialize object from json.
22   bool FromString(const std::string& json);
23 
24   // Returns object state as json.
25   std::string ToString();
26 
27   // Setups object using data provided by delegate.
28   bool Configure(const std::string& email,
29                  const std::string& password,
30                  const std::string& proxy_id);
31 
32   // Returns authentication token provided by Google server.
33   virtual std::string LoginToGoogle(const std::string& service,
34                                     const std::string& email,
35                                     const std::string& password);
36 
37   // Returns true of object state is valid.
38   bool IsValid() const;
39 
email()40   std::string email() const {
41     return email_;
42   };
43 
proxy_id()44   std::string proxy_id() const {
45     return proxy_id_;
46   };
47 
robot_email()48   std::string robot_email() const {
49     return robot_email_;
50   };
51 
robot_token()52   std::string robot_token() const {
53     return robot_token_;
54   };
55 
auth_token()56   std::string auth_token() const {
57     return auth_token_;
58   };
59 
xmpp_auth_token()60   std::string xmpp_auth_token() const {
61     return xmpp_auth_token_;
62   };
63 
set_email(const std::string & value)64   void set_email(const std::string& value) {
65     email_ = value;
66   };
67 
set_proxy_id(const std::string & value)68   void set_proxy_id(const std::string& value) {
69     proxy_id_ = value;
70   };
71 
set_robot_email(const std::string & value)72   void set_robot_email(const std::string& value) {
73     robot_email_ = value;
74   };
75 
set_robot_token(const std::string & value)76   void set_robot_token(const std::string& value) {
77     robot_token_ = value;
78   };
79 
set_auth_token(const std::string & value)80   void set_auth_token(const std::string& value) {
81     auth_token_ = value;
82   };
83 
set_xmpp_auth_token(const std::string & value)84   void set_xmpp_auth_token(const std::string& value) {
85     xmpp_auth_token_ = value;
86   };
87 
88  private:
89   std::string email_;
90   std::string proxy_id_;
91   std::string robot_email_;
92   std::string robot_token_;
93   std::string auth_token_;
94   std::string xmpp_auth_token_;
95 
96   DISALLOW_COPY_AND_ASSIGN(ServiceState);
97 };
98 
99 #endif  // CLOUD_PRINT_SERVICE_SERVICE_STATE_H_
100 
101