X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fchainedtask.cpp;h=066dc22c3be1f6aba48a7f68adfefa97dfb67287;hb=HEAD;hp=a5a6d8632d92d81c838fbf0d8c7114c0c2336461;hpb=7c2db9e2b91da953701be233336c5bfa1f3c4af0;p=builder.git diff --git a/source/chainedtask.cpp b/source/chainedtask.cpp deleted file mode 100644 index a5a6d86..0000000 --- a/source/chainedtask.cpp +++ /dev/null @@ -1,73 +0,0 @@ -#include -#include "chainedtask.h" - -using namespace std; -using namespace Msp; - -ChainedTask::ChainedTask(Task *t): - current(0), - final_status(RUNNING) -{ - add_task(t); -} - -ChainedTask::~ChainedTask() -{ - for(Task *t: tasks) - delete t; -} - -void ChainedTask::add_task(Task *t) -{ - tasks.push_back(t); -} - -string ChainedTask::get_command() const -{ - string cmd; - for(Task *t: tasks) - append(cmd, "\n", t->get_command()); - return cmd; -} - -void ChainedTask::start() -{ - prepare(); - - current = 0; - tasks[current]->start(); -} - -Task::Status ChainedTask::check() -{ - while(currentcheck())) ; - - return final_status; -} - -Task::Status ChainedTask::wait() -{ - while(currentwait())) ; - - return final_status; -} - -bool ChainedTask::process(Status sub_status) -{ - if(sub_status==SUCCESS && current+1start(); - return true; - } - - if(sub_status!=RUNNING) - { - // The task is not running anymore and either failed or was the last one - current = tasks.size(); - final_status = sub_status; - } - - return false; -}