ProtoBuf常用序列化/反序列化API轉(zhuǎn)-創(chuàng)新互聯(lián)

http://blog.csdn.net/sealyao/article/details/6940245ProtoBuf常用序列化/反序
列化API轉(zhuǎn)

1、C數(shù)組的序列化和反序列化API

成都創(chuàng)新互聯(lián)長期為超過千家客戶提供的網(wǎng)站建設(shè)服務(wù),團隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為淅川企業(yè)提供專業(yè)的成都網(wǎng)站設(shè)計、網(wǎng)站制作,淅川網(wǎng)站改版等技術(shù)服務(wù)。擁有十年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。 [cpp] view plaincopy  
  1. //C數(shù)組的序列化和序列化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. void get_people()
  13. {
  14.     rap.ParseFromArray(parray,256);
  15.     cout << "Get People from Array:" << endl;
  16.     cout << "  Name : " <<rap.name() << endl;
  17.     cout << "  Id : " << rap.id() << endl;
  18.     cout << "  email : " << rap.email() << endl;
  19. }

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. void get_people()
  13. {
  14.     rsp.ParseFromString(pstring);
  15.     cout << "Get People from String:" << endl;
  16.     cout << "  Name : " <<rsp.name() << endl;
  17.     cout << "  Id : " << rsp.id() << endl;
  18.     cout << "  email : " << rsp.email() << endl;
  19. }

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

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

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

[cpp] view plaincopy  
    1. //C++ stream 序列化/反序列化API
    2. bool SerializeToOstream(ostream* output) const;
    3. bool ParseFromIstream(istream* input);
    4. //使用:
    5. void set_people()
    6. {
    7.     fstream fs(path,ios::out|ios::trunc|ios::binary);
    8.     wp.set_name("sealyaog");
    9.     wp.set_id(123456);
    10.     wp.set_email("sealyaog@gmail.com");
    11.     wp.SerializeToOstream(&fs);
    12.     fs.close();
    13.     fs.clear();
    14. }
    15. void get_people()
    16. {
    17.     fstream fs(path,ios::in|ios::binary);
    18.     rp.ParseFromIstream(&fs);
    19.     std::cout << "  Name : " <<rp.name() << endl;
    20.     std::cout << "  Id : " << rp.id() << endl;
    21.     std::cout << "  email : " << rp.email() << endl;
    22.     fs.close();
    23.     fs.clear();
    24. }

網(wǎng)站題目:ProtoBuf常用序列化/反序列化API轉(zhuǎn)-創(chuàng)新互聯(lián)
URL地址:http://www.muchs.cn/article48/dcddep.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊、軟件開發(fā)、網(wǎng)站收錄、服務(wù)器托管、網(wǎng)站導(dǎo)航ChatGPT

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站