Enter


Вставляет уже существующих агентов в определенное место внутри процесса, заданного потоковой диаграммой.

Этот объект обычно используется либо для добавления агентов, созданных, например, с помощью диаграммы состояний или события, в процесс, описанный потоковой диаграммой, либо в паре с объектом Exit - для реализации маршрутизации агентов. Чтобы добавить агента в процесс, вы должны вызвать метод объекта take(agent).

Параметры

Тип агента [динамический]
Тип агентов, поступающих в диаграмму процесса через этот блок.
Упоминается ниже как:  T
Новое местоположение
Здесь задается местоположение агентов, поступающих в диаграмму процесса через этот блок. Выберите одну из следующих опций:
Не задано - агенты остаются там, где находятся.
Узел сети / ГИС - агенты будут помещены в заданный узел сети, в ГИС точку или в ГИС регион.
Аттрактор - агенты будут помещены в заданном аттракторе.
Точка - точка в координатах x, y, z, в которую будут помещены агенты.
(Широта, долгота) - агенты помещаются в точку на карте с заданными координатами Широты и Долготы.
Географ. место - агенты помещаются в определенное место на карте. Вы можете задать это местоположение в параметре Имя места.
Имя: locationType
Допустимые значения: Enter.LOCATION_NOT_SPECIFIED, Enter.LOCATION_NODE, Enter.LOCATION_ATTRACTOR, Enter.LOCATION_XYZ, Enter.LOCATION_LATLON, Enter.LOCATION_GEO_PLACE
Скорость [динамический]
[Параметр виден, если Новое местоположение задано одной из опций] Скорость агентов, которые поступают на диаграмму процесса через этот блок.
Тип значения: double
Значение по умолчанию: 10 м/с
Локальная переменная: T agent - агент.
Узел [динамический]
[Параметр виден, если Новое местоположение: Узел сети / ГИС] Узел сети, ГИС точка или ГИС регион, куда отправляются агенты, поступившие в этот блок.
Локальная переменная: T agent - агент.
Аттрактор [динамический]
[Параметр виден, если Новое местоположение: Аттрактор] Аттрактор, куда отправляются агенты, поступившие в этот блок.
Тип значения: Attractor
Локальная переменная: T agent - агент.
Координаты X, Y, Z [динамический]
[Параметр виден, если Новое местоположение: Точка] Координаты точки.
Тип значения: double
Локальная переменная: T agent - агент.
... в сети
[Параметр виден, если Новое местоположение: Точка] Если эта опция выбрана (true), агенты добавляются в сеть, которую вы можете выбрать в поле Сеть.
Синтаксис: boolean locationXYZInNetwork
Сеть [динамический]
[Параметр виден, если выбрана опция ... в сети] Сеть, куда отправляются агенты, поступившие в этот блок.
Тип значения: Network
Локальная переменная: T agent - агент.
Широта, Долгота [динамический]
[Параметр виден, если Новое местоположение: (широта, долгота)] Координаты широты и долготы точки на ГИС карте, куда будут помещены агенты.
Тип значения: double
Локальная переменная: T agent - агент.
Имя места [динамический]
[Параметр виден, если Новое местоположение: Географ. место] Имя конкретного места на карте ГИС, куда будут помещены агенты. Укажите имя как текст в кавычках, например, "London". ГИС карта выполнит поиск места по этому имени. Первый результат в списке результатов ГИС поиска будет использован в качестве местоположения, куда будут помещены агенты.
Тип значения: String
Локальная переменная: T agent - агент.
Агент
Изменить размеры [динамический]
Если опция выбрана (true), вы можете изменить размеры агентов, попадающих в диаграмму процесса через этот блок, задав новые значения в параметрах Длина, Ширина и Высота.
Тип значенияboolean
Локальная переменная:  agent - агент
Длина [динамический]
[Параметр виден, если выбрана опция Изменить размеры] Новое значение длины агента.
Тип значенияdouble
Локальная переменная:  agent - агент
Ширина [динамический]
[Параметр виден, если выбрана опция Изменить размеры] Новое значение ширины агента.
Тип значенияdouble
Локальная переменная:  agent - агент
Высота [динамический]
[Параметр виден, если выбрана опция Изменить размеры] Новое значение высоты агента.
Тип значенияdouble
Локальная переменная:  agent - агент
Специфические
Добавлять новых агентов в
Здесь вы можете указать, куда будут помещены агенты, созданные этим блоком, в популяцию по умолчанию или в другую популяцию агентов, которую вы можете выбрать ниже. Обратите внимание, что это относится только к тем агентам, которые были только что созданы конструктором new() и пока еще не присутствуют в модели как агенты.
Синтаксис: boolean addToCustomPopulation
Значение по умолчанию: популяцию по умолчанию (false)
Популяция агентов [динамический]
[Параметр виден, если Добавлять новых агентов в: другую популяцию агентов] Имя популяции агентов, куда будут помещены агенты, созданные этим блоком.
Тип значения: AgentList
Локальная переменная: T agent - агент, созданный в этом блоке.
Выталкивать агентов
Если опция выбрана (true), то агенты, созданные этим блоком, будут немедленно вытолкнуты дальше независимо от состояния следующего блока.
Синтаксис: boolean pushProtocol
Действия
При входе [код]
Код, выполняемый, когда агент поступает в объект.
Локальная переменная: T agent - агент.
При извлечении [код]
Код, выполняемый, когда агент умышленно извлекается из блока посредством вызова функции агента remove(). Этот код вызывается автоматически после вызова функции remove().
Локальная переменная: T agent - агент.
При подходе ко входу [код]
Здесь вы можете задать код, который будет выполняться в момент, когда агент решает, что он, скорей всего, пройдет через этот блок. 
Локальная переменная: T agent - агент.

Функции

void take(T agent) - посылает данного агента через выходной порт объекта, тем самым добавляя данного агента в процесс.

long count() - Возвращает количество агентов, поступивших на диаграмму процесса через этот объект Enter. Эта функция не считает агентов, ожидающих перехода (они считаются методом size()).

int size() - Возвращает количество агентов, в данный момент ожидающих перехода в этом блоке (которые еще не принял следующий блок диаграммы процесса).

boolean cancel(Agent agent) - Отменяет захват указанного агента - если он еще не был принят следующим блоком диаграммы процесса.
Параметр:
agent: агент, которого надо отменить. Используйте null, чтобы отменить всех агентов, ожидающих перехода в этом блоке.
Возвращает true, если
агент был успешно удален из этого блока, и false в случае, если агент уже был перемещен на диаграмму процесса через этот блок или если указанный агент не был забран этим блоком методом take().

int cancelAll() - Отменяет всех агентов, которые ждут перехода в этом блоке в данный момент (которых еще не принял следующий блок диаграммы процесса). Возвращает количество отмененных агентов.

Iterator iterator() - Возвращает итератор над агентами, которые ждут перехода в этом блоке в данный момент (которых еще не принял следующий блок диаграммы процесса) - в порядке метода take(). Обратите внимание, что возвращенные агенты могут быть позже захвачены следующим блоком в любое время (например, блок Delay освободится, или блок Hold разблокируется) - если только не были вызвана функция cancel().

Порты

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