protobuf

1、C数组的序列化和反序列化API

 

[cpp] view plaincopy
 
  1. //C数组的序列化和序列化API  
  2. bool ParseFromArray(const void* data, int size);  
  3. bool SerializeToArray(void* data, int size) const;  
  4. //使用  
  5. void set_people()               
  6. {  
  7.     wp.set_name("sealyao");     
  8.     wp.set_id(123456);          
  9.     wp.set_email("sealyaog@gmail.com");  
  10.     wp.SerializeToArray(parray,256);  
  11. }  
  12.   
  13. void get_people()               
  14. {  
  15.     rap.ParseFromArray(parray,256);  
  16.     cout << "Get People from Array:" << endl;  
  17.     cout << "\t Name : " <<rap.name() << endl;  
  18.     cout << "\t Id : " << rap.id() << endl;  
  19.     cout << "\t email : " << rap.email() << endl;  
  20. }  

 

 

2、C++ String的序列化和反序列化API

 

[cpp] view plaincopy
 
  1. //C++string序列化和序列化API  
  2. bool SerializeToString(string* output) const;  
  3. bool ParseFromString(const string& data);  
  4. //使用:  
  5. void set_people()               
  6. {  
  7.     wp.set_name("sealyao");     
  8.     wp.set_id(123456);          
  9.     wp.set_email("sealyaog@gmail.com");  
  10.     wp.SerializeToString(&pstring);  
  11. }  
  12.   
  13. void get_people()               
  14. {  
  15.     rsp.ParseFromString(pstring);    
  16.     cout << "Get People from String:" << endl;  
  17.     cout << "\t Name : " <<rsp.name() << endl;  
  18.     cout << "\t Id : " << rsp.id() << endl;  
  19.     cout << "\t email : " << rsp.email() << endl;  
  20. }  

 

 

3、文件描述符序列化和反序列化API

 

[cpp] view plaincopy
 
  1.  //文件描述符的序列化和序列化API  
  2.  bool SerializeToFileDescriptor(int file_descriptor) const;  
  3.  bool ParseFromFileDescriptor(int file_descriptor);  
  4.   
  5.  //使用:  
  6. void set_people()  
  7. {  
  8.     fd = open(path,O_CREAT|O_TRUNC|O_RDWR,0644);  
  9.     if(fd <= 0){  
  10.         perror("open");  
  11.         exit(0);   
  12.     }     
  13.     wp.set_name("sealyaog");  
  14.     wp.set_id(123456);  
  15.     wp.set_email("sealyaog@gmail.com");  
  16.     wp.SerializeToFileDescriptor(fd);     
  17.     close(fd);  
  18. }  
  19.   
  20. void get_people()  
  21. {  
  22.     fd = open(path,O_RDONLY);  
  23.     if(fd <= 0){  
  24.         perror("open");  
  25.         exit(0);  
  26.     }  
  27.     rp.ParseFromFileDescriptor(fd);  
  28.     std::cout << "Get People from FD:" << endl;  
  29.     std::cout << "\t Name : " <<rp.name() << endl;  
  30.     std::cout << "\t Id : " << rp.id() << endl;  
  31.     std::cout << "\t email : " << rp.email() << endl;  
  32.     close(fd);  
  33. }  

 

4、C++  stream 序列化和反序列化API

 

[cpp] view plaincopy
 
    1. //C++ stream 序列化/反序列化API  
    2. bool SerializeToOstream(ostream* output) const;  
    3. bool ParseFromIstream(istream* input);  
    4.   
    5. //使用:  
    6. void set_people()  
    7. {  
    8.     fstream fs(path,ios::out|ios::trunc|ios::binary);  
    9.     wp.set_name("sealyaog");  
    10.     wp.set_id(123456);  
    11.     wp.set_email("sealyaog@gmail.com");  
    12.     wp.SerializeToOstream(&fs);      
    13.     fs.close();  
    14.     fs.clear();  
    15. }  
    16.   
    17. void get_people()  
    18. {  
    19.     fstream fs(path,ios::in|ios::binary);  
    20.     rp.ParseFromIstream(&fs);  
    21.     std::cout << "\t Name : " <<rp.name() << endl;  
    22.     std::cout << "\t Id : " << rp.id() << endl;   
    23.     std::cout << "\t email : " << rp.email() << endl;     
    24.     fs.close();  
    25.     fs.clear();  
    26. }  
阅读更多
个人分类: C/C++
下一篇解决Kali Linux没有声音
想对作者说点什么? 我来说一句

protobuf-2.4.1.tar.gz

2018年02月28日 55KB 下载

protoc-3.4.0-win32

2018年06月05日 843KB 下载

protobuf java代码生成

2018年04月10日 5.43MB 下载

egert 使用 protobuf

2018年05月23日 107KB 下载

googletest

2018年03月09日 618KB 下载

protobuf for vs2015

2016年10月18日 135KB 下载

protobuf安装包

2018年02月07日 6.4MB 下载

Netty发送protoBuf格式数据

2017年09月15日 4.68MB 下载

protobuf java 工程示例

2017年05月24日 1.28MB 下载

protobuf c++使用手册

2012年12月29日 25KB 下载

没有更多推荐了,返回首页

关闭
关闭