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
 

Rocket - diplomacy - MixedNode的更多相关文章

  1. Rocket - diplomacy - DUEB参数模型的设计

    https://mp.weixin.qq.com/s/9PEEpe1pkQDN9RWpOGSUCQ   介绍DUEB参数模型的设计,不包含实现(实现对设计做了简化).     1. DUEB   di ...

  2. Rocket - diplomacy - LazyModule的组织方式

    https://mp.weixin.qq.com/s/vaDUekxkFkOJLmzg5jCngw 简单介绍LazyModule/LazyModuleImp的组织方式. 1. LazyModule L ...

  3. Rocket - diplomacy - LazyModule的实例化(补)

    https://mp.weixin.qq.com/s/rgCRorjPYyyD6i7moIzbZg   介绍LazyModule和Node构造方法的执行过程,即实例化过程.     1. NullIn ...

  4. Rocket - diplomacy - LazyModule的实例化

    https://mp.weixin.qq.com/s/9PsBt4_4qHx4i6C5XtuiUw   介绍LazyModule和Node构造方法的执行过程,即实例化过程.     1. NullIn ...

  5. Rocket - diplomacy - LazyModule

    https://mp.weixin.qq.com/s/FBU8fE4u9-UK6mRGQOlvbQ   介绍LazyModule的实现.     ​​   1. children   LazyModu ...

  6. Rocket - diplomacy - resolveStar

    https://mp.weixin.qq.com/s/W1cS9sgwLFjOOm86d05NIA   介绍各类型节点如何确定星型绑定所包含的连接数.     1. 定义   ​​ resoveSta ...

  7. Rocket - diplomacy - ValName

    https://mp.weixin.qq.com/s/so-2x5KLfYF0IMCCqNThwQ   简单调试ValName实现:   1. 使用     ​​   Desugar之后如下: ​​ ...

  8. Rocket - diplomacy - Node相关类

    https://mp.weixin.qq.com/s/BvK3He3GWon8ywG8Jdmcsg   介绍Node相关的类.   ​​   1. BaseNode   BaseNode是所有节点类的 ...

  9. Rocket - diplomacy - NodeHandle相关类

    https://mp.weixin.qq.com/s/GWL41P1G1BXm2sTeLmckdA   介绍NodeHandle相关的类.     ​​   1. NoHandle   顶层类(tra ...

随机推荐

  1. Publishing and Deployment >> Publishing to IIS 翻译

    Publishing to IIS  发布到IIS 2017/1/18 18 min to read Contributors  Supported operating systems 支持的操作系统 ...

  2. leetcode_课程表(BFS、拓扑排序)

    题目描述: 你这个学期必须选修 numCourse 门课程,记为 0 到 numCourse-1 .在选修某些课程之前需要一些先修课程. 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹 ...

  3. STM32 CubeIDE无法进行调试的问题

    解决了由于一个很容易忽视的细节最终导致系统配置存在错误造成STM32 CubeIDE无法进行调试的问题: 文章目录 来龙去脉 解决方案 反思 来龙去脉 在享受CubeIDE快速和便捷的服务之后,生成了 ...

  4. 自动化运维工具Ansible之LNMP实践环境部署

    Ansible-实战指南-LNMP环境部署,并使用zabbix监控 主机规划 系统初始化:必要的系统初始化 基础组件包括:zabbix监控,mariadb(用于存放zabbix监控信息) 业务组件包括 ...

  5. 数学建模(二)优劣解距离法Topsis模型部分

    步骤: (一)统一指标类型:指标正向化(转化为极大型)(论文) 越大越好极大型指标,效益型指标 越小越好极小型指标,成本型指标 max-x,max=max{xi} 落在某个区间[a,b]是最好的,区间 ...

  6. java -> final与static 关键字

    final的概念 继承的出现提高了代码的复用性,并方便开发.但随之也有问题,有些类在描述完之后,不想被继承,或者有些类中的部分方法功能是固定的,不想让子类重写.可是当子类继承了这些特殊类之后,就可以对 ...

  7. docker容器与系统时间同步最佳方法

    前言:在Docker容器创建好之后,可能会发现容器时间跟宿主机时间不一致,此时需要同步它们的时间,让容器时间跟宿主机时间保持一致. 一.分析时间不一致的原因 宿主机采用了CST时区,CST应该是指(C ...

  8. tomcat 添加 ssl 证书

    1. 将证书提供方给的证书(server.crt)及密钥文件(server.key)上传到服务器 tomcat 的 conf 目录 2. 在tomcat conf 目录下执行如下命令 (1) 生成P1 ...

  9. Java基础之数据类型

    一.数据类型 基本数据类型介绍 byte 1字节 char 2字节 short 2字节 int 4字节 long 8字节 float 4字节 double 8字节 以上有Java中八大基本类型的7种, ...

  10. React的第二种使用方法----脚手架方式

    一.React的第二种使用方法-----脚手架 1.前提:Node.js >8.10 2.下载全局脚手架工具 npm  i  -g  create-react-app 3.运行全局脚手架工具,创 ...