diff options
author | bcf <bcf@google.com> | 2015-07-27 11:09:05 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-07-27 18:09:33 +0000 |
commit | 9a96f5669527b27827ad43edb8a912ef7c2d5b6d (patch) | |
tree | ebd1850a98b16ac78ee6ec3473742bb7c426b218 /chromecast/base/serializers.cc | |
parent | f06fece6b474412520fd94cff59bc566904805ff (diff) | |
download | chromium_src-9a96f5669527b27827ad43edb8a912ef7c2d5b6d.zip chromium_src-9a96f5669527b27827ad43edb8a912ef7c2d5b6d.tar.gz chromium_src-9a96f5669527b27827ad43edb8a912ef7c2d5b6d.tar.bz2 |
[Chromecast] Changed crash lockfile to use a JSON format.
Previously lockfile was serializes as a pseudo CSV (| separated) style.
This change changes the lockfile and DumpInfo to serialize to and from the
JSON format.
This is to make the lockfile more easily extensible.
TEST=modified tests pass
BUG=internal b/19210655
Review URL: https://codereview.chromium.org/1236863007
Cr-Commit-Position: refs/heads/master@{#340503}
Diffstat (limited to 'chromecast/base/serializers.cc')
-rw-r--r-- | chromecast/base/serializers.cc | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/chromecast/base/serializers.cc b/chromecast/base/serializers.cc index 366a5d2..34bc9fd 100644 --- a/chromecast/base/serializers.cc +++ b/chromecast/base/serializers.cc @@ -4,6 +4,7 @@ #include "chromecast/base/serializers.h" +#include "base/json/json_file_value_serializer.h" #include "base/json/json_string_value_serializer.h" #include "base/logging.h" @@ -12,7 +13,7 @@ namespace chromecast { scoped_ptr<base::Value> DeserializeFromJson(const std::string& text) { JSONStringValueDeserializer deserializer(text); - int error_code; + int error_code = -1; std::string error_msg; scoped_ptr<base::Value> value( deserializer.Deserialize(&error_code, &error_msg)); @@ -30,4 +31,22 @@ scoped_ptr<std::string> SerializeToJson(const base::Value& value) { return json_str.Pass(); } +scoped_ptr<base::Value> DeserializeJsonFromFile(const base::FilePath& path) { + JSONFileValueDeserializer deserializer(path); + + int error_code = -1; + std::string error_msg; + scoped_ptr<base::Value> value( + deserializer.Deserialize(&error_code, &error_msg)); + DLOG_IF(ERROR, !value) << "JSON error " << error_code << ":" << error_msg; + + // Value will hold the nullptr in case of an error. + return value.Pass(); +} + +bool SerializeJsonToFile(const base::FilePath& path, const base::Value& value) { + JSONFileValueSerializer serializer(path); + return serializer.Serialize(value); +} + } // namespace chromecast |