drive: Stop returning ResourceList from JobScheduler

BUG=231125
TEST=git cl try

Review URL: https://codereview.chromium.org/318873003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@275410 0039d316-1c4b-4281-b951-d872f2087c98
parent bd92cc08
...@@ -19,7 +19,6 @@ ...@@ -19,7 +19,6 @@
#include "chrome/browser/drive/event_logger.h" #include "chrome/browser/drive/event_logger.h"
#include "content/public/browser/browser_thread.h" #include "content/public/browser/browser_thread.h"
#include "google_apis/drive/drive_api_parser.h" #include "google_apis/drive/drive_api_parser.h"
#include "google_apis/drive/gdata_wapi_parser.h"
#include "url/gurl.h" #include "url/gurl.h"
using content::BrowserThread; using content::BrowserThread;
...@@ -57,16 +56,15 @@ class FullFeedFetcher : public ChangeListLoader::FeedFetcher { ...@@ -57,16 +56,15 @@ class FullFeedFetcher : public ChangeListLoader::FeedFetcher {
start_time_ = base::TimeTicks::Now(); start_time_ = base::TimeTicks::Now();
// This is full resource list fetch. // This is full resource list fetch.
scheduler_->GetAllResourceList( scheduler_->GetAllFileList(
base::Bind(&FullFeedFetcher::OnFileListFetched, base::Bind(&FullFeedFetcher::OnFileListFetched,
weak_ptr_factory_.GetWeakPtr(), callback)); weak_ptr_factory_.GetWeakPtr(), callback));
} }
private: private:
void OnFileListFetched( void OnFileListFetched(const FeedFetcherCallback& callback,
const FeedFetcherCallback& callback,
google_apis::GDataErrorCode status, google_apis::GDataErrorCode status,
scoped_ptr<google_apis::ResourceList> resource_list) { scoped_ptr<google_apis::FileList> file_list) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
DCHECK(!callback.is_null()); DCHECK(!callback.is_null());
...@@ -76,14 +74,13 @@ class FullFeedFetcher : public ChangeListLoader::FeedFetcher { ...@@ -76,14 +74,13 @@ class FullFeedFetcher : public ChangeListLoader::FeedFetcher {
return; return;
} }
DCHECK(resource_list); DCHECK(file_list);
change_lists_.push_back(new ChangeList(*resource_list)); change_lists_.push_back(new ChangeList(*file_list));
GURL next_url; if (!file_list->next_link().is_empty()) {
if (resource_list->GetNextFeedURL(&next_url) && !next_url.is_empty()) {
// There is the remaining result so fetch it. // There is the remaining result so fetch it.
scheduler_->GetRemainingFileList( scheduler_->GetRemainingFileList(
next_url, file_list->next_link(),
base::Bind(&FullFeedFetcher::OnFileListFetched, base::Bind(&FullFeedFetcher::OnFileListFetched,
weak_ptr_factory_.GetWeakPtr(), callback)); weak_ptr_factory_.GetWeakPtr(), callback));
return; return;
...@@ -128,10 +125,9 @@ class DeltaFeedFetcher : public ChangeListLoader::FeedFetcher { ...@@ -128,10 +125,9 @@ class DeltaFeedFetcher : public ChangeListLoader::FeedFetcher {
} }
private: private:
void OnChangeListFetched( void OnChangeListFetched(const FeedFetcherCallback& callback,
const FeedFetcherCallback& callback,
google_apis::GDataErrorCode status, google_apis::GDataErrorCode status,
scoped_ptr<google_apis::ResourceList> resource_list) { scoped_ptr<google_apis::ChangeList> change_list) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
DCHECK(!callback.is_null()); DCHECK(!callback.is_null());
...@@ -141,14 +137,13 @@ class DeltaFeedFetcher : public ChangeListLoader::FeedFetcher { ...@@ -141,14 +137,13 @@ class DeltaFeedFetcher : public ChangeListLoader::FeedFetcher {
return; return;
} }
DCHECK(resource_list); DCHECK(change_list);
change_lists_.push_back(new ChangeList(*resource_list)); change_lists_.push_back(new ChangeList(*change_list));
GURL next_url; if (!change_list->next_link().is_empty()) {
if (resource_list->GetNextFeedURL(&next_url) && !next_url.is_empty()) {
// There is the remaining result so fetch it. // There is the remaining result so fetch it.
scheduler_->GetRemainingChangeList( scheduler_->GetRemainingChangeList(
next_url, change_list->next_link(),
base::Bind(&DeltaFeedFetcher::OnChangeListFetched, base::Bind(&DeltaFeedFetcher::OnChangeListFetched,
weak_ptr_factory_.GetWeakPtr(), callback)); weak_ptr_factory_.GetWeakPtr(), callback));
return; return;
......
...@@ -10,6 +10,7 @@ ...@@ -10,6 +10,7 @@
#include "chrome/browser/chromeos/drive/file_system_util.h" #include "chrome/browser/chromeos/drive/file_system_util.h"
#include "chrome/browser/chromeos/drive/resource_entry_conversion.h" #include "chrome/browser/chromeos/drive/resource_entry_conversion.h"
#include "chrome/browser/chromeos/drive/resource_metadata.h" #include "chrome/browser/chromeos/drive/resource_metadata.h"
#include "chrome/browser/drive/drive_api_util.h"
#include "google_apis/drive/drive_api_parser.h" #include "google_apis/drive/drive_api_parser.h"
#include "google_apis/drive/gdata_wapi_parser.h" #include "google_apis/drive/gdata_wapi_parser.h"
...@@ -72,15 +73,35 @@ std::string DirectoryFetchInfo::ToString() const { ...@@ -72,15 +73,35 @@ std::string DirectoryFetchInfo::ToString() const {
ChangeList::ChangeList() {} ChangeList::ChangeList() {}
ChangeList::ChangeList(const google_apis::ResourceList& resource_list) ChangeList::ChangeList(const google_apis::ChangeList& change_list)
: largest_changestamp_(resource_list.largest_changestamp()) { : next_url_(change_list.next_link()),
resource_list.GetNextFeedURL(&next_url_); largest_changestamp_(change_list.largest_change_id()) {
const ScopedVector<google_apis::ChangeResource>& items = change_list.items();
entries_.resize(items.size());
parent_resource_ids_.resize(items.size());
size_t entries_index = 0;
for (size_t i = 0; i < items.size(); ++i) {
if (ConvertToResourceEntry(
*util::ConvertChangeResourceToResourceEntry(*items[i]),
&entries_[entries_index],
&parent_resource_ids_[entries_index])) {
++entries_index;
}
}
entries_.resize(entries_index);
parent_resource_ids_.resize(entries_index);
}
entries_.resize(resource_list.entries().size()); ChangeList::ChangeList(const google_apis::FileList& file_list)
parent_resource_ids_.resize(resource_list.entries().size()); : next_url_(file_list.next_link()),
largest_changestamp_(0) {
const ScopedVector<google_apis::FileResource>& items = file_list.items();
entries_.resize(items.size());
parent_resource_ids_.resize(items.size());
size_t entries_index = 0; size_t entries_index = 0;
for (size_t i = 0; i < resource_list.entries().size(); ++i) { for (size_t i = 0; i < items.size(); ++i) {
if (ConvertToResourceEntry(*resource_list.entries()[i], if (ConvertToResourceEntry(
*util::ConvertFileResourceToResourceEntry(*items[i]),
&entries_[entries_index], &entries_[entries_index],
&parent_resource_ids_[entries_index])) { &parent_resource_ids_[entries_index])) {
++entries_index; ++entries_index;
......
...@@ -17,7 +17,8 @@ ...@@ -17,7 +17,8 @@
namespace google_apis { namespace google_apis {
class AboutResource; class AboutResource;
class ResourceList; class ChangeList;
class FileList;
} // google_apis } // google_apis
namespace drive { namespace drive {
...@@ -67,7 +68,8 @@ class DirectoryFetchInfo { ...@@ -67,7 +68,8 @@ class DirectoryFetchInfo {
class ChangeList { class ChangeList {
public: public:
ChangeList(); // For tests. ChangeList(); // For tests.
explicit ChangeList(const google_apis::ResourceList& resource_list); explicit ChangeList(const google_apis::ChangeList& change_list);
explicit ChangeList(const google_apis::FileList& file_list);
~ChangeList(); ~ChangeList();
const std::vector<ResourceEntry>& entries() const { return entries_; } const std::vector<ResourceEntry>& entries() const { return entries_; }
......
...@@ -18,7 +18,6 @@ ...@@ -18,7 +18,6 @@
#include "chrome/browser/drive/event_logger.h" #include "chrome/browser/drive/event_logger.h"
#include "content/public/browser/browser_thread.h" #include "content/public/browser/browser_thread.h"
#include "google_apis/drive/drive_api_parser.h" #include "google_apis/drive/drive_api_parser.h"
#include "google_apis/drive/gdata_wapi_parser.h"
#include "url/gurl.h" #include "url/gurl.h"
using content::BrowserThread; using content::BrowserThread;
...@@ -114,17 +113,16 @@ class DirectoryLoader::FeedFetcher { ...@@ -114,17 +113,16 @@ class DirectoryLoader::FeedFetcher {
// Remember the time stamp for usage stats. // Remember the time stamp for usage stats.
start_time_ = base::TimeTicks::Now(); start_time_ = base::TimeTicks::Now();
loader_->scheduler_->GetResourceListInDirectory( loader_->scheduler_->GetFileListInDirectory(
directory_fetch_info_.resource_id(), directory_fetch_info_.resource_id(),
base::Bind(&FeedFetcher::OnResourceListFetched, base::Bind(&FeedFetcher::OnFileListFetched,
weak_ptr_factory_.GetWeakPtr(), callback)); weak_ptr_factory_.GetWeakPtr(), callback));
} }
private: private:
void OnResourceListFetched( void OnFileListFetched(const FileOperationCallback& callback,
const FileOperationCallback& callback,
google_apis::GDataErrorCode status, google_apis::GDataErrorCode status,
scoped_ptr<google_apis::ResourceList> resource_list) { scoped_ptr<google_apis::FileList> file_list) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
DCHECK(!callback.is_null()); DCHECK(!callback.is_null());
...@@ -134,11 +132,9 @@ class DirectoryLoader::FeedFetcher { ...@@ -134,11 +132,9 @@ class DirectoryLoader::FeedFetcher {
return; return;
} }
DCHECK(resource_list); DCHECK(file_list);
scoped_ptr<ChangeList> change_list(new ChangeList(*resource_list)); scoped_ptr<ChangeList> change_list(new ChangeList(*file_list));
GURL next_url = file_list->next_link();
GURL next_url;
resource_list->GetNextFeedURL(&next_url);
ResourceEntryVector* entries = new ResourceEntryVector; ResourceEntryVector* entries = new ResourceEntryVector;
loader_->loader_controller_->ScheduleRun(base::Bind( loader_->loader_controller_->ScheduleRun(base::Bind(
...@@ -177,7 +173,7 @@ class DirectoryLoader::FeedFetcher { ...@@ -177,7 +173,7 @@ class DirectoryLoader::FeedFetcher {
// There is the remaining result so fetch it. // There is the remaining result so fetch it.
loader_->scheduler_->GetRemainingFileList( loader_->scheduler_->GetRemainingFileList(
next_url, next_url,
base::Bind(&FeedFetcher::OnResourceListFetched, base::Bind(&FeedFetcher::OnFileListFetched,
weak_ptr_factory_.GetWeakPtr(), callback)); weak_ptr_factory_.GetWeakPtr(), callback));
return; return;
} }
......
...@@ -16,7 +16,9 @@ ...@@ -16,7 +16,9 @@
#include "chrome/browser/chromeos/drive/job_scheduler.h" #include "chrome/browser/chromeos/drive/job_scheduler.h"
#include "chrome/browser/chromeos/drive/resource_entry_conversion.h" #include "chrome/browser/chromeos/drive/resource_entry_conversion.h"
#include "chrome/browser/chromeos/drive/resource_metadata.h" #include "chrome/browser/chromeos/drive/resource_metadata.h"
#include "chrome/browser/drive/drive_api_util.h"
#include "content/public/browser/browser_thread.h" #include "content/public/browser/browser_thread.h"
#include "google_apis/drive/drive_api_parser.h"
#include "google_apis/drive/gdata_wapi_parser.h" #include "google_apis/drive/gdata_wapi_parser.h"
#include "url/gurl.h" #include "url/gurl.h"
...@@ -26,24 +28,23 @@ namespace drive { ...@@ -26,24 +28,23 @@ namespace drive {
namespace file_system { namespace file_system {
namespace { namespace {
// Computes the path of each item in |resource_list| returned from the server // Computes the path of each item in |file_list| returned from the server
// and stores to |result|, by using |resource_metadata|. If the metadata is not // and stores to |result|, by using |resource_metadata|. If the metadata is not
// up-to-date and did not contain an item, adds the item to "drive/other" for // up-to-date and did not contain an item, adds the item to "drive/other" for
// temporally assigning a path. // temporally assigning a path.
FileError ResolveSearchResultOnBlockingPool( FileError ResolveSearchResultOnBlockingPool(
internal::ResourceMetadata* resource_metadata, internal::ResourceMetadata* resource_metadata,
scoped_ptr<google_apis::ResourceList> resource_list, scoped_ptr<google_apis::FileList> file_list,
std::vector<SearchResultInfo>* result) { std::vector<SearchResultInfo>* result) {
DCHECK(resource_metadata); DCHECK(resource_metadata);
DCHECK(result); DCHECK(result);
const ScopedVector<google_apis::ResourceEntry>& entries = const ScopedVector<google_apis::FileResource>& entries = file_list->items();
resource_list->entries();
result->reserve(entries.size()); result->reserve(entries.size());
for (size_t i = 0; i < entries.size(); ++i) { for (size_t i = 0; i < entries.size(); ++i) {
std::string local_id; std::string local_id;
FileError error = resource_metadata->GetIdByResourceId( FileError error = resource_metadata->GetIdByResourceId(
entries[i]->resource_id(), &local_id); entries[i]->file_id(), &local_id);
ResourceEntry entry; ResourceEntry entry;
if (error == FILE_ERROR_OK) if (error == FILE_ERROR_OK)
...@@ -51,7 +52,9 @@ FileError ResolveSearchResultOnBlockingPool( ...@@ -51,7 +52,9 @@ FileError ResolveSearchResultOnBlockingPool(
if (error == FILE_ERROR_NOT_FOUND) { if (error == FILE_ERROR_NOT_FOUND) {
std::string original_parent_id; std::string original_parent_id;
if (!ConvertToResourceEntry(*entries[i], &entry, &original_parent_id)) if (!ConvertToResourceEntry(
*util::ConvertFileResourceToResourceEntry(*entries[i]),
&entry, &original_parent_id))
continue; // Skip non-file entries. continue; // Skip non-file entries.
// The result is absent in local resource metadata. This can happen if // The result is absent in local resource metadata. This can happen if
...@@ -104,21 +107,21 @@ void SearchOperation::Search(const std::string& search_query, ...@@ -104,21 +107,21 @@ void SearchOperation::Search(const std::string& search_query,
// This is first request for the |search_query|. // This is first request for the |search_query|.
scheduler_->Search( scheduler_->Search(
search_query, search_query,
base::Bind(&SearchOperation::SearchAfterGetResourceList, base::Bind(&SearchOperation::SearchAfterGetFileList,
weak_ptr_factory_.GetWeakPtr(), callback)); weak_ptr_factory_.GetWeakPtr(), callback));
} else { } else {
// There is the remaining result so fetch it. // There is the remaining result so fetch it.
scheduler_->GetRemainingFileList( scheduler_->GetRemainingFileList(
next_link, next_link,
base::Bind(&SearchOperation::SearchAfterGetResourceList, base::Bind(&SearchOperation::SearchAfterGetFileList,
weak_ptr_factory_.GetWeakPtr(), callback)); weak_ptr_factory_.GetWeakPtr(), callback));
} }
} }
void SearchOperation::SearchAfterGetResourceList( void SearchOperation::SearchAfterGetFileList(
const SearchCallback& callback, const SearchCallback& callback,
google_apis::GDataErrorCode gdata_error, google_apis::GDataErrorCode gdata_error,
scoped_ptr<google_apis::ResourceList> resource_list) { scoped_ptr<google_apis::FileList> file_list) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
DCHECK(!callback.is_null()); DCHECK(!callback.is_null());
...@@ -128,14 +131,13 @@ void SearchOperation::SearchAfterGetResourceList( ...@@ -128,14 +131,13 @@ void SearchOperation::SearchAfterGetResourceList(
return; return;
} }
DCHECK(resource_list); DCHECK(file_list);
GURL next_url; GURL next_url = file_list->next_link();
resource_list->GetNextFeedURL(&next_url);
scoped_ptr<std::vector<SearchResultInfo> > result( scoped_ptr<std::vector<SearchResultInfo> > result(
new std::vector<SearchResultInfo>); new std::vector<SearchResultInfo>);
if (resource_list->entries().empty()) { if (file_list->items().empty()) {
// Short cut. If the resource entry is empty, we don't need to refresh // Short cut. If the resource entry is empty, we don't need to refresh
// the resource metadata. // the resource metadata.
callback.Run(FILE_ERROR_OK, next_url, result.Pass()); callback.Run(FILE_ERROR_OK, next_url, result.Pass());
...@@ -153,7 +155,7 @@ void SearchOperation::SearchAfterGetResourceList( ...@@ -153,7 +155,7 @@ void SearchOperation::SearchAfterGetResourceList(
FROM_HERE, FROM_HERE,
base::Bind(&ResolveSearchResultOnBlockingPool, base::Bind(&ResolveSearchResultOnBlockingPool,
metadata_, metadata_,
base::Passed(&resource_list), base::Passed(&file_list),
result_ptr), result_ptr),
base::Bind(&SearchOperation::SearchAfterResolveSearchResult, base::Bind(&SearchOperation::SearchAfterResolveSearchResult,
weak_ptr_factory_.GetWeakPtr(), weak_ptr_factory_.GetWeakPtr(),
......
...@@ -18,8 +18,7 @@ class SequencedTaskRunner; ...@@ -18,8 +18,7 @@ class SequencedTaskRunner;
} // namespace base } // namespace base
namespace google_apis { namespace google_apis {
class ResourceEntry; class FileList;
class ResourceList;
} // namespace google_apis } // namespace google_apis
namespace drive { namespace drive {
...@@ -54,11 +53,11 @@ class SearchOperation { ...@@ -54,11 +53,11 @@ class SearchOperation {
const SearchCallback& callback); const SearchCallback& callback);
private: private:
// Part of Search(), called after the ResourceList is fetched from the server. // Part of Search(), called after the FileList is fetched from the server.
void SearchAfterGetResourceList( void SearchAfterGetFileList(
const SearchCallback& callback, const SearchCallback& callback,
google_apis::GDataErrorCode gdata_error, google_apis::GDataErrorCode gdata_error,
scoped_ptr<google_apis::ResourceList> resource_list); scoped_ptr<google_apis::FileList> file_list);
// Part of Search(), called after |result| is filled on the blocking pool. // Part of Search(), called after |result| is filled on the blocking pool.
void SearchAfterResolveSearchResult( void SearchAfterResolveSearchResult(
......
...@@ -269,8 +269,8 @@ void JobScheduler::GetAppList(const google_apis::AppListCallback& callback) { ...@@ -269,8 +269,8 @@ void JobScheduler::GetAppList(const google_apis::AppListCallback& callback) {
StartJob(new_job); StartJob(new_job);
} }
void JobScheduler::GetAllResourceList( void JobScheduler::GetAllFileList(
const google_apis::GetResourceListCallback& callback) { const google_apis::FileListCallback& callback) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
DCHECK(!callback.is_null()); DCHECK(!callback.is_null());
...@@ -286,9 +286,9 @@ void JobScheduler::GetAllResourceList( ...@@ -286,9 +286,9 @@ void JobScheduler::GetAllResourceList(
StartJob(new_job); StartJob(new_job);
} }
void JobScheduler::GetResourceListInDirectory( void JobScheduler::GetFileListInDirectory(
const std::string& directory_resource_id, const std::string& directory_resource_id,
const google_apis::GetResourceListCallback& callback) { const google_apis::FileListCallback& callback) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
DCHECK(!callback.is_null()); DCHECK(!callback.is_null());
...@@ -306,9 +306,8 @@ void JobScheduler::GetResourceListInDirectory( ...@@ -306,9 +306,8 @@ void JobScheduler::GetResourceListInDirectory(
StartJob(new_job); StartJob(new_job);
} }
void JobScheduler::Search( void JobScheduler::Search(const std::string& search_query,
const std::string& search_query, const google_apis::FileListCallback& callback) {
const google_apis::GetResourceListCallback& callback) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
DCHECK(!callback.is_null()); DCHECK(!callback.is_null());
...@@ -327,7 +326,7 @@ void JobScheduler::Search( ...@@ -327,7 +326,7 @@ void JobScheduler::Search(
void JobScheduler::GetChangeList( void JobScheduler::GetChangeList(
int64 start_changestamp, int64 start_changestamp,
const google_apis::GetResourceListCallback& callback) { const google_apis::ChangeListCallback& callback) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
DCHECK(!callback.is_null()); DCHECK(!callback.is_null());
...@@ -346,7 +345,7 @@ void JobScheduler::GetChangeList( ...@@ -346,7 +345,7 @@ void JobScheduler::GetChangeList(
void JobScheduler::GetRemainingChangeList( void JobScheduler::GetRemainingChangeList(
const GURL& next_link, const GURL& next_link,
const google_apis::GetResourceListCallback& callback) { const google_apis::ChangeListCallback& callback) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
DCHECK(!callback.is_null()); DCHECK(!callback.is_null());
...@@ -365,7 +364,7 @@ void JobScheduler::GetRemainingChangeList( ...@@ -365,7 +364,7 @@ void JobScheduler::GetRemainingChangeList(
void JobScheduler::GetRemainingFileList( void JobScheduler::GetRemainingFileList(
const GURL& next_link, const GURL& next_link,
const google_apis::GetResourceListCallback& callback) { const google_apis::FileListCallback& callback) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
DCHECK(!callback.is_null()); DCHECK(!callback.is_null());
...@@ -902,33 +901,26 @@ bool JobScheduler::OnJobDone(JobID job_id, google_apis::GDataErrorCode error) { ...@@ -902,33 +901,26 @@ bool JobScheduler::OnJobDone(JobID job_id, google_apis::GDataErrorCode error) {
void JobScheduler::OnGetFileListJobDone( void JobScheduler::OnGetFileListJobDone(
JobID job_id, JobID job_id,
const google_apis::GetResourceListCallback& callback, const google_apis::FileListCallback& callback,
google_apis::GDataErrorCode error, google_apis::GDataErrorCode error,
scoped_ptr<google_apis::FileList> file_list) { scoped_ptr<google_apis::FileList> file_list) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
DCHECK(!callback.is_null()); DCHECK(!callback.is_null());
if (OnJobDone(job_id, error)) { if (OnJobDone(job_id, error))
callback.Run(error, file_list ? callback.Run(error, file_list.Pass());
util::ConvertFileListToResourceList(*file_list) :
scoped_ptr<google_apis::ResourceList>());
}
} }
void JobScheduler::OnGetChangeListJobDone( void JobScheduler::OnGetChangeListJobDone(
JobID job_id, JobID job_id,
const google_apis::GetResourceListCallback& callback, const google_apis::ChangeListCallback& callback,
google_apis::GDataErrorCode error, google_apis::GDataErrorCode error,
scoped_ptr<google_apis::ChangeList> change_list) { scoped_ptr<google_apis::ChangeList> change_list) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
DCHECK(!callback.is_null()); DCHECK(!callback.is_null());
if (OnJobDone(job_id, error)) { if (OnJobDone(job_id, error))
callback.Run(error, change_list ? callback.Run(error, change_list.Pass());
util::ConvertChangeListToResourceList(*change_list) :
scoped_ptr<google_apis::ResourceList>());
}
} }
void JobScheduler::OnGetFileResourceJobDone( void JobScheduler::OnGetFileResourceJobDone(
......
...@@ -83,37 +83,34 @@ class JobScheduler ...@@ -83,37 +83,34 @@ class JobScheduler
// |callback| must not be null. // |callback| must not be null.
void GetAboutResource(const google_apis::AboutResourceCallback& callback); void GetAboutResource(const google_apis::AboutResourceCallback& callback);
// Adds a GetAllResourceList operation to the queue. // Adds a GetAllFileList operation to the queue.
// |callback| must not be null. // |callback| must not be null.
void GetAllResourceList(const google_apis::GetResourceListCallback& callback); void GetAllFileList(const google_apis::FileListCallback& callback);
// Adds a GetResourceListInDirectory operation to the queue. // Adds a GetFileListInDirectory operation to the queue.
// |callback| must not be null. // |callback| must not be null.
void GetResourceListInDirectory( void GetFileListInDirectory(const std::string& directory_resource_id,
const std::string& directory_resource_id, const google_apis::FileListCallback& callback);
const google_apis::GetResourceListCallback& callback);
// Adds a Search operation to the queue. // Adds a Search operation to the queue.
// |callback| must not be null. // |callback| must not be null.
void Search(const std::string& search_query, void Search(const std::string& search_query,
const google_apis::GetResourceListCallback& callback); const google_apis::FileListCallback& callback);
// Adds a GetChangeList operation to the queue. // Adds a GetChangeList operation to the queue.
// |callback| must not be null. // |callback| must not be null.
void GetChangeList(int64 start_changestamp, void GetChangeList(int64 start_changestamp,
const google_apis::GetResourceListCallback& callback); const google_apis::ChangeListCallback& callback);
// Adds GetRemainingChangeList operation to the queue. // Adds GetRemainingChangeList operation to the queue.
// |callback| must not be null. // |callback| must not be null.
void GetRemainingChangeList( void GetRemainingChangeList(const GURL& next_link,
const GURL& next_link, const google_apis::ChangeListCallback& callback);
const google_apis::GetResourceListCallback& callback);
// Adds GetRemainingFileList operation to the queue. // Adds GetRemainingFileList operation to the queue.
// |callback| must not be null. // |callback| must not be null.
void GetRemainingFileList( void GetRemainingFileList(const GURL& next_link,
const GURL& next_link, const google_apis::FileListCallback& callback);
const google_apis::GetResourceListCallback& callback);
// Adds a GetResourceEntry operation to the queue. // Adds a GetResourceEntry operation to the queue.
void GetResourceEntry(const std::string& resource_id, void GetResourceEntry(const std::string& resource_id,
...@@ -278,14 +275,14 @@ class JobScheduler ...@@ -278,14 +275,14 @@ class JobScheduler
// Callback for job finishing with a FileListCallback. // Callback for job finishing with a FileListCallback.
void OnGetFileListJobDone( void OnGetFileListJobDone(
JobID job_id, JobID job_id,
const google_apis::GetResourceListCallback& callback, const google_apis::FileListCallback& callback,
google_apis::GDataErrorCode error, google_apis::GDataErrorCode error,
scoped_ptr<google_apis::FileList> file_list); scoped_ptr<google_apis::FileList> file_list);
// Callback for job finishing with a ChangeListCallback. // Callback for job finishing with a ChangeListCallback.
void OnGetChangeListJobDone( void OnGetChangeListJobDone(
JobID job_id, JobID job_id,
const google_apis::GetResourceListCallback& callback, const google_apis::ChangeListCallback& callback,
google_apis::GDataErrorCode error, google_apis::GDataErrorCode error,
scoped_ptr<google_apis::ChangeList> change_list); scoped_ptr<google_apis::ChangeList> change_list);
......
...@@ -217,51 +217,48 @@ TEST_F(JobSchedulerTest, GetAppList) { ...@@ -217,51 +217,48 @@ TEST_F(JobSchedulerTest, GetAppList) {
ASSERT_TRUE(app_list); ASSERT_TRUE(app_list);
} }
TEST_F(JobSchedulerTest, GetAllResourceList) { TEST_F(JobSchedulerTest, GetAllFileList) {
ConnectToWifi(); ConnectToWifi();
google_apis::GDataErrorCode error = google_apis::GDATA_OTHER_ERROR; google_apis::GDataErrorCode error = google_apis::GDATA_OTHER_ERROR;
scoped_ptr<google_apis::ResourceList> resource_list; scoped_ptr<google_apis::FileList> file_list;
scheduler_->GetAllResourceList( scheduler_->GetAllFileList(
google_apis::test_util::CreateCopyResultCallback( google_apis::test_util::CreateCopyResultCallback(&error, &file_list));
&error, &resource_list));
base::RunLoop().RunUntilIdle(); base::RunLoop().RunUntilIdle();
ASSERT_EQ(google_apis::HTTP_SUCCESS, error); ASSERT_EQ(google_apis::HTTP_SUCCESS, error);
ASSERT_TRUE(resource_list); ASSERT_TRUE(file_list);
} }
TEST_F(JobSchedulerTest, GetResourceListInDirectory) { TEST_F(JobSchedulerTest, GetFileListInDirectory) {
ConnectToWifi(); ConnectToWifi();
google_apis::GDataErrorCode error = google_apis::GDATA_OTHER_ERROR; google_apis::GDataErrorCode error = google_apis::GDATA_OTHER_ERROR;
scoped_ptr<google_apis::ResourceList> resource_list; scoped_ptr<google_apis::FileList> file_list;
scheduler_->GetResourceListInDirectory( scheduler_->GetFileListInDirectory(
fake_drive_service_->GetRootResourceId(), fake_drive_service_->GetRootResourceId(),
google_apis::test_util::CreateCopyResultCallback( google_apis::test_util::CreateCopyResultCallback(&error, &file_list));
&error, &resource_list));
base::RunLoop().RunUntilIdle(); base::RunLoop().RunUntilIdle();
ASSERT_EQ(google_apis::HTTP_SUCCESS, error); ASSERT_EQ(google_apis::HTTP_SUCCESS, error);
ASSERT_TRUE(resource_list); ASSERT_TRUE(file_list);
} }
TEST_F(JobSchedulerTest, Search) { TEST_F(JobSchedulerTest, Search) {
ConnectToWifi(); ConnectToWifi();
google_apis::GDataErrorCode error = google_apis::GDATA_OTHER_ERROR; google_apis::GDataErrorCode error = google_apis::GDATA_OTHER_ERROR;
scoped_ptr<google_apis::ResourceList> resource_list; scoped_ptr<google_apis::FileList> file_list;
scheduler_->Search( scheduler_->Search(
"File", // search query "File", // search query
google_apis::test_util::CreateCopyResultCallback( google_apis::test_util::CreateCopyResultCallback(&error, &file_list));
&error, &resource_list));
base::RunLoop().RunUntilIdle(); base::RunLoop().RunUntilIdle();
ASSERT_EQ(google_apis::HTTP_SUCCESS, error); ASSERT_EQ(google_apis::HTTP_SUCCESS, error);
ASSERT_TRUE(resource_list); ASSERT_TRUE(file_list);
} }
TEST_F(JobSchedulerTest, GetChangeList) { TEST_F(JobSchedulerTest, GetChangeList) {
...@@ -286,15 +283,14 @@ TEST_F(JobSchedulerTest, GetChangeList) { ...@@ -286,15 +283,14 @@ TEST_F(JobSchedulerTest, GetChangeList) {
} }
error = google_apis::GDATA_OTHER_ERROR; error = google_apis::GDATA_OTHER_ERROR;
scoped_ptr<google_apis::ResourceList> resource_list; scoped_ptr<google_apis::ChangeList> change_list;
scheduler_->GetChangeList( scheduler_->GetChangeList(
old_largest_change_id + 1, old_largest_change_id + 1,
google_apis::test_util::CreateCopyResultCallback( google_apis::test_util::CreateCopyResultCallback(&error, &change_list));
&error, &resource_list));
base::RunLoop().RunUntilIdle(); base::RunLoop().RunUntilIdle();
ASSERT_EQ(google_apis::HTTP_SUCCESS, error); ASSERT_EQ(google_apis::HTTP_SUCCESS, error);
ASSERT_TRUE(resource_list); ASSERT_TRUE(change_list);
} }
TEST_F(JobSchedulerTest, GetRemainingChangeList) { TEST_F(JobSchedulerTest, GetRemainingChangeList) {
...@@ -302,33 +298,29 @@ TEST_F(JobSchedulerTest, GetRemainingChangeList) { ...@@ -302,33 +298,29 @@ TEST_F(JobSchedulerTest, GetRemainingChangeList) {
fake_drive_service_->set_default_max_results(2); fake_drive_service_->set_default_max_results(2);
google_apis::GDataErrorCode error = google_apis::GDATA_OTHER_ERROR; google_apis::GDataErrorCode error = google_apis::GDATA_OTHER_ERROR;
scoped_ptr<google_apis::ResourceList> resource_list; scoped_ptr<google_apis::ChangeList> change_list;
scheduler_->GetAllResourceList( scheduler_->GetChangeList(
google_apis::test_util::CreateCopyResultCallback( 0,
&error, &resource_list)); google_apis::test_util::CreateCopyResultCallback(&error, &change_list));
base::RunLoop().RunUntilIdle(); base::RunLoop().RunUntilIdle();
ASSERT_EQ(google_apis::HTTP_SUCCESS, error); ASSERT_EQ(google_apis::HTTP_SUCCESS, error);
ASSERT_TRUE(resource_list); ASSERT_TRUE(change_list);
const google_apis::Link* next_link = // Keep the next url before releasing the |change_list|.
resource_list->GetLinkByType(google_apis::Link::LINK_NEXT); GURL next_url(change_list->next_link());
ASSERT_TRUE(next_link);
// Keep the next url before releasing the |resource_list|.
GURL next_url(next_link->href());
error = google_apis::GDATA_OTHER_ERROR; error = google_apis::GDATA_OTHER_ERROR;
resource_list.reset(); change_list.reset();
scheduler_->GetRemainingChangeList( scheduler_->GetRemainingChangeList(
next_url, next_url,
google_apis::test_util::CreateCopyResultCallback( google_apis::test_util::CreateCopyResultCallback(&error, &change_list));
&error, &resource_list));
base::RunLoop().RunUntilIdle(); base::RunLoop().RunUntilIdle();
ASSERT_EQ(google_apis::HTTP_SUCCESS, error); ASSERT_EQ(google_apis::HTTP_SUCCESS, error);
ASSERT_TRUE(resource_list); ASSERT_TRUE(change_list);
} }
TEST_F(JobSchedulerTest, GetRemainingFileList) { TEST_F(JobSchedulerTest, GetRemainingFileList) {
...@@ -336,34 +328,29 @@ TEST_F(JobSchedulerTest, GetRemainingFileList) { ...@@ -336,34 +328,29 @@ TEST_F(JobSchedulerTest, GetRemainingFileList) {
fake_drive_service_->set_default_max_results(2); fake_drive_service_->set_default_max_results(2);
google_apis::GDataErrorCode error = google_apis::GDATA_OTHER_ERROR; google_apis::GDataErrorCode error = google_apis::GDATA_OTHER_ERROR;
scoped_ptr<google_apis::ResourceList> resource_list; scoped_ptr<google_apis::FileList> file_list;
scheduler_->GetResourceListInDirectory( scheduler_->GetFileListInDirectory(
fake_drive_service_->GetRootResourceId(), fake_drive_service_->GetRootResourceId(),
google_apis::test_util::CreateCopyResultCallback( google_apis::test_util::CreateCopyResultCallback(&error, &file_list));
&error, &resource_list));
base::RunLoop().RunUntilIdle(); base::RunLoop().RunUntilIdle();
ASSERT_EQ(google_apis::HTTP_SUCCESS, error); ASSERT_EQ(google_apis::HTTP_SUCCESS, error);
ASSERT_TRUE(resource_list); ASSERT_TRUE(file_list);
const google_apis::Link* next_link = // Keep the next url before releasing the |file_list|.
resource_list->GetLinkByType(google_apis::Link::LINK_NEXT); GURL next_url(file_list->next_link());
ASSERT_TRUE(next_link);
// Keep the next url before releasing the |resource_list|.
GURL next_url(next_link->href());
error = google_apis::GDATA_OTHER_ERROR; error = google_apis::GDATA_OTHER_ERROR;
resource_list.reset(); file_list.reset();
scheduler_->GetRemainingFileList( scheduler_->GetRemainingFileList(
next_url, next_url,
google_apis::test_util::CreateCopyResultCallback( google_apis::test_util::CreateCopyResultCallback(&error, &file_list));
&error, &resource_list));
base::RunLoop().RunUntilIdle(); base::RunLoop().RunUntilIdle();
ASSERT_EQ(google_apis::HTTP_SUCCESS, error); ASSERT_EQ(google_apis::HTTP_SUCCESS, error);
ASSERT_TRUE(resource_list); ASSERT_TRUE(file_list);
} }
TEST_F(JobSchedulerTest, GetResourceEntry) { TEST_F(JobSchedulerTest, GetResourceEntry) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment