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); } }
//функция реализует обработку события окончания обслуживания 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); }