#ifndef DMWriteTask_DEFINED
#define DMWriteTask_DEFINED
-#include "DMExpectations.h"
#include "DMTask.h"
#include "SkBitmap.h"
+#include "SkJSONCPP.h"
+#include "SkStream.h"
#include "SkString.h"
#include "SkTArray.h"
class WriteTask : public CpuTask {
public:
- WriteTask(const Task& parent, // WriteTask must be a child task.
- SkBitmap bitmap); // Bitmap to encode to PNG and write to disk.
+ WriteTask(const Task& parent, // WriteTask must be a child task.
+ const char* sourceType, // E.g. "GM", "SKP". For humans.
+ SkBitmap bitmap); // Bitmap to encode to PNG and write to disk.
- WriteTask(const Task& parent, // WriteTask must be a child task.
- SkData *data, // Pre-encoded data to write to disk.
- const char* ext); // File extension.
+ // Takes ownership of SkStreamAsset
+ WriteTask(const Task& parent, // WriteTask must be a child task.
+ const char* sourceType, // E.g. "GM", "SKP". For humans.
+ SkStreamAsset* data, // Pre-encoded data to write to disk.
+ const char* ext); // File extension.
virtual void draw() SK_OVERRIDE;
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;
- };
+ static void DumpJson();
private:
SkTArray<SkString> fSuffixes;
- const SkString fGmName;
+ const SkString fBaseName;
+ const SkString fSourceType;
const SkBitmap fBitmap;
- SkAutoTUnref<SkData> fData;
+ SkAutoTDelete<SkStreamAsset> fData;
const char* fExtension;
void makeDirOrFail(SkString dir);