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

Unified Diff: chrome/browser/chromeos/gdata/operations_base.h

Issue 10808027: gdrive: Get JSON feeds parsing off the UI thread. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: making OnDataParsed() a private method of GetDataOperation Created 8 years, 5 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/chromeos/gdata/operations_base.h
diff --git a/chrome/browser/chromeos/gdata/operations_base.h b/chrome/browser/chromeos/gdata/operations_base.h
index 2be8f65d1cc9b355d8d43fbc14abcf2cd004a599..f3e7b25d4c7468b8bb3fa2f09e5b5c3790859fab 100644
--- a/chrome/browser/chromeos/gdata/operations_base.h
+++ b/chrome/browser/chromeos/gdata/operations_base.h
@@ -112,7 +112,7 @@ class UrlFetchOperationBase : public GDataOperationInterface,
// Invoked by OnURLFetchComplete when the operation completes without an
// authentication error. Must be implemented by a derived class.
- virtual bool ProcessURLFetchResults(const net::URLFetcher* source) = 0;
+ virtual void ProcessURLFetchResults(const net::URLFetcher* source) = 0;
// Invoked when it needs to notify the status. Chunked operations that
// constructs a logically single operation from multiple physical operations
@@ -130,6 +130,9 @@ class UrlFetchOperationBase : public GDataOperationInterface,
// Overridden from URLFetcherDelegate.
virtual void OnURLFetchComplete(const net::URLFetcher* source) OVERRIDE;
+ // Invoked when ProcessURLFetchResults() is completed.
+ virtual void OnProcessURLFetchResultsComplete(bool result) OVERRIDE;
+
// Overridden from GDataOperationInterface.
virtual void OnAuthFailed(GDataErrorCode code) OVERRIDE;
@@ -163,7 +166,7 @@ class EntryActionOperation : public UrlFetchOperationBase {
protected:
// Overridden from UrlFetchOperationBase.
- virtual bool ProcessURLFetchResults(const net::URLFetcher* source) OVERRIDE;
+ virtual void ProcessURLFetchResults(const net::URLFetcher* source) OVERRIDE;
virtual void RunCallbackOnPrematureFailure(GDataErrorCode code) OVERRIDE;
const GURL& document_url() const { return document_url_; }
@@ -186,14 +189,23 @@ class GetDataOperation : public UrlFetchOperationBase {
virtual ~GetDataOperation();
// Parse GData JSON response.
- virtual base::Value* ParseResponse(const std::string& data);
+ virtual void ParseResponse(GDataErrorCode fetch_error_code,
+ const std::string& data);
protected:
// Overridden from UrlFetchOperationBase.
- virtual bool ProcessURLFetchResults(const net::URLFetcher* source) OVERRIDE;
- virtual void RunCallbackOnPrematureFailure(GDataErrorCode code) OVERRIDE;
+ virtual void ProcessURLFetchResults(const net::URLFetcher* source) OVERRIDE;
+ virtual void RunCallbackOnPrematureFailure(
+ GDataErrorCode fetch_error_code) OVERRIDE;
+ void RunCallback(GDataErrorCode fetch_error_code,
+ scoped_ptr<base::Value> value);
private:
+ // Called when ParseJsonOnBlockingPool() is completed.
+ void OnDataParsed(gdata::GDataErrorCode fetch_error_code,
+ scoped_ptr<base::Value>* value,
+ const gdata::GetDataCallback& callback);
+
GetDataCallback callback_;
DISALLOW_COPY_AND_ASSIGN(GetDataOperation);
};

Powered by Google App Engine
This is Rietveld 408576698