ProtoBuf 常用序列化/反序列化API
生活随笔
收集整理的這篇文章主要介紹了
ProtoBuf 常用序列化/反序列化API
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
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(); }
總結
以上是生活随笔為你收集整理的ProtoBuf 常用序列化/反序列化API的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JS 原型链图形详解
- 下一篇: linux ulimit