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

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

【技术实现步骤摘要】

本专利技术涉及计算机软件
,特别涉及计算机构件化软件系统
,具体是指 一种。
技术介绍
在现代的计算机软件技术的发展过程中,回调函数是一项非常有用的编程机制,在程序 设计领域已有多年历史,程序开发人员利用这种机制能够编制出各种不同的应用程序,不仅 功能强大,而且非常灵活,实现过程简单。但是,在现有技术中,通常的Windows的消息回调模型,它是完全面向过程的,由发送 者决定发送给谁,而接收者只能默默接收并处理所有消息甚至垃圾消息;同时,发送端发送 消息、接收端处理消息都需要用户书写大量实现代码,增加了重复劳动,增加了出现漏洞的 概率,而且对程序员要求较高。同时,回调过程中传递的M:是一个LPVOID型指针,不具备类型安全,如果想跨进程 还要涉及复杂的共享内存或内存拷贝等问题。这些问题的存在,就给构件化软件系统中实现更加灵活的回调行为带来了很大的限制。
技术实现思路
本专利技术的目的是克服了上述现有技术中的缺点,提供一种完全符合面向构件编程的规范、 具有安全的参数类型、能够实现跨越进程边界和跨网络远程回调、回调过程具有广播效果、 实现过程简单方便、使用灵活、功能强大、工作性能稳定可靠、适用范围较为广泛的计算机 软件系统中基于构件接口实现事件回调的方法。为了实现上述的目的,本专利技术的如下该,系统包括服务端和客户端,其 主要特点是,所述的方法包括以下步骤(1)系统根据用户的输入,在服务端产生目标构件类的回调接口和回调接口中的事件方法的定义信息;(2)系统+艮据用户的输入,在客户端产生与所述的目标构件类的回调接口中的事件方法 相对应的回调函数定义信息;(3 )系统在服务端创建所述的目标构件类的对象实例;(4) 系统进行服务端的目标构件类的对象实例中的回调事件和客户端的回调函数之间的 关联注册处理操作;(5) 系统根据目标构件类的对象实例的运行,激发所述的回调事件,并调用与该回调事 件相关联注册的回调函数。该中的回调函数的接口参数包括目 标构件类的回调接口中的事件方法的接口参数和目标构件类的对象实例的句柄。该计算才;LiM:件系统中基于构件接口实现事件回调的方法中的系统进行服务端的目标构件 类的对象实例中的回调事件和客户端的回调函数之间的关联注册处理操作,包括以下步骤(41) 系统在服务端生成实现所述的目标构件类的所有回调接口的接口池类;(42) 系统在客户端创建所述的接口池类的对象实例;(43) 将该接口池类的对象实例的句柄传递给服务端,并保存在服务端的回调接口池链表中;(44) 系统在客户端的接口池类的对象实例中进行所述的回调事件和对应的回调函数的 关联处理操作。该中的系统在客户端的接口池类的 对象实例中进行回调事件和回调函数的关联处理操作,包括以下步骤(441)系统根据用户操作,在所述的回调事件和对应的回调函数之间建立关联关系; (442 )将所述的回调事件和对应的回调函数之间建立关联关系保存至客户端的接口池类 的对象实例的蘇据结构中。该中的调用与该回调事件相关联注 册的回调函数,包括以下步骤(51) 系统遍历服务端的回调接口池链表中的每个接口池类的对象实例的句柄,并调用 相应的回调接口中的事件方法;(52) 客户端根据系统的调用请求,进行与该回调事件相关联注册的回调函数的异步回 调处理操作。该中的客户端进行回调函数的异步回调处理操作,包括以下步骤(521)系统根据所述的回调事件,在客户端的接口池类的对象实例中查询相关联的回调函数;(522 )系统根据所述的回调事件和关联的回调函数生成回调消息包;(523 )系统将该回调消息包送入客户端的消息队列中;(524)客户端的回调工作线程从所述的消息队列中依次取出回调消息包并进行解析,然 后调用相应的回调函数。该中的回调消息包中包括回调事件 类型、产生回调事件的服务端目标构件类的对象实例、与该回调事件所关联的回调函数的函 数指针和该回调函数的参数内容。采用了该专利技术的,由于其为面向构 件编程、基于构件接口设计的事件回调,并将所有的回调函数都封装到接口,每个回调事件 对应一个接口方法,从而整个回调模型完全符合面向构件编程的规范,确保了所有的回调方 法都具有安全的参数类型,可以跨越进程边界,甚至可以跨网络远程回调;同时,每个回调 接口都可以被多个用户、多个进程注册,回调接口所产生的事件会通知所有注册者,并且由 于回调过程是异步操作,可以达到类似广播的效果——同时调用众多回调函数;每个用户 也可以为一个回调事件注册多个回调函数;回调函数既可以是静态函数也可以是普通的C++ 类成员方法,从而使得构件开发人员不需要为回调接口花费太多精力,只需要在构件类中声 明它所实现的項P些接口是回调接口,并确定这些接口都已被定义,那么其在构件实现过程中 就可以直接调用回调接口的方法来发布通知、激活事件;而该构件的使用者只需要根据回调 接口中的声明来定义自己的回调函数,然后只需要简单的代码即可注册关联所关心的事件,就能够实现事件每次被激发时均会回调相应的回调函数,实现过程简单方便,使用灵活,功 能强大,工作性能稳定可靠,适用范围较为广泛,给计算机构件化软件系统的进一步发展奠 定了坚实的基础。附图说明图1为本专利技术的计算M件系统中基于构件接口实现事件回调的方法中的注册回调事件 的流程图。图2为本专利技术的中的注册回调函数 的流程图。图3为本专利技术的计算M件系统中基于构件接口实现事件回调的方法中的激发回调事件 的流程图。图4为本专利技术的中的激发回调函数 的流程图。图5为本专利技术的中的产生接口池类 的原理示意图。图6为本专利技术的中的管理回调事件 的注册^f言息的原理示意图。图7a、 7b为本专利技术的中的异步回调 ^t式的工作原理示意图。具体实施例方式为了能够更清楚地理解本专利技术的
技术实现思路
,特举以下实施例详细说明。 请参阅图1至图4所示,该,系统 包括服务端和客户端,该方法包括以下步骤(1) 系统根据用户的输入,在服务端产生目标构件类的回调接口和回调接口中的事件方 法的定义信息;(2) 系统根据用户的输入,在客户端产生与所述的目标构件类的回调接口中的事件方法 相对应的回调函数定义信息,该回调函数的接口参数包括目标构件类的回调接口中的事件方 法的接口^和目标构件类的对象实例的句柄;(3 )系统在J5艮务端创建所述的目标构件类的对象实例;(4)系统进行服务端的目标构件类的对象实例中的回调事件和客户端的回调函数之间的 关联注册处理操作,包括以下步骤(a) 系统在服务端生成实现所述的目标构件类的所有回调接口的接口池类;(b) 系统在客户端创建所述的接口池类的对象实例;(c) 将该接口池类的对象实例的句柄传递给服务端,并保存在服务端的回调接口池 錄中;(d) 系统在客户端的接口池类的对象实例中进行所迷的回调事件和对应的回调函数 的关联处理操作,包括以下步骤(i)系统根据用户操作,在所述的回调事件和对应的回调函数之间建立关联关系;(ii )将所述的回调事件和对应的回调函数之间建立关联关系保存至客户端的接口池类的对象实例的数据结构中; (5)系统根据目标构件类的对象实例的运行,激发所述的回调事件,并调用与该回调事 件相关联注册的回调函数,包括以下步骤(a) 系统遍历服务端的回调接口池链表中的每个接口池类的对象实例的句本文档来自技高网
...

