From 62bd1a69ea49318aa5022151262c842887e0ecf4 Mon Sep 17 00:00:00 2001 From: mtklein Date: Tue, 27 Jan 2015 14:46:26 -0800 Subject: 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 --- dm/DMJsonWriter.cpp | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'dm/DMJsonWriter.cpp') 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 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 -- cgit v1.2.3