summaryrefslogtreecommitdiffstats
path: root/chromecast/base/serializers.cc
diff options
context:
space:
mode:
authorbcf <bcf@google.com>2015-07-27 11:09:05 -0700
committerCommit bot <commit-bot@chromium.org>2015-07-27 18:09:33 +0000
commit9a96f5669527b27827ad43edb8a912ef7c2d5b6d (patch)
treeebd1850a98b16ac78ee6ec3473742bb7c426b218 /chromecast/base/serializers.cc
parentf06fece6b474412520fd94cff59bc566904805ff (diff)
downloadchromium_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.cc21
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