组件接口说明
10.5.1监听器接口
组件接口
com.chinacreator.event.Listener
方法:
public void handle(Event e);
说明:事件监听器通过本方法来处理监听到的事件消息。由具体的监听器实现类来实现这个方法。
使用实例:
public void handle(Event e) {
Object source = e.getSource();//获取事件消息源
if(e.getType().equals( ACLEventType.ROLE_INFO_CHANGE))//判断事件类型
{
//进行特殊处理
}
}
10.5.2注册监听器接口
注册事件监听器需要的相关组件接口说明如下:
10.5.2.1 com.chinacreator.event.NotifiableFactory
方法:
public static Notifiable getNotifiable()
说明:通过NotifiableFactory提供的静态方法获取到一个通用激发器对象
然后在这个激发器对象上注册所有监听器
10.5.2.2 com.chinacreator.event.Notifiable
l 方法 1:
public void addListener(Listener listener)
说明:注册监听器,监听所有类型的本地事件和远程本地事件
实例:
Listener listener = new ExampleListener();
NotifiableFactory.getNotifiable().addListener(listener);
l 方法2:
public void addListener(Listener listener,boolean remote)
说明:
注册监听器,根据参数remote的值监听不同传播方式的消息,
True-监听远程消息和本地远程消息以及远程消息。
False-监听本地消息和本地远程消息
实例:
Listener listener = new ExampleListener();
NotifiableFactory.getNotifiable().addListener(listener,false);
l 方法3:
public void addListener(Listener listener,List eventtypes);
说明:
注册监听器,监听远程消息,本地消息,本地远程消息,只监听eventtypes列表中列出的消息类型的消息。
实例:
List eventTypes = new ArrayList();
eventTypes.add(CMSEventType.EVENT_SITE_ADD);
eventTypes.add(CMSEventType.EVENT_SITE_DELETE);
eventTypes.add(CMSEventType.EVENT_SITE_UPDATE);
eventTypes.add(CMSEventType.EVENT_SITESTATUS_UPDATE);
eventTypes.add(CMSEventType.EVENT_CHANNEL_MOVE);
Listener listener = new ExampleListener();
NotifiableFactory.getNotifiable().addListener(listener,eventType);
l 方法4:
public void addListener(Listener listener,List eventtypes,boolean remote);
说明:注册监听器,remote为true时监听远程消息、本地消息、本地远程消息,为false时监听本地消息、本地远程消息,同时只监听eventtypes列表中列出的消息类型的消息
实例:
List eventTypes = new ArrayList();
//设置监听器需要监听的事件类型
eventTypes.add(CMSEventType.EVENT_SITE_ADD);
eventTypes.add(CMSEventType.EVENT_SITE_DELETE);
eventTypes.add(CMSEventType.EVENT_SITE_UPDATE);
eventTypes.add(CMSEventType.EVENT_SITESTATUS_UPDATE);
eventTypes.add(CMSEventType.EVENT_CHANNEL_MOVE);
Listener listener = new ExampleListener();
NotifiableFactory.getNotifiable().addListener(listener,eventTypes,false);
l 方法5:
public void addListener(Listener listener,List eventtypes,int listenerType);
说明:
注册监听器,监听eventtypes中列出的对应消息类型的事件消息,根据listenerType的值来决定监听的不同传播途径的事件消息。listenerType的取值范围如下:
/**
* 本地事件消息和本地远程事件西欧系监听器,
*/
public static final int Listener.LOCAL = 0;
/**
* 本地远程事件和远程事件监听器
*/
public static final int Listener.REMOTE = 1;
/**
* 本地和远程事件及本地远程事件监听器
*/
public static final int Listener.LOCAL_REMOTE = 2;
使用实例:
List eventTypes = new ArrayList();
//设置监听器需要监听的事件类型
eventTypes.add(CMSEventType.EVENT_SITE_ADD);
eventTypes.add(CMSEventType.EVENT_SITE_DELETE);
eventTypes.add(CMSEventType.EVENT_SITE_UPDATE);
eventTypes.add(CMSEventType.EVENT_SITESTATUS_UPDATE);
eventTypes.add(CMSEventType.EVENT_CHANNEL_MOVE);
Listener listener = new ExampleListener();
NotifiableFactory.getNotifiable().addListener(listener,eventTypes, Listener.LOCAL_REMOTE);
l 方法6:
public void addListener(Listener listener,int listenerType);
说明:注册监听器,该监听器监听所有类型的事件消息,listenerType参数用来指定监听器需要监听的消息的传播方式,也就是说,监听器只监听以listenerType指定的传播方式传播的事件消息。listenerType的取值范围如下:
/**
* 本地事件消息和本地远程事件西欧系监听器,
*/
public static final int Listener.LOCAL = 0;
/**
* 本地远程事件和远程事件监听器
*/
public static final int Listener.REMOTE = 1;
/**
* 本地和远程事件及本地远程事件监听器
*/
public static final int Listener.LOCAL_REMOTE = 2;
使用实例:
Listener listener = new ExampleListener();
NotifiableFactory.getNotifiable().addListener(listener, Listener.LOCAL_REMOTE);
10.5.3事件消息发布接口
与事件发布相关的组件接口如下:
com.chinacreator.event.EventHandle
com.chinacreator.event.EventImpl
com.chinacreator.event.EventType
com.chinacreator.event.EventTarget
com.chinacreator.remote.Utils
EventHandle是一个抽象类封装了所有事件广播(事件本地广播和事件远程广播)的所有功能。EventHandle分发事件消息可以同步分发消息也可以通过异步的方式发布消息。
EventImpl是事件消息的封装对象,封装的信息包括:
l 事件源信息,也就是事件需要广播的消息数据,是一个java.lang.Object类型的对象,当消息作为远程消息传递时消息对象必须实现java.io.Serializable接口,。
l 事件类型,所有的事件消息都需要指定一个事件类型,这样才会被特定的事件监听器所接收
l 事件消息广播方式,指定事件的传播途径,分为3种方式:
本地传播(Event.LOCAL) 只将相应的事件消息在本地应用中传播,发给本地监听器和本
地远程监听器
远程传播(Event.REMOTE) 事件消息传递给远程服务器中的远程监听器和远程本地监听
器(远程服务器也包括本地服务器,因为本地服务器也启动了
远程消息监听器)
本地远程传播 (Event.REMOTELOCAL)事件消息除了传递给本地监听器,也会在远程服务
器之间传播,远程服务器上的本地远程监听器和远程监听器会
接收到这个消息。
l 事件消息的目标地址,包含目标地址ip和端口。当指定的消息为REMOTE和REMOTELOCAL这两种类型时,才能指定目标地址,如果对应的target不存在,那么这个事件消息就不会在服务器之间传播。如果指定目标地址,那么该消息就会直接传递给该地址对应的应用服务器上的监听器,否则就会广播给所有的远程服务器上的相关的事件监听器
EventTarget封装事件发送目标地址,包括ip和端口两个信息。只有事件的eventBroadcastType为远程传播(Event.REMOTE)和 本地远程传播 (Event.REMOTELOCAL)两种类型时,才可以指定target属性,如果target为null,那么事件将被广播到所有的远程节点上面的监听器,否则只广播到target指定的目的地址对应的远程监听器,如果对应的target不存在,那么直接丢弃这个事件消息。
com.chinacreator.remote.Utils:EventHandle组件采用Utils组件来广播远程消息。Utils中采用JGroups组播通讯控件来实现事件消息在远程服务器之间广播。具体消息的远程广播机制请参考系统集群配置说明一节。
- 大小: 2.9 KB
分享到:
相关推荐
### iPanel浏览器EVENT处理说明详解 #### 一、iPanel浏览器EVENT处理原则 根据文档中的说明,iPanel浏览器处理EVENT遵循以下两个基本原则: 1. **灵活性原则**:iPanel尽可能多地将EVENT交给HTML页面、JavaScript...
Outlook Event监听器则是用于跟踪和响应Outlook应用程序中特定事件的程序组件。在深入探讨这个主题之前,我们需要了解一些基本的背景知识。 Microsoft Outlook是一款广泛使用的电子邮件、日历、任务管理和其他办公...
《中国移动短消息网管接口说明》是针对ZXG10 SMSC系统中DB网管中间库的详细文档,主要用于描述如何管理和监控短信服务。本文档主要涵盖了与接口相关的技术细节,以便于网络管理员进行有效操作。 1. **DB网管中间库*...
- **事件源(Event Source)**:通常是指UI组件,如按钮、文本框等,这些组件可以触发各种类型的事件。 - **事件监听器(Event Listener)**:负责接收并处理来自事件源的事件。监听器实现了特定接口,其中包含了...
综上所述,"windows event 网路封装dll"是一个专注于Windows平台网络编程的组件,它使用事件机制来优化异步网络操作,并通过DLL的形式提供服务,简化了其他应用程序的网络功能实现。开发者可以通过研究"EvtSock_1"来...
- Chapter 12:可能讲解了C#中的接口(Interface)和抽象类(Abstract Class),这是组件设计中的关键概念,用于定义行为规范,实现多态性。 - Chapter 21:可能涉及了.NET框架中的事件(Event)和委托(Delegate)...
文档中提到了从内置日志组件到NLog的简单过渡方法,但具体内容未在提供的摘录中详细说明。 ### 总结 在.NET Core MVC应用中,日志记录是不可或缺的功能,它可以帮助开发者监视应用的运行状态和诊断问题。使用内置...
这说明了父组件如何通过`$refs`访问到子组件的实例,并执行了子组件内的方法。 这种通过`$refs`来直接调用子组件的方法的做法虽然简单,但通常不推荐频繁使用,因为它破坏了Vue.js推荐的单向数据流和组件间通过...
9. **接口定义**:DEM与其他软件组件(如ECU驱动层、网络管理器等)之间的接口需要清晰定义,以确保整个系统的协同工作。 10. **诊断协议转换**:可能需要处理多种诊断协议(如OBD-II、UDS等),DEM需具备协议转换...
《ActionScript3.0语言和组件参考》是Adobe官方发布的一份权威指南,主要针对ActionScript3.0这一编程语言及其相关组件进行详尽的解释和说明。该文档以CHM(Compiled HTML Help)格式呈现,便于用户快速查找和浏览所...
5. **事件监听与处理**:Swing组件支持事件驱动编程,通过添加EventListener,可以对用户的操作(如点击按钮)做出反应。例如,为JButton添加ActionListener,当用户点击按钮时执行特定的代码。 6. **数据结构与...
这个例子中,"一个事件源组件上可以同时注册多个监听器",意味着你可以为同一个组件添加多个`ActionListener`,每个监听器都会接收到相同的事件,并独立处理。 4. **事件处理**:当用户执行了关联的动作(例如点击...
8. **文本介绍(Intro Text)**:`intro.txt`可能包含了对这个分页组件功能和使用方法的简要说明,帮助用户理解和使用。 9. **响应式设计(Responsive Design)**:考虑到不同的设备和屏幕尺寸,一个好的前端组件应...
- **ECMAScript组件接口**:定义了组件对外提供的功能和服务。 - **ECMAScript对象实现**:详细说明了组件内部的实现细节,包括属性、方法等。 - **附加资源文件**:除了主要的JavaScript文件之外,可能还需要其他...
3. 创建接口:定义接口,以便在应用组件之间进行交互。 4. 创建 SWC 原型:创建一个软件组件(SWC)的原型,以便在应用组件中使用。 5. 创建 port:创建一个端口,以便在应用组件之间进行交互。 6. 创建新的内部行为...
9. **事件模型(Event Model)**:COM支持事件模型,允许组件发布事件,其他组件可以订阅并响应这些事件,实现松耦合的通信。 10. **跨平台支持(Interoperability)**:虽然COM最初是为Windows平台设计的,但通过...
此外,项目的压缩包中包含了一个名为"必读.txt"的文件,这可能是项目使用说明或开发者对使用者的一些重要提示,例如如何配置API密钥、如何运行程序等。而"kuaidi100"可能是指与快递100接口相关的类库或者示例代码。 ...
手册也探讨了如何在event_base中的每个事件上运行一个函数,以及对一些废弃的事件操作函数的说明。 手册的最后部分介绍了辅助类型和函数,包括基本类型evutil_socket_t、标准整数类型和各种兼容性类型。还提供了...
- 应用接口(Application Interface):应用组件提供给环境的接入点。 - 应用交互(Application Interaction):一组由应用组件执行的自动化行为。 技术基础设施层(Technology Infrastructure Layer): 描述了在...
C#组件可以实现`IDisposable`接口,以在不再使用时正确释放资源。 7. **容器和角色**:COM+包含各种容器(如服务器、图书馆和进程外组件),以及角色(定义组件如何协作)。C#组件可以通过配置文件与这些容器和角色...