Commit 0152ac4e authored by satorux@chromium.org's avatar satorux@chromium.org

gdata: Export PlatformFileInfo/Proto conversion functions

These functions will be used in an upcoming patch, when
we extract file info from GDataFileProto/GDataDirectoryProto
(i.e. in some places, we need PlatFormFileInfo).

BUG=chromium-os:30251
TEST=GDataFileSystemTest.CachedFeedLoading

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@134679 0039d316-1c4b-4281-b951-d872f2087c98
parent 82ae49eb
...@@ -632,16 +632,35 @@ void GDataRootDirectory::RemoveTemporaryFilesFromCacheMap() { ...@@ -632,16 +632,35 @@ void GDataRootDirectory::RemoveTemporaryFilesFromCacheMap() {
// Convert to/from proto. // Convert to/from proto.
// static
void GDataEntry::ConvertProtoToPlatformFileInfo(
const PlatformFileInfoProto& proto,
base::PlatformFileInfo* file_info) {
file_info->size = proto.size();
file_info->is_directory = proto.is_directory();
file_info->is_symbolic_link = proto.is_symbolic_link();
file_info->last_modified = base::Time::FromInternalValue(
proto.last_modified());
file_info->last_accessed = base::Time::FromInternalValue(
proto.last_accessed());
file_info->creation_time = base::Time::FromInternalValue(
proto.creation_time());
}
// static
void GDataEntry::ConvertPlatformFileInfoToProto(
const base::PlatformFileInfo& file_info,
PlatformFileInfoProto* proto) {
proto->set_size(file_info.size);
proto->set_is_directory(file_info.is_directory);
proto->set_is_symbolic_link(file_info.is_symbolic_link);
proto->set_last_modified(file_info.last_modified.ToInternalValue());
proto->set_last_accessed(file_info.last_accessed.ToInternalValue());
proto->set_creation_time(file_info.creation_time.ToInternalValue());
}
void GDataEntry::FromProto(const GDataEntryProto& proto) { void GDataEntry::FromProto(const GDataEntryProto& proto) {
file_info_.size = proto.file_info().size(); ConvertProtoToPlatformFileInfo(proto.file_info(), &file_info_);
file_info_.is_directory = proto.file_info().is_directory();
file_info_.is_symbolic_link = proto.file_info().is_symbolic_link();
file_info_.last_modified = base::Time::FromInternalValue(
proto.file_info().last_modified());
file_info_.last_accessed = base::Time::FromInternalValue(
proto.file_info().last_accessed());
file_info_.creation_time = base::Time::FromInternalValue(
proto.file_info().creation_time());
// Don't copy from proto.file_name() as file_name_ is computed in // Don't copy from proto.file_name() as file_name_ is computed in
// SetFileNameFromTitle(). // SetFileNameFromTitle().
...@@ -654,16 +673,7 @@ void GDataEntry::FromProto(const GDataEntryProto& proto) { ...@@ -654,16 +673,7 @@ void GDataEntry::FromProto(const GDataEntryProto& proto) {
} }
void GDataEntry::ToProto(GDataEntryProto* proto) const { void GDataEntry::ToProto(GDataEntryProto* proto) const {
PlatformFileInfoProto* proto_file_info = proto->mutable_file_info(); ConvertPlatformFileInfoToProto(file_info_, proto->mutable_file_info());
proto_file_info->set_size(file_info_.size);
proto_file_info->set_is_directory(file_info_.is_directory);
proto_file_info->set_is_symbolic_link(file_info_.is_symbolic_link);
proto_file_info->set_last_modified(
file_info_.last_modified.ToInternalValue());
proto_file_info->set_last_accessed(
file_info_.last_accessed.ToInternalValue());
proto_file_info->set_creation_time(
file_info_.creation_time.ToInternalValue());
// The file_name field is used in GetFileInfoByPathAsync(). As shown in // The file_name field is used in GetFileInfoByPathAsync(). As shown in
// FromProto(), the value is discarded when deserializing from proto. // FromProto(), the value is discarded when deserializing from proto.
......
...@@ -33,6 +33,7 @@ class GDataEntryProto; ...@@ -33,6 +33,7 @@ class GDataEntryProto;
class GDataFileProto; class GDataFileProto;
class GDataDirectoryProto; class GDataDirectoryProto;
class GDataRootDirectoryProto; class GDataRootDirectoryProto;
class PlatformFileInfoProto;
// Directory content origin. // Directory content origin.
enum ContentOrigin { enum ContentOrigin {
...@@ -81,6 +82,16 @@ class GDataEntry { ...@@ -81,6 +82,16 @@ class GDataEntry {
static scoped_ptr<GDataEntry> FromProtoString( static scoped_ptr<GDataEntry> FromProtoString(
const std::string& serialized_proto); const std::string& serialized_proto);
// Converts the proto representation to the platform file.
static void ConvertProtoToPlatformFileInfo(
const PlatformFileInfoProto& proto,
base::PlatformFileInfo* file_info);
// Converts the platform file info to the proto representation.
static void ConvertPlatformFileInfoToProto(
const base::PlatformFileInfo& file_info,
PlatformFileInfoProto* proto);
// Converts to/from proto. // Converts to/from proto.
void FromProto(const GDataEntryProto& proto); void FromProto(const GDataEntryProto& proto);
void ToProto(GDataEntryProto* proto) const; void ToProto(GDataEntryProto* proto) const;
......
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