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..088833b1b7e13862a0342f4730681e0a6bfa0d14 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,16 @@ void CallSnapshotFileCallback( |
namespace gdata { |
-base::FileUtilProxy::Entry GDataEntryToFileUtilProxyEntry( |
- const GDataEntry& gdata_entry) { |
- base::FileUtilProxy::Entry entry; |
- entry.is_directory = gdata_entry.file_info().is_directory; |
- |
- // TODO(zelidrag): Add file name modification logic to enforce uniquness of |
- // file paths across this file system. |
- entry.name = gdata_entry.file_name(); |
+base::FileUtilProxy::Entry GDataEntryProtoToFileUtilProxyEntry( |
+ const GDataEntryProto& proto) { |
+ base::PlatformFileInfo file_info; |
+ GDataEntry::ConvertProtoToPlatformFileInfo(proto.file_info(), &file_info); |
- entry.size = gdata_entry.file_info().size; |
- entry.last_modified_time = gdata_entry.file_info().last_modified; |
+ base::FileUtilProxy::Entry entry; |
+ entry.name = proto.file_name(); |
+ entry.is_directory = file_info.is_directory; |
+ entry.size = file_info.size; |
+ entry.last_modified_time = file_info.last_modified; |
return entry; |
} |
@@ -98,7 +98,7 @@ void GDataFileSystemProxy::GetFileInfo(const GURL& file_url, |
return; |
} |
- file_system_->FindEntryByPathAsync( |
+ file_system_->GetEntryInfoByPathAsync( |
file_path, |
base::Bind(&GDataFileSystemProxy::OnGetMetadata, |
this, |
@@ -152,7 +152,7 @@ void GDataFileSystemProxy::ReadDirectory(const GURL& file_url, |
return; |
} |
- file_system_->FindEntryByPathAsync( |
+ file_system_->ReadDirectoryByPathAsync( |
file_path, |
base::Bind(&GDataFileSystemProxy::OnReadDirectory, |
this, |
@@ -227,14 +227,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 +247,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 +256,17 @@ 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( |
+ GDataEntryProtoToFileUtilProxyEntry(proto.gdata_entry())); |
} |
- 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( |
+ GDataEntryProtoToFileUtilProxyEntry(proto.gdata_entry())); |
} |
callback.Run(base::PLATFORM_FILE_OK, entries, false); |