Index: chrome/service/cloud_print/print_system.h |
=================================================================== |
--- chrome/service/cloud_print/print_system.h (revision 53070) |
+++ chrome/service/cloud_print/print_system.h (working copy) |
@@ -81,35 +81,6 @@ |
// functionality on some platforms, while reusing core (CUPS) functions. |
class PrintSystem : public base::RefCountedThreadSafe<PrintSystem> { |
public: |
- virtual ~PrintSystem() {} |
- |
- // Enumerates the list of installed local and network printers. |
- virtual void EnumeratePrinters(PrinterList* printer_list) = 0; |
- |
- // Gets the capabilities and defaults for a specific printer. |
- virtual bool GetPrinterCapsAndDefaults(const std::string& printer_name, |
- PrinterCapsAndDefaults* printer_info) = 0; |
- |
- // Returns true if ticket is valid. |
- virtual bool ValidatePrintTicket(const std::string& printer_name, |
- const std::string& print_ticket_data) = 0; |
- |
- // Send job to the printer. |
- virtual 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) = 0; |
- |
- // Get details for already spooled job. |
- virtual bool GetJobDetails(const std::string& printer_name, |
- PlatformJobId job_id, |
- PrintJobDetails *job_details) = 0; |
- |
- // Returns true if printer_name points to a valid printer. |
- virtual bool IsValidPrinter(const std::string& printer_name) = 0; |
- |
class PrintServerWatcher |
: public base::RefCountedThreadSafe<PrintServerWatcher> { |
public: |
@@ -141,11 +112,56 @@ |
virtual bool GetCurrentPrinterInfo(PrinterBasicInfo* printer_info) = 0; |
}; |
+ class JobSpooler : public base::RefCountedThreadSafe<JobSpooler> { |
+ public: |
+ // Callback interface for JobSpooler notifications. |
+ class Delegate { |
+ public: |
+ virtual ~Delegate() { } |
+ virtual void OnJobSpoolSucceeded(const PlatformJobId& job_id) = 0; |
+ virtual void OnJobSpoolFailed() = 0; |
+ }; |
+ |
+ virtual ~JobSpooler() {} |
+ // Spool job to the printer asynchronously. Caller will be notified via |
+ // |delegate|. Note that only one print job can be in progress at any given |
+ // time. Subsequent calls to Spool (before the Delegate::OnJobSpoolSucceeded |
+ // or Delegate::OnJobSpoolFailed methods are called) can fail. |
+ virtual bool Spool(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, |
+ JobSpooler::Delegate* delegate) = 0; |
+ }; |
+ |
+ virtual ~PrintSystem() {} |
+ |
+ // Enumerates the list of installed local and network printers. |
+ virtual void EnumeratePrinters(PrinterList* printer_list) = 0; |
+ |
+ // Gets the capabilities and defaults for a specific printer. |
+ virtual bool GetPrinterCapsAndDefaults(const std::string& printer_name, |
+ PrinterCapsAndDefaults* printer_info) = 0; |
+ |
+ // Returns true if ticket is valid. |
+ virtual bool ValidatePrintTicket(const std::string& printer_name, |
+ const std::string& print_ticket_data) = 0; |
+ |
+ // Get details for already spooled job. |
+ virtual bool GetJobDetails(const std::string& printer_name, |
+ PlatformJobId job_id, |
+ PrintJobDetails *job_details) = 0; |
+ |
+ // Returns true if printer_name points to a valid printer. |
+ virtual bool IsValidPrinter(const std::string& printer_name) = 0; |
+ |
// Factory methods to create corresponding watcher. Callee is responsible |
// for deleting objects. Return NULL if failed. |
virtual PrintServerWatcher* CreatePrintServerWatcher() = 0; |
virtual PrinterWatcher* CreatePrinterWatcher( |
const std::string& printer_name) = 0; |
+ virtual JobSpooler* CreateJobSpooler() = 0; |
// Generate unique for proxy. |
static std::string GenerateProxyId(); |
@@ -164,6 +180,7 @@ |
// the workaround was not needed for my machine). |
typedef PrintSystem::PrintServerWatcher::Delegate PrintServerWatcherDelegate; |
typedef PrintSystem::PrinterWatcher::Delegate PrinterWatcherDelegate; |
+typedef PrintSystem::JobSpooler::Delegate JobSpoolerDelegate; |
} // namespace cloud_print |