ru:toolworks:docs:apparatus:enchaining

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

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

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

FChain& Chain = Mechanism->Enchain(Filter).Get();

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

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

FSolidChain& Chain = Mechanism->EnchainSolid(Filter).Get();

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

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

  • ru/toolworks/docs/apparatus/enchaining.txt
  • Последнее изменение: 2022/07/18 18:11
  • jispar