diff options
author | tsepez@chromium.org <tsepez@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-05-30 21:15:57 +0000 |
---|---|---|
committer | tsepez@chromium.org <tsepez@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-05-30 21:15:57 +0000 |
commit | c410e02b297c491b5ad1cf49606679edaf018dba (patch) | |
tree | 7887c4e7ac1819f78c8d02030b16366997c38448 /ipc | |
parent | 1c6a905fc512c9276e619af5c9fb7ad11369bc3b (diff) | |
download | chromium_src-c410e02b297c491b5ad1cf49606679edaf018dba.zip chromium_src-c410e02b297c491b5ad1cf49606679edaf018dba.tar.gz chromium_src-c410e02b297c491b5ad1cf49606679edaf018dba.tar.bz2 |
Move ParamTraits<base::PlatformFileInfo> and <base::PlatformFileError>.
Move thse to ipc/ from content/common so that they may be used in directories
parallel to content/. Pre-requisite for fixing the associated bug.
BUG=127624
Review URL: https://chromiumcodereview.appspot.com/10442072
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@139636 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ipc')
-rw-r--r-- | ipc/ipc_message_utils.cc | 43 | ||||
-rw-r--r-- | ipc/ipc_message_utils.h | 14 |
2 files changed, 57 insertions, 0 deletions
diff --git a/ipc/ipc_message_utils.cc b/ipc/ipc_message_utils.cc index 8f27c52..3caf2a4 100644 --- a/ipc/ipc_message_utils.cc +++ b/ipc/ipc_message_utils.cc @@ -251,6 +251,49 @@ void ParamTraits<unsigned short>::Log(const param_type& p, std::string* l) { l->append(base::UintToString(p)); } +void ParamTraits<base::PlatformFileInfo>::Write( + Message* m, const param_type& p) { + WriteParam(m, p.size); + WriteParam(m, p.is_directory); + WriteParam(m, p.last_modified.ToDoubleT()); + WriteParam(m, p.last_accessed.ToDoubleT()); + WriteParam(m, p.creation_time.ToDoubleT()); +} + +bool ParamTraits<base::PlatformFileInfo>::Read( + const Message* m, PickleIterator* iter, param_type* p) { + double last_modified; + double last_accessed; + double creation_time; + bool result = + ReadParam(m, iter, &p->size) && + ReadParam(m, iter, &p->is_directory) && + ReadParam(m, iter, &last_modified) && + ReadParam(m, iter, &last_accessed) && + ReadParam(m, iter, &creation_time); + if (result) { + p->last_modified = base::Time::FromDoubleT(last_modified); + p->last_accessed = base::Time::FromDoubleT(last_accessed); + p->creation_time = base::Time::FromDoubleT(creation_time); + } + return result; +} + +void ParamTraits<base::PlatformFileInfo>::Log( + const param_type& p, std::string* l) { + l->append("("); + LogParam(p.size, l); + l->append(","); + LogParam(p.is_directory, l); + l->append(","); + LogParam(p.last_modified.ToDoubleT(), l); + l->append(","); + LogParam(p.last_accessed.ToDoubleT(), l); + l->append(","); + LogParam(p.creation_time.ToDoubleT(), l); + l->append(")"); +} + void ParamTraits<base::Time>::Write(Message* m, const param_type& p) { ParamTraits<int64>::Write(m, p.ToInternalValue()); } diff --git a/ipc/ipc_message_utils.h b/ipc/ipc_message_utils.h index 9e259f1..d744389 100644 --- a/ipc/ipc_message_utils.h +++ b/ipc/ipc_message_utils.h @@ -13,6 +13,7 @@ #include <vector> #include "base/format_macros.h" +#include "base/platform_file.h" #include "base/string16.h" #include "base/stringprintf.h" #include "base/string_util.h" @@ -335,6 +336,19 @@ struct ParamTraits<double> { }; template <> +struct IPC_EXPORT ParamTraits<base::PlatformFileInfo> { + typedef base::PlatformFileInfo param_type; + static void Write(Message* m, const param_type& p); + static bool Read(const Message* m, PickleIterator* iter, param_type* r); + static void Log(const param_type& p, std::string* l); +}; + +template <> +struct SimilarTypeTraits<base::PlatformFileError> { + typedef int Type; +}; + +template <> struct IPC_EXPORT ParamTraits<base::Time> { typedef base::Time param_type; static void Write(Message* m, const param_type& p); |