`

Event组件接口说明

阅读更多

组件接口说明

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);

说明:注册监听器,remotetrue监听远程消息、本地消息、本地远程消息,为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和端口。当指定的消息为REMOTEREMOTELOCAL这两种类型时,才能指定目标地址,如果对应的target不存在,那么这个事件消息就不会在服务器之间传播。如果指定目标地址,那么该消息就会直接传递给该地址对应的应用服务器上的监听器,否则就会广播给所有的远程服务器上的相关的事件监听器 

EventTarget封装事件发送目标地址,包括ip和端口两个信息。只有事件的eventBroadcastType为远程传播(Event.REMOTE) 本地远程传播 (Event.REMOTELOCAL)两种类型时,才可以指定target属性,如果targetnull,那么事件将被广播到所有的远程节点上面的监听器,否则只广播到target指定的目的地址对应的远程监听器,如果对应的target不存在,那么直接丢弃这个事件消息。 

com.chinacreator.remote.Utils:EventHandle组件采用Utils组件来广播远程消息。Utils中采用JGroups组播通讯控件来实现事件消息在远程服务器之间广播。具体消息的远程广播机制请参考系统集群配置说明一节。

  • 大小: 2.9 KB
分享到:
评论

相关推荐

    iPanel浏览器EVENT处理说明

    ### iPanel浏览器EVENT处理说明详解 #### 一、iPanel浏览器EVENT处理原则 根据文档中的说明,iPanel浏览器处理EVENT遵循以下两个基本原则: 1. **灵活性原则**:iPanel尽可能多地将EVENT交给HTML页面、JavaScript...

    outlook event

    Outlook Event监听器则是用于跟踪和响应Outlook应用程序中特定事件的程序组件。在深入探讨这个主题之前,我们需要了解一些基本的背景知识。 Microsoft Outlook是一款广泛使用的电子邮件、日历、任务管理和其他办公...

    移动短消息网管接口说明.doc

    《中国移动短消息网管接口说明》是针对ZXG10 SMSC系统中DB网管中间库的详细文档,主要用于描述如何管理和监控短信服务。本文档主要涵盖了与接口相关的技术细节,以便于网络管理员进行有效操作。 1. **DB网管中间库*...

    剖析Java Event-Delegation Model

    - **事件源(Event Source)**:通常是指UI组件,如按钮、文本框等,这些组件可以触发各种类型的事件。 - **事件监听器(Event Listener)**:负责接收并处理来自事件源的事件。监听器实现了特定接口,其中包含了...

    windows event 网路封装dll

    综上所述,"windows event 网路封装dll"是一个专注于Windows平台网络编程的组件,它使用事件机制来优化异步网络操作,并通过DLL的形式提供服务,简化了其他应用程序的网络功能实现。开发者可以通过研究"EvtSock_1"来...

    C#基于组件的开发(源码)

    - Chapter 12:可能讲解了C#中的接口(Interface)和抽象类(Abstract Class),这是组件设计中的关键概念,用于定义行为规范,实现多态性。 - Chapter 21:可能涉及了.NET框架中的事件(Event)和委托(Delegate)...

    13.在 Mvc 中简单使用日志组件.pdf

    文档中提到了从内置日志组件到NLog的简单过渡方法,但具体内容未在提供的摘录中详细说明。 ### 总结 在.NET Core MVC应用中,日志记录是不可或缺的功能,它可以帮助开发者监视应用的运行状态和诊断问题。使用内置...

    vue.js中父组件调用子组件的内部方法示例

    这说明了父组件如何通过`$refs`访问到子组件的实例,并执行了子组件内的方法。 这种通过`$refs`来直接调用子组件的方法的做法虽然简单,但通常不推荐频繁使用,因为它破坏了Vue.js推荐的单向数据流和组件间通过...

    Specification of Diagnostic Event Manager

    9. **接口定义**:DEM与其他软件组件(如ECU驱动层、网络管理器等)之间的接口需要清晰定义,以确保整个系统的协同工作。 10. **诊断协议转换**:可能需要处理多种诊断协议(如OBD-II、UDS等),DEM需具备协议转换...

    ActionScript3.0语言和组件参考.chm

    《ActionScript3.0语言和组件参考》是Adobe官方发布的一份权威指南,主要针对ActionScript3.0这一编程语言及其相关组件进行详尽的解释和说明。该文档以CHM(Compiled HTML Help)格式呈现,便于用户快速查找和浏览所...

    qq聊天系统java语言实现(Swing组件)

    5. **事件监听与处理**:Swing组件支持事件驱动编程,通过添加EventListener,可以对用户的操作(如点击按钮)做出反应。例如,为JButton添加ActionListener,当用户点击按钮时执行特定的代码。 6. **数据结构与...

    TestActionEvent2.rar_TestActionEvent_java event handl_监听器

    这个例子中,"一个事件源组件上可以同时注册多个监听器",意味着你可以为同一个组件添加多个`ActionListener`,每个监听器都会接收到相同的事件,并独立处理。 4. **事件处理**:当用户执行了关联的动作(例如点击...

    异步分页组件.zip

    8. **文本介绍(Intro Text)**:`intro.txt`可能包含了对这个分页组件功能和使用方法的简要说明,帮助用户理解和使用。 9. **响应式设计(Responsive Design)**:考虑到不同的设备和屏幕尺寸,一个好的前端组件应...

    Standard ECMA-2

    - **ECMAScript组件接口**:定义了组件对外提供的功能和服务。 - **ECMAScript对象实现**:详细说明了组件内部的实现细节,包括属性、方法等。 - **附加资源文件**:除了主要的JavaScript文件之外,可能还需要其他...

    ETAS操作指南说明文件

    3. 创建接口:定义接口,以便在应用组件之间进行交互。 4. 创建 SWC 原型:创建一个软件组件(SWC)的原型,以便在应用组件中使用。 5. 创建 port:创建一个端口,以便在应用组件之间进行交互。 6. 创建新的内部行为...

    com技术原理 com技术原理

    9. **事件模型(Event Model)**:COM支持事件模型,允许组件发布事件,其他组件可以订阅并响应这些事件,实现松耦合的通信。 10. **跨平台支持(Interoperability)**:虽然COM最初是为Windows平台设计的,但通过...

    java swing界面开发的一个抓取快递接口工具

    此外,项目的压缩包中包含了一个名为"必读.txt"的文件,这可能是项目使用说明或开发者对使用者的一些重要提示,例如如何配置API密钥、如何运行程序等。而"kuaidi100"可能是指与快递100接口相关的类库或者示例代码。 ...

    libevent参考手册中文版_libevent-2.1.5.pdf

    手册也探讨了如何在event_base中的每个事件上运行一个函数,以及对一些废弃的事件操作函数的说明。 手册的最后部分介绍了辅助类型和函数,包括基本类型evutil_socket_t、标准整数类型和各种兼容性类型。还提供了...

    archimate3一页纸图例说明.pdf

    - 应用接口(Application Interface):应用组件提供给环境的接入点。 - 应用交互(Application Interaction):一组由应用组件执行的自动化行为。 技术基础设施层(Technology Infrastructure Layer): 描述了在...

    C# COM+ Programming

    C#组件可以实现`IDisposable`接口,以在不再使用时正确释放资源。 7. **容器和角色**:COM+包含各种容器(如服务器、图书馆和进程外组件),以及角色(定义组件如何协作)。C#组件可以通过配置文件与这些容器和角色...

Global site tag (gtag.js) - Google Analytics