https://mp.weixin.qq.com/s/NaInHsJgOwG03BLNF-wlxQ
 
介绍Module输入输出端口如何进行绑定。
 
 
 
1. IO()
 
在定义一个模块时,使用Bundle的匿名子类型来定义模块的输入输出端口,然后将其传递给IO()方法。
 
IO()方法定义在BaseModule中,其记录自定义Bundle匿名子类型中各个数据成员的绑定信息。亦即把输入输出端口绑定到所在的模块上。
 
 
)
iodef.cloneTypeFull
_bindIoInPlace执行绑定动作
d. 返回iodefClone
 
中的closed是指模块是否已经完成定义,已经完成后则不可以再添加输入输出端口,这个后面再讲。
 
2. _bindIoInPlace
 
这个方法实际执行绑定动作:
中的this是指当前模块;
使用当前模块构造一个PortBinding:
c. iodef的类型为Bundle的子类型,所以有bind方法,调用其bind方法进行绑定
 
绑定的对象(target)为PortBinding,而这个PortBinding中含有对当前模块的引用。从而把iodef和当期模块绑定到一起。
 
这样实现了从模块到端口的引用。
 
结合iodef到模块的binding,就成了双向引用,可以互相查找。
 
 
 

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-11-18
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案