Sand学习笔记之---Node
概述:Node是Sand中两大元素之一(Struct和Node),主要实现逻辑处理功能。
Node的功能:消息的处理单元,实现逻辑。
Node的组成:主要由两部分组成,静态部分和动态部分。
1. 静态部分(静态的代码)
分为两部分:用户定义的代码(**NodeDecl、**Node)和Code Gen生成的代码(**NodeBase、**NodeInstance、**NodeCtrl、**NodeCtrlMBean)
它们之关的关系如下:
**NodeDecl
**NodeBase
**Node
**NodeInstance
**NodeCtrlMBean
**NodeCtrl
各个类的基本职责:
1.1 **NodeDecl
声明Node处理的消息接口(接收/发送的消息)和Node的状态属性。其中,声明接收和发送消息的时候,主要有四类消息:call, receive, subscribe和send(即同步/异步 * 接收/发送)
1.2 **NodeBase
根据**NodeDecl的声明生成的代码。根据声明,生成特定消息的传递机制,并提供一些虚方法供**Node重载(如onReceive, onStartup, onDeliver…),以及向外发消息的机制(如call**Message或send**Message)
1.3 **Node
通过重载**NodeBase中特定的方法,来实现具体的业务逻辑。在实现的过程中,可以使用**NodeBase提供的(call, send)向外发消息。
1.4 **NodeInstance
NodeInstance的内存表示。
1.5 **NodeCtrlMBean和**NodeCtrl(没有详细分析,功能不清楚)
2.动态部分(运行时的实例)
通过config.xml来配置。主要配置Node的实例,以及Node上的消息。