Queue
Объект Queue моделирует очередь, он хранит поступающие заявки в определенном порядке: FIFO (заявки помещаются в очередь в порядке поступления), LIFO (заявки помещаются в порядке, обратном поступлению), RANDOM (заявки помещаются в произвольные места очереди) или PRIORITY (заявки помещаются в очередь в соответствии со значением своих полей priority). Заявка может покинуть объект Queue различными способами:
• “обычным способом” через порт output, когда объект, следующий в блок-схеме за этим объектом, готов принять заявку
• через порт outputTimeout, после того, как заявка проведет в очереди заданное количество времени (если включен режим таймаута)
• через порт outputPreempted, будучи вытесненной другой поступившей заявкой при заполненной очереди (если включен режим вытеснения)
• “вручную”, путем вызова фунцкии remove(int i)
В первом случае объект Queue покидает заявка, находящаяся в самом начале очереди (в нулевой позиции). Если заявка направлена в порт outputTimeout или outputPreempted, то она должна покинуть объект мгновенно. Если включена опция вытеснения preemption, то объект Queue всегда готов принять новую заявку, в противном случае при заполненной очереди заявка принята не будет. В свойстве capacity зададим максимальную длину очереди.
Переменные
Тип |
Имя |
Описание |
Entity |
Entity |
Текущая заявка. |
int |
Position |
Позиция очереди, в которую помещена только что прибывшая заявка. |
double |
timeoutValue |
Значение таймаута, установленное для только что прибывшей заявки. |
Функции
Тип возвращаемого значения |
Имя |
Описание |
void |
block() |
Блокирует входной порт. |
void |
unblock() |
Разблокировывает входной порт. |
boolean |
blocked() |
Возвращает true, если входной порт заблокирован, и false - если нет. |
int |
size() |
Количество заявок в очереди. |
Entity |
get( int i ) |
Возвращает заявку из i-й позиции (ближайшей к выходу считается позиция 0). |
Entity |
remove( int i ) |
Удаляет заявку из i-й позиции и возвращает ее. |
boolean |
canEnter() |
Возвращает true, если новая заявка может быть помещена в очередь. Если включен режим вытеснения, то это происходит всегда; иначе это эквивалентно size()<capacity. |
TimedDataSet |
getStatsSize() |
Возвращает статистику размера очереди. |
void |
resetStats() |
Производит сброс накопленной статистики. |
Параметры
Тип |
Имя |
Значение по умолчанию |
Описание |
code |
onEnter | |
Код, выполняемый, когда заявка поступает в объект. |
code |
onExitPreempted | |
Код, выполняемый, когда заявка покидает объект через порт outputPreempted, будучи вытесненной другой заявкой. |
code |
onExitTimeout | |
Код, выполняемый, когда заявка покидает объект через порт outputTimeout в результате истечения таймаута ее пребывания в очереди. |
code |
onAtExit | |
Код, выполняемый, когда заявка перемещается в нулевую позицию очереди и готова покинуть объект. |
code |
onExit | |
Код, выполняемый, когда заяка покидает объект или через порт output, или после вызова функции remove(). |
int |
queueType |
FIFO |
Тип очереди. Может быть одним из следующих: FIFO LIFO RANDOM PRIORITY |
integer |
capacity |
100 |
Вместимость очереди. |
integer |
entitiesToAnimate |
all |
Количество заявок, которое будет отображено на анимации. |
boolean |
preemption |
false |
Если true, то включен режим вытеснения. |
boolean |
timeout |
false |
Если true, то включен режим таймаута. |
Code double> |
timeoutTime |
infinity |
Выражение, вычисляющее значение таймаута для заявки. Применяется только при включенном режиме таймаута (timeout равен true). |
boolean |
statsEnabled |
false |
Если true, то для этого объекта будет собираться статистика. |
ShapeBase |
animationShape | |
Шаблон анимации очереди. Тип зависит от выбранного аниматора. |
int |
animationType |
AUTO |
Тип аниматора очереди. Может быть одним из следующих: AUTO SINGLE SET BAG ARRANGED QUEUE |
boolean |
animationForward |
true |
Направление движения заявок на анимации, если объект отображается на анимации ломаной линией. |
|
Перейти на страницу: 1 2 3 4 5
|