2021-01-03 21:43:35 +00:00
|
|
|
#include <logger.h>
|
|
|
|
#include "TaskManager.h"
|
|
|
|
|
|
|
|
TaskManager::TaskManager()
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
void TaskManager::addTask(std::shared_ptr<Task> task)
|
|
|
|
{
|
|
|
|
_tasks.push_back(task);
|
|
|
|
}
|
|
|
|
|
2021-01-04 22:10:23 +00:00
|
|
|
std::shared_ptr<Task> TaskManager::getTask(const char * name)
|
2021-01-03 21:43:35 +00:00
|
|
|
{
|
2021-01-19 23:31:02 +00:00
|
|
|
std::_List_iterator<std::shared_ptr<Task>> elem = std::find_if(_tasks.begin(), _tasks.end(), [&](std::shared_ptr<Task> task)
|
2021-01-03 21:43:35 +00:00
|
|
|
{
|
2021-01-19 23:31:02 +00:00
|
|
|
return task->getName() == name;
|
|
|
|
});
|
|
|
|
if(elem == _tasks.end())
|
|
|
|
{
|
|
|
|
return 0;
|
2021-01-03 21:43:35 +00:00
|
|
|
}
|
2021-01-19 23:31:02 +00:00
|
|
|
return *elem;
|
2021-01-03 21:43:35 +00:00
|
|
|
}
|
|
|
|
|
2021-01-04 22:10:23 +00:00
|
|
|
bool TaskManager::setup(std::shared_ptr<Configuration> config, std::shared_ptr<BoardConfig> boardConfig)
|
2021-01-03 21:43:35 +00:00
|
|
|
{
|
|
|
|
logPrintlnV("will setup all tasks...");
|
|
|
|
for(std::shared_ptr<Task> & elem : _tasks)
|
|
|
|
{
|
|
|
|
logPrintW("call setup from ");
|
|
|
|
logPrintlnW(elem->getName());
|
2021-01-04 22:10:23 +00:00
|
|
|
if(!elem->setup(config, boardConfig))
|
2021-01-03 21:43:35 +00:00
|
|
|
{
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
bool TaskManager::loop(std::shared_ptr<Configuration> config)
|
|
|
|
{
|
|
|
|
//logPrintlnD("will loop all tasks...");
|
|
|
|
for(std::shared_ptr<Task> & elem : _tasks)
|
|
|
|
{
|
|
|
|
//logPrintD("call loop from ");
|
|
|
|
//logPrintlnD(elem->getName());
|
|
|
|
if(!elem->loop(config))
|
|
|
|
{
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return true;
|
2021-01-19 23:31:02 +00:00
|
|
|
}
|