/* ================================================ */ void TaskManagerBase::Exec() { for(uint32_t i = 0; i < m_vTaskUnit.size(); ++i){ TaskUnit *pTask = m_vTaskUnit.at(i); switch(pTask->GetStatus()){ default: DEBUG_ASSERT( 0, "/_/_/task status が想定外/_/_/"); break; case TaskUnit::TASK_IDLE: //! 何もしない break; case TaskUnit::TASK_INIT: if(pTask->Init()){ pTask->SetStatus(TaskUnit::TASK_ALIVE); } break; case TaskUnit::TASK_ALIVE: pTask->Update(); break; case TaskUnit::TASK_PRE_DIE: if(pTask->DieMain()){ pTask->SetStatus(TaskUnit::TASK_DIE); } break; case TaskUnit::TASK_DIE: DEBUG_ASSERT( 0, "/_/_/ここに来るのはおかしい/_/_/"); break; } } //! 状態がTASK_PRE_DIEになったタスクを解放する DeleteDieUnit(); }