Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / third_party / skia / dm / DMWriteTask.h
1 #ifndef DMWriteTask_DEFINED
2 #define DMWriteTask_DEFINED
3
4 #include "DMTask.h"
5 #include "SkBitmap.h"
6 #include "SkJSONCPP.h"
7 #include "SkStream.h"
8 #include "SkString.h"
9 #include "SkTArray.h"
10
11
12 // Writes a bitmap to a file.
13
14 namespace DM {
15
16 class WriteTask : public CpuTask {
17
18 public:
19     WriteTask(const Task& parent,      // WriteTask must be a child task.
20               const char* sourceType,  // E.g. "GM", "SKP".  For humans.
21               SkBitmap bitmap);        // Bitmap to encode to PNG and write to disk.
22
23     // Takes ownership of SkStreamAsset
24     WriteTask(const Task& parent,      // WriteTask must be a child task.
25               const char* sourceType,  // E.g. "GM", "SKP".  For humans.
26               SkStreamAsset* data,     // Pre-encoded data to write to disk.
27               const char* ext);        // File extension.
28
29     virtual void draw() SK_OVERRIDE;
30     virtual bool shouldSkip() const SK_OVERRIDE;
31     virtual SkString name() const SK_OVERRIDE;
32
33     static void DumpJson();
34
35 private:
36     SkTArray<SkString> fSuffixes;
37     const SkString fBaseName;
38     const SkString fSourceType;
39     const SkBitmap fBitmap;
40     SkAutoTDelete<SkStreamAsset> fData;
41     const char* fExtension;
42
43     void makeDirOrFail(SkString dir);
44 };
45
46 }  // namespace DM
47
48 #endif  // DMWriteTask_DEFINED