[發明專利]插件編譯及調用方法、裝置、設備及存儲介質在審
| 申請號: | 202210482972.3 | 申請日: | 2022-05-05 |
| 公開(公告)號: | CN114942796A | 公開(公告)日: | 2022-08-26 |
| 發明(設計)人: | 沈欽華 | 申請(專利權)人: | 北京達佳互聯信息技術有限公司 |
| 主分類號: | G06F9/445 | 分類號: | G06F9/445;G06F9/448;G06F8/41 |
| 代理公司: | 北京中博世達專利商標代理有限公司 11274 | 代理人: | 申健 |
| 地址: | 100085 北京市海淀*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 插件 編譯 調用 方法 裝置 設備 存儲 介質 | ||
本公開關于一種插件編譯及調用方法、裝置、設備及存儲介質,宿主程序接收到插件調用請求后,首先確定與目標插件標識對應的目標插件對象與目標插件對象對應的插件子類;再訪問插件子類內部的函數映射,以確定與目標索引標識對應的目標函數,最后調用目標插件對象中的目標函數。宿主程序與插件通過這種調用機制,可以實現插件內部的各種功能,同時業務插件有新增或刪減函數時,只需發布編譯好的動態庫文件,宿主程序自動熱加載,宿主程序無需任何變動,實現框架與業務邏輯的解耦。本公開技術方案實現了在開發階段插件與宿主程序解耦,部署階段插件功能與宿主程序的功能融合。
技術領域
本公開涉及計算機技術領域,尤其涉及一種插件編譯及調用方法、裝置、設備及存儲介質。
背景技術
插件是一種遵循一定規范的應用程序接口編寫出來的程序,用于實現特定的業務功能。通過編譯器對插件代碼進行編譯,可生成動態鏈接庫文件。宿主程序啟動運行時,加載動態鏈接庫文件,進而可以調用插件內定義的函數。
在實際應用中,不同的業務功能通常需要相同的基礎能力支撐,如果針對每個業務功能都做獨立的軟件開發,在基礎能力部分便會存在重復建設,將會極大地降低開發、維護效率。因此,如何提高插件的開發和維護效率,是亟待解決的技術問題。
發明內容
本公開提供一種插件編譯及調用方法、裝置、設備及存儲介質,可以實現插件的開發階段解耦、部署階段功能融合,從而提高插件的開發和維護效率。本公開的技術方案如下:
根據本公開實施例的第一方面,提供一種插件調用方法,包括:接收插件調用請求,所述插件調用請求包括目標插件標識和目標索引標識;根據所述目標插件標識,確定目標插件對象以及預先定義在宿主程序中的與所述目標插件對象相對應的插件子類,所述目標插件對象中的函數具有索引標識,所述插件子類包括函數映射,所述函數映射包括所述目標插件對象中的每個函數的索引標識到對應函數的映射;從所述插件子類的所述函數映射中,確定與所述目標索引標識對應的目標函數;對所述目標插件對象中的所述目標函數進行調用。
結合第一方面,在第一方面可能的實現方式中,所述接收插件調用請求之前,還包括:加載動態庫文件,所述動態庫文件與所述目標插件對象對應,所述動態庫文件包括導出函數和插件代碼塊,所述導出函數包括所述插件代碼塊內的每個函數和每個函數的所述索引標識;調用所述導出函數,以通過所述導出函數,根據所述插件代碼塊生成所述目標插件對象,并獲取所述目標插件對象的指針,以及根據所述插件代碼塊內的每個函數和每個函數的所述索引標識,對所述目標插件對象對應的插件子類中的函數映射進行賦值。
結合第一方面,在第一方面可能的實現方式中,所述調用所述導出函數之后,所述方法還包括:建立所述目標插件對象的指針與所述目標插件標識之間的對應關系。
結合第一方面,在第一方面可能的實現方式中,所述加載動態庫文件,包括:監聽指定路徑下的文件信息;當監聽到新增的動態庫文件時,加載所述新增的動態庫文件。
結合第一方面,在第一方面可能的實現方式中,所述根據所述目標插件標識,確定目標插件對象以及預先定義在宿主程序中的與所述目標插件對象相對應的插件子類,包括:根據預先建立的插件對象的指針與插件標識之間的對應關系,確定與所述目標插件標識對應的指針,所述目標插件標識對應的指針所指向的插件對象為所述目標插件對象;根據所述目標插件對象的類型,將所述目標插件標識對應的指針轉換成對應插件子類的指針,所述對應插件子類的指針所指向的插件子類為所述目標插件對象對應的插件子類。
結合第一方面,在第一方面可能的實現方式中,所述宿主程序具有第一變量空間,所述第一變量空間包括所述宿主程序的每個插件對象的變量;所述方法還包括:通過所述第一變量空間預設的變量操作接口,響應第一插件對象根據第一插件對象標識或者第二插件對象標識對所述第一變量空間中對應插件對象的變量執行的操作,所述第一插件對象為所述宿主程序的任意插件對象,所述第二插件對象為除所述第一插件對象以外的任意插件對象,所述操作包括獲取變量的操作、設置變量的操作以及刪除變量的操作。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京達佳互聯信息技術有限公司,未經北京達佳互聯信息技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202210482972.3/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種智能化的紡織面料印染后補修系統
- 下一篇:一種熒光屏及其制備方法





