RestrictedAreaStart


Обозначает вход в область процесса, в которой одновременно может находиться ограниченное количество агентов. Такая область может иметь только один вход и сразу несколько выходов, каждый из которых должен быть задан объектом RestrictedAreaEnd, который должен содержать ссылку на соответствующий объект входа в область RestrictedAreaStart, чтобы иметь представление о том, какой участок этот объект завершает (см. картинку внизу). С помощью этих объектов вы можете ограничить число агентов, проходящих через какой-то участок моделируемого процесса. Максимальное количество агентов, которое может одновременно находиться в области, задается параметром объекта Вместимость (макс. допустимая). Агенты принимаются только до тех пор, пока разность количества агентов, поступивших в блок RestrictedAreaStart, и количества агентов, покинувших блок RestrictedAreaEnd, не достигнет заданного ограничения. После этого новые агенты смогут войти в область только тогда, когда какие-нибудь агенты эту область покинут.

Объект RestrictedAreaStart реализован с использованием блока Hold, поэтому агент просто передается в следующий объект и не проводит в объекте RestrictedAreaStart никакого времени.

Пожалуйста, обратите внимание, что если агенты будут покидать область не через объект RestrictedAreaEnd (например, если вы будете извлекать их из потока программно), то объект RestrictedAreaStart не заметит их ухода и будет продолжать считать, что эти агенты находятся внутри области, что может привести к тому, что вход в область будет заблокирован раз и навсегда.

Параметры

Вместимость (макс. допустимая)
Максимально допустимое количество агентов, которое может одновременно находиться в области, задаваемой этим объектом.
Синтаксис: int capacity
Значение по умолчанию: 10
Действия
При входе [код]
Код, выполняемый при поступлении агента в объект.
Локальная переменная: Т еntity - агент.

Функции

int entitiesInside() - Возвращает количество агентов, находящихся в данный момент времени в области.

boolean isBlocked()- Возвращает true, если вход в область заблокирован, и false - если нет.

Вложенные объекты

Hold hold
Объект блокирует вход в область в случае нахождения максимально допустимого количества агентов внутри области.

Порты

in
Входной порт.
out
Выходной порт.