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