支持vector,map,list<map>序列化,反序列化實現

本篇文章,主要介紹項目中用到的數據傳輸層上的協議打解包的操作。

貼一下我的代碼地址:http://code.taobao.org/p/msgPack/src/msgPack/

一、支持

1.支持基本類型的序列化與反序列化

比如bool,uint16,uint32,uint64.,string等

2.支持vector,list,set,map,pair的特化序列與反序列化操作。

當然,以上std的類型具體類型爲支持度基本類型。

3.支持容器中的容器。

比如 list<map<> >,map<map<> >的操作。


二、使用

定義協議文件,包含

#include "packet.h"


然後繼承類 

 struct Login:public Marshallable

然後就可以定義成員變量了。然後在marshal方法和unmarshal方法內部,進行對pack和unpack 就ok。


三、建議

在使用協議的時候,基本都會某個具體的字段增加會刪減某個字段,因此,使用map的字段就非常有用。使用該字段,可以擴充很多字段。


四、最大限制,支持單個協議最大數據1G,當然可以自己定義報的最大。最小


更多文章,歡迎訪問:http://blog.csdn.net/wallwind/


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章