Index: chrome/service/cloud_print/printer_info_cups.cc |
=================================================================== |
--- chrome/service/cloud_print/printer_info_cups.cc (revision 48213) |
+++ chrome/service/cloud_print/printer_info_cups.cc (working copy) |
@@ -32,30 +32,42 @@ |
cups_dest_t* destinations = NULL; |
int num_dests = cupsGetDests(&destinations); |
- for (int i = 0; i < num_dests; i++) { |
+ for (int printer_index = 0; printer_index < num_dests; printer_index++) { |
+ const cups_dest_t& printer = destinations[printer_index]; |
+ |
PrinterBasicInfo printer_info; |
- printer_info.printer_name = destinations[i].name; |
+ printer_info.printer_name = printer.name; |
const char* info = cupsGetOption(kCUPSPrinterInfoOpt, |
- destinations[i].num_options, destinations[i].options); |
+ printer.num_options, printer.options); |
if (info != NULL) |
printer_info.printer_description = info; |
const char* state = cupsGetOption(kCUPSPrinterStateOpt, |
- destinations[i].num_options, destinations[i].options); |
+ printer.num_options, printer.options); |
if (state != NULL) |
StringToInt(state, &printer_info.printer_status); |
+ // Store printer options. |
+ for (int opt_index = 0; opt_index < printer.num_options; opt_index++) { |
+ printer_info.options[printer.options[opt_index].name] = |
+ printer.options[opt_index].value; |
+ } |
+ |
printer_list->push_back(printer_info); |
} |
cupsFreeDests(num_dests, destinations); |
+ |
+ DLOG(INFO) << "Enumerated " << printer_list->size() << " printers."; |
} |
bool GetPrinterCapsAndDefaults(const std::string& printer_name, |
PrinterCapsAndDefaults* printer_info) { |
DCHECK(printer_info); |
+ DLOG(INFO) << "Getting Caps and Defaults for: " << printer_name; |
+ |
static Lock ppd_lock; |
// cupsGetPPD returns a filename stored in a static buffer in CUPS. |
// Protect this code with lock. |
@@ -126,6 +138,8 @@ |
PlatformJobId* job_id_ret) { |
DCHECK(job_id_ret); |
+ DLOG(INFO) << "Spooling print job for: " << printer_name; |
+ |
// We need to store options as char* string for the duration of the |
// cupsPrintFile call. We'll use map here to store options, since |
// Dictionary value from JSON parser returns wchat_t. |
@@ -159,6 +173,10 @@ |
PlatformJobId job_id, |
PrintJobDetails *job_details) { |
DCHECK(job_details); |
+ |
+ DLOG(INFO) << "Getting job details for: " << printer_name << |
+ " job_id: " << job_id; |
+ |
cups_job_t* jobs = NULL; |
int num_jobs = cupsGetJobs(&jobs, printer_name.c_str(), 1, -1); |
@@ -197,6 +215,8 @@ |
bool GetPrinterInfo(const std::string& printer_name, PrinterBasicInfo* info) { |
DCHECK(info); |
+ DLOG(INFO) << "Getting printer info for: " << printer_name; |
+ |
// This is not very efficient way to get specific printer info. CUPS 1.4 |
// supports cupsGetNamedDest() function. However, CUPS 1.4 is not available |
// everywhere (for example, it supported from Mac OS 10.6 only). |