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.
   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 word import.

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

Level 1-Lesson 5. Advanced UI Interaction

Apollo缓存+自动刷新