格式化碼流編解碼組件_第1頁
已閱讀1頁,還剩21頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、格式化碼流編解碼組件,迅雷軟件架構(gòu)師王 衛(wèi) 華,主 要 內(nèi) 容,概述如何使用本組件組件組成編譯器,主 要 內(nèi) 容,概述如何使用本組件組件組成編譯器,概述,4,實(shí)現(xiàn)格式化(結(jié)構(gòu)化)數(shù)據(jù)靈活、高效地自動(dòng)化編解碼跨Linux/Windows平臺(tái)服務(wù)器和客戶端共用一份代碼,極大提高研發(fā)效率良好的前后兼容性命名空間為xl::component::format_stream,特性,5,應(yīng)用領(lǐng)域,網(wǎng)絡(luò)通訊命令解析格

2、式化數(shù)據(jù)存儲(chǔ),6,支持的數(shù)據(jù)種類,uint8/sint8uint16/sint16uint32/uint32uint64/sint64float32/float64String自定義結(jié)構(gòu)(message),7,所有的通訊命令中,前3個(gè)域必須為命令版本、命令序號(hào)、命令長度,且“命令長度”域指該域后所有數(shù)據(jù)長度,這3個(gè)域都是uint32數(shù)據(jù)類型,各占4各字節(jié),計(jì)12個(gè)字節(jié)對(duì)于通訊命令中的自定義結(jié)構(gòu),在編碼時(shí)需要在這個(gè)自定義結(jié)構(gòu)

3、前添加4個(gè)字節(jié),表示該自定義結(jié)構(gòu)所占的字節(jié),解密時(shí)要處理這4個(gè)添加的字節(jié),重申通訊命令編碼規(guī)范,8,為了保證組件前后的兼容性,組件有兩個(gè)限制通訊命令中的域只能增加,不能減少 新增加的域放在最后,組件的限制,9,主 要 內(nèi) 容,概述如何使用本組件組件組成編譯器,如何使用本組件,10,Linux平臺(tái),makefile中添加路徑/usr/local/makefile中包括庫libxl_format_stream.so、lib

4、xl_lib.so,由于依賴關(guān)系,庫的順序不要顛倒,11,Windows平臺(tái),C/C++選項(xiàng)“附加包含目錄”中添加文件夾/xl_component/format_stream所在的路徑鏈接器選項(xiàng)“輸入”中添加庫xl_format_stream.lib、xl_lib_static.lib。,12,主 要 內(nèi) 容,概述如何使用本組件組件組成編譯器,組件組成(主要類),13,message,格式化碼流編解碼組件最基本的抽象類,通

5、訊命令和自定義結(jié)構(gòu)都繼承自該類,是用戶打交道最多的類 uint32 get_buffer_size() bool encode() bool decode() bool copy_from()void clear(),14,其他類,reflection descriptorfield_descriptorrepeated_field、repeated_ptr_field format,15,主 要 內(nèi) 容,概述

6、如何使用本組件組件組成編譯器,編譯器,16,幾個(gè)概念,段:通訊命令為一個(gè)全局段,段名為globalsection,自定義結(jié)構(gòu)也是一個(gè)段自定義結(jié)構(gòu):通訊命令中定義的數(shù)據(jù)類型 引入結(jié)構(gòu):在其他通訊命令中定義的數(shù)據(jù)類型,但被本通訊命令使用,17,編譯器的約定,編輯器生成的配置文件名后綴為ini,且配置文件名稱即為通訊命令的名稱 每一個(gè)通訊命令和自定義結(jié)構(gòu)產(chǎn)生的類繼承自message輸入的字符全部為小寫(基于公共庫規(guī)范) 編輯器中

7、,通訊命令的前3個(gè)域分別為version、sequence、length,數(shù)據(jù)種類為uint32,不能被編輯、修改、刪除,18,重點(diǎn)關(guān)注三種重復(fù)域數(shù)據(jù)類型,基本數(shù)據(jù)類型 stringmessage,19,設(shè)置m_length,調(diào)用message. get_buffer_size()獲得整個(gè)通訊命令所需的緩存大小減去12即為m_length的值,20,編譯器的操作,21,附:公共庫1.1添加內(nèi)容,讀配置文件類:config 支持段

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論