【技术保护点】
一种计算机软件系统中基于构件接口实现事件回调的方法,系统包括服务端和客户端,其特征在于,所述的方法包括以下步骤:(1)系统根据用户的输入,在服务端产生目标构件类的回调接口和回调接口中的事件方法的定义信息;(2)系统根据用户的 输入,在客户端产生与所述的目标构件类的回调接口中的事件方法相对应的回调函数定义信息;(3)系统在服务端创建所述的目标构件类的对象实例;(4)系统进行服务端的目标构件类的对象实例中的回调事件和客户端的回调函数之间的关联注册处理 操作;(5)系统根据目标构件类的对象实例的运行,激发所述的回调事件,并调用与该回调事件相关联注册的回调函数。

【技术特征摘要】
1、一种计算机软件系统中基于构件接口实现事件回调的方法,系统包括服务端和客户端,其特征在于,所述的方法包括以下步骤(1)系统根据用户的输入,在服务端产生目标构件类的回调接口和回调接口中的事件方法的定义信息;(2)系统根据用户的输入,在客户端产生与所述的目标构件类的回调接口中的事件方法相对应的回调函数定义信息;(3)系统在服务端创建所述的目标构件类的对象实例;(4)系统进行服务端的目标构件类的对象实例中的回调事件和客户端的回调函数之间的关联注册处理操作;(5)系统根据目标构件类的对象实例的运行,激发所述的回调事件,并调用与该回调事件相关联注册的回调函数。2、 根据权利要求1所述的计算机软件系统中基于构件接口实现事件回调的方法,其特征 在于,所述的回调函数的接口参数包括目标构件类的回调接口中的事件方法的接口参数和目 标构件类的对象实例的句柄。3、 根据权利要求1或2所述的计算机软件系统中基于构件接口实现事件回调的方法,其 特征在于,所述的系统进行服务端的目标构件类的对象实例中的回调事件和客户端的回调函 数之间的关联注册处理操作,包括以下步骤(41) 系统在服务端生成实现所述的目标构件类的所有回调接口的接口池类;(42) 系统在客户端创建所述的接口池类的对象实例;(43) 将该接口池类的对象实例的句柄传递给服务端,并保存在服务端的回调接口池链表中;(44) 系统在客户端的接口池类的对象实例中进行所述的回调事件和对应的回调函数的 关联处理操作。4、 根据权利要求3所述的计算机软件系统中基于构件接口实现事件回调的方法,其...

【专利技术属性】
技术研发人员:牛靖宇王晨辉宋世军陈榕梁宇洲苏翼鹏
申请(专利权)人:上海科泰世纪科技有限公司
类型:发明
国别省市:31[中国|上海]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1