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

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

Issue 11143014: Add request header on gdata operation for testing ETag match. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: +comment Created 8 years, 2 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) 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_OPERATIONS_H_ 5 #ifndef CHROME_BROWSER_GOOGLE_APIS_GDATA_OPERATIONS_H_
6 #define CHROME_BROWSER_GOOGLE_APIS_GDATA_OPERATIONS_H_ 6 #define CHROME_BROWSER_GOOGLE_APIS_GDATA_OPERATIONS_H_
7 7
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
90 90
91 // Callback type for DownloadDocument/DownloadFile DocumentServiceInterface 91 // Callback type for DownloadDocument/DownloadFile DocumentServiceInterface
92 // calls. 92 // calls.
93 typedef base::Callback<void(GDataErrorCode error, 93 typedef base::Callback<void(GDataErrorCode error,
94 const GURL& content_url, 94 const GURL& content_url,
95 const FilePath& temp_file)> DownloadActionCallback; 95 const FilePath& temp_file)> DownloadActionCallback;
96 96
97 // This class performs the operation for downloading of a given document/file. 97 // This class performs the operation for downloading of a given document/file.
98 class DownloadFileOperation : public UrlFetchOperationBase { 98 class DownloadFileOperation : public UrlFetchOperationBase {
99 public: 99 public:
100 // Downloads a file identified by its |document_url|.
101 // If |etag| is set, checks if it matches the file before downloading.
satorux1 2012/10/17 03:14:27 If etag does not match, what happens? Please docum
102 // The downloaded file will be stored at |output_file_path| location.
103 // On partial data is received, invokes |get_content_callbac| if not empty.
104 // Upon completion, invokes |download_action_callback|.
satorux1 2012/10/17 03:14:27 Thank you for improving the comment here!
105 //
106 // Registers the download task to |registry| with OperationProgressStatus
107 // associated with |virtual_path|.
100 DownloadFileOperation( 108 DownloadFileOperation(
101 OperationRegistry* registry, 109 OperationRegistry* registry,
102 const DownloadActionCallback& download_action_callback, 110 const DownloadActionCallback& download_action_callback,
103 const GetContentCallback& get_content_callback, 111 const GetContentCallback& get_content_callback,
104 const GURL& document_url, 112 const GURL& document_url,
105 const FilePath& virtual_path, 113 const FilePath& virtual_path,
106 const FilePath& output_file_path); 114 const FilePath& output_file_path,
115 const std::string& etag);
107 virtual ~DownloadFileOperation(); 116 virtual ~DownloadFileOperation();
108 117
109 protected: 118 protected:
110 // Overridden from UrlFetchOperationBase. 119 // Overridden from UrlFetchOperationBase.
111 virtual GURL GetURL() const OVERRIDE; 120 virtual GURL GetURL() const OVERRIDE;
112 virtual void ProcessURLFetchResults(const net::URLFetcher* source) OVERRIDE; 121 virtual void ProcessURLFetchResults(const net::URLFetcher* source) OVERRIDE;
113 virtual void RunCallbackOnPrematureFailure(GDataErrorCode code) OVERRIDE; 122 virtual void RunCallbackOnPrematureFailure(GDataErrorCode code) OVERRIDE;
123 virtual std::vector<std::string> GetExtraRequestHeaders() const OVERRIDE;
114 124
115 // Overridden from net::URLFetcherDelegate. 125 // Overridden from net::URLFetcherDelegate.
116 virtual void OnURLFetchDownloadProgress(const net::URLFetcher* source, 126 virtual void OnURLFetchDownloadProgress(const net::URLFetcher* source,
117 int64 current, int64 total) OVERRIDE; 127 int64 current, int64 total) OVERRIDE;
118 virtual bool ShouldSendDownloadData() OVERRIDE; 128 virtual bool ShouldSendDownloadData() OVERRIDE;
119 virtual void OnURLFetchDownloadData( 129 virtual void OnURLFetchDownloadData(
120 const net::URLFetcher* source, 130 const net::URLFetcher* source,
121 scoped_ptr<std::string> download_data) OVERRIDE; 131 scoped_ptr<std::string> download_data) OVERRIDE;
122 132
123 private: 133 private:
124 DownloadActionCallback download_action_callback_; 134 DownloadActionCallback download_action_callback_;
125 GetContentCallback get_content_callback_; 135 GetContentCallback get_content_callback_;
126 GURL document_url_; 136 GURL document_url_;
137 std::string etag_;
127 138
128 DISALLOW_COPY_AND_ASSIGN(DownloadFileOperation); 139 DISALLOW_COPY_AND_ASSIGN(DownloadFileOperation);
129 }; 140 };
130 141
131 //=========================== DeleteDocumentOperation ========================== 142 //=========================== DeleteDocumentOperation ==========================
132 143
133 // This class performs the operation for deleting a document. 144 // This class performs the operation for deleting a document.
134 class DeleteDocumentOperation : public EntryActionOperation { 145 class DeleteDocumentOperation : public EntryActionOperation {
135 public: 146 public:
147 // Deletes a file identified by its |document_url|.
148 // If |etag| is set, checks if it matches the file before deletion.
satorux1 2012/10/17 03:14:27 If etag does not match, what happens? Please docum
149 // Upon completion, invokes |callback|.
150 //
151 // Registers the download task to |registry|.
136 DeleteDocumentOperation(OperationRegistry* registry, 152 DeleteDocumentOperation(OperationRegistry* registry,
137 const EntryActionCallback& callback, 153 const EntryActionCallback& callback,
138 const GURL& document_url); 154 const GURL& document_url,
155 const std::string& etag);
139 virtual ~DeleteDocumentOperation(); 156 virtual ~DeleteDocumentOperation();
140 157
141 protected: 158 protected:
142 // Overridden from UrlFetchOperationBase. 159 // Overridden from UrlFetchOperationBase.
143 virtual GURL GetURL() const OVERRIDE; 160 virtual GURL GetURL() const OVERRIDE;
144 161
145 // Overridden from EntryActionOperation. 162 // Overridden from EntryActionOperation.
146 virtual net::URLFetcher::RequestType GetRequestType() const OVERRIDE; 163 virtual net::URLFetcher::RequestType GetRequestType() const OVERRIDE;
147 virtual std::vector<std::string> GetExtraRequestHeaders() const OVERRIDE; 164 virtual std::vector<std::string> GetExtraRequestHeaders() const OVERRIDE;
148 165
149 private: 166 private:
167 std::string etag_;
168
150 DISALLOW_COPY_AND_ASSIGN(DeleteDocumentOperation); 169 DISALLOW_COPY_AND_ASSIGN(DeleteDocumentOperation);
151 }; 170 };
152 171
153 //========================== CreateDirectoryOperation ========================== 172 //========================== CreateDirectoryOperation ==========================
154 173
155 // This class performs the operation for creating a directory. 174 // This class performs the operation for creating a directory.
156 class CreateDirectoryOperation : public GetDataOperation { 175 class CreateDirectoryOperation : public GetDataOperation {
157 public: 176 public:
158 // Empty |parent_content_url| will create the directory in the root folder. 177 // Empty |parent_content_url| will create the directory in the root folder.
159 CreateDirectoryOperation(OperationRegistry* registry, 178 CreateDirectoryOperation(OperationRegistry* registry,
(...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after
320 }; 339 };
321 340
322 //=========================== InitiateUploadOperation ========================== 341 //=========================== InitiateUploadOperation ==========================
323 342
324 // Struct for passing params needed for DriveServiceInterface::InitiateUpload() 343 // Struct for passing params needed for DriveServiceInterface::InitiateUpload()
325 // calls. 344 // calls.
326 // 345 //
327 // When uploading a new file (UPLOAD_NEW_FILE): 346 // When uploading a new file (UPLOAD_NEW_FILE):
328 // - |title| should be set. 347 // - |title| should be set.
329 // - |upload_location| should be the upload_url() of the parent directory. 348 // - |upload_location| should be the upload_url() of the parent directory.
349 // - |etag| should be empty.
330 // 350 //
331 // When updating an existing file (UPLOAD_EXISTING_FILE): 351 // When updating an existing file (UPLOAD_EXISTING_FILE):
332 // - |title| should be empty 352 // - |title| should be empty.
333 // - |upload_location| should be the upload_url() of the existing file. 353 // - |upload_location| should be the upload_url() of the existing file.
354 // - |etag| should match the existing file. If it's empty, matching is skipped.
satorux1 2012/10/17 03:14:27 If etag does not match, what happens? Please docum
334 struct InitiateUploadParams { 355 struct InitiateUploadParams {
335 InitiateUploadParams(UploadMode upload_mode, 356 InitiateUploadParams(UploadMode upload_mode,
336 const std::string& title, 357 const std::string& title,
337 const std::string& content_type, 358 const std::string& content_type,
338 int64 content_length, 359 int64 content_length,
339 const GURL& upload_location, 360 const GURL& upload_location,
340 const FilePath& virtual_path); 361 const FilePath& virtual_path,
362 const std::string& etag);
341 ~InitiateUploadParams(); 363 ~InitiateUploadParams();
342 364
343 UploadMode upload_mode; 365 UploadMode upload_mode;
344 std::string title; 366 std::string title;
345 std::string content_type; 367 std::string content_type;
346 int64 content_length; 368 int64 content_length;
347 GURL upload_location; 369 GURL upload_location;
348 FilePath virtual_path; 370 FilePath virtual_path;
371 std::string etag;
349 }; 372 };
350 373
351 // Callback type for DocumentServiceInterface::InitiateUpload. 374 // Callback type for DocumentServiceInterface::InitiateUpload.
352 typedef base::Callback<void(GDataErrorCode error, 375 typedef base::Callback<void(GDataErrorCode error,
353 const GURL& upload_url)> InitiateUploadCallback; 376 const GURL& upload_url)> InitiateUploadCallback;
354 377
355 // This class performs the operation for initiating the upload of a file. 378 // This class performs the operation for initiating the upload of a file.
356 class InitiateUploadOperation : public UrlFetchOperationBase { 379 class InitiateUploadOperation : public UrlFetchOperationBase {
357 public: 380 public:
358 InitiateUploadOperation(OperationRegistry* registry, 381 InitiateUploadOperation(OperationRegistry* registry,
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
399 // Struct for passing params needed for DriveServiceInterface::ResumeUpload() 422 // Struct for passing params needed for DriveServiceInterface::ResumeUpload()
400 // calls. 423 // calls.
401 struct ResumeUploadParams { 424 struct ResumeUploadParams {
402 ResumeUploadParams(UploadMode upload_mode, 425 ResumeUploadParams(UploadMode upload_mode,
403 int64 start_range, 426 int64 start_range,
404 int64 end_range, 427 int64 end_range,
405 int64 content_length, 428 int64 content_length,
406 const std::string& content_type, 429 const std::string& content_type,
407 scoped_refptr<net::IOBuffer> buf, 430 scoped_refptr<net::IOBuffer> buf,
408 const GURL& upload_location, 431 const GURL& upload_location,
409 const FilePath& virtual_path); 432 const FilePath& virtual_path,
433 const std::string& etag);
410 ~ResumeUploadParams(); 434 ~ResumeUploadParams();
411 435
412 UploadMode upload_mode; // Mode of the upload. 436 UploadMode upload_mode; // Mode of the upload.
413 int64 start_range; // Start of range of contents currently stored in |buf|. 437 int64 start_range; // Start of range of contents currently stored in |buf|.
414 int64 end_range; // End of range of contents currently stored in |buf|. 438 int64 end_range; // End of range of contents currently stored in |buf|.
415 int64 content_length; // File content-Length. 439 int64 content_length; // File content-Length.
416 std::string content_type; // Content-Type of file. 440 std::string content_type; // Content-Type of file.
417 scoped_refptr<net::IOBuffer> buf; // Holds current content to be uploaded. 441 scoped_refptr<net::IOBuffer> buf; // Holds current content to be uploaded.
418 GURL upload_location; // Url of where to upload the file to. 442 GURL upload_location; // Url of where to upload the file to.
419 // Virtual GData path of the file seen in the UI. Not necessary for 443 // Virtual GData path of the file seen in the UI. Not necessary for
420 // resuming an upload, but used for adding an entry to OperationRegistry. 444 // resuming an upload, but used for adding an entry to OperationRegistry.
421 FilePath virtual_path; 445 FilePath virtual_path;
446 // ETag matches the file to be overwritten. Matching is skipped if it's empty.
447 std::string etag;
422 }; 448 };
423 449
424 // Callback type for DocumentServiceInterface::ResumeUpload. 450 // Callback type for DocumentServiceInterface::ResumeUpload.
425 typedef base::Callback<void( 451 typedef base::Callback<void(
426 const ResumeUploadResponse& response, 452 const ResumeUploadResponse& response,
427 scoped_ptr<gdata::DocumentEntry> new_entry)> ResumeUploadCallback; 453 scoped_ptr<gdata::DocumentEntry> new_entry)> ResumeUploadCallback;
428 454
429 // This class performs the operation for resuming the upload of a file. 455 // This class performs the operation for resuming the upload of a file.
430 class ResumeUploadOperation : public UrlFetchOperationBase { 456 class ResumeUploadOperation : public UrlFetchOperationBase {
431 public: 457 public:
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
541 567
542 // Callback to which the photo data is passed. 568 // Callback to which the photo data is passed.
543 GetContentCallback callback_; 569 GetContentCallback callback_;
544 570
545 DISALLOW_COPY_AND_ASSIGN(GetContactPhotoOperation); 571 DISALLOW_COPY_AND_ASSIGN(GetContactPhotoOperation);
546 }; 572 };
547 573
548 } // namespace gdata 574 } // namespace gdata
549 575
550 #endif // CHROME_BROWSER_GOOGLE_APIS_GDATA_OPERATIONS_H_ 576 #endif // CHROME_BROWSER_GOOGLE_APIS_GDATA_OPERATIONS_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698