public virtual CraneScheduleStoreGet Get(ICraneAgent agent) { var get = new CraneScheduleStoreGet(Environment.Environment, agent); GetQueue.AddLast(get); TriggerGet(); return(get); }
protected virtual void DoGet(CraneScheduleStoreGet get) { var topPrio = int.MaxValue; foreach (var task in Schedule.TaskSequence) { if (topPrio == int.MaxValue) { topPrio = task.priority; } else if (topPrio != task.priority) { break; } if (task.craneId == get.Agent.Id) { get.Move = Environment.CraneMoves.Single(x => x.Id == task.moveId); Environment.Environment.Process(RemoveFromSchedule(get.Move)); get.Succeed(); return; } } }
public virtual void CancelWaiting(CraneScheduleStoreGet order) { GetQueue.Remove(order); TriggerGet(); }