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

Unified Diff: chrome/browser/chromeos/gdata/gdata_wapi_feed_loader.cc

Issue 10836285: Refactor GDataWapiFeedLoader::LoadFromServer() parameters (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 8 years, 4 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/gdata_wapi_feed_loader.cc
diff --git a/chrome/browser/chromeos/gdata/gdata_wapi_feed_loader.cc b/chrome/browser/chromeos/gdata/gdata_wapi_feed_loader.cc
index b33094616da0af145a3adec49f6cc56892beb369..cc9219cfc091632f9075fc4bbc4c9e84b5b22860 100644
--- a/chrome/browser/chromeos/gdata/gdata_wapi_feed_loader.cc
+++ b/chrome/browser/chromeos/gdata/gdata_wapi_feed_loader.cc
@@ -138,18 +138,6 @@ bool UseLevelDB() {
} // namespace
-LoadRootFeedParams::LoadRootFeedParams(
- bool should_load_from_server,
- const FileOperationCallback& callback)
- : should_load_from_server(should_load_from_server),
- load_error(GDATA_FILE_OK),
- load_start_time(base::Time::Now()),
- callback(callback) {
-}
-
-LoadRootFeedParams::~LoadRootFeedParams() {
-}
-
GetDocumentsParams::GetDocumentsParams(
int64 start_changestamp,
int64 root_feed_changestamp,
@@ -173,6 +161,31 @@ GetDocumentsParams::~GetDocumentsParams() {
STLDeleteElements(feed_list.get());
}
+LoadRootFeedParams::LoadRootFeedParams(
+ bool should_load_from_server,
+ const FileOperationCallback& callback)
+ : should_load_from_server(should_load_from_server),
+ load_error(GDATA_FILE_OK),
+ load_start_time(base::Time::Now()),
+ callback(callback) {
+}
+
+LoadRootFeedParams::~LoadRootFeedParams() {
+}
+
+LoadFeedParams::LoadFeedParams(
+ ContentOrigin initial_origin,
+ const LoadDocumentFeedCallback& feed_load_callback)
+ : initial_origin(initial_origin),
+ start_changestamp(0),
+ root_feed_changestamp(0),
+ should_fetch_multiple_feeds(true),
+ feed_load_callback(feed_load_callback) {
+}
+
+LoadFeedParams::~LoadFeedParams() {
+}
+
// Defines set of parameters sent to callback OnNotifyDocumentFeedFetched().
// This is a trick to update the number of fetched documents frequently on
// UI. Due to performance reason, we need to fetch a number of files at
@@ -273,18 +286,16 @@ void GDataWapiFeedLoader::OnGetAccountMetadata(
scoped_ptr<base::Value> feed_data) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
+ LoadFeedParams param(initial_origin,
+ base::Bind(&GDataWapiFeedLoader::OnFeedFromServerLoaded,
+ weak_ptr_factory_.GetWeakPtr()));
+ param.start_changestamp = local_changestamp + 1;
+ param.load_finished_callback = callback;
+
GDataFileError error = util::GDataToGDataFileError(status);
if (error != GDATA_FILE_OK) {
// Get changes starting from the next changestamp from what we have locally.
- LoadFromServer(initial_origin,
- local_changestamp + 1, 0,
- true, /* should_fetch_multiple_feeds */
- std::string() /* no search query */,
- GURL(), /* feed not explicitly set */
- std::string() /* no directory resource ID */,
- callback,
- base::Bind(&GDataWapiFeedLoader::OnFeedFromServerLoaded,
- weak_ptr_factory_.GetWeakPtr()));
+ LoadFromServer(param);
return;
}
@@ -305,15 +316,7 @@ void GDataWapiFeedLoader::OnGetAccountMetadata(
}
if (!account_metadata.get()) {
- LoadFromServer(initial_origin,
- local_changestamp + 1, 0,
- true, /* should_fetch_multiple_feeds */
- std::string() /* no search query */,
- GURL(), /* feed not explicitly set */
- std::string() /* no directory resource ID */,
- callback,
- base::Bind(&GDataWapiFeedLoader::OnFeedFromServerLoaded,
- weak_ptr_factory_.GetWeakPtr()));
+ LoadFromServer(param);
return;
}
@@ -341,17 +344,10 @@ void GDataWapiFeedLoader::OnGetAccountMetadata(
return;
}
+ param.start_changestamp = local_changestamp > 0 ? local_changestamp + 1 : 0;
+ param.root_feed_changestamp = account_metadata->largest_changestamp();
// Load changes from the server.
- LoadFromServer(initial_origin,
- local_changestamp > 0 ? local_changestamp + 1 : 0,
- account_metadata->largest_changestamp(),
- true, /* should_fetch_multiple_feeds */
- std::string() /* no search query */,
- GURL(), /* feed not explicitly set */
- std::string() /* no directory resource ID */,
- callback,
- base::Bind(&GDataWapiFeedLoader::OnFeedFromServerLoaded,
- weak_ptr_factory_.GetWeakPtr()));
+ LoadFromServer(param);
}
void GDataWapiFeedLoader::OnGetAboutResource(
@@ -362,18 +358,15 @@ void GDataWapiFeedLoader::OnGetAboutResource(
scoped_ptr<base::Value> feed_data) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
+ LoadFeedParams param(initial_origin,
+ base::Bind(&GDataWapiFeedLoader::OnFeedFromServerLoaded,
+ weak_ptr_factory_.GetWeakPtr()));
+ param.load_finished_callback = callback;
+
GDataFileError error = util::GDataToGDataFileError(status);
if (error != GDATA_FILE_OK) {
// Get changes starting from the next changestamp from what we have locally.
- LoadFromServer(initial_origin,
- local_changestamp + 1, 0,
- true, /* should_fetch_multiple_feeds */
- std::string() /* no search query */,
- GURL(), /* feed not explicitly set */
- std::string() /* no directory resource ID */,
- callback,
- base::Bind(&GDataWapiFeedLoader::OnFeedFromServerLoaded,
- weak_ptr_factory_.GetWeakPtr()));
+ LoadFromServer(param);
return;
}
@@ -382,15 +375,7 @@ void GDataWapiFeedLoader::OnGetAboutResource(
about_resource = AboutResource::CreateFrom(*feed_data);
if (!about_resource.get()) {
- LoadFromServer(initial_origin,
- local_changestamp + 1, 0,
- true, /* should_fetch_multiple_feeds */
- std::string() /* no search query */,
- GURL(), /* feed not explicitly set */
- std::string() /* no directory resource ID */,
- callback,
- base::Bind(&GDataWapiFeedLoader::OnFeedFromServerLoaded,
- weak_ptr_factory_.GetWeakPtr()));
+ LoadFromServer(param);
return;
}
@@ -420,16 +405,9 @@ void GDataWapiFeedLoader::OnGetAboutResource(
}
// Load changes from the server.
- LoadFromServer(initial_origin,
- local_changestamp > 0 ? local_changestamp + 1 : 0,
- largest_changestamp,
- true, /* should_fetch_multiple_feeds */
- std::string() /* no search query */,
- GURL(), /* feed not explicitly set */
- std::string() /* no directory resource ID */,
- callback,
- base::Bind(&GDataWapiFeedLoader::OnFeedFromServerLoaded,
- weak_ptr_factory_.GetWeakPtr()));
+ param.start_changestamp = local_changestamp > 0 ? local_changestamp + 1 : 0;
+ param.root_feed_changestamp = largest_changestamp;
+ LoadFromServer(param);
}
void GDataWapiFeedLoader::OnGetApplicationList(
@@ -450,19 +428,8 @@ void GDataWapiFeedLoader::OnGetApplicationList(
}
}
-// TODO(kochi): Fix too many parameters. http://crbug.com/141359
-void GDataWapiFeedLoader::LoadFromServer(
- ContentOrigin initial_origin,
- int64 start_changestamp,
- int64 root_feed_changestamp,
- bool should_fetch_multiple_feeds,
- const std::string& search_query,
- const GURL& feed_to_load,
- const std::string& directory_resource_id,
- const FileOperationCallback& load_finished_callback,
- const LoadDocumentFeedCallback& feed_load_callback) {
+void GDataWapiFeedLoader::LoadFromServer(const LoadFeedParams& param) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
- DCHECK(!feed_load_callback.is_null());
// |feed_list| will contain the list of all collected feed updates that
// we will receive through calls of DocumentsService::GetDocuments().
@@ -472,42 +439,43 @@ void GDataWapiFeedLoader::LoadFromServer(
if (gdata::util::IsDriveV2ApiEnabled()) {
documents_service_->GetChangelist(
- feed_to_load,
- start_changestamp,
+ param.feed_to_load,
+ param.start_changestamp,
base::Bind(&GDataWapiFeedLoader::OnGetChangelist,
weak_ptr_factory_.GetWeakPtr(),
- initial_origin,
- feed_load_callback,
+ param.initial_origin,
+ param.feed_load_callback,
base::Owned(new GetDocumentsParams(
- start_changestamp,
- root_feed_changestamp,
+ param.start_changestamp,
+ param.root_feed_changestamp,
feed_list.release(),
- should_fetch_multiple_feeds,
- search_query,
- directory_resource_id,
- load_finished_callback,
+ param.should_fetch_multiple_feeds,
+ param.search_query,
+ param.directory_resource_id,
+ param.load_finished_callback,
NULL)),
start_time));
return;
}
documents_service_->GetDocuments(
- feed_to_load,
- start_changestamp,
- search_query,
- directory_resource_id,
+ param.feed_to_load,
+ param.start_changestamp,
+ param.search_query,
+ param.directory_resource_id,
base::Bind(&GDataWapiFeedLoader::OnGetDocuments,
weak_ptr_factory_.GetWeakPtr(),
- initial_origin,
- feed_load_callback,
- base::Owned(new GetDocumentsParams(start_changestamp,
- root_feed_changestamp,
- feed_list.release(),
- should_fetch_multiple_feeds,
- search_query,
- directory_resource_id,
- load_finished_callback,
- NULL)),
+ param.initial_origin,
+ param.feed_load_callback,
+ base::Owned(
+ new GetDocumentsParams(param.start_changestamp,
+ param.root_feed_changestamp,
+ feed_list.release(),
+ param.should_fetch_multiple_feeds,
+ param.search_query,
+ param.directory_resource_id,
+ param.load_finished_callback,
+ NULL)),
start_time));
}

Powered by Google App Engine
This is Rietveld 408576698