protobuf 常用序列化/反序列化 api

来源:互联网 发布:阿里云短信模板 编辑:程序博客网 时间:2024/06/05 05:34

原文链接:http://blog.csdn.net/sealyao/article/details/6940245

c 数组的序列化和反序列化 api

//C数组的序列化和序列化APIbool 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;}
c++ string 的序列化和反序列化 api

//C++string序列化和序列化APIbool 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;}
文件描述符序列化和反序列化 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);}
c++ stream 序列化和反序列化 api

//C++ stream 序列化/反序列化APIbool 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();}

原创粉丝点击