Dropoff


Удаляет избранных агентов из поступающего агента-контейнера и пересылает их далее через порт outDropoff. Так же, как и объект Pickup, который используется для добавления агентов в агента-контейнер, объект Dropoff извлекает агентов согласно заданному режиму: либо все агенты, либо определенное их количество, либо те, для которых будет выполняться заданное условие (которое может зависеть как от агента-контейнера, так и от содержащихся в нем агентов). Вся операция занимает нулевое время.

Обратите внимание, что на момент проверки условия агент все еще будет в контейнере, но при выполнении действия При оставлении агент уже будет удален из агента-контейнера.

Вы можете управлять процессом удаления агентов путем задания различных Условий извлечения агентов, например, чтобы извлекать только те агенты типа Passenger, место назначения destination (заданное с помощью параметра типа агента) которых равно here, укажите Passenger в качестве типа агента-контейнера и напишите условие извлечения агентов: agent.destination == here.

Если после извлечения необходимых вам агентов вам не нужно сохранять агента-контейнер, вы можете использовать вместо объекта Dropoff объект Unbatch.

Демо модель: Pickup and Dropoff

Параметры

Тип контейнера [динамический]
Тип агентов-контейнеров, поступающих в блок через порт in.
Упоминается ниже как: TContainer
Тип элемента [динамический]
Тип агентов, извлекаемых из агента-контейнера и покидающих блок через порт outDropoff.
Упоминается ниже как: T
Оставлять
Определяет режим извлечения агентов из агента-контейнера: должен ли объект извлекать Все доступные агенты, либо их Заданное количество (если доступно), либо извлекать тех агентов, для которых выполняется заданное Условие (Пока выполняется условие).
Имя: dropoffType
Изменить значение: set_dropoffType(новое условие)
Значение по умолчанию
: Пока выполняется условие
Допустимые значения: Все доступные агенты (Dropoff.ALL),
Заданное количество (если доступно)
(Dropoff.QUANTITY),
Пока выполняется условие (Dropoff.BY_CONDITION).
Условие [динамический]
[Виден, если у параметра Оставлять выбрана опция Пока выполняется условие] Условие, вычисляемое для каждого агента, содержащегося в агенте-контейнере, и определяющее, должен ли данный агент быть извлечен из контейнера. Условие может зависеть как от агента-контейнера, так и от содержащихся в нем агентов-"кандидатов" на извлечение.
Тип значения: boolean
Локальные переменные: T agent - агент-"кандидат" на извлечение из контейнера.
TContainer container - агент-контейнер.
Значение по умолчанию: true (из контейнера будут извлекаться все агенты)
Количество [динамический]
[Виден, если у параметра Оставлять выбрана опция Заданное количество (если доступно)] Выражение, возвращающее количество агентов, которое должно быть извлечено из агента-контейнера (если в нем будет содержаться такое количество агентов).
Тип значения: int
Локальная переменная: TContainer container - агент-контейнер.
Значение по умолчанию: 1
Специфические
Выталкивать агентов
Если опция выбрана (true), то агенты, созданные этим блоком, будут немедленно вытолкнуты дальше независимо от состояния следующего блока.
Если опция не выбрана, агенты будут не выталкиваться, а выходить постепенно: только когда следующий блок готов принять еще одного агента, он запрашивает его у этого блока, и тогда агент проходит дальше.
Синтаксис: boolean pushProtocol
Значение по умолчанию: false
Действия
При входе [код]
Код, выполняемый, когда агент-контейнер поступает в объект.
Локальная переменная: TContainer container - агент-контейнер.
При оставлении [код]
Код, выполняемый для каждого агента, извлекаемого из контейнера.
Локальные переменные: T agent - извлеченный из контейнера агент.
TContainer container - агент-контейнер.
При выходе [код]
Код, выполняемый, когда агент-контейнер покидает объект.
Локальная переменная: TContainer container - агент-контейнер.
При уходе по оставлению [код]
Код, выполняемый для каждого агента, извлекаемого из контейнера, когда он покидает объект.
Локальные переменные: T agent - извлеченный из контейнера агент.
TContainer container - агент-контейнер.

Порты

in
Входной порт.
out
Выходной порт.
outDropoff
Выходной порт для агентов, извлеченных из агента-контейнера.