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

Unified Diff: chrome/browser/chromeos/drive/resource_metadata.cc

Issue 278273002: drive: Change the return type of ResourceMetadata's methods to FileError (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 7 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/drive/resource_metadata.cc
diff --git a/chrome/browser/chromeos/drive/resource_metadata.cc b/chrome/browser/chromeos/drive/resource_metadata.cc
index d074e71e8c38db5adea98939a769b60901793448..c4bc77b9a7ab991f2434fe711d709dabb32bdbb0 100644
--- a/chrome/browser/chromeos/drive/resource_metadata.cc
+++ b/chrome/browser/chromeos/drive/resource_metadata.cc
@@ -198,11 +198,9 @@ void ResourceMetadata::DestroyOnBlockingPool() {
delete this;
}
-int64 ResourceMetadata::GetLargestChangestamp() {
+FileError ResourceMetadata::GetLargestChangestamp(int64* out_value) {
DCHECK(blocking_task_runner_->RunsTasksOnCurrentThread());
- int64 value = 0;
- storage_->GetLargestChangestamp(&value);
- return value;
+ return storage_->GetLargestChangestamp(out_value);
}
FileError ResourceMetadata::SetLargestChangestamp(int64 value) {
@@ -390,31 +388,37 @@ FileError ResourceMetadata::RefreshEntry(const ResourceEntry& entry) {
return PutEntryUnderDirectory(entry);
}
-void ResourceMetadata::GetSubDirectoriesRecursively(
+FileError ResourceMetadata::GetSubDirectoriesRecursively(
const std::string& id,
std::set<base::FilePath>* sub_directories) {
DCHECK(blocking_task_runner_->RunsTasksOnCurrentThread());
std::vector<std::string> children;
- if (storage_->GetChildren(id, &children) != FILE_ERROR_OK)
- return;
+ FileError error = storage_->GetChildren(id, &children);
+ if (error != FILE_ERROR_OK)
+ return error;
for (size_t i = 0; i < children.size(); ++i) {
ResourceEntry entry;
- if (storage_->GetEntry(children[i], &entry) != FILE_ERROR_OK)
- return;
+ error = storage_->GetEntry(children[i], &entry);
+ if (error != FILE_ERROR_OK)
+ return error;
if (entry.file_info().is_directory()) {
- sub_directories->insert(GetFilePath(children[i]));
+ base::FilePath path;
+ error = GetFilePath(children[i], &path);
+ if (error != FILE_ERROR_OK)
+ return error;
+ sub_directories->insert(path);
GetSubDirectoriesRecursively(children[i], sub_directories);
}
}
+ return FILE_ERROR_OK;
}
-std::string ResourceMetadata::GetChildId(const std::string& parent_local_id,
- const std::string& base_name) {
+FileError ResourceMetadata::GetChildId(const std::string& parent_local_id,
+ const std::string& base_name,
+ std::string* out_child_id) {
DCHECK(blocking_task_runner_->RunsTasksOnCurrentThread());
- std::string child_local_id;
- storage_->GetChild(parent_local_id, base_name, &child_local_id);
- return child_local_id;
+ return storage_->GetChild(parent_local_id, base_name, out_child_id);
}
scoped_ptr<ResourceMetadata::Iterator> ResourceMetadata::GetIterator() {
@@ -423,21 +427,27 @@ scoped_ptr<ResourceMetadata::Iterator> ResourceMetadata::GetIterator() {
return storage_->GetIterator();
}
-base::FilePath ResourceMetadata::GetFilePath(const std::string& id) {
+FileError ResourceMetadata::GetFilePath(const std::string& id,
+ base::FilePath* out_file_path) {
DCHECK(blocking_task_runner_->RunsTasksOnCurrentThread());
- base::FilePath path;
ResourceEntry entry;
- if (storage_->GetEntry(id, &entry) == FILE_ERROR_OK) {
- if (!entry.parent_local_id().empty()) {
- path = GetFilePath(entry.parent_local_id());
- } else if (entry.local_id() != util::kDriveGrandRootLocalId) {
- DVLOG(1) << "Entries not under the grand root don't have paths.";
- return base::FilePath();
- }
- path = path.Append(base::FilePath::FromUTF8Unsafe(entry.base_name()));
+ FileError error = storage_->GetEntry(id, &entry);
+ if (error != FILE_ERROR_OK)
+ return error;
+
+ base::FilePath path;
+ if (!entry.parent_local_id().empty()) {
+ error = GetFilePath(entry.parent_local_id(), &path);
+ if (error != FILE_ERROR_OK)
+ return error;
+ } else if (entry.local_id() != util::kDriveGrandRootLocalId) {
+ DVLOG(1) << "Entries not under the grand root don't have paths.";
+ return FILE_ERROR_NOT_FOUND;
}
- return path;
+ path = path.Append(base::FilePath::FromUTF8Unsafe(entry.base_name()));
+ *out_file_path = path;
+ return FILE_ERROR_OK;
}
FileError ResourceMetadata::GetIdByPath(const base::FilePath& file_path,
@@ -559,7 +569,9 @@ FileError ResourceMetadata::RemoveEntryRecursively(const std::string& id) {
if (entry.file_info().is_directory()) {
std::vector<std::string> children;
- storage_->GetChildren(id, &children);
+ error = storage_->GetChildren(id, &children);
+ if (error != FILE_ERROR_OK)
+ return error;
for (size_t i = 0; i < children.size(); ++i) {
error = RemoveEntryRecursively(children[i]);
if (error != FILE_ERROR_OK)
« no previous file with comments | « chrome/browser/chromeos/drive/resource_metadata.h ('k') | chrome/browser/chromeos/drive/resource_metadata_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698