资源插槽

resourceSlot 是一个声明式 api,用于在 daBFG 中改变节点间的资源。

您可以将槽视为 “更虚拟 ”的框架图资源。 这种类型的资源可以在框架图执行过程中改变大小和资源创建标志。

如果出现以下情况,请使用插槽代替常规资源

  • 节点必须同时读取和写入某些资源

  • 需要在某些节点中改变资源的大小或类型

使用资源槽时需要

  • 从平常的 ``dabfg::register_node``开始,见 声明节点

  • dabfg::NodeHandle 替换为 resource_slot::NodeHandleWithSlotsAccess

  • dabfg::register_node 替换为 resource_slot::register_access

    • 声明回调将获得附加参数 resource_slot::State slotsState

  • 为节点添加 action_list

    • 如果节点为槽创建了第一个资源,节点应声明 Create{slot_name, created_resource_name}

    • 节点在使用 slotsState.resourceToCreateFor 后获取用于填充插槽的资源名称

    • 如果节点更新了插槽中的资源,则应声明 Update{slot_name, updated_resource_name, priority}

      • 节点在使用 slotsState.resourceToCreateFor 后获取用于填充插槽的资源名称

      • 节点获取资源名称,该名称位于带有 slotsState.resourceToReadFrom` 的节点之前的槽中

      • 优先级较高的节点将排在优先级较低的节点之后

    • 如果节点从槽中读取资源,则应声明 Read{slot_name}

      • 节点获取资源名称,该名称位于带有 slotsState.resourceToReadFrom` 的节点之前的槽中

      • 节点可选择声明从槽中读取中间资源的读取优先级。默认情况下,读取节点将被安排在所有更新节点之后。

详细信息请参见 Register request for access to slots storage