【技术实现步骤摘要】
一种基于Qt的异步远程调用的开发框架及方法
[0001]本专利技术涉及软件系统
,具体为一种基于
Qt
的异步远程调用的开发框架及方法
。
技术介绍
[0002]现代的大型软件系统往往十分复杂,由各类按照业务流
、
数据流等标准划分的各类软件子模块
(module)
组成,不同模块之间业务逻辑
、
数据依赖存在一定耦合关系;同时,随着软件系统复杂度的不断增加,不同模块往往由不同的开发
、
测试以及运维团队负责
。
[0003]因此,耦合度的提升将会给软件的维护和测试带来巨大挑战
。
这在采用
QT
开发框架的大型
C++
软件项目工程中表现得较为突出,比如,在
QT
开发框架下如果模块
A
需要调用模块
B
的接口时,会造成模块
A
对模块
B
的代码级强依赖,强依赖包括以下3个方面:模块< ...
【技术保护点】
【技术特征摘要】
1.
一种基于
Qt
的异步远程调用的开发框架,其特征在于,包括:基类和公共调用函数
callFunc
,所述基类实现
callSelfFunc
函数,通过
Qt
提供的反射机制寻找并调用函数,且被调用模块继承此基类;所述公共调用函数“callFunc
根据模块名称找到被调用模块对象,生成
QEventLoop
对象,通过
Qt
提供的
invokeMethod
异步调用被调用模块的
callSelfFunc
函数
。2.
根据权利要求1所述的一种基于
Qt
的异步远程调用的开发框架,其特征在于,所述公共调用函数
callFunc
为开发框架对其他模块提供的并行调用函数,支持在多个线程中并行调用
。3.
根据权利要求1所述的一种基于
Qt
的异步远程调用的开发框架,其特征在于,所述
QEventLoop
对象为
Qt
提供的线程事件循环对象
。4.
根据权利要求1所述的一种基于
Qt
的异步远程调用的开发框架,其特征在于,还包括所述消息收发开发框架
、
调用模块和被调用模块;所述消息收发开发框架在软件初始化时,生成被调用模块,被调用模块继承库文件基类
QObject
,将调用模块的被调用对象指针,按照
<
模块名称,被调用对象指针
>
存入被调用模块集合中;所述被调用模块继承
QObject
,且加上
Q_OBJECT
宏,并且被调用模块的函数加上
Q_INVOKABLE
或在
public slots
下声明
。5.
根据权利要求4所述的一种基于
Qt
的异步远程调用的开发框架,其特征在于,所述消息收发开发框架包括:消息收发基类,提供一个基类,所述基类包括提供消息收发功能的消息发送函数
sendData()
以及消息接收函数
recvData()
;配置文件,提供两类配置信息,第一类配置信息包括模块的库名称及生成的模块名称,第二类配置信息包括模块之间的消息依赖,该消息依赖表示为:
<
发送模块名称,消息指令,接收模块名称
>
;消息转发管理引擎,从配置文件中读取配置信息,根据一个模块的库名称及需要生成的模块名称,生成模块对象,根据模块之间的消息依赖,...
【专利技术属性】
技术研发人员:郑泽,李从飞,韩兵,邓华,朱继伟,刘国炜,钱威,
申请(专利权)人:国电南京自动化股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。