Apollo Advanced Lesson | Google Protocol Buffers
Posted Justin-Yip
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Apollo Advanced Lesson | Google Protocol Buffers相关的知识,希望对你有一定的参考价值。
Contents
–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
以上是关于Apollo Advanced Lesson | Google Protocol Buffers的主要内容,如果未能解决你的问题,请参考以下文章
Apollo Advanced Lesson | Cyber RT RTPS
Apollo Advanced Lesson | Cyber RT
Apollo Advanced Lesson | Chapter6-1 ROS
Apollo Advanced Lesson | a journey of perception