| /* | 
 |  * Copyright 2014 Google Inc. | 
 |  * | 
 |  * Use of this source code is governed by a BSD-style license that can be | 
 |  * found in the LICENSE file. | 
 |  */ | 
 |  | 
 | #ifndef DMJsonWriter_DEFINED | 
 | #define DMJsonWriter_DEFINED | 
 |  | 
 | #include "SkString.h" | 
 | #include "Test.h" | 
 |  | 
 | namespace DM { | 
 |  | 
 | /** | 
 |  *  Class for collecting results from DM and writing to a json file. | 
 |  *  All methods are thread-safe. | 
 |  */ | 
 | class JsonWriter { | 
 | public: | 
 |     /** | 
 |      *  Info describing a single run. | 
 |      */ | 
 |     struct BitmapResult { | 
 |         SkString name;            // E.g. "ninepatch-stretch", "desk-gws_skp" | 
 |         SkString config;          //      "gpu", "8888" | 
 |         SkString mode;            //      "direct", "default-tilegrid", "pipe" | 
 |         SkString sourceType;      //      "GM", "SKP" | 
 |         SkString md5;             // In ASCII, so 32 bytes long. | 
 |     }; | 
 |  | 
 |     /** | 
 |      *  Add a result to the end of the list of results. | 
 |      */ | 
 |     static void AddBitmapResult(const BitmapResult&); | 
 |  | 
 |     /** | 
 |      *  Add a Failure from a Test. | 
 |      */ | 
 |     static void AddTestFailure(const skiatest::Failure&); | 
 |  | 
 |     /** | 
 |      *  Write all collected results to the file FLAGS_writePath[0]/dm.json. | 
 |      */ | 
 |     static void DumpJson(); | 
 | }; | 
 |  | 
 | } // namespace DM | 
 | #endif // DMJsonWriter_DEFINED |