https://mp.weixin.qq.com/s/zgeAI2n-2cHJi7-Ra5rYZA

 
介绍MixedNode的实现。
 
 
1. 类定义
 
 
2. inner/outer
 
inner side/outer side of the node.
 
3. inward/outward
 
Inward/Outward node:
 
4. resolveStar
 
抽象方法,实现如下逻辑:确定绑定中的星号(*)所代表的连接的个数。
根据Star所代表的连接个数,每个绑定在resolveStar之后,可以包含多条连接。
 
5. mapParamsD/mapParamsU
 
实现如何把DI映射为DO,把UO映射为UI。
 
6. iBindings/oBindings
 
iBindings/oBindings分别定义于InwardNode和OutwardNode中,通过iPush和oPush向其中添加绑定信息:对端节点、绑定类型。
 
iPush/oPush在bind()方法中调用:
 
绑定是成对的:
a. x的内向连接就是y的外向连接;
b. x侧的BIND_STAR是y侧的BIND_QUERY;
 
总结一下:
a. 我的STAR,你的QUERY;
b. 你的STAR,我的QUERY;
 
 
7. sinkCard/sourceCard/flexes
 
sinkCard:当前节点的所有连接中,下游节点为星号(*)的连接的个数;
sourceCard:当前节点的所有连接中,下游节点为星号(*)的连接的个数;
flexes:当前节点的所有连接中,连接类型为BIND_FLEX的连接中的对端节点;
 
8. flexOffset
 
用于确定多对多的连接,是作为一对多的连接使用,还是作为多对一的连接使用。
 
如注释所说:
 
可以重构为如下两个变量以供后续使用:
 
 
9. oPortMapping/iPortMapping
 
oPortMapping:输出绑定包含的连接序号区间:[start, end);
iPortMapping:输入绑定包含的连接序号区间:[start, end)
 
 
 
10. oStar/iStar
 
oStar: 输出侧的Star,resolve之后所包含的连接数;
iStar:输入侧的Star,resolve之后所包含的连接数;
 
11. oPorts/iPorts
 
 
输出侧和输入侧所有连接的集合。每个连接包含如下信息:
a. j: 连接的序号;
b. n: 对端节点;
c. p:参数Parameters;
d. s: sourceInfo;
 
PS. i为绑定的序号。
 
12. diParams/doParams
 
diParams:所有输入连接的DI参数的集合,也就是上游节点对应的doParams(i),即DI定义中的received的意思;
doParams:所有输出连接DO参数的集合,使用diParams和mapParamsD方法产生,即DO定义中的generated的意思;
 
doParams依赖于本节点的diParams,diParams依赖于上游节点的doParams...,如此逐级向上,实现Params向下(Downward)传播。
 
13. uoParams/uiParams
 
参考diParams/doParams;
 
14. edgesOut/edgesIn
 
edgesOut:使用outer和UO参数,获得输出边;
edgesIn:使用inner和DI参数,获得输入边;
 
15. bundleOut/bundleIn
 
输出连接Bundle的集合;
输入连接Bundle的集合;
 
16. danglesOut/danglesIn
 
输入输出悬边的集合。
所谓悬,是指没有和对端连接到一起;这里的连接指的是Bundle的连接。
所谓边,指的是连接,而非绑定。所以我侧用的是连接编号i;
 
其中:
a. serial是每一个节点唯一的编号;
b. i是连接的序号;
c. j是绑定的序号;(每个绑定可以包含多条连接,取决于Star resolve之后的值)
d. flipped的值代表输入边和输出边,用于确定bundle的方向是否需要反转;
 
 
17. out/in
 
如注释:Accessors to the result of negotiation to be used in LazyModuleImp.
 
18. instantiate/finishInstantiate
 
实例化,返回所有悬边的集合,输入输出不重要:Used by LazyModules.module.instantiate
 
19. inputs/outputs
 
meta-data for printing the node graph
 

转载于:https://www.cnblogs.com/wjcdx/p/10473391.html

