https://mp.weixin.qq.com/s/XZVCdt50tM6lavchGm9GRg

 
简单介绍RegionReplicator的实现。
 
 
1. 基本介绍
 
根据mask把某一个区域复制成多个区域。复制的数目是mask中比特1的数目的2次幂。
 
2. RegionReplicator
 
1) 类参数
 
mask是掩码,其中的比特1对应的位:
a. 在待复制的区域地址的基址中应当为0;
b. 在待复制的区域地址的掩码中应当为0;
如此,根据这些位值的变化,就可以复制出多个区域。
 
2) diplomacy node
 
diplomacy node用于与上下游节点连接。
 
这里是一个适配器节点,主要对向下传递的参数进行适配进行适配:
 
a. ids
 
mask中值为1的位,取值为0或1,然后各个位进行组合所得值的集合;
 
b. managerFn
 
把下游节点的manager参数中的每一个地址集合都使用mask进行扩展。
如此向上游节点显示的manager参数就从之前的单个区域扩展成了多个区域。
 
3) lazy module
 
实现RegionReplicator的内部逻辑:
 
1) 成对的输入边和输出边
 
 
2) 默认直连
 
 
3) 适配请求的地址
 
in.a.bits.address是扩展之后的地址,把其中掩码位对应位的值清0,即可得到扩展前的地址。然后使用这个扩展前的地址向下游节点发起请求。
 
4) 不支持Cache
 
 
这个判断是要求regionType从UNCACHED/UNCACHEABLE/PUT_EFFECTS/GET_EFFECTS中取值:
 
3. HasRegionReplicatorParams
 
包含一个replicatorMask作为复制时使用的掩码:
 

最新文章

  1. 使用div创建选取框
  2. Java _ JDK _ Arrays, LinkedList, ArrayList, Vector 及Stack
  3. mysql中一对一,一对多,多对多关系
  4. 离散信号MATLAB频谱分析程序
  5. Spring IOC和DI原理讲解并制作LazyCoder版的Spring (一)
  6. SQL学习之--触发器
  7. 利用proxychains在终端使用socks5代理
  8. NSScanner扫描字符串中()的内容
  9. 用webgl打造自己的3D迷宫游戏
  10. asp.net网站管理工具 遇到错误。请返回上一页并重试。
  11. span设置宽度有效无效问题
  12. [js]javascript中4种异步
  13. 精华阅读第 13 期 |常见的八种导致 APP 内存泄漏的问题
  14. js时间格式化函数(兼容IOS)
  15. FZU Problem 2028 时空门问题
  16. this与JavaScrip中的四种调用模式
  17. 利用JqGrid结合ashx及EF分页显示列表之二
  18. TestGc finalize()
  19. vmware增加共享文件夹
  20. C# 多条件拼接sql

热门文章

  1. Mysql数据库分页查询
  2. 使用 Minikube 安装 Kubernetes
  3. Java BC包做sm2加密方法 ,签名验签方法
  4. Qt子窗口设置背景色只能应用到其中的部件的问题
  5. 74LS 系列 名称解释
  6. 使用 python 进行 面部合成
  7. Shiro+Mybatis实现登录认证、授权功能
  8. 20184302 实验三《Python程序设计》实验报告
  9. 力扣题解-面试题58 - II. 左旋转字符串
  10. 感觉shopex现在的升级方式太慢了