1, 下载compiler和源代码,或直接下bin包
http://code.google.com/p/protobuf/downloads/
build
protobuf:
2, 创建一个addressbook.proto
3, 生成C++的stub
运行上面的命令将生成addressbook.pb.h和addressbook.pb.cc
4, 成员访问代码
部分.h代码及注释:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 |
// name inline
bool
has_name() const ; //字段是否存在,主要用于协议兼容等 inline
void
clear_name(); inline
const
::std::string& name() const ; inline
void
set_name( const
::std::string& value); inline
void
set_name( const
char * value); inline
::std::string* mutable_name(); //如为空,则new a buffer并返回之。 // id inline
bool
has_id() const ; inline
void
clear_id(); inline
int32_t id() const ; inline
void
set_id(int32_t value); // email inline
bool
has_email() const ; inline
void
clear_email(); inline
const
::std::string& email() const ; inline
void
set_email( const
::std::string& value); inline
void
set_email( const
char * value); inline
::std::string* mutable_email(); // phone inline
int
phone_size() const ; //repeated 字段的数量 inline
void
clear_phone(); inline
const
::google::protobuf::RepeatedPtrField< ::tutorial::Person_PhoneNumber >& phone() const ; inline
::google::protobuf::RepeatedPtrField< ::tutorial::Person_PhoneNumber >* mutable_phone(); inline
const
::tutorial::Person_PhoneNumber& phone( int
index) const ; //访问第index个字段 inline
::tutorial::Person_PhoneNumber* mutable_phone( int
index); inline
::tutorial::Person_PhoneNumber* add_phone(); |
5, 用法
就不说了吧,见上方.h代码段及注释,比什么例子要清楚多了。
原文:http://www.cnblogs.com/wishing/p/3517140.html