[發明專利]一種優化方法、計算機設備和存儲介質有效
| 申請號: | 201810750601.2 | 申請日: | 2018-07-10 |
| 公開(公告)號: | CN109240834B | 公開(公告)日: | 2021-01-01 |
| 發明(設計)人: | 楊亮;陳少杰;張文明 | 申請(專利權)人: | 武漢斗魚網絡科技有限公司 |
| 主分類號: | G06F9/54 | 分類號: | G06F9/54 |
| 代理公司: | 北京眾達德權知識產權代理有限公司 11570 | 代理人: | 劉杰 |
| 地址: | 430000 湖北省武漢市東湖開*** | 國省代碼: | 湖北;42 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 優化 方法 計算機 設備 存儲 介質 | ||
本發明提供了一種優化方法,包括:基于包括C++函數對象的原遠程過程調用方法設置升級版的遠程過程調用方法,在所述升級版的遠程過程調用方法中,改用C語言的函數指針方式設置回調函數,并通過RpcAttribute屬性方式設置參數;從所述通過RpcAttribute屬性方式設置的參數中獲取需要的參數并調用所述原遠程過程調用方法來實現所述升級版的遠程過程調用方法。通過改用C語言的函數指針方式設置回調函數來優化RPC方法,解決了現有技術中,由于不同版本的編譯器對C++函數對象的內存布局大小可能不一致,從而可能導致程序崩潰的問題。
技術領域
本發明屬于計算機技術領域,尤其涉及一種優化方法、計算機設備和存儲介質。
背景技術
所謂遠程過程調用(RPC,Remote Procedure Call),就是一個進程調用另外一個進程所提供的方法,但是在調用端的角度仍然跟調用本進程的函數是一致的。在遠程過程調用中,將要提供給被調用端進程的所有參數序列化為一個網絡消息,然后通過網絡傳輸發送到被調用端進程中。被調用端處理完成相應的服務后,將產生的結果也序列化成一個網絡消息,發送到調用端進程。
在遠程過程調用實現中,一些遠程過程調用方法會用到函數對象,當函數對象為std標準庫中的function類型時,由于function為C++模板類,故該函數對象為C++函數對象,然而,由于不同版本的編譯器對C++函數對象的內存布局大小可能不一致,從而可能導致程序的崩潰。
發明內容
本申請實施例通過提供一種優化方法、計算機設備和存儲介質,通過改用C語言的函數指針方式設置回調函數來優化RPC方法,解決了現有技術中,由于不同版本的編譯器對C++函數對象的內存布局大小可能不一致,從而可能導致程序崩潰的問題。
第一方面,本申請通過本申請的一實施例提供如下技術方案:
一種優化方法,所述方法包括:
基于包括C++函數對象的原遠程過程調用方法設置升級版的遠程過程調用方法,在所述升級版的遠程過程調用方法中,改用C語言的函數指針方式設置回調函數,并通過RpcAttribute屬性方式設置參數;
其中,所述基于包括C++函數對象的原遠程過程調用方法設置升級版的遠程過程調用方法包括:基于原遠程過程調用的注冊方法設置升級版的遠程過程調用的注冊方法和基于原遠程過程調用的調用方法設置升級版的遠程過程調用的調用方法,所述升級版的遠程過程調用的注冊方法的參數包括遠程過程調用實例句柄和int64類型的第一屬性數組,所述升級版的遠程過程調用的調用方法的參數包括遠程過程調用實例句柄、要發送的遠端程序、遠程過程調用服務名稱、遠程過程調用的參數、參數個數和int64類型的第二屬性數組,所述第一屬性數組和所述第二屬性數組以RPC_ATTR_END屬性結尾;
從所述通過RpcAttribute屬性方式設置的參數中獲取需要的參數并調用所述原遠程過程調用方法來實現所述升級版的遠程過程調用方法。
可選的,在所述升級版的遠程過程調用的注冊方法中,所述第一屬性數組用于按照以所述RpcAttribute屬性為關鍵字的鍵值對的方式存儲第一回調函數、遠程過程調用服務名稱、參數簽名和第一自定義參數,所述第一回調函數的參數包括遠程過程調用服務的遠端標識、遠程過程調用的參數、參數個數、遠程過程調用服務執行的上下文環境和所述第一自定義參數。
可選的,在所述升級版的遠程過程調用的注冊方法中,所述從所述通過RpcAttribute屬性方式設置的參數中獲取需要的參數并調用所述原遠程過程調用方法來實現所述升級版的遠程過程調用方法,包括:
根據所述RpcAttribute屬性的關鍵字的值從所述第一屬性數組中獲取所述遠程過程調用服務名稱、所述第一回調函數,所述第一自定義參數和所述參數簽名;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于武漢斗魚網絡科技有限公司,未經武漢斗魚網絡科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201810750601.2/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:激光修復裝置及修復方法
- 下一篇:確定環境溫度的方法及裝置





