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

Side by Side Diff: chrome/service/cloud_print/print_system_cups.cc

Issue 6523040: Added support to the Windows cloud print proxy to print XPS documents directl... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Fixed cleanup code Created 9 years, 10 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
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 #include "chrome/service/cloud_print/print_system.h" 5 #include "chrome/service/cloud_print/print_system.h"
6 6
7 #include <cups/cups.h> 7 #include <cups/cups.h>
8 #include <dlfcn.h> 8 #include <dlfcn.h>
9 #include <errno.h> 9 #include <errno.h>
10 #include <pthread.h> 10 #include <pthread.h>
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
88 const std::string& print_ticket_data); 88 const std::string& print_ticket_data);
89 89
90 virtual bool GetJobDetails(const std::string& printer_name, 90 virtual bool GetJobDetails(const std::string& printer_name,
91 PlatformJobId job_id, 91 PlatformJobId job_id,
92 PrintJobDetails *job_details); 92 PrintJobDetails *job_details);
93 93
94 virtual PrintSystem::PrintServerWatcher* CreatePrintServerWatcher(); 94 virtual PrintSystem::PrintServerWatcher* CreatePrintServerWatcher();
95 virtual PrintSystem::PrinterWatcher* CreatePrinterWatcher( 95 virtual PrintSystem::PrinterWatcher* CreatePrinterWatcher(
96 const std::string& printer_name); 96 const std::string& printer_name);
97 virtual PrintSystem::JobSpooler* CreateJobSpooler(); 97 virtual PrintSystem::JobSpooler* CreateJobSpooler();
98 virtual std::string GetSupportedMimeTypes();
98 99
99 // Helper functions. 100 // Helper functions.
100 PlatformJobId SpoolPrintJob(const std::string& print_ticket, 101 PlatformJobId SpoolPrintJob(const std::string& print_ticket,
101 const FilePath& print_data_file_path, 102 const FilePath& print_data_file_path,
102 const std::string& print_data_mime_type, 103 const std::string& print_data_mime_type,
103 const std::string& printer_name, 104 const std::string& printer_name,
104 const std::string& job_title, 105 const std::string& job_title,
105 const std::vector<std::string>& tags, 106 const std::vector<std::string>& tags,
106 bool* dry_run); 107 bool* dry_run);
107 bool GetPrinterInfo(const std::string& printer_name, 108 bool GetPrinterInfo(const std::string& printer_name,
(...skipping 529 matching lines...) Expand 10 before | Expand all | Expand 10 after
637 DCHECK(initialized_); 638 DCHECK(initialized_);
638 DCHECK(!printer_name.empty()); 639 DCHECK(!printer_name.empty());
639 return new PrinterWatcherCUPS(this, printer_name); 640 return new PrinterWatcherCUPS(this, printer_name);
640 } 641 }
641 642
642 PrintSystem::JobSpooler* PrintSystemCUPS::CreateJobSpooler() { 643 PrintSystem::JobSpooler* PrintSystemCUPS::CreateJobSpooler() {
643 DCHECK(initialized_); 644 DCHECK(initialized_);
644 return new JobSpoolerCUPS(this); 645 return new JobSpoolerCUPS(this);
645 } 646 }
646 647
648 std::string PrintSystemCUPS::GetSupportedMimeTypes() {
649 // Since we hand off the document to the CUPS server directly, list some types
650 // that we know CUPS supports (http://www.cups.org/articles.php?L205+TFAQ+Q)
651 // TODO(sanjeevr): Determine this dynamically.
Scott Byer 2011/02/17 00:31:02 A bug + link for the TODO?
sanjeevr 2011/02/17 00:53:52 Done.
652 return
653 "application/pdf,application/postscript,image/jpeg,image/png,image/gif";
654 }
655
647 std::string PrintSystem::GenerateProxyId() { 656 std::string PrintSystem::GenerateProxyId() {
648 // TODO(gene): This code should generate a unique id for proxy. ID should be 657 // TODO(gene): This code should generate a unique id for proxy. ID should be
649 // unique for this user. Rand may return the same number. We'll need to change 658 // unique for this user. Rand may return the same number. We'll need to change
650 // this in the future. 659 // this in the future.
651 std::string id("CP_PROXY_"); 660 std::string id("CP_PROXY_");
652 id += base::Uint64ToString(base::RandUint64()); 661 id += base::Uint64ToString(base::RandUint64());
653 return id; 662 return id;
654 } 663 }
655 664
656 scoped_refptr<PrintSystem> PrintSystem::CreateInstance( 665 scoped_refptr<PrintSystem> PrintSystem::CreateInstance(
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after
780 void PrintSystemCUPS::RunCapsCallback( 789 void PrintSystemCUPS::RunCapsCallback(
781 PrinterCapsAndDefaultsCallback* callback, 790 PrinterCapsAndDefaultsCallback* callback,
782 bool succeeded, 791 bool succeeded,
783 const std::string& printer_name, 792 const std::string& printer_name,
784 const printing::PrinterCapsAndDefaults& printer_info) { 793 const printing::PrinterCapsAndDefaults& printer_info) {
785 callback->Run(succeeded, printer_name, printer_info); 794 callback->Run(succeeded, printer_name, printer_info);
786 delete callback; 795 delete callback;
787 } 796 }
788 797
789 } // namespace cloud_print 798 } // namespace cloud_print
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698