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. WCF(一)

    在学习WCF之前要知道几个术语: 一:终结点 终结点由3个要素组成:契约,绑定,地址. 1.契约:契约属于一个服务公开接口的一部分.一个服务的契约,定义了服务端公开的服务方法,使用的传输协议,可访问的 ...

  2. 多表同步 ES 的问题

    原始需求 对跨业务域数据提供联查搜索能力. 比如:对退款单提供根据退款单.退款状态.发货状态的联查,其中退款状态和发货状态是跨业务域. 比如:对订单提供根据订单号.订单状态.退款状态的联查,其中订单状 ...

  3. 王颖奇 201771010129《面向对象程序设计(java)》第八周学习总结

    实验六 接口的定义与使用 实验时间 2018-10-18 1.实验目的与要求 (1) 掌握接口定义方法: (2) 掌握实现接口类的定义要求: (3) 掌握实现了接口类的使用要求: (4) 掌握程序回调 ...

  4. [hdu5402 Travelling Salesman Problem]YY

    题意:给一个n*m的矩形,每个格子有一个非负数,求一条从(1,1)到(n,m)的路径(不能经过重复的格子),使得经过的数的和最大,输出具体的方案 思路:对于row为奇数的情况,一行行扫下来即可全部走完 ...

  5. [hdu1028]整数拆分,生成函数

    题意:给一个正整数n,求n的拆分方法数(不考虑顺序) 思路:不妨考虑用1~n来构成n.用多项式表示单个数所有能构成的数,用多项式表示,就相当于卷积运算了. 1 2 3 4 5 6 7 8 9 10 1 ...

  6. [hdu2087]kmp水题

    题意:求模板串在文本串中出现的次数(位置无交叉).只需在找到的时候把模板串指针归0即可. #pragma comment(linker, "/STACK:10240000,10240000& ...

  7. 学习docker的一点记录

    0x00 docker简介 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化 ...

  8. Docker之docker log详解

    1.显示所有log docker logs [OPTIONS] <CONTAINER>   #显示某个容器的所有log docker-compose logs  #显示启动的所有容器的lo ...

  9. 「雕爷学编程」Arduino动手做(24)——水位传感器模块

    37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器和模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里 ...

  10. js 文本框只能输入数字和点

    http://www.jb51.net/article/51102.htm 手机端 只能输入数字,能输小数点.且只能2位小数 oninput="this.value=this.value.r ...