1 #ifndef DMWriteTask_DEFINED 2 #define DMWriteTask_DEFINED 3 4 #include "DMExpectations.h" 5 #include "DMTask.h" 6 #include "SkBitmap.h" 7 #include "SkString.h" 8 #include "SkTArray.h" 9 10 11 // Writes a bitmap to a file. 12 13 namespace DM { 14 15 class WriteTask : public Task { 16 17 public: 18 WriteTask(const Task& parent, // WriteTask must be a child Task. Pass its parent here. 19 SkBitmap bitmap); // Bitmap to write. 20 21 virtual void draw() SK_OVERRIDE; usesGpu()22 virtual bool usesGpu() const SK_OVERRIDE { return false; } 23 virtual bool shouldSkip() const SK_OVERRIDE; 24 virtual SkString name() const SK_OVERRIDE; 25 26 // Reads image files WriteTask wrote under root and compares them with bitmap. 27 class Expectations : public DM::Expectations { 28 public: Expectations(const char * root)29 explicit Expectations(const char* root) : fRoot(root) {} 30 31 bool check(const Task& task, SkBitmap bitmap) const SK_OVERRIDE; 32 private: 33 const char* fRoot; 34 }; 35 36 private: 37 SkTArray<SkString> fSuffixes; 38 SkString fGmName; 39 const SkBitmap fBitmap; 40 41 void makeDirOrFail(SkString dir); 42 }; 43 44 } // namespace DM 45 46 #endif // DMWriteTask_DEFINED 47