到达队列头部的事件将被分派到目标对象。一旦将事件分派给对象,该对象就会根据状态图中的事件传播语义以及“运行到完成”语义来处理该事件。处理事件后,该事件不再存在,并且执行框架将以隐式方式删除该事件。
内部事件在对象向其自身发送消息时发生。要创建内部事件,请在发送动作中省略目标对象,如下所示:
GEN(warmEngine(95))
通过使用友元关系,您可以控制哪些类能够向另外哪些类生成事件。这样,就可以确保事件仅来自可信的类。事件请求和排队功能由 gen() 方法控制,在缺省情况下,这些方法是框架基类 OMReactive 中的公用方法。如果您想使用友元关系来控制事件的生成,请使 Share\oxf\OMReactive.h 中的第一个 gen() 方法受保护。此操作只需执行一次。请不要更改第二个 gen() 方法(此方法用于检测)。
对于要为其生成事件的类,请在每个应用程序类中指定对该类的友元关系。如果未指定友元关系,那么程序将不再能够通过编译。