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

Unified 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: address comments Created 8 years, 1 month 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | chrome/browser/google_apis/gdata_wapi_operations.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/google_apis/gdata_wapi_operations.h
diff --git a/chrome/browser/google_apis/gdata_wapi_operations.h b/chrome/browser/google_apis/gdata_wapi_operations.h
index 8fdf2fcd006865f30b86c4dd9a2e0efaa782b142..3d233295975baaa5acfd76e0ade555a88282f46c 100644
--- a/chrome/browser/google_apis/gdata_wapi_operations.h
+++ b/chrome/browser/google_apis/gdata_wapi_operations.h
@@ -23,16 +23,28 @@ class DocumentEntry;
// This class performs the operation for fetching a document list.
class GetDocumentsOperation : public GetDataOperation {
public:
- // |start_changestamp| specifies the starting point of change list or 0 if
- // all changes are necessary.
- // If |shared_with_me| is true, it searches for the files shared to the user,
- // otherwise searches for the files owned by the user.
- // |url| specifies URL for documents feed fetching operation. If empty URL is
- // passed, the default URL is used and returns the first page of the result.
- // When non-first page result is requested, |url| should be specified.
+ // override_url:
+ // If empty, a hard-coded base URL of the WAPI server is used to fetch
+ // the first page of the feed. This parameter is used for fetching 2nd
+ // page and onward.
+ //
+ // start_changestamp:
+ // This parameter specifies the starting point of a delta feed or 0 if a
+ // full feed is necessary.
+ //
+ // search_string:
+ // If non-empty, fetches a list of documents that match the search
+ // string.
+ //
+ // shared_with_me:
+ // If true, fetches a list of documents shared to the user, otherwise
+ // fetches a list of documents owned by the user.
+ //
+ // directory_resource_id:
+ // If non-empty, fetches a list of documents in a particular directory.
GetDocumentsOperation(OperationRegistry* registry,
const GDataWapiUrlGenerator& url_generator,
- const GURL& url,
+ const GURL& override_url,
int start_changestamp,
const std::string& search_string,
bool shared_with_me,
@@ -41,16 +53,16 @@ class GetDocumentsOperation : public GetDataOperation {
virtual ~GetDocumentsOperation();
protected:
- // Overridden from GetDataOperation.
+ // UrlFetchOperationBase overrides.
virtual GURL GetURL() const OVERRIDE;
private:
- GDataWapiUrlGenerator url_generator_;
- GURL override_url_;
- int start_changestamp_;
- std::string search_string_;
- bool shared_with_me_;
- std::string directory_resource_id_;
+ const GDataWapiUrlGenerator url_generator_;
+ const GURL override_url_;
+ const int start_changestamp_;
+ const std::string search_string_;
+ const bool shared_with_me_;
+ const std::string directory_resource_id_;
DISALLOW_COPY_AND_ASSIGN(GetDocumentsOperation);
};
@@ -67,13 +79,13 @@ class GetDocumentEntryOperation : public GetDataOperation {
virtual ~GetDocumentEntryOperation();
protected:
- // Overridden from GetGdataOperation.
+ // UrlFetchOperationBase overrides.
virtual GURL GetURL() const OVERRIDE;
private:
- GDataWapiUrlGenerator url_generator_;
+ const GDataWapiUrlGenerator url_generator_;
// Resource id of the requested entry.
- std::string resource_id_;
+ const std::string resource_id_;
DISALLOW_COPY_AND_ASSIGN(GetDocumentEntryOperation);
};
@@ -89,11 +101,11 @@ class GetAccountMetadataOperation : public GetDataOperation {
virtual ~GetAccountMetadataOperation();
protected:
- // Overridden from GetDataOperation.
+ // UrlFetchOperationBase overrides.
virtual GURL GetURL() const OVERRIDE;
private:
- GDataWapiUrlGenerator url_generator_;
+ const GDataWapiUrlGenerator url_generator_;
DISALLOW_COPY_AND_ASSIGN(GetAccountMetadataOperation);
};
@@ -107,22 +119,39 @@ typedef base::Callback<void(GDataErrorCode error,
// This class performs the operation for downloading of a given document/file.
class DownloadFileOperation : public UrlFetchOperationBase {
public:
+ // download_action_callback:
+ // This callback is called when the download is complete.
+ //
+ // get_content_callback:
+ // This callback is called when some part of the content is
+ // read. Used to read the download content progressively.
+ //
+ // content_url:
+ // Specifies the target file to download.
+ //
+ // drive_file_path:
+ // Specifies the drive path of the target file. Shown in UI.
+ // TODO(satorux): Remove the drive file path hack. crbug.com/163296
+ //
+ // output_file_path:
+ // Specifies the file path to save the downloaded file.
+ //
DownloadFileOperation(
OperationRegistry* registry,
const DownloadActionCallback& download_action_callback,
const GetContentCallback& get_content_callback,
- const GURL& document_url,
- const FilePath& virtual_path,
+ const GURL& content_url,
+ const FilePath& drive_file_path,
const FilePath& output_file_path);
virtual ~DownloadFileOperation();
protected:
- // Overridden from UrlFetchOperationBase.
+ // UrlFetchOperationBase overrides.
virtual GURL GetURL() const OVERRIDE;
virtual void ProcessURLFetchResults(const net::URLFetcher* source) OVERRIDE;
virtual void RunCallbackOnPrematureFailure(GDataErrorCode code) OVERRIDE;
- // Overridden from net::URLFetcherDelegate.
+ // net::URLFetcherDelegate overrides.
virtual void OnURLFetchDownloadProgress(const net::URLFetcher* source,
int64 current, int64 total) OVERRIDE;
virtual bool ShouldSendDownloadData() OVERRIDE;
@@ -131,9 +160,9 @@ class DownloadFileOperation : public UrlFetchOperationBase {
scoped_ptr<std::string> download_data) OVERRIDE;
private:
- DownloadActionCallback download_action_callback_;
- GetContentCallback get_content_callback_;
- GURL document_url_;
+ const DownloadActionCallback download_action_callback_;
+ const GetContentCallback get_content_callback_;
+ const GURL content_url_;
DISALLOW_COPY_AND_ASSIGN(DownloadFileOperation);
};
@@ -145,19 +174,17 @@ class DeleteDocumentOperation : public EntryActionOperation {
public:
DeleteDocumentOperation(OperationRegistry* registry,
const EntryActionCallback& callback,
- const GURL& document_url);
+ const GURL& edit_url);
virtual ~DeleteDocumentOperation();
protected:
- // Overridden from UrlFetchOperationBase.
+ // UrlFetchOperationBase overrides.
virtual GURL GetURL() const OVERRIDE;
-
- // Overridden from EntryActionOperation.
virtual net::URLFetcher::RequestType GetRequestType() const OVERRIDE;
virtual std::vector<std::string> GetExtraRequestHeaders() const OVERRIDE;
private:
- GURL document_url_;
+ const GURL edit_url_;
DISALLOW_COPY_AND_ASSIGN(DeleteDocumentOperation);
};
@@ -167,7 +194,9 @@ class DeleteDocumentOperation : public EntryActionOperation {
// This class performs the operation for creating a directory.
class CreateDirectoryOperation : public GetDataOperation {
public:
- // Empty |parent_content_url| will create the directory in the root folder.
+ // A new directory will be created under a directory specified by
+ // |parent_content_url|. If this parameter is empty, a new directory will
+ // be created in the root directory.
CreateDirectoryOperation(OperationRegistry* registry,
const GDataWapiUrlGenerator& url_generator,
const GetDataCallback& callback,
@@ -176,25 +205,25 @@ class CreateDirectoryOperation : public GetDataOperation {
virtual ~CreateDirectoryOperation();
protected:
- // Overridden from UrlFetchOperationBase.
+ // UrlFetchOperationBase overrides.
virtual GURL GetURL() const OVERRIDE;
virtual net::URLFetcher::RequestType GetRequestType() const OVERRIDE;
-
- // Overridden from UrlFetchOperationBase.
virtual bool GetContentData(std::string* upload_content_type,
std::string* upload_content) OVERRIDE;
private:
- GDataWapiUrlGenerator url_generator_;
- GURL parent_content_url_;
- FilePath::StringType directory_name_;
+ const GDataWapiUrlGenerator url_generator_;
+ const GURL parent_content_url_;
+ const FilePath::StringType directory_name_;
DISALLOW_COPY_AND_ASSIGN(CreateDirectoryOperation);
};
//============================ CopyDocumentOperation ===========================
-// This class performs the operation for making a copy of a document.
+// This class performs the operation for making a copy of a hosted document.
+// Note that this function cannot be used to copy regular files, as it's not
+// supported by WAPI.
class CopyDocumentOperation : public GetDataOperation {
public:
CopyDocumentOperation(OperationRegistry* registry,
@@ -205,18 +234,16 @@ class CopyDocumentOperation : public GetDataOperation {
virtual ~CopyDocumentOperation();
protected:
- // Overridden from UrlFetchOperationBase.
+ // UrlFetchOperationBase overrides.
virtual net::URLFetcher::RequestType GetRequestType() const OVERRIDE;
-
- // Overridden from UrlFetchOperationBase.
virtual GURL GetURL() const OVERRIDE;
virtual bool GetContentData(std::string* upload_content_type,
std::string* upload_content) OVERRIDE;
private:
- GDataWapiUrlGenerator url_generator_;
- std::string resource_id_;
- FilePath::StringType new_name_;
+ const GDataWapiUrlGenerator url_generator_;
+ const std::string resource_id_;
+ const FilePath::StringType new_name_;
DISALLOW_COPY_AND_ASSIGN(CopyDocumentOperation);
};
@@ -228,23 +255,21 @@ class RenameResourceOperation : public EntryActionOperation {
public:
RenameResourceOperation(OperationRegistry* registry,
const EntryActionCallback& callback,
- const GURL& document_url,
+ const GURL& edit_url,
const FilePath::StringType& new_name);
virtual ~RenameResourceOperation();
protected:
- // Overridden from EntryActionOperation.
+ // UrlFetchOperationBase overrides.
virtual net::URLFetcher::RequestType GetRequestType() const OVERRIDE;
virtual std::vector<std::string> GetExtraRequestHeaders() const OVERRIDE;
-
- // Overridden from UrlFetchOperationBase.
virtual GURL GetURL() const OVERRIDE;
virtual bool GetContentData(std::string* upload_content_type,
std::string* upload_content) OVERRIDE;
private:
- GURL document_url_;
- FilePath::StringType new_name_;
+ const GURL edit_url_;
+ const FilePath::StringType new_name_;
DISALLOW_COPY_AND_ASSIGN(RenameResourceOperation);
};
@@ -252,25 +277,21 @@ class RenameResourceOperation : public EntryActionOperation {
//=========================== AuthorizeAppOperation ==========================
// This class performs the operation for authorizing an application specified
-// by |app_id| to access a document specified by |document_url| for .
+// by |app_id| to access a document specified by |edit_url| for .
class AuthorizeAppOperation : public GetDataOperation {
public:
AuthorizeAppOperation(OperationRegistry* registry,
const GetDataCallback& callback,
- const GURL& document_url,
+ const GURL& edit_url,
const std::string& app_id);
virtual ~AuthorizeAppOperation();
protected:
- // Overridden from GetDataOperation.
+ // UrlFetchOperationBase overrides.
virtual net::URLFetcher::RequestType GetRequestType() const OVERRIDE;
-
- // Overridden from UrlFetchOperationBase.
virtual bool GetContentData(std::string* upload_content_type,
std::string* upload_content) OVERRIDE;
virtual std::vector<std::string> GetExtraRequestHeaders() const OVERRIDE;
-
- // Overridden from GetDataOperation.
virtual GURL GetURL() const OVERRIDE;
virtual void ProcessURLFetchResults(const net::URLFetcher* source) OVERRIDE;
@@ -280,8 +301,8 @@ class AuthorizeAppOperation : public GetDataOperation {
const std::string& data) OVERRIDE;
private:
- std::string app_id_;
- GURL document_url_;
+ const std::string app_id_;
+ const GURL edit_url_;
DISALLOW_COPY_AND_ASSIGN(AuthorizeAppOperation);
};
@@ -296,20 +317,20 @@ class AddResourceToDirectoryOperation : public EntryActionOperation {
const GDataWapiUrlGenerator& url_generator,
const EntryActionCallback& callback,
const GURL& parent_content_url,
- const GURL& document_url);
+ const GURL& edit_url);
virtual ~AddResourceToDirectoryOperation();
protected:
- // Overridden from UrlFetchOperationBase.
+ // UrlFetchOperationBase overrides.
virtual GURL GetURL() const OVERRIDE;
virtual net::URLFetcher::RequestType GetRequestType() const OVERRIDE;
virtual bool GetContentData(std::string* upload_content_type,
std::string* upload_content) OVERRIDE;
private:
- GDataWapiUrlGenerator url_generator_;
- GURL parent_content_url_;
- GURL document_url_;
+ const GDataWapiUrlGenerator url_generator_;
+ const GURL parent_content_url_;
+ const GURL edit_url_;
DISALLOW_COPY_AND_ASSIGN(AddResourceToDirectoryOperation);
};
@@ -327,14 +348,14 @@ class RemoveResourceFromDirectoryOperation : public EntryActionOperation {
virtual ~RemoveResourceFromDirectoryOperation();
protected:
- // Overridden from UrlFetchOperationBase.
+ // UrlFetchOperationBase overrides.
virtual GURL GetURL() const OVERRIDE;
virtual net::URLFetcher::RequestType GetRequestType() const OVERRIDE;
virtual std::vector<std::string> GetExtraRequestHeaders() const OVERRIDE;
private:
- std::string resource_id_;
- GURL parent_content_url_;
+ const std::string resource_id_;
+ const GURL parent_content_url_;
DISALLOW_COPY_AND_ASSIGN(RemoveResourceFromDirectoryOperation);
};
@@ -347,25 +368,27 @@ class RemoveResourceFromDirectoryOperation : public EntryActionOperation {
// When uploading a new file (UPLOAD_NEW_FILE):
// - |title| should be set.
// - |upload_location| should be the upload_url() of the parent directory.
+// (resumable-create-media URL)
//
// When updating an existing file (UPLOAD_EXISTING_FILE):
// - |title| should be empty
// - |upload_location| should be the upload_url() of the existing file.
+// (resumable-edit-media URL)
struct InitiateUploadParams {
InitiateUploadParams(UploadMode upload_mode,
const std::string& title,
const std::string& content_type,
int64 content_length,
const GURL& upload_location,
- const FilePath& virtual_path);
+ const FilePath& drive_file_path);
~InitiateUploadParams();
- UploadMode upload_mode;
- std::string title;
- std::string content_type;
- int64 content_length;
- GURL upload_location;
- FilePath virtual_path;
+ const UploadMode upload_mode;
+ const std::string title;
+ const std::string content_type;
+ const int64 content_length;
+ const GURL upload_location;
+ const FilePath drive_file_path;
};
// Callback type for DocumentServiceInterface::InitiateUpload.
@@ -373,30 +396,39 @@ typedef base::Callback<void(GDataErrorCode error,
const GURL& upload_url)> InitiateUploadCallback;
// This class performs the operation for initiating the upload of a file.
+// |callback| will be called with the obtained upload URL. The URL will be
+// used with ResumeUploadOperation to upload the content to the server.
+//
+// Here's the flow of uploading:
+// 1) Get the upload URL with InitiateUploadOperation.
+// 2) Upload the first 512KB (see kUploadChunkSize in drive_uploader.cc)
+// of the target file to the upload URL
+// 3) If there is more data to upload, go to 2).
+//
class InitiateUploadOperation : public UrlFetchOperationBase {
public:
+ // |callback| will be called with the upload URL, where upload data is
+ // uploaded to with ResumeUploadOperation.
InitiateUploadOperation(OperationRegistry* registry,
const InitiateUploadCallback& callback,
const InitiateUploadParams& params);
virtual ~InitiateUploadOperation();
protected:
- // Overridden from UrlFetchOperationBase.
+ // UrlFetchOperationBase overrides.
virtual GURL GetURL() const OVERRIDE;
virtual void ProcessURLFetchResults(const net::URLFetcher* source) OVERRIDE;
virtual void NotifySuccessToOperationRegistry() OVERRIDE;
virtual void RunCallbackOnPrematureFailure(GDataErrorCode code) OVERRIDE;
-
- // Overridden from UrlFetchOperationBase.
virtual net::URLFetcher::RequestType GetRequestType() const OVERRIDE;
virtual std::vector<std::string> GetExtraRequestHeaders() const OVERRIDE;
virtual bool GetContentData(std::string* upload_content_type,
std::string* upload_content) OVERRIDE;
private:
- InitiateUploadCallback callback_;
- InitiateUploadParams params_;
- GURL initiate_upload_url_;
+ const InitiateUploadCallback callback_;
+ const InitiateUploadParams params_;
+ const GURL initiate_upload_url_;
DISALLOW_COPY_AND_ASSIGN(InitiateUploadOperation);
};
@@ -404,6 +436,7 @@ class InitiateUploadOperation : public UrlFetchOperationBase {
//============================ ResumeUploadOperation ===========================
// Struct for response to ResumeUpload.
+// TODO(satorux): Should return the next upload URL. crbug.com/163555
struct ResumeUploadResponse {
ResumeUploadResponse();
ResumeUploadResponse(GDataErrorCode code,
@@ -413,8 +446,8 @@ struct ResumeUploadResponse {
GDataErrorCode code;
int64 start_range_received;
- int64 end_range_received;
- FilePath virtual_path;
+ int64 end_range_received; // inclusive. See below.
+ FilePath drive_file_path;
};
// Struct for passing params needed for DriveServiceInterface::ResumeUpload()
@@ -427,19 +460,25 @@ struct ResumeUploadParams {
const std::string& content_type,
scoped_refptr<net::IOBuffer> buf,
const GURL& upload_location,
- const FilePath& virtual_path);
+ const FilePath& drive_file_path);
~ResumeUploadParams();
- UploadMode upload_mode; // Mode of the upload.
- int64 start_range; // Start of range of contents currently stored in |buf|.
- int64 end_range; // End of range of contents currently stored in |buf|.
- int64 content_length; // File content-Length.
- std::string content_type; // Content-Type of file.
- scoped_refptr<net::IOBuffer> buf; // Holds current content to be uploaded.
- GURL upload_location; // Url of where to upload the file to.
- // Virtual GData path of the file seen in the UI. Not necessary for
+ const UploadMode upload_mode; // Mode of the upload.
+ // Start of range of contents currently stored in |buf|.
+ const int64 start_range;
+ // End of range of contents currently stored in |buf|. This is inclusive.
+ // For instance, if you are to upload the first 500 bytes of date,
+ // |start_range| is 0 and |end_range| is 499.
+ const int64 end_range;
+ const int64 content_length; // File content-Length.
+ const std::string content_type; // Content-Type of file.
+ // Holds current content to be uploaded.
+ const scoped_refptr<net::IOBuffer> buf;
+ const GURL upload_location; // Url of where to upload the file to.
+ // Drive file path of the file seen in the UI. Not necessary for
// resuming an upload, but used for adding an entry to OperationRegistry.
- FilePath virtual_path;
+ // TODO(satorux): Remove the drive file path hack. crbug.com/163296
+ const FilePath drive_file_path;
};
// Callback type for DocumentServiceInterface::ResumeUpload.
@@ -448,34 +487,42 @@ typedef base::Callback<void(
scoped_ptr<google_apis::DocumentEntry> new_entry)> ResumeUploadCallback;
// This class performs the operation for resuming the upload of a file.
+// More specifically, this operation uploads a chunk of data carried in |buf|
+// of ResumeUploadResponse.
class ResumeUploadOperation : public UrlFetchOperationBase {
public:
+ // |callback| will be called on completion of the operation.
+ //
+ // If there is more data to upload, |code| in ResumeUploadParams is set to
+ // HTTP_RESUME_INCOMPLETE, and |new_entry| parameter is NULL.
+ //
+ // If upload is complete, |code| is set to HTTP_CREATED for a new file, or
+ // HTTP_SUCCES for an existing file. |new_entry| contains the document
+ // entry of the newly uploaded file.
ResumeUploadOperation(OperationRegistry* registry,
const ResumeUploadCallback& callback,
const ResumeUploadParams& params);
virtual ~ResumeUploadOperation();
protected:
- // Overridden from UrlFetchOperationBase.
+ // UrlFetchOperationBase overrides.
virtual GURL GetURL() const OVERRIDE;
virtual void ProcessURLFetchResults(const net::URLFetcher* source) OVERRIDE;
virtual void NotifyStartToOperationRegistry() OVERRIDE;
virtual void NotifySuccessToOperationRegistry() OVERRIDE;
virtual void RunCallbackOnPrematureFailure(GDataErrorCode code) OVERRIDE;
-
- // Overridden from UrlFetchOperationBase.
virtual net::URLFetcher::RequestType GetRequestType() const OVERRIDE;
virtual std::vector<std::string> GetExtraRequestHeaders() const OVERRIDE;
virtual bool GetContentData(std::string* upload_content_type,
std::string* upload_content) OVERRIDE;
- // Overridden from content::UrlFetcherDelegate
+ // content::UrlFetcherDelegate overrides.
virtual void OnURLFetchUploadProgress(const net::URLFetcher* source,
int64 current, int64 total) OVERRIDE;
private:
- ResumeUploadCallback callback_;
- ResumeUploadParams params_;
+ const ResumeUploadCallback callback_;
+ const ResumeUploadParams params_;
bool last_chunk_completed_;
DISALLOW_COPY_AND_ASSIGN(ResumeUploadOperation);
« 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