国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種基于模板的協(xié)議代碼生成方法與流程

      文檔序號:12693499閱讀:504來源:國知局

      本發(fā)明涉及一種協(xié)議代碼的生成方法,特別是一種基于模板的協(xié)議代碼生成方法。



      背景技術(shù):

      在網(wǎng)絡(luò)技術(shù)的推動下,利用協(xié)議進(jìn)行計算機(jī)間的相互通信或服務(wù)已成為當(dāng)下非常成熟的技術(shù)。在使用協(xié)議進(jìn)行通信代碼的編寫時,開發(fā)人員通常會對著協(xié)議內(nèi)容,逐條編寫代碼。

      當(dāng)協(xié)議內(nèi)容大量或經(jīng)常改變時,以往的方法是純?nèi)斯ぞ帉懘a,即開發(fā)人員拿到新的協(xié)議表,手動對比新協(xié)議和源代碼逐句檢查。該方法的優(yōu)點是自由度高。缺點是,開發(fā)效率低,調(diào)試難度大,故障排查困難,系統(tǒng)難以維護(hù)。



      技術(shù)實現(xiàn)要素:

      本發(fā)明目的在于提供一種基于模板的協(xié)議代碼生成方法,解決以往手工編寫協(xié)議代碼,工作效率無法提高的問題。

      一種基于模板的協(xié)議代碼生成方法的具體步驟為:

      第一步 搭建基于模板的協(xié)議代碼生成系統(tǒng)

      基于模板的協(xié)議代碼生成系統(tǒng),包括:配置文件構(gòu)建模塊、模板生成模塊和代碼生成模塊。所述

      配置文件構(gòu)建模塊的功能為:構(gòu)建協(xié)議配置文件;

      模板生成模塊的功能為:構(gòu)建協(xié)議代碼生成模板;

      代碼生成模塊的功能為:生成協(xié)議代碼。

      第二步 配置文件構(gòu)建模塊構(gòu)建協(xié)議配置文件

      通常實現(xiàn)協(xié)議中數(shù)據(jù)包的封裝和解析需要構(gòu)造三種類:數(shù)據(jù)包基類、包頭類和數(shù)據(jù)包派生類。數(shù)據(jù)包基類負(fù)責(zé)提供對外統(tǒng)一的解析數(shù)據(jù)包接口,包頭類負(fù)責(zé)封裝和實現(xiàn)協(xié)議中包頭相關(guān)字段,數(shù)據(jù)包派生類負(fù)責(zé)封裝和實現(xiàn)具體的協(xié)議。配置文件構(gòu)建模塊負(fù)責(zé)數(shù)據(jù)包基類、包頭類和數(shù)據(jù)包派生類三種類的配置文件構(gòu)建,具體方式為:

      包頭類協(xié)議配置文件構(gòu)建:將協(xié)議中包頭相關(guān)的字段定義及說明逐行記錄到一個文本文件中,這里稱為包頭類協(xié)議配置文件。

      數(shù)據(jù)包派生類協(xié)議配置文件構(gòu)建:將協(xié)議中除包頭以外的數(shù)據(jù)內(nèi)容字段定義及說明逐行記錄到一個文本文件中,這里稱為數(shù)據(jù)包派生類協(xié)議配置文件。

      第三步 模板生成模塊構(gòu)建協(xié)議代碼生成模板

      數(shù)據(jù)包基類、包頭類和數(shù)據(jù)包派生類的三種類,每個類的不同實現(xiàn)取決于報文內(nèi)容字段的不同組織方式,因此,只要把報文內(nèi)容字段單獨拎出來定義即可實現(xiàn)不同子類代碼的編寫。

      模板生成模塊負(fù)責(zé)構(gòu)建數(shù)據(jù)包基類、包頭類和數(shù)據(jù)包派生類的協(xié)議代碼生成模板,具體方式為:

      數(shù)據(jù)包基類代碼生成模板構(gòu)建:用C#語言編寫數(shù)據(jù)包基類協(xié)議代碼框架,并將協(xié)議中英文名稱作為配置參數(shù),形成數(shù)據(jù)包基類代碼生成模板,

      包頭類代碼生成模板構(gòu)建:用C#語言編寫包頭類協(xié)議代碼框架,并將協(xié)議中英文名稱、數(shù)據(jù)包長度最大值、數(shù)據(jù)包長度最小值作為配置參數(shù);編寫用于包頭類字段定義、字段接口、屬性設(shè)置/獲取的函數(shù)。至此生成包頭類代碼生成模板。

      數(shù)據(jù)包派生類代碼生成模板構(gòu)建:用C#語言編寫數(shù)據(jù)包派生類模板文件,并將協(xié)議中英文名稱、協(xié)議總線中英文名稱、數(shù)據(jù)包長度最大值、數(shù)據(jù)包長度最小值作為配置參數(shù);編寫用于數(shù)據(jù)包類字段定義、字段接口、屬性設(shè)置/獲取的函數(shù)。至此生成數(shù)據(jù)包派生類代碼生成模板。

      第四步 代碼生成模塊生成協(xié)議代碼

      代碼生成模板通過讀取協(xié)議配置文件自動生成協(xié)議代碼。

      代碼生成模塊讀取數(shù)據(jù)包基類模板,生成數(shù)據(jù)包基類C++代碼。

      代碼生成模塊讀取包頭類模板,生成數(shù)據(jù)包頭類C++代碼,讀取過程中若遇到包含包頭類協(xié)議配置文件的函數(shù)信息,則讀取包頭類協(xié)議配置文件,通過函數(shù)轉(zhuǎn)換為C++代碼。

      代碼生成模塊讀取數(shù)據(jù)包派生類模板,生成數(shù)據(jù)包派生類C++代碼,讀取過程中若遇到包含數(shù)據(jù)包派生類協(xié)議配置文件的函數(shù)信息,則讀取數(shù)據(jù)包派生類協(xié)議配置文件,通過函數(shù)轉(zhuǎn)換為C++代碼。

      通常協(xié)議中的數(shù)據(jù)包是遞歸定義的,即數(shù)據(jù)包=包頭+內(nèi)容,內(nèi)容=子包頭+子內(nèi)容,以此類推。對于遞歸數(shù)據(jù)包,只需要更改配置參數(shù)和協(xié)議配置文件即可重新生成代碼。當(dāng)協(xié)議內(nèi)容更改時,通過更改配置參數(shù)和協(xié)議配置文件也可以重新生成代碼。

      至此,完成基于模板的協(xié)議代碼的生成。

      本發(fā)明簡化了開發(fā)人員手工編寫協(xié)議代碼的工作,將工作重心真正轉(zhuǎn)移到業(yè)務(wù)邏輯、頁面設(shè)計等其它方面的設(shè)計與實現(xiàn)上。

      具體實施方式

      一種基于模板的協(xié)議代碼生成方法的具體步驟為:

      第一步 搭建基于模板的協(xié)議代碼生成系統(tǒng)

      基于模板的協(xié)議代碼生成系統(tǒng),包括:配置文件構(gòu)建模塊、模板生成模塊和代碼生成模塊。所述

      配置文件構(gòu)建模塊的功能為:構(gòu)建協(xié)議配置文件;

      模板生成模塊的功能為:構(gòu)建協(xié)議代碼生成模板;

      代碼生成模塊的功能為:生成協(xié)議代碼。

      第二步 配置文件構(gòu)建模塊構(gòu)建協(xié)議配置文件

      通常實現(xiàn)協(xié)議中數(shù)據(jù)包的封裝和解析需要構(gòu)造三種類:數(shù)據(jù)包基類、包頭類和數(shù)據(jù)包派生類。數(shù)據(jù)包基類負(fù)責(zé)提供對外統(tǒng)一的解析數(shù)據(jù)包接口,包頭類負(fù)責(zé)封裝和實現(xiàn)協(xié)議中包頭相關(guān)字段,數(shù)據(jù)包派生類負(fù)責(zé)封裝和實現(xiàn)具體的協(xié)議。配置文件構(gòu)建模塊負(fù)責(zé)數(shù)據(jù)包基類、包頭類和數(shù)據(jù)包派生類三種類的配置文件構(gòu)建,具體方式為:

      包頭類協(xié)議配置文件構(gòu)建:將協(xié)議中包頭相關(guān)的字段定義及說明逐行記錄到一個文本文件中,這里稱為包頭類協(xié)議配置文件。

      數(shù)據(jù)包派生類協(xié)議配置文件構(gòu)建:將協(xié)議中除包頭以外的數(shù)據(jù)內(nèi)容字段定義及說明逐行記錄到一個文本文件中,這里稱為數(shù)據(jù)包派生類協(xié)議配置文件。

      第三步 模板生成模塊構(gòu)建協(xié)議代碼生成模板

      數(shù)據(jù)包基類、包頭類和數(shù)據(jù)包派生類的三種類,每個類的不同實現(xiàn)取決于報文內(nèi)容字段的不同組織方式,因此,只要把報文內(nèi)容字段單獨拎出來定義即可實現(xiàn)不同子類代碼的編寫。

      模板生成模塊負(fù)責(zé)構(gòu)建數(shù)據(jù)包基類、包頭類和數(shù)據(jù)包派生類的協(xié)議代碼生成模板,具體方式為:

      數(shù)據(jù)包基類代碼生成模板構(gòu)建:用C#語言編寫數(shù)據(jù)包基類協(xié)議代碼框架,并將協(xié)議中英文名稱作為配置參數(shù),形成數(shù)據(jù)包基類代碼生成模板,

      包頭類代碼生成模板構(gòu)建:用C#語言編寫包頭類協(xié)議代碼框架,并將協(xié)議中英文名稱、數(shù)據(jù)包長度最大值、數(shù)據(jù)包長度最小值作為配置參數(shù);編寫用于包頭類字段定義、字段接口、屬性設(shè)置/獲取的函數(shù)。至此生成包頭類代碼生成模板。

      數(shù)據(jù)包派生類代碼生成模板構(gòu)建:用C#語言編寫數(shù)據(jù)包派生類模板文件,并將協(xié)議中英文名稱、協(xié)議總線中英文名稱、數(shù)據(jù)包長度最大值、數(shù)據(jù)包長度最小值作為配置參數(shù);編寫用于數(shù)據(jù)包類字段定義、字段接口、屬性設(shè)置/獲取的函數(shù)。至此生成數(shù)據(jù)包派生類代碼生成模板。

      第四步 代碼生成模塊生成協(xié)議代碼

      代碼生成模板通過讀取協(xié)議配置文件自動生成協(xié)議代碼。

      代碼生成模塊讀取數(shù)據(jù)包基類模板,生成數(shù)據(jù)包基類C++代碼。

      代碼生成模塊讀取包頭類模板,生成數(shù)據(jù)包頭類C++代碼,讀取過程中若遇到包含包頭類協(xié)議配置文件的函數(shù)信息,則讀取包頭類協(xié)議配置文件,通過函數(shù)轉(zhuǎn)換為C++代碼。

      代碼生成模塊讀取數(shù)據(jù)包派生類模板,生成數(shù)據(jù)包派生類C++代碼,讀取過程中若遇到包含數(shù)據(jù)包派生類協(xié)議配置文件的函數(shù)信息,則讀取數(shù)據(jù)包派生類協(xié)議配置文件,通過函數(shù)轉(zhuǎn)換為C++代碼。

      通常協(xié)議中的數(shù)據(jù)包是遞歸定義的,即數(shù)據(jù)包=包頭+內(nèi)容,內(nèi)容=子包頭+子內(nèi)容,以此類推。對于遞歸數(shù)據(jù)包,只需要更改配置參數(shù)和協(xié)議配置文件即可重新生成代碼。當(dāng)協(xié)議內(nèi)容更改時,通過更改配置參數(shù)和協(xié)議配置文件也可以重新生成代碼。

      至此,完成基于模板的協(xié)議代碼的生成。

      當(dāng)前第1頁1 2 3 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1