#ifndef TASK_MANAGER_H_ #define TASK_MANAGER_H_ #include #include #include #include class Task { public: Task(String & name) : _name(name) {} Task(const char * name) : _name(name) {} virtual ~Task() {} String getName() const { return _name; } virtual bool setup(std::shared_ptr config) = 0; virtual bool loop(std::shared_ptr config) = 0; private: String _name; }; class TaskManager { public: TaskManager(); void addTask(std::shared_ptr task); std::shared_ptr getTask(String & name); bool setup(std::shared_ptr config); bool loop(std::shared_ptr config); private: std::list> _tasks; }; #endif