Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(53)

Side by Side Diff: chrome/service/cloud_print/print_system.h

Issue 3051006: Used the service utility process host to render PDFs in a sandbox for the Win... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: CUPS tweaks Created 10 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | chrome/service/cloud_print/print_system_cups.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CHROME_SERVICE_CLOUD_PRINT_PRINT_SYSTEM_H_ 5 #ifndef CHROME_SERVICE_CLOUD_PRINT_PRINT_SYSTEM_H_
6 #define CHROME_SERVICE_CLOUD_PRINT_PRINT_SYSTEM_H_ 6 #define CHROME_SERVICE_CLOUD_PRINT_PRINT_SYSTEM_H_
7 7
8 #include <map> 8 #include <map>
9 #include <string> 9 #include <string>
10 #include <vector> 10 #include <vector>
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
74 74
75 // PrintSystem class will provide interface for different printing systems 75 // PrintSystem class will provide interface for different printing systems
76 // (Windows, CUPS) to implement. User will call CreateInstance() to 76 // (Windows, CUPS) to implement. User will call CreateInstance() to
77 // obtain available printing system. 77 // obtain available printing system.
78 // Please note, that PrintSystem is not platform specific, but rather 78 // Please note, that PrintSystem is not platform specific, but rather
79 // print system specific. For example, CUPS is available on both Linux and Mac, 79 // print system specific. For example, CUPS is available on both Linux and Mac,
80 // but not avaialble on ChromeOS, etc. This design allows us to add more 80 // but not avaialble on ChromeOS, etc. This design allows us to add more
81 // functionality on some platforms, while reusing core (CUPS) functions. 81 // functionality on some platforms, while reusing core (CUPS) functions.
82 class PrintSystem : public base::RefCountedThreadSafe<PrintSystem> { 82 class PrintSystem : public base::RefCountedThreadSafe<PrintSystem> {
83 public: 83 public:
84 virtual ~PrintSystem() {}
85
86 // Enumerates the list of installed local and network printers.
87 virtual void EnumeratePrinters(PrinterList* printer_list) = 0;
88
89 // Gets the capabilities and defaults for a specific printer.
90 virtual bool GetPrinterCapsAndDefaults(const std::string& printer_name,
91 PrinterCapsAndDefaults* printer_info) = 0;
92
93 // Returns true if ticket is valid.
94 virtual bool ValidatePrintTicket(const std::string& printer_name,
95 const std::string& print_ticket_data) = 0;
96
97 // Send job to the printer.
98 virtual bool SpoolPrintJob(const std::string& print_ticket,
99 const FilePath& print_data_file_path,
100 const std::string& print_data_mime_type,
101 const std::string& printer_name,
102 const std::string& job_title,
103 PlatformJobId* job_id_ret) = 0;
104
105 // Get details for already spooled job.
106 virtual bool GetJobDetails(const std::string& printer_name,
107 PlatformJobId job_id,
108 PrintJobDetails *job_details) = 0;
109
110 // Returns true if printer_name points to a valid printer.
111 virtual bool IsValidPrinter(const std::string& printer_name) = 0;
112
113 class PrintServerWatcher 84 class PrintServerWatcher
114 : public base::RefCountedThreadSafe<PrintServerWatcher> { 85 : public base::RefCountedThreadSafe<PrintServerWatcher> {
115 public: 86 public:
116 // Callback interface for new printer notifications. 87 // Callback interface for new printer notifications.
117 class Delegate { 88 class Delegate {
118 public: 89 public:
119 virtual void OnPrinterAdded() = 0; 90 virtual void OnPrinterAdded() = 0;
120 // TODO(gene): Do we need OnPrinterDeleted notification here? 91 // TODO(gene): Do we need OnPrinterDeleted notification here?
121 }; 92 };
122 93
(...skipping 11 matching lines...) Expand all
134 virtual void OnPrinterChanged() = 0; 105 virtual void OnPrinterChanged() = 0;
135 virtual void OnJobChanged() = 0; 106 virtual void OnJobChanged() = 0;
136 }; 107 };
137 108
138 virtual ~PrinterWatcher() {} 109 virtual ~PrinterWatcher() {}
139 virtual bool StartWatching(PrinterWatcher::Delegate* delegate) = 0; 110 virtual bool StartWatching(PrinterWatcher::Delegate* delegate) = 0;
140 virtual bool StopWatching() = 0; 111 virtual bool StopWatching() = 0;
141 virtual bool GetCurrentPrinterInfo(PrinterBasicInfo* printer_info) = 0; 112 virtual bool GetCurrentPrinterInfo(PrinterBasicInfo* printer_info) = 0;
142 }; 113 };
143 114
115 class JobSpooler : public base::RefCountedThreadSafe<JobSpooler> {
116 public:
117 // Callback interface for JobSpooler notifications.
118 class Delegate {
119 public:
120 virtual ~Delegate() { }
121 virtual void OnJobSpoolSucceeded(const PlatformJobId& job_id) = 0;
122 virtual void OnJobSpoolFailed() = 0;
123 };
124
125 virtual ~JobSpooler() {}
126 // Spool job to the printer asynchronously. Caller will be notified via
127 // |delegate|. Note that only one print job can be in progress at any given
128 // time. Subsequent calls to Spool (before the Delegate::OnJobSpoolSucceeded
129 // or Delegate::OnJobSpoolFailed methods are called) can fail.
130 virtual bool Spool(const std::string& print_ticket,
131 const FilePath& print_data_file_path,
132 const std::string& print_data_mime_type,
133 const std::string& printer_name,
134 const std::string& job_title,
135 JobSpooler::Delegate* delegate) = 0;
136 };
137
138 virtual ~PrintSystem() {}
139
140 // Enumerates the list of installed local and network printers.
141 virtual void EnumeratePrinters(PrinterList* printer_list) = 0;
142
143 // Gets the capabilities and defaults for a specific printer.
144 virtual bool GetPrinterCapsAndDefaults(const std::string& printer_name,
145 PrinterCapsAndDefaults* printer_info) = 0;
146
147 // Returns true if ticket is valid.
148 virtual bool ValidatePrintTicket(const std::string& printer_name,
149 const std::string& print_ticket_data) = 0;
150
151 // Get details for already spooled job.
152 virtual bool GetJobDetails(const std::string& printer_name,
153 PlatformJobId job_id,
154 PrintJobDetails *job_details) = 0;
155
156 // Returns true if printer_name points to a valid printer.
157 virtual bool IsValidPrinter(const std::string& printer_name) = 0;
158
144 // Factory methods to create corresponding watcher. Callee is responsible 159 // Factory methods to create corresponding watcher. Callee is responsible
145 // for deleting objects. Return NULL if failed. 160 // for deleting objects. Return NULL if failed.
146 virtual PrintServerWatcher* CreatePrintServerWatcher() = 0; 161 virtual PrintServerWatcher* CreatePrintServerWatcher() = 0;
147 virtual PrinterWatcher* CreatePrinterWatcher( 162 virtual PrinterWatcher* CreatePrinterWatcher(
148 const std::string& printer_name) = 0; 163 const std::string& printer_name) = 0;
164 virtual JobSpooler* CreateJobSpooler() = 0;
149 165
150 // Generate unique for proxy. 166 // Generate unique for proxy.
151 static std::string GenerateProxyId(); 167 static std::string GenerateProxyId();
152 168
153 // Call this function to obtain printing system for specified print server. 169 // Call this function to obtain printing system for specified print server.
154 // If print settings are NULL, default settings will be used. 170 // If print settings are NULL, default settings will be used.
155 // Return NULL if no print system available. 171 // Return NULL if no print system available.
156 static scoped_refptr<PrintSystem> CreateInstance( 172 static scoped_refptr<PrintSystem> CreateInstance(
157 const DictionaryValue* print_system_settings); 173 const DictionaryValue* print_system_settings);
158 }; 174 };
159 175
160 176
161 // This typedef is to workaround the issue with certain versions of 177 // This typedef is to workaround the issue with certain versions of
162 // Visual Studio where it gets confused between multiple Delegate 178 // Visual Studio where it gets confused between multiple Delegate
163 // classes and gives a C2500 error. (I saw this error on the try bots - 179 // classes and gives a C2500 error. (I saw this error on the try bots -
164 // the workaround was not needed for my machine). 180 // the workaround was not needed for my machine).
165 typedef PrintSystem::PrintServerWatcher::Delegate PrintServerWatcherDelegate; 181 typedef PrintSystem::PrintServerWatcher::Delegate PrintServerWatcherDelegate;
166 typedef PrintSystem::PrinterWatcher::Delegate PrinterWatcherDelegate; 182 typedef PrintSystem::PrinterWatcher::Delegate PrinterWatcherDelegate;
183 typedef PrintSystem::JobSpooler::Delegate JobSpoolerDelegate;
167 184
168 } // namespace cloud_print 185 } // namespace cloud_print
169 186
170 #endif // CHROME_SERVICE_CLOUD_PRINT_PRINT_SYSTEM_H_ 187 #endif // CHROME_SERVICE_CLOUD_PRINT_PRINT_SYSTEM_H_
OLDNEW
« no previous file with comments | « no previous file | chrome/service/cloud_print/print_system_cups.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698