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. Spring杂谈 | Spring中的AutowireCandidateResolver

    接口定义 用于推断一个特定的beanDefinition是否能作为指定依赖的候选者的策略接口 public interface AutowireCandidateResolver { // 默认情况下 ...

  2. 拒绝老土!暗黑风格半透平面化主题—InfinityFreedom正式发布

    经常听到“路由器界面土点就土点吧,凑合能用就成.” 诚然,路由器重要的是功能,但为什么要辣眼睛呢? 拯救喜欢折腾的你,抢救干涩的眼球,原创OpenWrt主题Infinity Freedom正式发布! ...

  3. leetcode-4. 寻找两个正序数组的中位数

    leetcode-4. 寻找两个正序数组的中位数. 给定两个大小为 m 和 n 的正序(从小到大)数组 nums1 和 nums2. 请你找出这两个正序数组的中位数,并且要求算法的时间复杂度为 O(l ...

  4. Arrays.binarySearch的返回值

    如果查找的值包含在数组中,返回搜索的第一个值的下标: 如果查找的值不在数组中,返回(-插入点-1):插入点即为第一个大于此查找值的元素下标 插入点 为将该值插入数组的那一点:即第一个大于此键的元素下标 ...

  5. 手机app传统邀请码安装与免邀请码安装区别,如何选择呢?

    App 邀请机制是每个产品几乎必做的功能点,它一般以两种形式存在:一是作为常置功能用于推荐,二是作为裂变活动用于邀请. 无论以哪种形式出现,都可以归为社交分享的一种表现方式.相较于营销推广,邀请好友机 ...

  6. AndroidStudio3.6升级后的坑-apk打包

    前段时间尝试了最新版的AndroidStudio3.6,整体来说gradle调试和自带的虚拟机相比较历史版本有了更香的体验. 刚好有个新项目,就直接使用最新版了,这次新版的升级除了保持原有的界面风格, ...

  7. vtk学习记录(三)——初识vtkRenderer

    目录 前言 vtkRenderer 引入vtk窗口 小结 前言 一场疫情打乱了好多人的节奏,我也一样,一不留神半年都快过去了,这期间虽说一直在鼓捣东西吧,不过确实是没啥实质性的进展,索性就继续把vtk ...

  8. Jenkins 实现 ldap认证

    使用自己搭建的openldap: 使用Test LdapSetting测试的结果: 所测试的用户在:svn,jenkins,gitlab,sonarqube,wpsadmin组下 若用户不在jenki ...

  9. 【雕爷学编程】MicroPython动手做(05)——零基础学MaixPy之LCD液晶屏

    配套 2.4寸LCD屏 ST7789驱动器芯片(24P 320X240) ST7789驱动器芯片2.4寸LCD屏(24P 320X240)主要参数 1. 模块名称:液晶显示模块2. 型号:KD024C ...

  10. pug(jade) 学习笔记

    from: https://www.cnblogs.com/xiaohuochai/p/7222227.html 对于一些嵌套层次较深的页面,在后期维护和修改时,一不小心少了一个尖括号,或者某个标签的 ...