#ifndef DMWriteTask_DEFINED #define DMWriteTask_DEFINED #include "DMExpectations.h" #include "DMTask.h" #include "SkBitmap.h" #include "SkString.h" #include "SkTArray.h" // Writes a bitmap to a file. namespace DM { class WriteTask : public Task { public: WriteTask(const Task& parent, // WriteTask must be a child Task. Pass its parent here. SkBitmap bitmap); // Bitmap to write. virtual void draw() SK_OVERRIDE; virtual bool usesGpu() const SK_OVERRIDE { return false; } virtual bool shouldSkip() const SK_OVERRIDE; virtual SkString name() const SK_OVERRIDE; // Reads image files WriteTask wrote under root and compares them with bitmap. class Expectations : public DM::Expectations { public: explicit Expectations(const char* root) : fRoot(root) {} bool check(const Task& task, SkBitmap bitmap) const SK_OVERRIDE; private: const char* fRoot; }; private: SkTArray<SkString> fSuffixes; SkString fGmName; const SkBitmap fBitmap; void makeDirOrFail(SkString dir); }; } // namespace DM #endif // DMWriteTask_DEFINED