Esempio n. 1
0
        public virtual CraneScheduleStoreGet Get(ICraneAgent agent)
        {
            var get = new CraneScheduleStoreGet(Environment.Environment, agent);

            GetQueue.AddLast(get);
            TriggerGet();
            return(get);
        }
Esempio n. 2
0
        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;
                }
            }
        }
Esempio n. 3
0
 public virtual void CancelWaiting(CraneScheduleStoreGet order)
 {
     GetQueue.Remove(order);
     TriggerGet();
 }