[发明专利]插件编译及调用方法、装置、设备及存储介质在审
申请号: | 202210482972.3 | 申请日: | 2022-05-05 |
公开(公告)号: | CN114942796A | 公开(公告)日: | 2022-08-26 |
发明(设计)人: | 沈钦华 | 申请(专利权)人: | 北京达佳互联信息技术有限公司 |
主分类号: | G06F9/445 | 分类号: | G06F9/445;G06F9/448;G06F8/41 |
代理公司: | 北京中博世达专利商标代理有限公司 11274 | 代理人: | 申健 |
地址: | 100085 北京市海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 插件 编译 调用 方法 装置 设备 存储 介质 | ||
本公开关于一种插件编译及调用方法、装置、设备及存储介质,宿主程序接收到插件调用请求后,首先确定与目标插件标识对应的目标插件对象与目标插件对象对应的插件子类;再访问插件子类内部的函数映射,以确定与目标索引标识对应的目标函数,最后调用目标插件对象中的目标函数。宿主程序与插件通过这种调用机制,可以实现插件内部的各种功能,同时业务插件有新增或删减函数时,只需发布编译好的动态库文件,宿主程序自动热加载,宿主程序无需任何变动,实现框架与业务逻辑的解耦。本公开技术方案实现了在开发阶段插件与宿主程序解耦,部署阶段插件功能与宿主程序的功能融合。
技术领域
本公开涉及计算机技术领域,尤其涉及一种插件编译及调用方法、装置、设备及存储介质。
背景技术
插件是一种遵循一定规范的应用程序接口编写出来的程序,用于实现特定的业务功能。通过编译器对插件代码进行编译,可生成动态链接库文件。宿主程序启动运行时,加载动态链接库文件,进而可以调用插件内定义的函数。
在实际应用中,不同的业务功能通常需要相同的基础能力支撑,如果针对每个业务功能都做独立的软件开发,在基础能力部分便会存在重复建设,将会极大地降低开发、维护效率。因此,如何提高插件的开发和维护效率,是亟待解决的技术问题。
发明内容
本公开提供一种插件编译及调用方法、装置、设备及存储介质,可以实现插件的开发阶段解耦、部署阶段功能融合,从而提高插件的开发和维护效率。本公开的技术方案如下:
根据本公开实施例的第一方面,提供一种插件调用方法,包括:接收插件调用请求,所述插件调用请求包括目标插件标识和目标索引标识;根据所述目标插件标识,确定目标插件对象以及预先定义在宿主程序中的与所述目标插件对象相对应的插件子类,所述目标插件对象中的函数具有索引标识,所述插件子类包括函数映射,所述函数映射包括所述目标插件对象中的每个函数的索引标识到对应函数的映射;从所述插件子类的所述函数映射中,确定与所述目标索引标识对应的目标函数;对所述目标插件对象中的所述目标函数进行调用。
结合第一方面,在第一方面可能的实现方式中,所述接收插件调用请求之前,还包括:加载动态库文件,所述动态库文件与所述目标插件对象对应,所述动态库文件包括导出函数和插件代码块,所述导出函数包括所述插件代码块内的每个函数和每个函数的所述索引标识;调用所述导出函数,以通过所述导出函数,根据所述插件代码块生成所述目标插件对象,并获取所述目标插件对象的指针,以及根据所述插件代码块内的每个函数和每个函数的所述索引标识,对所述目标插件对象对应的插件子类中的函数映射进行赋值。
结合第一方面,在第一方面可能的实现方式中,所述调用所述导出函数之后,所述方法还包括:建立所述目标插件对象的指针与所述目标插件标识之间的对应关系。
结合第一方面,在第一方面可能的实现方式中,所述加载动态库文件,包括:监听指定路径下的文件信息;当监听到新增的动态库文件时,加载所述新增的动态库文件。
结合第一方面,在第一方面可能的实现方式中,所述根据所述目标插件标识,确定目标插件对象以及预先定义在宿主程序中的与所述目标插件对象相对应的插件子类,包括:根据预先建立的插件对象的指针与插件标识之间的对应关系,确定与所述目标插件标识对应的指针,所述目标插件标识对应的指针所指向的插件对象为所述目标插件对象;根据所述目标插件对象的类型,将所述目标插件标识对应的指针转换成对应插件子类的指针,所述对应插件子类的指针所指向的插件子类为所述目标插件对象对应的插件子类。
结合第一方面,在第一方面可能的实现方式中,所述宿主程序具有第一变量空间,所述第一变量空间包括所述宿主程序的每个插件对象的变量;所述方法还包括:通过所述第一变量空间预设的变量操作接口,响应第一插件对象根据第一插件对象标识或者第二插件对象标识对所述第一变量空间中对应插件对象的变量执行的操作,所述第一插件对象为所述宿主程序的任意插件对象,所述第二插件对象为除所述第一插件对象以外的任意插件对象,所述操作包括获取变量的操作、设置变量的操作以及删除变量的操作。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京达佳互联信息技术有限公司,未经北京达佳互联信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210482972.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种智能化的纺织面料印染后补修系统
- 下一篇:一种荧光屏及其制备方法