RestrictedAreaStart

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

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

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

Параметры

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

Функции

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

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

Вложенные блоки

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

Порты

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