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

Side by Side Diff: chrome/browser/google_apis/gdata_wapi_operations.h

Issue 11419253: google_apis: Clean up gdata_wapi_operations.h (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: polish Created 8 years 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/browser/google_apis/gdata_wapi_operations.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) 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 #ifndef CHROME_BROWSER_GOOGLE_APIS_GDATA_WAPI_OPERATIONS_H_ 5 #ifndef CHROME_BROWSER_GOOGLE_APIS_GDATA_WAPI_OPERATIONS_H_
6 #define CHROME_BROWSER_GOOGLE_APIS_GDATA_WAPI_OPERATIONS_H_ 6 #define CHROME_BROWSER_GOOGLE_APIS_GDATA_WAPI_OPERATIONS_H_
7 7
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
11 #include "chrome/browser/google_apis/base_operations.h" 11 #include "chrome/browser/google_apis/base_operations.h"
12 #include "chrome/browser/google_apis/drive_upload_mode.h" 12 #include "chrome/browser/google_apis/drive_upload_mode.h"
13 #include "chrome/browser/google_apis/gdata_wapi_url_generator.h" 13 #include "chrome/browser/google_apis/gdata_wapi_url_generator.h"
14 #include "net/base/io_buffer.h" 14 #include "net/base/io_buffer.h"
15 15
16 namespace google_apis { 16 namespace google_apis {
17 17
18 class GDataWapiUrlGenerator; 18 class GDataWapiUrlGenerator;
19 class DocumentEntry; 19 class DocumentEntry;
20 20
21 //============================ GetDocumentsOperation =========================== 21 //============================ GetDocumentsOperation ===========================
22 22
23 // This class performs the operation for fetching a document list. 23 // This class performs the operation for fetching a document list.
24 class GetDocumentsOperation : public GetDataOperation { 24 class GetDocumentsOperation : public GetDataOperation {
25 public: 25 public:
26 // |start_changestamp| specifies the starting point of change list or 0 if 26 // override_url:
27 // all changes are necessary. 27 // If empty, a hard-coded base URL of the WAPI server is used to fetch
28 // If |shared_with_me| is true, it searches for the files shared to the user, 28 // the first page of the feed. This parameter is used for fetching 2nd
29 // otherwise searches for the files owned by the user. 29 // page and onward.
30 // |url| specifies URL for documents feed fetching operation. If empty URL is 30 //
31 // passed, the default URL is used and returns the first page of the result. 31 // start_changestamp:
32 // When non-first page result is requested, |url| should be specified. 32 // This parameter specifies the starting point of a delta feed or 0 if a
33 // full feed is necessary.
34 //
35 // search_string:
36 // If non-empty, fetches a list of documents that match the search
37 // string.
38 //
39 // shared_with_me:
40 // If true, fetches a list of documents shared to the user, otherwise
41 // fetches a list of documents owned by the user.
42 //
43 // directory_resource_id:
44 // If non-empty, fetches a list of documents in a particular directory.
33 GetDocumentsOperation(OperationRegistry* registry, 45 GetDocumentsOperation(OperationRegistry* registry,
34 const GDataWapiUrlGenerator& url_generator, 46 const GDataWapiUrlGenerator& url_generator,
35 const GURL& url, 47 const GURL& override_url,
36 int start_changestamp, 48 int start_changestamp,
37 const std::string& search_string, 49 const std::string& search_string,
38 bool shared_with_me, 50 bool shared_with_me,
39 const std::string& directory_resource_id, 51 const std::string& directory_resource_id,
40 const GetDataCallback& callback); 52 const GetDataCallback& callback);
41 virtual ~GetDocumentsOperation(); 53 virtual ~GetDocumentsOperation();
42 54
43 protected: 55 protected:
44 // Overridden from GetDataOperation. 56 // UrlFetchOperationBase overrides.
45 virtual GURL GetURL() const OVERRIDE; 57 virtual GURL GetURL() const OVERRIDE;
46 58
47 private: 59 private:
48 GDataWapiUrlGenerator url_generator_; 60 const GDataWapiUrlGenerator url_generator_;
49 GURL override_url_; 61 const GURL override_url_;
50 int start_changestamp_; 62 const int start_changestamp_;
51 std::string search_string_; 63 const std::string search_string_;
52 bool shared_with_me_; 64 const bool shared_with_me_;
53 std::string directory_resource_id_; 65 const std::string directory_resource_id_;
54 66
55 DISALLOW_COPY_AND_ASSIGN(GetDocumentsOperation); 67 DISALLOW_COPY_AND_ASSIGN(GetDocumentsOperation);
56 }; 68 };
57 69
58 //========================= GetDocumentEntryOperation ========================== 70 //========================= GetDocumentEntryOperation ==========================
59 71
60 // This class performs the operation for fetching a single document entry. 72 // This class performs the operation for fetching a single document entry.
61 class GetDocumentEntryOperation : public GetDataOperation { 73 class GetDocumentEntryOperation : public GetDataOperation {
62 public: 74 public:
63 GetDocumentEntryOperation(OperationRegistry* registry, 75 GetDocumentEntryOperation(OperationRegistry* registry,
64 const GDataWapiUrlGenerator& url_generator, 76 const GDataWapiUrlGenerator& url_generator,
65 const std::string& resource_id, 77 const std::string& resource_id,
66 const GetDataCallback& callback); 78 const GetDataCallback& callback);
67 virtual ~GetDocumentEntryOperation(); 79 virtual ~GetDocumentEntryOperation();
68 80
69 protected: 81 protected:
70 // Overridden from GetGdataOperation. 82 // UrlFetchOperationBase overrides.
71 virtual GURL GetURL() const OVERRIDE; 83 virtual GURL GetURL() const OVERRIDE;
72 84
73 private: 85 private:
74 GDataWapiUrlGenerator url_generator_; 86 const GDataWapiUrlGenerator url_generator_;
75 // Resource id of the requested entry. 87 // Resource id of the requested entry.
76 std::string resource_id_; 88 const std::string resource_id_;
77 89
78 DISALLOW_COPY_AND_ASSIGN(GetDocumentEntryOperation); 90 DISALLOW_COPY_AND_ASSIGN(GetDocumentEntryOperation);
79 }; 91 };
80 92
81 //========================= GetAccountMetadataOperation ======================== 93 //========================= GetAccountMetadataOperation ========================
82 94
83 // This class performs the operation for fetching account metadata. 95 // This class performs the operation for fetching account metadata.
84 class GetAccountMetadataOperation : public GetDataOperation { 96 class GetAccountMetadataOperation : public GetDataOperation {
85 public: 97 public:
86 GetAccountMetadataOperation(OperationRegistry* registry, 98 GetAccountMetadataOperation(OperationRegistry* registry,
87 const GDataWapiUrlGenerator& url_generator, 99 const GDataWapiUrlGenerator& url_generator,
88 const GetDataCallback& callback); 100 const GetDataCallback& callback);
89 virtual ~GetAccountMetadataOperation(); 101 virtual ~GetAccountMetadataOperation();
90 102
91 protected: 103 protected:
92 // Overridden from GetDataOperation. 104 // UrlFetchOperationBase overrides.
93 virtual GURL GetURL() const OVERRIDE; 105 virtual GURL GetURL() const OVERRIDE;
94 106
95 private: 107 private:
96 GDataWapiUrlGenerator url_generator_; 108 const GDataWapiUrlGenerator url_generator_;
97 DISALLOW_COPY_AND_ASSIGN(GetAccountMetadataOperation); 109 DISALLOW_COPY_AND_ASSIGN(GetAccountMetadataOperation);
98 }; 110 };
99 111
100 //============================ DownloadFileOperation =========================== 112 //============================ DownloadFileOperation ===========================
101 113
102 // Callback type for DownloadDocument/DownloadFile DocumentServiceInterface 114 // Callback type for DownloadDocument/DownloadFile DocumentServiceInterface
103 // calls. 115 // calls.
104 typedef base::Callback<void(GDataErrorCode error, 116 typedef base::Callback<void(GDataErrorCode error,
105 const FilePath& temp_file)> DownloadActionCallback; 117 const FilePath& temp_file)> DownloadActionCallback;
106 118
107 // This class performs the operation for downloading of a given document/file. 119 // This class performs the operation for downloading of a given document/file.
108 class DownloadFileOperation : public UrlFetchOperationBase { 120 class DownloadFileOperation : public UrlFetchOperationBase {
109 public: 121 public:
122 // download_action_callback:
123 // This callback is called when the download is complete.
124 //
125 // get_content_callback:
126 // This callback is called when some part of the content is
127 // read. Used to read the download content progressively.
128 //
129 // content_url:
130 // Specifies the target file to download.
131 //
132 // drive_file_path:
133 // Specifies the drive path of the target file. Shown in UI.
134 // TODO(satorux): Remove the drive file path hack. crbug.com/163296
135 //
136 // output_file_path:
137 // Specifies the file path to save the downloaded file.
138 //
110 DownloadFileOperation( 139 DownloadFileOperation(
111 OperationRegistry* registry, 140 OperationRegistry* registry,
112 const DownloadActionCallback& download_action_callback, 141 const DownloadActionCallback& download_action_callback,
113 const GetContentCallback& get_content_callback, 142 const GetContentCallback& get_content_callback,
114 const GURL& document_url, 143 const GURL& content_url,
115 const FilePath& virtual_path, 144 const FilePath& drive_file_path,
116 const FilePath& output_file_path); 145 const FilePath& output_file_path);
117 virtual ~DownloadFileOperation(); 146 virtual ~DownloadFileOperation();
118 147
119 protected: 148 protected:
120 // Overridden from UrlFetchOperationBase. 149 // UrlFetchOperationBase overrides.
121 virtual GURL GetURL() const OVERRIDE; 150 virtual GURL GetURL() const OVERRIDE;
122 virtual void ProcessURLFetchResults(const net::URLFetcher* source) OVERRIDE; 151 virtual void ProcessURLFetchResults(const net::URLFetcher* source) OVERRIDE;
123 virtual void RunCallbackOnPrematureFailure(GDataErrorCode code) OVERRIDE; 152 virtual void RunCallbackOnPrematureFailure(GDataErrorCode code) OVERRIDE;
124 153
125 // Overridden from net::URLFetcherDelegate. 154 // net::URLFetcherDelegate overrides.
126 virtual void OnURLFetchDownloadProgress(const net::URLFetcher* source, 155 virtual void OnURLFetchDownloadProgress(const net::URLFetcher* source,
127 int64 current, int64 total) OVERRIDE; 156 int64 current, int64 total) OVERRIDE;
128 virtual bool ShouldSendDownloadData() OVERRIDE; 157 virtual bool ShouldSendDownloadData() OVERRIDE;
129 virtual void OnURLFetchDownloadData( 158 virtual void OnURLFetchDownloadData(
130 const net::URLFetcher* source, 159 const net::URLFetcher* source,
131 scoped_ptr<std::string> download_data) OVERRIDE; 160 scoped_ptr<std::string> download_data) OVERRIDE;
132 161
133 private: 162 private:
134 DownloadActionCallback download_action_callback_; 163 const DownloadActionCallback download_action_callback_;
135 GetContentCallback get_content_callback_; 164 const GetContentCallback get_content_callback_;
136 GURL document_url_; 165 const GURL content_url_;
137 166
138 DISALLOW_COPY_AND_ASSIGN(DownloadFileOperation); 167 DISALLOW_COPY_AND_ASSIGN(DownloadFileOperation);
139 }; 168 };
140 169
141 //=========================== DeleteDocumentOperation ========================== 170 //=========================== DeleteDocumentOperation ==========================
142 171
143 // This class performs the operation for deleting a document. 172 // This class performs the operation for deleting a document.
144 class DeleteDocumentOperation : public EntryActionOperation { 173 class DeleteDocumentOperation : public EntryActionOperation {
145 public: 174 public:
146 DeleteDocumentOperation(OperationRegistry* registry, 175 DeleteDocumentOperation(OperationRegistry* registry,
147 const EntryActionCallback& callback, 176 const EntryActionCallback& callback,
148 const GURL& document_url); 177 const GURL& edit_url);
149 virtual ~DeleteDocumentOperation(); 178 virtual ~DeleteDocumentOperation();
150 179
151 protected: 180 protected:
152 // Overridden from UrlFetchOperationBase. 181 // UrlFetchOperationBase overrides.
153 virtual GURL GetURL() const OVERRIDE; 182 virtual GURL GetURL() const OVERRIDE;
154
155 // Overridden from EntryActionOperation.
156 virtual net::URLFetcher::RequestType GetRequestType() const OVERRIDE; 183 virtual net::URLFetcher::RequestType GetRequestType() const OVERRIDE;
157 virtual std::vector<std::string> GetExtraRequestHeaders() const OVERRIDE; 184 virtual std::vector<std::string> GetExtraRequestHeaders() const OVERRIDE;
158 185
159 private: 186 private:
160 GURL document_url_; 187 const GURL edit_url_;
161 188
162 DISALLOW_COPY_AND_ASSIGN(DeleteDocumentOperation); 189 DISALLOW_COPY_AND_ASSIGN(DeleteDocumentOperation);
163 }; 190 };
164 191
165 //========================== CreateDirectoryOperation ========================== 192 //========================== CreateDirectoryOperation ==========================
166 193
167 // This class performs the operation for creating a directory. 194 // This class performs the operation for creating a directory.
168 class CreateDirectoryOperation : public GetDataOperation { 195 class CreateDirectoryOperation : public GetDataOperation {
169 public: 196 public:
170 // Empty |parent_content_url| will create the directory in the root folder. 197 // A new directory will be created under a directory specified by
198 // |parent_content_url|. If this parameter is empty, a new directory will
199 // be created in the root directory.
171 CreateDirectoryOperation(OperationRegistry* registry, 200 CreateDirectoryOperation(OperationRegistry* registry,
172 const GDataWapiUrlGenerator& url_generator, 201 const GDataWapiUrlGenerator& url_generator,
173 const GetDataCallback& callback, 202 const GetDataCallback& callback,
174 const GURL& parent_content_url, 203 const GURL& parent_content_url,
175 const FilePath::StringType& directory_name); 204 const FilePath::StringType& directory_name);
176 virtual ~CreateDirectoryOperation(); 205 virtual ~CreateDirectoryOperation();
177 206
178 protected: 207 protected:
179 // Overridden from UrlFetchOperationBase. 208 // UrlFetchOperationBase overrides.
180 virtual GURL GetURL() const OVERRIDE; 209 virtual GURL GetURL() const OVERRIDE;
181 virtual net::URLFetcher::RequestType GetRequestType() const OVERRIDE; 210 virtual net::URLFetcher::RequestType GetRequestType() const OVERRIDE;
182
183 // Overridden from UrlFetchOperationBase.
184 virtual bool GetContentData(std::string* upload_content_type, 211 virtual bool GetContentData(std::string* upload_content_type,
185 std::string* upload_content) OVERRIDE; 212 std::string* upload_content) OVERRIDE;
186 213
187 private: 214 private:
188 GDataWapiUrlGenerator url_generator_; 215 const GDataWapiUrlGenerator url_generator_;
189 GURL parent_content_url_; 216 const GURL parent_content_url_;
190 FilePath::StringType directory_name_; 217 const FilePath::StringType directory_name_;
191 218
192 DISALLOW_COPY_AND_ASSIGN(CreateDirectoryOperation); 219 DISALLOW_COPY_AND_ASSIGN(CreateDirectoryOperation);
193 }; 220 };
194 221
195 //============================ CopyDocumentOperation =========================== 222 //============================ CopyDocumentOperation ===========================
196 223
197 // This class performs the operation for making a copy of a document. 224 // This class performs the operation for making a copy of a hosted document.
225 // Note that this function cannot be used to copy regular files, as it's not
226 // supported by WAPI.
198 class CopyDocumentOperation : public GetDataOperation { 227 class CopyDocumentOperation : public GetDataOperation {
199 public: 228 public:
200 CopyDocumentOperation(OperationRegistry* registry, 229 CopyDocumentOperation(OperationRegistry* registry,
201 const GDataWapiUrlGenerator& url_generator, 230 const GDataWapiUrlGenerator& url_generator,
202 const GetDataCallback& callback, 231 const GetDataCallback& callback,
203 const std::string& resource_id, 232 const std::string& resource_id,
204 const FilePath::StringType& new_name); 233 const FilePath::StringType& new_name);
205 virtual ~CopyDocumentOperation(); 234 virtual ~CopyDocumentOperation();
206 235
207 protected: 236 protected:
208 // Overridden from UrlFetchOperationBase. 237 // UrlFetchOperationBase overrides.
209 virtual net::URLFetcher::RequestType GetRequestType() const OVERRIDE; 238 virtual net::URLFetcher::RequestType GetRequestType() const OVERRIDE;
210
211 // Overridden from UrlFetchOperationBase.
212 virtual GURL GetURL() const OVERRIDE; 239 virtual GURL GetURL() const OVERRIDE;
213 virtual bool GetContentData(std::string* upload_content_type, 240 virtual bool GetContentData(std::string* upload_content_type,
214 std::string* upload_content) OVERRIDE; 241 std::string* upload_content) OVERRIDE;
215 242
216 private: 243 private:
217 GDataWapiUrlGenerator url_generator_; 244 const GDataWapiUrlGenerator url_generator_;
218 std::string resource_id_; 245 const std::string resource_id_;
219 FilePath::StringType new_name_; 246 const FilePath::StringType new_name_;
220 247
221 DISALLOW_COPY_AND_ASSIGN(CopyDocumentOperation); 248 DISALLOW_COPY_AND_ASSIGN(CopyDocumentOperation);
222 }; 249 };
223 250
224 //=========================== RenameResourceOperation ========================== 251 //=========================== RenameResourceOperation ==========================
225 252
226 // This class performs the operation for renaming a document/file/directory. 253 // This class performs the operation for renaming a document/file/directory.
227 class RenameResourceOperation : public EntryActionOperation { 254 class RenameResourceOperation : public EntryActionOperation {
228 public: 255 public:
229 RenameResourceOperation(OperationRegistry* registry, 256 RenameResourceOperation(OperationRegistry* registry,
230 const EntryActionCallback& callback, 257 const EntryActionCallback& callback,
231 const GURL& document_url, 258 const GURL& edit_url,
232 const FilePath::StringType& new_name); 259 const FilePath::StringType& new_name);
233 virtual ~RenameResourceOperation(); 260 virtual ~RenameResourceOperation();
234 261
235 protected: 262 protected:
236 // Overridden from EntryActionOperation. 263 // UrlFetchOperationBase overrides.
237 virtual net::URLFetcher::RequestType GetRequestType() const OVERRIDE; 264 virtual net::URLFetcher::RequestType GetRequestType() const OVERRIDE;
238 virtual std::vector<std::string> GetExtraRequestHeaders() const OVERRIDE; 265 virtual std::vector<std::string> GetExtraRequestHeaders() const OVERRIDE;
239
240 // Overridden from UrlFetchOperationBase.
241 virtual GURL GetURL() const OVERRIDE; 266 virtual GURL GetURL() const OVERRIDE;
242 virtual bool GetContentData(std::string* upload_content_type, 267 virtual bool GetContentData(std::string* upload_content_type,
243 std::string* upload_content) OVERRIDE; 268 std::string* upload_content) OVERRIDE;
244 269
245 private: 270 private:
246 GURL document_url_; 271 const GURL edit_url_;
247 FilePath::StringType new_name_; 272 const FilePath::StringType new_name_;
248 273
249 DISALLOW_COPY_AND_ASSIGN(RenameResourceOperation); 274 DISALLOW_COPY_AND_ASSIGN(RenameResourceOperation);
250 }; 275 };
251 276
252 //=========================== AuthorizeAppOperation ========================== 277 //=========================== AuthorizeAppOperation ==========================
253 278
254 // This class performs the operation for authorizing an application specified 279 // This class performs the operation for authorizing an application specified
255 // by |app_id| to access a document specified by |document_url| for . 280 // by |app_id| to access a document specified by |edit_url| for .
256 class AuthorizeAppOperation : public GetDataOperation { 281 class AuthorizeAppOperation : public GetDataOperation {
257 public: 282 public:
258 AuthorizeAppOperation(OperationRegistry* registry, 283 AuthorizeAppOperation(OperationRegistry* registry,
259 const GetDataCallback& callback, 284 const GetDataCallback& callback,
260 const GURL& document_url, 285 const GURL& edit_url,
261 const std::string& app_id); 286 const std::string& app_id);
262 virtual ~AuthorizeAppOperation(); 287 virtual ~AuthorizeAppOperation();
263 288
264 protected: 289 protected:
265 // Overridden from GetDataOperation. 290 // UrlFetchOperationBase overrides.
266 virtual net::URLFetcher::RequestType GetRequestType() const OVERRIDE; 291 virtual net::URLFetcher::RequestType GetRequestType() const OVERRIDE;
267
268 // Overridden from UrlFetchOperationBase.
269 virtual bool GetContentData(std::string* upload_content_type, 292 virtual bool GetContentData(std::string* upload_content_type,
270 std::string* upload_content) OVERRIDE; 293 std::string* upload_content) OVERRIDE;
271 virtual std::vector<std::string> GetExtraRequestHeaders() const OVERRIDE; 294 virtual std::vector<std::string> GetExtraRequestHeaders() const OVERRIDE;
272
273 // Overridden from GetDataOperation.
274 virtual GURL GetURL() const OVERRIDE; 295 virtual GURL GetURL() const OVERRIDE;
275 virtual void ProcessURLFetchResults(const net::URLFetcher* source) OVERRIDE; 296 virtual void ProcessURLFetchResults(const net::URLFetcher* source) OVERRIDE;
276 297
277 // Must override GetDataOperation's ParseResponse because the response is XML 298 // Must override GetDataOperation's ParseResponse because the response is XML
278 // not JSON. 299 // not JSON.
279 virtual void ParseResponse(GDataErrorCode fetch_error_code, 300 virtual void ParseResponse(GDataErrorCode fetch_error_code,
280 const std::string& data) OVERRIDE; 301 const std::string& data) OVERRIDE;
281 302
282 private: 303 private:
283 std::string app_id_; 304 const std::string app_id_;
284 GURL document_url_; 305 const GURL edit_url_;
285 306
286 DISALLOW_COPY_AND_ASSIGN(AuthorizeAppOperation); 307 DISALLOW_COPY_AND_ASSIGN(AuthorizeAppOperation);
287 }; 308 };
288 309
289 //======================= AddResourceToDirectoryOperation ====================== 310 //======================= AddResourceToDirectoryOperation ======================
290 311
291 // This class performs the operation for adding a document/file/directory 312 // This class performs the operation for adding a document/file/directory
292 // to a directory. 313 // to a directory.
293 class AddResourceToDirectoryOperation : public EntryActionOperation { 314 class AddResourceToDirectoryOperation : public EntryActionOperation {
294 public: 315 public:
295 AddResourceToDirectoryOperation(OperationRegistry* registry, 316 AddResourceToDirectoryOperation(OperationRegistry* registry,
296 const GDataWapiUrlGenerator& url_generator, 317 const GDataWapiUrlGenerator& url_generator,
297 const EntryActionCallback& callback, 318 const EntryActionCallback& callback,
298 const GURL& parent_content_url, 319 const GURL& parent_content_url,
299 const GURL& document_url); 320 const GURL& edit_url);
300 virtual ~AddResourceToDirectoryOperation(); 321 virtual ~AddResourceToDirectoryOperation();
301 322
302 protected: 323 protected:
303 // Overridden from UrlFetchOperationBase. 324 // UrlFetchOperationBase overrides.
304 virtual GURL GetURL() const OVERRIDE; 325 virtual GURL GetURL() const OVERRIDE;
305 virtual net::URLFetcher::RequestType GetRequestType() const OVERRIDE; 326 virtual net::URLFetcher::RequestType GetRequestType() const OVERRIDE;
306 virtual bool GetContentData(std::string* upload_content_type, 327 virtual bool GetContentData(std::string* upload_content_type,
307 std::string* upload_content) OVERRIDE; 328 std::string* upload_content) OVERRIDE;
308 329
309 private: 330 private:
310 GDataWapiUrlGenerator url_generator_; 331 const GDataWapiUrlGenerator url_generator_;
311 GURL parent_content_url_; 332 const GURL parent_content_url_;
312 GURL document_url_; 333 const GURL edit_url_;
313 334
314 DISALLOW_COPY_AND_ASSIGN(AddResourceToDirectoryOperation); 335 DISALLOW_COPY_AND_ASSIGN(AddResourceToDirectoryOperation);
315 }; 336 };
316 337
317 //==================== RemoveResourceFromDirectoryOperation ==================== 338 //==================== RemoveResourceFromDirectoryOperation ====================
318 339
319 // This class performs the operation for adding a document/file/directory 340 // This class performs the operation for adding a document/file/directory
320 // from a directory. 341 // from a directory.
321 class RemoveResourceFromDirectoryOperation : public EntryActionOperation { 342 class RemoveResourceFromDirectoryOperation : public EntryActionOperation {
322 public: 343 public:
323 RemoveResourceFromDirectoryOperation(OperationRegistry* registry, 344 RemoveResourceFromDirectoryOperation(OperationRegistry* registry,
324 const EntryActionCallback& callback, 345 const EntryActionCallback& callback,
325 const GURL& parent_content_url, 346 const GURL& parent_content_url,
326 const std::string& resource_id); 347 const std::string& resource_id);
327 virtual ~RemoveResourceFromDirectoryOperation(); 348 virtual ~RemoveResourceFromDirectoryOperation();
328 349
329 protected: 350 protected:
330 // Overridden from UrlFetchOperationBase. 351 // UrlFetchOperationBase overrides.
331 virtual GURL GetURL() const OVERRIDE; 352 virtual GURL GetURL() const OVERRIDE;
332 virtual net::URLFetcher::RequestType GetRequestType() const OVERRIDE; 353 virtual net::URLFetcher::RequestType GetRequestType() const OVERRIDE;
333 virtual std::vector<std::string> GetExtraRequestHeaders() const OVERRIDE; 354 virtual std::vector<std::string> GetExtraRequestHeaders() const OVERRIDE;
334 355
335 private: 356 private:
336 std::string resource_id_; 357 const std::string resource_id_;
337 GURL parent_content_url_; 358 const GURL parent_content_url_;
338 359
339 DISALLOW_COPY_AND_ASSIGN(RemoveResourceFromDirectoryOperation); 360 DISALLOW_COPY_AND_ASSIGN(RemoveResourceFromDirectoryOperation);
340 }; 361 };
341 362
342 //=========================== InitiateUploadOperation ========================== 363 //=========================== InitiateUploadOperation ==========================
343 364
344 // Struct for passing params needed for DriveServiceInterface::InitiateUpload() 365 // Struct for passing params needed for DriveServiceInterface::InitiateUpload()
345 // calls. 366 // calls.
346 // 367 //
347 // When uploading a new file (UPLOAD_NEW_FILE): 368 // When uploading a new file (UPLOAD_NEW_FILE):
348 // - |title| should be set. 369 // - |title| should be set.
349 // - |upload_location| should be the upload_url() of the parent directory. 370 // - |upload_location| should be the upload_url() of the parent directory.
371 // (resumable-create-media URL)
350 // 372 //
351 // When updating an existing file (UPLOAD_EXISTING_FILE): 373 // When updating an existing file (UPLOAD_EXISTING_FILE):
352 // - |title| should be empty 374 // - |title| should be empty
353 // - |upload_location| should be the upload_url() of the existing file. 375 // - |upload_location| should be the upload_url() of the existing file.
376 // (resumable-edit-media URL)
354 struct InitiateUploadParams { 377 struct InitiateUploadParams {
355 InitiateUploadParams(UploadMode upload_mode, 378 InitiateUploadParams(UploadMode upload_mode,
356 const std::string& title, 379 const std::string& title,
357 const std::string& content_type, 380 const std::string& content_type,
358 int64 content_length, 381 int64 content_length,
359 const GURL& upload_location, 382 const GURL& upload_location,
360 const FilePath& virtual_path); 383 const FilePath& drive_file_path);
361 ~InitiateUploadParams(); 384 ~InitiateUploadParams();
362 385
363 UploadMode upload_mode; 386 const UploadMode upload_mode;
364 std::string title; 387 const std::string title;
365 std::string content_type; 388 const std::string content_type;
366 int64 content_length; 389 const int64 content_length;
367 GURL upload_location; 390 const GURL upload_location;
368 FilePath virtual_path; 391 const FilePath drive_file_path;
369 }; 392 };
370 393
371 // Callback type for DocumentServiceInterface::InitiateUpload. 394 // Callback type for DocumentServiceInterface::InitiateUpload.
372 typedef base::Callback<void(GDataErrorCode error, 395 typedef base::Callback<void(GDataErrorCode error,
373 const GURL& upload_url)> InitiateUploadCallback; 396 const GURL& upload_url)> InitiateUploadCallback;
374 397
375 // This class performs the operation for initiating the upload of a file. 398 // This class performs the operation for initiating the upload of a file.
399 // |callback| will be called with the obtained upload URL. The URL will be
400 // used with ResumeUploadOperation to upload the content to the server.
401 //
402 // Here's the flow of uploading:
403 // 1) Get the upload URL with InitiateUploadOperation.
404 // 2) Upload the first 512KB (see kUploadChunkSize in drive_uploader.cc)
405 // of the target file to the upload URL
406 // 3) If there is more data to upload, go to 2).
407 //
376 class InitiateUploadOperation : public UrlFetchOperationBase { 408 class InitiateUploadOperation : public UrlFetchOperationBase {
377 public: 409 public:
410 // |callback| will be called with the upload URL, where upload data is
411 // uploaded to with ResumeUploadOperation.
378 InitiateUploadOperation(OperationRegistry* registry, 412 InitiateUploadOperation(OperationRegistry* registry,
379 const InitiateUploadCallback& callback, 413 const InitiateUploadCallback& callback,
380 const InitiateUploadParams& params); 414 const InitiateUploadParams& params);
381 virtual ~InitiateUploadOperation(); 415 virtual ~InitiateUploadOperation();
382 416
383 protected: 417 protected:
384 // Overridden from UrlFetchOperationBase. 418 // UrlFetchOperationBase overrides.
385 virtual GURL GetURL() const OVERRIDE; 419 virtual GURL GetURL() const OVERRIDE;
386 virtual void ProcessURLFetchResults(const net::URLFetcher* source) OVERRIDE; 420 virtual void ProcessURLFetchResults(const net::URLFetcher* source) OVERRIDE;
387 virtual void NotifySuccessToOperationRegistry() OVERRIDE; 421 virtual void NotifySuccessToOperationRegistry() OVERRIDE;
388 virtual void RunCallbackOnPrematureFailure(GDataErrorCode code) OVERRIDE; 422 virtual void RunCallbackOnPrematureFailure(GDataErrorCode code) OVERRIDE;
389
390 // Overridden from UrlFetchOperationBase.
391 virtual net::URLFetcher::RequestType GetRequestType() const OVERRIDE; 423 virtual net::URLFetcher::RequestType GetRequestType() const OVERRIDE;
392 virtual std::vector<std::string> GetExtraRequestHeaders() const OVERRIDE; 424 virtual std::vector<std::string> GetExtraRequestHeaders() const OVERRIDE;
393 virtual bool GetContentData(std::string* upload_content_type, 425 virtual bool GetContentData(std::string* upload_content_type,
394 std::string* upload_content) OVERRIDE; 426 std::string* upload_content) OVERRIDE;
395 427
396 private: 428 private:
397 InitiateUploadCallback callback_; 429 const InitiateUploadCallback callback_;
398 InitiateUploadParams params_; 430 const InitiateUploadParams params_;
399 GURL initiate_upload_url_; 431 const GURL initiate_upload_url_;
400 432
401 DISALLOW_COPY_AND_ASSIGN(InitiateUploadOperation); 433 DISALLOW_COPY_AND_ASSIGN(InitiateUploadOperation);
402 }; 434 };
403 435
404 //============================ ResumeUploadOperation =========================== 436 //============================ ResumeUploadOperation ===========================
405 437
406 // Struct for response to ResumeUpload. 438 // Struct for response to ResumeUpload.
439 // TODO(satorux): Should return the next upload URL. crbug.com/163555
407 struct ResumeUploadResponse { 440 struct ResumeUploadResponse {
408 ResumeUploadResponse(); 441 ResumeUploadResponse();
409 ResumeUploadResponse(GDataErrorCode code, 442 ResumeUploadResponse(GDataErrorCode code,
410 int64 start_range_received, 443 int64 start_range_received,
411 int64 end_range_received); 444 int64 end_range_received);
412 ~ResumeUploadResponse(); 445 ~ResumeUploadResponse();
413 446
414 GDataErrorCode code; 447 const GDataErrorCode code;
415 int64 start_range_received; 448 const int64 start_range_received;
416 int64 end_range_received; 449 const int64 end_range_received; // inclusive. See below.
417 FilePath virtual_path; 450 const FilePath drive_file_path;
418 }; 451 };
419 452
420 // Struct for passing params needed for DriveServiceInterface::ResumeUpload() 453 // Struct for passing params needed for DriveServiceInterface::ResumeUpload()
421 // calls. 454 // calls.
422 struct ResumeUploadParams { 455 struct ResumeUploadParams {
423 ResumeUploadParams(UploadMode upload_mode, 456 ResumeUploadParams(UploadMode upload_mode,
424 int64 start_range, 457 int64 start_range,
425 int64 end_range, 458 int64 end_range,
426 int64 content_length, 459 int64 content_length,
427 const std::string& content_type, 460 const std::string& content_type,
428 scoped_refptr<net::IOBuffer> buf, 461 scoped_refptr<net::IOBuffer> buf,
429 const GURL& upload_location, 462 const GURL& upload_location,
430 const FilePath& virtual_path); 463 const FilePath& drive_file_path);
431 ~ResumeUploadParams(); 464 ~ResumeUploadParams();
432 465
433 UploadMode upload_mode; // Mode of the upload. 466 const UploadMode upload_mode; // Mode of the upload.
434 int64 start_range; // Start of range of contents currently stored in |buf|. 467 // Start of range of contents currently stored in |buf|.
435 int64 end_range; // End of range of contents currently stored in |buf|. 468 const int64 start_range;
436 int64 content_length; // File content-Length. 469 // End of range of contents currently stored in |buf|. This is inclusive.
437 std::string content_type; // Content-Type of file. 470 // For instance, if you are to upload the first 500 bytes of date,
438 scoped_refptr<net::IOBuffer> buf; // Holds current content to be uploaded. 471 // |start_range| is 0 and |end_range| is 499.
439 GURL upload_location; // Url of where to upload the file to. 472 const int64 end_range;
440 // Virtual GData path of the file seen in the UI. Not necessary for 473 const int64 content_length; // File content-Length.
474 const std::string content_type; // Content-Type of file.
475 // Holds current content to be uploaded.
476 const scoped_refptr<net::IOBuffer> buf;
477 const GURL upload_location; // Url of where to upload the file to.
478 // Drive file path of the file seen in the UI. Not necessary for
441 // resuming an upload, but used for adding an entry to OperationRegistry. 479 // resuming an upload, but used for adding an entry to OperationRegistry.
442 FilePath virtual_path; 480 // TODO(satorux): Remove the drive file path hack. crbug.com/163296
481 const FilePath drive_file_path;
443 }; 482 };
444 483
445 // Callback type for DocumentServiceInterface::ResumeUpload. 484 // Callback type for DocumentServiceInterface::ResumeUpload.
446 typedef base::Callback<void( 485 typedef base::Callback<void(
447 const ResumeUploadResponse& response, 486 const ResumeUploadResponse& response,
448 scoped_ptr<google_apis::DocumentEntry> new_entry)> ResumeUploadCallback; 487 scoped_ptr<google_apis::DocumentEntry> new_entry)> ResumeUploadCallback;
449 488
450 // This class performs the operation for resuming the upload of a file. 489 // This class performs the operation for resuming the upload of a file.
490 // More specifically, this operation uploads a chunk of data carried in |buf|
491 // of ResumeUploadResponse.
451 class ResumeUploadOperation : public UrlFetchOperationBase { 492 class ResumeUploadOperation : public UrlFetchOperationBase {
452 public: 493 public:
494 // |callback| will be called on completion of the operation.
495 //
496 // If there is more data to upload, |code| in ResumeUploadParams is set to
497 // HTTP_RESUME_INCOMPLETE, and |new_entry| parameter is NULL.
498 //
499 // If upload is complete, |code| is set to HTTP_CREATED for a file file, or
kinaba 2012/11/30 09:57:26 a file file => a new file
satorux1 2012/11/30 10:09:10 Done.
500 // HTTP_SUCCES for an existing file. |new_entry| contains the document
501 // entry of the newly uploaded file.
453 ResumeUploadOperation(OperationRegistry* registry, 502 ResumeUploadOperation(OperationRegistry* registry,
454 const ResumeUploadCallback& callback, 503 const ResumeUploadCallback& callback,
455 const ResumeUploadParams& params); 504 const ResumeUploadParams& params);
456 virtual ~ResumeUploadOperation(); 505 virtual ~ResumeUploadOperation();
457 506
458 protected: 507 protected:
459 // Overridden from UrlFetchOperationBase. 508 // UrlFetchOperationBase overrides.
460 virtual GURL GetURL() const OVERRIDE; 509 virtual GURL GetURL() const OVERRIDE;
461 virtual void ProcessURLFetchResults(const net::URLFetcher* source) OVERRIDE; 510 virtual void ProcessURLFetchResults(const net::URLFetcher* source) OVERRIDE;
462 virtual void NotifyStartToOperationRegistry() OVERRIDE; 511 virtual void NotifyStartToOperationRegistry() OVERRIDE;
463 virtual void NotifySuccessToOperationRegistry() OVERRIDE; 512 virtual void NotifySuccessToOperationRegistry() OVERRIDE;
464 virtual void RunCallbackOnPrematureFailure(GDataErrorCode code) OVERRIDE; 513 virtual void RunCallbackOnPrematureFailure(GDataErrorCode code) OVERRIDE;
465
466 // Overridden from UrlFetchOperationBase.
467 virtual net::URLFetcher::RequestType GetRequestType() const OVERRIDE; 514 virtual net::URLFetcher::RequestType GetRequestType() const OVERRIDE;
468 virtual std::vector<std::string> GetExtraRequestHeaders() const OVERRIDE; 515 virtual std::vector<std::string> GetExtraRequestHeaders() const OVERRIDE;
469 virtual bool GetContentData(std::string* upload_content_type, 516 virtual bool GetContentData(std::string* upload_content_type,
470 std::string* upload_content) OVERRIDE; 517 std::string* upload_content) OVERRIDE;
471 518
472 // Overridden from content::UrlFetcherDelegate 519 // content::UrlFetcherDelegate overrides.
473 virtual void OnURLFetchUploadProgress(const net::URLFetcher* source, 520 virtual void OnURLFetchUploadProgress(const net::URLFetcher* source,
474 int64 current, int64 total) OVERRIDE; 521 int64 current, int64 total) OVERRIDE;
475 522
476 private: 523 private:
477 ResumeUploadCallback callback_; 524 const ResumeUploadCallback callback_;
478 ResumeUploadParams params_; 525 const ResumeUploadParams params_;
479 bool last_chunk_completed_; 526 bool last_chunk_completed_;
480 527
481 DISALLOW_COPY_AND_ASSIGN(ResumeUploadOperation); 528 DISALLOW_COPY_AND_ASSIGN(ResumeUploadOperation);
482 }; 529 };
483 530
484 } // namespace google_apis 531 } // namespace google_apis
485 532
486 #endif // CHROME_BROWSER_GOOGLE_APIS_GDATA_WAPI_OPERATIONS_H_ 533 #endif // CHROME_BROWSER_GOOGLE_APIS_GDATA_WAPI_OPERATIONS_H_
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/google_apis/gdata_wapi_operations.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698