#include "ChainTasks.h" ChainTasks::ChainTasks(tasklist_t _tasklist) : tasklist(_tasklist) { tasklist_iter_t i; SetBurst(); pos = tasklist.begin(); for (i = tasklist.begin(); i != tasklist.end(); i++) { (*i)->Stop(); } } ChainTasks::~ChainTasks() { } String ChainTasks::GetName() { return "ChainTask"; } int ChainTasks::Do() throw (GeneralException) { switch (current) { case 1: delete *pos; pos++; case 0: if (pos == tasklist.end()) return TASK_DONE; (*pos)->Restart(); WaitFor(*pos); current = 1; Suspend(TASK_ON_HOLD); } return TASK_ON_HOLD; }