13551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved. 23551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 33551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)// found in the LICENSE file. 43551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 53551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#ifndef CLOUD_PRINT_GCP20_PROTOTYPE_PRINTER_STATE_H_ 63551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define CLOUD_PRINT_GCP20_PROTOTYPE_PRINTER_STATE_H_ 73551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 83551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#include <string> 93551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 10f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "base/memory/linked_ptr.h" 113551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#include "base/time/time.h" 123551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#include "cloud_print/gcp20/prototype/local_settings.h" 133551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 143551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)namespace base { 15f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)class DictionaryValue; 163551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)class FilePath; 173551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)} // namespace base 183551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 193551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)struct PrinterState { 203551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) enum RegistrationState { 213551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) UNREGISTERED, 223551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) REGISTRATION_STARTED, // |action=start| was called, 233551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) // request to CloudPrint was sent. 243551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) REGISTRATION_CLAIM_TOKEN_READY, // The same as previous, but request 253551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) // reply is already received. 263551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) REGISTRATION_COMPLETING, // |action=complete| was called, 273551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) // |complete| request was sent. 283551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) REGISTRATION_ERROR, // Is set when server error was occurred. 293551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) REGISTERED, 303551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) }; 313551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 323551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) enum ConfirmationState { 333551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) CONFIRMATION_PENDING, 343551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) CONFIRMATION_CONFIRMED, 353551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) CONFIRMATION_DISCARDED, 363551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) CONFIRMATION_TIMEOUT, 373551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) }; 383551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 393551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) PrinterState(); 403551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) ~PrinterState(); 413551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 423551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) // Registration process info 433551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) std::string user; 443551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) std::string registration_token; 453551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) std::string complete_invite_url; 463551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) RegistrationState registration_state; 473551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) ConfirmationState confirmation_state; 483551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 493551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) // Printer workflow info 503551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) std::string refresh_token; 513551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) std::string device_id; 523551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) std::string xmpp_jid; 533551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) LocalSettings local_settings; 54f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) linked_ptr<base::DictionaryValue> cdd; 553551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 563551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) // Last valid |access_token|. 573551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) std::string access_token; 583551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) base::Time access_token_update; 593551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 603551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) // Contains error if |REGISTRATION_ERROR| is set. 613551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) std::string error_description; 623551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)}; 633551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 643551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)namespace printer_state { 653551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 663551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)// 673551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)bool SaveToFile(const base::FilePath& path, const PrinterState& state); 683551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 693551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)// 703551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)bool LoadFromFile(const base::FilePath& path, PrinterState* state); 713551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 723551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)} // namespace printer_state 733551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 743551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#endif // CLOUD_PRINT_GCP20_PROTOTYPE_PRINTER_STATE_H_ 753551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 76