百度 Apollo 8.0 Cyber 源代码分析(三)

2024-11-25  本文已影响0人  RonZheng2010

3 cyber的topology管理(node、channelD等)

fastrtps是一个开源网络库。cyber基于fastrtps在进程之间交换节点/channel信息。这些进程可以在同一个主机上,也可以跨主机。

Manager及相关类封装fastrtps对象。NodeManager和ChannelManager派生自Manager,前者实现node加入、离开等信息的交换,后者实现channel加入、离开等信息的交换。

Reader/Writer基于ChannelManager管理channel信息;Node/NodeChannelImpl基于NodeChannelManager管理节点信息,它也负责创建Reader/Writer。

3.1 Participant

cyber基于fastrtps库实现topoloy发现功能。Participant类封装fastrtps接口。

3.2 TopologyManager

TopologyManager管理cyber各种对象的topology,包括Node、Channel等等。

3.3 Manager

Manager基于Participant管理topology消息的收发。它的派生类包括NodeManager、ChannelManager等,分别管理Node、Channel等加入/离开消息的收发。

3.4 NodeManager

这里以NodeManager为例说明Manager的派生类实现。

3.5 ChannelManager

ChannelManager是另一个Manager派生类的例子。

3.6 再说TopologyManager

再次回到TopologyManager。它基于Participant,创建NodeManager/ChannelManager实例。

3.7 Reader

关于Reader,(这里的读取数据部分,后面会再详细说明)

3.8 Writer

关于Writer,(这里的写数据部分,后面会再详细说明)

3.9 Node

Node定义cyber的节点。

关于NodeChannelImpl,

相关链接

百度 Apollo 8.0 Cyber 源代码分析(一)
百度 Apollo 8.0 Cyber 源代码分析(二)
百度 Apollo 8.0 Cyber 源代码分析(三)
百度 Apollo 8.0 Cyber 源代码分析(四)
百度 Apollo 8.0 Cyber 源代码分析(五)

上一篇 下一篇

猜你喜欢

热点阅读