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
 

最新文章

  1. H3C汇聚层交换机认证在线人数展示系统之需求说明和功能点说明
  2. 黑马程序员——【Java基础】——集合框架
  3. crontab 日志备份定时任务
  4. NASM编译器的$和$$标记
  5. JS阻塞的问题
  6. SAP增强总结-第二代增强(SMOD、CMOD)【转载】
  7. c语言字符类别测试库函数#include<ctype.h>
  8. studio中集成.so文件的两种方式
  9. (原)Ubuntu16中使用nvidia官方提供的驱动,而非自带的驱动
  10. Windows下结束tomcat进程,dos命令
  11. Ansible Filter
  12. CodeForces 700B Connecting Universities
  13. redis安装学习
  14. 在python后台如何将客户端提交的form表单数据提取出来?
  15. 关于微信小程序分享提示{"errMsg":"config:ok"}
  16. 【原创】架构师必备,带你弄清混乱的JAVA日志体系!
  17. Django中ORM实际应用
  18. requests库入门04-http基本认证
  19. android:onClick都做了什么
  20. Realtime Rendering 5

热门文章

  1. spring boot中使用AJAX请求,并将回调函数赋值给input输入框
  2. 博客第一天:Typora和Markown语法初始
  3. 吴恩达机器学习week2
  4. Battery Charging Specification Revision 1.2 中文版本
  5. 谈谈DDD
  6. python语法学习第一天--变量、运算符、数据类型
  7. 修改托管dll文件
  8. Angular 初体验
  9. Spring-mvc 配置文件applicationContext.xml
  10. Spring处理@Configuration的分析