Index: chrome/service/cloud_print/printer_info.h |
=================================================================== |
--- chrome/service/cloud_print/printer_info.h (revision 48976) |
+++ chrome/service/cloud_print/printer_info.h (working copy) |
@@ -1,127 +0,0 @@ |
-// Copyright (c) 2010 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#ifndef CHROME_SERVICE_CLOUD_PRINT_PRINTER_INFO_H_ |
-#define CHROME_SERVICE_CLOUD_PRINT_PRINTER_INFO_H_ |
- |
-#include <map> |
-#include <string> |
-#include <vector> |
- |
-#include "base/file_path.h" |
- |
-// This is the interface for platform-specific code for cloud print |
-namespace cloud_print { |
- |
-typedef int PlatformJobId; |
- |
-struct PrinterBasicInfo { |
- std::string printer_name; |
- std::string printer_description; |
- int printer_status; |
- std::map<std::string, std::string> options; |
- PrinterBasicInfo() : printer_status(0) { |
- } |
-}; |
- |
-typedef std::vector<PrinterBasicInfo> PrinterList; |
- |
-struct PrinterCapsAndDefaults { |
- std::string printer_capabilities; |
- std::string caps_mime_type; |
- std::string printer_defaults; |
- std::string defaults_mime_type; |
-}; |
- |
-enum PrintJobStatus { |
- PRINT_JOB_STATUS_INVALID, |
- PRINT_JOB_STATUS_IN_PROGRESS, |
- PRINT_JOB_STATUS_ERROR, |
- PRINT_JOB_STATUS_COMPLETED |
-}; |
- |
-struct PrintJobDetails { |
- PrintJobStatus status; |
- int platform_status_flags; |
- std::string status_message; |
- int total_pages; |
- int pages_printed; |
- PrintJobDetails() : status(PRINT_JOB_STATUS_INVALID), |
- platform_status_flags(0), total_pages(0), |
- pages_printed(0) { |
- } |
- void Clear() { |
- status = PRINT_JOB_STATUS_INVALID; |
- platform_status_flags = 0; |
- status_message.clear(); |
- total_pages = 0; |
- pages_printed = 0; |
- } |
- bool operator ==(const PrintJobDetails& other) const { |
- return (status == other.status) && |
- (platform_status_flags == other.platform_status_flags) && |
- (status_message == other.status_message) && |
- (total_pages == other.total_pages) && |
- (pages_printed == other.pages_printed); |
- } |
- bool operator !=(const PrintJobDetails& other) const { |
- return !(*this == other); |
- } |
-}; |
- |
-// Enumerates the list of installed local and network printers. |
-void EnumeratePrinters(PrinterList* printer_list); |
-// Gets the capabilities and defaults for a specific printer. |
-bool GetPrinterCapsAndDefaults(const std::string& printer_name, |
- PrinterCapsAndDefaults* printer_info); |
-bool ValidatePrintTicket(const std::string& printer_name, |
- const std::string& print_ticket_data); |
-std::string GenerateProxyId(); |
-bool SpoolPrintJob(const std::string& print_ticket, |
- const FilePath& print_data_file_path, |
- const std::string& print_data_mime_type, |
- const std::string& printer_name, |
- const std::string& job_title, |
- PlatformJobId* job_id_ret); |
- |
-bool GetJobDetails(const std::string& printer_name, |
- PlatformJobId job_id, |
- PrintJobDetails *job_details); |
-bool IsValidPrinter(const std::string& printer_name); |
- |
-// A class that watches changes to a printer or a print server. |
-// The set of notifications are very coarse-grained (even though the Windows |
-// API allows for listening to fine-grained details about a printer, this class |
-// does not support that level of fine-grained control. |
-class PrinterChangeNotifier { |
- public: |
- class Delegate { |
- public: |
- virtual void OnPrinterAdded() = 0; |
- virtual void OnPrinterDeleted() = 0; |
- virtual void OnPrinterChanged() = 0; |
- virtual void OnJobChanged() = 0; |
- }; |
- PrinterChangeNotifier(); |
- ~PrinterChangeNotifier(); |
- bool StartWatching(const std::string& printer_name, Delegate* delegate); |
- bool StopWatching(); |
- bool GetCurrentPrinterInfo(PrinterBasicInfo* printer_info); |
- private: |
- // Internal state maintained by the PrinterChangeNotifier class. |
- class NotificationState; |
- NotificationState* state_; |
- DISALLOW_COPY_AND_ASSIGN(PrinterChangeNotifier); |
-}; |
- |
-// This typedef is to workaround the issue with certain versions of |
-// Visual Studio where it gets confused between multiple Delegate |
-// classes and gives a C2500 error. (I saw this error on the try bots - |
-// the workaround was not needed for my machine). |
-typedef PrinterChangeNotifier::Delegate PrinterChangeNotifierDelegate; |
- |
-} // namespace cloud_print |
- |
-#endif // CHROME_SERVICE_CLOUD_PRINT_PRINTER_INFO_H_ |
- |