示例#1
0
        public override void Accept(Call call, double timer, Journal journal, Statistic statistic, Element source)
        {
            //если все приборы заняты, заявка помещается в буфер
            if (!this.IsFree())
            {
                buffer.Accept(call, timer, journal, statistic, this);
            }
            else
            {
                //если данная заявка пришла из ИПВ
                //она удаляется из него
                if (buffer.Contain(call))
                {
                    buffer.Remove(call, timer, statistic);
                }

                //конец интервала предыдущего состояния
                //становится началом текущего
                statistic.ChangeInterval();
                //конец текущего интервала устанавливается по таймеру
                statistic.SetInterval(timer);
                //добавляется длина данного интервала и число обрабатываемых заявок
                statistic.AddInterval(node, count);

                count++;

                //заявка поступает на обслуживание
                this.GenerateEvent(call, timer, journal);
            }
        }
示例#2
0
        //функция реализует обработку события окончания обслуживания
        public override void ProcessEvent(Event CurrentEvent, double timer, Journal journal, Statistic statistic, Element NextElement)
        {
            //конец интервала предыдущего состояния
            //становится началом текущего
            statistic.ChangeInterval();
            //конец текущего интервала устанавливается по таймеру
            statistic.SetInterval(timer);
            //добавляется длина данного интервала и число обрабатываемых заявок
            statistic.AddInterval(node, count);

            count--;

            Call call = CurrentEvent.GetCall();

            //заявка передается на другой узел
            if (this.node == 1)
            {
                NextElement.Accept(call, timer, journal, statistic, this);
            }
            // journal.Delete(CurrentEvent);
        }