–This article is excerpted from Google’s official about Protocol Buffers, please indicate the source for reprinting–
What Are Protocol Buffers
- You can use protocol buffer to read/write you structure data across processes(such as IPC, event across different PC machines) ,which is language-neutral, platform-neutral, extensible mechanism for serializing structured data.
Why Use Protocol Buffers?
- Faster
- smaller run-time cost.
- neutral: language,platform neutral.
How Write Your C++ ProtoBuf?
Syntax note:
- Enum
- First element must set to
zero
,for compatibility with the proto2 semantic. allow_alias
option , allow your use alias that different enumerations maps to the same value.
- First element must set to
message MyMsg{
emum EnumAllowingAlias{
option allow_alias = true;
UNKNOW = 0;
STARTED = 1;
RUNNING = 1;
}
}
-
repeated
This Type familiar to std::vector. -
import
You can use the definitions in other.proto
files by using key wordimport
.
import "myproject/other_protos.proto";
-
Using proto2 Message Types
You can use proto2 definitions only importing from a proto2 file,other than use them directly in the proto3 syntax. -
Nest Types
you can refer the inner message type by using_Parent_._Type_
message SomeOtherMessage {
SearchResponse.Result result = 1;
}
- Any : to be done
referring to:
Protocol-buffers official