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

 
简单介绍BaseNode的实现。
 
​​
 
1. You cannot create a node outside a LazyModule
 
​​
 
LazyModule.scope在LazyModule对象中定义:
​​
 
在LazyModule类中赋值:
​​
 
那么这里的“outside a LazyModule”中的LazyModule指的应该是LazyModule类,而不是LazyModule伴生对象。
 
因为LazyModule对象的用法,所以这里很容易误解:
​​
 
可以从两个方面排除:
 
a. LazyModule伴生对象只有一个,应该用“outside the LazyModule(...)”,而不是"outside a LazyModule";
 
b. LazyModule对象工厂方法定义如下:
​​
 
这里的bc是LazyModule的子类,而不是BaseNode。所以LazyModule伴生对象实际上与BaseNode的实例化无关。
 
 
所以正确的方法是:
​​
NullIntSource继承自LazyModule类,所以在实例化NullIntSource时,首先执行LazyModule的构造方法,为LazyModule.scope赋值;
 
然后在NullIntSource中创建intnode成员,执行BaseNode的构造方法,判断LazyModule.scope是否Defined。
 
 
2. add to lazyModule.nodes
 
​​
把当前正在实例化的BaseNode,加入到当前的lazyModule中。
 
使用index记录当前节点在lazyModule.nodes中的序号:
​​
 
3. serial
 
定义于BaseNode伴生对象中:
​​
 
用于记录当前节点在所有已创建过的节点中的序号:
​​
 
4. parents
 
​​
lazyModule是当前节点的parents之一。
 
5. name
 
全路径名称(full qualified name),包括从顶层父节点逐层到本节的的所有名称:
​​
 
6. omitGraphML
 
是否要画在GraphML图中:
​​
如果没有输入输出连接,而是一个孤立的节点则忽略。
 
7. wirePrefix
 
使用正则表达式调整节点名称的格式。
 
8. inputs/outputs
 
记录渲染过的输入和输出连接信息:
​​
 
9. sinkCard/sourceCard
 
记录输入端星号("*")的个数和输出端星号的个数。
 
10. flexes
 
记录BIND_FLEX连接的对端连接的节点信息。
 
11. instantiate
 
节点实例化方法:
​​
 

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

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

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

  2. Rocket - diplomacy - LazyModule的实例化

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

  3. Rocket - diplomacy - LazyModule

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

  4. Rocket - diplomacy - ValName

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

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

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

  6. Rocket - diplomacy - Node相关类

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

  7. Rocket - diplomacy - NodeHandle相关类

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

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

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

  9. Rocket - diplomacy - 模块结构信息

    https://mp.weixin.qq.com/s/cTRxXwWNEeb4-XX_t4bRcg   讨论模块结构信息的来源及使用方式.     ​​   1. diplomacy   diplom ...

随机推荐

  1. 前后端bug定位

    否一致一个商品状态为status,待上架status=0,上架中status=1,下架status=2 前端bug:如:一个商品上架成功后,数据库显示的状态status=1,这时候可能是前端对应值的定 ...

  2. ARM-Linux Gcc 交叉编译环境搭建

    1 NFS网络文件系统搭建 测试宿主机与目标板ping通 目标板上某个文件夹(例如mnt)挂载到宿主机(192.168.1.111)的/home/nfs_dir文件夹下 mount –t nfs –o ...

  3. [hdu4911]逆序对相关

    思路:由于只能交换相邻的数,所以每次最多减小1个逆序对(且如果存在逆序对那么肯定可以减小1个)!于是乎..就是统计逆序对的裸题了.树状数组或归并都行. #pragma comment(linker, ...

  4. [hdu3484]枚举

    题意:给两个个01矩阵,有两种操作,(1)交换两列(2)反转某一行.求能否通过若干操作使两矩阵相等 思路:(把所有对B的操作放到A上来,这一定是可以做到一样的效果的)枚举B矩阵的第一列对应A矩阵的第几 ...

  5. Python 简明教程 --- 0,前言

    微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io Life is short, you need Python! -- Bruce Eckel 0,关 ...

  6. 两个有序数组 A1 A2 的合并

    /** * 问题6.有序数组 A1 A2 的合并 */ @Test public void orderArrayMerge() { // 两个有序数组 A1 A2 的合并 int[] A1 = {1, ...

  7. tp5参数传入

    把应用配置文件中的url_param_type参数的值修改如下: // 按照参数顺序获取 'url_param_type' => 1, 现在,URL的参数传值方式就变成了严格按照操作方法的变量定 ...

  8. Git与GitHub常用操作

    --------------------------基本操作--------------------------clone 拷贝远程仓库commit 本地提交push 远程提交pull 更新本地--- ...

  9. Docker & k8s 系列二:本机k8s环境搭建

    本篇将会讲解k8s是什么?本机k8s环境搭建,部署一个pod并演示几个kubectl命令,k8s dashboard安装. k8s是什么 k8s是kubernetes的简写,它是一个全新的基于容器技术 ...

  10. CSS3 拯救我的布局吧box-sizing

    一.CSS常见的两栏布局 如上图,是一个很简单的两栏布局,就是一个宽度为960px:并且页面居中显示,侧边栏栏宽度为220px:主内容宽度720px:两者有一个20px的间距,并且有页眉和页脚. 代码 ...