日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ProtoBuf 常用序列化/反序列化API

發(fā)布時(shí)間:2025/3/15 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ProtoBuf 常用序列化/反序列化API 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

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

//C數(shù)組的序列化和序列化API bool ParseFromArray(const void* data, int size); bool SerializeToArray(void* data, int size) const; //使用 void set_people() {wp.set_name("sealyao"); wp.set_id(123456); wp.set_email("sealyaog@gmail.com");wp.SerializeToArray(parray,256); }void get_people() {rap.ParseFromArray(parray,256);cout << "Get People from Array:" << endl;cout << "\t Name : " <<rap.name() << endl;cout << "\t Id : " << rap.id() << endl;cout << "\t email : " << rap.email() << endl; } 2、C++ String的序列化和反序列化API

//C++string序列化和序列化API bool SerializeToString(string* output) const; bool ParseFromString(const string& data); //使用: void set_people() {wp.set_name("sealyao"); wp.set_id(123456); wp.set_email("sealyaog@gmail.com");wp.SerializeToString(&pstring); }void get_people() {rsp.ParseFromString(pstring); cout << "Get People from String:" << endl;cout << "\t Name : " <<rsp.name() << endl;cout << "\t Id : " << rsp.id() << endl;cout << "\t email : " << rsp.email() << endl; } 3、文件描述符序列化和反序列化API

//文件描述符的序列化和序列化APIbool SerializeToFileDescriptor(int file_descriptor) const;bool ParseFromFileDescriptor(int file_descriptor);//使用: void set_people() {fd = open(path,O_CREAT|O_TRUNC|O_RDWR,0644);if(fd <= 0){perror("open");exit(0); } wp.set_name("sealyaog");wp.set_id(123456);wp.set_email("sealyaog@gmail.com");wp.SerializeToFileDescriptor(fd); close(fd); }void get_people() {fd = open(path,O_RDONLY);if(fd <= 0){perror("open");exit(0);}rp.ParseFromFileDescriptor(fd);std::cout << "Get People from FD:" << endl;std::cout << "\t Name : " <<rp.name() << endl;std::cout << "\t Id : " << rp.id() << endl;std::cout << "\t email : " << rp.email() << endl;close(fd); } 4、C++ ?stream?序列化和反序列化API

//C++ stream 序列化/反序列化API bool SerializeToOstream(ostream* output) const; bool ParseFromIstream(istream* input);//使用: void set_people() {fstream fs(path,ios::out|ios::trunc|ios::binary);wp.set_name("sealyaog");wp.set_id(123456);wp.set_email("sealyaog@gmail.com");wp.SerializeToOstream(&fs); fs.close();fs.clear(); }void get_people() {fstream fs(path,ios::in|ios::binary);rp.ParseFromIstream(&fs);std::cout << "\t Name : " <<rp.name() << endl;std::cout << "\t Id : " << rp.id() << endl; std::cout << "\t email : " << rp.email() << endl; fs.close();fs.clear(); }


總結(jié)

以上是生活随笔為你收集整理的ProtoBuf 常用序列化/反序列化API的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。