#ifndef TASK_DECORATOR_H #define TASK_DECORATOR_H #include #include "utility/scheduling/Task.h" class TaskRunner; class TaskDecorator : public Task , public std::enable_shared_from_this { public: TaskDecorator(); virtual ~TaskDecorator(); std::shared_ptr addChildTask(std::shared_ptr child); virtual void setTask(std::shared_ptr task); virtual void terminate(); protected: std::shared_ptr m_taskRunner; private: virtual void doTerminate(); }; #endif // TASK_DECORATOR_H