10e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org// Copyright (c) 2012 The Chromium Authors. All rights reserved. 20e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org// Use of this source code is governed by a BSD-style license that can be 30e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org// found in the LICENSE file. 40e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org 50e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org#ifndef CHROME_BROWSER_EXTENSIONS_API_CLOUD_PRINT_PRIVATE_CLOUD_PRINT_PRIVATE_API_H_ 60e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org#define CHROME_BROWSER_EXTENSIONS_API_CLOUD_PRINT_PRIVATE_CLOUD_PRINT_PRIVATE_API_H_ 70e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org 80e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org#include <string> 90e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org#include <vector> 100e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org 110e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org#include "chrome/browser/extensions/chrome_extension_function.h" 120e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org 130e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.orgnamespace extensions { 140e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org 150e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.orgnamespace api { 160e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.orgnamespace cloud_print_private { 170e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org 180e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.orgstruct UserSettings; 190e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org 200e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org} // namespace cloud_print_private 210e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org} // namespace api 220e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org 230e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org 240e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org// For use only in tests. 250e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.orgclass CloudPrintTestsDelegate { 260e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org public: 270e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org CloudPrintTestsDelegate(); 28cf81adffe15fa8ea0f333432e41f6d504148f18abuildbot@webrtc.org virtual ~CloudPrintTestsDelegate(); 290e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org 300e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org virtual void SetupConnector( 31cf81adffe15fa8ea0f333432e41f6d504148f18abuildbot@webrtc.org const std::string& user_email, 320e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org const std::string& robot_email, 330e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org const std::string& credentials, 340e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org const api::cloud_print_private::UserSettings& user_settings) = 0; 350e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org 360e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org virtual std::string GetHostName() = 0; 370e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org 380e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org virtual std::string GetClientId() = 0; 390e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org 400e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org virtual std::vector<std::string> GetPrinters() = 0; 410e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org 420e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org static CloudPrintTestsDelegate* instance(); 430e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org 440e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org private: 450e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org // Points to single instance of this class during testing. 460e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org static CloudPrintTestsDelegate* instance_; 470e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org}; 480e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org 490e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.orgclass CloudPrintPrivateSetupConnectorFunction 500e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org : public ChromeAsyncExtensionFunction { 510e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org public: 520e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org DECLARE_EXTENSION_FUNCTION("cloudPrintPrivate.setupConnector", 530e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org CLOUDPRINTPRIVATE_SETUPCONNECTOR) 540e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org 550e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org CloudPrintPrivateSetupConnectorFunction(); 560e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org 570e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org protected: 580e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org virtual ~CloudPrintPrivateSetupConnectorFunction(); 590e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org 600e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org // ExtensionFunction: 610e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org virtual bool RunAsync() OVERRIDE; 620e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org}; 630e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org 640e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.orgclass CloudPrintPrivateGetHostNameFunction 650e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org : public ChromeAsyncExtensionFunction { 660e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org public: 670e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org DECLARE_EXTENSION_FUNCTION("cloudPrintPrivate.getHostName", 680e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org CLOUDPRINTPRIVATE_GETHOSTNAME) 690e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org 700e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org CloudPrintPrivateGetHostNameFunction(); 710e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org 720e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org protected: 730e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org virtual ~CloudPrintPrivateGetHostNameFunction(); 740e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org 750e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org // ExtensionFunction: 760e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org virtual bool RunAsync() OVERRIDE; 770e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org}; 780e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org 790e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.orgclass CloudPrintPrivateGetPrintersFunction 800e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org : public ChromeAsyncExtensionFunction { 810e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org public: 820e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org DECLARE_EXTENSION_FUNCTION("cloudPrintPrivate.getPrinters", 830e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org CLOUDPRINTPRIVATE_GETPRINTERS) 840e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org 850e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org CloudPrintPrivateGetPrintersFunction(); 860e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org 870e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org protected: 880e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org virtual ~CloudPrintPrivateGetPrintersFunction(); 890e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org 900e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org private: 910e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org void SendResults(const std::vector<std::string>& printers); 920e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org 930e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org // ExtensionFunction: 940e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org virtual bool RunAsync() OVERRIDE; 950e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org}; 960e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org 970e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.orgclass CloudPrintPrivateGetClientIdFunction 980e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org : public ChromeAsyncExtensionFunction { 990e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org public: 1000e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org DECLARE_EXTENSION_FUNCTION("cloudPrintPrivate.getClientId", 1010e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org CLOUDPRINTPRIVATE_GETCLIENTID); 1020e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org 1030e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org CloudPrintPrivateGetClientIdFunction(); 1040e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org 1050e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org protected: 1060e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org virtual ~CloudPrintPrivateGetClientIdFunction(); 1070e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org 1080e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org // ExtensionFunction: 1090e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org virtual bool RunAsync() OVERRIDE; 1100e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org}; 1110e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org 1120e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org} // namespace extensions 1130e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org 1140e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org#endif // CHROME_BROWSER_EXTENSIONS_API_CLOUD_PRINT_PRIVATE_CLOUD_PRINT_PRIVATE_API_H_ 1150e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org