Rocket - diplomacy - MixedNode相关推荐

  1. Rocket - diplomacy - AddressAdjuster

    https://mp.weixin.qq.com/s/X0s5CWN84GEiwpNR7tiRgA 基于AddressAdjuster介绍LazyModule的实现.   参考链接:https://g ...

  2. Rocket - diplomacy - AddressSet

    https://mp.weixin.qq.com/s/ZsEVt1GslL7ufJdJlgpfNQ   介绍AddressSet的实现.   ​​   1. 基本定义   ​​ 使用base/mask ...

  3. canal+mysql+rocket

    版本 canal.deployer-1.1.5 canal.admin-1.1.5 rocketmq-all-4.9.3-bin-release rocketmq-deshboard-master m ...

  4. 基于 RT-Thread智能车控制算法开发-河南科技大学ROCKET

    学校:河南科技大学 队伍名称: ROCKET 参赛队员:王思杰.王磊 胡彧奇.程钟鑫 带队教师:王新勇.付江涛 §01 引言   在第 16届全国大学生智能汽车竞赛中,我们选择了双车接力组这一比赛项目 ...

  5. 64位开源处理器Rocket该人士介绍

    最近大概读一点UCB发布时间Rocket处理器的源代码,的每个文件的源代码的功能有一定的一般理解,Mark一点点. Rocket是一家64bit标量处理器,5第一阶段管道,用途risc-v指令集.综合 ...

  6. 使用宝塔面板安装Rocket.Chat多功能团队聊天室

    安装 官方文档:https://rocket.chat/docs/ 环境要求:NodeJS 8.11.4.Mongodb 4.0.9.Nginx(非必需). 提示:由于官方建议的最低内存1G,所以51 ...

  7. 【安全漏洞】Rocket.Chat 远程命令执行漏洞分析

    简述 Rocket.Chat 是一个开源的完全可定制的通信平台,由 Javascript 开发,适用于具有高标准数据保护的组织. 2021年3月19日,该漏洞在 HackerOne 被提出,于2021 ...

  8. Rocket - tilelink - FIFOFixer

    https://mp.weixin.qq.com/s/JS4Pguwa6LXjPsMq6nW8HA   简单介绍FIFOFixer的实现.   ​​   1. 基本介绍   按照一定的策略把某一部分m ...

  9. 开放下载!《Rocket MQ 使用排查指南》精解100+常见问题

    简介:6个要点掌握Rocket MQ原理,5步教程快速入门Rocket MQ ,云运维工程师不可错过的匠心之作 发送消息耗时太久?客户端发送常见异常报错?启动发送端连接异常?Java 进程消息堆积严重 ...

最新文章

  1. kali python3安装scapy库_Kali-Python scapy模块-扫描
  2. Database之SQLSever:SQL命令实现四则运算、desc降序、like模糊查询、distinct去重、MAX/MIN/SUM/AVG/COUNT/GROUP/having等案例之详细攻略
  3. GLSL实现HDR Rendering 【转】
  4. 上市之后,青云存储平台QingStor也要“进军”云原生
  5. WebService学习总结(三)——使用JDK开发WebService
  6. spark自定义函数
  7. 全中国加油:Github 开源了新型肺炎防疫项目,一起助力
  8. mysql var目录很快_mysql的这些坑你踩过吗?快来看看怎么优化mysql
  9. .netcore获取微信openid与unionid方法
  10. 安装在ntfs分区的linux,从硬盘NTFS分区安装mandriva linux
  11. php 生日提醒,PHP中实现简单的生日提醒功能实例,简单又实用!
  12. 判断手机号输入的是否正确
  13. 第一次社招笔试题回顾(全基础题)
  14. 【Barracuda】Barracuda用GMV后处理的使用方法总结(持续更新2020-5-22)
  15. python微信朋友圈刷图_10分钟用Python做个微信朋友圈抽奖九宫格
  16. 第一百篇,真实可重现,详细实现昨日剩下的功能
  17. mysql jena rdf_RDF和Jena RDF API简介
  18. 什么是跨境电商ERP系统
  19. office更新失败,无法打开
  20. 计算机交互媒体应用范围,交互媒体

热门文章

  1. 尴尬的一代(写给1987—1990年出生的同学,生活在80后和90后夹缝中的一代)
  2. 【鲁大师实验室】九号N100电动车最详细评测,我们给它跑了个分
  3. 最新版---火绒杀毒5.0-sysdiag-full-5.0.43.7.exe
  4. huge形式_huge amounts of+名词后面谓语动词应用单数还是复数形式?
  5. Unity HDRP示例场景解析
  6. 小程序SSL证书怎么选?
  7. expain 查看SQL的执行计划
  8. 远程计算机怎么连接腾讯云,使用 RDP 文件远程登录腾讯云Windows服务器的步骤
  9. 幸运大转盘-jQuery+PHP实现的抽奖程序
  10. python编写人口预测图_Python可视化神器——pyecharts(实例之人口地图)