ru:toolworks:docs:apparatus:enchaining

Это старая версия документа!


Объединение в цепи

Объединение в цепи - процесс отбора подмножества чанков (или ремней) на базе определённого фильтр-критерия. Как только ремни и чанки были объединены в цепь, они блокируются и любые структурные их изменения минимизируются в целях целостности итерации.

В реальности довольно просто. Вы не создаёте цепи вручную, но они, на самом деле, управляются объектом-Машиной (Machine class). Предположим, вы уже собрали необходимый Фильтр, всё что осталось сделать - так это вызвать глобальный метод Механизма, называемый Enchain, передавая применяемый фильтр.

FChain* Chain = Mechanism->Enchain(Filter);

Теперь вы готовы итерироваться или оперировать над цепью, но есть ещё кое-что.

Вы можете создать специальную цепь, называемую твердотельной. Твердотельные цепи дают некоторые дополнительные возможности: получение прямых ссылок на трейты, например, параллелизм итерирования, - но они также и ограничивают доступные операции над Сущностями, так что изменить их структуру не получится. Иными словами, вы не сможете добавлять или удалять трейты, если цепь твердотельная. Создание твердотельной цепи выглядит просто:

FSolidChain* Chain = Mechanism->EnchainSolid(Filter);

Если вы хотите итерироваться по чанкам напрямую, вам следует объединить их в один список прокси-чанков.

Чтобы это сделать, доступен специальный перегруженный метод. Он принимает массив прокси-чанков своим вторым аргументом. Первый аргумент - фильтр.

  • ru/toolworks/docs/apparatus/enchaining.1654433245.txt.gz
  • Последнее изменение: 2022/06/05 15:47
  • jispar