rendered paste body void TaskStateObject::setTaskState(TaskState::eTaskState newstate)
{
if (newstate != this->mTaskState && this->isStateChangeValid(this->mTaskState, newstate))
{
if (this->onStateChange(newstate))
{
this->mTaskState = newstate;
}
}
}
bool TaskStateObject::onStateChange(TaskState::eTaskState newstate)
{
switch(newstate)
{
case TaskState::Created:
break;
case TaskState::Initialize:
break;
case TaskState::InitializeWait:
break;
case TaskState::InitializeLink:
break;
case TaskState::Active:
break;
case TaskState::Suspended:
break;
case TaskState::Terminated:
break;
}
return false;
}
bool TaskStateObject::isStateChangeValid(TaskState::eTaskState oldstate, TaskState::eTaskState newstate)
{
return
(oldstate == TaskState::Created && newstate == TaskState::Initialize) ||
(oldstate == TaskState::Initialize && newstate == TaskState::InitializeWait) ||
(oldstate == TaskState::InitializeWait && newstate == TaskState::InitializeLink) ||
(oldstate == TaskState::InitializeLink && newstate == TaskState::Active) ||
(oldstate == TaskState::Active && (newstate == TaskState::Suspended || newstate == TaskState::Terminated));
}