OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 // This file provides base classes used to issue HTTP requests for Google | 5 // This file provides base classes used to issue HTTP requests for Google |
6 // APIs. | 6 // APIs. |
7 | 7 |
8 #ifndef GOOGLE_APIS_DRIVE_BASE_REQUESTS_H_ | 8 #ifndef GOOGLE_APIS_DRIVE_BASE_REQUESTS_H_ |
9 #define GOOGLE_APIS_DRIVE_BASE_REQUESTS_H_ | 9 #define GOOGLE_APIS_DRIVE_BASE_REQUESTS_H_ |
10 | 10 |
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
87 virtual void Cancel() = 0; | 87 virtual void Cancel() = 0; |
88 }; | 88 }; |
89 | 89 |
90 //=========================== ResponseWriter ================================== | 90 //=========================== ResponseWriter ================================== |
91 | 91 |
92 // Saves the response for the request to a file or string. | 92 // Saves the response for the request to a file or string. |
93 class ResponseWriter : public net::URLFetcherResponseWriter { | 93 class ResponseWriter : public net::URLFetcherResponseWriter { |
94 public: | 94 public: |
95 // If file_path is not empty, the response will be saved with file_writer_, | 95 // If file_path is not empty, the response will be saved with file_writer_, |
96 // otherwise it will be saved to data_. | 96 // otherwise it will be saved to data_. |
97 ResponseWriter(net::URLFetcher* url_fetcher, | 97 ResponseWriter(base::SequencedTaskRunner* file_task_runner, |
98 base::SequencedTaskRunner* file_task_runner, | |
99 const base::FilePath& file_path, | 98 const base::FilePath& file_path, |
100 const GetContentCallback& get_content_callback); | 99 const GetContentCallback& get_content_callback); |
101 virtual ~ResponseWriter(); | 100 virtual ~ResponseWriter(); |
102 | 101 |
103 const std::string& data() const { return data_; } | 102 const std::string& data() const { return data_; } |
104 | 103 |
105 // Disowns the output file. | 104 // Disowns the output file. |
106 void DisownFile(); | 105 void DisownFile(); |
107 | 106 |
108 // URLFetcherResponseWriter overrides: | 107 // URLFetcherResponseWriter overrides: |
109 virtual int Initialize(const net::CompletionCallback& callback) OVERRIDE; | 108 virtual int Initialize(const net::CompletionCallback& callback) OVERRIDE; |
110 virtual int Write(net::IOBuffer* buffer, | 109 virtual int Write(net::IOBuffer* buffer, |
111 int num_bytes, | 110 int num_bytes, |
112 const net::CompletionCallback& callback) OVERRIDE; | 111 const net::CompletionCallback& callback) OVERRIDE; |
113 virtual int Finish(const net::CompletionCallback& callback) OVERRIDE; | 112 virtual int Finish(const net::CompletionCallback& callback) OVERRIDE; |
114 | 113 |
115 private: | 114 private: |
116 net::URLFetcher* url_fetcher_; | 115 void DidWrite(scoped_refptr<net::IOBuffer> buffer, |
| 116 const net::CompletionCallback& callback, |
| 117 int result); |
| 118 |
117 const GetContentCallback get_content_callback_; | 119 const GetContentCallback get_content_callback_; |
118 std::string data_; | 120 std::string data_; |
119 scoped_ptr<net::URLFetcherFileWriter> file_writer_; | 121 scoped_ptr<net::URLFetcherFileWriter> file_writer_; |
| 122 base::WeakPtrFactory<ResponseWriter> weak_ptr_factory_; |
120 | 123 |
121 DISALLOW_COPY_AND_ASSIGN(ResponseWriter); | 124 DISALLOW_COPY_AND_ASSIGN(ResponseWriter); |
122 }; | 125 }; |
123 | 126 |
124 //============================ UrlFetchRequestBase =========================== | 127 //============================ UrlFetchRequestBase =========================== |
125 | 128 |
126 // Base class for requests that are fetching URLs. | 129 // Base class for requests that are fetching URLs. |
127 class UrlFetchRequestBase : public AuthenticatedRequestInterface, | 130 class UrlFetchRequestBase : public AuthenticatedRequestInterface, |
128 public net::URLFetcherDelegate { | 131 public net::URLFetcherDelegate { |
129 public: | 132 public: |
(...skipping 397 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
527 const ProgressCallback progress_callback_; | 530 const ProgressCallback progress_callback_; |
528 const GURL download_url_; | 531 const GURL download_url_; |
529 const base::FilePath output_file_path_; | 532 const base::FilePath output_file_path_; |
530 | 533 |
531 DISALLOW_COPY_AND_ASSIGN(DownloadFileRequestBase); | 534 DISALLOW_COPY_AND_ASSIGN(DownloadFileRequestBase); |
532 }; | 535 }; |
533 | 536 |
534 } // namespace google_apis | 537 } // namespace google_apis |
535 | 538 |
536 #endif // GOOGLE_APIS_DRIVE_BASE_REQUESTS_H_ | 539 #endif // GOOGLE_APIS_DRIVE_BASE_REQUESTS_H_ |
OLD | NEW |