#ifndef DMTask_DEFINED
#define DMTask_DEFINED

#include "DMReporter.h"
#include "SkRunnable.h"
#include "SkThreadPool.h"

// DM will run() these tasks on one of two threadpools, depending on the result
// of usesGpu().  The subclasses can call fail() to mark this task as failed,
// or make any number of spawnChild() calls to kick off dependent tasks.
//
// Task deletes itself when run.

namespace DM {

class TaskRunner;

class Task : public SkRunnable {
public:
    Task(Reporter* reporter, TaskRunner* taskRunner);
    Task(const Task& that);
    virtual ~Task();

    void run();

    virtual void draw() = 0;
    virtual bool usesGpu() const = 0;
    virtual bool shouldSkip() const = 0;
    virtual SkString name() const = 0;

protected:
    void spawnChild(Task* task);
    void fail();

private:
    // Both unowned.
    Reporter* fReporter;
    TaskRunner* fTaskRunner;
};

}  // namespace DM

#endif  // DMTask_DEFINED
