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

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

Issue 10268023: gdata: Remove use of FindEntryByPathAsync() from gdata_file_system_proxy.cc (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: use GetEntryInfoByPathAsync instead Created 8 years, 8 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
« no previous file with comments | « chrome/browser/chromeos/gdata/gdata_file_system_proxy.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/chromeos/gdata/gdata_file_system_proxy.cc
diff --git a/chrome/browser/chromeos/gdata/gdata_file_system_proxy.cc b/chrome/browser/chromeos/gdata/gdata_file_system_proxy.cc
index 83c81a135430de5b2702ac647e7bdd7a3edae4cb..8eab49dd66741d2ce2f04a7771d7b4a900220f3f 100644
--- a/chrome/browser/chromeos/gdata/gdata_file_system_proxy.cc
+++ b/chrome/browser/chromeos/gdata/gdata_file_system_proxy.cc
@@ -12,6 +12,7 @@
#include "base/string_util.h"
#include "base/values.h"
#include "content/public/browser/browser_thread.h"
+#include "chrome/browser/chromeos/gdata/gdata.pb.h"
#include "chrome/browser/chromeos/gdata/gdata_system_service.h"
#include "chrome/browser/chromeos/gdata/gdata_file_system.h"
#include "webkit/blob/shareable_file_reference.h"
@@ -56,17 +57,32 @@ void CallSnapshotFileCallback(
namespace gdata {
-base::FileUtilProxy::Entry GDataEntryToFileUtilProxyEntry(
- const GDataEntry& gdata_entry) {
+void GDataGDataEntryProtoToFileUtilProxyEntry(
achuithb 2012/05/01 09:21:44 GDataGData? I think one GData is sufficient? This
satorux1 2012/05/01 17:24:31 Good catch! Fixed.
+ const GDataEntryProto& proto,
+ base::FileUtilProxy::Entry* entry) {
+ entry->name = proto.file_name();
+
+ base::PlatformFileInfo file_info;
+ GDataEntry::ConvertProtoToPlatformFileInfo(proto.file_info(), &file_info);
+ entry->size = file_info.size;
+ entry->last_modified_time = file_info.last_modified;
achuithb 2012/05/01 09:21:44 You should just set entry->is_directory here from
satorux1 2012/05/01 17:24:31 The code was so bad. Good to have a great code rev
+}
+
+base::FileUtilProxy::Entry GDataDirectoryProtoToFileUtilProxyEntry(
+ const GDataDirectoryProto& proto) {
base::FileUtilProxy::Entry entry;
- entry.is_directory = gdata_entry.file_info().is_directory;
+ entry.is_directory = true;
- // TODO(zelidrag): Add file name modification logic to enforce uniquness of
- // file paths across this file system.
- entry.name = gdata_entry.file_name();
+ GDataGDataEntryProtoToFileUtilProxyEntry(proto.gdata_entry(), &entry);
+ return entry;
+}
- entry.size = gdata_entry.file_info().size;
- entry.last_modified_time = gdata_entry.file_info().last_modified;
+base::FileUtilProxy::Entry GDataFileProtoToFileUtilProxyEntry(
+ const GDataFileProto & proto) {
+ base::FileUtilProxy::Entry entry;
+ entry.is_directory = false;
+
+ GDataGDataEntryProtoToFileUtilProxyEntry(proto.gdata_entry(), &entry);
return entry;
}
@@ -98,7 +114,7 @@ void GDataFileSystemProxy::GetFileInfo(const GURL& file_url,
return;
}
- file_system_->FindEntryByPathAsync(
+ file_system_->GetEntryInfoByPathAsync(
file_path,
base::Bind(&GDataFileSystemProxy::OnGetMetadata,
this,
@@ -152,7 +168,7 @@ void GDataFileSystemProxy::ReadDirectory(const GURL& file_url,
return;
}
- file_system_->FindEntryByPathAsync(
+ file_system_->ReadDirectoryByPathAsync(
file_path,
base::Bind(&GDataFileSystemProxy::OnReadDirectory,
this,
@@ -227,14 +243,19 @@ void GDataFileSystemProxy::OnGetMetadata(
const FilePath& file_path,
const FileSystemOperationInterface::GetMetadataCallback& callback,
base::PlatformFileError error,
- const FilePath& directory_path,
- GDataEntry* entry) {
+ scoped_ptr<gdata::GDataEntryProto> entry_proto) {
if (error != base::PLATFORM_FILE_OK) {
callback.Run(error, base::PlatformFileInfo(), FilePath());
return;
}
+ DCHECK(entry_proto.get());
- callback.Run(base::PLATFORM_FILE_OK, entry->file_info(), file_path);
+ base::PlatformFileInfo file_info;
+ GDataEntry::ConvertProtoToPlatformFileInfo(
+ entry_proto->file_info(),
+ &file_info);
+
+ callback.Run(base::PLATFORM_FILE_OK, file_info, file_path);
}
void GDataFileSystemProxy::OnReadDirectory(
@@ -242,13 +263,8 @@ void GDataFileSystemProxy::OnReadDirectory(
const FileSystemOperationInterface::ReadDirectoryCallback&
callback,
base::PlatformFileError error,
- const FilePath& directory_path,
- GDataEntry* entry) {
- DCHECK(entry || error != base::PLATFORM_FILE_OK);
-
- GDataDirectory* directory = entry ? entry->AsGDataDirectory() : NULL;
- if (!directory && error == base::PLATFORM_FILE_OK)
- error = base::PLATFORM_FILE_ERROR_NOT_A_DIRECTORY;
+ scoped_ptr<gdata::GDataDirectoryProto> directory_proto) {
+ DCHECK(error != base::PLATFORM_FILE_OK);
if (error != base::PLATFORM_FILE_OK) {
callback.Run(error, std::vector<base::FileUtilProxy::Entry>(), false);
@@ -256,20 +272,15 @@ void GDataFileSystemProxy::OnReadDirectory(
}
std::vector<base::FileUtilProxy::Entry> entries;
// Convert gdata files to something File API stack can understand.
- for (GDataDirectoryCollection::const_iterator iter =
- directory->child_directories().begin();
- iter != directory->child_directories().end(); ++iter) {
- entries.push_back(GDataEntryToFileUtilProxyEntry(*(iter->second)));
+ for (int i = 0; i < directory_proto->child_directories_size(); ++i) {
+ const GDataDirectoryProto& proto = directory_proto->child_directories(i);
+ entries.push_back(GDataDirectoryProtoToFileUtilProxyEntry(proto));
}
- for (GDataFileCollection::const_iterator iter =
- directory->child_files().begin();
- iter != directory->child_files().end(); ++iter) {
- if (hide_hosted_documents) {
- GDataFile* file = iter->second;
- if (file->is_hosted_document())
+ for (int i = 0; i < directory_proto->child_files_size(); ++i) {
+ const GDataFileProto& proto = directory_proto->child_files(i);
+ if (hide_hosted_documents && proto.is_hosted_document())
continue;
- }
- entries.push_back(GDataEntryToFileUtilProxyEntry(*(iter->second)));
+ entries.push_back(GDataFileProtoToFileUtilProxyEntry(proto));
}
callback.Run(base::PLATFORM_FILE_OK, entries, false);
« no previous file with comments | « chrome/browser/chromeos/gdata/gdata_file_system_proxy.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698