portobuf各种序列化与反序列化API
来源:互联网 发布:mac 不能打开u盘 编辑:程序博客网 时间:2024/06/05 14:10
1、C数组的序列化和反序列化API
- //C数组的序列化和序列化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
- //文件描述符的序列化和序列化API
- bool 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();
- }
0 0
- portobuf各种序列化与反序列化API
- 序列化与反序列
- 序列化与反序列
- XML序列化与反序列化
- 对象序列化与反序列化
- 序列化与反序列化
- 转载:序列化与反序列化
- c#序列化与反序列化
- java序列化与反序列化
- XML序列化与反序列化
- 序列化与反序列化
- 序列化与反序列化
- C#序列化与反序列化
- java序列化与反序列化
- XML序列化与反序列化
- 再看序列化与反序列化
- 序列化与反序列化对象
- 序列化与反序列化
- Linux中常用命令详解
- Spring事务管理
- leetcode-07-reverse integer-python
- putty Login
- 图形用户界面(GUI)
- portobuf各种序列化与反序列化API
- Cocos2d-x 3.4在AndroidStudio上编译配置
- Hibernate 关联映射
- Android 事件分发
- ubuntu权限操作授予
- 在Linux下安装Docker
- Java中的Process,执行一个命令
- Java单链表接本操作(三)--删除当前节点
- Android初级开发----用Handle机制更新UI界面