CN100543675C - 计算机软件系统中基于构件接口实现事件回调的方法 - Google Patents

计算机软件系统中基于构件接口实现事件回调的方法 Download PDF

Info

Publication number
CN100543675C
CN100543675C CNB2007101731146A CN200710173114A CN100543675C CN 100543675 C CN100543675 C CN 100543675C CN B2007101731146 A CNB2007101731146 A CN B2007101731146A CN 200710173114 A CN200710173114 A CN 200710173114A CN 100543675 C CN100543675 C CN 100543675C
Authority
CN
China
Prior art keywords
interface
callback
call back
back function
client
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CNB2007101731146A
Other languages
English (en)
Other versions
CN101196813A (zh
Inventor
牛靖宇
王晨辉
宋世军
陈榕
梁宇洲
苏翼鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Elcoteq Shanghai Huajie Technology Co. Ltd.
Original Assignee
KETAI CENTURY SCIENCE AND TECHNOLOGY Co Ltd SHANGHAI
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by KETAI CENTURY SCIENCE AND TECHNOLOGY Co Ltd SHANGHAI filed Critical KETAI CENTURY SCIENCE AND TECHNOLOGY Co Ltd SHANGHAI
Priority to CNB2007101731146A priority Critical patent/CN100543675C/zh
Publication of CN101196813A publication Critical patent/CN101196813A/zh
Application granted granted Critical
Publication of CN100543675C publication Critical patent/CN100543675C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明涉及一种计算机软件系统中基于构件接口实现事件回调的方法,包括系统在服务端产生目标构件类的回调接口和回调接口中的事件方法的定义信息、在客户端产生与所述的目标构件类的回调接口中的事件方法相对应的回调函数定义信息、在服务端创建所述的目标构件类的对象实例、进行服务端的目标构件类的对象实例中的回调事件和客户端的回调函数之间的关联注册处理操作、根据目标构件类的对象实例的运行激发所述的回调事件并调用与该回调事件相关联注册的回调函数。采用该种计算机软件系统中基于构件接口实现事件回调的方法,实现简单方便,使用灵活,功能强大,性能稳定可靠,适用范围较广泛,给计算机构件化软件系统的进一步发展奠定了坚实的基础。

Description

计算机软件系统中基于构件接口实现事件回调的方法
技术领域
本发明涉及计算机软件技术领域,特别涉及计算机构件化软件系统技术领域,具体是指一种计算机软件系统中基于构件接口实现事件回调的方法。
背景技术
在现代的计算机软件技术的发展过程中,回调函数是一项非常有用的编程机制,在程序设计领域已有多年历史,程序开发人员利用这种机制能够编制出各种不同的应用程序,不仅功能强大,而且非常灵活,实现过程简单。
但是,在现有技术中,通常的Windows的消息回调模型,它是完全面向过程的,由发送者决定发送给谁,而接收者只能默默接收并处理所有消息甚至垃圾消息;同时,发送端发送消息、接收端处理消息都需要用户书写大量实现代码,增加了重复劳动,增加了出现漏洞的概率,而且对程序员要求较高。
同时,回调过程中传递的参数是一个LPVOID型指针,不具备类型安全,如果想跨进程还要涉及复杂的共享内存或内存拷贝等问题。
这些问题的存在,就给构件化软件系统中实现更加灵活的回调行为带来了很大的限制。
发明内容
本发明的目的是克服了上述现有技术中的缺点,提供一种完全符合面向构件编程的规范、具有安全的参数类型、能够实现跨越进程边界和跨网络远程回调、回调过程具有广播效果、实现过程简单方便、使用灵活、功能强大、工作性能稳定可靠、适用范围较为广泛的计算机软件系统中基于构件接口实现事件回调的方法。
为了实现上述的目的,本发明的计算机软件系统中基于构件接口实现事件回调的方法如下:
该计算机软件系统中基于构件接口实现事件回调的方法,系统包括服务端和客户端,其主要特点是,所述的方法包括以下步骤:
(1)系统根据用户的输入,在服务端产生目标构件类的回调接口和回调接口中的事件方法的定义信息;
(2)系统根据用户的输入,在客户端产生与所述的目标构件类的回调接口中的事件方法相对应的回调函数定义信息;
(3)系统在服务端创建所述的目标构件类的对象实例;
(4)系统进行服务端的目标构件类的对象实例中的回调事件和客户端的回调函数之间的关联注册处理操作;
(5)系统根据目标构件类的对象实例的运行,激发所述的回调事件,并调用与该回调事件相关联注册的回调函数。
该计算机软件系统中基于构件接口实现事件回调的方法中的回调函数的接口参数包括目标构件类的回调接口中的事件方法的接口参数和目标构件类的对象实例的句柄。
该计算机软件系统中基于构件接口实现事件回调的方法中的系统进行服务端的目标构件类的对象实例中的回调事件和客户端的回调函数之间的关联注册处理操作,包括以下步骤:
(41)系统在服务端生成实现所述的目标构件类的所有回调接口的接口池类;
(42)系统在客户端创建所述的接口池类的对象实例;
(43)将该接口池类的对象实例的句柄传递给服务端,并保存在服务端的回调接口池链表中;
(44)系统在客户端的接口池类的对象实例中进行所述的回调事件和对应的回调函数的关联处理操作。
该计算机软件系统中基于构件接口实现事件回调的方法中的系统在客户端的接口池类的对象实例中进行回调事件和回调函数的关联处理操作,包括以下步骤:
(441)系统根据用户操作,在所述的回调事件和对应的回调函数之间建立关联关系;
(442)将所述的回调事件和对应的回调函数之间建立关联关系保存至客户端的接口池类的对象实例的数据结构中。
该计算机软件系统中基于构件接口实现事件回调的方法中的调用与该回调事件相关联注册的回调函数,包括以下步骤:
(51)系统遍历服务端的回调接口池链表中的每个接口池类的对象实例的句柄,并调用相应的回调接口中的事件方法;
(52)客户端根据系统的调用请求,进行与该回调事件相关联注册的回调函数的异步回调处理操作。
该计算机软件系统中基于构件接口实现事件回调的方法中的客户端进行回调函数的异步回调处理操作,包括以下步骤:
(521)系统根据所述的回调事件,在客户端的接口池类的对象实例中查询相关联的回调函数;
(522)系统根据所述的回调事件和关联的回调函数生成回调消息包;
(523)系统将该回调消息包送入客户端的消息队列中;
(524)客户端的回调工作线程从所述的消息队列中依次取出回调消息包并进行解析,然后调用相应的回调函数。
该计算机软件系统中基于构件接口实现事件回调的方法中的回调消息包中包括回调事件类型、产生回调事件的服务端目标构件类的对象实例、与该回调事件所关联的回调函数的函数指针和该回调函数的参数内容。
采用了该发明的计算机软件系统中基于构件接口实现事件回调的方法,由于其为面向构件编程、基于构件接口设计的事件回调,并将所有的回调函数都封装到接口,每个回调事件对应一个接口方法,从而整个回调模型完全符合面向构件编程的规范,确保了所有的回调方法都具有安全的参数类型,可以跨越进程边界,甚至可以跨网络远程回调;同时,每个回调接口都可以被多个用户、多个进程注册,回调接口所产生的事件会通知所有注册者,并且由于回调过程是异步操作,可以达到类似广播的效果——“同时”调用众多回调函数;每个用户也可以为一个回调事件注册多个回调函数;回调函数既可以是静态函数也可以是普通的C++类成员方法,从而使得构件开发人员不需要为回调接口花费太多精力,只需要在构件类中声明它所实现的哪些接口是回调接口,并确定这些接口都已被定义,那么其在构件实现过程中就可以直接调用回调接口的方法来发布通知、激活事件;而该构件的使用者只需要根据回调接口中的声明来定义自己的回调函数,然后只需要简单的代码即可注册关联所关心的事件,就能够实现事件每次被激发时均会回调相应的回调函数,实现过程简单方便,使用灵活,功能强大,工作性能稳定可靠,适用范围较为广泛,给计算机构件化软件系统的进一步发展奠定了坚实的基础。
附图说明
图1为本发明的计算机软件系统中基于构件接口实现事件回调的方法中的注册回调事件的流程图。
图2为本发明的计算机软件系统中基于构件接口实现事件回调的方法中的注册回调函数的流程图。
图3为本发明的计算机软件系统中基于构件接口实现事件回调的方法中的激发回调事件的流程图。
图4为本发明的计算机软件系统中基于构件接口实现事件回调的方法中的激发回调函数的流程图。
图5为本发明的计算机软件系统中基于构件接口实现事件回调的方法中的产生接口池类的原理示意图。
图6为本发明的计算机软件系统中基于构件接口实现事件回调的方法中的管理回调事件的注册信息的原理示意图。
图7a、7b为本发明的计算机软件系统中基于构件接口实现事件回调的方法中的异步回调模式的工作原理示意图。
具体实施方式
为了能够更清楚地理解本发明的技术内容,特举以下实施例详细说明。
请参阅图1至图4所示,该计算机软件系统中基于构件接口实现事件回调的方法,系统包括服务端和客户端,该方法包括以下步骤:
(1)系统根据用户的输入,在服务端产生目标构件类的回调接口和回调接口中的事件方法的定义信息;
(2)系统根据用户的输入,在客户端产生与所述的目标构件类的回调接口中的事件方法相对应的回调函数定义信息,该回调函数的接口参数包括目标构件类的回调接口中的事件方法的接口参数和目标构件类的对象实例的句柄;
(3)系统在服务端创建所述的目标构件类的对象实例;
(4)系统进行服务端的目标构件类的对象实例中的回调事件和客户端的回调函数之间的关联注册处理操作,包括以下步骤:
(a)系统在服务端生成实现所述的目标构件类的所有回调接口的接口池类;
(b)系统在客户端创建所述的接口池类的对象实例;
(c)将该接口池类的对象实例的句柄传递给服务端,并保存在服务端的回调接口池链表中;
(d)系统在客户端的接口池类的对象实例中进行所述的回调事件和对应的回调函数的关联处理操作,包括以下步骤:
(i)系统根据用户操作,在所述的回调事件和对应的回调函数之间建立关联关系;
(ii)将所述的回调事件和对应的回调函数之间建立关联关系保存至客户端的接口池类的对象实例的数据结构中;
(5)系统根据目标构件类的对象实例的运行,激发所述的回调事件,并调用与该回调事件相关联注册的回调函数,包括以下步骤:
(a)系统遍历服务端的回调接口池链表中的每个接口池类的对象实例的句柄,并调用相应的回调接口中的事件方法;
(b)客户端根据系统的调用请求,进行与该回调事件相关联注册的回调函数的异步回调处理操作,包括以下步骤:
(i)系统根据所述的回调事件,在客户端的接口池类的对象实例中查询相关联的回调函数;
(ii)系统根据所述的回调事件和关联的回调函数生成回调消息包,该回调消息包中包括回调事件类型、产生回调事件的服务端目标构件类的对象实例、与该回调事件所关联的回调函数的函数指针和该回调函数的参数内容;
(iii)系统将该回调消息包送入客户端的消息队列中;
(iv)客户端的回调工作线程从所述的消息队列中依次取出回调消息包并进行解析,然后调用相应的回调函数。
在实际应用当中,请参阅图1所示,对于注册回调事件,包括以下步骤:
●用户首先根据目标构件的回调事件的声明,定义自己的回调函数,回调函数的参数比构件中声明的多一个参数pSender,为激发此事件的构件对象的句柄;
●实例化目标构件类对象;
●向该对象注册回调事件,表示对其可能发生的数字键按下的事件感兴趣,如果发生此事件则回调用户所定义的回调函数NumberKeyDown(...);
●用户的代码结束,当执行到Return语句,系统接管,该线程进入处理消息的循环。再请参阅图2所示,对于注册回调函数,包括以下步骤:
●用户调用注册回调的函数;
●注册函数内部会创建一个CKeyboardSink的实例;
●调用构件对象的Aggregate方法将SinkObject的句柄传递给Server端,Server端会将此句柄保存在一个链表中,当需要回调用户时遍历此链表,通过保存的SinkObject句柄逐个回调;
●Client端调用SinkObject的AddCallback方法注册回调信息,比如针对哪个事件注册关联哪个回调函数。
再请参阅图3所示,对于激发回调事件,包括以下步骤:
●在CAR文件中声明该构件的回调事件接口以及可能产生此事件的构件类;
●在适当位置调用CAR文件中声明的回调事件的方法;
●该方法会向所有注册该事件的Client端投递一个消息,包含发送者、参数等信息;
●Client端的消息处理线程会逐个分析处理消息,并调用用户之前注册的回调函数。
再请参阅图4所示,对于激发回调函数,包括以下步骤:
●Server端在适当时机调用回调函数OnNumberKey(9);
●在OnNumberKey()内部会遍历之前保存过的SinkObject句柄,该句柄是IKeyEvent接口指针,指向的是先前注册时创建的CKeyboardSink类对象;获得IKeyEvent接口指针后,调用IKeyEvent的OnNumberKey()接口方法,即,调用CKeyboardSink::OnNumberKey()。当前代码执行是在Server端,而CKeyboardSink类对象被创建在Client端,此调用为通过接口的远程调用;
●Client端的CKeyboardSink::OnNumberKey()的实现里,负责构造一个消息包,将所发生的事件类型、产生事件的构件对象、用户先前注册的回调函数的函数指针,以及回调参数内容;
●CKeyboardSink::OnNumberKey()构造完消息包以后会立即调用一个API将此消息包投递给注册过该事件的Client端,将此消息压入对方的消息队列;
●投递完消息后返回到Server端,继续执行之后的代码。而至于此刻Client端是否开始执行事件回调或者回调函数是否执行完成都不能预期,这就是所谓的异步回调过程。
再请参阅图5所示,构件编译工具编译Server端构件的定义文件时会自动生成一个CKeyboardSink类,该类将实现所有回调接口(比如IKeyEvent),当Client端注册回调时会创建一个CKeyboardSink类的实例SinkObject,再调用Server端的Aggregate方法注册此SinkObject的IKeyEvent句柄,Server端将IKeyEvent句柄保存到本地链表;当Server端激发事件回调时,会通过保存的IKeyEvent句柄调用回调,因为该IKeyEvent接口是由CKeyboardSink实现的,所以,Server端最终回调到CKeyboardSink的代码。
也就相当于在Client端也构造了一个构件类CKeyboardSink,提供IKeyEvent接口,Server端激发回调的时候就调用此接口,所以说回调过程是基于接口的,可以跨进程和参数类型安全的。
虽然CKeyboardSink是在Server端定义实现的,但它是被创建在Client端的地址空间里,它可以直接向接收者投递“事件被激发”的消息而不必再跨越进程边界。
再请参阅图6所示,Client端还通过SinkObject管理事件回调的注册信息,它负责一个构件类实例在这个进程内的所有回调注册信息的管理。用户注册一个回调事件的信息就被保存在SinkObject的内部数据结构上。
而SinkObject在第一次注册操作时被创建实例,之后每次操作都是针对该实例。在它创建之时就向Server端构件递交请求建立关联,构件将SinkObject的句柄关联上自己的回调事件,当之后任何事件被激发都会通知SinkObject,再由SinkObject根据注册信息通知用户的工作线程。
再请参阅图7a和图7b所示,为了实现异步回调模式,接收者有一个专门的工作线程和一个消息队列,SinkObject会将发生事件的消息放到消息队列,然后立即返回Server端;工作线程会逐个处理消息队列中的事件消息,每个消息对应一个被激发的事件,消息中封装了对应的回调函数,工作线程会按顺序调用它们,直到消息队列为空。
这段代码会循环处理消息队列中的所有消息,每个消息都代表Server构件的一次激活通知,每个消息都包含着:消息类型、消息发送者、对应的回调函数、函数参数内容等等。每次有事件被激活的消息都是被投递到这个消息队列中,再由这段代码负责解析消息内容,逐个调用回调函数。
从而,在构件内部,当它激发了某种事件,构件会调用所有关联着的SinkObjeet,再由SinkObject向注册过该事件的用户线程投递消息,放入消息队列后立即返回。
用户的工作线程发现新消息后就会从队列弹出消息,解析消息结构,获得相关联的回调函数和参数的信息,调用用户注册的回调函数。到此就完成了一次回调。
对于本发明的方法,在进行使用的过程中,对于一次事件回调过程包括:事件发送者,事件接收者,事件本身和回调函数。
一个提供某种功能的构件,在使用过程中可能会激发某些事件来通知调用者,比如一个邮件服务的构件,当邮件到来时要通知构件使用者“有新邮件”;再比如一个键盘事件的服务构件,每当有按键被按下都会抛出事件通知。那么这些构件就可以看作是事件发送者,由于这些构件都提供某些功能和服务,也称它们为Server端。相应的调用和使用该构件的一边就称为Client端,它们是消息接收者,并根据业务逻辑处理消息。
对于不同的事件需要附带不同的信息和数据,Windows的做法是传递一个LPVOID指针再由用户自由发挥;而本发明的回调实现方法是完全基于构件接口,有专门的回调接口和方法,完全由用户根据需要自由定义,而基于接口方法的回调方式,还可以保证传递参数的类型安全。
使用回调功能将非常简单。首先,构件的作者要在构件定义文件中“声明”出自己有哪些回调事件接口,以及包含哪些回调事件及回调方法。然后在构件类中使用“callback”关键字声明该接口,那么该构件类就具有回调接口,就可能会抛出被声明的回调接口中所定义的事件。比如一个键盘服务的构件,在它的构件定义文件中做如下声明和定义:
interface IKeyEvent{              //定义构件的接口
       OnNumberKey(Int32 KeyValue);   //声明接口方法
       OnCharacterKey(AChar KeyValue);
    }
    class CKeyboard{                 //定义一个构件类
       interface IKeyboard;          //声明该类实现该接口
       callback interface IKeyEvent;  //声明该类具有IKeyEvent回调接口
    }
然后,在构件中适当的时机调用回调函数。比如这个键盘服务的构件,它的构件类CKeyboard具有IKeyEvent回调接口,那么在这个构件类的实现里,如果发现数字键被按下,它可以调用OnNumberKey(KeyValue),如果有字符键被按下,它可以调用OnCharacterKey(KeyValue)。这些就代表用户的回调函数,如果有用户注册了这两个事件,他的回调函数就会被调用执行,但请注意,由于是异步的回调模型,CKeyboard在调用这两个函数时不会阻塞在这里等待用户的回调函数执行完成,而是立即返回,至于OnNumberKey和OnCharacterKey返回之后用户的回调函数是否被调用或是否已执行完成,这些都是无法预期的。这也是异步回调与同步回调最大的区别。
最后,使用这个构件的用户可以通过查看相关声明或产品说明等途径获知该构件会在何种情况下产生哪种事件,使用者可以根据需要定义自己的回调函数,并通过一个注册过程将回调函数与构件和回调事件关联起来。比如说,调用构件的客户端程序关心数字键被按下的事件,希望获得这个事件发生的通知,那么它就可以调用回调事件注册函数,将自己定义的回调函数与这个事件相关联,比如下面这句代码:
CKeyboard::AddonNumberKeyCallback(pKeyboard,NumberKeyDown);
其中,“CKeyboard”表示要注册哪个构件类的事件,函数名称中的“Add”表示是注册操作,对应的解除注册操作是“Remove”;函数名中的“OnNumberKey”表示注册哪个事件,如果注册字符按键的事件就是“OnCharacterKey”;函数第一个参数pKeyboard是一个CKeyboard构件类的对象指针,因为用户可能创建多个键盘服务对象,必须指明我们关心哪个对象;第二个参数NumberKeyDown是一个由用户定义的回调函数,当事件发生时这个函数会被调用,它的声明与构件的CAR文件中所定义的OnNumberKey(Int32 KeyValue)保持相同。
采用了上述的计算机软件系统中基于构件接口实现事件回调的方法,由于其为面向构件编程、基于构件接口设计的事件回调,并将所有的回调函数都封装到接口,每个回调事件对应一个接口方法,从而整个回调模型完全符合面向构件编程的规范,确保了所有的回调方法都具有安全的参数类型,可以跨越进程边界,甚至可以跨网络远程回调;同时,每个回调接口都可以被多个用户、多个进程注册,回调接口所产生的事件会通知所有注册者,并且由于回调过程是异步操作,可以达到类似广播的效果——“同时”调用众多回调函数;每个用户也可以为一个回调事件注册多个回调函数;回调函数既可以是静态函数也可以是普通的C++类成员方法,从而使得构件开发人员不需要为回调接口花费太多精力,只需要在构件类中声明它所实现的哪些接口是回调接口,并确定这些接口都已被定义,那么其在构件实现过程中就可以直接调用回调接口的方法来发布通知、激活事件;而该构件的使用者只需要根据回调接口中的声明来定义自己的回调函数,然后只需要简单的代码即可注册关联所关心的事件,就能够实现事件每次被激发时均会回调相应的回调函数,实现过程简单方便,使用灵活,功能强大,工作性能稳定可靠,适用范围较为广泛,给计算机构件化软件系统的进一步发展奠定了坚实的基础。
在此说明书中,本发明已参照其特定的实施例作了描述。但是,很显然仍可以作出各种修改和变换而不背离本发明的精神和范围。因此,说明书和附图应被认为是说明性的而非限制性的。

Claims (5)

1、一种计算机软件系统中基于构件接口实现事件回调的方法,该计算机软件系统包括服务端和客户端,其特征在于,所述的方法包括以下步骤:
(1)系统根据用户的输入,在服务端产生目标构件类的回调接口和回调接口中的事件方法的定义信息;
(2)系统根据用户的输入,在客户端产生与所述的目标构件类的回调接口中的事件方法相对应的回调函数定义信息;
(3)系统在服务端创建所述的目标构件类的对象实例;
(4)系统进行服务端的目标构件类的对象实例中的回调事件和客户端的回调函数之间的关联注册处理操作,包括以下子步骤:
(41)系统在服务端生成实现所述的目标构件类的所有回调接口的接口池类;
(42)系统在客户端创建所述的接口池类的对象实例;
(43)将该接口池类的对象实例的句柄传递给服务端,并保存在服务端的回调接口池链表中;
(44)系统在客户端的接口池类的对象实例中进行所述的回调事件和对应的回调函数的关联处理操作;
(5)系统根据目标构件类的对象实例的运行,激发所述的回调事件,并调用与该回调事件相关联注册的回调函数,包括以下子步骤:
(51)系统遍历服务端的回调接口池链表中的每个接口池类的对象实例的句柄,并调用相应的回调接口中的事件方法;
(52)客户端根据系统的调用请求进行与该回调事件相关联注册的回调函数的异步回调处理操作。
2、根据权利要求1所述的计算机软件系统中基于构件接口实现事件回调的方法,其特征在于,所述的回调函数的接口参数包括目标构件类的回调接口中的事件方法的接口参数和目标构件类的对象实例的句柄。
3、根据权利要求1所述的计算机软件系统中基于构件接口实现事件回调的方法,其特征在于,所述的步骤(44)系统在客户端的接口池类的对象实例中进行回调事件和回调函数的关联处理操作,包括以下子步骤:
(441)系统根据用户操作,在所述的回调事件和对应的回调函数之间建立关联关系;
(442)将所述的回调事件和对应的回调函数之间建立关联关系保存至客户端的接口池类的对象实例的数据结构中。
4、根据权利要求1所述的计算机软件系统中基于构件接口实现事件回调的方法,其特征在于,所述的步骤(52)客户端根据系统的调用请求进行与该回调事件相关联注册的回调函数的异步回调处理操作,包括以下步骤:
(521)系统根据所述的回调事件,在客户端的接口池类的对象实例中查询相关联的回调函数;
(522)系统根据所述的回调事件和关联的回调函数生成回调消息包;
(523)系统将该回调消息包送入客户端的消息队列中;
(524)客户端的回调工作线程从所述的消息队列中依次取出回调消息包并进行解析,然后调用相应的回调函数。
5、根据权利要求4所述的计算机软件系统中基于构件接口实现事件回调的方法,其特征在于,所述的回调消息包中包括回调事件类型、产生回调事件的服务端目标构件类的对象实例、与该回调事件所关联的回调函数的函数指针和该回调函数的参数内容。
CNB2007101731146A 2007-12-26 2007-12-26 计算机软件系统中基于构件接口实现事件回调的方法 Expired - Fee Related CN100543675C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2007101731146A CN100543675C (zh) 2007-12-26 2007-12-26 计算机软件系统中基于构件接口实现事件回调的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2007101731146A CN100543675C (zh) 2007-12-26 2007-12-26 计算机软件系统中基于构件接口实现事件回调的方法

Publications (2)

Publication Number Publication Date
CN101196813A CN101196813A (zh) 2008-06-11
CN100543675C true CN100543675C (zh) 2009-09-23

Family

ID=39547247

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2007101731146A Expired - Fee Related CN100543675C (zh) 2007-12-26 2007-12-26 计算机软件系统中基于构件接口实现事件回调的方法

Country Status (1)

Country Link
CN (1) CN100543675C (zh)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101770394B (zh) * 2008-12-29 2012-10-03 上海科泰世纪科技有限公司 基于构件接口的异步调用方法
CN101866300B (zh) * 2009-04-14 2013-08-07 上海科泰世纪科技有限公司 线程托管函数的方法
CN101882066B (zh) * 2009-05-08 2014-06-04 上海科泰世纪科技有限公司 创建具体类的实现方法
CN101697139B (zh) * 2009-11-06 2013-04-17 金蝶软件(中国)有限公司 一种远程过程调用方法、装置和注册库
CN101969469B (zh) 2010-10-25 2013-11-06 华为技术有限公司 电信能力开放中的回调处理方法及装置
CN102882697B (zh) * 2011-07-13 2015-08-26 北京佳讯飞鸿电气股份有限公司 一种基于回调机制的网管系统多客户端的消息接收方法
CN102946376B (zh) * 2011-11-29 2015-04-29 Ut斯达康通讯有限公司 一种异步通讯的实现方法
CN102654840A (zh) * 2011-11-30 2012-09-05 天津书生投资有限公司 一种函数回调的方法和系统
CN103309730B (zh) * 2012-03-15 2016-03-16 腾讯科技(深圳)有限公司 跨进程回调的方法及装置
CN102761545B (zh) * 2012-06-30 2015-11-25 华为技术有限公司 服务处理方法、服务处理器及服务处理系统
CN104601523B (zh) * 2013-10-31 2019-02-22 腾讯科技(深圳)有限公司 一种传输数据的方法及装置
CN104090760B (zh) * 2014-07-04 2017-11-24 用友网络科技股份有限公司 事件驱动方法和事件驱动系统
CN104461560B (zh) * 2014-12-23 2018-06-15 北京京东尚科信息技术有限公司 一种信息类实例的转换方法
CN106446292B (zh) * 2016-11-16 2019-11-05 北京集奥聚合科技有限公司 一种前端数据双向绑定的实现方法及装置
CN107632885A (zh) * 2017-09-26 2018-01-26 郑州云海信息技术有限公司 组件间的回调管理方法和装置
CN109981538A (zh) * 2017-12-28 2019-07-05 深圳市优必选科技有限公司 订阅事件的注册方法及系统、订阅事件的处理方法及系统
CN108616529B (zh) * 2018-04-24 2021-01-29 成都信息工程大学 一种基于业务流的异常检测方法及系统
CN109254855B (zh) * 2018-08-29 2022-06-03 北京奇艺世纪科技有限公司 一种参数传输协议的注册方法、装置及电子设备
CN109739661B (zh) * 2018-12-27 2021-06-22 思必驰科技股份有限公司 一种协同模块间消息更新的方法、装置及系统
CN111984713A (zh) * 2020-06-29 2020-11-24 五八到家有限公司 一种数据处理方法、装置、设备和存储介质
CN112040013B (zh) * 2020-11-05 2021-01-19 南京研利科技有限公司 用于页面路由的方法、计算设备和计算机存储介质
CN112468724A (zh) * 2020-11-26 2021-03-09 上海思客琦智能装备科技股份有限公司 一种基于相机回调函数及多线程技术的图像采集处理方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
回调函数在软件设计中的应用. 王铬.河南教育学院学报(自然科学版),第12卷第3期. 2003
回调函数在软件设计中的应用. 王铬.河南教育学院学报(自然科学版),第12卷第3期. 2003 *
基于CAR构件技术回调函数线程模型的研究. 王文静,陈榕.现代计算机,第263期. 2007
基于CAR构件技术回调函数线程模型的研究. 王文静,陈榕.现代计算机,第263期. 2007 *

Also Published As

Publication number Publication date
CN101196813A (zh) 2008-06-11

Similar Documents

Publication Publication Date Title
CN100543675C (zh) 计算机软件系统中基于构件接口实现事件回调的方法
CN104144154B (zh) 发起预约会议的方法、装置及系统
EP3158449B1 (en) Remote invocation of mobile device actions
US10425365B2 (en) System and method for relaying messages
US9467483B2 (en) ABAP channels for event signaling
US9503505B2 (en) Monadic evaluation of injected query compositions
US7685268B2 (en) Message handling for user interfaces
CN1507236A (zh) 在全球虚拟空间内传送消息的位置消息传送系统和方法
CN104702675B (zh) 用户事件的响应方法及装置
US20110314064A1 (en) Notifications Platform
CN1921485B (zh) 在客户端-服务器环境中管理电子邮件的方法和系统
CN104079696A (zh) 联系人名片的生成方法及装置
EP1025682A2 (en) Method and apparatus for structured communication
US10659415B1 (en) System processed emojis
JP2011118879A (ja) ユーザインタフェース操作の位置独立な実行
US20080153464A1 (en) Methods and systems for indicating the occurrence of an event
TW201701229A (zh) 郵件群組的創建方法及裝置
WO2012049681A2 (en) A method and system for sending an interactive message
KR101868712B1 (ko) 다채널 전송 플랫폼
CN103516908A (zh) 辅助回复通讯消息的方法及装置
CN108572949A (zh) 一种房屋信息搜索处理方法及装置
CN104052848A (zh) 处理联系人信息的方法、客户端及电子设备
WO2001090883A3 (en) Remote function invocation with messaging in a distributed computing environment
JP7021426B1 (ja) メッセージ変換システム及びメッセージ変換プログラム
CN107291455B (zh) 一种基于工厂模式实现转账业务的方法及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: SHANGHAI KORTIDE TECHNOLOGY CO., LTD.

Free format text: FORMER OWNER: KETAI CENTURY SCIENCE AND TECHNOLOGY CO., LTD., SHANGHAI

Effective date: 20110727

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20110727

Address after: 201203 No. 401, 177 and 501, blue wave road, Zhangjiang hi tech park, Shanghai

Patentee after: Elcoteq Shanghai Huajie Technology Co. Ltd.

Address before: 201203 Shanghai city Pudong New Area Jing Road 498 No. 17 Pudong Software Park Building 2 layer

Patentee before: Ketai Century Science and Technology Co., Ltd., Shanghai

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090923

Termination date: 20151226

EXPY Termination of patent right or utility model