Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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_BROWSER_LOCAL_DISCOVERY_PRIVET_HTTP_H_ | 5 #ifndef CHROME_BROWSER_LOCAL_DISCOVERY_PRIVET_HTTP_H_ |
| 6 #define CHROME_BROWSER_LOCAL_DISCOVERY_PRIVET_HTTP_H_ | 6 #define CHROME_BROWSER_LOCAL_DISCOVERY_PRIVET_HTTP_H_ |
| 7 | 7 |
| 8 #include <string> | 8 #include <string> |
| 9 | 9 |
| 10 #include "base/callback.h" | 10 #include "base/callback.h" |
| 11 #include "base/memory/ref_counted.h" | |
| 12 #include "base/memory/ref_counted_memory.h" | |
| 11 #include "chrome/browser/local_discovery/privet_url_fetcher.h" | 13 #include "chrome/browser/local_discovery/privet_url_fetcher.h" |
| 14 #include "chrome/browser/local_discovery/pwg_raster_converter.h" | |
| 12 #include "net/base/host_port_pair.h" | 15 #include "net/base/host_port_pair.h" |
| 13 | 16 |
| 14 namespace local_discovery { | 17 namespace local_discovery { |
| 15 | 18 |
| 16 class PrivetHTTPClient; | 19 class PrivetHTTPClient; |
| 17 | 20 |
| 18 // Represents a request to /privet/info. Will store a cached response and token | 21 // Represents a request to /privet/info. Will store a cached response and token |
| 19 // in the PrivetHTTPClient that created. | 22 // in the PrivetHTTPClient that created. |
| 20 class PrivetInfoOperation { | 23 class PrivetInfoOperation { |
| 21 public: | 24 public: |
| (...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 109 virtual void Start() = 0; | 112 virtual void Start() = 0; |
| 110 | 113 |
| 111 virtual PrivetHTTPClient* GetHTTPClient() = 0; | 114 virtual PrivetHTTPClient* GetHTTPClient() = 0; |
| 112 }; | 115 }; |
| 113 | 116 |
| 114 class PrivetLocalPrintOperation { | 117 class PrivetLocalPrintOperation { |
| 115 public: | 118 public: |
| 116 class Delegate { | 119 class Delegate { |
| 117 public: | 120 public: |
| 118 virtual ~Delegate() {} | 121 virtual ~Delegate() {} |
| 119 virtual void OnPrivetPrintingRequestPDF( | |
| 120 const PrivetLocalPrintOperation* print_operation) = 0; | |
| 121 virtual void OnPrivetPrintingRequestPWGRaster( | |
| 122 const PrivetLocalPrintOperation* print_operation) = 0; | |
| 123 virtual void OnPrivetPrintingDone( | 122 virtual void OnPrivetPrintingDone( |
| 124 const PrivetLocalPrintOperation* print_operation) = 0; | 123 const PrivetLocalPrintOperation* print_operation) = 0; |
| 125 virtual void OnPrivetPrintingError( | 124 virtual void OnPrivetPrintingError( |
| 126 const PrivetLocalPrintOperation* print_operation, int http_code) = 0; | 125 const PrivetLocalPrintOperation* print_operation, int http_code) = 0; |
| 127 }; | 126 }; |
| 128 | 127 |
| 129 virtual ~PrivetLocalPrintOperation() {} | 128 virtual ~PrivetLocalPrintOperation() {} |
| 130 | 129 |
| 131 virtual void Start() = 0; | 130 virtual void Start() = 0; |
| 132 | 131 |
| 133 // One of thsese should be called ONLY after |OnPrivetPrintingRequestPDF| or | 132 |
| 134 // |OnPrivetPrintingRequestPWGRaster| are called on the delegate. Data should | 133 // Required print data. MUST be called before calling |Start()|. |
| 135 // be in PDF or PWG format depending on what is requested by the local print | 134 virtual void SetData(scoped_refptr<base::RefCountedBytes> data) = 0; |
|
Vitaly Buka (NO REVIEWS)
2013/11/15 06:48:38
just base::RefCountedBytes*
Noam Samuel
2013/11/15 19:13:46
Done.
| |
| 136 // operation. | |
| 137 virtual void SendData(const std::string& data) = 0; | |
| 138 virtual void SendDataFile(const base::FilePath& data) = 0; | |
| 139 | 135 |
| 140 // Optional attributes for /submitdoc. Call before calling |Start()| | 136 // Optional attributes for /submitdoc. Call before calling |Start()| |
| 141 // |ticket| should be in CJT format. | 137 // |ticket| should be in CJT format. |
| 142 virtual void SetTicket(const std::string& ticket) = 0; | 138 virtual void SetTicket(const std::string& ticket) = 0; |
| 143 // Username and jobname are for display only. | 139 // Username and jobname are for display only. |
| 144 virtual void SetUsername(const std::string& username) = 0; | 140 virtual void SetUsername(const std::string& username) = 0; |
| 145 virtual void SetJobname(const std::string& jobname) = 0; | 141 virtual void SetJobname(const std::string& jobname) = 0; |
| 146 // If |offline| is true, we will indicate to the printer not to post the job | 142 // If |offline| is true, we will indicate to the printer not to post the job |
| 147 // to Google Cloud Print. | 143 // to Google Cloud Print. |
| 148 virtual void SetOffline(bool offline) = 0; | 144 virtual void SetOffline(bool offline) = 0; |
| 149 | 145 |
| 146 // For testing, inject an alternative PWG raster converter. | |
| 147 virtual void SetPWGRasterConverterForTesting( | |
| 148 scoped_ptr<PWGRasterConverter> pwg_raster_converter) = 0; | |
| 149 | |
|
Vitaly Buka (NO REVIEWS)
2013/11/15 06:48:38
same
Noam Samuel
2013/11/15 19:13:46
Using a scoped_ptr denotes the transfer of ownersh
| |
| 150 virtual PrivetHTTPClient* GetHTTPClient() = 0; | 150 virtual PrivetHTTPClient* GetHTTPClient() = 0; |
| 151 }; | 151 }; |
| 152 | 152 |
| 153 // Privet HTTP client. Must not outlive the operations it creates. | 153 // Privet HTTP client. Must not outlive the operations it creates. |
| 154 class PrivetHTTPClient { | 154 class PrivetHTTPClient { |
| 155 public: | 155 public: |
| 156 virtual ~PrivetHTTPClient() {} | 156 virtual ~PrivetHTTPClient() {} |
| 157 virtual const base::DictionaryValue* GetCachedInfo() const = 0; | 157 virtual const base::DictionaryValue* GetCachedInfo() const = 0; |
| 158 | 158 |
| 159 virtual scoped_ptr<PrivetRegisterOperation> CreateRegisterOperation( | 159 virtual scoped_ptr<PrivetRegisterOperation> CreateRegisterOperation( |
| 160 const std::string& user, | 160 const std::string& user, |
| 161 PrivetRegisterOperation::Delegate* delegate) = 0; | 161 PrivetRegisterOperation::Delegate* delegate) = 0; |
| 162 virtual scoped_ptr<PrivetInfoOperation> CreateInfoOperation( | 162 virtual scoped_ptr<PrivetInfoOperation> CreateInfoOperation( |
| 163 PrivetInfoOperation::Delegate* delegate) = 0; | 163 PrivetInfoOperation::Delegate* delegate) = 0; |
| 164 virtual scoped_ptr<PrivetCapabilitiesOperation> CreateCapabilitiesOperation( | 164 virtual scoped_ptr<PrivetCapabilitiesOperation> CreateCapabilitiesOperation( |
| 165 PrivetCapabilitiesOperation::Delegate* delegate) = 0; | 165 PrivetCapabilitiesOperation::Delegate* delegate) = 0; |
| 166 virtual scoped_ptr<PrivetLocalPrintOperation> CreateLocalPrintOperation( | 166 virtual scoped_ptr<PrivetLocalPrintOperation> CreateLocalPrintOperation( |
| 167 PrivetLocalPrintOperation::Delegate* delegate) = 0; | 167 PrivetLocalPrintOperation::Delegate* delegate) = 0; |
| 168 | 168 |
| 169 // A name for the HTTP client, e.g. the device name for the privet device. | 169 // A name for the HTTP client, e.g. the device name for the privet device. |
| 170 virtual const std::string& GetName() = 0; | 170 virtual const std::string& GetName() = 0; |
| 171 }; | 171 }; |
| 172 | 172 |
| 173 } // namespace local_discovery | 173 } // namespace local_discovery |
| 174 #endif // CHROME_BROWSER_LOCAL_DISCOVERY_PRIVET_HTTP_H_ | 174 #endif // CHROME_BROWSER_LOCAL_DISCOVERY_PRIVET_HTTP_H_ |
| OLD | NEW |