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

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

2 cyber的基本组件

2.1 Slot、Signal与Connection

Slot和Signal实现一对多的通知。

Slot保存一个回调函数。

Signal保存一个Slot实例的列表。

Connection保存Slot实例和它所属的Signal之间的关联关系。

2.2 Blocker

Blocker包括两个先进先出队列:published_msg_queue_和observed_msg_queue_。

2.3 CacheBuffer与ChannelBuffer

CacheBuffer是一个环形缓存,这是一个模板类,模板参数是元素类型。

关于ChannelBuffer,

2.4 DataNotifier / DataDispatcher / DataVisitor

DataNotifier负责消息到达的通知。

DataDispatcher负责向一组访问者派发消息。

DataVisitor打包了对DataDispatcher和DataNotifier的调用。它派生自DataVisitorBase。

关于DataVisitorBase,

关于DataVisitor,

DataVisitor一般的使用流程是;

相关链接

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

上一篇 下一篇

猜你喜欢

热点阅读