diff options
author | mtklein <mtklein@chromium.org> | 2015-01-27 14:46:26 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-01-27 14:46:26 -0800 |
commit | 62bd1a69ea49318aa5022151262c842887e0ecf4 (patch) | |
tree | 2670b2993dc0692d7881c103b75242d113265e81 /dm/DMJsonWriter.cpp | |
parent | 6dbfb21a6c88af6d94e8c823c3ad559f1a41b493 (diff) |
add -r to DM
$ out/Debug/dm -w good
$ out/Debug/dm -r good -w bad && echo "hooray no diffs!"
BUG=skia:
Review URL: https://codereview.chromium.org/863093003
Diffstat (limited to 'dm/DMJsonWriter.cpp')
-rw-r--r-- | dm/DMJsonWriter.cpp | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/dm/DMJsonWriter.cpp b/dm/DMJsonWriter.cpp index 8aea814aed..56c1301df1 100644 --- a/dm/DMJsonWriter.cpp +++ b/dm/DMJsonWriter.cpp @@ -8,6 +8,7 @@ #include "DMJsonWriter.h" #include "SkCommonFlags.h" +#include "SkData.h" #include "SkJSONCPP.h" #include "SkOSFile.h" #include "SkStream.h" @@ -79,4 +80,31 @@ void JsonWriter::DumpJson() { stream.flush(); } +bool JsonWriter::ReadJson(const char* path, void(*callback)(BitmapResult)) { + SkAutoTUnref<SkData> json(SkData::NewFromFileName(path)); + if (!json) { + return false; + } + + Json::Reader reader; + Json::Value root; + const char* data = (const char*)json->data(); + if (!reader.parse(data, data+json->size(), root)) { + return false; + } + + const Json::Value& results = root["results"]; + BitmapResult br; + for (unsigned i = 0; i < results.size(); i++) { + const Json::Value& r = results[i]; + br.name = r["key"]["name"].asCString(); + br.config = r["key"]["config"].asCString(); + br.sourceType = r["key"]["source_type"].asCString(); + br.ext = r["ext"].asCString(); + br.md5 = r["md5"].asCString(); + callback(br); + } + return true; +} + } // namespace DM |