Commit 1a9db392 authored by satorux@chromium.org's avatar satorux@chromium.org

gdata: Remove use of FindEntryByPathAsync() from gdata_file_system_proxy.cc

Instead use GetFileInfoByPathAsync() and ReadDirectoryByPathAsync().
This is in preparation for making FindEntryByPathAsync() private.

BUG=chromium-os:30251
TEST=gdata in the file manager works as before

Review URL: https://chromiumcodereview.appspot.com/10268023

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@134770 0039d316-1c4b-4281-b951-d872f2087c98
parent be813067
......@@ -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);
......
......@@ -13,6 +13,8 @@ class Profile;
namespace gdata {
class GDataEntry;
class GDataEntryProto;
class GDataDirectoryProto;
class GDataFileSystemInterface;
// The interface class for remote file system proxy.
......@@ -58,28 +60,22 @@ class GDataFileSystemProxy : public fileapi::RemoteFileSystemProxyInterface {
static bool ValidateUrl(const GURL& url, FilePath* file_path);
// Helper callback for relaying reply for metadata retrieval request to the
// calling thread. The callback is invoked while |file| is kept under lock
// so it is safe to retrieve data from it, but this pointer is not safe to
// be used outside of this method.
// calling thread.
void OnGetMetadata(
const FilePath& file_path,
const fileapi::FileSystemOperationInterface::GetMetadataCallback&
callback,
base::PlatformFileError error,
const FilePath& directory_path,
GDataEntry* entry);
scoped_ptr<gdata::GDataEntryProto> entry_proto);
// Helper callback for relaying reply for ReadDirectory() to the calling
// thread. The callback is invoked while |file| is kept under lock
// so it is safe to retrieve data from it, but this pointer is not safe to
// be used outside of this method.
// thread.
void OnReadDirectory(
bool hide_hosted_documents,
const fileapi::FileSystemOperationInterface::ReadDirectoryCallback&
callback,
base::PlatformFileError error,
const FilePath& directory_path,
GDataEntry* entry);
scoped_ptr<GDataDirectoryProto> directory_proto);
// GDataFileSystemProxy is owned by Profile, which outlives
// GDataFileSystemProxy, which is owned by CrosMountPointProvider (i.e. by
......
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