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_BROWSER_EXTENSIONS_API_CLOUD_PRINT_PRIVATE_CLOUD_PRINT_PRIVATE_API_H_ 6#define CHROME_BROWSER_EXTENSIONS_API_CLOUD_PRINT_PRIVATE_CLOUD_PRINT_PRIVATE_API_H_ 7 8#include <string> 9#include <vector> 10 11#include "chrome/browser/extensions/chrome_extension_function.h" 12 13namespace extensions { 14 15namespace api { 16namespace cloud_print_private { 17 18struct UserSettings; 19 20} // namespace cloud_print_private 21} // namespace api 22 23 24// For use only in tests. 25class CloudPrintTestsDelegate { 26 public: 27 CloudPrintTestsDelegate(); 28 virtual ~CloudPrintTestsDelegate(); 29 30 virtual void SetupConnector( 31 const std::string& user_email, 32 const std::string& robot_email, 33 const std::string& credentials, 34 const api::cloud_print_private::UserSettings& user_settings) = 0; 35 36 virtual std::string GetHostName() = 0; 37 38 virtual std::string GetClientId() = 0; 39 40 virtual std::vector<std::string> GetPrinters() = 0; 41 42 static CloudPrintTestsDelegate* instance(); 43 44 private: 45 // Points to single instance of this class during testing. 46 static CloudPrintTestsDelegate* instance_; 47}; 48 49class CloudPrintPrivateSetupConnectorFunction 50 : public ChromeAsyncExtensionFunction { 51 public: 52 DECLARE_EXTENSION_FUNCTION("cloudPrintPrivate.setupConnector", 53 CLOUDPRINTPRIVATE_SETUPCONNECTOR) 54 55 CloudPrintPrivateSetupConnectorFunction(); 56 57 protected: 58 virtual ~CloudPrintPrivateSetupConnectorFunction(); 59 60 // ExtensionFunction: 61 virtual bool RunAsync() OVERRIDE; 62}; 63 64class CloudPrintPrivateGetHostNameFunction 65 : public ChromeAsyncExtensionFunction { 66 public: 67 DECLARE_EXTENSION_FUNCTION("cloudPrintPrivate.getHostName", 68 CLOUDPRINTPRIVATE_GETHOSTNAME) 69 70 CloudPrintPrivateGetHostNameFunction(); 71 72 protected: 73 virtual ~CloudPrintPrivateGetHostNameFunction(); 74 75 // ExtensionFunction: 76 virtual bool RunAsync() OVERRIDE; 77}; 78 79class CloudPrintPrivateGetPrintersFunction 80 : public ChromeAsyncExtensionFunction { 81 public: 82 DECLARE_EXTENSION_FUNCTION("cloudPrintPrivate.getPrinters", 83 CLOUDPRINTPRIVATE_GETPRINTERS) 84 85 CloudPrintPrivateGetPrintersFunction(); 86 87 protected: 88 virtual ~CloudPrintPrivateGetPrintersFunction(); 89 90 private: 91 void SendResults(const std::vector<std::string>& printers); 92 93 // ExtensionFunction: 94 virtual bool RunAsync() OVERRIDE; 95}; 96 97class CloudPrintPrivateGetClientIdFunction 98 : public ChromeAsyncExtensionFunction { 99 public: 100 DECLARE_EXTENSION_FUNCTION("cloudPrintPrivate.getClientId", 101 CLOUDPRINTPRIVATE_GETCLIENTID); 102 103 CloudPrintPrivateGetClientIdFunction(); 104 105 protected: 106 virtual ~CloudPrintPrivateGetClientIdFunction(); 107 108 // ExtensionFunction: 109 virtual bool RunAsync() OVERRIDE; 110}; 111 112} // namespace extensions 113 114#endif // CHROME_BROWSER_EXTENSIONS_API_CLOUD_PRINT_PRIVATE_CLOUD_PRINT_PRIVATE_API_H_ 115