void ITaskingManagement.NewTask(string name, double period, Clock clock, ITaskPoolManager task_manager) { this.task = new PiagetTask(); this.task.Init(name, period, clock, Reset, task_manager); this.clock = clock; }
// METHODS FOR ITaskManager_Tasking ------------------------------------------------ public void AddChildTask(string name, WithTasking with_task, double period, PiagetTask parent) { ((ITaskingManagement)with_task).NewTask(name, period, this.clock, (ITaskPoolManager)this); // If the user use the same task state to add several child tasks, // only the first one added will be the top one if (parent == task_pool.Current.task) { MoveToChildTask(((ITaskingManagement)with_task).Task, parent); } }
// PRIVATE METHODS ------------------------------------------------ private void MoveToChildTask(PiagetTask new_task, PiagetTask parent) { new_task.InsertAfter(parent); task_pool.Current.task = new_task; }
public void RemoveFromPool(PiagetTask task) { this.task_pool.Remove(task); }
public void Terminate(PiagetTask task) { task.SetTerminated(); }